Skip to content

Commit cd51db9

Browse files
refactor: consume input parameter changes from MTG (Azure#51955)
1 parent 8307c5e commit cd51db9

File tree

114 files changed

+21474
-21295
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

114 files changed

+21474
-21295
lines changed

eng/Packages.Data.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,7 @@
457457

458458
<PropertyGroup>
459459
<TestProxyVersion>1.0.0-dev.20250805.1</TestProxyVersion>
460-
<UnbrandedGeneratorVersion>1.0.0-alpha.20250813.1</UnbrandedGeneratorVersion>
460+
<UnbrandedGeneratorVersion>1.0.0-alpha.20250813.2</UnbrandedGeneratorVersion>
461461
<AzureGeneratorVersion>1.0.0-alpha.20250729.4</AzureGeneratorVersion>
462462
</PropertyGroup>
463463
</Project>

eng/http-client-csharp-emitter-package-lock.json

Lines changed: 24 additions & 36 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

eng/http-client-csharp-emitter-package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"main": "dist/src/index.js",
33
"dependencies": {
44
"client-plugin": "file:../../../../eng/packages/plugins/client",
5-
"@typespec/http-client-csharp": "1.0.0-alpha.20250813.1"
5+
"@typespec/http-client-csharp": "1.0.0-alpha.20250813.2"
66
},
77
"devDependencies": {
88
"@azure-tools/typespec-azure-core": "0.59.0",

eng/packages/http-client-csharp/generator/Azure.Generator/src/Visitors/MatchConditionsHeadersVisitor.cs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -195,12 +195,15 @@ private static RequestConditionHeaders ParseMatchConditionHeaders(ScmMethodProvi
195195

196196
foreach (var parameter in allParameters)
197197
{
198-
if (parameter.IsRequired || parameter.Location != InputRequestLocation.Header)
198+
// skip optional or non-header parameters
199+
if (parameter.IsRequired ||
200+
((parameter is InputMethodParameter inputParameter && inputParameter.Location != InputRequestLocation.Header) ||
201+
(parameter is not InputMethodParameter && parameter is not InputHeaderParameter)))
199202
{
200203
continue;
201204
}
202205

203-
var headerName = parameter.NameInRequest;
206+
var headerName = parameter.SerializedName;
204207
if (!_conditionalHeaders.Contains(headerName))
205208
{
206209
continue;
@@ -531,8 +534,9 @@ private static bool ContainsOptionalMatchConditionParameters(InputServiceMethod
531534
{
532535
return inputServiceMethod.Parameters.Concat(inputServiceMethod.Operation.Parameters)
533536
.Any(parameter => !parameter.IsRequired &&
534-
parameter.Location == InputRequestLocation.Header &&
535-
_conditionalHeaders.Contains(parameter.NameInRequest));
537+
((parameter is InputMethodParameter inputMethodParameter && inputMethodParameter.Location == InputRequestLocation.Header) ||
538+
parameter is InputHeaderParameter) &&
539+
_conditionalHeaders.Contains(parameter.SerializedName));
536540
}
537541

538542
[Flags]

eng/packages/http-client-csharp/generator/Azure.Generator/src/Visitors/RequestClientIdHeaderVisitor.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@ internal class RequestClientIdHeaderVisitor : ScmLibraryVisitor
2626
ScmMethodProviderCollection? methods)
2727
{
2828
var clientRequestIdParameter =
29-
serviceMethod.Parameters.FirstOrDefault(p => p.NameInRequest == ClientRequestIdParameterName);
29+
serviceMethod.Parameters.FirstOrDefault(p => p.SerializedName == ClientRequestIdParameterName);
3030

3131
if (clientRequestIdParameter != null)
3232
{
3333
// Update the service method to remove the client-request-id parameter from the request parameters
34-
serviceMethod.Update(parameters: [.. serviceMethod.Parameters.Where(p => p.NameInRequest != ClientRequestIdParameterName)]);
35-
serviceMethod.Operation.Update(parameters: [.. serviceMethod.Operation.Parameters.Where(p => p.NameInRequest != ClientRequestIdParameterName)]);
34+
serviceMethod.Update(parameters: [.. serviceMethod.Parameters.Where(p => p.SerializedName != ClientRequestIdParameterName)]);
35+
serviceMethod.Operation.Update(parameters: [.. serviceMethod.Operation.Parameters.Where(p => p.SerializedName != ClientRequestIdParameterName)]);
3636

3737
// Create a new method collection with the updated service method
3838
methods = new ScmMethodProviderCollection(serviceMethod, client);
@@ -66,7 +66,7 @@ internal class RequestClientIdHeaderVisitor : ScmLibraryVisitor
6666
{
6767
// Set the client-request-id header
6868
newStatements.Add(requestVariable.As<Request>().SetHeaderValue(
69-
clientRequestIdParameter.NameInRequest,
69+
clientRequestIdParameter.SerializedName,
7070
requestVariable.Property(nameof(Request.ClientRequestId))));
7171
}
7272

eng/packages/http-client-csharp/generator/Azure.Generator/src/Visitors/SpecialHeadersVisitor.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,14 @@ internal class SpecialHeadersVisitor : ScmLibraryVisitor
2626
ScmMethodProviderCollection? methods)
2727
{
2828
var returnClientRequestIdParameter =
29-
serviceMethod.Parameters.FirstOrDefault(p => p.NameInRequest == ReturnClientRequestIdParameterName);
29+
serviceMethod.Parameters.FirstOrDefault(p => p.SerializedName == ReturnClientRequestIdParameterName);
3030
var xMsClientRequestIdParameter =
31-
serviceMethod.Parameters.FirstOrDefault(p => p.NameInRequest == XMsClientRequestIdParameterName);
31+
serviceMethod.Parameters.FirstOrDefault(p => p.SerializedName == XMsClientRequestIdParameterName);
3232

3333
if (returnClientRequestIdParameter != null || xMsClientRequestIdParameter != null)
3434
{
35-
serviceMethod.Update(parameters: [.. serviceMethod.Parameters.Where(p => p.NameInRequest != ReturnClientRequestIdParameterName && p.NameInRequest != XMsClientRequestIdParameterName)]);
36-
serviceMethod.Operation.Update(parameters: [.. serviceMethod.Operation.Parameters.Where(p => p.NameInRequest != ReturnClientRequestIdParameterName && p.NameInRequest != XMsClientRequestIdParameterName)]);
35+
serviceMethod.Update(parameters: [.. serviceMethod.Parameters.Where(p => p.SerializedName != ReturnClientRequestIdParameterName && p.SerializedName != XMsClientRequestIdParameterName)]);
36+
serviceMethod.Operation.Update(parameters: [.. serviceMethod.Operation.Parameters.Where(p => p.SerializedName != ReturnClientRequestIdParameterName && p.SerializedName != XMsClientRequestIdParameterName)]);
3737

3838
// Create a new method collection with the updated service method
3939
methods = new ScmMethodProviderCollection(serviceMethod, client);
@@ -71,7 +71,7 @@ internal class SpecialHeadersVisitor : ScmLibraryVisitor
7171
// Set the return-client-request-id header
7272
newStatements.Add(requestVariable!.ToApi<HttpRequestApi>().SetHeaders(
7373
[
74-
Literal(returnClientRequestIdParameter.NameInRequest),
74+
Literal(returnClientRequestIdParameter.SerializedName),
7575
Literal(value.ToString().ToLowerInvariant())
7676
]));
7777
}

eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/ClientProviders/ClientProviderTests.cs

Lines changed: 23 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -161,92 +161,83 @@ private void ValidatePrimaryConstructor(
161161
Assert.AreEqual(expected, primaryCtorBody?.ToDisplayString());
162162
}
163163

164-
private static IEnumerable<TestCaseData> BuildConstructorsTestCases
164+
public static IEnumerable<TestCaseData> BuildConstructorsTestCases
165165
{
166166
get
167167
{
168168
yield return new TestCaseData(new List<InputParameter>
169169
{
170-
InputFactory.Parameter(
170+
InputFactory.PathParameter(
171171
"optionalParam",
172172
InputPrimitiveType.String,
173-
location: InputRequestLocation.None,
174-
kind: InputParameterKind.Client),
175-
InputFactory.Parameter(
173+
scope: InputParameterScope.Client),
174+
InputFactory.EndpointParameter(
176175
KnownParameters.Endpoint.Name,
177176
InputPrimitiveType.String,
178-
location: InputRequestLocation.None,
179177
defaultValue: InputFactory.Constant.String("someValue"),
180-
kind: InputParameterKind.Client,
178+
scope: InputParameterScope.Client,
181179
isEndpoint: true)
182180
}).SetProperty("caseName", "WithDefault");
183181
// scenario where endpoint is required
184182
yield return new TestCaseData(new List<InputParameter>
185183
{
186-
InputFactory.Parameter(
184+
InputFactory.EndpointParameter(
187185
KnownParameters.Endpoint.Name,
188186
InputPrimitiveType.String,
189-
location: InputRequestLocation.None,
190-
kind: InputParameterKind.Client,
187+
scope: InputParameterScope.Client,
191188
isRequired: true,
192189
isEndpoint: true),
193-
InputFactory.Parameter(
190+
InputFactory.PathParameter(
194191
"optionalParam",
195192
InputPrimitiveType.String,
196-
location: InputRequestLocation.None,
197-
kind: InputParameterKind.Client)
193+
scope: InputParameterScope.Client)
198194
}).SetProperty("caseName", "WithRequired");
199195
}
200196
}
201197

202-
private static IEnumerable<TestCaseData> BuildAuthFieldsTestCases
198+
public static IEnumerable<TestCaseData> BuildAuthFieldsTestCases
203199
{
204200
get
205201
{
206202
yield return new TestCaseData(new List<InputParameter>
207203
{
208-
InputFactory.Parameter(
204+
InputFactory.EndpointParameter(
209205
"optionalParam",
210206
InputPrimitiveType.String,
211-
location: InputRequestLocation.None,
212-
kind: InputParameterKind.Client),
213-
InputFactory.Parameter(
207+
scope: InputParameterScope.Client),
208+
209+
InputFactory.EndpointParameter(
214210
KnownParameters.Endpoint.Name,
215211
InputPrimitiveType.String,
216-
location: InputRequestLocation.None,
217-
kind: InputParameterKind.Client,
212+
scope: InputParameterScope.Client,
218213
isEndpoint: true)
219214
});
220215
yield return new TestCaseData(new List<InputParameter>
221216
{
222217
// have to explicitly set isRequired because we now call CreateParameter in buildFields
223-
InputFactory.Parameter(
218+
InputFactory.EndpointParameter(
224219
"optionalNullableParam",
225220
InputPrimitiveType.String,
226-
location: InputRequestLocation.None,
227221
defaultValue: InputFactory.Constant.String("someValue"),
228-
kind: InputParameterKind.Client,
222+
scope: InputParameterScope.Client,
229223
isRequired: false),
230-
InputFactory.Parameter(
224+
InputFactory.EndpointParameter(
231225
"requiredParam2",
232226
InputPrimitiveType.String,
233-
location: InputRequestLocation.None,
234227
defaultValue: InputFactory.Constant.String("someValue"),
235-
kind: InputParameterKind.Client,
228+
scope: InputParameterScope.Client,
236229
isRequired: true),
237-
InputFactory.Parameter(
230+
InputFactory.EndpointParameter(
238231
"requiredParam3",
239232
InputPrimitiveType.Int64,
240-
location: InputRequestLocation.None,
241233
defaultValue: InputFactory.Constant.Int64(2),
242-
kind: InputParameterKind.Client,
234+
scope: InputParameterScope.Client,
243235
isRequired: true),
244-
InputFactory.Parameter(
236+
InputFactory.EndpointParameter(
245237
KnownParameters.Endpoint.Name,
246238
InputPrimitiveType.String,
247-
location: InputRequestLocation.None,
248239
defaultValue: null,
249-
kind: InputParameterKind.Client,
240+
scope: InputParameterScope.Client,
250241
isEndpoint: true)
251242
});
252243
}

eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/ContinuationTokenTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ private static void CreatePagingOperation(InputResponseLocation responseLocation
131131
[
132132
InputFactory.Property("color", InputPrimitiveType.String, isRequired: true),
133133
]);
134-
var parameter = InputFactory.Parameter("myToken", InputPrimitiveType.String, isRequired: true, location: InputRequestLocation.Query);
134+
var parameter = InputFactory.QueryParameter("myToken", InputPrimitiveType.String, isRequired: true);
135135
var paging = InputFactory.ContinuationTokenPagingMetadata(parameter, "cats", "nextPage", responseLocation);
136136
var response = InputFactory.OperationResponse(
137137
[200],

eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/ListPageableTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ private static void CreatePagingOperation()
7575
[
7676
InputFactory.Property("color", InputPrimitiveType.String, isRequired: true),
7777
]);
78-
var parameter = InputFactory.Parameter("animalKind", InputPrimitiveType.String, isRequired: true, location: InputRequestLocation.Query);
78+
var parameter = InputFactory.QueryParameter("animalKind", InputPrimitiveType.String, isRequired: true);
7979
var pagingMetadata = InputFactory.PagingMetadata(["cats"], null, null);
8080
var response = InputFactory.OperationResponse(
8181
[200],

0 commit comments

Comments
 (0)