Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
3d4589a
Initial plan
Copilot Apr 8, 2026
169204f
feat: bump TCGC to 0.67.0 and related dependencies
Copilot Apr 8, 2026
09b215a
chore: regenerate test libraries after TCGC 0.67.0 bump
Copilot Apr 8, 2026
3d5aff5
fix: run full Generate.ps1 regen, update SampleService and fix emitte…
Copilot Apr 8, 2026
fe2c147
fix: properly regenerate all test projects with Stub plugin, remove s…
Copilot Apr 8, 2026
df512a9
revert: undo Generate.ps1 and SampleService changes per reviewer feed…
Copilot Apr 8, 2026
9173283
chore: temporarily disable SampleService and Sample-TypeSpec generati…
Copilot Apr 8, 2026
96fa8ba
fix: only comment out SampleService plugin generation, keep Sample-Ty…
Copilot Apr 8, 2026
fba4835
fix generate.ps1
jorgerangel-msft Apr 8, 2026
a823cd9
revert: restore SampleService/package.json to original state
Copilot Apr 8, 2026
287c94d
chore: comment out Sample-TypeSpec generation (depends on SampleServi…
Copilot Apr 8, 2026
9fb3cb2
fix: restore Generate.ps1 to match Jorge's commit fba4835 exactly
Copilot Apr 8, 2026
60c655a
fix: restore single-discriminator generated files accidentally delete…
Copilot Apr 8, 2026
48e9589
merge: resolve conflicts with main (take Generate.ps1 from main, temp…
Copilot Apr 8, 2026
ee6de33
fix: downgrade fast-xml-parser to 5.5.10 in package-lock.json
Copilot Apr 8, 2026
3af966d
chore: bump TCGC from 0.67.0 to 0.67.1
Copilot Apr 9, 2026
5730a20
fix deps
jorgerangel-msft Apr 9, 2026
b292c61
Merge branch 'main' into copilot/bump-tcgc-to-0-67-0
jorgerangel-msft Apr 9, 2026
b92839a
Merge branch 'main' into copilot/bump-tcgc-to-0-67-0
jorgerangel-msft Apr 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,9 @@ function createEnumType(
values: values,
// constantType.access, TODO - constant type now does not have access. TCGC will add it later
access:
sdkType.kind === "enum" ? getAccessOverride(sdkContext, sdkType.__raw as any) : undefined,
sdkType.kind === "enum" && sdkType.__raw
? getAccessOverride(sdkContext, sdkType.__raw as any)
: undefined,
namespace: namespace,
deprecation: sdkType.deprecation,
summary: sdkType.summary,
Expand Down
2 changes: 1 addition & 1 deletion packages/http-client-csharp/emitter/src/lib/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -234,5 +234,5 @@ export function containsMultiServiceClient(
* @beta
*/
export function isMultiServiceClient(client: SdkClientType<SdkHttpOperation>): boolean {
return Array.isArray(client.__raw.service) && client.__raw.service.length > 1;
return client.__raw.services.length > 1;
}
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,8 @@ describe("isMultiServiceClient", () => {
@client({
name: "CombinedClient",
service: [ServiceA, ServiceB],
autoMergeService: true,
})
@useDependency(ServiceA.VersionsA.av1, ServiceB.VersionsB.bv2)
namespace Service.MultiService {}
`,
runner,
Expand Down Expand Up @@ -210,6 +210,7 @@ describe("isMultiServiceClient", () => {
@client({
name: "CombinedClient",
service: [ServiceA, ServiceB],
autoMergeService: true,
})

namespace Service.MultiService {}
Expand Down Expand Up @@ -426,8 +427,8 @@ describe("client name suffix", () => {
@client({
name: "Combined",
service: [ServiceA, ServiceB],
autoMergeService: true,
})
@useDependency(ServiceA.VersionsA.av1, ServiceB.VersionsB.bv1)
namespace Service.MultiService {}
`,
runner,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -290,8 +290,8 @@ describe("parseApiVersions", () => {
@client({
name: "CombinedClient",
service: [ServiceA, ServiceB],
autoMergeService: true,
})
@useDependency(ServiceA.VersionsA.av1, ServiceB.VersionsB.bv2)
namespace Service.MultiService {}
`,
runner,
Expand Down Expand Up @@ -406,6 +406,7 @@ describe("parseApiVersions", () => {
@client({
name: "CombinedClient",
service: [ServiceA, ServiceB],
autoMergeService: true,
})
namespace Service.MultiService {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -219,14 +219,14 @@ internal PipelineMessage CreateReturnsAnonymousModelRequest(RequestOptions optio
return message;
}

internal PipelineMessage CreateGetUnknownValueRequest(string accept, RequestOptions options)
internal PipelineMessage CreateGetUnknownValueRequest(RequestOptions options)
{
ClientUriBuilder uri = new ClientUriBuilder();
uri.Reset(_endpoint);
uri.AppendPath("/unknown-value", false);
PipelineMessage message = Pipeline.CreateMessage(uri.ToUri(), "GET", PipelineMessageClassifier200);
PipelineRequest request = message.Request;
request.Headers.Set("Accept", accept);
request.Headers.Set("Accept", "text/plain");
message.Apply(options);
return message;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1053,17 +1053,12 @@ public virtual async Task<ClientResult<ReturnsAnonymousModelResponse>> ReturnsAn
/// </item>
/// </list>
/// </summary>
/// <param name="accept"></param>
/// <param name="options"> The request options, which can override default behaviors of the client pipeline on a per-call basis. </param>
/// <exception cref="ArgumentNullException"> <paramref name="accept"/> is null. </exception>
/// <exception cref="ArgumentException"> <paramref name="accept"/> is an empty string, and was expected to be non-empty. </exception>
/// <exception cref="ClientResultException"> Service returned a non-success status code. </exception>
/// <returns> The response returned from the service. </returns>
public virtual ClientResult GetUnknownValue(string accept, RequestOptions options)
public virtual ClientResult GetUnknownValue(RequestOptions options)
{
Argument.AssertNotNullOrEmpty(accept, nameof(accept));

using PipelineMessage message = CreateGetUnknownValueRequest(accept, options);
using PipelineMessage message = CreateGetUnknownValueRequest(options);
return ClientResult.FromResponse(Pipeline.ProcessMessage(message, options));
}

Expand All @@ -1075,45 +1070,30 @@ public virtual ClientResult GetUnknownValue(string accept, RequestOptions option
/// </item>
/// </list>
/// </summary>
/// <param name="accept"></param>
/// <param name="options"> The request options, which can override default behaviors of the client pipeline on a per-call basis. </param>
/// <exception cref="ArgumentNullException"> <paramref name="accept"/> is null. </exception>
/// <exception cref="ArgumentException"> <paramref name="accept"/> is an empty string, and was expected to be non-empty. </exception>
/// <exception cref="ClientResultException"> Service returned a non-success status code. </exception>
/// <returns> The response returned from the service. </returns>
public virtual async Task<ClientResult> GetUnknownValueAsync(string accept, RequestOptions options)
public virtual async Task<ClientResult> GetUnknownValueAsync(RequestOptions options)
{
Argument.AssertNotNullOrEmpty(accept, nameof(accept));

using PipelineMessage message = CreateGetUnknownValueRequest(accept, options);
using PipelineMessage message = CreateGetUnknownValueRequest(options);
return ClientResult.FromResponse(await Pipeline.ProcessMessageAsync(message, options).ConfigureAwait(false));
}

/// <summary> get extensible enum. </summary>
/// <param name="accept"></param>
/// <param name="cancellationToken"> The cancellation token that can be used to cancel the operation. </param>
/// <exception cref="ArgumentNullException"> <paramref name="accept"/> is null. </exception>
/// <exception cref="ArgumentException"> <paramref name="accept"/> is an empty string, and was expected to be non-empty. </exception>
/// <exception cref="ClientResultException"> Service returned a non-success status code. </exception>
public virtual ClientResult<string> GetUnknownValue(string accept, CancellationToken cancellationToken = default)
public virtual ClientResult<string> GetUnknownValue(CancellationToken cancellationToken = default)
{
Argument.AssertNotNullOrEmpty(accept, nameof(accept));

ClientResult result = GetUnknownValue(accept, cancellationToken.ToRequestOptions());
ClientResult result = GetUnknownValue(cancellationToken.ToRequestOptions());
return ClientResult.FromValue(result.GetRawResponse().Content.ToString(), result.GetRawResponse());
}

/// <summary> get extensible enum. </summary>
/// <param name="accept"></param>
/// <param name="cancellationToken"> The cancellation token that can be used to cancel the operation. </param>
/// <exception cref="ArgumentNullException"> <paramref name="accept"/> is null. </exception>
/// <exception cref="ArgumentException"> <paramref name="accept"/> is an empty string, and was expected to be non-empty. </exception>
/// <exception cref="ClientResultException"> Service returned a non-success status code. </exception>
public virtual async Task<ClientResult<string>> GetUnknownValueAsync(string accept, CancellationToken cancellationToken = default)
public virtual async Task<ClientResult<string>> GetUnknownValueAsync(CancellationToken cancellationToken = default)
{
Argument.AssertNotNullOrEmpty(accept, nameof(accept));

ClientResult result = await GetUnknownValueAsync(accept, cancellationToken.ToRequestOptions()).ConfigureAwait(false);
ClientResult result = await GetUnknownValueAsync(cancellationToken.ToRequestOptions()).ConfigureAwait(false);
return ClientResult.FromValue(result.GetRawResponse().Content.ToString(), result.GetRawResponse());
}

Expand Down
Loading
Loading