diff --git a/AutoRest/Generators/CSharp/Azure.CSharp.Tests/Expected/AcceptanceTests/AzureParameterGrouping/Models/FirstParameterGroup.cs b/AutoRest/Generators/CSharp/Azure.CSharp.Tests/Expected/AcceptanceTests/AzureParameterGrouping/Models/FirstParameterGroup.cs
index 64544e0994a33..4e2fe34867c21 100644
--- a/AutoRest/Generators/CSharp/Azure.CSharp.Tests/Expected/AcceptanceTests/AzureParameterGrouping/Models/FirstParameterGroup.cs
+++ b/AutoRest/Generators/CSharp/Azure.CSharp.Tests/Expected/AcceptanceTests/AzureParameterGrouping/Models/FirstParameterGroup.cs
@@ -17,7 +17,9 @@ namespace Fixtures.Azure.AcceptanceTestsAzureParameterGrouping.Models
using Microsoft.Rest.Azure;
///
- /// Additional parameters for one or more operations
+ /// Additional parameters for a set of operations, such as:
+ /// parameterGrouping_postMultiParamGroups,
+ /// parameterGrouping_postSharedParameterGroupObject.
///
public partial class FirstParameterGroup
{
diff --git a/AutoRest/Generators/CSharp/Azure.CSharp.Tests/Expected/AcceptanceTests/AzureParameterGrouping/Models/ParameterGroupingPostMultiParamGroupsSecondParamGroup.cs b/AutoRest/Generators/CSharp/Azure.CSharp.Tests/Expected/AcceptanceTests/AzureParameterGrouping/Models/ParameterGroupingPostMultiParamGroupsSecondParamGroup.cs
index 874e8e1d79929..6d81fef18781c 100644
--- a/AutoRest/Generators/CSharp/Azure.CSharp.Tests/Expected/AcceptanceTests/AzureParameterGrouping/Models/ParameterGroupingPostMultiParamGroupsSecondParamGroup.cs
+++ b/AutoRest/Generators/CSharp/Azure.CSharp.Tests/Expected/AcceptanceTests/AzureParameterGrouping/Models/ParameterGroupingPostMultiParamGroupsSecondParamGroup.cs
@@ -17,7 +17,8 @@ namespace Fixtures.Azure.AcceptanceTestsAzureParameterGrouping.Models
using Microsoft.Rest.Azure;
///
- /// Additional parameters for one or more operations
+ /// Additional parameters for the parameterGrouping_postMultiParamGroups
+ /// operation.
///
public partial class ParameterGroupingPostMultiParamGroupsSecondParamGroup
{
diff --git a/AutoRest/Generators/CSharp/Azure.CSharp.Tests/Expected/AcceptanceTests/AzureParameterGrouping/Models/ParameterGroupingPostOptionalParameters.cs b/AutoRest/Generators/CSharp/Azure.CSharp.Tests/Expected/AcceptanceTests/AzureParameterGrouping/Models/ParameterGroupingPostOptionalParameters.cs
index 7dce24800e0f0..3a3dcc12562a8 100644
--- a/AutoRest/Generators/CSharp/Azure.CSharp.Tests/Expected/AcceptanceTests/AzureParameterGrouping/Models/ParameterGroupingPostOptionalParameters.cs
+++ b/AutoRest/Generators/CSharp/Azure.CSharp.Tests/Expected/AcceptanceTests/AzureParameterGrouping/Models/ParameterGroupingPostOptionalParameters.cs
@@ -17,7 +17,7 @@ namespace Fixtures.Azure.AcceptanceTestsAzureParameterGrouping.Models
using Microsoft.Rest.Azure;
///
- /// Additional parameters for one or more operations
+ /// Additional parameters for the parameterGrouping_postOptional operation.
///
public partial class ParameterGroupingPostOptionalParameters
{
diff --git a/AutoRest/Generators/CSharp/Azure.CSharp.Tests/Expected/AcceptanceTests/AzureParameterGrouping/Models/ParameterGroupingPostRequiredParameters.cs b/AutoRest/Generators/CSharp/Azure.CSharp.Tests/Expected/AcceptanceTests/AzureParameterGrouping/Models/ParameterGroupingPostRequiredParameters.cs
index 7f1bd8dfc24dd..4251abe07005e 100644
--- a/AutoRest/Generators/CSharp/Azure.CSharp.Tests/Expected/AcceptanceTests/AzureParameterGrouping/Models/ParameterGroupingPostRequiredParameters.cs
+++ b/AutoRest/Generators/CSharp/Azure.CSharp.Tests/Expected/AcceptanceTests/AzureParameterGrouping/Models/ParameterGroupingPostRequiredParameters.cs
@@ -17,7 +17,7 @@ namespace Fixtures.Azure.AcceptanceTestsAzureParameterGrouping.Models
using Microsoft.Rest.Azure;
///
- /// Additional parameters for one or more operations
+ /// Additional parameters for the parameterGrouping_postRequired operation.
///
public partial class ParameterGroupingPostRequiredParameters
{
diff --git a/AutoRest/Generators/CSharp/Azure.CSharp.Tests/Expected/AcceptanceTests/Paging/Models/PagingGetMultiplePagesOptions.cs b/AutoRest/Generators/CSharp/Azure.CSharp.Tests/Expected/AcceptanceTests/Paging/Models/PagingGetMultiplePagesOptions.cs
index cd420389a93e4..2c900f171ed91 100644
--- a/AutoRest/Generators/CSharp/Azure.CSharp.Tests/Expected/AcceptanceTests/Paging/Models/PagingGetMultiplePagesOptions.cs
+++ b/AutoRest/Generators/CSharp/Azure.CSharp.Tests/Expected/AcceptanceTests/Paging/Models/PagingGetMultiplePagesOptions.cs
@@ -17,7 +17,7 @@ namespace Fixtures.Azure.AcceptanceTestsPaging.Models
using Microsoft.Rest.Azure;
///
- /// Additional parameters for one or more operations
+ /// Additional parameters for the Paging_getMultiplePages operation.
///
public partial class PagingGetMultiplePagesOptions
{
diff --git a/AutoRest/Generators/CSharp/Azure.CSharp.Tests/Expected/AcceptanceTests/Paging/Models/PagingGetMultiplePagesWithOffsetOptions.cs b/AutoRest/Generators/CSharp/Azure.CSharp.Tests/Expected/AcceptanceTests/Paging/Models/PagingGetMultiplePagesWithOffsetOptions.cs
index 91c7ecd834f40..076d5bf8587b8 100644
--- a/AutoRest/Generators/CSharp/Azure.CSharp.Tests/Expected/AcceptanceTests/Paging/Models/PagingGetMultiplePagesWithOffsetOptions.cs
+++ b/AutoRest/Generators/CSharp/Azure.CSharp.Tests/Expected/AcceptanceTests/Paging/Models/PagingGetMultiplePagesWithOffsetOptions.cs
@@ -17,7 +17,8 @@ namespace Fixtures.Azure.AcceptanceTestsPaging.Models
using Microsoft.Rest.Azure;
///
- /// Additional parameters for one or more operations
+ /// Additional parameters for the Paging_getMultiplePagesWithOffset
+ /// operation.
///
public partial class PagingGetMultiplePagesWithOffsetOptions
{
diff --git a/AutoRest/Generators/CSharp/CSharp.Tests/Expected/AcceptanceTests/ModelFlattening/Models/FlattenParameterGroup.cs b/AutoRest/Generators/CSharp/CSharp.Tests/Expected/AcceptanceTests/ModelFlattening/Models/FlattenParameterGroup.cs
index b80bf2fa6210d..fac4cd5c66e3d 100644
--- a/AutoRest/Generators/CSharp/CSharp.Tests/Expected/AcceptanceTests/ModelFlattening/Models/FlattenParameterGroup.cs
+++ b/AutoRest/Generators/CSharp/CSharp.Tests/Expected/AcceptanceTests/ModelFlattening/Models/FlattenParameterGroup.cs
@@ -16,7 +16,7 @@ namespace Fixtures.AcceptanceTestsModelFlattening.Models
using Microsoft.Rest.Serialization;
///
- /// Additional parameters for one or more operations
+ /// Additional parameters for the putSimpleProductWithGrouping operation.
///
[JsonTransformation]
public partial class FlattenParameterGroup
diff --git a/AutoRest/Generators/Extensions/Azure.Extensions/AzureExtensions.cs b/AutoRest/Generators/Extensions/Azure.Extensions/AzureExtensions.cs
index c38246fdccd61..d4863ccf8beb9 100644
--- a/AutoRest/Generators/Extensions/Azure.Extensions/AzureExtensions.cs
+++ b/AutoRest/Generators/Extensions/Azure.Extensions/AzureExtensions.cs
@@ -77,7 +77,7 @@ public static void NormalizeAzureClientModel(ServiceClient serviceClient, Settin
ParseODataExtension(serviceClient);
FlattenModels(serviceClient);
FlattenMethodParameters(serviceClient, settings);
- AddParameterGroups(serviceClient);
+ ParameterGroupExtensionHelper.AddParameterGroups(serviceClient);
AddLongRunningOperations(serviceClient);
AddAzureProperties(serviceClient);
SetDefaultResponses(serviceClient);
diff --git a/AutoRest/Generators/Extensions/Extensions/AutoRest.Generator.Extensions.csproj b/AutoRest/Generators/Extensions/Extensions/AutoRest.Generator.Extensions.csproj
index b5ca288802491..baeb25e146303 100644
--- a/AutoRest/Generators/Extensions/Extensions/AutoRest.Generator.Extensions.csproj
+++ b/AutoRest/Generators/Extensions/Extensions/AutoRest.Generator.Extensions.csproj
@@ -27,6 +27,7 @@
+
True
diff --git a/AutoRest/Generators/Extensions/Extensions/Extensions.cs b/AutoRest/Generators/Extensions/Extensions/Extensions.cs
index 44b69bfea2122..2016e53f1fb60 100644
--- a/AutoRest/Generators/Extensions/Extensions/Extensions.cs
+++ b/AutoRest/Generators/Extensions/Extensions/Extensions.cs
@@ -44,7 +44,7 @@ public static void NormalizeClientModel(ServiceClient serviceClient, Settings se
{
FlattenModels(serviceClient);
FlattenMethodParameters(serviceClient, settings);
- AddParameterGroups(serviceClient);
+ ParameterGroupExtensionHelper.AddParameterGroups(serviceClient);
ProcessParameterizedHost(serviceClient, settings);
}
@@ -333,141 +333,6 @@ public static void RemoveUnreferencedTypes(ServiceClient serviceClient, HashSet<
}
}
- ///
- /// Adds the parameter groups to operation parameters.
- ///
- ///
- public static void AddParameterGroups(ServiceClient serviceClient)
- {
- if (serviceClient == null)
- {
- throw new ArgumentNullException("serviceClient");
- }
-
- HashSet generatedParameterGroups = new HashSet();
-
- foreach (Method method in serviceClient.Methods)
- {
- //Copy out flattening transformations as they should be the last
- List flatteningTransformations = method.InputParameterTransformation.ToList();
- method.InputParameterTransformation.Clear();
-
- //This group name is normalized by each languages code generator later, so it need not happen here.
- Dictionary> parameterGroups = new Dictionary>();
-
- foreach (Parameter parameter in method.Parameters)
- {
- if (parameter.Extensions.ContainsKey(ParameterGroupExtension))
- {
- JContainer extensionObject = parameter.Extensions[ParameterGroupExtension] as JContainer;
- if (extensionObject != null)
- {
- string specifiedGroupName = extensionObject.Value("name");
- string parameterGroupName;
- if (specifiedGroupName == null)
- {
- string postfix = extensionObject.Value("postfix") ?? "Parameters";
- parameterGroupName = method.Group + "-" + method.Name + "-" + postfix;
- }
- else
- {
- parameterGroupName = specifiedGroupName;
- }
-
- if (!parameterGroups.ContainsKey(parameterGroupName))
- {
- parameterGroups.Add(parameterGroupName, new Dictionary());
- }
-
- Property groupProperty = new Property()
- {
- IsReadOnly = false, //Since these properties are used as parameters they are never read only
- Name = parameter.Name,
- IsRequired = parameter.IsRequired,
- DefaultValue = parameter.DefaultValue,
- //Constraints = parameter.Constraints, Omit these since we don't want to perform parameter validation
- Documentation = parameter.Documentation,
- Type = parameter.Type,
- SerializedName = null //Parameter is never serialized directly
- };
- // Copy over extensions
- foreach (var key in parameter.Extensions.Keys)
- {
- groupProperty.Extensions[key] = parameter.Extensions[key];
- }
-
- parameterGroups[parameterGroupName].Add(groupProperty, parameter);
- }
- }
- }
-
- foreach (string parameterGroupName in parameterGroups.Keys)
- {
- CompositeType parameterGroupType =
- generatedParameterGroups.FirstOrDefault(item => item.Name == parameterGroupName);
- if (parameterGroupType == null)
- {
- parameterGroupType = new CompositeType
- {
- Name = parameterGroupName,
- Documentation = "Additional parameters for one or more operations"
- };
- generatedParameterGroups.Add(parameterGroupType);
-
- //Add to the service client
- serviceClient.ModelTypes.Add(parameterGroupType);
- }
- foreach (Property property in parameterGroups[parameterGroupName].Keys)
- {
- Property matchingProperty = parameterGroupType.Properties.FirstOrDefault(
- item => item.Name == property.Name &&
- item.IsReadOnly == property.IsReadOnly &&
- item.DefaultValue == property.DefaultValue &&
- item.SerializedName == property.SerializedName);
- if (matchingProperty == null)
- {
- parameterGroupType.Properties.Add(property);
- }
- }
-
- bool isGroupParameterRequired = parameterGroupType.Properties.Any(p => p.IsRequired);
-
- //Create the new parameter object based on the parameter group type
- Parameter parameterGroup = new Parameter()
- {
- Name = parameterGroupName,
- IsRequired = isGroupParameterRequired,
- Location = ClientModel.ParameterLocation.None,
- SerializedName = string.Empty,
- Type = parameterGroupType,
- Documentation = "Additional parameters for the operation"
- };
-
- method.Parameters.Add(parameterGroup);
-
- //Link the grouped parameters to their parent, and remove them from the method parameters
- foreach (Property property in parameterGroups[parameterGroupName].Keys)
- {
- Parameter p = parameterGroups[parameterGroupName][property];
-
- var parameterTransformation = new ParameterTransformation
- {
- OutputParameter = p
- };
- parameterTransformation.ParameterMappings.Add(new ParameterMapping
- {
- InputParameter = parameterGroup,
- InputParameterProperty = property.GetClientName()
- });
- method.InputParameterTransformation.Add(parameterTransformation);
- method.Parameters.Remove(p);
- }
- }
-
- // Copy back flattening transformations if any
- flatteningTransformations.ForEach(t => method.InputParameterTransformation.Add(t));
- }
- }
///
/// Flattens the request payload if the number of properties of the
diff --git a/AutoRest/Generators/Extensions/Extensions/ParameterGroupExtensionHelper.cs b/AutoRest/Generators/Extensions/Extensions/ParameterGroupExtensionHelper.cs
new file mode 100644
index 0000000000000..5a97e2619f79f
--- /dev/null
+++ b/AutoRest/Generators/Extensions/Extensions/ParameterGroupExtensionHelper.cs
@@ -0,0 +1,229 @@
+namespace Microsoft.Rest.Generator
+{
+ using System;
+ using System.Collections.Generic;
+ using System.Globalization;
+ using System.Linq;
+ using System.Text;
+ using System.Threading.Tasks;
+ using ClientModel;
+ using Newtonsoft.Json.Linq;
+
+ public static class ParameterGroupExtensionHelper
+ {
+ private class ParameterGroup
+ {
+ public string Name { get; }
+
+ public Dictionary ParameterMapping { get; }
+
+ public ParameterGroup(string name, Dictionary parameterMapping)
+ {
+ this.Name = name;
+ this.ParameterMapping = parameterMapping;
+ }
+ }
+
+ private static Property CreateParameterGroupProperty(Parameter parameter)
+ {
+ Property groupProperty = new Property()
+ {
+ IsReadOnly = false, //Since these properties are used as parameters they are never read only
+ Name = parameter.Name,
+ IsRequired = parameter.IsRequired,
+ DefaultValue = parameter.DefaultValue,
+ //Constraints = parameter.Constraints, Omit these since we don't want to perform parameter validation
+ Documentation = parameter.Documentation,
+ Type = parameter.Type,
+ SerializedName = null //Parameter is never serialized directly
+ };
+
+ // Copy over extensions
+ foreach (var key in parameter.Extensions.Keys)
+ {
+ groupProperty.Extensions[key] = parameter.Extensions[key];
+ }
+
+ return groupProperty;
+ }
+
+ private static ParameterGroup BuildParameterGroup(string parameterGroupName, Method method)
+ {
+ Dictionary parameterMapping = method.Parameters.Where(
+ p => GetParameterGroupName(method.Group, method.Name, p) == parameterGroupName).ToDictionary(
+ CreateParameterGroupProperty,
+ p => p);
+
+ return new ParameterGroup(parameterGroupName, parameterMapping);
+ }
+
+ private static string GetParameterGroupName(string methodGroupName, string methodName, Parameter parameter)
+ {
+ if (parameter.Extensions.ContainsKey(Extensions.ParameterGroupExtension))
+ {
+ JContainer extensionObject = parameter.Extensions[Extensions.ParameterGroupExtension] as JContainer;
+ if (extensionObject != null)
+ {
+ string specifiedGroupName = extensionObject.Value("name");
+ string parameterGroupName;
+ if (specifiedGroupName == null)
+ {
+ string postfix = extensionObject.Value("postfix") ?? "Parameters";
+ parameterGroupName = methodGroupName + "-" + methodName + "-" + postfix;
+ }
+ else
+ {
+ parameterGroupName = specifiedGroupName;
+ }
+ return parameterGroupName;
+ }
+ }
+
+ return null;
+ }
+
+ private static IEnumerable ExtractParameterGroupNames(Method method)
+ {
+ return method.Parameters.Select(p => GetParameterGroupName(method.Group, method.Name, p)).Where(name => !string.IsNullOrEmpty(name)).Distinct();
+ }
+
+ private static IEnumerable ExtractParameterGroups(Method method)
+ {
+ IEnumerable parameterGroupNames = ExtractParameterGroupNames(method);
+
+ return parameterGroupNames.Select(parameterGroupName => BuildParameterGroup(parameterGroupName, method));
+ }
+
+ private static IEnumerable GetMethodsUsingParameterGroup(IEnumerable methods, ParameterGroup parameterGroup)
+ {
+ return methods.Where(m => ExtractParameterGroupNames(m).Contains(parameterGroup.Name));
+ }
+
+ private static string GenerateParameterGroupModelText(IEnumerable methodsWhichUseGroup)
+ {
+ Func createOperationDisplayString = (group, name) =>
+ {
+ return string.IsNullOrEmpty(group) ? name : string.Format(CultureInfo.InvariantCulture, "{0}_{1}", group, name);
+ };
+
+ List methodList = methodsWhichUseGroup.ToList();
+ if (methodList.Count == 1)
+ {
+ Method method = methodList.Single();
+ return string.Format(CultureInfo.InvariantCulture, "Additional parameters for the {0} operation.",
+ createOperationDisplayString(method.Group, method.Name));
+ }
+ else if (methodList.Count <= 4)
+ {
+ string operationsString = string.Join(", ", methodList.Select(
+ m => string.Format(CultureInfo.InvariantCulture, createOperationDisplayString(m.Group, m.Name))));
+
+ return string.Format(CultureInfo.InvariantCulture, "Additional parameters for a set of operations, such as: {0}.", operationsString);
+ }
+ else
+ {
+ return "Additional parameters for a set of operations.";
+ }
+ }
+
+ ///
+ /// Adds the parameter groups to operation parameters.
+ ///
+ ///
+ public static void AddParameterGroups(ServiceClient serviceClient)
+ {
+ if (serviceClient == null)
+ {
+ throw new ArgumentNullException("serviceClient");
+ }
+
+ HashSet generatedParameterGroups = new HashSet();
+
+ foreach (Method method in serviceClient.Methods)
+ {
+ //Copy out flattening transformations as they should be the last
+ List flatteningTransformations = method.InputParameterTransformation.ToList();
+ method.InputParameterTransformation.Clear();
+
+ //This group name is normalized by each languages code generator later, so it need not happen here.
+ IEnumerable parameterGroups = ExtractParameterGroups(method);
+
+ List parametersToAddToMethod = new List();
+ List parametersToRemoveFromMethod = new List();
+
+ foreach (ParameterGroup parameterGroup in parameterGroups)
+ {
+ CompositeType parameterGroupType =
+ generatedParameterGroups.FirstOrDefault(item => item.Name == parameterGroup.Name);
+
+ if (parameterGroupType == null)
+ {
+ IEnumerable methodsWhichUseGroup = GetMethodsUsingParameterGroup(serviceClient.Methods, parameterGroup);
+
+ parameterGroupType = new CompositeType
+ {
+ Name = parameterGroup.Name,
+ Documentation = GenerateParameterGroupModelText(methodsWhichUseGroup)
+ };
+ generatedParameterGroups.Add(parameterGroupType);
+
+ //Add to the service client
+ serviceClient.ModelTypes.Add(parameterGroupType);
+ }
+
+ foreach (Property property in parameterGroup.ParameterMapping.Keys)
+ {
+ Property matchingProperty = parameterGroupType.Properties.FirstOrDefault(
+ item => item.Name == property.Name &&
+ item.IsReadOnly == property.IsReadOnly &&
+ item.DefaultValue == property.DefaultValue &&
+ item.SerializedName == property.SerializedName);
+ if (matchingProperty == null)
+ {
+ parameterGroupType.Properties.Add(property);
+ }
+ }
+
+ bool isGroupParameterRequired = parameterGroupType.Properties.Any(p => p.IsRequired);
+
+ //Create the new parameter object based on the parameter group type
+ Parameter newParameter = new Parameter()
+ {
+ Name = parameterGroup.Name,
+ IsRequired = isGroupParameterRequired,
+ Location = ClientModel.ParameterLocation.None,
+ SerializedName = string.Empty,
+ Type = parameterGroupType,
+ Documentation = "Additional parameters for the operation"
+ };
+ parametersToAddToMethod.Add(newParameter);
+
+ //Link the grouped parameters to their parent, and remove them from the method parameters
+ foreach (Property property in parameterGroup.ParameterMapping.Keys)
+ {
+ Parameter p = parameterGroup.ParameterMapping[property];
+
+ var parameterTransformation = new ParameterTransformation
+ {
+ OutputParameter = p
+ };
+
+ parameterTransformation.ParameterMappings.Add(new ParameterMapping
+ {
+ InputParameter = newParameter,
+ InputParameterProperty = property.GetClientName()
+ });
+ method.InputParameterTransformation.Add(parameterTransformation);
+ parametersToRemoveFromMethod.Add(p);
+ }
+ }
+
+ method.Parameters.RemoveAll(p => parametersToRemoveFromMethod.Contains(p));
+ method.Parameters.AddRange(parametersToAddToMethod);
+
+ // Copy back flattening transformations if any
+ flatteningTransformations.ForEach(t => method.InputParameterTransformation.Add(t));
+ }
+ }
+ }
+}
diff --git a/AutoRest/Generators/Java/Azure.Java.Tests/src/main/java/fixtures/azureparametergrouping/models/FirstParameterGroup.java b/AutoRest/Generators/Java/Azure.Java.Tests/src/main/java/fixtures/azureparametergrouping/models/FirstParameterGroup.java
index 11a3b19314227..bbe5038e8892e 100644
--- a/AutoRest/Generators/Java/Azure.Java.Tests/src/main/java/fixtures/azureparametergrouping/models/FirstParameterGroup.java
+++ b/AutoRest/Generators/Java/Azure.Java.Tests/src/main/java/fixtures/azureparametergrouping/models/FirstParameterGroup.java
@@ -13,7 +13,9 @@
import com.fasterxml.jackson.annotation.JsonProperty;
/**
- * Additional parameters for one or more operations.
+ * Additional parameters for a set of operations, such as:
+ * parameterGrouping_postMultiParamGroups,
+ * parameterGrouping_postSharedParameterGroupObject.
*/
public class FirstParameterGroup {
/**
diff --git a/AutoRest/Generators/Java/Azure.Java.Tests/src/main/java/fixtures/azureparametergrouping/models/ParameterGroupingPostMultiParamGroupsSecondParamGroup.java b/AutoRest/Generators/Java/Azure.Java.Tests/src/main/java/fixtures/azureparametergrouping/models/ParameterGroupingPostMultiParamGroupsSecondParamGroup.java
index 62b198e1819b3..e8c9db90cc753 100644
--- a/AutoRest/Generators/Java/Azure.Java.Tests/src/main/java/fixtures/azureparametergrouping/models/ParameterGroupingPostMultiParamGroupsSecondParamGroup.java
+++ b/AutoRest/Generators/Java/Azure.Java.Tests/src/main/java/fixtures/azureparametergrouping/models/ParameterGroupingPostMultiParamGroupsSecondParamGroup.java
@@ -13,7 +13,8 @@
import com.fasterxml.jackson.annotation.JsonProperty;
/**
- * Additional parameters for one or more operations.
+ * Additional parameters for the parameterGrouping_postMultiParamGroups
+ * operation.
*/
public class ParameterGroupingPostMultiParamGroupsSecondParamGroup {
/**
diff --git a/AutoRest/Generators/Java/Azure.Java.Tests/src/main/java/fixtures/azureparametergrouping/models/ParameterGroupingPostOptionalParameters.java b/AutoRest/Generators/Java/Azure.Java.Tests/src/main/java/fixtures/azureparametergrouping/models/ParameterGroupingPostOptionalParameters.java
index ca1acfaa80941..8177eb2257697 100644
--- a/AutoRest/Generators/Java/Azure.Java.Tests/src/main/java/fixtures/azureparametergrouping/models/ParameterGroupingPostOptionalParameters.java
+++ b/AutoRest/Generators/Java/Azure.Java.Tests/src/main/java/fixtures/azureparametergrouping/models/ParameterGroupingPostOptionalParameters.java
@@ -13,7 +13,7 @@
import com.fasterxml.jackson.annotation.JsonProperty;
/**
- * Additional parameters for one or more operations.
+ * Additional parameters for the parameterGrouping_postOptional operation.
*/
public class ParameterGroupingPostOptionalParameters {
/**
diff --git a/AutoRest/Generators/Java/Azure.Java.Tests/src/main/java/fixtures/azureparametergrouping/models/ParameterGroupingPostRequiredParameters.java b/AutoRest/Generators/Java/Azure.Java.Tests/src/main/java/fixtures/azureparametergrouping/models/ParameterGroupingPostRequiredParameters.java
index 729b020e4dfbf..98f0a230bc383 100644
--- a/AutoRest/Generators/Java/Azure.Java.Tests/src/main/java/fixtures/azureparametergrouping/models/ParameterGroupingPostRequiredParameters.java
+++ b/AutoRest/Generators/Java/Azure.Java.Tests/src/main/java/fixtures/azureparametergrouping/models/ParameterGroupingPostRequiredParameters.java
@@ -13,7 +13,7 @@
import com.fasterxml.jackson.annotation.JsonProperty;
/**
- * Additional parameters for one or more operations.
+ * Additional parameters for the parameterGrouping_postRequired operation.
*/
public class ParameterGroupingPostRequiredParameters {
/**
diff --git a/AutoRest/Generators/Java/Azure.Java.Tests/src/main/java/fixtures/paging/models/PagingGetMultiplePagesOptions.java b/AutoRest/Generators/Java/Azure.Java.Tests/src/main/java/fixtures/paging/models/PagingGetMultiplePagesOptions.java
index c00d7b13f0370..0ce6b1680d2f3 100644
--- a/AutoRest/Generators/Java/Azure.Java.Tests/src/main/java/fixtures/paging/models/PagingGetMultiplePagesOptions.java
+++ b/AutoRest/Generators/Java/Azure.Java.Tests/src/main/java/fixtures/paging/models/PagingGetMultiplePagesOptions.java
@@ -13,7 +13,7 @@
import com.fasterxml.jackson.annotation.JsonProperty;
/**
- * Additional parameters for one or more operations.
+ * Additional parameters for the Paging_getMultiplePages operation.
*/
public class PagingGetMultiplePagesOptions {
/**
diff --git a/AutoRest/Generators/Java/Azure.Java.Tests/src/main/java/fixtures/paging/models/PagingGetMultiplePagesWithOffsetOptions.java b/AutoRest/Generators/Java/Azure.Java.Tests/src/main/java/fixtures/paging/models/PagingGetMultiplePagesWithOffsetOptions.java
index d2c8350978d67..1cff9918a4fee 100644
--- a/AutoRest/Generators/Java/Azure.Java.Tests/src/main/java/fixtures/paging/models/PagingGetMultiplePagesWithOffsetOptions.java
+++ b/AutoRest/Generators/Java/Azure.Java.Tests/src/main/java/fixtures/paging/models/PagingGetMultiplePagesWithOffsetOptions.java
@@ -13,7 +13,7 @@
import com.fasterxml.jackson.annotation.JsonProperty;
/**
- * Additional parameters for one or more operations.
+ * Additional parameters for the Paging_getMultiplePagesWithOffset operation.
*/
public class PagingGetMultiplePagesWithOffsetOptions {
/**
diff --git a/AutoRest/Generators/Java/Java.Tests/src/main/java/fixtures/modelflattening/models/FlattenParameterGroup.java b/AutoRest/Generators/Java/Java.Tests/src/main/java/fixtures/modelflattening/models/FlattenParameterGroup.java
index 557060fba52c1..342b622a71f03 100644
--- a/AutoRest/Generators/Java/Java.Tests/src/main/java/fixtures/modelflattening/models/FlattenParameterGroup.java
+++ b/AutoRest/Generators/Java/Java.Tests/src/main/java/fixtures/modelflattening/models/FlattenParameterGroup.java
@@ -14,7 +14,7 @@
import com.microsoft.rest.serializer.JsonFlatten;
/**
- * Additional parameters for one or more operations.
+ * Additional parameters for the putSimpleProductWithGrouping operation.
*/
@JsonFlatten
public class FlattenParameterGroup {
diff --git a/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/AzureParameterGrouping/models/firstParameterGroup.js b/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/AzureParameterGrouping/models/firstParameterGroup.js
index ba3b0d7727b98..30da6b2ad3c63 100644
--- a/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/AzureParameterGrouping/models/firstParameterGroup.js
+++ b/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/AzureParameterGrouping/models/firstParameterGroup.js
@@ -14,7 +14,9 @@
* @class
* Initializes a new instance of the FirstParameterGroup class.
* @constructor
- * Additional parameters for one or more operations
+ * Additional parameters for a set of operations, such as:
+ * parameterGrouping_postMultiParamGroups,
+ * parameterGrouping_postSharedParameterGroupObject.
* @member {string} [headerOne]
*
* @member {number} [queryOne] Query parameter with default. Default value: 30
diff --git a/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/AzureParameterGrouping/models/index.d.ts b/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/AzureParameterGrouping/models/index.d.ts
index 9456f4830bfc2..16a7ffc754ca4 100644
--- a/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/AzureParameterGrouping/models/index.d.ts
+++ b/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/AzureParameterGrouping/models/index.d.ts
@@ -28,7 +28,7 @@ export interface ErrorModel {
* @class
* Initializes a new instance of the ParameterGroupingPostRequiredParameters class.
* @constructor
- * Additional parameters for one or more operations
+ * Additional parameters for the parameterGrouping_postRequired operation.
* @member {number} body
*
* @member {string} [customHeader]
@@ -49,7 +49,7 @@ export interface ParameterGroupingPostRequiredParameters {
* @class
* Initializes a new instance of the ParameterGroupingPostOptionalParameters class.
* @constructor
- * Additional parameters for one or more operations
+ * Additional parameters for the parameterGrouping_postOptional operation.
* @member {string} [customHeader]
*
* @member {number} [query] Query parameter with default
@@ -64,7 +64,9 @@ export interface ParameterGroupingPostOptionalParameters {
* @class
* Initializes a new instance of the FirstParameterGroup class.
* @constructor
- * Additional parameters for one or more operations
+ * Additional parameters for a set of operations, such as:
+ * parameterGrouping_postMultiParamGroups,
+ * parameterGrouping_postSharedParameterGroupObject.
* @member {string} [headerOne]
*
* @member {number} [queryOne] Query parameter with default
@@ -79,7 +81,8 @@ export interface FirstParameterGroup {
* @class
* Initializes a new instance of the ParameterGroupingPostMultiParamGroupsSecondParamGroup class.
* @constructor
- * Additional parameters for one or more operations
+ * Additional parameters for the parameterGrouping_postMultiParamGroups
+ * operation.
* @member {string} [headerTwo]
*
* @member {number} [queryTwo] Query parameter with default
diff --git a/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/AzureParameterGrouping/models/parameterGroupingPostMultiParamGroupsSecondParamGroup.js b/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/AzureParameterGrouping/models/parameterGroupingPostMultiParamGroupsSecondParamGroup.js
index 372e9841d5145..430f4f669f12c 100644
--- a/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/AzureParameterGrouping/models/parameterGroupingPostMultiParamGroupsSecondParamGroup.js
+++ b/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/AzureParameterGrouping/models/parameterGroupingPostMultiParamGroupsSecondParamGroup.js
@@ -14,7 +14,8 @@
* @class
* Initializes a new instance of the ParameterGroupingPostMultiParamGroupsSecondParamGroup class.
* @constructor
- * Additional parameters for one or more operations
+ * Additional parameters for the parameterGrouping_postMultiParamGroups
+ * operation.
* @member {string} [headerTwo]
*
* @member {number} [queryTwo] Query parameter with default. Default value: 30
diff --git a/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/AzureParameterGrouping/models/parameterGroupingPostOptionalParameters.js b/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/AzureParameterGrouping/models/parameterGroupingPostOptionalParameters.js
index c0f6f1b6635a6..b100000a14aee 100644
--- a/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/AzureParameterGrouping/models/parameterGroupingPostOptionalParameters.js
+++ b/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/AzureParameterGrouping/models/parameterGroupingPostOptionalParameters.js
@@ -14,7 +14,7 @@
* @class
* Initializes a new instance of the ParameterGroupingPostOptionalParameters class.
* @constructor
- * Additional parameters for one or more operations
+ * Additional parameters for the parameterGrouping_postOptional operation.
* @member {string} [customHeader]
*
* @member {number} [query] Query parameter with default. Default value: 30 .
diff --git a/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/AzureParameterGrouping/models/parameterGroupingPostRequiredParameters.js b/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/AzureParameterGrouping/models/parameterGroupingPostRequiredParameters.js
index ca7054de32923..70dfd11124694 100644
--- a/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/AzureParameterGrouping/models/parameterGroupingPostRequiredParameters.js
+++ b/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/AzureParameterGrouping/models/parameterGroupingPostRequiredParameters.js
@@ -14,7 +14,7 @@
* @class
* Initializes a new instance of the ParameterGroupingPostRequiredParameters class.
* @constructor
- * Additional parameters for one or more operations
+ * Additional parameters for the parameterGrouping_postRequired operation.
* @member {number} body
*
* @member {string} [customHeader]
diff --git a/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/Paging/models/index.d.ts b/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/Paging/models/index.d.ts
index 3f94c15e7a4b4..4df2fb2dc1100 100644
--- a/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/Paging/models/index.d.ts
+++ b/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/Paging/models/index.d.ts
@@ -56,7 +56,7 @@ export interface OperationResult {
* @class
* Initializes a new instance of the PagingGetMultiplePagesOptions class.
* @constructor
- * Additional parameters for one or more operations
+ * Additional parameters for the Paging_getMultiplePages operation.
* @member {number} [maxresults] Sets the maximum number of items to return in
* the response.
*
@@ -73,7 +73,7 @@ export interface PagingGetMultiplePagesOptions {
* @class
* Initializes a new instance of the PagingGetMultiplePagesWithOffsetOptions class.
* @constructor
- * Additional parameters for one or more operations
+ * Additional parameters for the Paging_getMultiplePagesWithOffset operation.
* @member {number} [maxresults] Sets the maximum number of items to return in
* the response.
*
diff --git a/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/Paging/models/pagingGetMultiplePagesOptions.js b/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/Paging/models/pagingGetMultiplePagesOptions.js
index 5c7103c374193..054ea7a991213 100644
--- a/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/Paging/models/pagingGetMultiplePagesOptions.js
+++ b/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/Paging/models/pagingGetMultiplePagesOptions.js
@@ -14,7 +14,7 @@
* @class
* Initializes a new instance of the PagingGetMultiplePagesOptions class.
* @constructor
- * Additional parameters for one or more operations
+ * Additional parameters for the Paging_getMultiplePages operation.
* @member {number} [maxresults] Sets the maximum number of items to return in
* the response.
*
diff --git a/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/Paging/models/pagingGetMultiplePagesWithOffsetOptions.js b/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/Paging/models/pagingGetMultiplePagesWithOffsetOptions.js
index 1398c4f710fac..03b9df22d91a4 100644
--- a/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/Paging/models/pagingGetMultiplePagesWithOffsetOptions.js
+++ b/AutoRest/Generators/NodeJS/Azure.NodeJS.Tests/Expected/AcceptanceTests/Paging/models/pagingGetMultiplePagesWithOffsetOptions.js
@@ -14,7 +14,7 @@
* @class
* Initializes a new instance of the PagingGetMultiplePagesWithOffsetOptions class.
* @constructor
- * Additional parameters for one or more operations
+ * Additional parameters for the Paging_getMultiplePagesWithOffset operation.
* @member {number} [maxresults] Sets the maximum number of items to return in
* the response.
*
diff --git a/AutoRest/Generators/NodeJS/NodeJS.Tests/Expected/AcceptanceTests/ModelFlattening/models/flattenParameterGroup.js b/AutoRest/Generators/NodeJS/NodeJS.Tests/Expected/AcceptanceTests/ModelFlattening/models/flattenParameterGroup.js
index e034f91979bfb..d548e2c6afea8 100644
--- a/AutoRest/Generators/NodeJS/NodeJS.Tests/Expected/AcceptanceTests/ModelFlattening/models/flattenParameterGroup.js
+++ b/AutoRest/Generators/NodeJS/NodeJS.Tests/Expected/AcceptanceTests/ModelFlattening/models/flattenParameterGroup.js
@@ -14,7 +14,7 @@
* @class
* Initializes a new instance of the FlattenParameterGroup class.
* @constructor
- * Additional parameters for one or more operations
+ * Additional parameters for the putSimpleProductWithGrouping operation.
* @member {string} name Product name with value 'groupproduct'
*
* @member {string} productId Unique identifier representing a specific
diff --git a/AutoRest/Generators/NodeJS/NodeJS.Tests/Expected/AcceptanceTests/ModelFlattening/models/index.d.ts b/AutoRest/Generators/NodeJS/NodeJS.Tests/Expected/AcceptanceTests/ModelFlattening/models/index.d.ts
index ea95cb0f14945..a105800deac0a 100644
--- a/AutoRest/Generators/NodeJS/NodeJS.Tests/Expected/AcceptanceTests/ModelFlattening/models/index.d.ts
+++ b/AutoRest/Generators/NodeJS/NodeJS.Tests/Expected/AcceptanceTests/ModelFlattening/models/index.d.ts
@@ -137,7 +137,7 @@ export interface SimpleProduct extends BaseProduct {
* @class
* Initializes a new instance of the FlattenParameterGroup class.
* @constructor
- * Additional parameters for one or more operations
+ * Additional parameters for the putSimpleProductWithGrouping operation.
* @member {string} name Product name with value 'groupproduct'
*
* @member {string} productId Unique identifier representing a specific
diff --git a/AutoRest/Generators/Python/Azure.Python.Tests/Expected/AcceptanceTests/AzureParameterGrouping/autorestparametergroupingtestservice/models/first_parameter_group.py b/AutoRest/Generators/Python/Azure.Python.Tests/Expected/AcceptanceTests/AzureParameterGrouping/autorestparametergroupingtestservice/models/first_parameter_group.py
index dec4f136004f7..172a4349ff36c 100644
--- a/AutoRest/Generators/Python/Azure.Python.Tests/Expected/AcceptanceTests/AzureParameterGrouping/autorestparametergroupingtestservice/models/first_parameter_group.py
+++ b/AutoRest/Generators/Python/Azure.Python.Tests/Expected/AcceptanceTests/AzureParameterGrouping/autorestparametergroupingtestservice/models/first_parameter_group.py
@@ -14,7 +14,9 @@
class FirstParameterGroup(Model):
"""
- Additional parameters for one or more operations
+ Additional parameters for a set of operations, such as:
+ parameterGrouping_postMultiParamGroups,
+ parameterGrouping_postSharedParameterGroupObject.
:param header_one:
:type header_one: str
diff --git a/AutoRest/Generators/Python/Azure.Python.Tests/Expected/AcceptanceTests/AzureParameterGrouping/autorestparametergroupingtestservice/models/parameter_grouping_post_multi_param_groups_second_param_group.py b/AutoRest/Generators/Python/Azure.Python.Tests/Expected/AcceptanceTests/AzureParameterGrouping/autorestparametergroupingtestservice/models/parameter_grouping_post_multi_param_groups_second_param_group.py
index 4d4af238358bc..bccdfab25480f 100644
--- a/AutoRest/Generators/Python/Azure.Python.Tests/Expected/AcceptanceTests/AzureParameterGrouping/autorestparametergroupingtestservice/models/parameter_grouping_post_multi_param_groups_second_param_group.py
+++ b/AutoRest/Generators/Python/Azure.Python.Tests/Expected/AcceptanceTests/AzureParameterGrouping/autorestparametergroupingtestservice/models/parameter_grouping_post_multi_param_groups_second_param_group.py
@@ -14,7 +14,8 @@
class ParameterGroupingPostMultiParamGroupsSecondParamGroup(Model):
"""
- Additional parameters for one or more operations
+ Additional parameters for the parameterGrouping_postMultiParamGroups
+ operation.
:param header_two:
:type header_two: str
diff --git a/AutoRest/Generators/Python/Azure.Python.Tests/Expected/AcceptanceTests/AzureParameterGrouping/autorestparametergroupingtestservice/models/parameter_grouping_post_optional_parameters.py b/AutoRest/Generators/Python/Azure.Python.Tests/Expected/AcceptanceTests/AzureParameterGrouping/autorestparametergroupingtestservice/models/parameter_grouping_post_optional_parameters.py
index 623b79fd0feee..a62313adf9a27 100644
--- a/AutoRest/Generators/Python/Azure.Python.Tests/Expected/AcceptanceTests/AzureParameterGrouping/autorestparametergroupingtestservice/models/parameter_grouping_post_optional_parameters.py
+++ b/AutoRest/Generators/Python/Azure.Python.Tests/Expected/AcceptanceTests/AzureParameterGrouping/autorestparametergroupingtestservice/models/parameter_grouping_post_optional_parameters.py
@@ -14,7 +14,7 @@
class ParameterGroupingPostOptionalParameters(Model):
"""
- Additional parameters for one or more operations
+ Additional parameters for the parameterGrouping_postOptional operation.
:param custom_header:
:type custom_header: str
diff --git a/AutoRest/Generators/Python/Azure.Python.Tests/Expected/AcceptanceTests/AzureParameterGrouping/autorestparametergroupingtestservice/models/parameter_grouping_post_required_parameters.py b/AutoRest/Generators/Python/Azure.Python.Tests/Expected/AcceptanceTests/AzureParameterGrouping/autorestparametergroupingtestservice/models/parameter_grouping_post_required_parameters.py
index 109ebe5ad51e0..409f4ffcdcf26 100644
--- a/AutoRest/Generators/Python/Azure.Python.Tests/Expected/AcceptanceTests/AzureParameterGrouping/autorestparametergroupingtestservice/models/parameter_grouping_post_required_parameters.py
+++ b/AutoRest/Generators/Python/Azure.Python.Tests/Expected/AcceptanceTests/AzureParameterGrouping/autorestparametergroupingtestservice/models/parameter_grouping_post_required_parameters.py
@@ -14,7 +14,7 @@
class ParameterGroupingPostRequiredParameters(Model):
"""
- Additional parameters for one or more operations
+ Additional parameters for the parameterGrouping_postRequired operation.
:param body:
:type body: int
diff --git a/AutoRest/Generators/Python/Azure.Python.Tests/Expected/AcceptanceTests/Paging/autorestpagingtestservice/models/paging_get_multiple_pages_options.py b/AutoRest/Generators/Python/Azure.Python.Tests/Expected/AcceptanceTests/Paging/autorestpagingtestservice/models/paging_get_multiple_pages_options.py
index 4fcaf367d51bc..15ba71465cac8 100644
--- a/AutoRest/Generators/Python/Azure.Python.Tests/Expected/AcceptanceTests/Paging/autorestpagingtestservice/models/paging_get_multiple_pages_options.py
+++ b/AutoRest/Generators/Python/Azure.Python.Tests/Expected/AcceptanceTests/Paging/autorestpagingtestservice/models/paging_get_multiple_pages_options.py
@@ -14,7 +14,7 @@
class PagingGetMultiplePagesOptions(Model):
"""
- Additional parameters for one or more operations
+ Additional parameters for the Paging_getMultiplePages operation.
:param maxresults: Sets the maximum number of items to return in the
response.
diff --git a/AutoRest/Generators/Python/Azure.Python.Tests/Expected/AcceptanceTests/Paging/autorestpagingtestservice/models/paging_get_multiple_pages_with_offset_options.py b/AutoRest/Generators/Python/Azure.Python.Tests/Expected/AcceptanceTests/Paging/autorestpagingtestservice/models/paging_get_multiple_pages_with_offset_options.py
index 48ed388233daf..23e7a887f274c 100644
--- a/AutoRest/Generators/Python/Azure.Python.Tests/Expected/AcceptanceTests/Paging/autorestpagingtestservice/models/paging_get_multiple_pages_with_offset_options.py
+++ b/AutoRest/Generators/Python/Azure.Python.Tests/Expected/AcceptanceTests/Paging/autorestpagingtestservice/models/paging_get_multiple_pages_with_offset_options.py
@@ -14,7 +14,7 @@
class PagingGetMultiplePagesWithOffsetOptions(Model):
"""
- Additional parameters for one or more operations
+ Additional parameters for the Paging_getMultiplePagesWithOffset operation.
:param maxresults: Sets the maximum number of items to return in the
response.
diff --git a/AutoRest/Generators/Python/Azure.Python/AzurePythonCodeGenerator.cs b/AutoRest/Generators/Python/Azure.Python/AzurePythonCodeGenerator.cs
index eeb311593bb52..2bc8932aa11fc 100644
--- a/AutoRest/Generators/Python/Azure.Python/AzurePythonCodeGenerator.cs
+++ b/AutoRest/Generators/Python/Azure.Python/AzurePythonCodeGenerator.cs
@@ -62,7 +62,7 @@ public override void NormalizeClientModel(ServiceClient serviceClient)
AzureExtensions.UpdateHeadMethods(serviceClient);
AzureExtensions.ParseODataExtension(serviceClient);
Extensions.FlattenModels(serviceClient);
- Extensions.AddParameterGroups(serviceClient);
+ ParameterGroupExtensionHelper.AddParameterGroups(serviceClient);
AzureExtensions.AddAzureProperties(serviceClient);
AzureExtensions.SetDefaultResponses(serviceClient);
CorrectFilterParameters(serviceClient);
diff --git a/AutoRest/Generators/Python/Python.Tests/Expected/AcceptanceTests/ModelFlattening/autorestresourceflatteningtestservice/models/flatten_parameter_group.py b/AutoRest/Generators/Python/Python.Tests/Expected/AcceptanceTests/ModelFlattening/autorestresourceflatteningtestservice/models/flatten_parameter_group.py
index 3e66e6a883e48..ef30dd1f2d039 100644
--- a/AutoRest/Generators/Python/Python.Tests/Expected/AcceptanceTests/ModelFlattening/autorestresourceflatteningtestservice/models/flatten_parameter_group.py
+++ b/AutoRest/Generators/Python/Python.Tests/Expected/AcceptanceTests/ModelFlattening/autorestresourceflatteningtestservice/models/flatten_parameter_group.py
@@ -14,7 +14,7 @@
class FlattenParameterGroup(Model):
"""
- Additional parameters for one or more operations
+ Additional parameters for the putSimpleProductWithGrouping operation.
:param name: Product name with value 'groupproduct'
:type name: str