Skip to content

Commit 9534191

Browse files
committed
## Csharp SDK Changes Detected:
* `ClerkBackendApi.ActorTokens.Revoke()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Domains.Add()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Clients.Get()`: * `response.lastAuthenticationStrategy` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.EmailAddresses.Create()`: * `response.verification` **Changed** **Breaking** ⚠️ * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.EmailAddresses.Get()`: * `response.verification` **Changed** **Breaking** ⚠️ * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Commerce.CancelSubscriptionItem()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.EmailAddresses.Delete()`: * `response.externalId` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.EmailAddresses.Update()`: * `response.verification` **Changed** **Breaking** ⚠️ * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.PhoneNumbers.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.PhoneNumbers.Get()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.PhoneNumbers.Delete()`: * `response.externalId` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.PhoneNumbers.Update()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Sessions.List()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Sessions.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Sessions.Get()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Sessions.Refresh()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Sessions.Revoke()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Sessions.CreateToken()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Sessions.CreateTokenFromTemplate()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.EmailSmsTemplates.List()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.EmailSmsTemplates.Get()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.EmailSmsTemplates.Revert()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.EmailSmsTemplates.ToggleTemplateDelivery()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.EmailAndSmsTemplates.Upsert()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Templates.Preview()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.List()`: * `response.[]` **Changed** **Breaking** ⚠️ * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.Create()`: * `request.Locale` **Added** * `response` **Changed** **Breaking** ⚠️ * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.Count()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.Get()`: * `response` **Changed** **Breaking** ⚠️ * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.Update()`: * `requestBody.Locale` **Added** * `response` **Changed** **Breaking** ⚠️ * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.Delete()`: * `response.externalId` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.Ban()`: * `response` **Changed** **Breaking** ⚠️ * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.Unban()`: * `response` **Changed** **Breaking** ⚠️ * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.BulkBan()`: * `response.[]` **Changed** **Breaking** ⚠️ * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.BulkUnban()`: * `response.[]` **Changed** **Breaking** ⚠️ * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.Lock()`: * `response` **Changed** **Breaking** ⚠️ * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.Unlock()`: * `response` **Changed** **Breaking** ⚠️ * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.SetProfileImage()`: * `response` **Changed** **Breaking** ⚠️ * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.DeleteProfileImage()`: * `response` **Changed** **Breaking** ⚠️ * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.UpdateMetadata()`: * `response` **Changed** **Breaking** ⚠️ * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.GetBillingSubscription()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.GetOAuthAccessToken()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.GetOrganizationMemberships()`: * `response.data.[].PublicUserData.Username` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.GetOrganizationInvitations()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.VerifyPassword()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.VerifyTotp()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.DisableMfa()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.DeleteBackupCodes()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.DeletePasskey()`: * `response.externalId` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Domains.Delete()`: * `response.externalId` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.DeleteTotp()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.DeleteExternalAccount()`: * `response.externalId` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.GetInstanceOrganizationMemberships()`: * `response.data.[].PublicUserData.Username` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Invitations.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Invitations.BulkCreate()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Invitations.Revoke()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.OrganizationInvitations.GetAll()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.OrganizationInvitations.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.OrganizationInvitations.List()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.OrganizationInvitations.BulkCreate()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.OrganizationInvitations.ListPending()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.OrganizationInvitations.Get()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.OrganizationInvitations.Revoke()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.AllowlistIdentifiers.List()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Clients.List()`: * `response.[].LastAuthenticationStrategy` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.AllowlistIdentifiers.Delete()`: * `response.externalId` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.BlocklistIdentifiers.List()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.BlocklistIdentifiers.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.BlocklistIdentifiers.Delete()`: * `response.externalId` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.BetaFeatures.UpdateInstanceSettings()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.BetaFeatures.UpdateProductionInstanceDomain()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.ActorTokens.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.AllowlistIdentifiers.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Clients.Verify()`: * `response.lastAuthenticationStrategy` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Users.DeleteWeb3Wallet()`: * `response.externalId` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Domains.Update()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.InstanceSettings.Update()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.InstanceSettings.UpdateRestrictions()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.InstanceSettings.ChangeDomain()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.InstanceSettings.UpdateOrganizationSettings()`: * `request.SlugDisabled` **Added** * `response` **Changed** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Webhooks.CreateSvixApp()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Webhooks.DeleteSvixApp()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Webhooks.GenerateSvixAuthUrl()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.JwtTemplates.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.JwtTemplates.Get()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.JwtTemplates.Update()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.JwtTemplates.Delete()`: * `response.externalId` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Machines.List()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Machines.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Machines.Get()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Machines.Update()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Machines.Delete()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Machines.GetSecretKey()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Machines.RotateSecretKey()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Machines.CreateScope()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Machines.DeleteScope()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Organizations.List()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Organizations.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Organizations.Get()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Organizations.Update()`: `error` **Changed** **Breaking** ⚠️ * `ClerkBackendApi.Organizations.Delete()`: * `response.externalId` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Organizations.MergeMetadata()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Organizations.UploadLogo()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Organizations.DeleteLogo()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Organizations.GetBillingSubscription()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.OrganizationMemberships.Create()`: * `response.publicUserData.Username` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.OrganizationMemberships.List()`: * `response.data.[].PublicUserData.Username` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.OrganizationMemberships.Update()`: * `response.publicUserData.Username` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.OrganizationMemberships.Delete()`: * `response.publicUserData.Username` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.OrganizationMemberships.UpdateMetadata()`: * `response.publicUserData.Username` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.OrganizationDomains.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.OrganizationDomains.List()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.OrganizationDomains.Update()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.OrganizationDomains.Delete()`: * `response.externalId` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.OrganizationDomains.ListAll()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.ProxyChecks.Verify()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.RedirectUrls.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.RedirectUrls.Get()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.RedirectUrls.Delete()`: * `response.externalId` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.SignInTokens.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.SignInTokens.Revoke()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.SignUps.Get()`: * `response.locale` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.SignUps.Update()`: * `response.locale` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.OauthApplications.List()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.OauthApplications.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.OauthApplications.Get()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.OauthApplications.Update()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.OauthApplications.Delete()`: * `response.externalId` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.OauthApplications.RotateSecret()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.SamlConnections.List()`: * `response.data.[]` **Changed** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.SamlConnections.Create()`: * `request` **Changed** * `response` **Changed** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.SamlConnections.Get()`: * `response` **Changed** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.SamlConnections.Update()`: * `requestBody.ForceAuthn` **Added** * `response` **Changed** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.SamlConnections.Delete()`: * `response.externalId` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.WaitlistEntries.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.WaitlistEntries.Delete()`: * `response.externalId` **Added** * `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.WaitlistEntries.Invite()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.WaitlistEntries.Reject()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Commerce.ListPlans()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Commerce.ListSubscriptionItems()`: `errors.[].ClerkTraceId` **Removed** **Breaking** ⚠️ * `ClerkBackendApi.Billing.ExtendSubscriptionItemFreeTrial()`: **Added** * `ClerkBackendApi.AwsCredentials.Delete()`: **Deleted** **Breaking** ⚠️ * `ClerkBackendApi.AwsCredentials.Update()`: **Deleted** **Breaking** ⚠️ * `ClerkBackendApi.ExperimentalAccountlessApplications.Create()`: **Deleted** **Breaking** ⚠️ * `ClerkBackendApi.ExperimentalAccountlessApplications.Complete()`: **Deleted** **Breaking** ⚠️ * `ClerkBackendApi.Commerce.ExtendSubscriptionItemFreeTrial()`: **Deleted** **Breaking** ⚠️
1 parent 91067b7 commit 9534191

File tree

173 files changed

+1183
-2138
lines changed

Some content is hidden

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

173 files changed

+1183
-2138
lines changed

.speakeasy/gen.lock

Lines changed: 191 additions & 207 deletions
Large diffs are not rendered by default.

.speakeasy/gen.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,15 @@ generation:
1717
oAuth2ClientCredentialsEnabled: true
1818
oAuth2PasswordEnabled: true
1919
hoistGlobalSecurity: true
20+
schemas:
21+
allOfMergeStrategy: shallowMerge
22+
requestBodyFieldName: ""
2023
tests:
2124
generateTests: true
2225
generateNewTests: false
2326
skipResponseBodyAssertions: false
2427
csharp:
25-
version: 0.13.0
28+
version: 0.14.0
2629
additionalDependencies:
2730
- package: Microsoft.AspNetCore
2831
version: 2.3.0
@@ -34,6 +37,7 @@ csharp:
3437
defaultErrorName: SDKError
3538
disableNamespacePascalCasingApr2024: true
3639
dotnetVersion: net8.0
40+
enableCancellationToken: false
3741
enableSourceLink: true
3842
flattenGlobalSecurity: true
3943
flatteningOrder: parameters-first

.speakeasy/workflow.lock

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
1-
speakeasyVersion: 1.628.7
1+
speakeasyVersion: 1.651.0
22
sources:
33
clerk-backend-api-OAS:
44
sourceNamespace: clerk-openapi
5-
sourceRevisionDigest: sha256:28dad6f5eba89eda61b12068caead24aee0c775a3ed54d828c788adcf848fea9
6-
sourceBlobDigest: sha256:906fd13c3a276c610cf5fc9f778e7ed83448cd9366179dc32a86de1320bd07fe
5+
sourceRevisionDigest: sha256:0acc373200b9a10968d8d3b0bce892f96bfd7984a0724de891d663e83c1a8c52
6+
sourceBlobDigest: sha256:b8a38ad796037726bb40fb247d0fe5bb913d76f792d37a480f80401f32b4ef02
77
tags:
88
- latest
9-
- speakeasy-sdk-regen-1756771581
9+
- speakeasy-sdk-regen-1761696400
1010
- "2025-04-10"
1111
targets:
1212
clerk-backend-api:
1313
source: clerk-backend-api-OAS
1414
sourceNamespace: clerk-openapi
15-
sourceRevisionDigest: sha256:28dad6f5eba89eda61b12068caead24aee0c775a3ed54d828c788adcf848fea9
16-
sourceBlobDigest: sha256:906fd13c3a276c610cf5fc9f778e7ed83448cd9366179dc32a86de1320bd07fe
15+
sourceRevisionDigest: sha256:0acc373200b9a10968d8d3b0bce892f96bfd7984a0724de891d663e83c1a8c52
16+
sourceBlobDigest: sha256:b8a38ad796037726bb40fb247d0fe5bb913d76f792d37a480f80401f32b4ef02
1717
codeSamplesNamespace: clerk-backend-api-oas-csharp-code-samples
18-
codeSamplesRevisionDigest: sha256:dd3184e33fabb79c32ba77ecad9f9a7e7ba1a6549386c1c9266854a91c1beda7
18+
codeSamplesRevisionDigest: sha256:a59ec87630eae283234f13baad541113b04ad2b6e0ae5a6521e3d437ba1d2143
1919
workflow:
2020
workflowVersion: 1.0.0
2121
speakeasyVersion: latest

NUGET.md

Lines changed: 163 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -128,13 +128,18 @@ Some exceptions in this SDK include an additional `Payload` field, which will co
128128
using Clerk.BackendAPI;
129129
using Clerk.BackendAPI.Models.Components;
130130
using Clerk.BackendAPI.Models.Errors;
131+
using Clerk.BackendAPI.Models.Operations;
131132
using System.Collections.Generic;
132133

133134
var sdk = new ClerkBackendApi(bearerAuth: "<YOUR_BEARER_TOKEN_HERE>");
134135

135136
try
136137
{
137-
var res = await sdk.AwsCredentials.DeleteAsync(id: "<id>");
138+
VerifyClientRequestBody req = new VerifyClientRequestBody() {
139+
Token = "jwt_token_example",
140+
};
141+
142+
var res = await sdk.Clients.VerifyAsync(req);
138143

139144
// handle response
140145
}
@@ -180,17 +185,17 @@ catch (System.Net.Http.HttpRequestException ex)
180185
* [`System.Net.Http.HttpRequestException`](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httprequestexception): Network connectivity error. For more details about the underlying cause, inspect the `ex.InnerException`.
181186

182187
* Inheriting from [`SDKBaseError`](./src/Clerk/BackendAPI/Models/Errors/SDKBaseError.cs):
183-
* [`CreateM2MTokenResponseBody`](./src/Clerk/BackendAPI/Models/Errors/CreateM2MTokenResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 159 methods.*
184-
* [`GetM2MTokensResponseBody`](./src/Clerk/BackendAPI/Models/Errors/GetM2MTokensResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 159 methods.*
185-
* [`RevokeM2MTokenResponseBody`](./src/Clerk/BackendAPI/Models/Errors/RevokeM2MTokenResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 159 methods.*
186-
* [`VerifyM2MTokenResponseBody`](./src/Clerk/BackendAPI/Models/Errors/VerifyM2MTokenResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 159 methods.*
187-
* [`VerifyOAuthAccessTokenResponseBody`](./src/Clerk/BackendAPI/Models/Errors/VerifyOAuthAccessTokenResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 159 methods.*
188-
* [`GetM2MTokensM2mResponseBody`](./src/Clerk/BackendAPI/Models/Errors/GetM2MTokensM2mResponseBody.cs): 403 Forbidden. Status code `403`. Applicable to 1 of 159 methods.*
189-
* [`GetM2MTokensM2mResponseResponseBody`](./src/Clerk/BackendAPI/Models/Errors/GetM2MTokensM2mResponseResponseBody.cs): 404 Not Found. Status code `404`. Applicable to 1 of 159 methods.*
190-
* [`RevokeM2MTokenM2mResponseBody`](./src/Clerk/BackendAPI/Models/Errors/RevokeM2MTokenM2mResponseBody.cs): 404 Not Found. Status code `404`. Applicable to 1 of 159 methods.*
191-
* [`VerifyM2MTokenM2mResponseBody`](./src/Clerk/BackendAPI/Models/Errors/VerifyM2MTokenM2mResponseBody.cs): 404 Not Found. Status code `404`. Applicable to 1 of 159 methods.*
192-
* [`VerifyOAuthAccessTokenOauthAccessTokensResponseBody`](./src/Clerk/BackendAPI/Models/Errors/VerifyOAuthAccessTokenOauthAccessTokensResponseBody.cs): 404 Not Found. Status code `404`. Applicable to 1 of 159 methods.*
193-
* [`CreateM2MTokenM2mResponseBody`](./src/Clerk/BackendAPI/Models/Errors/CreateM2MTokenM2mResponseBody.cs): 409 Conflict. Status code `409`. Applicable to 1 of 159 methods.*
188+
* [`CreateM2MTokenResponseBody`](./src/Clerk/BackendAPI/Models/Errors/CreateM2MTokenResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 155 methods.*
189+
* [`GetM2MTokensResponseBody`](./src/Clerk/BackendAPI/Models/Errors/GetM2MTokensResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 155 methods.*
190+
* [`RevokeM2MTokenResponseBody`](./src/Clerk/BackendAPI/Models/Errors/RevokeM2MTokenResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 155 methods.*
191+
* [`VerifyM2MTokenResponseBody`](./src/Clerk/BackendAPI/Models/Errors/VerifyM2MTokenResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 155 methods.*
192+
* [`VerifyOAuthAccessTokenResponseBody`](./src/Clerk/BackendAPI/Models/Errors/VerifyOAuthAccessTokenResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 155 methods.*
193+
* [`GetM2MTokensM2mResponseBody`](./src/Clerk/BackendAPI/Models/Errors/GetM2MTokensM2mResponseBody.cs): 403 Forbidden. Status code `403`. Applicable to 1 of 155 methods.*
194+
* [`GetM2MTokensM2mResponseResponseBody`](./src/Clerk/BackendAPI/Models/Errors/GetM2MTokensM2mResponseResponseBody.cs): 404 Not Found. Status code `404`. Applicable to 1 of 155 methods.*
195+
* [`RevokeM2MTokenM2mResponseBody`](./src/Clerk/BackendAPI/Models/Errors/RevokeM2MTokenM2mResponseBody.cs): 404 Not Found. Status code `404`. Applicable to 1 of 155 methods.*
196+
* [`VerifyM2MTokenM2mResponseBody`](./src/Clerk/BackendAPI/Models/Errors/VerifyM2MTokenM2mResponseBody.cs): 404 Not Found. Status code `404`. Applicable to 1 of 155 methods.*
197+
* [`VerifyOAuthAccessTokenOauthAccessTokensResponseBody`](./src/Clerk/BackendAPI/Models/Errors/VerifyOAuthAccessTokenOauthAccessTokensResponseBody.cs): 404 Not Found. Status code `404`. Applicable to 1 of 155 methods.*
198+
* [`CreateM2MTokenM2mResponseBody`](./src/Clerk/BackendAPI/Models/Errors/CreateM2MTokenM2mResponseBody.cs): 409 Conflict. Status code `409`. Applicable to 1 of 155 methods.*
194199
* [`ResponseValidationError`](./src/Clerk/BackendAPI/Models/Errors/ResponseValidationError.cs): Thrown when the response data could not be deserialized into the expected type.
195200
</details>
196201

@@ -220,4 +225,150 @@ var res = await sdk.Miscellaneous.GetPublicInterstitialAsync(req);
220225
```
221226
<!-- End Server Selection [server] -->
222227

228+
<!-- Start Custom HTTP Client [http-client] -->
229+
## Custom HTTP Client
230+
231+
The C# SDK makes API calls using an `ISpeakeasyHttpClient` that wraps the native
232+
[HttpClient](https://docs.microsoft.com/en-us/dotnet/api/system.net.http.httpclient). This
233+
client provides the ability to attach hooks around the request lifecycle that can be used to modify the request or handle
234+
errors and response.
235+
236+
The `ISpeakeasyHttpClient` interface allows you to either use the default `SpeakeasyHttpClient` that comes with the SDK,
237+
or provide your own custom implementation with customized configuration such as custom message handlers, timeouts,
238+
connection pooling, and other HTTP client settings.
239+
240+
The following example shows how to create a custom HTTP client with request modification and error handling:
241+
242+
```csharp
243+
using Clerk.BackendAPI;
244+
using Clerk.BackendAPI.Utils;
245+
using System.Net.Http;
246+
using System.Threading;
247+
using System.Threading.Tasks;
248+
249+
// Create a custom HTTP client
250+
public class CustomHttpClient : ISpeakeasyHttpClient
251+
{
252+
private readonly ISpeakeasyHttpClient _defaultClient;
253+
254+
public CustomHttpClient()
255+
{
256+
_defaultClient = new SpeakeasyHttpClient();
257+
}
258+
259+
public async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken? cancellationToken = null)
260+
{
261+
// Add custom header and timeout
262+
request.Headers.Add("x-custom-header", "custom value");
263+
request.Headers.Add("x-request-timeout", "30");
264+
265+
try
266+
{
267+
var response = await _defaultClient.SendAsync(request, cancellationToken);
268+
// Log successful response
269+
Console.WriteLine($"Request successful: {response.StatusCode}");
270+
return response;
271+
}
272+
catch (Exception error)
273+
{
274+
// Log error
275+
Console.WriteLine($"Request failed: {error.Message}");
276+
throw;
277+
}
278+
}
279+
280+
public void Dispose()
281+
{
282+
_httpClient?.Dispose();
283+
_defaultClient?.Dispose();
284+
}
285+
}
286+
287+
// Use the custom HTTP client with the SDK
288+
var customHttpClient = new CustomHttpClient();
289+
var sdk = new ClerkBackendApi(client: customHttpClient);
290+
```
291+
292+
<details>
293+
<summary>You can also provide a completely custom HTTP client with your own configuration:</summary>
294+
295+
```csharp
296+
using Clerk.BackendAPI.Utils;
297+
using System.Net.Http;
298+
using System.Threading;
299+
using System.Threading.Tasks;
300+
301+
// Custom HTTP client with custom configuration
302+
public class AdvancedHttpClient : ISpeakeasyHttpClient
303+
{
304+
private readonly HttpClient _httpClient;
305+
306+
public AdvancedHttpClient()
307+
{
308+
var handler = new HttpClientHandler()
309+
{
310+
MaxConnectionsPerServer = 10,
311+
// ServerCertificateCustomValidationCallback = customCertValidation, // Custom SSL validation if needed
312+
};
313+
314+
_httpClient = new HttpClient(handler)
315+
{
316+
Timeout = TimeSpan.FromSeconds(30)
317+
};
318+
}
319+
320+
public async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken? cancellationToken = null)
321+
{
322+
return await _httpClient.SendAsync(request, cancellationToken ?? CancellationToken.None);
323+
}
324+
325+
public void Dispose()
326+
{
327+
_httpClient?.Dispose();
328+
}
329+
}
330+
331+
var sdk = ClerkBackendApi.Builder()
332+
.WithClient(new AdvancedHttpClient())
333+
.Build();
334+
```
335+
</details>
336+
337+
<details>
338+
<summary>For simple debugging, you can enable request/response logging by implementing a custom client:</summary>
339+
340+
```csharp
341+
public class LoggingHttpClient : ISpeakeasyHttpClient
342+
{
343+
private readonly ISpeakeasyHttpClient _innerClient;
344+
345+
public LoggingHttpClient(ISpeakeasyHttpClient innerClient = null)
346+
{
347+
_innerClient = innerClient ?? new SpeakeasyHttpClient();
348+
}
349+
350+
public async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken? cancellationToken = null)
351+
{
352+
// Log request
353+
Console.WriteLine($"Sending {request.Method} request to {request.RequestUri}");
354+
355+
var response = await _innerClient.SendAsync(request, cancellationToken);
356+
357+
// Log response
358+
Console.WriteLine($"Received {response.StatusCode} response");
359+
360+
return response;
361+
}
362+
363+
public void Dispose() => _innerClient?.Dispose();
364+
}
365+
366+
var sdk = new ClerkBackendApi(client: new LoggingHttpClient());
367+
```
368+
</details>
369+
370+
The SDK also provides built-in hook support through the `SDKConfiguration.Hooks` system, which automatically handles
371+
`BeforeRequestAsync`, `AfterSuccessAsync`, and `AfterErrorAsync` hooks for advanced request lifecycle management.
372+
<!-- End Custom HTTP Client [http-client] -->
373+
223374
<!-- Placeholder for Future Speakeasy SDK Sections -->

0 commit comments

Comments
 (0)