Skip to content

Commit eb24278

Browse files
committed
fix issue in populate rest opearation arguments.
1 parent 8e86f0b commit eb24278

25 files changed

+4334
-1515
lines changed

eng/packages/http-client-csharp-mgmt/generator/Azure.Generator.Management/src/Providers/TagMethodProviders/BaseTagMethodProvider.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
using Azure.Generator.Management.Extensions;
55
using Azure.Generator.Management.Models;
6+
using Azure.Generator.Management.Primitives;
67
using Azure.Generator.Management.Providers.OperationMethodProviders;
78
using Azure.Generator.Management.Snippets;
89
using Azure.Generator.Management.Utilities;
@@ -170,7 +171,7 @@ protected static MethodBodyStatement GetResourceDataStatements(
170171
return Declare(
171172
variableName,
172173
resourceClientProvider.ResourceData.Type,
173-
new TupleExpression(This.Invoke(getMethod, [cancellationTokenParam], null, isAsync))
174+
new TupleExpression(This.Invoke(getMethod, [KnownAzureParameters.CancellationTokenWithoutDefault.PositionalReference(cancellationTokenParam)], null, isAsync))
174175
.Property("Value").Property("Data"),
175176
out currentVar);
176177
}

eng/packages/http-client-csharp-mgmt/generator/Azure.Generator.Management/src/Utilities/RequestPathPatternExtensions.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,15 @@ public static IReadOnlyList<ValueExpression> PopulateArguments(
5959
}
6060
else
6161
{
62-
var methodParam = methodParameters.Single(p => p.WireInfo.SerializedName == parameter.WireInfo.SerializedName);
63-
arguments.Add(Convert(methodParam, methodParam.Type, parameter.Type));
62+
var methodParam = methodParameters.SingleOrDefault(p => p.WireInfo.SerializedName == parameter.WireInfo.SerializedName);
63+
if (methodParam != null)
64+
{
65+
arguments.Add(Convert(methodParam, methodParam.Type, parameter.Type));
66+
}
67+
else
68+
{
69+
arguments.Add(Null);
70+
}
6471
}
6572
}
6673

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import "@typespec/rest";
2+
import "@typespec/openapi";
3+
import "@azure-tools/typespec-azure-core";
4+
import "@azure-tools/typespec-azure-resource-manager";
5+
6+
namespace MgmtTypeSpec;
7+
8+
using TypeSpec.Rest;
9+
using Azure.ResourceManager;
10+
using TypeSpec.Http;
11+
using TypeSpec.OpenAPI;
12+
13+
14+
model JobResource
15+
is Azure.ResourceManager.TrackedResource<JobProperties, false> {
16+
...ResourceNameParameter<
17+
Resource = JobResource,
18+
KeyName = "jobName",
19+
SegmentName = "jobs",
20+
NamePattern = "^[-\\w\\.]+$"
21+
>;
22+
}
23+
24+
model JobProperties {
25+
jobName: string;
26+
}
27+
28+
@armResourceOperations
29+
interface JobResources {
30+
/**
31+
* Gets information about the specified job.
32+
*/
33+
get is ArmResourceRead<
34+
JobResource,
35+
Parameters = {
36+
/**
37+
* $expand is supported on details parameter for job, which provides details on the job stages.
38+
*/
39+
@query("$expand")
40+
$expand?: string;
41+
},
42+
>;
43+
44+
#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-patch" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"
45+
@patch(#{ implicitOptionality: false })
46+
update is ArmCustomPatchAsync<
47+
JobResource,
48+
PatchModel = JobResourceUpdateParameter,
49+
>;
50+
}
51+
52+
model JobResourceUpdateParameter {
53+
properties?: JobProperties;
54+
#suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"
55+
tags?: Record<string>;
56+
}

eng/packages/http-client-csharp-mgmt/generator/TestProjects/Local/Mgmt-TypeSpec/main.tsp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import "./routes.tsp";
99
import "./endpoint.tsp";
1010
import "./selfhelp.tsp";
1111
import "./playwright.tsp";
12+
import "./databox.tsp";
1213
using TypeSpec.Versioning;
1314
using Azure.ClientGenerator.Core;
1415
using Azure.ResourceManager;

eng/packages/http-client-csharp-mgmt/generator/TestProjects/Local/Mgmt-TypeSpec/src/Generated/BarResource.cs

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

eng/packages/http-client-csharp-mgmt/generator/TestProjects/Local/Mgmt-TypeSpec/src/Generated/BazResource.cs

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

eng/packages/http-client-csharp-mgmt/generator/TestProjects/Local/Mgmt-TypeSpec/src/Generated/Extensions/MgmtTypeSpecExtensions.cs

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

eng/packages/http-client-csharp-mgmt/generator/TestProjects/Local/Mgmt-TypeSpec/src/Generated/Extensions/MockableMgmtTypeSpecArmClient.cs

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

eng/packages/http-client-csharp-mgmt/generator/TestProjects/Local/Mgmt-TypeSpec/src/Generated/Extensions/MockableMgmtTypeSpecResourceGroupResource.cs

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

0 commit comments

Comments
 (0)