diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 5dc1f74c..a28cb068 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,12 +1,12 @@ lockVersion: 2.0.0 id: 248c4615-4118-44e3-9280-c0978ea11cf6 management: - docChecksum: 8ef24b1f9d265d4fa6656befd3129775 - docVersion: "2025-04-10" - speakeasyVersion: 1.628.7 - generationVersion: 2.716.9 - releaseVersion: 0.13.0 - configChecksum: 92b3f69e851c961fe2eb4efa602418bf + docChecksum: e6cbe4fb907366d795e2adf13eb689d1 + docVersion: "2025-11-10" + speakeasyVersion: 1.653.0 + generationVersion: 2.748.0 + releaseVersion: 0.14.0 + configChecksum: 1da4fbd372b3315fbccbd06aeec61010 repoURL: https://github.com/clerk/clerk-sdk-csharp.git published: true features: @@ -14,15 +14,15 @@ features: additionalDependencies: 0.1.0 additionalProperties: 0.0.1 constsAndDefaults: 0.0.1 - core: 3.12.4 + core: 3.15.3 deprecations: 2.81.2 examples: 2.81.6 flattening: 2.81.3 globalSecurity: 2.83.8 globalSecurityCallbacks: 0.1.0 globalSecurityFlattening: 0.1.0 - globalServerURLs: 2.82.4 - groups: 2.81.2 + globalServerURLs: 2.83.0 + groups: 2.81.3 intellisenseMarkdownSupport: 0.1.0 methodArguments: 0.2.1 nameOverrides: 2.81.2 @@ -31,15 +31,12 @@ features: responseFormat: 0.0.4 retries: 0.0.1 sdkHooks: 0.2.0 - unions: 1.0.0 + unions: 1.1.0 generatedFiles: - .gitattributes - Clerk.BackendAPI.sln - NUGET.md - USAGE.md - - docs/Models/Components/AWSCredential.md - - docs/Models/Components/AccountlessApplication.md - - docs/Models/Components/AccountlessApplicationObject.md - docs/Models/Components/Actor.md - docs/Models/Components/ActorToken.md - docs/Models/Components/ActorTokenActor.md @@ -49,6 +46,15 @@ generatedFiles: - docs/Models/Components/AllowlistIdentifier.md - docs/Models/Components/AllowlistIdentifierObject.md - docs/Models/Components/Amount.md + - docs/Models/Components/AnnualFee.md + - docs/Models/Components/AnnualMonthlyFee.md + - docs/Models/Components/BillingPaymentAttempt.md + - docs/Models/Components/BillingPaymentAttemptObject.md + - docs/Models/Components/BillingPaymentAttemptStatus.md + - docs/Models/Components/BillingStatement.md + - docs/Models/Components/BillingStatementGroupsObject.md + - docs/Models/Components/BillingStatementObject.md + - docs/Models/Components/BillingStatementStatus.md - docs/Models/Components/BlocklistIdentifier.md - docs/Models/Components/BlocklistIdentifierIdentifierType.md - docs/Models/Components/BlocklistIdentifierObject.md @@ -61,19 +67,21 @@ generatedFiles: - docs/Models/Components/ClerkErrorErrorMeta.md - docs/Models/Components/ClerkErrorErrorSAMLAccountMeta.md - docs/Models/Components/Client.md - - docs/Models/Components/ClientObject.md - docs/Models/Components/CommerceMoneyResponse.md + - docs/Models/Components/CommercePayerResponse.md + - docs/Models/Components/CommercePayerResponseObject.md + - docs/Models/Components/CommercePaymentMethodResponse.md + - docs/Models/Components/CommercePaymentMethodResponseObject.md + - docs/Models/Components/CommercePaymentMethodResponseStatus.md - docs/Models/Components/CommercePlan.md - docs/Models/Components/CommercePlanObject.md - docs/Models/Components/CommerceSubscription.md + - docs/Models/Components/CommerceSubscriptionCreditResponse.md - docs/Models/Components/CommerceSubscriptionItem.md - docs/Models/Components/CommerceSubscriptionItemAmount.md - - docs/Models/Components/CommerceSubscriptionItemNextInvoiceAmount.md - - docs/Models/Components/CommerceSubscriptionItemNextPaymentAmount.md + - docs/Models/Components/CommerceSubscriptionItemAnnualFee.md + - docs/Models/Components/CommerceSubscriptionItemAnnualMonthlyFee.md - docs/Models/Components/CommerceSubscriptionItemObject.md - - docs/Models/Components/CommerceSubscriptionItemPayerObject.md - - docs/Models/Components/CommerceSubscriptionItemPaymentSourceObject.md - - docs/Models/Components/CommerceSubscriptionItemPaymentSourceStatus.md - docs/Models/Components/CommerceSubscriptionItemPlanObject.md - docs/Models/Components/CommerceSubscriptionItemStatus.md - docs/Models/Components/CommerceSubscriptionNextPayment.md @@ -103,6 +111,7 @@ generatedFiles: - docs/Models/Components/FeatureResponseObject.md - docs/Models/Components/FromOAuth.md - docs/Models/Components/GoogleOneTap.md + - docs/Models/Components/Groups.md - docs/Models/Components/HTTPMetadata.md - docs/Models/Components/IdentificationLink.md - docs/Models/Components/IdentifierType.md @@ -179,14 +188,18 @@ generatedFiles: - docs/Models/Components/OrganizationWithLogoObject.md - docs/Models/Components/Organizations.md - docs/Models/Components/Otp.md + - docs/Models/Components/PaginatedBillingPaymentAttemptResponse.md + - docs/Models/Components/PaginatedBillingStatementResponse.md - docs/Models/Components/PaginatedCommercePlanResponse.md - docs/Models/Components/PaginatedCommerceSubscriptionItemResponse.md - docs/Models/Components/Passkey.md - docs/Models/Components/PasskeyObject.md - docs/Models/Components/PasskeyVerification.md + - docs/Models/Components/Payee.md - docs/Models/Components/Payer.md - docs/Models/Components/PaymentMethod.md - docs/Models/Components/PaymentSource.md + - docs/Models/Components/PaymentType.md - docs/Models/Components/PhoneNumber.md - docs/Models/Components/PhoneNumberObject.md - docs/Models/Components/PhoneNumberVerification.md @@ -207,6 +220,20 @@ generatedFiles: - docs/Models/Components/SAMLConnections.md - docs/Models/Components/Saml.md - docs/Models/Components/SamlConnection.md + - docs/Models/Components/SchemasCommerceSubscriptionItem.md + - docs/Models/Components/SchemasCommerceSubscriptionItemAmount.md + - docs/Models/Components/SchemasCommerceSubscriptionItemCreditAmount.md + - docs/Models/Components/SchemasCommerceSubscriptionItemNextInvoiceAmount.md + - docs/Models/Components/SchemasCommerceSubscriptionItemNextPayment.md + - docs/Models/Components/SchemasCommerceSubscriptionItemNextPaymentAmount.md + - docs/Models/Components/SchemasCommerceSubscriptionItemObject.md + - docs/Models/Components/SchemasCommerceSubscriptionItemPayerObject.md + - docs/Models/Components/SchemasCommerceSubscriptionItemPaymentSourceObject.md + - docs/Models/Components/SchemasCommerceSubscriptionItemPaymentSourceStatus.md + - docs/Models/Components/SchemasCommerceSubscriptionItemPlan.md + - docs/Models/Components/SchemasCommerceSubscriptionItemPlanObject.md + - docs/Models/Components/SchemasCommerceSubscriptionItemPlanPeriod.md + - docs/Models/Components/SchemasCommerceSubscriptionItemStatus.md - docs/Models/Components/SchemasSAMLConnection.md - docs/Models/Components/SchemasSAMLConnection2Object.md - docs/Models/Components/SchemasSAMLConnectionObject.md @@ -227,6 +254,7 @@ generatedFiles: - docs/Models/Components/SignUpVerifications.md - docs/Models/Components/Status.md - docs/Models/Components/Strategy.md + - docs/Models/Components/SubscriptionItem.md - docs/Models/Components/SvixURL.md - docs/Models/Components/Template.md - docs/Models/Components/TemplateObject.md @@ -237,6 +265,7 @@ generatedFiles: - docs/Models/Components/TokenObject.md - docs/Models/Components/TotalCount.md - docs/Models/Components/TotalCountObject.md + - docs/Models/Components/Totals.md - docs/Models/Components/Two.md - docs/Models/Components/User.md - docs/Models/Components/UserObject.md @@ -344,8 +373,6 @@ generatedFiles: - docs/Models/Operations/ChangeProductionInstanceDomainResponse.md - docs/Models/Operations/Claims.md - docs/Models/Operations/CodeType.md - - docs/Models/Operations/CompleteAccountlessApplicationResponse.md - - docs/Models/Operations/CreateAccountlessApplicationResponse.md - docs/Models/Operations/CreateActorTokenRequestBody.md - docs/Models/Operations/CreateActorTokenResponse.md - docs/Models/Operations/CreateAllowlistIdentifierRequestBody.md @@ -411,8 +438,6 @@ generatedFiles: - docs/Models/Operations/CreateUserResponse.md - docs/Models/Operations/CreateWaitlistEntryRequestBody.md - docs/Models/Operations/CreateWaitlistEntryResponse.md - - docs/Models/Operations/DeleteAWSCredentialRequest.md - - docs/Models/Operations/DeleteAWSCredentialResponse.md - docs/Models/Operations/DeleteAllowlistIdentifierRequest.md - docs/Models/Operations/DeleteAllowlistIdentifierResponse.md - docs/Models/Operations/DeleteBackupCodeRequest.md @@ -462,11 +487,17 @@ generatedFiles: - docs/Models/Operations/DisableMFAResponse.md - docs/Models/Operations/DisableMFAResponseBody.md - docs/Models/Operations/EnrollmentMode.md - - docs/Models/Operations/ExtendCommerceSubscriptionItemFreeTrialRequest.md - - docs/Models/Operations/ExtendCommerceSubscriptionItemFreeTrialResponse.md + - docs/Models/Operations/ExtendBillingSubscriptionItemFreeTrialRequest.md + - docs/Models/Operations/ExtendBillingSubscriptionItemFreeTrialResponse.md - docs/Models/Operations/File.md - docs/Models/Operations/Format.md - docs/Models/Operations/GenerateSvixAuthURLResponse.md + - docs/Models/Operations/GetBillingStatementListRequest.md + - docs/Models/Operations/GetBillingStatementListResponse.md + - docs/Models/Operations/GetBillingStatementPaymentAttemptsRequest.md + - docs/Models/Operations/GetBillingStatementPaymentAttemptsResponse.md + - docs/Models/Operations/GetBillingStatementRequest.md + - docs/Models/Operations/GetBillingStatementResponse.md - docs/Models/Operations/GetClientListRequest.md - docs/Models/Operations/GetClientListResponse.md - docs/Models/Operations/GetClientRequest.md @@ -631,9 +662,6 @@ generatedFiles: - docs/Models/Operations/UnbanUserResponse.md - docs/Models/Operations/UnlockUserRequest.md - docs/Models/Operations/UnlockUserResponse.md - - docs/Models/Operations/UpdateAWSCredentialRequest.md - - docs/Models/Operations/UpdateAWSCredentialRequestBody.md - - docs/Models/Operations/UpdateAWSCredentialResponse.md - docs/Models/Operations/UpdateDomainRequest.md - docs/Models/Operations/UpdateDomainRequestBody.md - docs/Models/Operations/UpdateDomainResponse.md @@ -730,17 +758,15 @@ generatedFiles: - docs/Models/Operations/VerifyTOTPResponseBody.md - docs/sdks/actortokens/README.md - docs/sdks/allowlistidentifiers/README.md - - docs/sdks/awscredentials/README.md - docs/sdks/betafeatures/README.md + - docs/sdks/billing/README.md - docs/sdks/blocklistidentifiers/README.md - - docs/sdks/clerkbackendapi/README.md - docs/sdks/clients/README.md - docs/sdks/commerce/README.md - docs/sdks/domains/README.md - docs/sdks/emailaddresses/README.md - docs/sdks/emailandsmstemplates/README.md - docs/sdks/emailsmstemplates/README.md - - docs/sdks/experimentalaccountlessapplications/README.md - docs/sdks/instancesettings/README.md - docs/sdks/invitations/README.md - docs/sdks/jwks/README.md @@ -769,8 +795,8 @@ generatedFiles: - global.json - src/Clerk/BackendAPI/ActorTokens.cs - src/Clerk/BackendAPI/AllowlistIdentifiers.cs - - src/Clerk/BackendAPI/AwsCredentials.cs - src/Clerk/BackendAPI/BetaFeatures.cs + - src/Clerk/BackendAPI/Billing.cs - src/Clerk/BackendAPI/BlocklistIdentifiers.cs - src/Clerk/BackendAPI/Clerk.BackendAPI.csproj - src/Clerk/BackendAPI/ClerkBackendApi.cs @@ -780,7 +806,6 @@ generatedFiles: - src/Clerk/BackendAPI/EmailAddresses.cs - src/Clerk/BackendAPI/EmailAndSmsTemplates.cs - src/Clerk/BackendAPI/EmailSMSTemplates.cs - - src/Clerk/BackendAPI/ExperimentalAccountlessApplications.cs - src/Clerk/BackendAPI/Hooks/HookTypes.cs - src/Clerk/BackendAPI/Hooks/SDKHooks.cs - src/Clerk/BackendAPI/InstanceSettings.cs @@ -790,9 +815,6 @@ generatedFiles: - src/Clerk/BackendAPI/M2m.cs - src/Clerk/BackendAPI/Machines.cs - src/Clerk/BackendAPI/Miscellaneous.cs - - src/Clerk/BackendAPI/Models/Components/AWSCredential.cs - - src/Clerk/BackendAPI/Models/Components/AccountlessApplication.cs - - src/Clerk/BackendAPI/Models/Components/AccountlessApplicationObject.cs - src/Clerk/BackendAPI/Models/Components/Actor.cs - src/Clerk/BackendAPI/Models/Components/ActorToken.cs - src/Clerk/BackendAPI/Models/Components/ActorTokenActor.cs @@ -802,6 +824,15 @@ generatedFiles: - src/Clerk/BackendAPI/Models/Components/AllowlistIdentifier.cs - src/Clerk/BackendAPI/Models/Components/AllowlistIdentifierObject.cs - src/Clerk/BackendAPI/Models/Components/Amount.cs + - src/Clerk/BackendAPI/Models/Components/AnnualFee.cs + - src/Clerk/BackendAPI/Models/Components/AnnualMonthlyFee.cs + - src/Clerk/BackendAPI/Models/Components/BillingPaymentAttempt.cs + - src/Clerk/BackendAPI/Models/Components/BillingPaymentAttemptObject.cs + - src/Clerk/BackendAPI/Models/Components/BillingPaymentAttemptStatus.cs + - src/Clerk/BackendAPI/Models/Components/BillingStatement.cs + - src/Clerk/BackendAPI/Models/Components/BillingStatementGroupsObject.cs + - src/Clerk/BackendAPI/Models/Components/BillingStatementObject.cs + - src/Clerk/BackendAPI/Models/Components/BillingStatementStatus.cs - src/Clerk/BackendAPI/Models/Components/BlocklistIdentifier.cs - src/Clerk/BackendAPI/Models/Components/BlocklistIdentifierIdentifierType.cs - src/Clerk/BackendAPI/Models/Components/BlocklistIdentifierObject.cs @@ -814,19 +845,21 @@ generatedFiles: - src/Clerk/BackendAPI/Models/Components/ClerkErrorErrorMeta.cs - src/Clerk/BackendAPI/Models/Components/ClerkErrorErrorSAMLAccountMeta.cs - src/Clerk/BackendAPI/Models/Components/Client.cs - - src/Clerk/BackendAPI/Models/Components/ClientObject.cs - src/Clerk/BackendAPI/Models/Components/CommerceMoneyResponse.cs + - src/Clerk/BackendAPI/Models/Components/CommercePayerResponse.cs + - src/Clerk/BackendAPI/Models/Components/CommercePayerResponseObject.cs + - src/Clerk/BackendAPI/Models/Components/CommercePaymentMethodResponse.cs + - src/Clerk/BackendAPI/Models/Components/CommercePaymentMethodResponseObject.cs + - src/Clerk/BackendAPI/Models/Components/CommercePaymentMethodResponseStatus.cs - src/Clerk/BackendAPI/Models/Components/CommercePlan.cs - src/Clerk/BackendAPI/Models/Components/CommercePlanObject.cs - src/Clerk/BackendAPI/Models/Components/CommerceSubscription.cs + - src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionCreditResponse.cs - src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItem.cs - src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemAmount.cs - - src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemNextInvoiceAmount.cs - - src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemNextPaymentAmount.cs + - src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemAnnualFee.cs + - src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemAnnualMonthlyFee.cs - src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemObject.cs - - src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemPayerObject.cs - - src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemPaymentSourceObject.cs - - src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemPaymentSourceStatus.cs - src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemPlanObject.cs - src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemStatus.cs - src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionNextPayment.cs @@ -856,6 +889,7 @@ generatedFiles: - src/Clerk/BackendAPI/Models/Components/FeatureResponseObject.cs - src/Clerk/BackendAPI/Models/Components/FromOAuth.cs - src/Clerk/BackendAPI/Models/Components/GoogleOneTap.cs + - src/Clerk/BackendAPI/Models/Components/Groups.cs - src/Clerk/BackendAPI/Models/Components/HTTPMetadata.cs - src/Clerk/BackendAPI/Models/Components/IdentificationLink.cs - src/Clerk/BackendAPI/Models/Components/IdentifierType.cs @@ -932,14 +966,18 @@ generatedFiles: - src/Clerk/BackendAPI/Models/Components/OrganizationWithLogoObject.cs - src/Clerk/BackendAPI/Models/Components/Organizations.cs - src/Clerk/BackendAPI/Models/Components/Otp.cs + - src/Clerk/BackendAPI/Models/Components/PaginatedBillingPaymentAttemptResponse.cs + - src/Clerk/BackendAPI/Models/Components/PaginatedBillingStatementResponse.cs - src/Clerk/BackendAPI/Models/Components/PaginatedCommercePlanResponse.cs - src/Clerk/BackendAPI/Models/Components/PaginatedCommerceSubscriptionItemResponse.cs - src/Clerk/BackendAPI/Models/Components/Passkey.cs - src/Clerk/BackendAPI/Models/Components/PasskeyObject.cs - src/Clerk/BackendAPI/Models/Components/PasskeyVerification.cs + - src/Clerk/BackendAPI/Models/Components/Payee.cs - src/Clerk/BackendAPI/Models/Components/Payer.cs - src/Clerk/BackendAPI/Models/Components/PaymentMethod.cs - src/Clerk/BackendAPI/Models/Components/PaymentSource.cs + - src/Clerk/BackendAPI/Models/Components/PaymentType.cs - src/Clerk/BackendAPI/Models/Components/PhoneNumber.cs - src/Clerk/BackendAPI/Models/Components/PhoneNumberObject.cs - src/Clerk/BackendAPI/Models/Components/PhoneNumberVerification.cs @@ -960,6 +998,20 @@ generatedFiles: - src/Clerk/BackendAPI/Models/Components/SAMLConnections.cs - src/Clerk/BackendAPI/Models/Components/Saml.cs - src/Clerk/BackendAPI/Models/Components/SamlConnection.cs + - src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItem.cs + - src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemAmount.cs + - src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemCreditAmount.cs + - src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemNextInvoiceAmount.cs + - src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemNextPayment.cs + - src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemNextPaymentAmount.cs + - src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemObject.cs + - src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemPayerObject.cs + - src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemPaymentSourceObject.cs + - src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemPaymentSourceStatus.cs + - src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemPlan.cs + - src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemPlanObject.cs + - src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemPlanPeriod.cs + - src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemStatus.cs - src/Clerk/BackendAPI/Models/Components/SchemasSAMLConnection.cs - src/Clerk/BackendAPI/Models/Components/SchemasSAMLConnection2Object.cs - src/Clerk/BackendAPI/Models/Components/SchemasSAMLConnectionObject.cs @@ -980,6 +1032,7 @@ generatedFiles: - src/Clerk/BackendAPI/Models/Components/SignUpVerifications.cs - src/Clerk/BackendAPI/Models/Components/Status.cs - src/Clerk/BackendAPI/Models/Components/Strategy.cs + - src/Clerk/BackendAPI/Models/Components/SubscriptionItem.cs - src/Clerk/BackendAPI/Models/Components/SvixURL.cs - src/Clerk/BackendAPI/Models/Components/Template.cs - src/Clerk/BackendAPI/Models/Components/TemplateObject.cs @@ -990,6 +1043,7 @@ generatedFiles: - src/Clerk/BackendAPI/Models/Components/TokenObject.cs - src/Clerk/BackendAPI/Models/Components/TotalCount.cs - src/Clerk/BackendAPI/Models/Components/TotalCountObject.cs + - src/Clerk/BackendAPI/Models/Components/Totals.cs - src/Clerk/BackendAPI/Models/Components/Two.cs - src/Clerk/BackendAPI/Models/Components/User.cs - src/Clerk/BackendAPI/Models/Components/UserObject.cs @@ -1100,8 +1154,6 @@ generatedFiles: - src/Clerk/BackendAPI/Models/Operations/ChangeProductionInstanceDomainResponse.cs - src/Clerk/BackendAPI/Models/Operations/Claims.cs - src/Clerk/BackendAPI/Models/Operations/CodeType.cs - - src/Clerk/BackendAPI/Models/Operations/CompleteAccountlessApplicationResponse.cs - - src/Clerk/BackendAPI/Models/Operations/CreateAccountlessApplicationResponse.cs - src/Clerk/BackendAPI/Models/Operations/CreateActorTokenRequestBody.cs - src/Clerk/BackendAPI/Models/Operations/CreateActorTokenResponse.cs - src/Clerk/BackendAPI/Models/Operations/CreateAllowlistIdentifierRequestBody.cs @@ -1167,8 +1219,6 @@ generatedFiles: - src/Clerk/BackendAPI/Models/Operations/CreateUserResponse.cs - src/Clerk/BackendAPI/Models/Operations/CreateWaitlistEntryRequestBody.cs - src/Clerk/BackendAPI/Models/Operations/CreateWaitlistEntryResponse.cs - - src/Clerk/BackendAPI/Models/Operations/DeleteAWSCredentialRequest.cs - - src/Clerk/BackendAPI/Models/Operations/DeleteAWSCredentialResponse.cs - src/Clerk/BackendAPI/Models/Operations/DeleteAllowlistIdentifierRequest.cs - src/Clerk/BackendAPI/Models/Operations/DeleteAllowlistIdentifierResponse.cs - src/Clerk/BackendAPI/Models/Operations/DeleteBackupCodeRequest.cs @@ -1218,11 +1268,17 @@ generatedFiles: - src/Clerk/BackendAPI/Models/Operations/DisableMFAResponse.cs - src/Clerk/BackendAPI/Models/Operations/DisableMFAResponseBody.cs - src/Clerk/BackendAPI/Models/Operations/EnrollmentMode.cs - - src/Clerk/BackendAPI/Models/Operations/ExtendCommerceSubscriptionItemFreeTrialRequest.cs - - src/Clerk/BackendAPI/Models/Operations/ExtendCommerceSubscriptionItemFreeTrialResponse.cs + - src/Clerk/BackendAPI/Models/Operations/ExtendBillingSubscriptionItemFreeTrialRequest.cs + - src/Clerk/BackendAPI/Models/Operations/ExtendBillingSubscriptionItemFreeTrialResponse.cs - src/Clerk/BackendAPI/Models/Operations/File.cs - src/Clerk/BackendAPI/Models/Operations/Format.cs - src/Clerk/BackendAPI/Models/Operations/GenerateSvixAuthURLResponse.cs + - src/Clerk/BackendAPI/Models/Operations/GetBillingStatementListRequest.cs + - src/Clerk/BackendAPI/Models/Operations/GetBillingStatementListResponse.cs + - src/Clerk/BackendAPI/Models/Operations/GetBillingStatementPaymentAttemptsRequest.cs + - src/Clerk/BackendAPI/Models/Operations/GetBillingStatementPaymentAttemptsResponse.cs + - src/Clerk/BackendAPI/Models/Operations/GetBillingStatementRequest.cs + - src/Clerk/BackendAPI/Models/Operations/GetBillingStatementResponse.cs - src/Clerk/BackendAPI/Models/Operations/GetClientListRequest.cs - src/Clerk/BackendAPI/Models/Operations/GetClientListResponse.cs - src/Clerk/BackendAPI/Models/Operations/GetClientRequest.cs @@ -1387,9 +1443,6 @@ generatedFiles: - src/Clerk/BackendAPI/Models/Operations/UnbanUserResponse.cs - src/Clerk/BackendAPI/Models/Operations/UnlockUserRequest.cs - src/Clerk/BackendAPI/Models/Operations/UnlockUserResponse.cs - - src/Clerk/BackendAPI/Models/Operations/UpdateAWSCredentialRequest.cs - - src/Clerk/BackendAPI/Models/Operations/UpdateAWSCredentialRequestBody.cs - - src/Clerk/BackendAPI/Models/Operations/UpdateAWSCredentialResponse.cs - src/Clerk/BackendAPI/Models/Operations/UpdateDomainRequest.cs - src/Clerk/BackendAPI/Models/Operations/UpdateDomainRequestBody.cs - src/Clerk/BackendAPI/Models/Operations/UpdateDomainResponse.cs @@ -1541,18 +1594,18 @@ examples: offset: 10 responses: "200": - application/json: [{"object": "client", "id": "client_123456789abcd", "session_ids": ["sess_123456789abcd", "sess_23456789abcd"], "sessions": [{"object": "session", "id": "sess_123456789abcd", "user_id": "user_123456789abcd", "client_id": "client_123456789abcd", "actor": null, "status": "active", "last_active_organization_id": "org_123456789abcd", "last_active_at": 1622471123, "expire_at": 1685471123, "abandon_at": 1630471123, "updated_at": 1622532323, "created_at": 1622470000}], "sign_in_id": "signin_123456789abcd", "sign_up_id": "signup_123456789abcd", "last_active_session_id": "session_123456789abcd", "updated_at": 1632580323, "created_at": 1622481123}, {"object": "client", "id": "client_123456789abcd", "session_ids": ["sess_123456789abcd", "sess_23456789abcd"], "sessions": [{"object": "session", "id": "sess_123456789abcd", "user_id": "user_123456789abcd", "client_id": "client_123456789abcd", "actor": null, "status": "active", "last_active_organization_id": "org_123456789abcd", "last_active_at": 1622471123, "expire_at": 1685471123, "abandon_at": 1630471123, "updated_at": 1622532323, "created_at": 1622470000}], "sign_in_id": "signin_123456789abcd", "sign_up_id": "signup_123456789abcd", "last_active_session_id": "session_123456789abcd", "updated_at": 1632580323, "created_at": 1622481123}] + application/json: [{"object": "client", "id": "client_123456789abcd", "session_ids": ["sess_123456789abcd", "sess_23456789abcd"], "sessions": [{"object": "session", "id": "sess_123456789abcd", "user_id": "user_123456789abcd", "client_id": "client_123456789abcd", "actor": null, "status": "active", "last_active_organization_id": "org_123456789abcd", "last_active_at": 1622471123, "expire_at": 1685471123, "abandon_at": 1630471123, "updated_at": 1622532323, "created_at": 1622470000}], "sign_in_id": "signin_123456789abcd", "sign_up_id": "signup_123456789abcd", "last_active_session_id": "session_123456789abcd", "last_authentication_strategy": "", "updated_at": 1632580323, "created_at": 1622481123}, {"object": "client", "id": "client_123456789abcd", "session_ids": ["sess_123456789abcd", "sess_23456789abcd"], "sessions": [{"object": "session", "id": "sess_123456789abcd", "user_id": "user_123456789abcd", "client_id": "client_123456789abcd", "actor": null, "status": "active", "last_active_organization_id": "org_123456789abcd", "last_active_at": 1622471123, "expire_at": 1685471123, "abandon_at": 1630471123, "updated_at": 1622532323, "created_at": 1622470000}], "sign_in_id": "signin_123456789abcd", "sign_up_id": "signup_123456789abcd", "last_active_session_id": "session_123456789abcd", "last_authentication_strategy": "", "updated_at": 1632580323, "created_at": 1622481123}] "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} VerifyClient: speakeasy-default-verify-client: requestBody: application/json: {"token": "jwt_token_example"} responses: "200": - application/json: {"object": "client", "id": "client_123456789abcd", "session_ids": ["sess_123456789abcd", "sess_23456789abcd"], "sessions": [{"object": "session", "id": "sess_123456789abcd", "user_id": "user_123456789abcd", "client_id": "client_123456789abcd", "actor": null, "status": "active", "last_active_organization_id": "org_123456789abcd", "last_active_at": 1622471123, "expire_at": 1685471123, "abandon_at": 1630471123, "updated_at": 1622532323, "created_at": 1622470000}, {"object": "session", "id": "sess_123456789abcd", "user_id": "user_123456789abcd", "client_id": "client_123456789abcd", "actor": null, "status": "active", "last_active_organization_id": "org_123456789abcd", "last_active_at": 1622471123, "expire_at": 1685471123, "abandon_at": 1630471123, "updated_at": 1622532323, "created_at": 1622470000}, {"object": "session", "id": "sess_123456789abcd", "user_id": "user_123456789abcd", "client_id": "client_123456789abcd", "actor": null, "status": "active", "last_active_organization_id": "org_123456789abcd", "last_active_at": 1622471123, "expire_at": 1685471123, "abandon_at": 1630471123, "updated_at": 1622532323, "created_at": 1622470000}], "sign_in_id": "signin_123456789abcd", "sign_up_id": "signup_123456789abcd", "last_active_session_id": "session_123456789abcd", "updated_at": 1632580323, "created_at": 1622481123} + application/json: {"object": "client", "id": "client_123456789abcd", "session_ids": ["sess_123456789abcd", "sess_23456789abcd"], "sessions": [{"object": "session", "id": "sess_123456789abcd", "user_id": "user_123456789abcd", "client_id": "client_123456789abcd", "actor": null, "status": "active", "last_active_organization_id": "org_123456789abcd", "last_active_at": 1622471123, "expire_at": 1685471123, "abandon_at": 1630471123, "updated_at": 1622532323, "created_at": 1622470000}, {"object": "session", "id": "sess_123456789abcd", "user_id": "user_123456789abcd", "client_id": "client_123456789abcd", "actor": null, "status": "active", "last_active_organization_id": "org_123456789abcd", "last_active_at": 1622471123, "expire_at": 1685471123, "abandon_at": 1630471123, "updated_at": 1622532323, "created_at": 1622470000}, {"object": "session", "id": "sess_123456789abcd", "user_id": "user_123456789abcd", "client_id": "client_123456789abcd", "actor": null, "status": "active", "last_active_organization_id": "org_123456789abcd", "last_active_at": 1622471123, "expire_at": 1685471123, "abandon_at": 1630471123, "updated_at": 1622532323, "created_at": 1622470000}], "sign_in_id": "signin_123456789abcd", "sign_up_id": "signup_123456789abcd", "last_active_session_id": "session_123456789abcd", "last_authentication_strategy": "", "updated_at": 1632580323, "created_at": 1622481123} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} GetClient: speakeasy-default-get-client: parameters: @@ -1560,9 +1613,9 @@ examples: client_id: "cli_123456789" responses: "200": - application/json: {"object": "client", "id": "client_123456789abcd", "session_ids": ["sess_123456789abcd", "sess_23456789abcd"], "sessions": [{"object": "session", "id": "sess_123456789abcd", "user_id": "user_123456789abcd", "client_id": "client_123456789abcd", "actor": null, "status": "active", "last_active_organization_id": "org_123456789abcd", "last_active_at": 1622471123, "expire_at": 1685471123, "abandon_at": 1630471123, "updated_at": 1622532323, "created_at": 1622470000}], "sign_in_id": "signin_123456789abcd", "sign_up_id": "signup_123456789abcd", "last_active_session_id": "session_123456789abcd", "updated_at": 1632580323, "created_at": 1622481123} + application/json: {"object": "client", "id": "client_123456789abcd", "session_ids": ["sess_123456789abcd", "sess_23456789abcd"], "sessions": [{"object": "session", "id": "sess_123456789abcd", "user_id": "user_123456789abcd", "client_id": "client_123456789abcd", "actor": null, "status": "active", "last_active_organization_id": "org_123456789abcd", "last_active_at": 1622471123, "expire_at": 1685471123, "abandon_at": 1630471123, "updated_at": 1622532323, "created_at": 1622470000}], "sign_in_id": "signin_123456789abcd", "sign_up_id": "signup_123456789abcd", "last_active_session_id": "session_123456789abcd", "last_authentication_strategy": "", "updated_at": 1632580323, "created_at": 1622481123} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} CreateEmailAddress: speakeasy-default-create-email-address: requestBody: @@ -1571,7 +1624,7 @@ examples: "200": application/json: {"id": "email_id_56789", "object": "email_address", "email_address": "example@clerk.com", "reserved": false, "verification": {"object": "verification_otp", "status": "verified", "strategy": "email_code", "attempts": 1, "expire_at": 1615462399}, "linked_to": [{"type": "oauth_google", "id": "link_12345"}], "created_at": 1615458901, "updated_at": 1615459001} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} GetEmailAddress: speakeasy-default-get-email-address: parameters: @@ -1581,7 +1634,7 @@ examples: "200": application/json: {"id": "email_id_56789", "object": "email_address", "email_address": "example@clerk.com", "reserved": false, "verification": {"object": "verification_from_oauth", "status": "verified", "strategy": "admin", "expire_at": 707344, "attempts": 671686}, "linked_to": [{"type": "oauth_google", "id": "link_12345"}], "created_at": 1615458901, "updated_at": 1615459001} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} DeleteEmailAddress: speakeasy-default-delete-email-address: parameters: @@ -1591,7 +1644,7 @@ examples: "200": application/json: {"object": "deleted_object", "id": "deleted_object_id_example", "slug": "deleted-object-slug", "deleted": true} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} UpdateEmailAddress: speakeasy-default-update-email-address: parameters: @@ -1603,7 +1656,7 @@ examples: "200": application/json: {"id": "email_id_56789", "object": "email_address", "email_address": "example@clerk.com", "reserved": false, "verification": {"object": "verification_ticket", "status": "verified", "strategy": "ticket", "attempts": null, "expire_at": null}, "linked_to": [{"type": "oauth_google", "id": "link_12345"}], "created_at": 1615458901, "updated_at": 1615459001} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} CreatePhoneNumber: speakeasy-default-create-phone-number: requestBody: @@ -1612,7 +1665,7 @@ examples: "200": application/json: {"id": "ph_123456789", "object": "phone_number", "phone_number": "+11234567890", "reserved_for_second_factor": false, "default_second_factor": true, "reserved": false, "verification": {"object": "verification_admin", "status": "verified", "strategy": "admin", "attempts": 2, "expire_at": 1622852400}, "linked_to": [{"type": "oauth_google", "id": "link_id_123"}], "backup_codes": ["code1", "code2", "code3"], "created_at": 1594842023, "updated_at": 1604842023} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} GetPhoneNumber: speakeasy-default-get-phone-number: parameters: @@ -1622,7 +1675,7 @@ examples: "200": application/json: {"id": "ph_123456789", "object": "phone_number", "phone_number": "+11234567890", "reserved_for_second_factor": false, "default_second_factor": true, "reserved": false, "verification": {"object": "verification_otp", "status": "verified", "strategy": "phone_code", "attempts": 2, "expire_at": 1622852400}, "linked_to": [{"type": "oauth_google", "id": "link_id_123"}], "backup_codes": ["code1", "code2", "code3"], "created_at": 1594842023, "updated_at": 1604842023} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} DeletePhoneNumber: speakeasy-default-delete-phone-number: parameters: @@ -1632,7 +1685,7 @@ examples: "200": application/json: {"object": "deleted_object", "id": "deleted_object_id_example", "slug": "deleted-object-slug", "deleted": true} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} UpdatePhoneNumber: speakeasy-default-update-phone-number: parameters: @@ -1644,7 +1697,7 @@ examples: "200": application/json: {"id": "ph_123456789", "object": "phone_number", "phone_number": "+11234567890", "reserved_for_second_factor": false, "default_second_factor": true, "reserved": false, "verification": {"object": "verification_otp", "status": "verified", "strategy": "phone_code", "attempts": 2, "expire_at": 1622852400}, "linked_to": [{"type": "oauth_google", "id": "link_id_123"}], "backup_codes": ["code1", "code2", "code3"], "created_at": 1594842023, "updated_at": 1604842023} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} GetSessionList: speakeasy-default-get-session-list: parameters: @@ -1658,14 +1711,14 @@ examples: "200": application/json: [{"object": "session", "id": "sess_12345", "user_id": "user_456", "client_id": "client_123", "status": "active", "last_active_organization_id": "org_789", "last_active_at": 1617970799, "expire_at": 1620559199, "abandon_at": 1618853599, "updated_at": 1619459200, "created_at": 1617864359}] "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} createSession: speakeasy-default-create-session: responses: "200": application/json: {"object": "session", "id": "sess_123456789abcd", "user_id": "user_123456789abcd", "client_id": "client_123456789abcd", "actor": null, "status": "active", "last_active_organization_id": "org_123456789abcd", "last_active_at": 1622471123, "expire_at": 1685471123, "abandon_at": 1630471123, "updated_at": 1622532323, "created_at": 1622470000} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} GetSession: speakeasy-default-get-session: parameters: @@ -1675,7 +1728,7 @@ examples: "200": application/json: {"object": "session", "id": "sess_123456789abcd", "user_id": "user_123456789abcd", "client_id": "client_123456789abcd", "actor": null, "status": "active", "last_active_organization_id": "org_123456789abcd", "last_active_at": 1622471123, "expire_at": 1685471123, "abandon_at": 1630471123, "updated_at": 1622532323, "created_at": 1622470000} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} RefreshSession: speakeasy-default-refresh-session: parameters: @@ -1685,7 +1738,7 @@ examples: "200": application/json: {"object": "cookies", "cookies": ["", "", ""]} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} RevokeSession: speakeasy-default-revoke-session: parameters: @@ -1695,7 +1748,7 @@ examples: "200": application/json: {"object": "session", "id": "sess_123456789abcd", "user_id": "user_123456789abcd", "client_id": "client_123456789abcd", "actor": null, "status": "active", "last_active_organization_id": "org_123456789abcd", "last_active_at": 1622471123, "expire_at": 1685471123, "abandon_at": 1630471123, "updated_at": 1622532323, "created_at": 1622470000} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} VerifySession: speakeasy-default-verify-session: parameters: @@ -1717,7 +1770,7 @@ examples: "200": application/json: {} "401": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} CreateSessionTokenFromTemplate: speakeasy-default-create-session-token-from-template: parameters: @@ -1728,7 +1781,7 @@ examples: "200": application/json: {"object": "token", "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvZSBCbG9nZ3MiLCJpYXQiOjE1MTYyMzkwMjJ9.qKVwLLnbfqfM5VCfU8vDhXXXS0VklRcsErgTpELYgfw"} "401": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} GetTemplateList: "": parameters: @@ -1753,7 +1806,7 @@ examples: "200": application/json: [{"id": "temp_12345", "object": "template", "instance_id": "inst_67890", "resource_type": "system", "template_type": "email", "name": "Welcome Email", "slug": "welcome_email", "position": 1, "can_revert": false, "can_delete": true, "subject": "Welcome to our service!", "markup": "

Hello, {{ user.name }}

", "body": "You are now signed up. Welcome!", "available_variables": ["user.name", "user.email"], "required_variables": ["user.name"], "from_email_name": "Clerk Support", "reply_to_email_name": "support@clerk.com", "delivered_by_clerk": true, "updated_at": 1610000000, "created_at": 1600000000}] "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} GetTemplate: speakeasy-default-get-template: parameters: @@ -1764,7 +1817,7 @@ examples: "200": application/json: {"id": "temp_12345", "object": "template", "instance_id": "inst_67890", "resource_type": "system", "template_type": "email", "name": "Welcome Email", "slug": "welcome_email", "position": 1, "can_revert": false, "can_delete": true, "subject": "Welcome to our service!", "markup": "

Hello, {{ user.name }}

", "body": "You are now signed up. Welcome!", "available_variables": ["user.name", "user.email"], "required_variables": ["user.name"], "from_email_name": "Clerk Support", "reply_to_email_name": "support@clerk.com", "delivered_by_clerk": true, "updated_at": 1610000000, "created_at": 1600000000} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} RevertTemplate: speakeasy-default-revert-template: parameters: @@ -1775,7 +1828,7 @@ examples: "200": application/json: {"id": "temp_12345", "object": "template", "instance_id": "inst_67890", "resource_type": "system", "template_type": "email", "name": "Welcome Email", "slug": "welcome_email", "position": 1, "can_revert": false, "can_delete": true, "subject": "Welcome to our service!", "markup": "

Hello, {{ user.name }}

", "body": "You are now signed up. Welcome!", "available_variables": ["user.name", "user.email"], "required_variables": ["user.name"], "from_email_name": "Clerk Support", "reply_to_email_name": "support@clerk.com", "delivered_by_clerk": true, "updated_at": 1610000000, "created_at": 1600000000} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} ToggleTemplateDelivery: speakeasy-default-toggle-template-delivery: parameters: @@ -1788,7 +1841,7 @@ examples: "200": application/json: {"id": "temp_12345", "object": "template", "instance_id": "inst_67890", "resource_type": "system", "template_type": "email", "name": "Welcome Email", "slug": "welcome_email", "position": 1, "can_revert": false, "can_delete": true, "subject": "Welcome to our service!", "markup": "

Hello, {{ user.name }}

", "body": "You are now signed up. Welcome!", "available_variables": ["user.name", "user.email"], "required_variables": ["user.name"], "from_email_name": "Clerk Support", "reply_to_email_name": "support@clerk.com", "delivered_by_clerk": true, "updated_at": 1610000000, "created_at": 1600000000} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} UpsertTemplate: speakeasy-default-upsert-template: parameters: @@ -1801,7 +1854,7 @@ examples: "200": application/json: {"id": "temp_12345", "object": "template", "instance_id": "inst_67890", "resource_type": "system", "template_type": "email", "name": "Welcome Email", "slug": "welcome_email", "position": 1, "can_revert": false, "can_delete": true, "subject": "Welcome to our service!", "markup": "

Hello, {{ user.name }}

", "body": "You are now signed up. Welcome!", "available_variables": ["user.name", "user.email"], "required_variables": ["user.name"], "from_email_name": "Clerk Support", "reply_to_email_name": "support@clerk.com", "delivered_by_clerk": true, "updated_at": 1610000000, "created_at": 1600000000} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} PreviewTemplate: speakeasy-default-preview-template: parameters: @@ -1814,7 +1867,7 @@ examples: "200": application/json: {} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} GetUserList: "": parameters: @@ -1862,7 +1915,7 @@ examples: "200": application/json: [{"id": "user_id_123", "object": "user", "external_id": "external_user_id_123", "primary_email_address_id": "email_id_123", "primary_phone_number_id": "phone_id_123", "primary_web3_wallet_id": "wallet_id_123", "username": "john_doe", "first_name": "John", "last_name": "Doe", "image_url": "https://example.com/new-profile.jpg", "has_image": true, "public_metadata": {"role": "admin"}, "private_metadata": {"ssn": "123-45-6789"}, "unsafe_metadata": {"theme": "dark"}, "email_addresses": [{"id": "email_id_123", "object": "email_address", "email_address": "john.doe@example.com", "reserved": false, "verification": {"object": "verification_admin", "status": "verified", "strategy": "admin", "attempts": 840489, "expire_at": 779542}, "linked_to": [{"type": "oauth_google", "id": "link_12345"}], "created_at": 1609459200, "updated_at": 1609459200}], "phone_numbers": [{"id": "phone_id_123", "object": "phone_number", "phone_number": "+12345678901", "reserved": false, "verification": {"object": "verification_admin", "status": "verified", "strategy": "admin", "attempts": 15551, "expire_at": 230417}, "linked_to": [{"type": "oauth_google", "id": "link_id_123"}], "created_at": 1609459200, "updated_at": 1609459200}], "web3_wallets": [{"id": "wallet_id_123", "object": "web3_wallet", "web3_wallet": "0x123456789abcdef", "verification": {"object": "verification_admin", "status": "verified", "strategy": "admin", "attempts": 563928, "expire_at": 564967}, "created_at": 1609459200, "updated_at": 1609459200}], "passkeys": [{"id": "passkey_id_123", "object": "passkey", "name": "My Passkey", "last_used_at": 1615852800, "verification": {"object": "verification_passkey", "status": "verified", "strategy": "passkey", "attempts": null, "expire_at": 682381}}], "password_enabled": true, "two_factor_enabled": true, "totp_enabled": true, "backup_code_enabled": true, "mfa_enabled_at": 1615852800, "mfa_disabled_at": null, "external_accounts": [{"object": "google_account", "id": "ext_account_id_123", "provider": "Facebook", "identification_id": "", "provider_user_id": "", "approved_scopes": "", "email_address": "Margie23@hotmail.com", "first_name": "Brionna", "last_name": "Walter", "public_metadata": {"key": "", "key1": ""}, "created_at": 14941, "updated_at": 805295, "verification": {"object": "verification_google_one_tap", "status": "unverified", "strategy": "google_one_tap", "expire_at": 634404, "attempts": 583086}, "user_id": "user_id_at_provider"}], "saml_accounts": [{"id": "saml_account_id_123", "object": "saml_account", "provider": "SAML Provider", "active": true, "email_address": "user@example.com", "public_metadata": {"department": "IT"}, "verification": {"object": "verification_ticket", "status": "verified", "strategy": "ticket", "attempts": 571330, "expire_at": 56012}}], "last_sign_in_at": 1622852400, "banned": false, "locked": false, "lockout_expires_in_seconds": null, "verification_attempts_remaining": 5, "updated_at": 1622852400, "created_at": 1609459200, "delete_self_enabled": true, "create_organization_enabled": true, "last_active_at": 1700690400000, "legal_accepted_at": 1700690400000}] "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} CreateUser: speakeasy-default-create-user: requestBody: @@ -1871,7 +1924,7 @@ examples: "200": application/json: {"id": "user_id_123", "object": "user", "external_id": "external_user_id_123", "primary_email_address_id": "email_id_123", "primary_phone_number_id": "phone_id_123", "primary_web3_wallet_id": "wallet_id_123", "username": "john_doe", "first_name": "John", "last_name": "Doe", "image_url": "https://example.com/new-profile.jpg", "has_image": true, "public_metadata": {"role": "admin"}, "private_metadata": {"ssn": "123-45-6789"}, "unsafe_metadata": {"theme": "dark"}, "email_addresses": [{"id": "email_id_123", "object": "email_address", "email_address": "john.doe@example.com", "reserved": false, "verification": {"object": "verification_ticket", "status": "verified", "strategy": "ticket", "attempts": null, "expire_at": null}, "linked_to": [{"type": "oauth_google", "id": "link_12345"}], "created_at": 1609459200, "updated_at": 1609459200}], "phone_numbers": [{"id": "phone_id_123", "object": "phone_number", "phone_number": "+12345678901", "reserved": false, "verification": {"object": "verification_otp", "status": "verified", "strategy": "email_code", "attempts": 1, "expire_at": 1615462399}, "linked_to": [{"type": "oauth_google", "id": "link_id_123"}], "created_at": 1609459200, "updated_at": 1609459200}], "web3_wallets": [{"id": "wallet_id_123", "object": "web3_wallet", "web3_wallet": "0x123456789abcdef", "verification": {"object": "verification_admin", "status": "verified", "strategy": "admin", "attempts": null, "expire_at": null}, "created_at": 1609459200, "updated_at": 1609459200}], "passkeys": [{"id": "passkey_id_123", "object": "passkey", "name": "My Passkey", "last_used_at": 1615852800, "verification": {"object": "verification_passkey", "status": "verified", "strategy": "passkey", "attempts": null, "expire_at": null}}], "password_enabled": true, "two_factor_enabled": true, "totp_enabled": true, "backup_code_enabled": true, "mfa_enabled_at": 1615852800, "mfa_disabled_at": null, "external_accounts": [{"object": "facebook_account", "id": "ext_account_id_123", "provider": "Facebook", "identification_id": "", "provider_user_id": "", "approved_scopes": "", "email_address": "Laverne.Kris@yahoo.com", "first_name": "Jalen", "last_name": "Stark", "public_metadata": {"key": "", "key1": "", "key2": ""}, "created_at": 747519, "updated_at": 566975, "verification": {"object": "verification_google_one_tap", "status": "verified", "strategy": "google_one_tap", "expire_at": 852052, "attempts": 514772}, "user_id": "user_id_at_provider"}], "saml_accounts": [{"id": "saml_account_id_123", "object": "saml_account", "provider": "SAML Provider", "active": true, "email_address": "user@example.com", "public_metadata": {"department": "IT"}, "verification": {"object": "verification_ticket", "status": "verified", "strategy": "ticket", "attempts": null, "expire_at": null}}], "last_sign_in_at": 1622852400, "banned": false, "locked": false, "lockout_expires_in_seconds": null, "verification_attempts_remaining": 5, "updated_at": 1622852400, "created_at": 1609459200, "delete_self_enabled": true, "create_organization_enabled": true, "last_active_at": 1700690400000, "legal_accepted_at": 1700690400000} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} GetUsersCount: "": parameters: @@ -1911,7 +1964,7 @@ examples: "200": application/json: {"object": "total_count", "total_count": 100} "422": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} GetUser: speakeasy-default-get-user: parameters: @@ -1921,7 +1974,7 @@ examples: "200": application/json: {"id": "user_id_123", "object": "user", "external_id": "external_user_id_123", "primary_email_address_id": "email_id_123", "primary_phone_number_id": "phone_id_123", "primary_web3_wallet_id": "wallet_id_123", "username": "john_doe", "first_name": "John", "last_name": "Doe", "image_url": "https://example.com/new-profile.jpg", "has_image": true, "public_metadata": {"role": "admin"}, "private_metadata": {"ssn": "123-45-6789"}, "unsafe_metadata": {"theme": "dark"}, "email_addresses": [{"id": "email_id_123", "object": "email_address", "email_address": "john.doe@example.com", "reserved": false, "verification": {"object": "verification_ticket", "status": "verified", "strategy": "ticket", "attempts": null, "expire_at": null}, "linked_to": [{"type": "oauth_google", "id": "link_12345"}], "created_at": 1609459200, "updated_at": 1609459200}], "phone_numbers": [{"id": "phone_id_123", "object": "phone_number", "phone_number": "+12345678901", "reserved": false, "verification": {"object": "verification_admin", "status": "verified", "strategy": "admin", "attempts": 1, "expire_at": 1615462399}, "linked_to": [{"type": "oauth_google", "id": "link_id_123"}], "created_at": 1609459200, "updated_at": 1609459200}], "web3_wallets": [{"id": "wallet_id_123", "object": "web3_wallet", "web3_wallet": "0x123456789abcdef", "verification": {"object": "verification_admin", "status": "verified", "strategy": "admin", "attempts": 0, "expire_at": 1620000000}, "created_at": 1609459200, "updated_at": 1609459200}], "passkeys": [{"id": "passkey_id_123", "object": "passkey", "name": "My Passkey", "last_used_at": 1615852800, "verification": {"object": "verification_passkey", "status": "verified", "strategy": "passkey", "attempts": null, "expire_at": null}}], "password_enabled": true, "two_factor_enabled": true, "totp_enabled": true, "backup_code_enabled": true, "mfa_enabled_at": 1615852800, "mfa_disabled_at": null, "external_accounts": [{"object": "google_account", "id": "ext_account_id_123", "provider": "Facebook", "identification_id": "", "provider_user_id": "", "approved_scopes": "", "email_address": "Cleo_Schumm@yahoo.com", "first_name": "Keira", "last_name": "Windler", "public_metadata": {"key": "", "key1": "", "key2": ""}, "created_at": 751395, "updated_at": 124518, "verification": {"object": "verification_google_one_tap", "status": "verified", "strategy": "google_one_tap", "expire_at": 1615462399, "attempts": 1}, "user_id": "user_id_at_provider"}], "saml_accounts": [{"id": "saml_account_id_123", "object": "saml_account", "provider": "SAML Provider", "active": true, "email_address": "user@example.com", "public_metadata": {"department": "IT"}, "verification": {"object": "verification_saml", "status": "verified", "strategy": "saml", "external_verification_redirect_url": "https://primary-caption.info", "expire_at": 560031, "attempts": null}}], "last_sign_in_at": 1622852400, "banned": false, "locked": false, "lockout_expires_in_seconds": null, "verification_attempts_remaining": 5, "updated_at": 1622852400, "created_at": 1609459200, "delete_self_enabled": true, "create_organization_enabled": true, "last_active_at": 1700690400000, "legal_accepted_at": 1700690400000} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} UpdateUser: speakeasy-default-update-user: parameters: @@ -1933,7 +1986,7 @@ examples: "200": application/json: {"id": "user_id_123", "object": "user", "external_id": "external_user_id_123", "primary_email_address_id": "email_id_123", "primary_phone_number_id": "phone_id_123", "primary_web3_wallet_id": "wallet_id_123", "username": "john_doe", "first_name": "John", "last_name": "Doe", "image_url": "https://example.com/new-profile.jpg", "has_image": true, "public_metadata": {"role": "admin"}, "private_metadata": {"ssn": "123-45-6789"}, "unsafe_metadata": {"theme": "dark"}, "email_addresses": [{"id": "email_id_123", "object": "email_address", "email_address": "john.doe@example.com", "reserved": false, "verification": {"object": "verification_admin", "status": "verified", "strategy": "admin", "attempts": 0, "expire_at": 1620000000}, "linked_to": [{"type": "oauth_google", "id": "link_12345"}], "created_at": 1609459200, "updated_at": 1609459200}], "phone_numbers": [{"id": "phone_id_123", "object": "phone_number", "phone_number": "+12345678901", "reserved": false, "verification": {"object": "verification_admin", "status": "verified", "strategy": "admin", "attempts": 1, "expire_at": 1615462399}, "linked_to": [{"type": "oauth_google", "id": "link_id_123"}], "created_at": 1609459200, "updated_at": 1609459200}], "web3_wallets": [{"id": "wallet_id_123", "object": "web3_wallet", "web3_wallet": "0x123456789abcdef", "verification": {"object": "verification_admin", "status": "verified", "strategy": "admin", "attempts": 0, "expire_at": 1620000000}, "created_at": 1609459200, "updated_at": 1609459200}], "passkeys": [{"id": "passkey_id_123", "object": "passkey", "name": "My Passkey", "last_used_at": 1615852800, "verification": {"object": "verification_passkey", "status": "verified", "strategy": "passkey", "attempts": null, "expire_at": null}}], "password_enabled": true, "two_factor_enabled": true, "totp_enabled": true, "backup_code_enabled": true, "mfa_enabled_at": 1615852800, "mfa_disabled_at": null, "external_accounts": [{"object": "google_account", "id": "ext_account_id_123", "provider": "Facebook", "identification_id": "", "provider_user_id": "", "approved_scopes": "", "email_address": "Retta_Johnson71@hotmail.com", "first_name": "Darius", "last_name": "Russel", "public_metadata": {"key": ""}, "created_at": 580394, "updated_at": 356574, "verification": {"object": "verification_google_one_tap", "status": "verified", "strategy": "google_one_tap", "expire_at": 1615462399, "attempts": 1}, "user_id": "user_id_at_provider"}], "saml_accounts": [{"id": "saml_account_id_123", "object": "saml_account", "provider": "SAML Provider", "active": true, "email_address": "user@example.com", "public_metadata": {"department": "IT"}, "verification": {"object": "verification_ticket", "status": "verified", "strategy": "ticket", "attempts": null, "expire_at": null}}], "last_sign_in_at": 1622852400, "banned": false, "locked": false, "lockout_expires_in_seconds": null, "verification_attempts_remaining": 5, "updated_at": 1622852400, "created_at": 1609459200, "delete_self_enabled": true, "create_organization_enabled": true, "last_active_at": 1700690400000, "legal_accepted_at": 1700690400000} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} DeleteUser: speakeasy-default-delete-user: parameters: @@ -1943,7 +1996,7 @@ examples: "200": application/json: {"object": "deleted_object", "id": "deleted_object_id_example", "slug": "deleted-object-slug", "deleted": true} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} BanUser: speakeasy-default-ban-user: parameters: @@ -1953,7 +2006,7 @@ examples: "200": application/json: {"id": "user_id_123", "object": "user", "external_id": "external_user_id_123", "primary_email_address_id": "email_id_123", "primary_phone_number_id": "phone_id_123", "primary_web3_wallet_id": "wallet_id_123", "username": "john_doe", "first_name": "John", "last_name": "Doe", "image_url": "https://example.com/new-profile.jpg", "has_image": true, "public_metadata": {"role": "admin"}, "private_metadata": {"ssn": "123-45-6789"}, "unsafe_metadata": {"theme": "dark"}, "email_addresses": [{"id": "email_id_123", "object": "email_address", "email_address": "john.doe@example.com", "reserved": false, "verification": {"object": "verification_from_oauth", "status": "verified", "strategy": "admin", "expire_at": 49333, "attempts": 588226}, "linked_to": [{"type": "oauth_google", "id": "link_12345"}], "created_at": 1609459200, "updated_at": 1609459200}], "phone_numbers": [{"id": "phone_id_123", "object": "phone_number", "phone_number": "+12345678901", "reserved": false, "verification": {"object": "verification_otp", "status": "verified", "strategy": "email_code", "attempts": 1, "expire_at": 1615462399}, "linked_to": [{"type": "oauth_google", "id": "link_id_123"}], "created_at": 1609459200, "updated_at": 1609459200}], "web3_wallets": [{"id": "wallet_id_123", "object": "web3_wallet", "web3_wallet": "0x123456789abcdef", "verification": {"object": "verification_admin", "status": "verified", "strategy": "admin", "attempts": null, "expire_at": null}, "created_at": 1609459200, "updated_at": 1609459200}], "passkeys": [{"id": "passkey_id_123", "object": "passkey", "name": "My Passkey", "last_used_at": 1615852800, "verification": {"object": "verification_passkey", "status": "verified", "strategy": "passkey", "attempts": null, "expire_at": null}}], "password_enabled": true, "two_factor_enabled": true, "totp_enabled": true, "backup_code_enabled": true, "mfa_enabled_at": 1615852800, "mfa_disabled_at": null, "external_accounts": [{"object": "external_account", "id": "ext_account_id_123", "provider": "Facebook", "identification_id": "", "provider_user_id": "", "approved_scopes": "", "email_address": "Autumn.Pfannerstill@gmail.com", "first_name": "Cyrus", "last_name": "Predovic-Emmerich", "public_metadata": {"key": ""}, "created_at": 944262, "updated_at": 218113, "verification": {"object": "verification_oauth", "status": "verified", "strategy": "oauth_google", "expire_at": 1615462399, "attempts": 1}, "user_id": "user_id_at_provider"}], "saml_accounts": [{"id": "saml_account_id_123", "object": "saml_account", "provider": "SAML Provider", "active": true, "email_address": "user@example.com", "public_metadata": {"department": "IT"}, "verification": {"object": "verification_saml", "status": "verified", "strategy": "saml", "external_verification_redirect_url": "https://overcooked-pocket-watch.com/", "expire_at": 55159, "attempts": null}}], "last_sign_in_at": 1622852400, "banned": false, "locked": false, "lockout_expires_in_seconds": null, "verification_attempts_remaining": 5, "updated_at": 1622852400, "created_at": 1609459200, "delete_self_enabled": true, "create_organization_enabled": true, "last_active_at": 1700690400000, "legal_accepted_at": 1700690400000} "402": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} UnbanUser: speakeasy-default-unban-user: parameters: @@ -1963,7 +2016,7 @@ examples: "200": application/json: {"id": "user_id_123", "object": "user", "external_id": "external_user_id_123", "primary_email_address_id": "email_id_123", "primary_phone_number_id": "phone_id_123", "primary_web3_wallet_id": "wallet_id_123", "username": "john_doe", "first_name": "John", "last_name": "Doe", "image_url": "https://example.com/new-profile.jpg", "has_image": true, "public_metadata": {"role": "admin"}, "private_metadata": {"ssn": "123-45-6789"}, "unsafe_metadata": {"theme": "dark"}, "email_addresses": [{"id": "email_id_123", "object": "email_address", "email_address": "john.doe@example.com", "reserved": false, "verification": {"object": "verification_otp", "status": "verified", "strategy": "email_code", "attempts": 1, "expire_at": 1615462399}, "linked_to": [{"type": "oauth_google", "id": "link_12345"}], "created_at": 1609459200, "updated_at": 1609459200}], "phone_numbers": [{"id": "phone_id_123", "object": "phone_number", "phone_number": "+12345678901", "reserved": false, "verification": {"object": "verification_otp", "status": "verified", "strategy": "email_code", "attempts": 1, "expire_at": 1615462399}, "linked_to": [{"type": "oauth_google", "id": "link_id_123"}], "created_at": 1609459200, "updated_at": 1609459200}], "web3_wallets": [{"id": "wallet_id_123", "object": "web3_wallet", "web3_wallet": "0x123456789abcdef", "verification": {"object": "verification_web3", "status": "verified", "strategy": "web3_metamask_signature", "attempts": null, "expire_at": null}, "created_at": 1609459200, "updated_at": 1609459200}], "passkeys": [{"id": "passkey_id_123", "object": "passkey", "name": "My Passkey", "last_used_at": 1615852800, "verification": {"object": "verification_passkey", "status": "verified", "strategy": "passkey", "attempts": null, "expire_at": null}}], "password_enabled": true, "two_factor_enabled": true, "totp_enabled": true, "backup_code_enabled": true, "mfa_enabled_at": 1615852800, "mfa_disabled_at": null, "external_accounts": [{"object": "facebook_account", "id": "ext_account_id_123", "provider": "Facebook", "identification_id": "", "provider_user_id": "", "approved_scopes": "", "email_address": "Ricky66@yahoo.com", "first_name": "Desmond", "last_name": "Wuckert", "public_metadata": {}, "created_at": 534276, "updated_at": 656424, "verification": {"object": "verification_google_one_tap", "status": "verified", "strategy": "google_one_tap", "expire_at": 1615462399, "attempts": 1}, "user_id": "user_id_at_provider"}], "saml_accounts": [{"id": "saml_account_id_123", "object": "saml_account", "provider": "SAML Provider", "active": true, "email_address": "user@example.com", "public_metadata": {"department": "IT"}, "verification": {"object": "verification_ticket", "status": "verified", "strategy": "ticket", "attempts": null, "expire_at": null}}], "last_sign_in_at": 1622852400, "banned": false, "locked": false, "lockout_expires_in_seconds": null, "verification_attempts_remaining": 5, "updated_at": 1622852400, "created_at": 1609459200, "delete_self_enabled": true, "create_organization_enabled": true, "last_active_at": 1700690400000, "legal_accepted_at": 1700690400000} "402": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} LockUser: speakeasy-default-lock-user: parameters: @@ -1973,7 +2026,7 @@ examples: "200": application/json: {"id": "user_id_123", "object": "user", "external_id": "external_user_id_123", "primary_email_address_id": "email_id_123", "primary_phone_number_id": "phone_id_123", "primary_web3_wallet_id": "wallet_id_123", "username": "john_doe", "first_name": "John", "last_name": "Doe", "image_url": "https://example.com/new-profile.jpg", "has_image": true, "public_metadata": {"role": "admin"}, "private_metadata": {"ssn": "123-45-6789"}, "unsafe_metadata": {"theme": "dark"}, "email_addresses": [{"id": "email_id_123", "object": "email_address", "email_address": "john.doe@example.com", "reserved": false, "verification": {"object": "verification_otp", "status": "verified", "strategy": "email_code", "attempts": 1, "expire_at": 1615462399}, "linked_to": [{"type": "oauth_google", "id": "link_12345"}], "created_at": 1609459200, "updated_at": 1609459200}], "phone_numbers": [{"id": "phone_id_123", "object": "phone_number", "phone_number": "+12345678901", "reserved": false, "verification": {"object": "verification_otp", "status": "verified", "strategy": "email_code", "attempts": 1, "expire_at": 1615462399}, "linked_to": [{"type": "oauth_google", "id": "link_id_123"}], "created_at": 1609459200, "updated_at": 1609459200}], "web3_wallets": [{"id": "wallet_id_123", "object": "web3_wallet", "web3_wallet": "0x123456789abcdef", "verification": {"object": "verification_admin", "status": "verified", "strategy": "admin", "attempts": null, "expire_at": null}, "created_at": 1609459200, "updated_at": 1609459200}], "passkeys": [{"id": "passkey_id_123", "object": "passkey", "name": "My Passkey", "last_used_at": 1615852800, "verification": {"object": "verification_passkey", "status": "verified", "strategy": "passkey", "attempts": null, "expire_at": null}}], "password_enabled": true, "two_factor_enabled": true, "totp_enabled": true, "backup_code_enabled": true, "mfa_enabled_at": 1615852800, "mfa_disabled_at": null, "external_accounts": [{"object": "facebook_account", "id": "ext_account_id_123", "provider": "Facebook", "identification_id": "", "provider_user_id": "", "approved_scopes": "", "email_address": "Drew.Goodwin75@hotmail.com", "first_name": "Jodie", "last_name": "Farrell", "public_metadata": {"key": ""}, "created_at": 499717, "updated_at": 945254, "verification": {"object": "verification_google_one_tap", "status": "verified", "strategy": "google_one_tap", "expire_at": 1615462399, "attempts": 1}, "user_id": "user_id_at_provider"}], "saml_accounts": [{"id": "saml_account_id_123", "object": "saml_account", "provider": "SAML Provider", "active": true, "email_address": "user@example.com", "public_metadata": {"department": "IT"}, "verification": {"object": "verification_saml", "status": "verified", "strategy": "saml", "external_verification_redirect_url": "https://intrepid-requirement.biz/", "expire_at": 505865, "attempts": null}}], "last_sign_in_at": 1622852400, "banned": false, "locked": false, "lockout_expires_in_seconds": null, "verification_attempts_remaining": 5, "updated_at": 1622852400, "created_at": 1609459200, "delete_self_enabled": true, "create_organization_enabled": true, "last_active_at": 1700690400000, "legal_accepted_at": 1700690400000} "403": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} UnlockUser: speakeasy-default-unlock-user: parameters: @@ -1983,7 +2036,7 @@ examples: "200": application/json: {"id": "user_id_123", "object": "user", "external_id": "external_user_id_123", "primary_email_address_id": "email_id_123", "primary_phone_number_id": "phone_id_123", "primary_web3_wallet_id": "wallet_id_123", "username": "john_doe", "first_name": "John", "last_name": "Doe", "image_url": "https://example.com/new-profile.jpg", "has_image": true, "public_metadata": {"role": "admin"}, "private_metadata": {"ssn": "123-45-6789"}, "unsafe_metadata": {"theme": "dark"}, "email_addresses": [{"id": "email_id_123", "object": "email_address", "email_address": "john.doe@example.com", "reserved": false, "verification": {"object": "verification_otp", "status": "verified", "strategy": "email_code", "attempts": 1, "expire_at": 1615462399}, "linked_to": [{"type": "oauth_google", "id": "link_12345"}], "created_at": 1609459200, "updated_at": 1609459200}], "phone_numbers": [{"id": "phone_id_123", "object": "phone_number", "phone_number": "+12345678901", "reserved": false, "verification": {"object": "verification_admin", "status": "verified", "strategy": "admin", "attempts": 1, "expire_at": 1615462399}, "linked_to": [{"type": "oauth_google", "id": "link_id_123"}], "created_at": 1609459200, "updated_at": 1609459200}], "web3_wallets": [{"id": "wallet_id_123", "object": "web3_wallet", "web3_wallet": "0x123456789abcdef", "verification": {"object": "verification_admin", "status": "verified", "strategy": "admin", "attempts": 0, "expire_at": 1620000000}, "created_at": 1609459200, "updated_at": 1609459200}], "passkeys": [{"id": "passkey_id_123", "object": "passkey", "name": "My Passkey", "last_used_at": 1615852800, "verification": {"object": "verification_passkey", "status": "verified", "strategy": "passkey", "attempts": null, "expire_at": null}}], "password_enabled": true, "two_factor_enabled": true, "totp_enabled": true, "backup_code_enabled": true, "mfa_enabled_at": 1615852800, "mfa_disabled_at": null, "external_accounts": [{"object": "google_account", "id": "ext_account_id_123", "provider": "Facebook", "identification_id": "", "provider_user_id": "", "approved_scopes": "", "email_address": "Kelley_Bogisich@yahoo.com", "first_name": "Kenton", "last_name": "Huels", "public_metadata": {"key": ""}, "created_at": 984576, "updated_at": 50898, "verification": {"object": "verification_google_one_tap", "status": "verified", "strategy": "google_one_tap", "expire_at": 1615462399, "attempts": 1}, "user_id": "user_id_at_provider"}], "saml_accounts": [{"id": "saml_account_id_123", "object": "saml_account", "provider": "SAML Provider", "active": true, "email_address": "user@example.com", "public_metadata": {"department": "IT"}, "verification": {"object": "verification_ticket", "status": "verified", "strategy": "ticket", "attempts": null, "expire_at": 1622852400}}], "last_sign_in_at": 1622852400, "banned": false, "locked": false, "lockout_expires_in_seconds": null, "verification_attempts_remaining": 5, "updated_at": 1622852400, "created_at": 1609459200, "delete_self_enabled": true, "create_organization_enabled": true, "last_active_at": 1700690400000, "legal_accepted_at": 1700690400000} "403": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} SetUserProfileImage: speakeasy-default-set-user-profile-image: parameters: @@ -1995,7 +2048,7 @@ examples: "200": application/json: {"id": "user_id_123", "object": "user", "external_id": "external_user_id_123", "primary_email_address_id": "email_id_123", "primary_phone_number_id": "phone_id_123", "primary_web3_wallet_id": "wallet_id_123", "username": "john_doe", "first_name": "John", "last_name": "Doe", "image_url": "https://example.com/new-profile.jpg", "has_image": true, "public_metadata": {"role": "admin"}, "private_metadata": {"ssn": "123-45-6789"}, "unsafe_metadata": {"theme": "dark"}, "email_addresses": [{"id": "email_id_123", "object": "email_address", "email_address": "john.doe@example.com", "reserved": false, "verification": {"object": "verification_ticket", "status": "verified", "strategy": "ticket", "attempts": null, "expire_at": null}, "linked_to": [{"type": "oauth_google", "id": "link_12345"}], "created_at": 1609459200, "updated_at": 1609459200}], "phone_numbers": [{"id": "phone_id_123", "object": "phone_number", "phone_number": "+12345678901", "reserved": false, "verification": {"object": "verification_admin", "status": "verified", "strategy": "admin", "attempts": 1, "expire_at": 1615462399}, "linked_to": [{"type": "oauth_google", "id": "link_id_123"}], "created_at": 1609459200, "updated_at": 1609459200}], "web3_wallets": [{"id": "wallet_id_123", "object": "web3_wallet", "web3_wallet": "0x123456789abcdef", "verification": {"object": "verification_web3", "status": "verified", "strategy": "web3_okx_wallet_signature", "attempts": 0, "expire_at": 1620000000}, "created_at": 1609459200, "updated_at": 1609459200}], "passkeys": [{"id": "passkey_id_123", "object": "passkey", "name": "My Passkey", "last_used_at": 1615852800, "verification": {"object": "verification_passkey", "status": "verified", "strategy": "passkey", "attempts": null, "expire_at": null}}], "password_enabled": true, "two_factor_enabled": true, "totp_enabled": true, "backup_code_enabled": true, "mfa_enabled_at": 1615852800, "mfa_disabled_at": null, "external_accounts": [{"object": "external_account", "id": "ext_account_id_123", "provider": "Facebook", "identification_id": "", "provider_user_id": "", "approved_scopes": "", "email_address": "Ines9@hotmail.com", "first_name": "Louvenia", "last_name": "Heaney", "public_metadata": {"key": "", "key1": "", "key2": ""}, "created_at": 833624, "updated_at": 114306, "verification": {"object": "verification_oauth", "status": "verified", "strategy": "oauth_google", "expire_at": 1615462399, "attempts": 1}, "user_id": "user_id_at_provider"}], "saml_accounts": [{"id": "saml_account_id_123", "object": "saml_account", "provider": "SAML Provider", "active": true, "email_address": "user@example.com", "public_metadata": {"department": "IT"}, "verification": {"object": "verification_saml", "status": "verified", "strategy": "saml", "external_verification_redirect_url": "https://example.com/saml_callback", "expire_at": 1622852400, "attempts": null}}], "last_sign_in_at": 1622852400, "banned": false, "locked": false, "lockout_expires_in_seconds": null, "verification_attempts_remaining": 5, "updated_at": 1622852400, "created_at": 1609459200, "delete_self_enabled": true, "create_organization_enabled": true, "last_active_at": 1700690400000, "legal_accepted_at": 1700690400000} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} DeleteUserProfileImage: speakeasy-default-delete-user-profile-image: parameters: @@ -2005,7 +2058,7 @@ examples: "200": application/json: {"id": "user_id_123", "object": "user", "external_id": "external_user_id_123", "primary_email_address_id": "email_id_123", "primary_phone_number_id": "phone_id_123", "primary_web3_wallet_id": "wallet_id_123", "username": "john_doe", "first_name": "John", "last_name": "Doe", "image_url": "https://example.com/new-profile.jpg", "has_image": true, "public_metadata": {"role": "admin"}, "private_metadata": {"ssn": "123-45-6789"}, "unsafe_metadata": {"theme": "dark"}, "email_addresses": [{"id": "email_id_123", "object": "email_address", "email_address": "john.doe@example.com", "reserved": false, "verification": {"object": "verification_ticket", "status": "verified", "strategy": "ticket", "attempts": null, "expire_at": null}, "linked_to": [{"type": "oauth_google", "id": "link_12345"}], "created_at": 1609459200, "updated_at": 1609459200}], "phone_numbers": [{"id": "phone_id_123", "object": "phone_number", "phone_number": "+12345678901", "reserved": false, "verification": {"object": "verification_otp", "status": "verified", "strategy": "email_code", "attempts": 1, "expire_at": 1615462399}, "linked_to": [{"type": "oauth_google", "id": "link_id_123"}], "created_at": 1609459200, "updated_at": 1609459200}], "web3_wallets": [{"id": "wallet_id_123", "object": "web3_wallet", "web3_wallet": "0x123456789abcdef", "verification": {"object": "verification_admin", "status": "verified", "strategy": "admin", "attempts": null, "expire_at": null}, "created_at": 1609459200, "updated_at": 1609459200}], "passkeys": [{"id": "passkey_id_123", "object": "passkey", "name": "My Passkey", "last_used_at": 1615852800, "verification": {"object": "verification_passkey", "status": "verified", "strategy": "passkey", "attempts": null, "expire_at": null}}], "password_enabled": true, "two_factor_enabled": true, "totp_enabled": true, "backup_code_enabled": true, "mfa_enabled_at": 1615852800, "mfa_disabled_at": null, "external_accounts": [{"object": "google_account", "id": "ext_account_id_123", "provider": "Facebook", "identification_id": "", "provider_user_id": "", "approved_scopes": "", "email_address": "Delphia91@gmail.com", "first_name": "Rodolfo", "last_name": "VonRueden", "public_metadata": {"key": ""}, "created_at": 437499, "updated_at": 230668, "verification": {"object": "verification_oauth", "status": "verified", "strategy": "oauth_google", "expire_at": 1615462399, "attempts": 1}, "user_id": "user_id_at_provider"}], "saml_accounts": [{"id": "saml_account_id_123", "object": "saml_account", "provider": "SAML Provider", "active": true, "email_address": "user@example.com", "public_metadata": {"department": "IT"}, "verification": {"object": "verification_saml", "status": "verified", "strategy": "saml", "external_verification_redirect_url": "https://example.com/saml_callback", "expire_at": 1622852400, "attempts": null}}], "last_sign_in_at": 1622852400, "banned": false, "locked": false, "lockout_expires_in_seconds": null, "verification_attempts_remaining": 5, "updated_at": 1622852400, "created_at": 1609459200, "delete_self_enabled": true, "create_organization_enabled": true, "last_active_at": 1700690400000, "legal_accepted_at": 1700690400000} "404": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} UpdateUserMetadata: speakeasy-default-update-user-metadata: parameters: @@ -2015,7 +2068,7 @@ examples: "200": application/json: {"id": "user_id_123", "object": "user", "external_id": "external_user_id_123", "primary_email_address_id": "email_id_123", "primary_phone_number_id": "phone_id_123", "primary_web3_wallet_id": "wallet_id_123", "username": "john_doe", "first_name": "John", "last_name": "Doe", "image_url": "https://example.com/new-profile.jpg", "has_image": true, "public_metadata": {"role": "admin"}, "private_metadata": {"ssn": "123-45-6789"}, "unsafe_metadata": {"theme": "dark"}, "email_addresses": [{"id": "email_id_123", "object": "email_address", "email_address": "john.doe@example.com", "reserved": false, "verification": {"object": "verification_otp", "status": "verified", "strategy": "email_code", "attempts": 1, "expire_at": 1615462399}, "linked_to": [{"type": "oauth_google", "id": "link_12345"}], "created_at": 1609459200, "updated_at": 1609459200}], "phone_numbers": [{"id": "phone_id_123", "object": "phone_number", "phone_number": "+12345678901", "reserved": false, "verification": {"object": "verification_otp", "status": "verified", "strategy": "email_code", "attempts": 1, "expire_at": 1615462399}, "linked_to": [{"type": "oauth_google", "id": "link_id_123"}], "created_at": 1609459200, "updated_at": 1609459200}], "web3_wallets": [{"id": "wallet_id_123", "object": "web3_wallet", "web3_wallet": "0x123456789abcdef", "verification": {"object": "verification_web3", "status": "verified", "strategy": "web3_metamask_signature", "attempts": null, "expire_at": null}, "created_at": 1609459200, "updated_at": 1609459200}], "passkeys": [{"id": "passkey_id_123", "object": "passkey", "name": "My Passkey", "last_used_at": 1615852800, "verification": {"object": "verification_passkey", "status": "verified", "strategy": "passkey", "attempts": null, "expire_at": null}}], "password_enabled": true, "two_factor_enabled": true, "totp_enabled": true, "backup_code_enabled": true, "mfa_enabled_at": 1615852800, "mfa_disabled_at": null, "external_accounts": [{"object": "facebook_account", "id": "ext_account_id_123", "provider": "Facebook", "identification_id": "", "provider_user_id": "", "approved_scopes": "", "email_address": "Florencio16@hotmail.com", "first_name": "Sherwood", "last_name": "Rice", "public_metadata": {"key": "", "key1": "", "key2": ""}, "created_at": 387756, "updated_at": 886972, "verification": {"object": "verification_google_one_tap", "status": "verified", "strategy": "google_one_tap", "expire_at": 1615462399, "attempts": 1}, "user_id": "user_id_at_provider"}], "saml_accounts": [{"id": "saml_account_id_123", "object": "saml_account", "provider": "SAML Provider", "active": true, "email_address": "user@example.com", "public_metadata": {"department": "IT"}, "verification": {"object": "verification_saml", "status": "verified", "strategy": "saml", "external_verification_redirect_url": "https://teeming-cod.org/", "expire_at": 887368, "attempts": null}}], "last_sign_in_at": 1622852400, "banned": false, "locked": false, "lockout_expires_in_seconds": null, "verification_attempts_remaining": 5, "updated_at": 1622852400, "created_at": 1609459200, "delete_self_enabled": true, "create_organization_enabled": true, "last_active_at": 1700690400000, "legal_accepted_at": 1700690400000} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} GetOAuthAccessToken: speakeasy-default-get-O-auth-access-token: parameters: @@ -2029,7 +2082,7 @@ examples: "200": application/json: [{"object": "oauth_access_token", "external_account_id": "", "provider_user_id": "", "token": "", "expires_at": 695473, "provider": "", "public_metadata": {}, "label": ""}] "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} UsersGetOrganizationMemberships: speakeasy-default-users-get-organization-memberships: parameters: @@ -2042,7 +2095,7 @@ examples: "200": application/json: {"data": [{"id": "org_mem_123", "object": "organization_membership", "role": "member", "permissions": ["read"], "public_metadata": {}, "organization": {"object": "organization", "id": "org_123", "name": "Acme Corp", "slug": "acme-corp", "has_image": false, "members_count": 150, "max_allowed_memberships": 300, "admin_delete_enabled": true, "public_metadata": {"public_info": "Info visible to everyone"}, "private_metadata": {"internal_use_only": "Sensitive data"}, "created_by": "user_123456", "created_at": 1625078400, "updated_at": 1625164800}, "created_at": 1625078400, "updated_at": 1625164800}, {"id": "org_mem_123", "object": "organization_membership", "role": "member", "permissions": ["read"], "public_metadata": {}, "organization": {"object": "organization", "id": "org_123", "name": "Acme Corp", "slug": "acme-corp", "has_image": false, "members_count": 150, "max_allowed_memberships": 300, "admin_delete_enabled": true, "public_metadata": {"public_info": "Info visible to everyone"}, "private_metadata": {"internal_use_only": "Sensitive data"}, "created_by": "user_123456", "created_at": 1625078400, "updated_at": 1625164800}, "created_at": 1625078400, "updated_at": 1625164800}, {"id": "org_mem_123", "object": "organization_membership", "role": "member", "permissions": ["read"], "public_metadata": {}, "organization": {"object": "organization", "id": "org_123", "name": "Acme Corp", "slug": "acme-corp", "has_image": true, "members_count": 150, "max_allowed_memberships": 300, "admin_delete_enabled": true, "public_metadata": {"public_info": "Info visible to everyone"}, "private_metadata": {"internal_use_only": "Sensitive data"}, "created_by": "user_123456", "created_at": 1625078400, "updated_at": 1625164800}, "created_at": 1625078400, "updated_at": 1625164800}], "total_count": 1} "403": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} UsersGetOrganizationInvitations: speakeasy-default-users-get-organization-invitations: parameters: @@ -2055,7 +2108,7 @@ examples: "200": application/json: {"data": [{"object": "organization_invitation", "id": "", "email_address": "Zechariah88@gmail.com", "role": "", "role_name": "", "public_metadata": {}, "url": "https://serpentine-morning.net/", "expires_at": 762270, "created_at": 200458, "updated_at": 874805}], "total_count": 518000} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} VerifyPassword: speakeasy-default-verify-password: parameters: @@ -2067,7 +2120,7 @@ examples: "200": application/json: {"verified": true} "500": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} VerifyTOTP: speakeasy-default-verify-TOTP: parameters: @@ -2079,7 +2132,7 @@ examples: "200": application/json: {"verified": true, "code_type": "totp"} "500": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} DisableMFA: speakeasy-default-disable-MFA: parameters: @@ -2089,9 +2142,9 @@ examples: "200": application/json: {"user_id": "user_123456"} "404": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} "500": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} DeleteBackupCode: speakeasy-default-delete-backup-code: parameters: @@ -2101,9 +2154,9 @@ examples: "200": application/json: {} "404": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} "500": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} UserPasskeyDelete: speakeasy-default-user-passkey-delete: parameters: @@ -2114,9 +2167,9 @@ examples: "200": application/json: {"object": "deleted_object", "id": "deleted_object_id_example", "slug": "deleted-object-slug", "deleted": true} "403": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} "500": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} UserWeb3WalletDelete: speakeasy-default-user-web3-wallet-delete: parameters: @@ -2127,9 +2180,9 @@ examples: "200": application/json: {"object": "deleted_object", "id": "deleted_object_id_example", "slug": "deleted-object-slug", "deleted": true} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} "500": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} DeleteTOTP: speakeasy-default-delete-TOTP: parameters: @@ -2139,9 +2192,9 @@ examples: "200": application/json: {} "404": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} "500": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} DeleteExternalAccount: speakeasy-default-delete-external-account: parameters: @@ -2152,9 +2205,9 @@ examples: "200": application/json: {"object": "deleted_object", "id": "deleted_object_id_example", "slug": "deleted-object-slug", "deleted": true} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} "500": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} InstanceGetOrganizationMemberships: speakeasy-default-instance-get-organization-memberships: parameters: @@ -2165,9 +2218,9 @@ examples: "200": application/json: {"data": [{"id": "org_mem_123", "object": "organization_membership", "role": "member", "permissions": ["read"], "public_metadata": {}, "organization": {"object": "organization", "id": "org_123", "name": "Acme Corp", "slug": "acme-corp", "has_image": true, "members_count": 150, "max_allowed_memberships": 300, "admin_delete_enabled": true, "public_metadata": {"public_info": "Info visible to everyone"}, "private_metadata": {"internal_use_only": "Sensitive data"}, "created_by": "user_123456", "created_at": 1625078400, "updated_at": 1625164800}, "created_at": 1625078400, "updated_at": 1625164800}], "total_count": 1} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} "500": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} CreateInvitation: speakeasy-default-create-invitation: requestBody: @@ -2176,7 +2229,7 @@ examples: "200": application/json: {"object": "invitation", "id": "inv_f02930r3", "email_address": "invitee@example.com", "public_metadata": {}, "revoked": false, "status": "pending", "url": "https://example.com/invitations/accept?code=abcd1234", "created_at": 1622549600, "updated_at": 1622553200} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} ListInvitations: speakeasy-default-list-invitations: parameters: @@ -2193,7 +2246,7 @@ examples: "200": application/json: [{"object": "invitation", "id": "inv_f02930r3", "email_address": "invitee@example.com", "public_metadata": {}, "revoked": false, "status": "pending", "url": "https://example.com/invitations/accept?code=abcd1234", "created_at": 1622549600, "updated_at": 1622553200}, {"object": "invitation", "id": "inv_f02930r3", "email_address": "invitee@example.com", "public_metadata": {}, "revoked": false, "status": "pending", "url": "https://example.com/invitations/accept?code=abcd1234", "created_at": 1622549600, "updated_at": 1622553200}] "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} RevokeInvitation: speakeasy-default-revoke-invitation: parameters: @@ -2203,7 +2256,7 @@ examples: "200": application/json: {"object": "invitation", "id": "inv_f02930r3", "email_address": "invitee@example.com", "public_metadata": {}, "revoked": true, "status": "revoked", "url": "https://example.com/invitations/accept?code=abcd1234", "created_at": 1622549600, "updated_at": 1622553200} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} ListInstanceOrganizationInvitations: speakeasy-default-list-instance-organization-invitations: parameters: @@ -2215,9 +2268,9 @@ examples: "200": application/json: {"data": [{"object": "organization_invitation", "id": "", "email_address": "Jessyca43@gmail.com", "role": "", "role_name": "", "public_metadata": {"key": "", "key1": "", "key2": ""}, "url": "https://hopeful-opera.com", "expires_at": 284691, "created_at": 177802, "updated_at": 977122}], "total_count": 98446} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} "500": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} CreateOrganizationInvitation: speakeasy-default-create-organization-invitation: parameters: @@ -2229,7 +2282,7 @@ examples: "200": application/json: {"object": "organization_invitation", "id": "inv_12345", "email_address": "user@example.com", "role": "admin", "role_name": "", "organization_id": "org_12345", "status": "pending", "public_metadata": {"key": "value"}, "private_metadata": {"private_key": "secret_value"}, "url": "https://spirited-tentacle.net/", "expires_at": 942910, "created_at": 1622547600, "updated_at": 1622551200} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} ListOrganizationInvitations: speakeasy-default-list-organization-invitations: parameters: @@ -2243,7 +2296,7 @@ examples: "200": application/json: {"data": [{"object": "organization_invitation", "id": "inv_12345", "email_address": "user@example.com", "role": "member", "role_name": "", "organization_id": "org_12345", "status": "pending", "public_metadata": {"key": "value"}, "url": "https://utter-antelope.info/", "expires_at": 783375, "created_at": 1617981379, "updated_at": 1625581379}], "total_count": 10} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} CreateOrganizationInvitationBulk: speakeasy-default-create-organization-invitation-bulk: parameters: @@ -2255,7 +2308,7 @@ examples: "200": application/json: {"data": [{"object": "organization_invitation", "id": "inv_12345", "email_address": "user@example.com", "role": "member", "role_name": "", "organization_id": "org_12345", "status": "pending", "public_metadata": {"key": "value"}, "url": "https://lumbering-litter.org", "expires_at": 140948, "created_at": 1617981379, "updated_at": 1625581379}], "total_count": 10} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} ListPendingOrganizationInvitations: "": parameters: @@ -2280,7 +2333,7 @@ examples: "200": application/json: {"data": [{"object": "organization_invitation", "id": "inv_12345", "email_address": "user@example.com", "role": "member", "role_name": "", "organization_id": "org_12345", "status": "pending", "public_metadata": {"key": "value"}, "url": "https://junior-tribe.com", "expires_at": 713465, "created_at": 1617981379, "updated_at": 1625581379}], "total_count": 10} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} GetOrganizationInvitation: speakeasy-default-get-organization-invitation: parameters: @@ -2291,7 +2344,7 @@ examples: "200": application/json: {"object": "organization_invitation", "id": "inv_12345", "email_address": "user@example.com", "role": "admin", "role_name": "", "organization_id": "org_12345", "status": "pending", "public_metadata": {"key": "value"}, "private_metadata": {"private_key": "secret_value"}, "url": "https://aggravating-unibody.info/", "expires_at": 828780, "created_at": 1622547600, "updated_at": 1622551200} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} RevokeOrganizationInvitation: speakeasy-default-revoke-organization-invitation: parameters: @@ -2304,7 +2357,7 @@ examples: "200": application/json: {"object": "organization_invitation", "id": "inv_12345", "email_address": "user@example.com", "role": "admin", "role_name": "", "organization_id": "org_12345", "status": "pending", "public_metadata": {"key": "value"}, "private_metadata": {"private_key": "secret_value"}, "url": "https://immense-arcade.info/", "expires_at": 147884, "created_at": 1622547600, "updated_at": 1622551200} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} ListAllowlistIdentifiers: speakeasy-default-list-allowlist-identifiers: parameters: @@ -2315,7 +2368,7 @@ examples: "200": application/json: [{"object": "allowlist_identifier", "id": "alid_123456", "invitation_id": "inv_123456", "identifier": "user@example.com", "identifier_type": "email_address", "instance_id": "instance_12345", "created_at": 1622547600, "updated_at": 1622648600}, {"object": "allowlist_identifier", "id": "alid_123456", "invitation_id": "inv_123456", "identifier": "user@example.com", "identifier_type": "email_address", "instance_id": "instance_12345", "created_at": 1622547600, "updated_at": 1622648600}, {"object": "allowlist_identifier", "id": "alid_123456", "invitation_id": "inv_123456", "identifier": "user@example.com", "identifier_type": "email_address", "instance_id": "instance_12345", "created_at": 1622547600, "updated_at": 1622648600}] "401": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} CreateAllowlistIdentifier: speakeasy-default-create-allowlist-identifier: requestBody: @@ -2324,7 +2377,7 @@ examples: "200": application/json: {"object": "allowlist_identifier", "id": "alid_123456", "invitation_id": "inv_123456", "identifier": "user@example.com", "identifier_type": "email_address", "instance_id": "instance_12345", "created_at": 1622547600, "updated_at": 1622648600} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} DeleteAllowlistIdentifier: speakeasy-default-delete-allowlist-identifier: parameters: @@ -2334,14 +2387,14 @@ examples: "200": application/json: {"object": "deleted_object", "id": "deleted_object_id_example", "slug": "deleted-object-slug", "deleted": true} "402": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} ListBlocklistIdentifiers: speakeasy-default-list-blocklist-identifiers: responses: "200": application/json: {"data": [{"object": "blocklist_identifier", "id": "identifier_id", "identifier": "blocked@example.com", "identifier_type": "email_address", "instance_id": "instance_id_here", "created_at": 1609459200, "updated_at": 1612137600}, {"object": "blocklist_identifier", "id": "identifier_id", "identifier": "blocked@example.com", "identifier_type": "email_address", "instance_id": "instance_id_here", "created_at": 1609459200, "updated_at": 1612137600}], "total_count": 100} "401": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} CreateBlocklistIdentifier: speakeasy-default-create-blocklist-identifier: requestBody: @@ -2350,7 +2403,7 @@ examples: "200": application/json: {"object": "blocklist_identifier", "id": "identifier_id", "identifier": "blocked@example.com", "identifier_type": "email_address", "instance_id": "instance_id_here", "created_at": 1609459200, "updated_at": 1612137600} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} DeleteBlocklistIdentifier: speakeasy-default-delete-blocklist-identifier: parameters: @@ -2360,7 +2413,7 @@ examples: "200": application/json: {"object": "deleted_object", "id": "deleted_object_id_example", "slug": "deleted-object-slug", "deleted": true} "402": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} UpdateInstanceAuthConfig: speakeasy-default-update-instance-auth-config: requestBody: @@ -2369,14 +2422,14 @@ examples: "200": application/json: {"object": "instance_settings", "id": "inst_123456789", "restricted_to_allowlist": false, "from_email_address": "noreply@clerk.dev", "progressive_sign_up": true, "enhanced_email_deliverability": true} "402": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} UpdateProductionInstanceDomain: speakeasy-default-update-production-instance-domain: requestBody: application/json: {"home_url": "https://www.example.com"} responses: "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} CreateActorToken: speakeasy-default-create-actor-token: requestBody: @@ -2385,7 +2438,7 @@ examples: "200": application/json: {"object": "actor_token", "id": "actor_tok_1a2b3c", "status": "pending", "user_id": "user_1a2b3c", "actor": {}, "token": "token_string", "url": "https://example.com/token", "created_at": 1609459200, "updated_at": 1612137600} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} RevokeActorToken: speakeasy-default-revoke-actor-token: parameters: @@ -2395,7 +2448,7 @@ examples: "200": application/json: {"object": "actor_token", "id": "actor_tok_1a2b3c", "status": "pending", "user_id": "user_1a2b3c", "actor": {}, "token": "token_string", "url": "https://example.com/token", "created_at": 1609459200, "updated_at": 1612137600} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} ListDomains: speakeasy-default-list-domains: responses: @@ -2409,7 +2462,7 @@ examples: "200": application/json: {"object": "domain", "id": "domain_id", "name": "example.com", "is_satellite": false, "frontend_api_url": "https://frontend.example.com", "accounts_portal_url": null, "proxy_url": null, "development_origin": "http://localhost:3000", "cname_targets": [{"host": "example-host.clerk.com", "value": "example-value.clerk.services", "required": true}]} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} DeleteDomain: speakeasy-default-delete-domain: parameters: @@ -2419,7 +2472,7 @@ examples: "200": application/json: {"object": "deleted_object", "id": "deleted_object_id_example", "slug": "deleted-object-slug", "deleted": true} "403": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} UpdateDomain: speakeasy-default-update-domain: parameters: @@ -2431,7 +2484,7 @@ examples: "200": application/json: {"object": "domain", "id": "domain_id", "name": "example.com", "is_satellite": false, "frontend_api_url": "https://frontend.example.com", "accounts_portal_url": null, "proxy_url": null, "development_origin": "http://localhost:3000", "cname_targets": [{"host": "example-host.clerk.com", "value": "example-value.clerk.services", "required": true}]} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} GetInstance: speakeasy-default-get-instance: responses: @@ -2443,7 +2496,7 @@ examples: application/json: {"test_mode": true, "hibp": false, "enhanced_email_deliverability": true, "support_email": "support@example.com", "clerk_js_version": "2.3.1", "development_origin": "http://localhost:3000", "allowed_origins": ["http://localhost:3000", "chrome-extension://extension_uiid", "capacitor://localhost"], "url_based_session_syncing": true} responses: "422": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} UpdateInstanceRestrictions: speakeasy-default-update-instance-restrictions: requestBody: @@ -2452,14 +2505,14 @@ examples: "200": application/json: {"object": "instance_restrictions", "allowlist": false, "blocklist": true, "allowlist_blocklist_disabled_on_sign_in": false, "block_email_subaddresses": true, "block_disposable_email_domains": false} "402": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} ChangeProductionInstanceDomain: speakeasy-default-change-production-instance-domain: requestBody: application/json: {"home_url": "https://www.newdomain.com"} responses: "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} UpdateInstanceOrganizationSettings: speakeasy-default-update-instance-organization-settings: requestBody: @@ -2468,26 +2521,26 @@ examples: "200": application/json: {"object": "organization_settings", "enabled": true, "max_allowed_memberships": 5, "max_allowed_roles": 3, "creator_role": "admin", "admin_delete_enabled": true, "domains_enabled": true, "domains_enrollment_modes": ["automatic_invitation", "automatic_suggestion"], "domains_default_role": "member"} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} CreateSvixApp: speakeasy-default-create-svix-app: responses: "200": application/json: {"svix_url": "https://app.svix.com/your-instance-url"} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} DeleteSvixApp: speakeasy-default-delete-svix-app: responses: "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} GenerateSvixAuthURL: speakeasy-default-generate-svix-auth-URL: responses: "200": application/json: {"svix_url": "https://app.svix.com/your-instance-url"} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} ListJWTTemplates: speakeasy-default-list-JWT-templates: parameters: @@ -2505,7 +2558,7 @@ examples: "200": application/json: {"object": "jwt_template", "id": "jt_1234567890abcdef", "name": "My First JWT Template", "claims": {}, "lifetime": 3600, "allowed_clock_skew": 5, "custom_signing_key": false, "signing_algorithm": "RS256", "created_at": 1609459200, "updated_at": 1612137600} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} GetJWTTemplate: speakeasy-default-get-JWT-template: parameters: @@ -2515,7 +2568,7 @@ examples: "200": application/json: {"object": "jwt_template", "id": "jt_1234567890abcdef", "name": "My First JWT Template", "claims": {}, "lifetime": 3600, "allowed_clock_skew": 5, "custom_signing_key": false, "signing_algorithm": "RS256", "created_at": 1609459200, "updated_at": 1612137600} "404": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} UpdateJWTTemplate: speakeasy-default-update-JWT-template: parameters: @@ -2525,7 +2578,7 @@ examples: "200": application/json: {"object": "jwt_template", "id": "jt_1234567890abcdef", "name": "My First JWT Template", "claims": {}, "lifetime": 3600, "allowed_clock_skew": 5, "custom_signing_key": false, "signing_algorithm": "RS256", "created_at": 1609459200, "updated_at": 1612137600} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} DeleteJWTTemplate: speakeasy-default-delete-JWT-template: parameters: @@ -2535,7 +2588,7 @@ examples: "200": application/json: {"object": "deleted_object", "id": "deleted_object_id_example", "slug": "deleted-object-slug", "deleted": true} "403": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} ListOrganizations: speakeasy-default-list-organizations: parameters: @@ -2550,7 +2603,7 @@ examples: "200": application/json: {"data": [{"object": "organization", "id": "org_1234", "name": "Sample Organization", "slug": "acme-corp", "has_image": true, "max_allowed_memberships": 300, "admin_delete_enabled": true, "public_metadata": {"public_info": "Info visible to everyone"}, "created_at": 1625078400, "updated_at": 1625164800}], "total_count": 1} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} CreateOrganization: speakeasy-default-create-organization: requestBody: @@ -2559,7 +2612,7 @@ examples: "200": application/json: {"object": "organization", "id": "org_123", "name": "Acme Corp", "slug": "acme-corp", "has_image": false, "members_count": 150, "max_allowed_memberships": 300, "admin_delete_enabled": true, "public_metadata": {"public_info": "Info visible to everyone"}, "private_metadata": {"internal_use_only": "Sensitive data"}, "created_by": "user_123456", "created_at": 1625078400, "updated_at": 1625164800} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} GetOrganization: speakeasy-default-get-organization: parameters: @@ -2570,7 +2623,7 @@ examples: "200": application/json: {"object": "organization", "id": "org_123", "name": "Acme Corp", "slug": "acme-corp", "has_image": false, "members_count": 150, "max_allowed_memberships": 300, "admin_delete_enabled": true, "public_metadata": {"public_info": "Info visible to everyone"}, "private_metadata": {"internal_use_only": "Sensitive data"}, "created_by": "user_123456", "created_at": 1625078400, "updated_at": 1625164800} "403": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} UpdateOrganization: speakeasy-default-update-organization: parameters: @@ -2582,7 +2635,7 @@ examples: "200": application/json: {"object": "organization", "id": "org_123", "name": "Acme Corp", "slug": "acme-corp", "has_image": false, "members_count": 150, "max_allowed_memberships": 300, "admin_delete_enabled": true, "public_metadata": {"public_info": "Info visible to everyone"}, "private_metadata": {"internal_use_only": "Sensitive data"}, "created_by": "user_123456", "created_at": 1625078400, "updated_at": 1625164800} "402": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} DeleteOrganization: speakeasy-default-delete-organization: parameters: @@ -2592,7 +2645,7 @@ examples: "200": application/json: {"object": "deleted_object", "id": "deleted_object_id_example", "slug": "deleted-object-slug", "deleted": true} "404": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} MergeOrganizationMetadata: speakeasy-default-merge-organization-metadata: parameters: @@ -2604,7 +2657,7 @@ examples: "200": application/json: {"object": "organization", "id": "org_123", "name": "Acme Corp", "slug": "acme-corp", "has_image": false, "members_count": 150, "max_allowed_memberships": 300, "admin_delete_enabled": true, "public_metadata": {"public_info": "Info visible to everyone"}, "private_metadata": {"internal_use_only": "Sensitive data"}, "created_by": "user_123456", "created_at": 1625078400, "updated_at": 1625164800} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} UploadOrganizationLogo: speakeasy-default-upload-organization-logo: parameters: @@ -2616,7 +2669,7 @@ examples: "200": application/json: {"object": "organization", "id": "org_123", "name": "Acme Corp", "slug": "acme-corp", "image_url": "https://example.com/image_url.png", "has_image": true, "members_count": 150, "max_allowed_memberships": 300, "admin_delete_enabled": true, "public_metadata": {"public_info": "Info visible to everyone"}, "private_metadata": {"internal_use_only": "Sensitive data"}, "created_by": "user_123456", "created_at": 1625078400, "updated_at": 1625164800} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} DeleteOrganizationLogo: speakeasy-default-delete-organization-logo: parameters: @@ -2626,7 +2679,7 @@ examples: "200": application/json: {"object": "organization", "id": "org_123", "name": "Acme Corp", "slug": "acme-corp", "has_image": false, "members_count": 150, "max_allowed_memberships": 300, "admin_delete_enabled": true, "public_metadata": {"public_info": "Info visible to everyone"}, "private_metadata": {"internal_use_only": "Sensitive data"}, "created_by": "user_123456", "created_at": 1625078400, "updated_at": 1625164800} "404": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} CreateOrganizationMembership: speakeasy-default-create-organization-membership: parameters: @@ -2638,7 +2691,7 @@ examples: "200": application/json: {"id": "org_mem_123", "object": "organization_membership", "role": "member", "permissions": ["read", "write"], "public_metadata": {}, "private_metadata": {}, "organization": {"object": "organization", "id": "org_123", "name": "Acme Corp", "slug": "acme-corp", "has_image": false, "members_count": 150, "max_allowed_memberships": 300, "admin_delete_enabled": true, "public_metadata": {"public_info": "Info visible to everyone"}, "private_metadata": {"internal_use_only": "Sensitive data"}, "created_by": "user_123456", "created_at": 1625078400, "updated_at": 1625164800}, "created_at": 1625078400, "updated_at": 1625164800} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} ListOrganizationMemberships: "": parameters: @@ -2673,7 +2726,7 @@ examples: "200": application/json: {"data": [], "total_count": 1} "401": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} UpdateOrganizationMembership: speakeasy-default-update-organization-membership: parameters: @@ -2686,7 +2739,7 @@ examples: "200": application/json: {"id": "org_mem_123", "object": "organization_membership", "role": "member", "permissions": ["read", "write"], "public_metadata": {}, "private_metadata": {}, "organization": {"object": "organization", "id": "org_123", "name": "Acme Corp", "slug": "acme-corp", "has_image": true, "members_count": 150, "max_allowed_memberships": 300, "admin_delete_enabled": true, "public_metadata": {"public_info": "Info visible to everyone"}, "private_metadata": {"internal_use_only": "Sensitive data"}, "created_by": "user_123456", "created_at": 1625078400, "updated_at": 1625164800}, "created_at": 1625078400, "updated_at": 1625164800} "404": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} DeleteOrganizationMembership: speakeasy-default-delete-organization-membership: parameters: @@ -2697,7 +2750,7 @@ examples: "200": application/json: {"id": "org_mem_123", "object": "organization_membership", "role": "member", "permissions": ["read", "write"], "public_metadata": {}, "private_metadata": {}, "organization": {"object": "organization", "id": "org_123", "name": "Acme Corp", "slug": "acme-corp", "has_image": true, "members_count": 150, "max_allowed_memberships": 300, "admin_delete_enabled": true, "public_metadata": {"public_info": "Info visible to everyone"}, "private_metadata": {"internal_use_only": "Sensitive data"}, "created_by": "user_123456", "created_at": 1625078400, "updated_at": 1625164800}, "created_at": 1625078400, "updated_at": 1625164800} "401": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} UpdateOrganizationMembershipMetadata: speakeasy-default-update-organization-membership-metadata: parameters: @@ -2710,7 +2763,7 @@ examples: "200": application/json: {"id": "org_mem_123", "object": "organization_membership", "role": "member", "permissions": ["read", "write"], "public_metadata": {}, "private_metadata": {}, "organization": {"object": "organization", "id": "org_123", "name": "Acme Corp", "slug": "acme-corp", "has_image": true, "members_count": 150, "max_allowed_memberships": 300, "admin_delete_enabled": true, "public_metadata": {"public_info": "Info visible to everyone"}, "private_metadata": {"internal_use_only": "Sensitive data"}, "created_by": "user_123456", "created_at": 1625078400, "updated_at": 1625164800}, "created_at": 1625078400, "updated_at": 1625164800} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} CreateOrganizationDomain: speakeasy-default-create-organization-domain: parameters: @@ -2722,7 +2775,7 @@ examples: "200": application/json: {"object": "organization_domain", "id": "", "organization_id": "", "name": "", "enrollment_mode": "automatic_invitation", "affiliation_email_address": "", "verification": {"status": "verified", "strategy": "", "attempts": 525133, "expire_at": 196085}, "total_pending_invitations": 309031, "total_pending_suggestions": 17365, "created_at": 755903, "updated_at": 459803} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} ListOrganizationDomains: speakeasy-default-list-organization-domains: parameters: @@ -2735,7 +2788,7 @@ examples: "200": application/json: {"data": [{"object": "organization_domain", "id": "", "organization_id": "", "name": "", "enrollment_mode": "automatic_invitation", "affiliation_email_address": "", "verification": {"status": "unverified", "strategy": "", "attempts": 877729, "expire_at": 53323}, "total_pending_invitations": 365727, "total_pending_suggestions": 853407, "created_at": 741657, "updated_at": 43873}, {"object": "organization_domain", "id": "", "organization_id": "", "name": "", "enrollment_mode": "automatic_invitation", "affiliation_email_address": "", "verification": {"status": "unverified", "strategy": "", "attempts": 877729, "expire_at": 53323}, "total_pending_invitations": 365727, "total_pending_suggestions": 853407, "created_at": 741657, "updated_at": 43873}], "total_count": 731471} "401": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} UpdateOrganizationDomain: speakeasy-default-update-organization-domain: parameters: @@ -2748,7 +2801,7 @@ examples: "200": application/json: {"object": "organization_domain", "id": "", "organization_id": "", "name": "", "enrollment_mode": "manual_invitation", "affiliation_email_address": "", "verification": {"status": "verified", "strategy": "", "attempts": 374293, "expire_at": 866093}, "total_pending_invitations": 806331, "total_pending_suggestions": 254888, "created_at": 729983, "updated_at": 663325} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} DeleteOrganizationDomain: speakeasy-default-delete-organization-domain: parameters: @@ -2759,7 +2812,7 @@ examples: "200": application/json: {"object": "deleted_object", "id": "deleted_object_id_example", "slug": "deleted-object-slug", "deleted": true} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} VerifyDomainProxy: speakeasy-default-verify-domain-proxy: requestBody: @@ -2768,7 +2821,7 @@ examples: "200": application/json: {"object": "proxy_check", "id": "chk_3498fd", "domain_id": "domain_32hfu3e", "last_run_at": 1622547600, "proxy_url": "https://example.com/__clerk", "successful": true, "created_at": 1622547000, "updated_at": 1622547700} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} ListRedirectURLs: speakeasy-default-list-redirect-UR-ls: parameters: @@ -2786,7 +2839,7 @@ examples: "200": application/json: {"object": "redirect_url", "id": "red_12345", "url": "https://my-app.com/oauth-callback", "created_at": 1610000000, "updated_at": 1620000000} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} GetRedirectURL: speakeasy-default-get-redirect-URL: parameters: @@ -2796,7 +2849,7 @@ examples: "200": application/json: {"object": "redirect_url", "id": "red_12345", "url": "https://my-app.com/oauth-callback", "created_at": 1610000000, "updated_at": 1620000000} "404": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} DeleteRedirectURL: speakeasy-default-delete-redirect-URL: parameters: @@ -2806,7 +2859,7 @@ examples: "200": application/json: {"object": "deleted_object", "id": "deleted_object_id_example", "slug": "deleted-object-slug", "deleted": true} "404": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} CreateSignInToken: speakeasy-default-create-sign-in-token: requestBody: @@ -2815,7 +2868,7 @@ examples: "200": application/json: {"object": "sign_in_token", "id": "token_12345", "status": "pending", "user_id": "user_12345", "token": "secret_token", "url": "https://example.com/signin/token", "created_at": 1609459200, "updated_at": 1612137600} "404": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} RevokeSignInToken: speakeasy-default-revoke-sign-in-token: parameters: @@ -2825,7 +2878,7 @@ examples: "200": application/json: {"object": "sign_in_token", "id": "token_12345", "status": "pending", "user_id": "user_12345", "token": "secret_token", "url": "https://example.com/signin/token", "created_at": 1609459200, "updated_at": 1612137600} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} GetSignUp: speakeasy-default-get-sign-up: parameters: @@ -2833,9 +2886,9 @@ examples: id: "" responses: "200": - application/json: {"object": "sign_up_attempt", "id": "signup_1234567890abcdef", "status": "complete", "required_fields": ["email_address"], "optional_fields": ["first_name", "last_name"], "missing_fields": ["phone_number"], "unverified_fields": ["email_address"], "verifications": {"email_address": {}, "phone_number": {}, "web3_wallet": {}, "external_account": {}}, "username": "user_123456", "email_address": "user@example.com", "phone_number": "+1234567890", "web3_wallet": "0x1234567890abcdef1234567890abcdef12345678", "password_enabled": true, "first_name": "John", "last_name": "Doe", "custom_action": false, "external_id": "ext_id_7890abcdef123456", "created_session_id": "sess_1234567890abcdef", "created_user_id": "user_1234567890abcdef", "abandon_at": 1609459200, "legal_accepted_at": 1700690400000} + application/json: {"object": "sign_up_attempt", "id": "signup_1234567890abcdef", "status": "complete", "required_fields": ["email_address"], "optional_fields": ["first_name", "last_name"], "missing_fields": ["phone_number"], "unverified_fields": ["email_address"], "verifications": {"email_address": {}, "phone_number": {}, "web3_wallet": {}, "external_account": {}}, "username": "user_123456", "email_address": "user@example.com", "phone_number": "+1234567890", "web3_wallet": "0x1234567890abcdef1234567890abcdef12345678", "password_enabled": true, "first_name": "John", "last_name": "Doe", "custom_action": false, "external_id": "ext_id_7890abcdef123456", "created_session_id": "sess_1234567890abcdef", "created_user_id": "user_1234567890abcdef", "abandon_at": 1609459200, "legal_accepted_at": 1700690400000, "locale": "en-US"} "403": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} UpdateSignUp: speakeasy-default-update-sign-up: parameters: @@ -2845,9 +2898,9 @@ examples: application/json: {"external_id": "ext_id_7890abcdef123456", "custom_action": false} responses: "200": - application/json: {"object": "sign_up_attempt", "id": "signup_1234567890abcdef", "status": "complete", "required_fields": ["email_address"], "optional_fields": ["first_name", "last_name"], "missing_fields": ["phone_number"], "unverified_fields": ["email_address"], "verifications": {"email_address": {}, "phone_number": {}, "web3_wallet": {}, "external_account": {}}, "username": "user_123456", "email_address": "user@example.com", "phone_number": "+1234567890", "web3_wallet": "0x1234567890abcdef1234567890abcdef12345678", "password_enabled": true, "first_name": "John", "last_name": "Doe", "custom_action": false, "external_id": "ext_id_7890abcdef123456", "created_session_id": "sess_1234567890abcdef", "created_user_id": "user_1234567890abcdef", "abandon_at": 1609459200, "legal_accepted_at": 1700690400000} + application/json: {"object": "sign_up_attempt", "id": "signup_1234567890abcdef", "status": "complete", "required_fields": ["email_address"], "optional_fields": ["first_name", "last_name"], "missing_fields": ["phone_number"], "unverified_fields": ["email_address"], "verifications": {"email_address": {}, "phone_number": {}, "web3_wallet": {}, "external_account": {}}, "username": "user_123456", "email_address": "user@example.com", "phone_number": "+1234567890", "web3_wallet": "0x1234567890abcdef1234567890abcdef12345678", "password_enabled": true, "first_name": "John", "last_name": "Doe", "custom_action": false, "external_id": "ext_id_7890abcdef123456", "created_session_id": "sess_1234567890abcdef", "created_user_id": "user_1234567890abcdef", "abandon_at": 1609459200, "legal_accepted_at": 1700690400000, "locale": "en-US"} "403": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} ListOAuthApplications: speakeasy-default-list-O-auth-applications: parameters: @@ -2859,7 +2912,7 @@ examples: "200": application/json: {"data": [{"object": "oauth_application", "id": "oauth_app_1234", "instance_id": "instance_5678", "name": "Example OAuth App", "client_id": "client_12345", "client_uri": "https://kosher-volleyball.biz", "client_image_url": "https://exalted-impact.biz", "dynamically_registered": false, "consent_screen_enabled": true, "pkce_required": true, "public": false, "scopes": "profile email", "redirect_uris": [], "callback_url": "https://example.com/oauth/callback", "authorize_url": "https://example.com/authorize", "token_fetch_url": "https://example.com/oauth/token", "user_info_url": "https://example.com/userinfo", "discovery_url": "https://kosher-volleyball.biz", "token_introspection_url": "https://realistic-designation.info/", "created_at": 1609459200, "updated_at": 1612137600}], "total_count": 1} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} CreateOAuthApplication: speakeasy-default-create-O-auth-application: requestBody: @@ -2868,7 +2921,7 @@ examples: "200": application/json: {"object": "oauth_application", "id": "oauth_app_1234", "instance_id": "instance_5678", "name": "Example OAuth App", "client_id": "client_12345", "client_uri": "https://familiar-sport.info/", "client_image_url": "https://colorful-collectivization.biz/", "dynamically_registered": false, "consent_screen_enabled": true, "pkce_required": true, "public": false, "scopes": "profile email", "redirect_uris": [""], "callback_url": "https://example.com/oauth/callback", "authorize_url": "https://example.com/authorize", "token_fetch_url": "https://example.com/oauth/token", "user_info_url": "https://example.com/userinfo", "discovery_url": "https://familiar-sport.info/", "token_introspection_url": "https://hateful-castanet.com/", "created_at": 1609459200, "updated_at": 1612137600, "client_secret": "secretXYZ123"} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} GetOAuthApplication: speakeasy-default-get-O-auth-application: parameters: @@ -2878,7 +2931,7 @@ examples: "200": application/json: {"object": "oauth_application", "id": "oauth_app_1234", "instance_id": "instance_5678", "name": "Example OAuth App", "client_id": "client_12345", "client_uri": "https://profitable-yin.name/", "client_image_url": "https://eminent-warming.com", "dynamically_registered": true, "consent_screen_enabled": true, "pkce_required": true, "public": false, "scopes": "profile email", "redirect_uris": [], "callback_url": "https://example.com/oauth/callback", "authorize_url": "https://example.com/authorize", "token_fetch_url": "https://example.com/oauth/token", "user_info_url": "https://example.com/userinfo", "discovery_url": "https://profitable-yin.name/", "token_introspection_url": "https://remorseful-declaration.org/", "created_at": 1609459200, "updated_at": 1612137600} "403": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} UpdateOAuthApplication: speakeasy-default-update-O-auth-application: parameters: @@ -2890,7 +2943,7 @@ examples: "200": application/json: {"object": "oauth_application", "id": "oauth_app_1234", "instance_id": "instance_5678", "name": "Example OAuth App", "client_id": "client_12345", "client_uri": null, "client_image_url": null, "dynamically_registered": true, "consent_screen_enabled": false, "pkce_required": true, "public": false, "scopes": "profile email", "redirect_uris": [], "callback_url": "https://example.com/oauth/callback", "authorize_url": "https://example.com/authorize", "token_fetch_url": "https://example.com/oauth/token", "user_info_url": "https://example.com/userinfo", "discovery_url": "https://frequent-tentacle.info/", "token_introspection_url": "https://lasting-restaurant.net", "created_at": 1609459200, "updated_at": 1612137600} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} DeleteOAuthApplication: speakeasy-default-delete-O-auth-application: parameters: @@ -2900,7 +2953,7 @@ examples: "200": application/json: {"object": "deleted_object", "id": "deleted_object_id_example", "slug": "deleted-object-slug", "deleted": true} "403": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} RotateOAuthApplicationSecret: speakeasy-default-rotate-O-auth-application-secret: parameters: @@ -2910,7 +2963,7 @@ examples: "200": application/json: {"object": "oauth_application", "id": "oauth_app_1234", "instance_id": "instance_5678", "name": "Example OAuth App", "client_id": "client_12345", "client_uri": "https://avaricious-puritan.name", "client_image_url": "https://ill-fated-sonar.com/", "dynamically_registered": true, "consent_screen_enabled": false, "pkce_required": true, "public": false, "scopes": "profile email", "redirect_uris": [], "callback_url": "https://example.com/oauth/callback", "authorize_url": "https://example.com/authorize", "token_fetch_url": "https://example.com/oauth/token", "user_info_url": "https://example.com/userinfo", "discovery_url": "https://avaricious-puritan.name", "token_introspection_url": "https://exalted-gown.net/", "created_at": 1609459200, "updated_at": 1612137600, "client_secret": "secretXYZ123"} "403": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} ListSAMLConnections: speakeasy-default-list-SAML-connections: parameters: @@ -2921,16 +2974,16 @@ examples: "200": application/json: {"data": [], "total_count": 5} "402": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} CreateSAMLConnection: speakeasy-default-create-SAML-connection: requestBody: application/json: {"name": "My SAML Connection", "domain": "example.org", "provider": "saml_custom", "idp_entity_id": "http://idp.example.org/", "idp_sso_url": "http://idp.example.org/sso", "idp_certificate": "MIIDdzCCAl+gAwIBAgIJAKcyBaiiz+DT...", "idp_metadata_url": "http://idp.example.org/metadata.xml", "idp_metadata": "", "name": "", "domain": "untried-mortise.biz", "idp_entity_id": "", "idp_sso_url": "https://clear-cut-pearl.net", "idp_certificate": "", "acs_url": "https://burly-sport.info", "sp_entity_id": "", "sp_metadata_url": "https://entire-reward.net/", "active": true, "provider": "", "user_count": 411245, "sync_user_attributes": false, "created_at": 807822, "updated_at": 392413} + application/json: {"object": "saml_connection", "id": "", "name": "", "domains": ["", ""], "idp_entity_id": "", "idp_sso_url": "https://clear-cut-pearl.net", "idp_certificate": "", "acs_url": "https://burly-sport.info", "sp_entity_id": "", "sp_metadata_url": "https://entire-reward.net/", "active": true, "provider": "", "user_count": 411245, "sync_user_attributes": false, "allow_subdomains": true, "allow_idp_initiated": false, "disable_additional_identifications": true, "force_authn": false, "created_at": 807822, "updated_at": 392413} "402": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} GetSAMLConnection: speakeasy-default-get-SAML-connection: parameters: @@ -2938,9 +2991,9 @@ examples: saml_connection_id: "saml_conn_123" responses: "200": - application/json: {"object": "saml_connection", "id": "", "name": "", "domain": "blushing-hawk.biz", "idp_entity_id": "", "idp_sso_url": "https://frizzy-flood.com/", "idp_certificate": "", "acs_url": "https://equatorial-thunderbolt.com", "sp_entity_id": "", "sp_metadata_url": "https://indelible-meatloaf.biz/", "active": false, "provider": "", "user_count": 673888, "sync_user_attributes": false, "created_at": 728969, "updated_at": 583235} + application/json: {"object": "saml_connection", "id": "", "name": "", "domain": "blushing-hawk.biz", "idp_entity_id": "", "idp_sso_url": "https://frizzy-flood.com/", "idp_certificate": "", "acs_url": "https://equatorial-thunderbolt.com", "sp_entity_id": "", "sp_metadata_url": "https://indelible-meatloaf.biz/", "active": false, "provider": "", "user_count": 673888, "sync_user_attributes": false, "allow_subdomains": true, "allow_idp_initiated": true, "disable_additional_identifications": true, "force_authn": true, "created_at": 728969, "updated_at": 583235} "402": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} UpdateSAMLConnection: speakeasy-default-update-SAML-connection: parameters: @@ -2950,9 +3003,9 @@ examples: application/json: {"name": "Example SAML Connection", "idp_entity_id": "entity_123", "idp_sso_url": "https://idp.example.com/sso", "idp_certificate": "MIIDBTCCAe2gAwIBAgIQ...", "idp_metadata_url": "https://idp.example.com/metadata", "idp_metadata": "...", "attribute_mapping": {"user_id": "id123", "email_address": "user@example.com", "first_name": "Jane", "last_name": "Doe"}, "active": true, "sync_user_attributes": false, "allow_subdomains": true, "allow_idp_initiated": false} responses: "200": - application/json: {"object": "saml_connection", "id": "", "name": "", "domain": "inborn-turret.net", "idp_entity_id": "", "idp_sso_url": "https://likely-fen.com", "idp_certificate": "", "acs_url": "https://critical-commodity.com", "sp_entity_id": "", "sp_metadata_url": "https://juvenile-fax.biz/", "active": false, "provider": "", "user_count": 288333, "sync_user_attributes": true, "created_at": 181401, "updated_at": 981924} + application/json: {"object": "saml_connection", "id": "", "name": "", "domain": "inborn-turret.net", "idp_entity_id": "", "idp_sso_url": "https://likely-fen.com", "idp_certificate": "", "acs_url": "https://critical-commodity.com", "sp_entity_id": "", "sp_metadata_url": "https://juvenile-fax.biz/", "active": false, "provider": "", "user_count": 288333, "sync_user_attributes": true, "allow_subdomains": false, "allow_idp_initiated": false, "disable_additional_identifications": false, "force_authn": true, "created_at": 181401, "updated_at": 981924} "402": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} DeleteSAMLConnection: speakeasy-default-delete-SAML-connection: parameters: @@ -2962,7 +3015,7 @@ examples: "200": application/json: {"object": "deleted_object", "id": "deleted_object_id_example", "slug": "deleted-object-slug", "deleted": true} "402": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} CreateTestingToken: speakeasy-default-create-testing-token: responses: @@ -2984,7 +3037,7 @@ examples: "200": application/json: {"object": "waitlist_entry", "id": "", "email_address": "Victoria21@gmail.com", "status": "pending", "created_at": 759136, "updated_at": 305720, "invitation": {"object": "invitation", "id": "inv_f02930r3", "email_address": "invitee@example.com", "public_metadata": {}, "revoked": false, "status": "pending", "url": "https://example.com/invitations/accept?code=abcd1234", "created_at": 1622549600, "updated_at": 1622553200}} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} CreateAccountlessApplication: speakeasy-default-create-accountless-application: responses: @@ -3049,7 +3102,7 @@ examples: "200": application/json: [{"id": "user_id_123", "object": "user", "external_id": "external_user_id_123", "primary_email_address_id": "email_id_123", "primary_phone_number_id": "phone_id_123", "primary_web3_wallet_id": "wallet_id_123", "username": "john_doe", "first_name": "John", "last_name": "Doe", "image_url": "https://example.com/new-profile.jpg", "has_image": true, "public_metadata": {"role": "admin"}, "private_metadata": {"ssn": "123-45-6789"}, "unsafe_metadata": {"theme": "dark"}, "email_addresses": [{"id": "email_id_123", "object": "email_address", "email_address": "john.doe@example.com", "reserved": false, "verification": {"object": "verification_ticket", "status": "verified", "strategy": "ticket", "attempts": 91086, "expire_at": 708739}, "linked_to": [{"type": "oauth_google", "id": "link_12345"}], "created_at": 1609459200, "updated_at": 1609459200}], "phone_numbers": [{"id": "phone_id_123", "object": "phone_number", "phone_number": "+12345678901", "reserved": false, "verification": {"object": "verification_otp", "status": "unverified", "strategy": "phone_code", "attempts": 893614, "expire_at": 350529}, "linked_to": [{"type": "oauth_google", "id": "link_id_123"}], "created_at": 1609459200, "updated_at": 1609459200}], "web3_wallets": [{"id": "wallet_id_123", "object": "web3_wallet", "web3_wallet": "0x123456789abcdef", "verification": {"object": "verification_admin", "status": "verified", "strategy": "admin", "attempts": 404836, "expire_at": 750499}, "created_at": 1609459200, "updated_at": 1609459200}], "passkeys": [{"id": "passkey_id_123", "object": "passkey", "name": "My Passkey", "last_used_at": 1615852800, "verification": {"object": "verification_passkey", "status": "verified", "strategy": "passkey", "attempts": null, "expire_at": 763042}}], "password_enabled": true, "two_factor_enabled": true, "totp_enabled": true, "backup_code_enabled": true, "mfa_enabled_at": 1615852800, "mfa_disabled_at": null, "external_accounts": [{"object": "external_account", "id": "ext_account_id_123", "provider": "Facebook", "identification_id": "", "provider_user_id": "", "approved_scopes": "", "email_address": "Jocelyn87@gmail.com", "first_name": "Dedrick", "last_name": "Goyette", "public_metadata": {"key": "", "key1": "", "key2": ""}, "created_at": 444185, "updated_at": 561917, "verification": {"object": "verification_oauth", "status": "expired", "strategy": "", "expire_at": 908602, "attempts": 295268}, "user_id": "user_id_at_provider"}], "saml_accounts": [{"id": "saml_account_id_123", "object": "saml_account", "provider": "SAML Provider", "active": true, "email_address": "user@example.com", "public_metadata": {"department": "IT"}, "verification": {"object": "verification_ticket", "status": "verified", "strategy": "ticket", "attempts": null, "expire_at": null}}], "last_sign_in_at": 1622852400, "banned": false, "locked": false, "lockout_expires_in_seconds": null, "verification_attempts_remaining": 5, "updated_at": 1622852400, "created_at": 1609459200, "delete_self_enabled": true, "create_organization_enabled": true, "last_active_at": 1700690400000, "legal_accepted_at": 1700690400000}] "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} UsersUnban: speakeasy-default-users-unban: requestBody: @@ -3058,7 +3111,7 @@ examples: "200": application/json: [{"id": "user_id_123", "object": "user", "external_id": "external_user_id_123", "primary_email_address_id": "email_id_123", "primary_phone_number_id": "phone_id_123", "primary_web3_wallet_id": "wallet_id_123", "username": "john_doe", "first_name": "John", "last_name": "Doe", "image_url": "https://example.com/new-profile.jpg", "has_image": true, "public_metadata": {"role": "admin"}, "private_metadata": {"ssn": "123-45-6789"}, "unsafe_metadata": {"theme": "dark"}, "email_addresses": [{"id": "email_id_123", "object": "email_address", "email_address": "john.doe@example.com", "reserved": false, "verification": {"object": "verification_admin", "status": "verified", "strategy": "admin", "attempts": 932013, "expire_at": 43591}, "linked_to": [{"type": "oauth_google", "id": "link_12345"}], "created_at": 1609459200, "updated_at": 1609459200}], "phone_numbers": [{"id": "phone_id_123", "object": "phone_number", "phone_number": "+12345678901", "reserved": false, "verification": {"object": "verification_admin", "status": "verified", "strategy": "admin", "attempts": 166995, "expire_at": 1094}, "linked_to": [{"type": "oauth_google", "id": "link_id_123"}], "created_at": 1609459200, "updated_at": 1609459200}], "web3_wallets": [{"id": "wallet_id_123", "object": "web3_wallet", "web3_wallet": "0x123456789abcdef", "verification": {"object": "verification_web3", "status": "verified", "strategy": "web3_metamask_signature", "attempts": 503363, "expire_at": 794368}, "created_at": 1609459200, "updated_at": 1609459200}], "passkeys": [{"id": "passkey_id_123", "object": "passkey", "name": "My Passkey", "last_used_at": 1615852800, "verification": {"object": "verification_passkey", "status": "verified", "strategy": "passkey", "attempts": 602166, "expire_at": 755931}}], "password_enabled": true, "two_factor_enabled": true, "totp_enabled": true, "backup_code_enabled": true, "mfa_enabled_at": 1615852800, "mfa_disabled_at": null, "external_accounts": [{"object": "external_account", "id": "ext_account_id_123", "provider": "Facebook", "identification_id": "", "provider_user_id": "", "approved_scopes": "", "email_address": "Eldred_Rutherford@hotmail.com", "first_name": "Paolo", "last_name": "Lemke", "public_metadata": {"key": "", "key1": ""}, "created_at": 168269, "updated_at": 632850, "verification": {"object": "verification_google_one_tap", "status": "unverified", "strategy": "google_one_tap", "expire_at": 327595, "attempts": 512315}, "user_id": "user_id_at_provider"}], "saml_accounts": [{"id": "saml_account_id_123", "object": "saml_account", "provider": "SAML Provider", "active": true, "email_address": "user@example.com", "public_metadata": {"department": "IT"}, "verification": {"object": "verification_ticket", "status": "unverified", "strategy": "ticket", "attempts": 288253, "expire_at": 640467}}], "last_sign_in_at": 1622852400, "banned": false, "locked": false, "lockout_expires_in_seconds": null, "verification_attempts_remaining": 5, "updated_at": 1622852400, "created_at": 1609459200, "delete_self_enabled": true, "create_organization_enabled": true, "last_active_at": 1700690400000, "legal_accepted_at": 1700690400000}] "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} CreateMachineToken: speakeasy-default-create-machine-token: responses: @@ -3077,14 +3130,14 @@ examples: "200": application/json: {"data": [{"object": "machine", "id": "", "name": "", "instance_id": "", "created_at": 249864, "updated_at": 973340, "default_token_ttl": 3600, "scoped_machines": [{"object": "machine", "id": "", "name": "", "instance_id": "", "created_at": 925110, "updated_at": 858677, "default_token_ttl": 3600}]}], "total_count": 970564} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} CreateMachine: speakeasy-default-create-machine: responses: "200": application/json: {"object": "machine", "id": "", "name": "", "instance_id": "", "created_at": 724380, "updated_at": 123379, "default_token_ttl": 3600, "scoped_machines": [], "secret_key": ""} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} GetMachine: speakeasy-default-get-machine: parameters: @@ -3094,7 +3147,7 @@ examples: "200": application/json: {"object": "machine", "id": "", "name": "", "instance_id": "", "created_at": 209081, "updated_at": 894118, "default_token_ttl": 3600, "scoped_machines": [{"object": "machine", "id": "", "name": "", "instance_id": "", "created_at": 149027, "updated_at": 82383, "default_token_ttl": 3600}]} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} UpdateMachine: speakeasy-default-update-machine: parameters: @@ -3104,7 +3157,7 @@ examples: "200": application/json: {"object": "machine", "id": "", "name": "", "instance_id": "", "created_at": 754540, "updated_at": 50086, "default_token_ttl": 3600, "scoped_machines": []} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} DeleteMachine: speakeasy-default-delete-machine: parameters: @@ -3114,7 +3167,7 @@ examples: "200": application/json: {"object": "machine", "id": "", "deleted": true} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} GetMachineSecretKey: speakeasy-default-get-machine-secret-key: parameters: @@ -3124,7 +3177,7 @@ examples: "200": application/json: {"object": "machine_secret_key", "secret": ""} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} CreateMachineScope: speakeasy-default-create-machine-scope: parameters: @@ -3134,7 +3187,7 @@ examples: "200": application/json: {"object": "machine_scope", "from_machine_id": "", "to_machine_id": "", "created_at": 144489} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} DeleteMachineScope: speakeasy-default-delete-machine-scope: parameters: @@ -3145,7 +3198,7 @@ examples: "200": application/json: {"object": "machine_scope", "from_machine_id": "", "to_machine_id": "", "deleted": false} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} ListAllOrganizationDomains: speakeasy-default-list-all-organization-domains: parameters: @@ -3157,7 +3210,7 @@ examples: "200": application/json: {"data": [], "total_count": 812605} "401": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} ManagementUpsertUser: speakeasy-default-management-upsert-user: requestBody: @@ -3206,9 +3259,9 @@ examples: "200": application/json: {"data": [], "total_count": 685364} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} "500": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} createM2MToken: speakeasy-default-create-m2-M-token: requestBody: @@ -3272,11 +3325,11 @@ examples: include_free: false responses: "200": - application/json: {"data": [{"object": "commerce_subscription_item", "id": "", "instance_id": "", "status": "abandoned", "plan_id": "", "plan": {"object": "commerce_plan", "id": "", "name": "", "fee": {"amount": 692858, "amount_formatted": "", "currency": "New Zealand Dollar", "currency_symbol": "kr"}, "annual_monthly_fee": {"amount": 119895, "amount_formatted": "", "currency": "Brunei Dollar", "currency_symbol": "ден"}, "annual_fee": {"amount": 989424, "amount_formatted": "", "currency": "Kwacha", "currency_symbol": "L"}, "amount": 349721, "amount_formatted": "", "annual_monthly_amount": 405709, "annual_monthly_amount_formatted": "", "annual_amount": 848366, "annual_amount_formatted": "", "currency_symbol": "₪", "currency": "Sri Lanka Rupee", "description": "scrap numb sentimental advertisement pfft cardboard above satirise", "product_id": "", "is_default": false, "is_recurring": true, "publicly_visible": true, "has_base_fee": true, "payer_type": ["", "", ""], "for_payer_type": "", "slug": "", "avatar_url": "https://nervous-jump.net", "features": [{"object": "feature", "id": "", "name": "", "description": "intrepid nautical gee judgementally neaten chasuble dimly", "slug": "", "avatar_url": "https://anguished-cheetah.net"}]}, "plan_period": "month", "payment_source_id": "", "payer_id": "", "is_free_trial": true, "proration_date": "", "created_at": 52347, "updated_at": 42603}], "total_count": 88070} + application/json: {"data": [{"object": "commerce_subscription_item", "id": "", "instance_id": "", "status": "abandoned", "plan_id": "", "plan": {"object": "commerce_plan", "id": "", "name": "", "fee": {"amount": 692858, "amount_formatted": "", "currency": "New Zealand Dollar", "currency_symbol": "kr"}, "annual_monthly_fee": {"amount": 119895, "amount_formatted": "", "currency": "Brunei Dollar", "currency_symbol": "ден"}, "annual_fee": {"amount": 989424, "amount_formatted": "", "currency": "Kwacha", "currency_symbol": "L"}, "description": "scrap numb sentimental advertisement pfft cardboard above satirise", "product_id": "", "is_default": false, "is_recurring": true, "publicly_visible": true, "has_base_fee": true, "for_payer_type": "", "slug": "", "avatar_url": "https://nervous-jump.net", "features": [{"object": "feature", "id": "", "name": "", "description": "intrepid nautical gee judgementally neaten chasuble dimly", "slug": "", "avatar_url": "https://anguished-cheetah.net"}], "free_trial_enabled": false, "free_trial_days": 760063}, "plan_period": "month", "payer_id": "", "is_free_trial": true, "period_start": 692858, "period_end": 754794, "proration_date": "", "canceled_at": 115692, "past_due_at": 989424, "ended_at": 348814, "created_at": 52347, "updated_at": 42603}], "total_count": 88070} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} "500": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} GetUserBillingSubscription: speakeasy-default-get-user-billing-subscription: parameters: @@ -3284,11 +3337,11 @@ examples: user_id: "" responses: "200": - application/json: {"object": "commerce_subscription", "id": "", "instance_id": "", "status": "past_due", "payer_id": "", "created_at": 81691, "updated_at": 772691, "subscription_items": [{"object": "commerce_subscription_item", "id": "", "instance_id": "", "status": "past_due", "plan_id": "", "plan": {"object": "commerce_plan", "id": "", "name": "", "fee": {"amount": 297026, "amount_formatted": "", "currency": "Colombian Peso", "currency_symbol": "$"}, "annual_monthly_fee": {"amount": 833905, "amount_formatted": "", "currency": "Brazilian Real", "currency_symbol": "Q"}, "annual_fee": {"amount": 633199, "amount_formatted": "", "currency": "Mauritius Rupee", "currency_symbol": "$"}, "amount": 974826, "amount_formatted": "", "annual_monthly_amount": 913091, "annual_monthly_amount_formatted": "", "annual_amount": 287873, "annual_amount_formatted": "", "currency_symbol": "Kč", "currency": "Rupiah", "description": "drab joshingly definitive", "product_id": "", "is_default": false, "is_recurring": false, "publicly_visible": true, "has_base_fee": true, "payer_type": ["", "", ""], "for_payer_type": "", "slug": "", "avatar_url": "https://perfumed-starboard.info", "features": []}, "plan_period": "month", "payment_source_id": "", "payer_id": "", "is_free_trial": true, "proration_date": "", "created_at": 750417, "updated_at": 469594}]} + application/json: {"object": "commerce_subscription", "id": "", "instance_id": "", "status": "past_due", "payer_id": "", "created_at": 81691, "updated_at": 772691, "active_at": 81691, "past_due_at": 543079, "subscription_items": [{"object": "commerce_subscription_item", "id": "", "instance_id": "", "status": "past_due", "plan_id": "", "plan": {"object": "commerce_plan", "id": "", "name": "", "fee": {"amount": 297026, "amount_formatted": "", "currency": "Colombian Peso", "currency_symbol": "$"}, "annual_monthly_fee": {"amount": 833905, "amount_formatted": "", "currency": "Brazilian Real", "currency_symbol": "Q"}, "annual_fee": {"amount": 633199, "amount_formatted": "", "currency": "Mauritius Rupee", "currency_symbol": "$"}, "description": "drab joshingly definitive", "product_id": "", "is_default": false, "is_recurring": false, "publicly_visible": true, "has_base_fee": true, "for_payer_type": "", "slug": "", "avatar_url": "https://perfumed-starboard.info", "features": [], "free_trial_enabled": true, "free_trial_days": 297026}, "plan_period": "month", "payer_id": "", "is_free_trial": true, "period_start": 192771, "period_end": 833905, "proration_date": "", "canceled_at": 873617, "past_due_at": 633199, "ended_at": 108991, "created_at": 750417, "updated_at": 469594}]} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} "500": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} GetOrganizationBillingSubscription: speakeasy-default-get-organization-billing-subscription: parameters: @@ -3296,11 +3349,11 @@ examples: organization_id: "" responses: "200": - application/json: {"object": "commerce_subscription", "id": "", "instance_id": "", "status": "abandoned", "payer_id": "", "created_at": 867059, "updated_at": 35040, "subscription_items": []} + application/json: {"object": "commerce_subscription", "id": "", "instance_id": "", "status": "abandoned", "payer_id": "", "created_at": 867059, "updated_at": 35040, "active_at": 867059, "past_due_at": null, "subscription_items": []} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} "500": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} InviteWaitlistEntry: speakeasy-default-invite-waitlist-entry: parameters: @@ -3310,7 +3363,7 @@ examples: "200": application/json: {"object": "waitlist_entry", "id": "", "email_address": "Turner.Lemke@yahoo.com", "status": "pending", "created_at": 615321, "updated_at": 856528, "invitation": {"object": "invitation", "id": "inv_f02930r3", "email_address": "invitee@example.com", "public_metadata": {}, "revoked": false, "status": "pending", "url": "https://example.com/invitations/accept?code=abcd1234", "created_at": 1622549600, "updated_at": 1622553200}} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} RejectWaitlistEntry: speakeasy-default-reject-waitlist-entry: parameters: @@ -3320,7 +3373,7 @@ examples: "200": application/json: {"object": "waitlist_entry", "id": "", "email_address": "Keon9@gmail.com", "status": "pending", "created_at": 57955, "updated_at": 410926, "invitation": {"object": "invitation", "id": "inv_f02930r3", "email_address": "invitee@example.com", "public_metadata": {}, "revoked": false, "status": "pending", "url": "https://example.com/invitations/accept?code=abcd1234", "created_at": 1622549600, "updated_at": 1622553200}} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} CancelCommerceSubscriptionItem: speakeasy-default-cancel-commerce-subscription-item: parameters: @@ -3330,11 +3383,11 @@ examples: end_now: false responses: "200": - application/json: {"object": "commerce_subscription_item", "id": "", "instance_id": "", "status": "abandoned", "plan_id": "", "plan": {"object": "commerce_plan", "id": "", "name": "", "fee": {"amount": 106392, "amount_formatted": "", "currency": "Mexican Peso", "currency_symbol": "B/."}, "annual_monthly_fee": {"amount": 662779, "amount_formatted": "", "currency": "Cordoba Oro", "currency_symbol": "₩"}, "annual_fee": {"amount": 16342, "amount_formatted": "", "currency": "Liberian Dollar", "currency_symbol": "L"}, "amount": 592877, "amount_formatted": "", "annual_monthly_amount": 848023, "annual_monthly_amount_formatted": "", "annual_amount": 638223, "annual_amount_formatted": "", "currency_symbol": "¥", "currency": "CFP Franc", "description": "fooey busily possible shudder uncomfortable woot across embalm", "product_id": "", "is_default": true, "is_recurring": true, "publicly_visible": true, "has_base_fee": true, "payer_type": ["", "", ""], "for_payer_type": "", "slug": "", "avatar_url": "https://classic-clamp.net/", "features": [{"object": "feature", "id": "", "name": "", "description": "drat fatherly geez key", "slug": "", "avatar_url": "https://average-avalanche.name"}]}, "plan_period": "annual", "payment_source_id": "", "payer_id": "", "is_free_trial": true, "proration_date": "", "created_at": 44909, "updated_at": 899731} + application/json: {"object": "commerce_subscription_item", "id": "", "instance_id": "", "status": "abandoned", "plan_id": "", "plan_period": "annual", "payer_id": "", "is_free_trial": true, "period_start": 963236, "period_end": 106392, "canceled_at": 649477, "past_due_at": 621775, "ended_at": 16342} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} "500": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} RotateMachineSecretKey: speakeasy-default-rotate-machine-secret-key: parameters: @@ -3346,7 +3399,7 @@ examples: "200": application/json: {"object": "machine_secret_key", "secret": ""} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} DeleteWaitlistEntry: speakeasy-default-delete-waitlist-entry: parameters: @@ -3356,7 +3409,7 @@ examples: "200": application/json: {"object": "deleted_object", "id": "deleted_object_id_example", "slug": "deleted-object-slug", "deleted": true} "400": - application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} ExtendCommerceSubscriptionItemFreeTrial: speakeasy-default-extend-commerce-subscription-item-free-trial: parameters: @@ -3371,11 +3424,60 @@ examples: application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} "500": application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request", "clerk_trace_id": "trace_123456789abcd"}], "meta": {}} + ExtendBillingSubscriptionItemFreeTrial: + speakeasy-default-extend-billing-subscription-item-free-trial: + parameters: + path: + subscription_item_id: "" + requestBody: + application/json: {"extend_to": "2026-01-08T00:00:00Z"} + responses: + "200": + application/json: {"object": "commerce_subscription_item", "id": "", "instance_id": "", "status": "abandoned", "plan_id": "", "plan": {"object": "commerce_plan", "id": "", "name": "", "fee": {"amount": 527176, "amount_formatted": "", "currency": "Dominican Peso", "currency_symbol": "$"}, "annual_monthly_fee": {"amount": 669777, "amount_formatted": "", "currency": "Hong Kong Dollar", "currency_symbol": "﷼"}, "annual_fee": {"amount": 233805, "amount_formatted": "", "currency": "Zloty", "currency_symbol": "CHF"}, "amount": 531322, "amount_formatted": "", "annual_monthly_amount": 60602, "annual_monthly_amount_formatted": "", "annual_amount": 280866, "annual_amount_formatted": "", "currency_symbol": "₩", "currency": "Tala", "description": "nearly advertisement very sediment quaver whoever outrun", "product_id": "", "is_default": false, "is_recurring": true, "publicly_visible": false, "has_base_fee": true, "payer_type": [""], "for_payer_type": "", "slug": "", "avatar_url": "https://colorful-saloon.com/", "features": []}, "plan_period": "annual", "payment_source_id": "", "payer_id": "", "is_free_trial": true, "proration_date": "", "created_at": 493551, "updated_at": 415928} + "400": + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} + "500": + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} + GetBillingStatementList: + speakeasy-default-get-billing-statement-list: + parameters: + query: + limit: 20 + offset: 10 + responses: + "200": + application/json: {"data": [{"object": "commerce_statement", "id": "", "instance_id": "", "timestamp": 50264, "payer": {"object": "commerce_payer", "id": "", "instance_id": ""}, "status": "open", "totals": {"grand_total": {"amount": 760764, "amount_formatted": "", "currency": "Canadian Dollar", "currency_symbol": "$"}, "subtotal": {"amount": 314695, "amount_formatted": "", "currency": "Rand", "currency_symbol": "R"}, "tax_total": {"amount": 543358, "amount_formatted": "", "currency": "Uzbekistan Sum", "currency_symbol": "Rbl"}}, "groups": [{"object": "commerce_statement_group", "timestamp": 771365, "items": [{"object": "commerce_payment", "id": "", "payment_id": "", "instance_id": "", "charge_type": "", "payee_id": "", "payee": {}, "payer_id": "", "payer": {"object": "commerce_payer", "id": "", "instance_id": ""}, "amount": {"amount": 447279, "amount_formatted": "", "currency": "Guinea Franc", "currency_symbol": "K"}, "payment_method_id": "", "payment_method": {"object": "commerce_payment_method", "id": "", "payer_id": "", "payment_type": "card", "gateway": "", "gateway_external_id": "", "gateway_external_account_id": "", "last4": "", "status": "disconnected", "card_type": ""}, "statement_id": "", "gateway_external_id": "", "gateway_external_url": "https://advanced-best-seller.com", "status": "paid", "paid_at": 493400, "failed_at": 229350, "created_at": 898664, "updated_at": 18593}]}]}], "total_count": 915932} + "400": + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} + "500": + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} + GetBillingStatement: + speakeasy-default-get-billing-statement: + parameters: + path: + statementID: "" + responses: + "200": + application/json: {"object": "commerce_statement", "id": "", "instance_id": "", "timestamp": 21343, "payer": {"object": "commerce_payer", "id": "", "instance_id": ""}, "status": "closed", "totals": {"grand_total": {"amount": 604790, "amount_formatted": "", "currency": "Manat", "currency_symbol": "$"}, "subtotal": {"amount": 338222, "amount_formatted": "", "currency": "Burundi Franc", "currency_symbol": "ман"}, "tax_total": {"amount": 401749, "amount_formatted": "", "currency": "Belarusian Ruble", "currency_symbol": "₴"}}, "groups": [{"object": "commerce_statement_group", "timestamp": 403547, "items": []}]} + "400": + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} + "500": + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} + GetBillingStatementPaymentAttempts: + speakeasy-default-get-billing-statement-payment-attempts: + parameters: + path: + statementID: "" + query: + limit: 20 + offset: 10 + responses: + "200": + application/json: {"data": [], "total_count": 454767} + "400": + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} + "500": + application/json: {"errors": [{"message": "Invalid input", "long_message": "The input provided does not meet the requirements.", "code": "400_bad_request"}], "meta": {}} examplesVersion: 1.0.2 generatedTests: {} -releaseNotes: | - ## Csharp SDK Changes Detected: - * `ClerkBackendApi.Machines.RotateSecretKey()`: **Added** - * `ClerkBackendApi.WaitlistEntries.Delete()`: **Added** - * `ClerkBackendApi.Commerce.ExtendSubscriptionItemFreeTrial()`: **Added** - * `ClerkBackendApi.Commerce.ListSubscriptionItems()`: `request` **Changed** +releaseNotes: "## Csharp SDK Changes Detected:\n* `ClerkBackendApi.ActorTokens.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.PhoneNumbers.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Clients.List()`: \n * `response.[].LastAuthenticationStrategy` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.EmailAddresses.Create()`: \n * `response.verification` **Changed** **Breaking** :warning:\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.EmailAddresses.Get()`: \n * `response.verification` **Changed** **Breaking** :warning:\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Commerce.CancelSubscriptionItem()`: \n * `response` **Changed** **Breaking** :warning:\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Commerce.ListSubscriptionItems()`: \n * `request` **Changed** **Breaking** :warning:\n * `response.data.[]` **Changed** **Breaking** :warning:\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Commerce.ListPlans()`: \n * `response.data.[]` **Changed** **Breaking** :warning:\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.WaitlistEntries.Reject()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.EmailAddresses.Delete()`: \n * `response.externalId` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.EmailAddresses.Update()`: \n * `response.verification` **Changed** **Breaking** :warning:\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.ActorTokens.Revoke()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.PhoneNumbers.Get()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.PhoneNumbers.Delete()`: \n * `response.externalId` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.PhoneNumbers.Update()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Sessions.List()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Sessions.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Sessions.Get()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Sessions.Refresh()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Sessions.Revoke()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Sessions.CreateToken()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Sessions.CreateTokenFromTemplate()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.EmailSmsTemplates.List()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.EmailSmsTemplates.Get()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.EmailSmsTemplates.Revert()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.EmailSmsTemplates.ToggleTemplateDelivery()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.EmailAndSmsTemplates.Upsert()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Templates.Preview()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.List()`: \n * `response.[]` **Changed** **Breaking** :warning:\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.Create()`: \n * `request.Locale` **Added**\n * `response` **Changed** **Breaking** :warning:\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.Count()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.Get()`: \n * `response` **Changed** **Breaking** :warning:\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.Update()`: \n * `requestBody.Locale` **Added**\n * `response` **Changed** **Breaking** :warning:\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.Delete()`: \n * `response.externalId` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.Ban()`: \n * `response` **Changed** **Breaking** :warning:\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.Unban()`: \n * `response` **Changed** **Breaking** :warning:\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.BulkBan()`: \n * `response.[]` **Changed** **Breaking** :warning:\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.BulkUnban()`: \n * `response.[]` **Changed** **Breaking** :warning:\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.Lock()`: \n * `response` **Changed** **Breaking** :warning:\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.Unlock()`: \n * `response` **Changed** **Breaking** :warning:\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.SetProfileImage()`: \n * `response` **Changed** **Breaking** :warning:\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.DeleteProfileImage()`: \n * `response` **Changed** **Breaking** :warning:\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.UpdateMetadata()`: \n * `response` **Changed** **Breaking** :warning:\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.GetBillingSubscription()`: \n * `response` **Changed** **Breaking** :warning:\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.GetOAuthAccessToken()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.GetOrganizationMemberships()`: \n * `response.data.[].PublicUserData.Username` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.GetOrganizationInvitations()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.VerifyPassword()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.VerifyTotp()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.DisableMfa()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.DeleteBackupCodes()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.DeletePasskey()`: \n * `response.externalId` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.DeleteWeb3Wallet()`: \n * `response.externalId` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.DeleteTotp()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.DeleteExternalAccount()`: \n * `response.externalId` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Users.GetInstanceOrganizationMemberships()`: \n * `response.data.[].PublicUserData.Username` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Invitations.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Invitations.BulkCreate()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Invitations.Revoke()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.OrganizationInvitations.GetAll()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.OrganizationInvitations.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.OrganizationInvitations.List()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Domains.Add()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.OrganizationInvitations.ListPending()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.OrganizationInvitations.Get()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.OrganizationInvitations.Revoke()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.AllowlistIdentifiers.List()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.AllowlistIdentifiers.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.AllowlistIdentifiers.Delete()`: \n * `response.externalId` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.BlocklistIdentifiers.List()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.BlocklistIdentifiers.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.BlocklistIdentifiers.Delete()`: \n * `response.externalId` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.BetaFeatures.UpdateInstanceSettings()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.BetaFeatures.UpdateProductionInstanceDomain()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Clients.Get()`: \n * `response.lastAuthenticationStrategy` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Clients.Verify()`: \n * `response.lastAuthenticationStrategy` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.OrganizationInvitations.BulkCreate()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Domains.Delete()`: \n * `response.externalId` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Domains.Update()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.InstanceSettings.Update()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.InstanceSettings.UpdateRestrictions()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.InstanceSettings.ChangeDomain()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.InstanceSettings.UpdateOrganizationSettings()`: \n * `request.SlugDisabled` **Added**\n * `response` **Changed**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Webhooks.CreateSvixApp()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Webhooks.DeleteSvixApp()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Webhooks.GenerateSvixAuthUrl()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.JwtTemplates.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.JwtTemplates.Get()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.JwtTemplates.Update()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.JwtTemplates.Delete()`: \n * `response.externalId` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Machines.List()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Machines.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Machines.Get()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Machines.Update()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Machines.Delete()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Machines.GetSecretKey()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Machines.RotateSecretKey()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Machines.CreateScope()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Machines.DeleteScope()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Organizations.List()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Organizations.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Organizations.Get()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Organizations.Update()`: `error` **Changed** **Breaking** :warning:\n* `ClerkBackendApi.Organizations.Delete()`: \n * `response.externalId` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Organizations.MergeMetadata()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Organizations.UploadLogo()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Organizations.DeleteLogo()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Organizations.GetBillingSubscription()`: \n * `response` **Changed** **Breaking** :warning:\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.OrganizationMemberships.Create()`: \n * `response.publicUserData.Username` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.OrganizationMemberships.List()`: \n * `response.data.[].PublicUserData.Username` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.OrganizationMemberships.Update()`: \n * `response.publicUserData.Username` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.OrganizationMemberships.Delete()`: \n * `response.publicUserData.Username` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.OrganizationMemberships.UpdateMetadata()`: \n * `response.publicUserData.Username` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.OrganizationDomains.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.OrganizationDomains.List()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.OrganizationDomains.Update()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.OrganizationDomains.Delete()`: \n * `response.externalId` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.OrganizationDomains.ListAll()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.ProxyChecks.Verify()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.RedirectUrls.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.RedirectUrls.Get()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.RedirectUrls.Delete()`: \n * `response.externalId` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.SignInTokens.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.SignInTokens.Revoke()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.SignUps.Get()`: \n * `response.locale` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.SignUps.Update()`: \n * `response.locale` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.OauthApplications.List()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.OauthApplications.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.OauthApplications.Get()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.OauthApplications.Update()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.OauthApplications.Delete()`: \n * `response.externalId` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.OauthApplications.RotateSecret()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.SamlConnections.List()`: \n * `response.data.[]` **Changed**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.SamlConnections.Create()`: \n * `request` **Changed**\n * `response` **Changed**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.SamlConnections.Get()`: \n * `response` **Changed**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.SamlConnections.Update()`: \n * `requestBody.ForceAuthn` **Added**\n * `response` **Changed**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.SamlConnections.Delete()`: \n * `response.externalId` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.WaitlistEntries.Create()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.WaitlistEntries.Delete()`: \n * `response.externalId` **Added**\n * `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.WaitlistEntries.Invite()`: `errors.[].ClerkTraceId` **Removed** **Breaking** :warning:\n* `ClerkBackendApi.Billing.GetStatementPaymentAttempts()`: **Added**\n* `ClerkBackendApi.Billing.GetStatement()`: **Added**\n* `ClerkBackendApi.Billing.ListStatements()`: **Added**\n* `ClerkBackendApi.Billing.ExtendSubscriptionItemFreeTrial()`: **Added**\n* `ClerkBackendApi.AwsCredentials.Delete()`: **Deleted** **Breaking** :warning:\n* `ClerkBackendApi.AwsCredentials.Update()`: **Deleted** **Breaking** :warning:\n* `ClerkBackendApi.ExperimentalAccountlessApplications.Create()`: **Deleted** **Breaking** :warning:\n* `ClerkBackendApi.ExperimentalAccountlessApplications.Complete()`: **Deleted** **Breaking** :warning:\n* `ClerkBackendApi.Commerce.ExtendSubscriptionItemFreeTrial()`: **Deleted** **Breaking** :warning:\n" diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 5fc35d59..936b4f13 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -17,12 +17,15 @@ generation: oAuth2ClientCredentialsEnabled: true oAuth2PasswordEnabled: true hoistGlobalSecurity: true + schemas: + allOfMergeStrategy: shallowMerge + requestBodyFieldName: "" tests: generateTests: true generateNewTests: false skipResponseBodyAssertions: false csharp: - version: 0.13.0 + version: 0.14.0 additionalDependencies: - package: Microsoft.AspNetCore version: 2.3.0 @@ -34,6 +37,7 @@ csharp: defaultErrorName: SDKError disableNamespacePascalCasingApr2024: true dotnetVersion: net8.0 + enableCancellationToken: false enableSourceLink: true flattenGlobalSecurity: true flatteningOrder: parameters-first diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index d1711df6..47311ab9 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,28 +1,28 @@ -speakeasyVersion: 1.628.7 +speakeasyVersion: 1.653.0 sources: clerk-backend-api-OAS: sourceNamespace: clerk-openapi - sourceRevisionDigest: sha256:28dad6f5eba89eda61b12068caead24aee0c775a3ed54d828c788adcf848fea9 - sourceBlobDigest: sha256:906fd13c3a276c610cf5fc9f778e7ed83448cd9366179dc32a86de1320bd07fe + sourceRevisionDigest: sha256:c2c6ab8c4ff4517e23971b57ad56df2b8d811171bef623e0714e8071843bc04b + sourceBlobDigest: sha256:5e8bc9d932d2c4226fc20d5ed7ff34316327db4a92b4fae650ecffd120f194bc tags: - latest - - speakeasy-sdk-regen-1756771581 - - "2025-04-10" + - speakeasy-sdk-regen-1761696400 + - "2025-11-10" targets: clerk-backend-api: source: clerk-backend-api-OAS sourceNamespace: clerk-openapi - sourceRevisionDigest: sha256:28dad6f5eba89eda61b12068caead24aee0c775a3ed54d828c788adcf848fea9 - sourceBlobDigest: sha256:906fd13c3a276c610cf5fc9f778e7ed83448cd9366179dc32a86de1320bd07fe + sourceRevisionDigest: sha256:c2c6ab8c4ff4517e23971b57ad56df2b8d811171bef623e0714e8071843bc04b + sourceBlobDigest: sha256:5e8bc9d932d2c4226fc20d5ed7ff34316327db4a92b4fae650ecffd120f194bc codeSamplesNamespace: clerk-backend-api-oas-csharp-code-samples - codeSamplesRevisionDigest: sha256:dd3184e33fabb79c32ba77ecad9f9a7e7ba1a6549386c1c9266854a91c1beda7 + codeSamplesRevisionDigest: sha256:0e48b293cface580098eb1be753a1a8a4e24a506dfa05967395302cfe9f906f9 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest sources: clerk-backend-api-OAS: inputs: - - location: https://raw.githubusercontent.com/clerk/openapi-specs/refs/heads/main/bapi/2025-04-10.yml + - location: https://raw.githubusercontent.com/clerk/openapi-specs/refs/heads/main/bapi/2025-11-10.yml overlays: - location: ./examples.yaml - location: https://raw.githubusercontent.com/clerk/openapi-specs/refs/heads/main/.speakeasy/bapi/fixes.yml diff --git a/NUGET.md b/NUGET.md index fb10f1f9..80364cc2 100644 --- a/NUGET.md +++ b/NUGET.md @@ -128,13 +128,18 @@ Some exceptions in this SDK include an additional `Payload` field, which will co using Clerk.BackendAPI; using Clerk.BackendAPI.Models.Components; using Clerk.BackendAPI.Models.Errors; +using Clerk.BackendAPI.Models.Operations; using System.Collections.Generic; var sdk = new ClerkBackendApi(bearerAuth: ""); try { - var res = await sdk.AwsCredentials.DeleteAsync(id: ""); + VerifyClientRequestBody req = new VerifyClientRequestBody() { + Token = "jwt_token_example", + }; + + var res = await sdk.Clients.VerifyAsync(req); // handle response } @@ -180,17 +185,17 @@ catch (System.Net.Http.HttpRequestException ex) * [`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`. * Inheriting from [`SDKBaseError`](./src/Clerk/BackendAPI/Models/Errors/SDKBaseError.cs): - * [`CreateM2MTokenResponseBody`](./src/Clerk/BackendAPI/Models/Errors/CreateM2MTokenResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 159 methods.* - * [`GetM2MTokensResponseBody`](./src/Clerk/BackendAPI/Models/Errors/GetM2MTokensResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 159 methods.* - * [`RevokeM2MTokenResponseBody`](./src/Clerk/BackendAPI/Models/Errors/RevokeM2MTokenResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 159 methods.* - * [`VerifyM2MTokenResponseBody`](./src/Clerk/BackendAPI/Models/Errors/VerifyM2MTokenResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 159 methods.* - * [`VerifyOAuthAccessTokenResponseBody`](./src/Clerk/BackendAPI/Models/Errors/VerifyOAuthAccessTokenResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 159 methods.* - * [`GetM2MTokensM2mResponseBody`](./src/Clerk/BackendAPI/Models/Errors/GetM2MTokensM2mResponseBody.cs): 403 Forbidden. Status code `403`. Applicable to 1 of 159 methods.* - * [`GetM2MTokensM2mResponseResponseBody`](./src/Clerk/BackendAPI/Models/Errors/GetM2MTokensM2mResponseResponseBody.cs): 404 Not Found. Status code `404`. Applicable to 1 of 159 methods.* - * [`RevokeM2MTokenM2mResponseBody`](./src/Clerk/BackendAPI/Models/Errors/RevokeM2MTokenM2mResponseBody.cs): 404 Not Found. Status code `404`. Applicable to 1 of 159 methods.* - * [`VerifyM2MTokenM2mResponseBody`](./src/Clerk/BackendAPI/Models/Errors/VerifyM2MTokenM2mResponseBody.cs): 404 Not Found. Status code `404`. Applicable to 1 of 159 methods.* - * [`VerifyOAuthAccessTokenOauthAccessTokensResponseBody`](./src/Clerk/BackendAPI/Models/Errors/VerifyOAuthAccessTokenOauthAccessTokensResponseBody.cs): 404 Not Found. Status code `404`. Applicable to 1 of 159 methods.* - * [`CreateM2MTokenM2mResponseBody`](./src/Clerk/BackendAPI/Models/Errors/CreateM2MTokenM2mResponseBody.cs): 409 Conflict. Status code `409`. Applicable to 1 of 159 methods.* + * [`CreateM2MTokenResponseBody`](./src/Clerk/BackendAPI/Models/Errors/CreateM2MTokenResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 158 methods.* + * [`GetM2MTokensResponseBody`](./src/Clerk/BackendAPI/Models/Errors/GetM2MTokensResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 158 methods.* + * [`RevokeM2MTokenResponseBody`](./src/Clerk/BackendAPI/Models/Errors/RevokeM2MTokenResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 158 methods.* + * [`VerifyM2MTokenResponseBody`](./src/Clerk/BackendAPI/Models/Errors/VerifyM2MTokenResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 158 methods.* + * [`VerifyOAuthAccessTokenResponseBody`](./src/Clerk/BackendAPI/Models/Errors/VerifyOAuthAccessTokenResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 158 methods.* + * [`GetM2MTokensM2mResponseBody`](./src/Clerk/BackendAPI/Models/Errors/GetM2MTokensM2mResponseBody.cs): 403 Forbidden. Status code `403`. Applicable to 1 of 158 methods.* + * [`GetM2MTokensM2mResponseResponseBody`](./src/Clerk/BackendAPI/Models/Errors/GetM2MTokensM2mResponseResponseBody.cs): 404 Not Found. Status code `404`. Applicable to 1 of 158 methods.* + * [`RevokeM2MTokenM2mResponseBody`](./src/Clerk/BackendAPI/Models/Errors/RevokeM2MTokenM2mResponseBody.cs): 404 Not Found. Status code `404`. Applicable to 1 of 158 methods.* + * [`VerifyM2MTokenM2mResponseBody`](./src/Clerk/BackendAPI/Models/Errors/VerifyM2MTokenM2mResponseBody.cs): 404 Not Found. Status code `404`. Applicable to 1 of 158 methods.* + * [`VerifyOAuthAccessTokenOauthAccessTokensResponseBody`](./src/Clerk/BackendAPI/Models/Errors/VerifyOAuthAccessTokenOauthAccessTokensResponseBody.cs): 404 Not Found. Status code `404`. Applicable to 1 of 158 methods.* + * [`CreateM2MTokenM2mResponseBody`](./src/Clerk/BackendAPI/Models/Errors/CreateM2MTokenM2mResponseBody.cs): 409 Conflict. Status code `409`. Applicable to 1 of 158 methods.* * [`ResponseValidationError`](./src/Clerk/BackendAPI/Models/Errors/ResponseValidationError.cs): Thrown when the response data could not be deserialized into the expected type. @@ -220,4 +225,150 @@ var res = await sdk.Miscellaneous.GetPublicInterstitialAsync(req); ``` + +## Custom HTTP Client + +The C# SDK makes API calls using an `ISpeakeasyHttpClient` that wraps the native +[HttpClient](https://docs.microsoft.com/en-us/dotnet/api/system.net.http.httpclient). This +client provides the ability to attach hooks around the request lifecycle that can be used to modify the request or handle +errors and response. + +The `ISpeakeasyHttpClient` interface allows you to either use the default `SpeakeasyHttpClient` that comes with the SDK, +or provide your own custom implementation with customized configuration such as custom message handlers, timeouts, +connection pooling, and other HTTP client settings. + +The following example shows how to create a custom HTTP client with request modification and error handling: + +```csharp +using Clerk.BackendAPI; +using Clerk.BackendAPI.Utils; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; + +// Create a custom HTTP client +public class CustomHttpClient : ISpeakeasyHttpClient +{ + private readonly ISpeakeasyHttpClient _defaultClient; + + public CustomHttpClient() + { + _defaultClient = new SpeakeasyHttpClient(); + } + + public async Task SendAsync(HttpRequestMessage request, CancellationToken? cancellationToken = null) + { + // Add custom header and timeout + request.Headers.Add("x-custom-header", "custom value"); + request.Headers.Add("x-request-timeout", "30"); + + try + { + var response = await _defaultClient.SendAsync(request, cancellationToken); + // Log successful response + Console.WriteLine($"Request successful: {response.StatusCode}"); + return response; + } + catch (Exception error) + { + // Log error + Console.WriteLine($"Request failed: {error.Message}"); + throw; + } + } + + public void Dispose() + { + _httpClient?.Dispose(); + _defaultClient?.Dispose(); + } +} + +// Use the custom HTTP client with the SDK +var customHttpClient = new CustomHttpClient(); +var sdk = new ClerkBackendApi(client: customHttpClient); +``` + +
+You can also provide a completely custom HTTP client with your own configuration: + +```csharp +using Clerk.BackendAPI.Utils; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; + +// Custom HTTP client with custom configuration +public class AdvancedHttpClient : ISpeakeasyHttpClient +{ + private readonly HttpClient _httpClient; + + public AdvancedHttpClient() + { + var handler = new HttpClientHandler() + { + MaxConnectionsPerServer = 10, + // ServerCertificateCustomValidationCallback = customCertValidation, // Custom SSL validation if needed + }; + + _httpClient = new HttpClient(handler) + { + Timeout = TimeSpan.FromSeconds(30) + }; + } + + public async Task SendAsync(HttpRequestMessage request, CancellationToken? cancellationToken = null) + { + return await _httpClient.SendAsync(request, cancellationToken ?? CancellationToken.None); + } + + public void Dispose() + { + _httpClient?.Dispose(); + } +} + +var sdk = ClerkBackendApi.Builder() + .WithClient(new AdvancedHttpClient()) + .Build(); +``` +
+ +
+For simple debugging, you can enable request/response logging by implementing a custom client: + +```csharp +public class LoggingHttpClient : ISpeakeasyHttpClient +{ + private readonly ISpeakeasyHttpClient _innerClient; + + public LoggingHttpClient(ISpeakeasyHttpClient innerClient = null) + { + _innerClient = innerClient ?? new SpeakeasyHttpClient(); + } + + public async Task SendAsync(HttpRequestMessage request, CancellationToken? cancellationToken = null) + { + // Log request + Console.WriteLine($"Sending {request.Method} request to {request.RequestUri}"); + + var response = await _innerClient.SendAsync(request, cancellationToken); + + // Log response + Console.WriteLine($"Received {response.StatusCode} response"); + + return response; + } + + public void Dispose() => _innerClient?.Dispose(); +} + +var sdk = new ClerkBackendApi(client: new LoggingHttpClient()); +``` +
+ +The SDK also provides built-in hook support through the `SDKConfiguration.Hooks` system, which automatically handles +`BeforeRequestAsync`, `AfterSuccessAsync`, and `AfterErrorAsync` hooks for advanced request lifecycle management. + + \ No newline at end of file diff --git a/README.md b/README.md index 6c284f8e..a177a621 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,7 @@ More information about the API can be found at https://clerk.com/docs * [Retries](#retries) * [Error Handling](#error-handling) * [Server Selection](#server-selection) + * [Custom HTTP Client](#custom-http-client) * [Development](#development) * [Maturity](#maturity) * [Contributions](#contributions) @@ -176,23 +177,24 @@ public class MachineAuthentication * [Create](docs/sdks/allowlistidentifiers/README.md#create) - Add identifier to the allow-list * [Delete](docs/sdks/allowlistidentifiers/README.md#delete) - Delete identifier from allow-list -### [AwsCredentials](docs/sdks/awscredentials/README.md) - -* [Delete](docs/sdks/awscredentials/README.md#delete) - Delete an AWS Credential -* [Update](docs/sdks/awscredentials/README.md#update) - Update an AWS Credential - ### [BetaFeatures](docs/sdks/betafeatures/README.md) * [UpdateInstanceSettings](docs/sdks/betafeatures/README.md#updateinstancesettings) - Update instance settings * [~~UpdateProductionInstanceDomain~~](docs/sdks/betafeatures/README.md#updateproductioninstancedomain) - Update production instance domain :warning: **Deprecated** +### [Billing](docs/sdks/billing/README.md) + +* [ExtendSubscriptionItemFreeTrial](docs/sdks/billing/README.md#extendsubscriptionitemfreetrial) - Extend free trial for a subscription item +* [ListStatements](docs/sdks/billing/README.md#liststatements) - List all billing statements +* [GetStatement](docs/sdks/billing/README.md#getstatement) - Retrieve a billing statement +* [GetStatementPaymentAttempts](docs/sdks/billing/README.md#getstatementpaymentattempts) - List payment attempts for a billing statement + ### [BlocklistIdentifiers](docs/sdks/blocklistidentifiers/README.md) * [List](docs/sdks/blocklistidentifiers/README.md#list) - List all identifiers on the block-list * [Create](docs/sdks/blocklistidentifiers/README.md#create) - Add identifier to the block-list * [Delete](docs/sdks/blocklistidentifiers/README.md#delete) - Delete identifier from block-list - ### [Clients](docs/sdks/clients/README.md) * [~~List~~](docs/sdks/clients/README.md#list) - List all clients :warning: **Deprecated** @@ -204,7 +206,6 @@ public class MachineAuthentication * [ListPlans](docs/sdks/commerce/README.md#listplans) - List all commerce plans * [ListSubscriptionItems](docs/sdks/commerce/README.md#listsubscriptionitems) - List all subscription items * [CancelSubscriptionItem](docs/sdks/commerce/README.md#cancelsubscriptionitem) - Cancel a subscription item -* [ExtendSubscriptionItemFreeTrial](docs/sdks/commerce/README.md#extendsubscriptionitemfreetrial) - Extend free trial for a subscription item ### [Domains](docs/sdks/domains/README.md) @@ -231,11 +232,6 @@ public class MachineAuthentication * [~~Revert~~](docs/sdks/emailsmstemplates/README.md#revert) - Revert a template :warning: **Deprecated** * [~~ToggleTemplateDelivery~~](docs/sdks/emailsmstemplates/README.md#toggletemplatedelivery) - Toggle the delivery by Clerk for a template of a given type and slug :warning: **Deprecated** -### [ExperimentalAccountlessApplications](docs/sdks/experimentalaccountlessapplications/README.md) - -* [Create](docs/sdks/experimentalaccountlessapplications/README.md#create) - Create an accountless application [EXPERIMENTAL] -* [Complete](docs/sdks/experimentalaccountlessapplications/README.md#complete) - Complete an accountless application [EXPERIMENTAL] - ### [InstanceSettings](docs/sdks/instancesettings/README.md) * [Get](docs/sdks/instancesettings/README.md#get) - Fetch the current instance @@ -371,7 +367,7 @@ public class MachineAuthentication * [Refresh](docs/sdks/sessions/README.md#refresh) - Refresh a session * [Revoke](docs/sdks/sessions/README.md#revoke) - Revoke a session * [CreateToken](docs/sdks/sessions/README.md#createtoken) - Create a session token -* [CreateTokenFromTemplate](docs/sdks/sessions/README.md#createtokenfromtemplate) - Create a session token from a jwt template +* [CreateTokenFromTemplate](docs/sdks/sessions/README.md#createtokenfromtemplate) - Create a session token from a JWT template ### [SignInTokens](docs/sdks/signintokens/README.md) @@ -519,13 +515,18 @@ Some exceptions in this SDK include an additional `Payload` field, which will co using Clerk.BackendAPI; using Clerk.BackendAPI.Models.Components; using Clerk.BackendAPI.Models.Errors; +using Clerk.BackendAPI.Models.Operations; using System.Collections.Generic; var sdk = new ClerkBackendApi(bearerAuth: ""); try { - var res = await sdk.AwsCredentials.DeleteAsync(id: ""); + VerifyClientRequestBody req = new VerifyClientRequestBody() { + Token = "jwt_token_example", + }; + + var res = await sdk.Clients.VerifyAsync(req); // handle response } @@ -571,17 +572,17 @@ catch (System.Net.Http.HttpRequestException ex) * [`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`. * Inheriting from [`SDKBaseError`](./src/Clerk/BackendAPI/Models/Errors/SDKBaseError.cs): - * [`CreateM2MTokenResponseBody`](./src/Clerk/BackendAPI/Models/Errors/CreateM2MTokenResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 159 methods.* - * [`GetM2MTokensResponseBody`](./src/Clerk/BackendAPI/Models/Errors/GetM2MTokensResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 159 methods.* - * [`RevokeM2MTokenResponseBody`](./src/Clerk/BackendAPI/Models/Errors/RevokeM2MTokenResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 159 methods.* - * [`VerifyM2MTokenResponseBody`](./src/Clerk/BackendAPI/Models/Errors/VerifyM2MTokenResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 159 methods.* - * [`VerifyOAuthAccessTokenResponseBody`](./src/Clerk/BackendAPI/Models/Errors/VerifyOAuthAccessTokenResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 159 methods.* - * [`GetM2MTokensM2mResponseBody`](./src/Clerk/BackendAPI/Models/Errors/GetM2MTokensM2mResponseBody.cs): 403 Forbidden. Status code `403`. Applicable to 1 of 159 methods.* - * [`GetM2MTokensM2mResponseResponseBody`](./src/Clerk/BackendAPI/Models/Errors/GetM2MTokensM2mResponseResponseBody.cs): 404 Not Found. Status code `404`. Applicable to 1 of 159 methods.* - * [`RevokeM2MTokenM2mResponseBody`](./src/Clerk/BackendAPI/Models/Errors/RevokeM2MTokenM2mResponseBody.cs): 404 Not Found. Status code `404`. Applicable to 1 of 159 methods.* - * [`VerifyM2MTokenM2mResponseBody`](./src/Clerk/BackendAPI/Models/Errors/VerifyM2MTokenM2mResponseBody.cs): 404 Not Found. Status code `404`. Applicable to 1 of 159 methods.* - * [`VerifyOAuthAccessTokenOauthAccessTokensResponseBody`](./src/Clerk/BackendAPI/Models/Errors/VerifyOAuthAccessTokenOauthAccessTokensResponseBody.cs): 404 Not Found. Status code `404`. Applicable to 1 of 159 methods.* - * [`CreateM2MTokenM2mResponseBody`](./src/Clerk/BackendAPI/Models/Errors/CreateM2MTokenM2mResponseBody.cs): 409 Conflict. Status code `409`. Applicable to 1 of 159 methods.* + * [`CreateM2MTokenResponseBody`](./src/Clerk/BackendAPI/Models/Errors/CreateM2MTokenResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 158 methods.* + * [`GetM2MTokensResponseBody`](./src/Clerk/BackendAPI/Models/Errors/GetM2MTokensResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 158 methods.* + * [`RevokeM2MTokenResponseBody`](./src/Clerk/BackendAPI/Models/Errors/RevokeM2MTokenResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 158 methods.* + * [`VerifyM2MTokenResponseBody`](./src/Clerk/BackendAPI/Models/Errors/VerifyM2MTokenResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 158 methods.* + * [`VerifyOAuthAccessTokenResponseBody`](./src/Clerk/BackendAPI/Models/Errors/VerifyOAuthAccessTokenResponseBody.cs): 400 Bad Request. Status code `400`. Applicable to 1 of 158 methods.* + * [`GetM2MTokensM2mResponseBody`](./src/Clerk/BackendAPI/Models/Errors/GetM2MTokensM2mResponseBody.cs): 403 Forbidden. Status code `403`. Applicable to 1 of 158 methods.* + * [`GetM2MTokensM2mResponseResponseBody`](./src/Clerk/BackendAPI/Models/Errors/GetM2MTokensM2mResponseResponseBody.cs): 404 Not Found. Status code `404`. Applicable to 1 of 158 methods.* + * [`RevokeM2MTokenM2mResponseBody`](./src/Clerk/BackendAPI/Models/Errors/RevokeM2MTokenM2mResponseBody.cs): 404 Not Found. Status code `404`. Applicable to 1 of 158 methods.* + * [`VerifyM2MTokenM2mResponseBody`](./src/Clerk/BackendAPI/Models/Errors/VerifyM2MTokenM2mResponseBody.cs): 404 Not Found. Status code `404`. Applicable to 1 of 158 methods.* + * [`VerifyOAuthAccessTokenOauthAccessTokensResponseBody`](./src/Clerk/BackendAPI/Models/Errors/VerifyOAuthAccessTokenOauthAccessTokensResponseBody.cs): 404 Not Found. Status code `404`. Applicable to 1 of 158 methods.* + * [`CreateM2MTokenM2mResponseBody`](./src/Clerk/BackendAPI/Models/Errors/CreateM2MTokenM2mResponseBody.cs): 409 Conflict. Status code `409`. Applicable to 1 of 158 methods.* * [`ResponseValidationError`](./src/Clerk/BackendAPI/Models/Errors/ResponseValidationError.cs): Thrown when the response data could not be deserialized into the expected type. @@ -611,6 +612,152 @@ var res = await sdk.Miscellaneous.GetPublicInterstitialAsync(req); ``` + +## Custom HTTP Client + +The C# SDK makes API calls using an `ISpeakeasyHttpClient` that wraps the native +[HttpClient](https://docs.microsoft.com/en-us/dotnet/api/system.net.http.httpclient). This +client provides the ability to attach hooks around the request lifecycle that can be used to modify the request or handle +errors and response. + +The `ISpeakeasyHttpClient` interface allows you to either use the default `SpeakeasyHttpClient` that comes with the SDK, +or provide your own custom implementation with customized configuration such as custom message handlers, timeouts, +connection pooling, and other HTTP client settings. + +The following example shows how to create a custom HTTP client with request modification and error handling: + +```csharp +using Clerk.BackendAPI; +using Clerk.BackendAPI.Utils; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; + +// Create a custom HTTP client +public class CustomHttpClient : ISpeakeasyHttpClient +{ + private readonly ISpeakeasyHttpClient _defaultClient; + + public CustomHttpClient() + { + _defaultClient = new SpeakeasyHttpClient(); + } + + public async Task SendAsync(HttpRequestMessage request, CancellationToken? cancellationToken = null) + { + // Add custom header and timeout + request.Headers.Add("x-custom-header", "custom value"); + request.Headers.Add("x-request-timeout", "30"); + + try + { + var response = await _defaultClient.SendAsync(request, cancellationToken); + // Log successful response + Console.WriteLine($"Request successful: {response.StatusCode}"); + return response; + } + catch (Exception error) + { + // Log error + Console.WriteLine($"Request failed: {error.Message}"); + throw; + } + } + + public void Dispose() + { + _httpClient?.Dispose(); + _defaultClient?.Dispose(); + } +} + +// Use the custom HTTP client with the SDK +var customHttpClient = new CustomHttpClient(); +var sdk = new ClerkBackendApi(client: customHttpClient); +``` + +
+You can also provide a completely custom HTTP client with your own configuration: + +```csharp +using Clerk.BackendAPI.Utils; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; + +// Custom HTTP client with custom configuration +public class AdvancedHttpClient : ISpeakeasyHttpClient +{ + private readonly HttpClient _httpClient; + + public AdvancedHttpClient() + { + var handler = new HttpClientHandler() + { + MaxConnectionsPerServer = 10, + // ServerCertificateCustomValidationCallback = customCertValidation, // Custom SSL validation if needed + }; + + _httpClient = new HttpClient(handler) + { + Timeout = TimeSpan.FromSeconds(30) + }; + } + + public async Task SendAsync(HttpRequestMessage request, CancellationToken? cancellationToken = null) + { + return await _httpClient.SendAsync(request, cancellationToken ?? CancellationToken.None); + } + + public void Dispose() + { + _httpClient?.Dispose(); + } +} + +var sdk = ClerkBackendApi.Builder() + .WithClient(new AdvancedHttpClient()) + .Build(); +``` +
+ +
+For simple debugging, you can enable request/response logging by implementing a custom client: + +```csharp +public class LoggingHttpClient : ISpeakeasyHttpClient +{ + private readonly ISpeakeasyHttpClient _innerClient; + + public LoggingHttpClient(ISpeakeasyHttpClient innerClient = null) + { + _innerClient = innerClient ?? new SpeakeasyHttpClient(); + } + + public async Task SendAsync(HttpRequestMessage request, CancellationToken? cancellationToken = null) + { + // Log request + Console.WriteLine($"Sending {request.Method} request to {request.RequestUri}"); + + var response = await _innerClient.SendAsync(request, cancellationToken); + + // Log response + Console.WriteLine($"Received {response.StatusCode} response"); + + return response; + } + + public void Dispose() => _innerClient?.Dispose(); +} + +var sdk = new ClerkBackendApi(client: new LoggingHttpClient()); +``` +
+ +The SDK also provides built-in hook support through the `SDKConfiguration.Hooks` system, which automatically handles +`BeforeRequestAsync`, `AfterSuccessAsync`, and `AfterErrorAsync` hooks for advanced request lifecycle management. + + # Development diff --git a/RELEASES.md b/RELEASES.md index ecec066f..68b892f2 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -208,4 +208,14 @@ Based on: ### Generated - [csharp v0.13.0] . ### Releases -- [NuGet v0.13.0] https://www.nuget.org/packages/Clerk.BackendAPI/0.13.0 - . \ No newline at end of file +- [NuGet v0.13.0] https://www.nuget.org/packages/Clerk.BackendAPI/0.13.0 - . + +## 2025-11-10 20:49:15 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.653.0 (2.748.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [csharp v0.14.0] . +### Releases +- [NuGet v0.14.0] https://www.nuget.org/packages/Clerk.BackendAPI/0.14.0 - . \ No newline at end of file diff --git a/docs/Models/Components/AWSCredential.md b/docs/Models/Components/AWSCredential.md deleted file mode 100644 index ec55ede6..00000000 --- a/docs/Models/Components/AWSCredential.md +++ /dev/null @@ -1,15 +0,0 @@ -# AWSCredential - -Success - - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| `Id` | *string* | :heavy_check_mark: | N/A | -| `Object` | [Models.Components.Object](../../Models/Components/Object.md) | :heavy_check_mark: | String representing the object's type. Objects of the same type share the same value.
| -| `AccessKeyId` | *string* | :heavy_check_mark: | N/A | -| `UserPoolIds` | List<*string*> | :heavy_check_mark: | N/A | -| `CreatedAt` | *long* | :heavy_check_mark: | Unix timestamp of creation
| -| `UpdatedAt` | *long* | :heavy_check_mark: | Unix timestamp of creation
| \ No newline at end of file diff --git a/docs/Models/Components/AccountlessApplication.md b/docs/Models/Components/AccountlessApplication.md deleted file mode 100644 index 9c2fcf5d..00000000 --- a/docs/Models/Components/AccountlessApplication.md +++ /dev/null @@ -1,14 +0,0 @@ -# AccountlessApplication - -Success - - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | -| `Object` | [AccountlessApplicationObject](../../Models/Components/AccountlessApplicationObject.md) | :heavy_check_mark: | N/A | -| `PublishableKey` | *string* | :heavy_check_mark: | N/A | -| `SecretKey` | *string* | :heavy_minus_sign: | N/A | -| `ClaimUrl` | *string* | :heavy_minus_sign: | N/A | -| `ApiKeysUrl` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/Models/Components/AccountlessApplicationObject.md b/docs/Models/Components/AccountlessApplicationObject.md deleted file mode 100644 index ab728440..00000000 --- a/docs/Models/Components/AccountlessApplicationObject.md +++ /dev/null @@ -1,8 +0,0 @@ -# AccountlessApplicationObject - - -## Values - -| Name | Value | -| ------------------------ | ------------------------ | -| `AccountlessApplication` | accountless_application | \ No newline at end of file diff --git a/docs/Models/Components/Amount.md b/docs/Models/Components/Amount.md index 8edb5ee4..fb3418cf 100644 --- a/docs/Models/Components/Amount.md +++ b/docs/Models/Components/Amount.md @@ -1,6 +1,6 @@ # Amount -Current amount for this subscription. +Credit amount. ## Fields diff --git a/docs/Models/Components/AnnualFee.md b/docs/Models/Components/AnnualFee.md new file mode 100644 index 00000000..ee9931de --- /dev/null +++ b/docs/Models/Components/AnnualFee.md @@ -0,0 +1,11 @@ +# AnnualFee + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `Amount` | *long* | :heavy_check_mark: | The amount in cents. | +| `AmountFormatted` | *string* | :heavy_check_mark: | The formatted amount as a string (e.g., "$49.99"). | +| `Currency` | *string* | :heavy_check_mark: | The currency code (e.g., "USD"). | +| `CurrencySymbol` | *string* | :heavy_check_mark: | The currency symbol (e.g., "$"). | \ No newline at end of file diff --git a/docs/Models/Components/AnnualMonthlyFee.md b/docs/Models/Components/AnnualMonthlyFee.md new file mode 100644 index 00000000..bdb51e52 --- /dev/null +++ b/docs/Models/Components/AnnualMonthlyFee.md @@ -0,0 +1,11 @@ +# AnnualMonthlyFee + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `Amount` | *long* | :heavy_check_mark: | The amount in cents. | +| `AmountFormatted` | *string* | :heavy_check_mark: | The formatted amount as a string (e.g., "$49.99"). | +| `Currency` | *string* | :heavy_check_mark: | The currency code (e.g., "USD"). | +| `CurrencySymbol` | *string* | :heavy_check_mark: | The currency symbol (e.g., "$"). | \ No newline at end of file diff --git a/docs/Models/Components/BillingPaymentAttempt.md b/docs/Models/Components/BillingPaymentAttempt.md new file mode 100644 index 00000000..479e4530 --- /dev/null +++ b/docs/Models/Components/BillingPaymentAttempt.md @@ -0,0 +1,29 @@ +# BillingPaymentAttempt + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | +| `Object` | [BillingPaymentAttemptObject](../../Models/Components/BillingPaymentAttemptObject.md) | :heavy_check_mark: | String representing the object's type. Objects of the same type share the same value. | +| `Id` | *string* | :heavy_check_mark: | Unique identifier for the payment attempt. | +| `PaymentId` | *string* | :heavy_check_mark: | Unique identifier for the associated payment. | +| `InstanceId` | *string* | :heavy_check_mark: | The ID of the instance this payment attempt belongs to. | +| `ChargeType` | *string* | :heavy_check_mark: | Type of charge for this payment attempt. | +| `PayeeId` | *string* | :heavy_check_mark: | Unique identifier for the payee. | +| `Payee` | [Payee](../../Models/Components/Payee.md) | :heavy_check_mark: | The payee associated with this payment attempt. | +| `PayerId` | *string* | :heavy_check_mark: | Unique identifier for the payer. | +| `Payer` | [CommercePayerResponse](../../Models/Components/CommercePayerResponse.md) | :heavy_check_mark: | N/A | +| `SubscriptionItemId` | *string* | :heavy_minus_sign: | Unique identifier for the associated subscription item. | +| `SubscriptionItem` | [SubscriptionItem](../../Models/Components/SubscriptionItem.md) | :heavy_minus_sign: | The subscription item associated with this payment attempt. | +| `Amount` | [CommerceMoneyResponse](../../Models/Components/CommerceMoneyResponse.md) | :heavy_check_mark: | N/A | +| `PaymentMethodId` | *string* | :heavy_check_mark: | Unique identifier for the payment method. | +| `PaymentMethod` | [CommercePaymentMethodResponse](../../Models/Components/CommercePaymentMethodResponse.md) | :heavy_check_mark: | N/A | +| `StatementId` | *string* | :heavy_check_mark: | Unique identifier for the associated statement. | +| `GatewayExternalId` | *string* | :heavy_check_mark: | External identifier from the payment gateway. | +| `GatewayExternalUrl` | *string* | :heavy_check_mark: | External URL from the payment gateway. | +| `Status` | [BillingPaymentAttemptStatus](../../Models/Components/BillingPaymentAttemptStatus.md) | :heavy_check_mark: | The current status of the payment attempt. | +| `PaidAt` | *long* | :heavy_check_mark: | Unix timestamp (in milliseconds) when the payment was completed. | +| `FailedAt` | *long* | :heavy_check_mark: | Unix timestamp (in milliseconds) when the payment failed to be processed. | +| `CreatedAt` | *long* | :heavy_check_mark: | Unix timestamp (in milliseconds) when the payment attempt was created. | +| `UpdatedAt` | *long* | :heavy_check_mark: | Unix timestamp (in milliseconds) when the payment attempt was last updated. | \ No newline at end of file diff --git a/docs/Models/Components/BillingPaymentAttemptObject.md b/docs/Models/Components/BillingPaymentAttemptObject.md new file mode 100644 index 00000000..2aca3885 --- /dev/null +++ b/docs/Models/Components/BillingPaymentAttemptObject.md @@ -0,0 +1,10 @@ +# BillingPaymentAttemptObject + +String representing the object's type. Objects of the same type share the same value. + + +## Values + +| Name | Value | +| ----------------- | ----------------- | +| `CommercePayment` | commerce_payment | \ No newline at end of file diff --git a/docs/Models/Components/BillingPaymentAttemptStatus.md b/docs/Models/Components/BillingPaymentAttemptStatus.md new file mode 100644 index 00000000..ea9585d3 --- /dev/null +++ b/docs/Models/Components/BillingPaymentAttemptStatus.md @@ -0,0 +1,12 @@ +# BillingPaymentAttemptStatus + +The current status of the payment attempt. + + +## Values + +| Name | Value | +| --------- | --------- | +| `Pending` | pending | +| `Paid` | paid | +| `Failed` | failed | \ No newline at end of file diff --git a/docs/Models/Components/BillingStatement.md b/docs/Models/Components/BillingStatement.md new file mode 100644 index 00000000..101152a2 --- /dev/null +++ b/docs/Models/Components/BillingStatement.md @@ -0,0 +1,15 @@ +# BillingStatement + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | +| `Object` | [BillingStatementObject](../../Models/Components/BillingStatementObject.md) | :heavy_check_mark: | String representing the object's type. Objects of the same type share the same value. | +| `Id` | *string* | :heavy_check_mark: | Unique identifier for the billing statement. | +| `InstanceId` | *string* | :heavy_check_mark: | The ID of the instance this statement belongs to. | +| `Timestamp` | *long* | :heavy_check_mark: | Unix timestamp (in milliseconds) when the statement was created. | +| `Payer` | [CommercePayerResponse](../../Models/Components/CommercePayerResponse.md) | :heavy_check_mark: | N/A | +| `Status` | [BillingStatementStatus](../../Models/Components/BillingStatementStatus.md) | :heavy_check_mark: | The current status of the statement. | +| `Totals` | [Totals](../../Models/Components/Totals.md) | :heavy_check_mark: | Totals for the statement. | +| `Groups` | List<[Groups](../../Models/Components/Groups.md)> | :heavy_check_mark: | Array of statement groups. | \ No newline at end of file diff --git a/docs/Models/Components/BillingStatementGroupsObject.md b/docs/Models/Components/BillingStatementGroupsObject.md new file mode 100644 index 00000000..a81bab5a --- /dev/null +++ b/docs/Models/Components/BillingStatementGroupsObject.md @@ -0,0 +1,10 @@ +# BillingStatementGroupsObject + +String representing the object's type. Objects of the same type share the same value. + + +## Values + +| Name | Value | +| ------------------------ | ------------------------ | +| `CommerceStatementGroup` | commerce_statement_group | \ No newline at end of file diff --git a/docs/Models/Components/BillingStatementObject.md b/docs/Models/Components/BillingStatementObject.md new file mode 100644 index 00000000..587a3a57 --- /dev/null +++ b/docs/Models/Components/BillingStatementObject.md @@ -0,0 +1,10 @@ +# BillingStatementObject + +String representing the object's type. Objects of the same type share the same value. + + +## Values + +| Name | Value | +| ------------------- | ------------------- | +| `CommerceStatement` | commerce_statement | \ No newline at end of file diff --git a/docs/Models/Components/BillingStatementStatus.md b/docs/Models/Components/BillingStatementStatus.md new file mode 100644 index 00000000..634add01 --- /dev/null +++ b/docs/Models/Components/BillingStatementStatus.md @@ -0,0 +1,11 @@ +# BillingStatementStatus + +The current status of the statement. + + +## Values + +| Name | Value | +| -------- | -------- | +| `Open` | open | +| `Closed` | closed | \ No newline at end of file diff --git a/docs/Models/Components/ClerkError.md b/docs/Models/Components/ClerkError.md index 648ba4a7..71dbae93 100644 --- a/docs/Models/Components/ClerkError.md +++ b/docs/Models/Components/ClerkError.md @@ -8,5 +8,4 @@ | `Message` | *string* | :heavy_check_mark: | N/A | Invalid input | | `LongMessage` | *string* | :heavy_check_mark: | N/A | The input provided does not meet the requirements. | | `Code` | *string* | :heavy_check_mark: | N/A | 400_bad_request | -| `Meta` | [Models.Components.Meta](../../Models/Components/Meta.md) | :heavy_minus_sign: | N/A | {} | -| `ClerkTraceId` | *string* | :heavy_minus_sign: | N/A | trace_123456789abcd | \ No newline at end of file +| `Meta` | [Models.Components.Meta](../../Models/Components/Meta.md) | :heavy_minus_sign: | N/A | {} | \ No newline at end of file diff --git a/docs/Models/Components/Client.md b/docs/Models/Components/Client.md index 8b5f544e..059f5c9a 100644 --- a/docs/Models/Components/Client.md +++ b/docs/Models/Components/Client.md @@ -5,14 +5,15 @@ Success ## Fields -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| `Object` | [ClientObject](../../Models/Components/ClientObject.md) | :heavy_check_mark: | String representing the object's type. Objects of the same type share the same value.
| client | -| `Id` | *string* | :heavy_check_mark: | String representing the identifier of the session.
| client_123456789abcd | -| `SessionIds` | List<*string*> | :heavy_check_mark: | N/A | [
"sess_123456789abcd",
"sess_23456789abcd"
] | -| `Sessions` | List<[Session](../../Models/Components/Session.md)> | :heavy_check_mark: | N/A | | -| `SignInId` | *string* | :heavy_check_mark: | N/A | signin_123456789abcd | -| `SignUpId` | *string* | :heavy_check_mark: | N/A | signup_123456789abcd | -| `LastActiveSessionId` | *string* | :heavy_check_mark: | Last active session_id.
| session_123456789abcd | -| `UpdatedAt` | *long* | :heavy_check_mark: | Unix timestamp of last update.
| 1632580323 | -| `CreatedAt` | *long* | :heavy_check_mark: | Unix timestamp of creation.
| 1622481123 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `Object` | [Models.Components.Object](../../Models/Components/Object.md) | :heavy_check_mark: | String representing the object's type. Objects of the same type share the same value.
| client | +| `Id` | *string* | :heavy_check_mark: | String representing the identifier of the session.
| client_123456789abcd | +| `SessionIds` | List<*string*> | :heavy_check_mark: | N/A | [
"sess_123456789abcd",
"sess_23456789abcd"
] | +| `Sessions` | List<[Session](../../Models/Components/Session.md)> | :heavy_check_mark: | N/A | | +| `SignInId` | *string* | :heavy_check_mark: | N/A | signin_123456789abcd | +| `SignUpId` | *string* | :heavy_check_mark: | N/A | signup_123456789abcd | +| `LastActiveSessionId` | *string* | :heavy_check_mark: | Last active session_id.
| session_123456789abcd | +| `LastAuthenticationStrategy` | *string* | :heavy_check_mark: | The authentication strategy that was last used to authenticate the user on this client.
| | +| `UpdatedAt` | *long* | :heavy_check_mark: | Unix timestamp of last update.
| 1632580323 | +| `CreatedAt` | *long* | :heavy_check_mark: | Unix timestamp of creation.
| 1622481123 | \ No newline at end of file diff --git a/docs/Models/Components/ClientObject.md b/docs/Models/Components/ClientObject.md deleted file mode 100644 index 1023b71e..00000000 --- a/docs/Models/Components/ClientObject.md +++ /dev/null @@ -1,11 +0,0 @@ -# ClientObject - -String representing the object's type. Objects of the same type share the same value. - - - -## Values - -| Name | Value | -| -------- | -------- | -| `Client` | client | \ No newline at end of file diff --git a/docs/Models/Components/CommercePayerResponse.md b/docs/Models/Components/CommercePayerResponse.md new file mode 100644 index 00000000..e84d6bdd --- /dev/null +++ b/docs/Models/Components/CommercePayerResponse.md @@ -0,0 +1,19 @@ +# CommercePayerResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | +| `Object` | [CommercePayerResponseObject](../../Models/Components/CommercePayerResponseObject.md) | :heavy_check_mark: | String representing the object's type. Objects of the same type share the same value. | +| `Id` | *string* | :heavy_check_mark: | Unique identifier for the payer. | +| `InstanceId` | *string* | :heavy_check_mark: | Unique identifier for the Clerk instance. | +| `UserId` | *string* | :heavy_minus_sign: | User ID for user-type payers. | +| `FirstName` | *string* | :heavy_minus_sign: | First name of the payer. | +| `LastName` | *string* | :heavy_minus_sign: | Last name of the payer. | +| `Email` | *string* | :heavy_minus_sign: | Email address of the payer. | +| `OrganizationId` | *string* | :heavy_minus_sign: | Organization ID for org-type payers. | +| `OrganizationName` | *string* | :heavy_minus_sign: | Organization name for org-type payers. | +| `ImageUrl` | *string* | :heavy_minus_sign: | URL of the payer's image/avatar. | +| `CreatedAt` | *long* | :heavy_minus_sign: | Unix timestamp (in milliseconds) when the payer was created. | +| `UpdatedAt` | *long* | :heavy_minus_sign: | Unix timestamp (in milliseconds) when the payer was last updated. | \ No newline at end of file diff --git a/docs/Models/Components/CommerceSubscriptionItemPayerObject.md b/docs/Models/Components/CommercePayerResponseObject.md similarity index 84% rename from docs/Models/Components/CommerceSubscriptionItemPayerObject.md rename to docs/Models/Components/CommercePayerResponseObject.md index 3023b742..6b8209fd 100644 --- a/docs/Models/Components/CommerceSubscriptionItemPayerObject.md +++ b/docs/Models/Components/CommercePayerResponseObject.md @@ -1,4 +1,4 @@ -# CommerceSubscriptionItemPayerObject +# CommercePayerResponseObject String representing the object's type. Objects of the same type share the same value. diff --git a/docs/Models/Components/CommercePaymentMethodResponse.md b/docs/Models/Components/CommercePaymentMethodResponse.md new file mode 100644 index 00000000..af7400f7 --- /dev/null +++ b/docs/Models/Components/CommercePaymentMethodResponse.md @@ -0,0 +1,24 @@ +# CommercePaymentMethodResponse + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | +| `Object` | [CommercePaymentMethodResponseObject](../../Models/Components/CommercePaymentMethodResponseObject.md) | :heavy_check_mark: | String representing the object's type. Objects of the same type share the same value. | +| `Id` | *string* | :heavy_check_mark: | Unique identifier for the payment method. | +| `PayerId` | *string* | :heavy_check_mark: | Unique identifier for the payer. | +| `PaymentType` | [PaymentType](../../Models/Components/PaymentType.md) | :heavy_check_mark: | The payment method type. | +| `IsDefault` | *bool* | :heavy_minus_sign: | Whether this is the default payment method for the payer. | +| `Gateway` | *string* | :heavy_check_mark: | The payment gateway. | +| `GatewayExternalId` | *string* | :heavy_check_mark: | External ID in the payment gateway. | +| `GatewayExternalAccountId` | *string* | :heavy_check_mark: | External account ID in the payment gateway. | +| `Last4` | *string* | :heavy_check_mark: | Last 4 digits of the card (for card payment methods). | +| `Status` | [CommercePaymentMethodResponseStatus](../../Models/Components/CommercePaymentMethodResponseStatus.md) | :heavy_check_mark: | Status of the payment method. | +| `WalletType` | *string* | :heavy_minus_sign: | Type of wallet (if applicable). | +| `CardType` | *string* | :heavy_check_mark: | Type of card (if applicable). | +| `ExpiryYear` | *long* | :heavy_minus_sign: | Card expiration year (for card payment methods). | +| `ExpiryMonth` | *long* | :heavy_minus_sign: | Card expiration month (for card payment methods). | +| `CreatedAt` | *long* | :heavy_minus_sign: | Unix timestamp (in milliseconds) when the payment method was created. | +| `UpdatedAt` | *long* | :heavy_minus_sign: | Unix timestamp (in milliseconds) when the payment method was last updated. | +| `IsRemovable` | *bool* | :heavy_minus_sign: | Whether this payment method can be removed. | \ No newline at end of file diff --git a/docs/Models/Components/CommercePaymentMethodResponseObject.md b/docs/Models/Components/CommercePaymentMethodResponseObject.md new file mode 100644 index 00000000..03080d10 --- /dev/null +++ b/docs/Models/Components/CommercePaymentMethodResponseObject.md @@ -0,0 +1,10 @@ +# CommercePaymentMethodResponseObject + +String representing the object's type. Objects of the same type share the same value. + + +## Values + +| Name | Value | +| ----------------------- | ----------------------- | +| `CommercePaymentMethod` | commerce_payment_method | \ No newline at end of file diff --git a/docs/Models/Components/CommercePaymentMethodResponseStatus.md b/docs/Models/Components/CommercePaymentMethodResponseStatus.md new file mode 100644 index 00000000..34cc99c5 --- /dev/null +++ b/docs/Models/Components/CommercePaymentMethodResponseStatus.md @@ -0,0 +1,11 @@ +# CommercePaymentMethodResponseStatus + +Status of the payment method. + + +## Values + +| Name | Value | +| -------------- | -------------- | +| `Active` | active | +| `Disconnected` | disconnected | \ No newline at end of file diff --git a/docs/Models/Components/CommercePlan.md b/docs/Models/Components/CommercePlan.md index bad812c7..d28f7154 100644 --- a/docs/Models/Components/CommercePlan.md +++ b/docs/Models/Components/CommercePlan.md @@ -6,31 +6,20 @@ | Field | Type | Required | Description | | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | | `Object` | [CommercePlanObject](../../Models/Components/CommercePlanObject.md) | :heavy_check_mark: | String representing the object's type. Objects of the same type share the same value. | -| `Id` | *string* | :heavy_check_mark: | Unique identifier for the commerce plan. | -| `Name` | *string* | :heavy_check_mark: | The name of the commerce plan. | +| `Id` | *string* | :heavy_check_mark: | Unique identifier for the plan. | +| `Name` | *string* | :heavy_check_mark: | The name of the plan. | | `Fee` | [CommerceMoneyResponse](../../Models/Components/CommerceMoneyResponse.md) | :heavy_check_mark: | N/A | -| `AnnualMonthlyFee` | [CommerceMoneyResponse](../../Models/Components/CommerceMoneyResponse.md) | :heavy_check_mark: | N/A | -| `AnnualFee` | [CommerceMoneyResponse](../../Models/Components/CommerceMoneyResponse.md) | :heavy_check_mark: | N/A | -| `Amount` | *long* | :heavy_check_mark: | The amount in cents for the plan. | -| `AmountFormatted` | *string* | :heavy_check_mark: | The formatted amount as a string (e.g., "$49.99"). | -| `AnnualMonthlyAmount` | *long* | :heavy_check_mark: | The monthly amount in cents when billed annually. | -| `AnnualMonthlyAmountFormatted` | *string* | :heavy_check_mark: | The formatted annual monthly amount as a string. | -| `AnnualAmount` | *long* | :heavy_check_mark: | The total annual amount in cents. | -| `AnnualAmountFormatted` | *string* | :heavy_check_mark: | The formatted annual amount as a string. | -| `CurrencySymbol` | *string* | :heavy_check_mark: | The currency symbol (e.g., "$"). | -| `Currency` | *string* | :heavy_check_mark: | The currency code (e.g., "USD"). | -| `Description` | *string* | :heavy_check_mark: | The description of the commerce plan. | +| `AnnualMonthlyFee` | [AnnualMonthlyFee](../../Models/Components/AnnualMonthlyFee.md) | :heavy_check_mark: | N/A | +| `AnnualFee` | [AnnualFee](../../Models/Components/AnnualFee.md) | :heavy_check_mark: | N/A | +| `Description` | *string* | :heavy_check_mark: | The description of the plan. | | `ProductId` | *string* | :heavy_check_mark: | The ID of the product this plan belongs to. | | `IsDefault` | *bool* | :heavy_check_mark: | Whether this is the default plan. | | `IsRecurring` | *bool* | :heavy_check_mark: | Whether this is a recurring plan. | | `PubliclyVisible` | *bool* | :heavy_check_mark: | Whether this plan is publicly visible. | | `HasBaseFee` | *bool* | :heavy_check_mark: | Whether this plan has a base fee. | -| `PayerType` | List<*string*> | :heavy_check_mark: | The types of payers that can use this plan. | | `ForPayerType` | *string* | :heavy_check_mark: | The payer type this plan is designed for. | | `Slug` | *string* | :heavy_check_mark: | The URL-friendly slug for the plan. | | `AvatarUrl` | *string* | :heavy_check_mark: | The URL of the plan's avatar image. | -| `Period` | *string* | :heavy_minus_sign: | The billing period for the plan. | -| `Interval` | *long* | :heavy_minus_sign: | The billing interval. | -| `Features` | List<[FeatureResponse](../../Models/Components/FeatureResponse.md)> | :heavy_check_mark: | The features included in this plan. | -| `FreeTrialEnabled` | *bool* | :heavy_minus_sign: | Whether free trial is enabled for this plan. | -| `FreeTrialDays` | *long* | :heavy_minus_sign: | Number of free trial days for this plan. | \ No newline at end of file +| `Features` | List<[FeatureResponse](../../Models/Components/FeatureResponse.md)> | :heavy_minus_sign: | The features included in this plan. | +| `FreeTrialEnabled` | *bool* | :heavy_check_mark: | Whether free trial is enabled for this plan. | +| `FreeTrialDays` | *long* | :heavy_check_mark: | Number of free trial days for this plan. | \ No newline at end of file diff --git a/docs/Models/Components/CommerceSubscription.md b/docs/Models/Components/CommerceSubscription.md index e5d95678..b0273c37 100644 --- a/docs/Models/Components/CommerceSubscription.md +++ b/docs/Models/Components/CommerceSubscription.md @@ -14,8 +14,8 @@ A commerce subscription. | `PayerId` | *string* | :heavy_check_mark: | The ID of the payer for this subscription. | | `CreatedAt` | *long* | :heavy_check_mark: | Unix timestamp (milliseconds) of creation. | | `UpdatedAt` | *long* | :heavy_check_mark: | Unix timestamp (milliseconds) of last update. | -| `ActiveAt` | *long* | :heavy_minus_sign: | Unix timestamp (milliseconds) when the subscription became active. | -| `PastDueAt` | *long* | :heavy_minus_sign: | Unix timestamp (milliseconds) when the subscription became past due. | +| `ActiveAt` | *long* | :heavy_check_mark: | Unix timestamp (milliseconds) when the subscription became active. | +| `PastDueAt` | *long* | :heavy_check_mark: | Unix timestamp (milliseconds) when the subscription became past due. | | `SubscriptionItems` | List<[CommerceSubscriptionItem](../../Models/Components/CommerceSubscriptionItem.md)> | :heavy_check_mark: | Array of subscription items in this subscription. | | `NextPayment` | [CommerceSubscriptionNextPayment](../../Models/Components/CommerceSubscriptionNextPayment.md) | :heavy_minus_sign: | N/A | | `EligibleForFreeTrial` | *bool* | :heavy_minus_sign: | Whether the payer is eligible for a free trial. | \ No newline at end of file diff --git a/docs/Models/Components/CommerceSubscriptionCreditResponse.md b/docs/Models/Components/CommerceSubscriptionCreditResponse.md new file mode 100644 index 00000000..a9be9187 --- /dev/null +++ b/docs/Models/Components/CommerceSubscriptionCreditResponse.md @@ -0,0 +1,9 @@ +# CommerceSubscriptionCreditResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | +| `Amount` | [Amount](../../Models/Components/Amount.md) | :heavy_minus_sign: | Credit amount. | +| `CycleRemainingPercent` | *float* | :heavy_minus_sign: | Percentage of the billing cycle remaining. | \ No newline at end of file diff --git a/docs/Models/Components/CommerceSubscriptionItem.md b/docs/Models/Components/CommerceSubscriptionItem.md index a8b9a0b1..7ef83ff7 100644 --- a/docs/Models/Components/CommerceSubscriptionItem.md +++ b/docs/Models/Components/CommerceSubscriptionItem.md @@ -3,30 +3,27 @@ ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | -| `Object` | [CommerceSubscriptionItemObject](../../Models/Components/CommerceSubscriptionItemObject.md) | :heavy_check_mark: | String representing the object's type. Objects of the same type share the same value. | -| `Id` | *string* | :heavy_check_mark: | Unique identifier for the subscription item. | -| `InstanceId` | *string* | :heavy_check_mark: | Unique identifier for the Clerk instance. | -| `Status` | [CommerceSubscriptionItemStatus](../../Models/Components/CommerceSubscriptionItemStatus.md) | :heavy_check_mark: | Current status of the subscription item. | -| `Credit` | [Credit](../../Models/Components/Credit.md) | :heavy_minus_sign: | Credit information (only available in PaymentAttempt events). | -| `PlanId` | *string* | :heavy_check_mark: | Unique identifier for the associated plan. | -| `Plan` | [Plan](../../Models/Components/Plan.md) | :heavy_check_mark: | The associated commerce plan. | -| `PlanPeriod` | [PlanPeriod](../../Models/Components/PlanPeriod.md) | :heavy_check_mark: | The billing period for this subscription. | -| `PaymentSourceId` | *string* | :heavy_check_mark: | Unique identifier for the payment source. | -| `PaymentSource` | [PaymentSource](../../Models/Components/PaymentSource.md) | :heavy_minus_sign: | The payment source associated with this subscription. | -| `LifetimePaid` | [LifetimePaid](../../Models/Components/LifetimePaid.md) | :heavy_minus_sign: | Total amount paid over the lifetime of this subscription. | -| `Amount` | [Amount](../../Models/Components/Amount.md) | :heavy_minus_sign: | Current amount for this subscription. | -| `NextInvoice` | [NextInvoice](../../Models/Components/NextInvoice.md) | :heavy_minus_sign: | Information about the next invoice. | -| `NextPayment` | [NextPayment](../../Models/Components/NextPayment.md) | :heavy_minus_sign: | Information about the next payment. | -| `PayerId` | *string* | :heavy_check_mark: | Unique identifier for the payer. | -| `Payer` | [Payer](../../Models/Components/Payer.md) | :heavy_minus_sign: | The payer associated with this subscription. | -| `IsFreeTrial` | *bool* | :heavy_check_mark: | Whether this subscription is currently on a free trial. | -| `PeriodStart` | *long* | :heavy_minus_sign: | Unix timestamp (in milliseconds) when the current period started. | -| `PeriodEnd` | *long* | :heavy_minus_sign: | Unix timestamp (in milliseconds) when the current period ends. | -| `ProrationDate` | *string* | :heavy_check_mark: | Date used for proration calculations. | -| `CanceledAt` | *long* | :heavy_minus_sign: | Unix timestamp (in milliseconds) when the subscription was canceled. | -| `PastDueAt` | *long* | :heavy_minus_sign: | Unix timestamp (in milliseconds) when the subscription became past due. | -| `EndedAt` | *long* | :heavy_minus_sign: | Unix timestamp (in milliseconds) when the subscription ended. | -| `CreatedAt` | *long* | :heavy_check_mark: | Unix timestamp (in milliseconds) when the subscription was created. | -| `UpdatedAt` | *long* | :heavy_check_mark: | Unix timestamp (in milliseconds) when the subscription was last updated. | \ No newline at end of file +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | +| `Object` | [CommerceSubscriptionItemObject](../../Models/Components/CommerceSubscriptionItemObject.md) | :heavy_check_mark: | String representing the object's type. Objects of the same type share the same value. | +| `Id` | *string* | :heavy_check_mark: | Unique identifier for the subscription item. | +| `InstanceId` | *string* | :heavy_check_mark: | Unique identifier for the Clerk instance. | +| `Status` | [CommerceSubscriptionItemStatus](../../Models/Components/CommerceSubscriptionItemStatus.md) | :heavy_check_mark: | Current status of the subscription item. | +| `Credit` | [CommerceSubscriptionCreditResponse](../../Models/Components/CommerceSubscriptionCreditResponse.md) | :heavy_minus_sign: | N/A | +| `PlanId` | *string* | :heavy_check_mark: | Unique identifier for the associated plan. | +| `Plan` | [Plan](../../Models/Components/Plan.md) | :heavy_minus_sign: | The associated plan. | +| `PlanPeriod` | [PlanPeriod](../../Models/Components/PlanPeriod.md) | :heavy_check_mark: | The billing period for this subscription item. | +| `PaymentMethod` | [CommercePaymentMethodResponse](../../Models/Components/CommercePaymentMethodResponse.md) | :heavy_minus_sign: | N/A | +| `LifetimePaid` | [CommerceMoneyResponse](../../Models/Components/CommerceMoneyResponse.md) | :heavy_minus_sign: | N/A | +| `NextPayment` | [NextPayment](../../Models/Components/NextPayment.md) | :heavy_minus_sign: | Information about the next payment. | +| `PayerId` | *string* | :heavy_check_mark: | Unique identifier for the payer. | +| `Payer` | [CommercePayerResponse](../../Models/Components/CommercePayerResponse.md) | :heavy_minus_sign: | N/A | +| `IsFreeTrial` | *bool* | :heavy_check_mark: | Whether this subscription item includes a free trial. | +| `PeriodStart` | *long* | :heavy_check_mark: | Unix timestamp (in milliseconds) when the current period started. | +| `PeriodEnd` | *long* | :heavy_check_mark: | Unix timestamp (in milliseconds) when the current period ends. | +| `ProrationDate` | [LocalDate](https://nodatime.org/3.1.x/api/NodaTime.LocalDate.html) | :heavy_minus_sign: | The day the subscription item was prorated from. Only available in some responses. | +| `CanceledAt` | *long* | :heavy_check_mark: | Unix timestamp (in milliseconds) when the subscription item was canceled. | +| `PastDueAt` | *long* | :heavy_check_mark: | Unix timestamp (in milliseconds) when the subscription item became past due. | +| `EndedAt` | *long* | :heavy_check_mark: | Unix timestamp (in milliseconds) when the subscription item ended. | +| `CreatedAt` | *long* | :heavy_minus_sign: | Unix timestamp (in milliseconds) when the subscription item was created. | +| `UpdatedAt` | *long* | :heavy_minus_sign: | Unix timestamp (in milliseconds) when the subscription item was last updated. | \ No newline at end of file diff --git a/docs/Models/Components/CommerceSubscriptionItemAmount.md b/docs/Models/Components/CommerceSubscriptionItemAmount.md index f01da8f1..d142347a 100644 --- a/docs/Models/Components/CommerceSubscriptionItemAmount.md +++ b/docs/Models/Components/CommerceSubscriptionItemAmount.md @@ -1,6 +1,6 @@ # CommerceSubscriptionItemAmount -Credit amount. +Amount for the next payment. ## Fields diff --git a/docs/Models/Components/CommerceSubscriptionItemAnnualFee.md b/docs/Models/Components/CommerceSubscriptionItemAnnualFee.md new file mode 100644 index 00000000..b0d88232 --- /dev/null +++ b/docs/Models/Components/CommerceSubscriptionItemAnnualFee.md @@ -0,0 +1,11 @@ +# CommerceSubscriptionItemAnnualFee + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `Amount` | *long* | :heavy_check_mark: | The amount in cents. | +| `AmountFormatted` | *string* | :heavy_check_mark: | The formatted amount as a string (e.g., "$49.99"). | +| `Currency` | *string* | :heavy_check_mark: | The currency code (e.g., "USD"). | +| `CurrencySymbol` | *string* | :heavy_check_mark: | The currency symbol (e.g., "$"). | \ No newline at end of file diff --git a/docs/Models/Components/CommerceSubscriptionItemAnnualMonthlyFee.md b/docs/Models/Components/CommerceSubscriptionItemAnnualMonthlyFee.md new file mode 100644 index 00000000..bfbaab8e --- /dev/null +++ b/docs/Models/Components/CommerceSubscriptionItemAnnualMonthlyFee.md @@ -0,0 +1,11 @@ +# CommerceSubscriptionItemAnnualMonthlyFee + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `Amount` | *long* | :heavy_check_mark: | The amount in cents. | +| `AmountFormatted` | *string* | :heavy_check_mark: | The formatted amount as a string (e.g., "$49.99"). | +| `Currency` | *string* | :heavy_check_mark: | The currency code (e.g., "USD"). | +| `CurrencySymbol` | *string* | :heavy_check_mark: | The currency symbol (e.g., "$"). | \ No newline at end of file diff --git a/docs/Models/Components/CommerceSubscriptionItemStatus.md b/docs/Models/Components/CommerceSubscriptionItemStatus.md index 3668fd5b..eec51237 100644 --- a/docs/Models/Components/CommerceSubscriptionItemStatus.md +++ b/docs/Models/Components/CommerceSubscriptionItemStatus.md @@ -8,6 +8,8 @@ Current status of the subscription item. | Name | Value | | ------------ | ------------ | | `Active` | active | +| `Canceled` | canceled | +| `Expired` | expired | | `Ended` | ended | | `PastDue` | past_due | | `Upcoming` | upcoming | diff --git a/docs/Models/Components/CommerceSubscriptionNextPayment.md b/docs/Models/Components/CommerceSubscriptionNextPayment.md index cd654bd1..4fe9fb65 100644 --- a/docs/Models/Components/CommerceSubscriptionNextPayment.md +++ b/docs/Models/Components/CommerceSubscriptionNextPayment.md @@ -5,6 +5,5 @@ | Field | Type | Required | Description | | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `Time` | *long* | :heavy_check_mark: | Unix timestamp (milliseconds) of the next payment. | | `Date` | *long* | :heavy_check_mark: | Unix timestamp (milliseconds) of the next payment date. | | `Amount` | [CommerceMoneyResponse](../../Models/Components/CommerceMoneyResponse.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/Models/Components/Credit.md b/docs/Models/Components/Credit.md index 6f6c0726..6d66c573 100644 --- a/docs/Models/Components/Credit.md +++ b/docs/Models/Components/Credit.md @@ -5,7 +5,7 @@ Credit information (only available in PaymentAttempt events). ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | -| `Amount` | [CommerceSubscriptionItemAmount](../../Models/Components/CommerceSubscriptionItemAmount.md) | :heavy_minus_sign: | Credit amount. | -| `CycleRemainingPercent` | *float* | :heavy_minus_sign: | Percentage of the billing cycle remaining. | \ No newline at end of file +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | +| `Amount` | [SchemasCommerceSubscriptionItemCreditAmount](../../Models/Components/SchemasCommerceSubscriptionItemCreditAmount.md) | :heavy_minus_sign: | Credit amount. | +| `CycleRemainingPercent` | *float* | :heavy_minus_sign: | Percentage of the billing cycle remaining. | \ No newline at end of file diff --git a/docs/Models/Components/DeletedObject.md b/docs/Models/Components/DeletedObject.md index 57322763..92d64326 100644 --- a/docs/Models/Components/DeletedObject.md +++ b/docs/Models/Components/DeletedObject.md @@ -10,4 +10,5 @@ Deleted Object | `Object` | *string* | :heavy_check_mark: | N/A | deleted_object | | `Id` | *string* | :heavy_minus_sign: | N/A | deleted_object_id_example | | `Slug` | *string* | :heavy_minus_sign: | N/A | deleted-object-slug | -| `Deleted` | *bool* | :heavy_check_mark: | N/A | true | \ No newline at end of file +| `Deleted` | *bool* | :heavy_check_mark: | N/A | true | +| `ExternalId` | *string* | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Components/ErrorClerkError.md b/docs/Models/Components/ErrorClerkError.md index 1d0ded33..72a8a8d3 100644 --- a/docs/Models/Components/ErrorClerkError.md +++ b/docs/Models/Components/ErrorClerkError.md @@ -8,5 +8,4 @@ | `Message` | *string* | :heavy_check_mark: | N/A | Invalid input | | `LongMessage` | *string* | :heavy_check_mark: | N/A | The input provided does not meet the requirements. | | `Code` | *string* | :heavy_check_mark: | N/A | 400_bad_request | -| `Meta` | [ErrorMeta](../../Models/Components/ErrorMeta.md) | :heavy_minus_sign: | N/A | {} | -| `ClerkTraceId` | *string* | :heavy_minus_sign: | N/A | trace_123456789abcd | \ No newline at end of file +| `Meta` | [ErrorMeta](../../Models/Components/ErrorMeta.md) | :heavy_minus_sign: | N/A | {} | \ No newline at end of file diff --git a/docs/Models/Components/Groups.md b/docs/Models/Components/Groups.md new file mode 100644 index 00000000..fd0e9b23 --- /dev/null +++ b/docs/Models/Components/Groups.md @@ -0,0 +1,12 @@ +# Groups + +A statement group. + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| `Object` | [BillingStatementGroupsObject](../../Models/Components/BillingStatementGroupsObject.md) | :heavy_check_mark: | String representing the object's type. Objects of the same type share the same value. | +| `Timestamp` | *long* | :heavy_check_mark: | Unix timestamp (in milliseconds) of the date the group's payment attempts were created | +| `Items` | List<[BillingPaymentAttempt](../../Models/Components/BillingPaymentAttempt.md)> | :heavy_check_mark: | The payment attempts included in the group | \ No newline at end of file diff --git a/docs/Models/Components/NextInvoice.md b/docs/Models/Components/NextInvoice.md index 3632596d..352b2081 100644 --- a/docs/Models/Components/NextInvoice.md +++ b/docs/Models/Components/NextInvoice.md @@ -5,7 +5,7 @@ Information about the next invoice. ## Fields -| Field | Type | Required | Description | -| ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | -| `Amount` | [CommerceSubscriptionItemNextInvoiceAmount](../../Models/Components/CommerceSubscriptionItemNextInvoiceAmount.md) | :heavy_minus_sign: | Amount for the next payment. | -| `Date` | *long* | :heavy_minus_sign: | Unix timestamp (in milliseconds) for the next payment date. | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| `Amount` | [SchemasCommerceSubscriptionItemNextInvoiceAmount](../../Models/Components/SchemasCommerceSubscriptionItemNextInvoiceAmount.md) | :heavy_minus_sign: | Amount for the next payment. | +| `Date` | *long* | :heavy_minus_sign: | Unix timestamp (in milliseconds) for the next payment date. | \ No newline at end of file diff --git a/docs/Models/Components/NextPayment.md b/docs/Models/Components/NextPayment.md index 7e1c095f..8e973a25 100644 --- a/docs/Models/Components/NextPayment.md +++ b/docs/Models/Components/NextPayment.md @@ -5,7 +5,7 @@ Information about the next payment. ## Fields -| Field | Type | Required | Description | -| ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | -| `Amount` | [CommerceSubscriptionItemNextPaymentAmount](../../Models/Components/CommerceSubscriptionItemNextPaymentAmount.md) | :heavy_minus_sign: | Amount for the next payment. | -| `Date` | *long* | :heavy_minus_sign: | Unix timestamp (in milliseconds) for the next payment date. | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | +| `Amount` | [CommerceSubscriptionItemAmount](../../Models/Components/CommerceSubscriptionItemAmount.md) | :heavy_minus_sign: | Amount for the next payment. | +| `Date` | *long* | :heavy_minus_sign: | Unix timestamp (in milliseconds) for the next payment date. | \ No newline at end of file diff --git a/docs/Models/Components/Object.md b/docs/Models/Components/Object.md index ca464d99..9edfa831 100644 --- a/docs/Models/Components/Object.md +++ b/docs/Models/Components/Object.md @@ -6,6 +6,6 @@ String representing the object's type. Objects of the same type share the same v ## Values -| Name | Value | -| --------------- | --------------- | -| `AwsCredential` | aws_credential | \ No newline at end of file +| Name | Value | +| -------- | -------- | +| `Client` | client | \ No newline at end of file diff --git a/docs/Models/Components/One.md b/docs/Models/Components/One.md index 60743105..33b18177 100644 --- a/docs/Models/Components/One.md +++ b/docs/Models/Components/One.md @@ -24,8 +24,9 @@ | `Provider` | *string* | :heavy_check_mark: | N/A | | `UserCount` | *long* | :heavy_check_mark: | N/A | | `SyncUserAttributes` | *bool* | :heavy_check_mark: | N/A | -| `AllowSubdomains` | *bool* | :heavy_minus_sign: | N/A | -| `AllowIdpInitiated` | *bool* | :heavy_minus_sign: | N/A | -| `DisableAdditionalIdentifications` | *bool* | :heavy_minus_sign: | N/A | +| `AllowSubdomains` | *bool* | :heavy_check_mark: | N/A | +| `AllowIdpInitiated` | *bool* | :heavy_check_mark: | N/A | +| `DisableAdditionalIdentifications` | *bool* | :heavy_check_mark: | N/A | +| `ForceAuthn` | *bool* | :heavy_check_mark: | Enable or deactivate ForceAuthn | | `CreatedAt` | *long* | :heavy_check_mark: | Unix timestamp of creation.
| | `UpdatedAt` | *long* | :heavy_check_mark: | Unix timestamp of last update.
| \ No newline at end of file diff --git a/docs/Models/Components/OrganizationMembershipPublicUserData.md b/docs/Models/Components/OrganizationMembershipPublicUserData.md index 780c4b49..e69141bb 100644 --- a/docs/Models/Components/OrganizationMembershipPublicUserData.md +++ b/docs/Models/Components/OrganizationMembershipPublicUserData.md @@ -13,4 +13,5 @@ An organization membership with public user data populated | ~~`ProfileImageUrl`~~ | *string* | :heavy_check_mark: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible. | | `ImageUrl` | *string* | :heavy_check_mark: | N/A | | `HasImage` | *bool* | :heavy_check_mark: | N/A | -| `Identifier` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file +| `Identifier` | *string* | :heavy_minus_sign: | N/A | +| `Username` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/Models/Components/OrganizationSettings.md b/docs/Models/Components/OrganizationSettings.md index 7aa34643..c0e7edd1 100644 --- a/docs/Models/Components/OrganizationSettings.md +++ b/docs/Models/Components/OrganizationSettings.md @@ -15,5 +15,7 @@ Success | `CreatorRole` | *string* | :heavy_check_mark: | The role key that a user will be assigned after creating an organization. | admin | | `AdminDeleteEnabled` | *bool* | :heavy_check_mark: | The default for whether an admin can delete an organization with the Frontend API. | true | | `DomainsEnabled` | *bool* | :heavy_check_mark: | N/A | true | +| `SlugDisabled` | *bool* | :heavy_minus_sign: | N/A | | | `DomainsEnrollmentModes` | List<[DomainsEnrollmentModes](../../Models/Components/DomainsEnrollmentModes.md)> | :heavy_check_mark: | N/A | [
"automatic_invitation",
"automatic_suggestion"
] | -| `DomainsDefaultRole` | *string* | :heavy_check_mark: | The role key that it will be used in order to create an organization invitation or suggestion. | member | \ No newline at end of file +| `DomainsDefaultRole` | *string* | :heavy_check_mark: | The role key that it will be used in order to create an organization invitation or suggestion. | member | +| `InitialRoleSetKey` | *string* | :heavy_minus_sign: | The role set key that it will be used to create new organizations. | | \ No newline at end of file diff --git a/docs/Models/Components/PaginatedBillingPaymentAttemptResponse.md b/docs/Models/Components/PaginatedBillingPaymentAttemptResponse.md new file mode 100644 index 00000000..febdac90 --- /dev/null +++ b/docs/Models/Components/PaginatedBillingPaymentAttemptResponse.md @@ -0,0 +1,11 @@ +# PaginatedBillingPaymentAttemptResponse + +A list of billing payment attempts. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | +| `Data` | List<[BillingPaymentAttempt](../../Models/Components/BillingPaymentAttempt.md)> | :heavy_check_mark: | Array of billing payment attempts. | +| `TotalCount` | *long* | :heavy_check_mark: | Total number of billing payment attempts. | \ No newline at end of file diff --git a/docs/Models/Components/PaginatedBillingStatementResponse.md b/docs/Models/Components/PaginatedBillingStatementResponse.md new file mode 100644 index 00000000..e1f28b63 --- /dev/null +++ b/docs/Models/Components/PaginatedBillingStatementResponse.md @@ -0,0 +1,11 @@ +# PaginatedBillingStatementResponse + +A list of billing statements. + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | +| `Data` | List<[BillingStatement](../../Models/Components/BillingStatement.md)> | :heavy_check_mark: | Array of billing statements. | +| `TotalCount` | *long* | :heavy_check_mark: | Total number of billing statements. | \ No newline at end of file diff --git a/docs/Models/Components/PaginatedCommercePlanResponse.md b/docs/Models/Components/PaginatedCommercePlanResponse.md index 6e27565a..ffeed304 100644 --- a/docs/Models/Components/PaginatedCommercePlanResponse.md +++ b/docs/Models/Components/PaginatedCommercePlanResponse.md @@ -7,5 +7,5 @@ A list of commerce plans. | Field | Type | Required | Description | | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | -| `Data` | List<[CommercePlan](../../Models/Components/CommercePlan.md)> | :heavy_check_mark: | Array of commerce plans. | -| `TotalCount` | *long* | :heavy_check_mark: | Total number of commerce plans. | \ No newline at end of file +| `Data` | List<[CommercePlan](../../Models/Components/CommercePlan.md)> | :heavy_check_mark: | Array of plans. | +| `TotalCount` | *long* | :heavy_check_mark: | Total number of plans. | \ No newline at end of file diff --git a/docs/Models/Components/PaginatedCommerceSubscriptionItemResponse.md b/docs/Models/Components/PaginatedCommerceSubscriptionItemResponse.md index dc7385d2..38b532bd 100644 --- a/docs/Models/Components/PaginatedCommerceSubscriptionItemResponse.md +++ b/docs/Models/Components/PaginatedCommerceSubscriptionItemResponse.md @@ -7,5 +7,5 @@ A list of commerce subscription items. | Field | Type | Required | Description | | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | -| `Data` | List<[CommerceSubscriptionItem](../../Models/Components/CommerceSubscriptionItem.md)> | :heavy_check_mark: | Array of commerce subscription items. | -| `TotalCount` | *long* | :heavy_check_mark: | Total number of commerce subscription items. | \ No newline at end of file +| `Data` | List<[CommerceSubscriptionItem](../../Models/Components/CommerceSubscriptionItem.md)> | :heavy_check_mark: | Array of subscription items. | +| `TotalCount` | *long* | :heavy_check_mark: | Total number of subscription items. | \ No newline at end of file diff --git a/docs/Models/Components/Payee.md b/docs/Models/Components/Payee.md new file mode 100644 index 00000000..9da56253 --- /dev/null +++ b/docs/Models/Components/Payee.md @@ -0,0 +1,9 @@ +# Payee + +The payee associated with this payment attempt. + + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/Models/Components/Payer.md b/docs/Models/Components/Payer.md index 43de8078..fadd5e35 100644 --- a/docs/Models/Components/Payer.md +++ b/docs/Models/Components/Payer.md @@ -5,17 +5,17 @@ The payer associated with this subscription. ## Fields -| Field | Type | Required | Description | -| ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | -| `Object` | [CommerceSubscriptionItemPayerObject](../../Models/Components/CommerceSubscriptionItemPayerObject.md) | :heavy_check_mark: | String representing the object's type. Objects of the same type share the same value. | -| `Id` | *string* | :heavy_check_mark: | Unique identifier for the payer. | -| `InstanceId` | *string* | :heavy_check_mark: | Unique identifier for the Clerk instance. | -| `UserId` | *string* | :heavy_minus_sign: | User ID for user-type payers. | -| `FirstName` | *string* | :heavy_check_mark: | First name of the payer. | -| `LastName` | *string* | :heavy_check_mark: | Last name of the payer. | -| `Email` | *string* | :heavy_check_mark: | Email address of the payer. | -| `OrganizationId` | *string* | :heavy_minus_sign: | Organization ID for org-type payers. | -| `OrganizationName` | *string* | :heavy_minus_sign: | Organization name for org-type payers. | -| `ImageUrl` | *string* | :heavy_check_mark: | URL of the payer's image/avatar. | -| `CreatedAt` | *long* | :heavy_check_mark: | Unix timestamp (in milliseconds) when the payer was created. | -| `UpdatedAt` | *long* | :heavy_check_mark: | Unix timestamp (in milliseconds) when the payer was last updated. | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | +| `Object` | [SchemasCommerceSubscriptionItemPayerObject](../../Models/Components/SchemasCommerceSubscriptionItemPayerObject.md) | :heavy_check_mark: | String representing the object's type. Objects of the same type share the same value. | +| `Id` | *string* | :heavy_check_mark: | Unique identifier for the payer. | +| `InstanceId` | *string* | :heavy_check_mark: | Unique identifier for the Clerk instance. | +| `UserId` | *string* | :heavy_minus_sign: | User ID for user-type payers. | +| `FirstName` | *string* | :heavy_check_mark: | First name of the payer. | +| `LastName` | *string* | :heavy_check_mark: | Last name of the payer. | +| `Email` | *string* | :heavy_check_mark: | Email address of the payer. | +| `OrganizationId` | *string* | :heavy_minus_sign: | Organization ID for org-type payers. | +| `OrganizationName` | *string* | :heavy_minus_sign: | Organization name for org-type payers. | +| `ImageUrl` | *string* | :heavy_check_mark: | URL of the payer's image/avatar. | +| `CreatedAt` | *long* | :heavy_check_mark: | Unix timestamp (in milliseconds) when the payer was created. | +| `UpdatedAt` | *long* | :heavy_check_mark: | Unix timestamp (in milliseconds) when the payer was last updated. | \ No newline at end of file diff --git a/docs/Models/Components/PaymentSource.md b/docs/Models/Components/PaymentSource.md index 34407ebb..d3ef1c92 100644 --- a/docs/Models/Components/PaymentSource.md +++ b/docs/Models/Components/PaymentSource.md @@ -5,22 +5,22 @@ The payment source associated with this subscription. ## Fields -| Field | Type | Required | Description | -| --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | -| `Object` | [CommerceSubscriptionItemPaymentSourceObject](../../Models/Components/CommerceSubscriptionItemPaymentSourceObject.md) | :heavy_check_mark: | String representing the object's type. Objects of the same type share the same value. | -| `Id` | *string* | :heavy_check_mark: | Unique identifier for the payment source. | -| `PayerId` | *string* | :heavy_check_mark: | Unique identifier for the payer. | -| `PaymentMethod` | [PaymentMethod](../../Models/Components/PaymentMethod.md) | :heavy_check_mark: | The payment method type. | -| `IsDefault` | *bool* | :heavy_minus_sign: | Whether this is the default payment source for the payer. | -| `Gateway` | *string* | :heavy_check_mark: | The payment gateway. | -| `GatewayExternalId` | *string* | :heavy_check_mark: | External ID in the payment gateway. | -| `GatewayExternalAccountId` | *string* | :heavy_minus_sign: | External account ID in the payment gateway. | -| `Last4` | *string* | :heavy_check_mark: | Last 4 digits of the card (for card payment sources). | -| `Status` | [CommerceSubscriptionItemPaymentSourceStatus](../../Models/Components/CommerceSubscriptionItemPaymentSourceStatus.md) | :heavy_check_mark: | Status of the payment source. | -| `WalletType` | *string* | :heavy_check_mark: | Type of wallet (if applicable). | -| `CardType` | *string* | :heavy_check_mark: | Type of card (if applicable). | -| `ExpiryYear` | *long* | :heavy_minus_sign: | Card expiration year (for card payment sources). | -| `ExpiryMonth` | *long* | :heavy_minus_sign: | Card expiration month (for card payment sources). | -| `CreatedAt` | *long* | :heavy_check_mark: | Unix timestamp (in milliseconds) when the payment source was created. | -| `UpdatedAt` | *long* | :heavy_check_mark: | Unix timestamp (in milliseconds) when the payment source was last updated. | -| `IsRemovable` | *bool* | :heavy_minus_sign: | Whether this payment source can be removed. | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | +| `Object` | [SchemasCommerceSubscriptionItemPaymentSourceObject](../../Models/Components/SchemasCommerceSubscriptionItemPaymentSourceObject.md) | :heavy_check_mark: | String representing the object's type. Objects of the same type share the same value. | +| `Id` | *string* | :heavy_check_mark: | Unique identifier for the payment source. | +| `PayerId` | *string* | :heavy_check_mark: | Unique identifier for the payer. | +| `PaymentMethod` | [PaymentMethod](../../Models/Components/PaymentMethod.md) | :heavy_check_mark: | The payment method type. | +| `IsDefault` | *bool* | :heavy_minus_sign: | Whether this is the default payment source for the payer. | +| `Gateway` | *string* | :heavy_check_mark: | The payment gateway. | +| `GatewayExternalId` | *string* | :heavy_check_mark: | External ID in the payment gateway. | +| `GatewayExternalAccountId` | *string* | :heavy_minus_sign: | External account ID in the payment gateway. | +| `Last4` | *string* | :heavy_check_mark: | Last 4 digits of the card (for card payment sources). | +| `Status` | [SchemasCommerceSubscriptionItemPaymentSourceStatus](../../Models/Components/SchemasCommerceSubscriptionItemPaymentSourceStatus.md) | :heavy_check_mark: | Status of the payment source. | +| `WalletType` | *string* | :heavy_check_mark: | Type of wallet (if applicable). | +| `CardType` | *string* | :heavy_check_mark: | Type of card (if applicable). | +| `ExpiryYear` | *long* | :heavy_minus_sign: | Card expiration year (for card payment sources). | +| `ExpiryMonth` | *long* | :heavy_minus_sign: | Card expiration month (for card payment sources). | +| `CreatedAt` | *long* | :heavy_check_mark: | Unix timestamp (in milliseconds) when the payment source was created. | +| `UpdatedAt` | *long* | :heavy_check_mark: | Unix timestamp (in milliseconds) when the payment source was last updated. | +| `IsRemovable` | *bool* | :heavy_minus_sign: | Whether this payment source can be removed. | \ No newline at end of file diff --git a/docs/Models/Components/PaymentType.md b/docs/Models/Components/PaymentType.md new file mode 100644 index 00000000..4c56e28a --- /dev/null +++ b/docs/Models/Components/PaymentType.md @@ -0,0 +1,11 @@ +# PaymentType + +The payment method type. + + +## Values + +| Name | Value | +| ------ | ------ | +| `Card` | card | +| `Link` | link | \ No newline at end of file diff --git a/docs/Models/Components/Plan.md b/docs/Models/Components/Plan.md index 2f09e300..7443299a 100644 --- a/docs/Models/Components/Plan.md +++ b/docs/Models/Components/Plan.md @@ -1,38 +1,27 @@ # Plan -The associated commerce plan. +The associated plan. ## Fields -| Field | Type | Required | Description | -| --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | -| `Object` | [CommerceSubscriptionItemPlanObject](../../Models/Components/CommerceSubscriptionItemPlanObject.md) | :heavy_check_mark: | String representing the object's type. Objects of the same type share the same value. | -| `Id` | *string* | :heavy_check_mark: | Unique identifier for the commerce plan. | -| `Name` | *string* | :heavy_check_mark: | The name of the commerce plan. | -| `Fee` | [CommerceMoneyResponse](../../Models/Components/CommerceMoneyResponse.md) | :heavy_check_mark: | N/A | -| `AnnualMonthlyFee` | [CommerceMoneyResponse](../../Models/Components/CommerceMoneyResponse.md) | :heavy_check_mark: | N/A | -| `AnnualFee` | [CommerceMoneyResponse](../../Models/Components/CommerceMoneyResponse.md) | :heavy_check_mark: | N/A | -| `Amount` | *long* | :heavy_check_mark: | The amount in cents for the plan. | -| `AmountFormatted` | *string* | :heavy_check_mark: | The formatted amount as a string (e.g., "$49.99"). | -| `AnnualMonthlyAmount` | *long* | :heavy_check_mark: | The monthly amount in cents when billed annually. | -| `AnnualMonthlyAmountFormatted` | *string* | :heavy_check_mark: | The formatted annual monthly amount as a string. | -| `AnnualAmount` | *long* | :heavy_check_mark: | The total annual amount in cents. | -| `AnnualAmountFormatted` | *string* | :heavy_check_mark: | The formatted annual amount as a string. | -| `CurrencySymbol` | *string* | :heavy_check_mark: | The currency symbol (e.g., "$"). | -| `Currency` | *string* | :heavy_check_mark: | The currency code (e.g., "USD"). | -| `Description` | *string* | :heavy_check_mark: | The description of the commerce plan. | -| `ProductId` | *string* | :heavy_check_mark: | The ID of the product this plan belongs to. | -| `IsDefault` | *bool* | :heavy_check_mark: | Whether this is the default plan. | -| `IsRecurring` | *bool* | :heavy_check_mark: | Whether this is a recurring plan. | -| `PubliclyVisible` | *bool* | :heavy_check_mark: | Whether this plan is publicly visible. | -| `HasBaseFee` | *bool* | :heavy_check_mark: | Whether this plan has a base fee. | -| `PayerType` | List<*string*> | :heavy_check_mark: | The types of payers that can use this plan. | -| `ForPayerType` | *string* | :heavy_check_mark: | The payer type this plan is designed for. | -| `Slug` | *string* | :heavy_check_mark: | The URL-friendly slug for the plan. | -| `AvatarUrl` | *string* | :heavy_check_mark: | The URL of the plan's avatar image. | -| `Period` | *string* | :heavy_minus_sign: | The billing period for the plan. | -| `Interval` | *long* | :heavy_minus_sign: | The billing interval. | -| `Features` | List<[FeatureResponse](../../Models/Components/FeatureResponse.md)> | :heavy_check_mark: | The features included in this plan. | -| `FreeTrialEnabled` | *bool* | :heavy_minus_sign: | Whether free trial is enabled for this plan. | -| `FreeTrialDays` | *long* | :heavy_minus_sign: | Number of free trial days for this plan. | \ No newline at end of file +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | +| `Object` | [CommerceSubscriptionItemPlanObject](../../Models/Components/CommerceSubscriptionItemPlanObject.md) | :heavy_check_mark: | String representing the object's type. Objects of the same type share the same value. | +| `Id` | *string* | :heavy_check_mark: | Unique identifier for the plan. | +| `Name` | *string* | :heavy_check_mark: | The name of the plan. | +| `Fee` | [CommerceMoneyResponse](../../Models/Components/CommerceMoneyResponse.md) | :heavy_check_mark: | N/A | +| `AnnualMonthlyFee` | [CommerceSubscriptionItemAnnualMonthlyFee](../../Models/Components/CommerceSubscriptionItemAnnualMonthlyFee.md) | :heavy_check_mark: | N/A | +| `AnnualFee` | [CommerceSubscriptionItemAnnualFee](../../Models/Components/CommerceSubscriptionItemAnnualFee.md) | :heavy_check_mark: | N/A | +| `Description` | *string* | :heavy_check_mark: | The description of the plan. | +| `ProductId` | *string* | :heavy_check_mark: | The ID of the product this plan belongs to. | +| `IsDefault` | *bool* | :heavy_check_mark: | Whether this is the default plan. | +| `IsRecurring` | *bool* | :heavy_check_mark: | Whether this is a recurring plan. | +| `PubliclyVisible` | *bool* | :heavy_check_mark: | Whether this plan is publicly visible. | +| `HasBaseFee` | *bool* | :heavy_check_mark: | Whether this plan has a base fee. | +| `ForPayerType` | *string* | :heavy_check_mark: | The payer type this plan is designed for. | +| `Slug` | *string* | :heavy_check_mark: | The URL-friendly slug for the plan. | +| `AvatarUrl` | *string* | :heavy_check_mark: | The URL of the plan's avatar image. | +| `Features` | List<[FeatureResponse](../../Models/Components/FeatureResponse.md)> | :heavy_minus_sign: | The features included in this plan. | +| `FreeTrialEnabled` | *bool* | :heavy_check_mark: | Whether free trial is enabled for this plan. | +| `FreeTrialDays` | *long* | :heavy_check_mark: | Number of free trial days for this plan. | \ No newline at end of file diff --git a/docs/Models/Components/PlanPeriod.md b/docs/Models/Components/PlanPeriod.md index 2ae1a1a7..5b67c272 100644 --- a/docs/Models/Components/PlanPeriod.md +++ b/docs/Models/Components/PlanPeriod.md @@ -1,6 +1,6 @@ # PlanPeriod -The billing period for this subscription. +The billing period for this subscription item. ## Values diff --git a/docs/Models/Components/SAMLAccount.md b/docs/Models/Components/SAMLAccount.md index d267f640..aa8fc6f3 100644 --- a/docs/Models/Components/SAMLAccount.md +++ b/docs/Models/Components/SAMLAccount.md @@ -13,6 +13,7 @@ | `FirstName` | *string* | :heavy_minus_sign: | N/A | John | | `LastName` | *string* | :heavy_minus_sign: | N/A | Doe | | `ProviderUserId` | *string* | :heavy_minus_sign: | N/A | prov_user_id_123 | +| `LastAuthenticatedAt` | *long* | :heavy_minus_sign: | Unix timestamp of last authentication.
| | | `PublicMetadata` | Dictionary | :heavy_minus_sign: | N/A | {
"department": "IT"
} | | `Verification` | [SAMLAccountVerification](../../Models/Components/SAMLAccountVerification.md) | :heavy_check_mark: | N/A | {
"status": "verified",
"strategy": "saml",
"external_verification_redirect_url": "https://example.com/saml_callback"
} | | `SamlConnection` | [SamlConnection](../../Models/Components/SamlConnection.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Components/SchemasCommerceSubscriptionItem.md b/docs/Models/Components/SchemasCommerceSubscriptionItem.md new file mode 100644 index 00000000..e4b41731 --- /dev/null +++ b/docs/Models/Components/SchemasCommerceSubscriptionItem.md @@ -0,0 +1,34 @@ +# SchemasCommerceSubscriptionItem + +A commerce subscription item. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | +| `Object` | [SchemasCommerceSubscriptionItemObject](../../Models/Components/SchemasCommerceSubscriptionItemObject.md) | :heavy_check_mark: | String representing the object's type. Objects of the same type share the same value. | +| `Id` | *string* | :heavy_check_mark: | Unique identifier for the subscription item. | +| `InstanceId` | *string* | :heavy_check_mark: | Unique identifier for the Clerk instance. | +| `Status` | [SchemasCommerceSubscriptionItemStatus](../../Models/Components/SchemasCommerceSubscriptionItemStatus.md) | :heavy_check_mark: | Current status of the subscription item. | +| `Credit` | [Credit](../../Models/Components/Credit.md) | :heavy_minus_sign: | Credit information (only available in PaymentAttempt events). | +| `PlanId` | *string* | :heavy_check_mark: | Unique identifier for the associated plan. | +| `Plan` | [SchemasCommerceSubscriptionItemPlan](../../Models/Components/SchemasCommerceSubscriptionItemPlan.md) | :heavy_check_mark: | The associated commerce plan. | +| `PlanPeriod` | [SchemasCommerceSubscriptionItemPlanPeriod](../../Models/Components/SchemasCommerceSubscriptionItemPlanPeriod.md) | :heavy_check_mark: | The billing period for this subscription. | +| `PaymentSourceId` | *string* | :heavy_check_mark: | Unique identifier for the payment source. | +| `PaymentSource` | [PaymentSource](../../Models/Components/PaymentSource.md) | :heavy_minus_sign: | The payment source associated with this subscription. | +| `LifetimePaid` | [LifetimePaid](../../Models/Components/LifetimePaid.md) | :heavy_minus_sign: | Total amount paid over the lifetime of this subscription. | +| `Amount` | [SchemasCommerceSubscriptionItemAmount](../../Models/Components/SchemasCommerceSubscriptionItemAmount.md) | :heavy_minus_sign: | Current amount for this subscription. | +| `NextInvoice` | [NextInvoice](../../Models/Components/NextInvoice.md) | :heavy_minus_sign: | Information about the next invoice. | +| `NextPayment` | [SchemasCommerceSubscriptionItemNextPayment](../../Models/Components/SchemasCommerceSubscriptionItemNextPayment.md) | :heavy_minus_sign: | Information about the next payment. | +| `PayerId` | *string* | :heavy_check_mark: | Unique identifier for the payer. | +| `Payer` | [Payer](../../Models/Components/Payer.md) | :heavy_minus_sign: | The payer associated with this subscription. | +| `IsFreeTrial` | *bool* | :heavy_check_mark: | Whether this subscription is currently on a free trial. | +| `PeriodStart` | *long* | :heavy_minus_sign: | Unix timestamp (in milliseconds) when the current period started. | +| `PeriodEnd` | *long* | :heavy_minus_sign: | Unix timestamp (in milliseconds) when the current period ends. | +| `ProrationDate` | *string* | :heavy_check_mark: | Date used for proration calculations. | +| `CanceledAt` | *long* | :heavy_minus_sign: | Unix timestamp (in milliseconds) when the subscription was canceled. | +| `PastDueAt` | *long* | :heavy_minus_sign: | Unix timestamp (in milliseconds) when the subscription became past due. | +| `EndedAt` | *long* | :heavy_minus_sign: | Unix timestamp (in milliseconds) when the subscription ended. | +| `CreatedAt` | *long* | :heavy_check_mark: | Unix timestamp (in milliseconds) when the subscription was created. | +| `UpdatedAt` | *long* | :heavy_check_mark: | Unix timestamp (in milliseconds) when the subscription was last updated. | \ No newline at end of file diff --git a/docs/Models/Components/SchemasCommerceSubscriptionItemAmount.md b/docs/Models/Components/SchemasCommerceSubscriptionItemAmount.md new file mode 100644 index 00000000..d5a4d1d5 --- /dev/null +++ b/docs/Models/Components/SchemasCommerceSubscriptionItemAmount.md @@ -0,0 +1,13 @@ +# SchemasCommerceSubscriptionItemAmount + +Current amount for this subscription. + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `Amount` | *long* | :heavy_check_mark: | The amount in cents. | +| `AmountFormatted` | *string* | :heavy_check_mark: | The formatted amount as a string (e.g., "$49.99"). | +| `Currency` | *string* | :heavy_check_mark: | The currency code (e.g., "USD"). | +| `CurrencySymbol` | *string* | :heavy_check_mark: | The currency symbol (e.g., "$"). | \ No newline at end of file diff --git a/docs/Models/Components/SchemasCommerceSubscriptionItemCreditAmount.md b/docs/Models/Components/SchemasCommerceSubscriptionItemCreditAmount.md new file mode 100644 index 00000000..e74be4b4 --- /dev/null +++ b/docs/Models/Components/SchemasCommerceSubscriptionItemCreditAmount.md @@ -0,0 +1,13 @@ +# SchemasCommerceSubscriptionItemCreditAmount + +Credit amount. + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `Amount` | *long* | :heavy_check_mark: | The amount in cents. | +| `AmountFormatted` | *string* | :heavy_check_mark: | The formatted amount as a string (e.g., "$49.99"). | +| `Currency` | *string* | :heavy_check_mark: | The currency code (e.g., "USD"). | +| `CurrencySymbol` | *string* | :heavy_check_mark: | The currency symbol (e.g., "$"). | \ No newline at end of file diff --git a/docs/Models/Components/CommerceSubscriptionItemNextInvoiceAmount.md b/docs/Models/Components/SchemasCommerceSubscriptionItemNextInvoiceAmount.md similarity index 96% rename from docs/Models/Components/CommerceSubscriptionItemNextInvoiceAmount.md rename to docs/Models/Components/SchemasCommerceSubscriptionItemNextInvoiceAmount.md index 7a95129b..e90b9445 100644 --- a/docs/Models/Components/CommerceSubscriptionItemNextInvoiceAmount.md +++ b/docs/Models/Components/SchemasCommerceSubscriptionItemNextInvoiceAmount.md @@ -1,4 +1,4 @@ -# CommerceSubscriptionItemNextInvoiceAmount +# SchemasCommerceSubscriptionItemNextInvoiceAmount Amount for the next payment. diff --git a/docs/Models/Components/SchemasCommerceSubscriptionItemNextPayment.md b/docs/Models/Components/SchemasCommerceSubscriptionItemNextPayment.md new file mode 100644 index 00000000..c142080f --- /dev/null +++ b/docs/Models/Components/SchemasCommerceSubscriptionItemNextPayment.md @@ -0,0 +1,11 @@ +# SchemasCommerceSubscriptionItemNextPayment + +Information about the next payment. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| `Amount` | [SchemasCommerceSubscriptionItemNextPaymentAmount](../../Models/Components/SchemasCommerceSubscriptionItemNextPaymentAmount.md) | :heavy_minus_sign: | Amount for the next payment. | +| `Date` | *long* | :heavy_minus_sign: | Unix timestamp (in milliseconds) for the next payment date. | \ No newline at end of file diff --git a/docs/Models/Components/CommerceSubscriptionItemNextPaymentAmount.md b/docs/Models/Components/SchemasCommerceSubscriptionItemNextPaymentAmount.md similarity index 96% rename from docs/Models/Components/CommerceSubscriptionItemNextPaymentAmount.md rename to docs/Models/Components/SchemasCommerceSubscriptionItemNextPaymentAmount.md index 9a1a8ac5..f366a94c 100644 --- a/docs/Models/Components/CommerceSubscriptionItemNextPaymentAmount.md +++ b/docs/Models/Components/SchemasCommerceSubscriptionItemNextPaymentAmount.md @@ -1,4 +1,4 @@ -# CommerceSubscriptionItemNextPaymentAmount +# SchemasCommerceSubscriptionItemNextPaymentAmount Amount for the next payment. diff --git a/docs/Models/Components/SchemasCommerceSubscriptionItemObject.md b/docs/Models/Components/SchemasCommerceSubscriptionItemObject.md new file mode 100644 index 00000000..f73bfc68 --- /dev/null +++ b/docs/Models/Components/SchemasCommerceSubscriptionItemObject.md @@ -0,0 +1,10 @@ +# SchemasCommerceSubscriptionItemObject + +String representing the object's type. Objects of the same type share the same value. + + +## Values + +| Name | Value | +| -------------------------- | -------------------------- | +| `CommerceSubscriptionItem` | commerce_subscription_item | \ No newline at end of file diff --git a/docs/Models/Components/SchemasCommerceSubscriptionItemPayerObject.md b/docs/Models/Components/SchemasCommerceSubscriptionItemPayerObject.md new file mode 100644 index 00000000..90b02854 --- /dev/null +++ b/docs/Models/Components/SchemasCommerceSubscriptionItemPayerObject.md @@ -0,0 +1,10 @@ +# SchemasCommerceSubscriptionItemPayerObject + +String representing the object's type. Objects of the same type share the same value. + + +## Values + +| Name | Value | +| --------------- | --------------- | +| `CommercePayer` | commerce_payer | \ No newline at end of file diff --git a/docs/Models/Components/CommerceSubscriptionItemPaymentSourceObject.md b/docs/Models/Components/SchemasCommerceSubscriptionItemPaymentSourceObject.md similarity index 80% rename from docs/Models/Components/CommerceSubscriptionItemPaymentSourceObject.md rename to docs/Models/Components/SchemasCommerceSubscriptionItemPaymentSourceObject.md index b16446ac..c6150484 100644 --- a/docs/Models/Components/CommerceSubscriptionItemPaymentSourceObject.md +++ b/docs/Models/Components/SchemasCommerceSubscriptionItemPaymentSourceObject.md @@ -1,4 +1,4 @@ -# CommerceSubscriptionItemPaymentSourceObject +# SchemasCommerceSubscriptionItemPaymentSourceObject String representing the object's type. Objects of the same type share the same value. diff --git a/docs/Models/Components/CommerceSubscriptionItemPaymentSourceStatus.md b/docs/Models/Components/SchemasCommerceSubscriptionItemPaymentSourceStatus.md similarity index 77% rename from docs/Models/Components/CommerceSubscriptionItemPaymentSourceStatus.md rename to docs/Models/Components/SchemasCommerceSubscriptionItemPaymentSourceStatus.md index aa298d1a..801142e0 100644 --- a/docs/Models/Components/CommerceSubscriptionItemPaymentSourceStatus.md +++ b/docs/Models/Components/SchemasCommerceSubscriptionItemPaymentSourceStatus.md @@ -1,4 +1,4 @@ -# CommerceSubscriptionItemPaymentSourceStatus +# SchemasCommerceSubscriptionItemPaymentSourceStatus Status of the payment source. diff --git a/docs/Models/Components/SchemasCommerceSubscriptionItemPlan.md b/docs/Models/Components/SchemasCommerceSubscriptionItemPlan.md new file mode 100644 index 00000000..8a219621 --- /dev/null +++ b/docs/Models/Components/SchemasCommerceSubscriptionItemPlan.md @@ -0,0 +1,38 @@ +# SchemasCommerceSubscriptionItemPlan + +The associated commerce plan. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | +| `Object` | [SchemasCommerceSubscriptionItemPlanObject](../../Models/Components/SchemasCommerceSubscriptionItemPlanObject.md) | :heavy_check_mark: | String representing the object's type. Objects of the same type share the same value. | +| `Id` | *string* | :heavy_check_mark: | Unique identifier for the commerce plan. | +| `Name` | *string* | :heavy_check_mark: | The name of the commerce plan. | +| `Fee` | [CommerceMoneyResponse](../../Models/Components/CommerceMoneyResponse.md) | :heavy_check_mark: | N/A | +| `AnnualMonthlyFee` | [CommerceMoneyResponse](../../Models/Components/CommerceMoneyResponse.md) | :heavy_check_mark: | N/A | +| `AnnualFee` | [CommerceMoneyResponse](../../Models/Components/CommerceMoneyResponse.md) | :heavy_check_mark: | N/A | +| `Amount` | *long* | :heavy_check_mark: | The amount in cents for the plan. | +| `AmountFormatted` | *string* | :heavy_check_mark: | The formatted amount as a string (e.g., "$49.99"). | +| `AnnualMonthlyAmount` | *long* | :heavy_check_mark: | The monthly amount in cents when billed annually. | +| `AnnualMonthlyAmountFormatted` | *string* | :heavy_check_mark: | The formatted annual monthly amount as a string. | +| `AnnualAmount` | *long* | :heavy_check_mark: | The total annual amount in cents. | +| `AnnualAmountFormatted` | *string* | :heavy_check_mark: | The formatted annual amount as a string. | +| `CurrencySymbol` | *string* | :heavy_check_mark: | The currency symbol (e.g., "$"). | +| `Currency` | *string* | :heavy_check_mark: | The currency code (e.g., "USD"). | +| `Description` | *string* | :heavy_check_mark: | The description of the commerce plan. | +| `ProductId` | *string* | :heavy_check_mark: | The ID of the product this plan belongs to. | +| `IsDefault` | *bool* | :heavy_check_mark: | Whether this is the default plan. | +| `IsRecurring` | *bool* | :heavy_check_mark: | Whether this is a recurring plan. | +| `PubliclyVisible` | *bool* | :heavy_check_mark: | Whether this plan is publicly visible. | +| `HasBaseFee` | *bool* | :heavy_check_mark: | Whether this plan has a base fee. | +| `PayerType` | List<*string*> | :heavy_check_mark: | The types of payers that can use this plan. | +| `ForPayerType` | *string* | :heavy_check_mark: | The payer type this plan is designed for. | +| `Slug` | *string* | :heavy_check_mark: | The URL-friendly slug for the plan. | +| `AvatarUrl` | *string* | :heavy_check_mark: | The URL of the plan's avatar image. | +| `Period` | *string* | :heavy_minus_sign: | The billing period for the plan. | +| `Interval` | *long* | :heavy_minus_sign: | The billing interval. | +| `Features` | List<[FeatureResponse](../../Models/Components/FeatureResponse.md)> | :heavy_check_mark: | The features included in this plan. | +| `FreeTrialEnabled` | *bool* | :heavy_minus_sign: | Whether free trial is enabled for this plan. | +| `FreeTrialDays` | *long* | :heavy_minus_sign: | Number of free trial days for this plan. | \ No newline at end of file diff --git a/docs/Models/Components/SchemasCommerceSubscriptionItemPlanObject.md b/docs/Models/Components/SchemasCommerceSubscriptionItemPlanObject.md new file mode 100644 index 00000000..c0c15c0b --- /dev/null +++ b/docs/Models/Components/SchemasCommerceSubscriptionItemPlanObject.md @@ -0,0 +1,10 @@ +# SchemasCommerceSubscriptionItemPlanObject + +String representing the object's type. Objects of the same type share the same value. + + +## Values + +| Name | Value | +| -------------- | -------------- | +| `CommercePlan` | commerce_plan | \ No newline at end of file diff --git a/docs/Models/Components/SchemasCommerceSubscriptionItemPlanPeriod.md b/docs/Models/Components/SchemasCommerceSubscriptionItemPlanPeriod.md new file mode 100644 index 00000000..3a4b5dfa --- /dev/null +++ b/docs/Models/Components/SchemasCommerceSubscriptionItemPlanPeriod.md @@ -0,0 +1,11 @@ +# SchemasCommerceSubscriptionItemPlanPeriod + +The billing period for this subscription. + + +## Values + +| Name | Value | +| -------- | -------- | +| `Month` | month | +| `Annual` | annual | \ No newline at end of file diff --git a/docs/Models/Components/SchemasCommerceSubscriptionItemStatus.md b/docs/Models/Components/SchemasCommerceSubscriptionItemStatus.md new file mode 100644 index 00000000..1e005bd7 --- /dev/null +++ b/docs/Models/Components/SchemasCommerceSubscriptionItemStatus.md @@ -0,0 +1,15 @@ +# SchemasCommerceSubscriptionItemStatus + +Current status of the subscription item. + + +## Values + +| Name | Value | +| ------------ | ------------ | +| `Active` | active | +| `Ended` | ended | +| `PastDue` | past_due | +| `Upcoming` | upcoming | +| `Incomplete` | incomplete | +| `Abandoned` | abandoned | \ No newline at end of file diff --git a/docs/Models/Components/SignUp.md b/docs/Models/Components/SignUp.md index 530e3efd..3cb225bf 100644 --- a/docs/Models/Components/SignUp.md +++ b/docs/Models/Components/SignUp.md @@ -30,4 +30,5 @@ Success | `CreatedUserId` | *string* | :heavy_check_mark: | N/A | user_1234567890abcdef | | `AbandonAt` | *long* | :heavy_check_mark: | Unix timestamp at which the user abandoned the sign up attempt.
| 1609459200 | | `LegalAcceptedAt` | *long* | :heavy_check_mark: | Unix timestamp at which the user accepted the legal requirements.
| 1700690400000 | +| `Locale` | *string* | :heavy_minus_sign: | The user locale preference for the sign-up specified as a BCP-47 language tag. | en-US | | ~~`ExternalAccount`~~ | [SignUpExternalAccount](../../Models/Components/SignUpExternalAccount.md) | :heavy_minus_sign: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible. | | \ No newline at end of file diff --git a/docs/Models/Components/SubscriptionItem.md b/docs/Models/Components/SubscriptionItem.md new file mode 100644 index 00000000..7ebd516e --- /dev/null +++ b/docs/Models/Components/SubscriptionItem.md @@ -0,0 +1,9 @@ +# SubscriptionItem + +The subscription item associated with this payment attempt. + + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/Models/Components/Template.md b/docs/Models/Components/Template.md index 9a891530..49397c79 100644 --- a/docs/Models/Components/Template.md +++ b/docs/Models/Components/Template.md @@ -9,7 +9,7 @@ Success | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | | `Id` | *string* | :heavy_minus_sign: | N/A | temp_12345 | | `Object` | [TemplateObject](../../Models/Components/TemplateObject.md) | :heavy_minus_sign: | String representing the object's type. Objects of the same type share the same value.
| template | -| `InstanceId` | *string* | :heavy_minus_sign: | The id of the instance to which this template belongs | inst_67890 | +| `InstanceId` | *string* | :heavy_minus_sign: | The ID of the instance to which the template belongs | inst_67890 | | `ResourceType` | *string* | :heavy_minus_sign: | whether this is a system (default) or user overridden) template | system | | `TemplateType` | *string* | :heavy_minus_sign: | whether this is an email or SMS template | email | | `Name` | *string* | :heavy_minus_sign: | user-friendly name of the template | Welcome Email | diff --git a/docs/Models/Components/Token.md b/docs/Models/Components/Token.md index 53e77866..9481ba46 100644 --- a/docs/Models/Components/Token.md +++ b/docs/Models/Components/Token.md @@ -6,4 +6,4 @@ | Field | Type | Required | Description | | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | | `Object` | [TokenObject](../../Models/Components/TokenObject.md) | :heavy_check_mark: | String representing the object's type. Objects of the same type share the same value.
| -| `Jwt` | *string* | :heavy_check_mark: | String representing the encoded jwt value.
| \ No newline at end of file +| `Jwt` | *string* | :heavy_check_mark: | String representing the encoded JSON Web Token (JWT) value.
| \ No newline at end of file diff --git a/docs/Models/Components/Totals.md b/docs/Models/Components/Totals.md new file mode 100644 index 00000000..92f77185 --- /dev/null +++ b/docs/Models/Components/Totals.md @@ -0,0 +1,12 @@ +# Totals + +Totals for the statement. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| `GrandTotal` | [CommerceMoneyResponse](../../Models/Components/CommerceMoneyResponse.md) | :heavy_check_mark: | N/A | +| `Subtotal` | [CommerceMoneyResponse](../../Models/Components/CommerceMoneyResponse.md) | :heavy_check_mark: | N/A | +| `TaxTotal` | [CommerceMoneyResponse](../../Models/Components/CommerceMoneyResponse.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/Models/Components/Two.md b/docs/Models/Components/Two.md index a0ecf11c..e3a7f05a 100644 --- a/docs/Models/Components/Two.md +++ b/docs/Models/Components/Two.md @@ -24,8 +24,9 @@ | `Provider` | *string* | :heavy_check_mark: | N/A | | `UserCount` | *long* | :heavy_check_mark: | N/A | | `SyncUserAttributes` | *bool* | :heavy_check_mark: | N/A | -| `AllowSubdomains` | *bool* | :heavy_minus_sign: | N/A | -| `AllowIdpInitiated` | *bool* | :heavy_minus_sign: | N/A | -| `DisableAdditionalIdentifications` | *bool* | :heavy_minus_sign: | N/A | +| `AllowSubdomains` | *bool* | :heavy_check_mark: | N/A | +| `AllowIdpInitiated` | *bool* | :heavy_check_mark: | N/A | +| `DisableAdditionalIdentifications` | *bool* | :heavy_check_mark: | N/A | +| `ForceAuthn` | *bool* | :heavy_check_mark: | Enable or deactivate ForceAuthn | | `CreatedAt` | *long* | :heavy_check_mark: | Unix timestamp of creation.
| | `UpdatedAt` | *long* | :heavy_check_mark: | Unix timestamp of last update.
| \ No newline at end of file diff --git a/docs/Models/Components/User.md b/docs/Models/Components/User.md index f907a211..2433eb05 100644 --- a/docs/Models/Components/User.md +++ b/docs/Models/Components/User.md @@ -16,6 +16,7 @@ Success | `Username` | *string* | :heavy_check_mark: | N/A | john_doe | | `FirstName` | *string* | :heavy_check_mark: | N/A | John | | `LastName` | *string* | :heavy_check_mark: | N/A | Doe | +| `Locale` | *string* | :heavy_minus_sign: | N/A | | | ~~`ProfileImageUrl`~~ | *string* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible. | https://example.com/profile.jpg | | `ImageUrl` | *string* | :heavy_minus_sign: | N/A | https://example.com/new-profile.jpg | | `HasImage` | *bool* | :heavy_check_mark: | N/A | true | diff --git a/docs/Models/Components/VerificationGoogleOneTapErrorClerkError.md b/docs/Models/Components/VerificationGoogleOneTapErrorClerkError.md index 97336b3a..7110b240 100644 --- a/docs/Models/Components/VerificationGoogleOneTapErrorClerkError.md +++ b/docs/Models/Components/VerificationGoogleOneTapErrorClerkError.md @@ -8,5 +8,4 @@ | `Message` | *string* | :heavy_check_mark: | N/A | Invalid input | | `LongMessage` | *string* | :heavy_check_mark: | N/A | The input provided does not meet the requirements. | | `Code` | *string* | :heavy_check_mark: | N/A | 400_bad_request | -| `Meta` | [ClerkErrorErrorExternalAccountWithVerificationVerificationMeta](../../Models/Components/ClerkErrorErrorExternalAccountWithVerificationVerificationMeta.md) | :heavy_minus_sign: | N/A | {} | -| `ClerkTraceId` | *string* | :heavy_minus_sign: | N/A | trace_123456789abcd | \ No newline at end of file +| `Meta` | [ClerkErrorErrorExternalAccountWithVerificationVerificationMeta](../../Models/Components/ClerkErrorErrorExternalAccountWithVerificationVerificationMeta.md) | :heavy_minus_sign: | N/A | {} | \ No newline at end of file diff --git a/docs/Models/Components/VerificationOauthErrorClerkError.md b/docs/Models/Components/VerificationOauthErrorClerkError.md index 26c4538a..12a6f060 100644 --- a/docs/Models/Components/VerificationOauthErrorClerkError.md +++ b/docs/Models/Components/VerificationOauthErrorClerkError.md @@ -8,5 +8,4 @@ | `Message` | *string* | :heavy_check_mark: | N/A | Invalid input | | `LongMessage` | *string* | :heavy_check_mark: | N/A | The input provided does not meet the requirements. | | `Code` | *string* | :heavy_check_mark: | N/A | 400_bad_request | -| `Meta` | [ClerkErrorErrorExternalAccountWithVerificationMeta](../../Models/Components/ClerkErrorErrorExternalAccountWithVerificationMeta.md) | :heavy_minus_sign: | N/A | {} | -| `ClerkTraceId` | *string* | :heavy_minus_sign: | N/A | trace_123456789abcd | \ No newline at end of file +| `Meta` | [ClerkErrorErrorExternalAccountWithVerificationMeta](../../Models/Components/ClerkErrorErrorExternalAccountWithVerificationMeta.md) | :heavy_minus_sign: | N/A | {} | \ No newline at end of file diff --git a/docs/Models/Components/VerificationSAMLErrorSAMLAccountClerkError.md b/docs/Models/Components/VerificationSAMLErrorSAMLAccountClerkError.md index a8f8c755..4e0acca2 100644 --- a/docs/Models/Components/VerificationSAMLErrorSAMLAccountClerkError.md +++ b/docs/Models/Components/VerificationSAMLErrorSAMLAccountClerkError.md @@ -8,5 +8,4 @@ | `Message` | *string* | :heavy_check_mark: | N/A | Invalid input | | `LongMessage` | *string* | :heavy_check_mark: | N/A | The input provided does not meet the requirements. | | `Code` | *string* | :heavy_check_mark: | N/A | 400_bad_request | -| `Meta` | [ClerkErrorErrorSAMLAccountMeta](../../Models/Components/ClerkErrorErrorSAMLAccountMeta.md) | :heavy_minus_sign: | N/A | {} | -| `ClerkTraceId` | *string* | :heavy_minus_sign: | N/A | trace_123456789abcd | \ No newline at end of file +| `Meta` | [ClerkErrorErrorSAMLAccountMeta](../../Models/Components/ClerkErrorErrorSAMLAccountMeta.md) | :heavy_minus_sign: | N/A | {} | \ No newline at end of file diff --git a/docs/Models/Components/VerificationSamlErrorClerkError.md b/docs/Models/Components/VerificationSamlErrorClerkError.md index 171e58ee..e5796046 100644 --- a/docs/Models/Components/VerificationSamlErrorClerkError.md +++ b/docs/Models/Components/VerificationSamlErrorClerkError.md @@ -8,5 +8,4 @@ | `Message` | *string* | :heavy_check_mark: | N/A | Invalid input | | `LongMessage` | *string* | :heavy_check_mark: | N/A | The input provided does not meet the requirements. | | `Code` | *string* | :heavy_check_mark: | N/A | 400_bad_request | -| `Meta` | [ClerkErrorErrorMeta](../../Models/Components/ClerkErrorErrorMeta.md) | :heavy_minus_sign: | N/A | {} | -| `ClerkTraceId` | *string* | :heavy_minus_sign: | N/A | trace_123456789abcd | \ No newline at end of file +| `Meta` | [ClerkErrorErrorMeta](../../Models/Components/ClerkErrorErrorMeta.md) | :heavy_minus_sign: | N/A | {} | \ No newline at end of file diff --git a/docs/Models/Operations/AttributeMapping.md b/docs/Models/Operations/AttributeMapping.md index 97464512..c1d248e7 100644 --- a/docs/Models/Operations/AttributeMapping.md +++ b/docs/Models/Operations/AttributeMapping.md @@ -1,6 +1,6 @@ # AttributeMapping -Define the atrtibute name mapping between Identity Provider and Clerk's user properties +Define the attribute name mapping between Identity Provider and Clerk's user properties ## Fields diff --git a/docs/Models/Operations/CompleteAccountlessApplicationResponse.md b/docs/Models/Operations/CompleteAccountlessApplicationResponse.md deleted file mode 100644 index 44527266..00000000 --- a/docs/Models/Operations/CompleteAccountlessApplicationResponse.md +++ /dev/null @@ -1,9 +0,0 @@ -# CompleteAccountlessApplicationResponse - - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | -| `HttpMeta` | [HTTPMetadata](../../Models/Components/HTTPMetadata.md) | :heavy_check_mark: | N/A | -| `AccountlessApplication` | [AccountlessApplication](../../Models/Components/AccountlessApplication.md) | :heavy_minus_sign: | Success | \ No newline at end of file diff --git a/docs/Models/Operations/CreateAccountlessApplicationResponse.md b/docs/Models/Operations/CreateAccountlessApplicationResponse.md deleted file mode 100644 index 3a1e3128..00000000 --- a/docs/Models/Operations/CreateAccountlessApplicationResponse.md +++ /dev/null @@ -1,9 +0,0 @@ -# CreateAccountlessApplicationResponse - - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | -| `HttpMeta` | [HTTPMetadata](../../Models/Components/HTTPMetadata.md) | :heavy_check_mark: | N/A | -| `AccountlessApplication` | [AccountlessApplication](../../Models/Components/AccountlessApplication.md) | :heavy_minus_sign: | Success | \ No newline at end of file diff --git a/docs/Models/Operations/CreateJWTTemplateRequestBody.md b/docs/Models/Operations/CreateJWTTemplateRequestBody.md index 3324fa01..1e634521 100644 --- a/docs/Models/Operations/CreateJWTTemplateRequestBody.md +++ b/docs/Models/Operations/CreateJWTTemplateRequestBody.md @@ -7,8 +7,8 @@ | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | | `Name` | *string* | :heavy_check_mark: | JWT template name | Example Template | | `Claims` | [Models.Operations.Claims](../../Models/Operations/Claims.md) | :heavy_check_mark: | JWT template claims in JSON format | {} | -| `Lifetime` | *long* | :heavy_minus_sign: | JWT token lifetime | 3600 | -| `AllowedClockSkew` | *long* | :heavy_minus_sign: | JWT token allowed clock skew | 5 | +| `Lifetime` | *long* | :heavy_minus_sign: | JWT lifetime | 3600 | +| `AllowedClockSkew` | *long* | :heavy_minus_sign: | JWT allowed clock skew | 5 | | `CustomSigningKey` | *bool* | :heavy_minus_sign: | Whether a custom signing key/algorithm is also provided for this template | false | | `SigningAlgorithm` | *string* | :heavy_minus_sign: | The custom signing algorithm to use when minting JWTs. Required if `custom_signing_key` is `true`. | RS256 | | `SigningKey` | *string* | :heavy_minus_sign: | The custom signing private key to use when minting JWTs. Required if `custom_signing_key` is `true`. | PRIVATE_KEY_PLACEHOLDER | \ No newline at end of file diff --git a/docs/Models/Operations/CreateOrganizationRequestBody.md b/docs/Models/Operations/CreateOrganizationRequestBody.md index d62ff1f3..4ea974c4 100644 --- a/docs/Models/Operations/CreateOrganizationRequestBody.md +++ b/docs/Models/Operations/CreateOrganizationRequestBody.md @@ -3,12 +3,12 @@ ## Fields -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -| `Name` | *string* | :heavy_check_mark: | The name of the new organization.
May not contain URLs or HTML.
Max length: 256 | NewOrg | -| `CreatedBy` | *string* | :heavy_minus_sign: | The ID of the User who will become the administrator for the new organization | user_123 | -| `PrivateMetadata` | Dictionary | :heavy_minus_sign: | Metadata saved on the organization, accessible only from the Backend API | {
"internal_code": "ABC123"
} | -| `PublicMetadata` | Dictionary | :heavy_minus_sign: | Metadata saved on the organization, read-only from the Frontend API and fully accessible (read/write) from the Backend API | {
"public_event": "Annual Summit"
} | -| `Slug` | *string* | :heavy_minus_sign: | A slug for the new organization.
Can contain only lowercase alphanumeric characters and the dash "-".
Must be unique for the instance. | neworg | -| `MaxAllowedMemberships` | *long* | :heavy_minus_sign: | The maximum number of memberships allowed for this organization | 100 | -| `CreatedAt` | *string* | :heavy_minus_sign: | A custom date/time denoting _when_ the organization was created, specified in RFC3339 format (e.g. `2012-10-20T07:15:20.902Z`). | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Name` | *string* | :heavy_check_mark: | The name of the new organization.
May not contain URLs or HTML.
Max length: 256 | NewOrg | +| `CreatedBy` | *string* | :heavy_minus_sign: | The ID of the User who will become the administrator for the new organization | user_123 | +| `PrivateMetadata` | Dictionary | :heavy_minus_sign: | Metadata saved on the organization, accessible only from the Backend API | {
"internal_code": "ABC123"
} | +| `PublicMetadata` | Dictionary | :heavy_minus_sign: | Metadata saved on the organization, read-only from the Frontend API and fully accessible (read/write) from the Backend API | {
"public_event": "Annual Summit"
} | +| `Slug` | *string* | :heavy_minus_sign: | A slug for the new organization.
Can contain only lowercase alphanumeric characters and the dash "-".
Must be unique for the instance.
This field should only be included when slugs are enabled in the organization settings, refer to our [documentation](https://clerk.com/docs/guides/organizations/overview#organization-slugs). | neworg | +| `MaxAllowedMemberships` | *long* | :heavy_minus_sign: | The maximum number of memberships allowed for this organization | 100 | +| `CreatedAt` | *string* | :heavy_minus_sign: | A custom date/time denoting _when_ the organization was created, specified in RFC3339 format (e.g. `2012-10-20T07:15:20.902Z`). | | \ No newline at end of file diff --git a/docs/Models/Operations/CreateRedirectURLRequestBody.md b/docs/Models/Operations/CreateRedirectURLRequestBody.md index d5a0270b..23a230a0 100644 --- a/docs/Models/Operations/CreateRedirectURLRequestBody.md +++ b/docs/Models/Operations/CreateRedirectURLRequestBody.md @@ -5,4 +5,4 @@ | Field | Type | Required | Description | Example | | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | -| `Url` | *string* | :heavy_check_mark: | The full url value prefixed with `https://` or a custom scheme e.g. `"https://my-app.com/oauth-callback"` or `"my-app://oauth-callback"` | https://my-app.com/oauth-callback | \ No newline at end of file +| `Url` | *string* | :heavy_check_mark: | The full URL value prefixed with `https://` or a custom scheme e.g. `"https://my-app.com/oauth-callback"` or `"my-app://oauth-callback"` | https://my-app.com/oauth-callback | \ No newline at end of file diff --git a/docs/Models/Operations/CreateSessionTokenFromTemplateRequest.md b/docs/Models/Operations/CreateSessionTokenFromTemplateRequest.md index fe96c100..3d422f1d 100644 --- a/docs/Models/Operations/CreateSessionTokenFromTemplateRequest.md +++ b/docs/Models/Operations/CreateSessionTokenFromTemplateRequest.md @@ -6,5 +6,5 @@ | Field | Type | Required | Description | Example | | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | | `SessionId` | *string* | :heavy_check_mark: | The ID of the session | ses_123abcd4567 | -| `TemplateName` | *string* | :heavy_check_mark: | The name of the JWT Template defined in your instance (e.g. `custom_hasura`). | custom_hasura | +| `TemplateName` | *string* | :heavy_check_mark: | The name of the JWT template defined in your instance (e.g. `custom_hasura`). | custom_hasura | | `RequestBody` | [CreateSessionTokenFromTemplateRequestBody](../../Models/Operations/CreateSessionTokenFromTemplateRequestBody.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Operations/CreateSessionTokenFromTemplateRequestBody.md b/docs/Models/Operations/CreateSessionTokenFromTemplateRequestBody.md index 56eb6f08..15d7e38e 100644 --- a/docs/Models/Operations/CreateSessionTokenFromTemplateRequestBody.md +++ b/docs/Models/Operations/CreateSessionTokenFromTemplateRequestBody.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | -| `ExpiresInSeconds` | *long* | :heavy_minus_sign: | Use this parameter to override the JWT token lifetime. | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ | +| `ExpiresInSeconds` | *long* | :heavy_minus_sign: | Use this parameter to override the JWT lifetime. | \ No newline at end of file diff --git a/docs/Models/Operations/CreateUserRequestBody.md b/docs/Models/Operations/CreateUserRequestBody.md index c96f3954..15f8cba4 100644 --- a/docs/Models/Operations/CreateUserRequestBody.md +++ b/docs/Models/Operations/CreateUserRequestBody.md @@ -8,6 +8,7 @@ | `ExternalId` | *string* | :heavy_minus_sign: | The ID of the user as used in your external systems or your previous authentication solution.
Must be unique across your instance. | ext-id-001 | | `FirstName` | *string* | :heavy_minus_sign: | The first name to assign to the user | John | | `LastName` | *string* | :heavy_minus_sign: | The last name to assign to the user | Doe | +| `Locale` | *string* | :heavy_minus_sign: | The locale to assign to the user (e.g., "en-US", "fr-FR") | | | `EmailAddress` | List<*string*> | :heavy_minus_sign: | Email addresses to add to the user.
Must be unique across your instance.
The first email address will be set as the user's primary email address. | | | `PhoneNumber` | List<*string*> | :heavy_minus_sign: | Phone numbers to add to the user.
Must be unique across your instance.
The first phone number will be set as the user's primary phone number. | | | `Web3Wallet` | List<*string*> | :heavy_minus_sign: | Web3 wallets to add to the user.
Must be unique across your instance.
The first wallet will be set as the user's primary wallet. | | diff --git a/docs/Models/Operations/DeleteAWSCredentialRequest.md b/docs/Models/Operations/DeleteAWSCredentialRequest.md deleted file mode 100644 index 01d152ca..00000000 --- a/docs/Models/Operations/DeleteAWSCredentialRequest.md +++ /dev/null @@ -1,8 +0,0 @@ -# DeleteAWSCredentialRequest - - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------- | -------------------------------------- | -------------------------------------- | -------------------------------------- | -| `Id` | *string* | :heavy_check_mark: | The ID of the AWS Credential to delete | \ No newline at end of file diff --git a/docs/Models/Operations/DeleteAWSCredentialResponse.md b/docs/Models/Operations/DeleteAWSCredentialResponse.md deleted file mode 100644 index 5355d769..00000000 --- a/docs/Models/Operations/DeleteAWSCredentialResponse.md +++ /dev/null @@ -1,9 +0,0 @@ -# DeleteAWSCredentialResponse - - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------- | -| `HttpMeta` | [HTTPMetadata](../../Models/Components/HTTPMetadata.md) | :heavy_check_mark: | N/A | -| `DeletedObject` | [DeletedObject](../../Models/Components/DeletedObject.md) | :heavy_minus_sign: | Deleted Object | \ No newline at end of file diff --git a/docs/Models/Operations/DeleteOrganizationDomainRequest.md b/docs/Models/Operations/DeleteOrganizationDomainRequest.md index dccd4194..fa9a5e22 100644 --- a/docs/Models/Operations/DeleteOrganizationDomainRequest.md +++ b/docs/Models/Operations/DeleteOrganizationDomainRequest.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ | -| `OrganizationId` | *string* | :heavy_check_mark: | The ID of the organization the domain belongs to | -| `DomainId` | *string* | :heavy_check_mark: | The ID of the domain | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | +| `OrganizationId` | *string* | :heavy_check_mark: | The ID of the organization to which the domain belongs | +| `DomainId` | *string* | :heavy_check_mark: | The ID of the domain | \ No newline at end of file diff --git a/docs/Models/Operations/DeleteOrganizationMembershipRequest.md b/docs/Models/Operations/DeleteOrganizationMembershipRequest.md index 373b4916..a0427373 100644 --- a/docs/Models/Operations/DeleteOrganizationMembershipRequest.md +++ b/docs/Models/Operations/DeleteOrganizationMembershipRequest.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | -| `OrganizationId` | *string* | :heavy_check_mark: | The ID of the organization to which the membership belongs | org_12345 | -| `UserId` | *string* | :heavy_check_mark: | The ID of the user that this membership belongs to | user_67890 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | +| `OrganizationId` | *string* | :heavy_check_mark: | The ID of the organization to which this membership belongs | org_12345 | +| `UserId` | *string* | :heavy_check_mark: | The ID of the user to which this membership belongs | user_67890 | \ No newline at end of file diff --git a/docs/Models/Operations/ExtendCommerceSubscriptionItemFreeTrialRequest.md b/docs/Models/Operations/ExtendBillingSubscriptionItemFreeTrialRequest.md similarity index 96% rename from docs/Models/Operations/ExtendCommerceSubscriptionItemFreeTrialRequest.md rename to docs/Models/Operations/ExtendBillingSubscriptionItemFreeTrialRequest.md index a8149a8f..fffb87f6 100644 --- a/docs/Models/Operations/ExtendCommerceSubscriptionItemFreeTrialRequest.md +++ b/docs/Models/Operations/ExtendBillingSubscriptionItemFreeTrialRequest.md @@ -1,4 +1,4 @@ -# ExtendCommerceSubscriptionItemFreeTrialRequest +# ExtendBillingSubscriptionItemFreeTrialRequest ## Fields diff --git a/docs/Models/Operations/ExtendBillingSubscriptionItemFreeTrialResponse.md b/docs/Models/Operations/ExtendBillingSubscriptionItemFreeTrialResponse.md new file mode 100644 index 00000000..b1790f1a --- /dev/null +++ b/docs/Models/Operations/ExtendBillingSubscriptionItemFreeTrialResponse.md @@ -0,0 +1,9 @@ +# ExtendBillingSubscriptionItemFreeTrialResponse + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| `HttpMeta` | [HTTPMetadata](../../Models/Components/HTTPMetadata.md) | :heavy_check_mark: | N/A | +| `SchemasCommerceSubscriptionItem` | [SchemasCommerceSubscriptionItem](../../Models/Components/SchemasCommerceSubscriptionItem.md) | :heavy_minus_sign: | A commerce subscription item. | \ No newline at end of file diff --git a/docs/Models/Operations/ExtendCommerceSubscriptionItemFreeTrialResponse.md b/docs/Models/Operations/ExtendCommerceSubscriptionItemFreeTrialResponse.md deleted file mode 100644 index 207765c1..00000000 --- a/docs/Models/Operations/ExtendCommerceSubscriptionItemFreeTrialResponse.md +++ /dev/null @@ -1,9 +0,0 @@ -# ExtendCommerceSubscriptionItemFreeTrialResponse - - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | -| `HttpMeta` | [HTTPMetadata](../../Models/Components/HTTPMetadata.md) | :heavy_check_mark: | N/A | -| `CommerceSubscriptionItem` | [CommerceSubscriptionItem](../../Models/Components/CommerceSubscriptionItem.md) | :heavy_minus_sign: | A commerce subscription item. | \ No newline at end of file diff --git a/docs/Models/Operations/GetBillingStatementListRequest.md b/docs/Models/Operations/GetBillingStatementListRequest.md new file mode 100644 index 00000000..958f592a --- /dev/null +++ b/docs/Models/Operations/GetBillingStatementListRequest.md @@ -0,0 +1,10 @@ +# GetBillingStatementListRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| `Paginated` | *bool* | :heavy_minus_sign: | Whether to paginate the results.
If true, the results will be paginated.
If false, the results will not be paginated. | | +| `Limit` | *long* | :heavy_minus_sign: | Applies a limit to the number of results returned.
Can be used for paginating the results together with `offset`. | 20 | +| `Offset` | *long* | :heavy_minus_sign: | Skip the first `offset` results when paginating.
Needs to be an integer greater or equal to zero.
To be used in conjunction with `limit`. | 10 | \ No newline at end of file diff --git a/docs/Models/Operations/GetBillingStatementListResponse.md b/docs/Models/Operations/GetBillingStatementListResponse.md new file mode 100644 index 00000000..b875f842 --- /dev/null +++ b/docs/Models/Operations/GetBillingStatementListResponse.md @@ -0,0 +1,9 @@ +# GetBillingStatementListResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | +| `HttpMeta` | [HTTPMetadata](../../Models/Components/HTTPMetadata.md) | :heavy_check_mark: | N/A | +| `PaginatedBillingStatementResponse` | [PaginatedBillingStatementResponse](../../Models/Components/PaginatedBillingStatementResponse.md) | :heavy_minus_sign: | A list of billing statements. | \ No newline at end of file diff --git a/docs/Models/Operations/GetBillingStatementPaymentAttemptsRequest.md b/docs/Models/Operations/GetBillingStatementPaymentAttemptsRequest.md new file mode 100644 index 00000000..419e193e --- /dev/null +++ b/docs/Models/Operations/GetBillingStatementPaymentAttemptsRequest.md @@ -0,0 +1,11 @@ +# GetBillingStatementPaymentAttemptsRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| `StatementID` | *string* | :heavy_check_mark: | The ID of the statement to retrieve payment attempts for. | | +| `Paginated` | *bool* | :heavy_minus_sign: | Whether to paginate the results.
If true, the results will be paginated.
If false, the results will not be paginated. | | +| `Limit` | *long* | :heavy_minus_sign: | Applies a limit to the number of results returned.
Can be used for paginating the results together with `offset`. | 20 | +| `Offset` | *long* | :heavy_minus_sign: | Skip the first `offset` results when paginating.
Needs to be an integer greater or equal to zero.
To be used in conjunction with `limit`. | 10 | \ No newline at end of file diff --git a/docs/Models/Operations/GetBillingStatementPaymentAttemptsResponse.md b/docs/Models/Operations/GetBillingStatementPaymentAttemptsResponse.md new file mode 100644 index 00000000..3ffb4baf --- /dev/null +++ b/docs/Models/Operations/GetBillingStatementPaymentAttemptsResponse.md @@ -0,0 +1,9 @@ +# GetBillingStatementPaymentAttemptsResponse + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | +| `HttpMeta` | [HTTPMetadata](../../Models/Components/HTTPMetadata.md) | :heavy_check_mark: | N/A | +| `PaginatedBillingPaymentAttemptResponse` | [PaginatedBillingPaymentAttemptResponse](../../Models/Components/PaginatedBillingPaymentAttemptResponse.md) | :heavy_minus_sign: | A list of billing payment attempts. | \ No newline at end of file diff --git a/docs/Models/Operations/GetBillingStatementRequest.md b/docs/Models/Operations/GetBillingStatementRequest.md new file mode 100644 index 00000000..cf9761a3 --- /dev/null +++ b/docs/Models/Operations/GetBillingStatementRequest.md @@ -0,0 +1,8 @@ +# GetBillingStatementRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | +| `StatementID` | *string* | :heavy_check_mark: | The ID of the statement to retrieve. | \ No newline at end of file diff --git a/docs/Models/Operations/GetBillingStatementResponse.md b/docs/Models/Operations/GetBillingStatementResponse.md new file mode 100644 index 00000000..6aa85453 --- /dev/null +++ b/docs/Models/Operations/GetBillingStatementResponse.md @@ -0,0 +1,9 @@ +# GetBillingStatementResponse + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | +| `HttpMeta` | [HTTPMetadata](../../Models/Components/HTTPMetadata.md) | :heavy_check_mark: | N/A | +| `BillingStatement` | [BillingStatement](../../Models/Components/BillingStatement.md) | :heavy_minus_sign: | A billing statement. | \ No newline at end of file diff --git a/docs/Models/Operations/GetCommerceSubscriptionItemListRequest.md b/docs/Models/Operations/GetCommerceSubscriptionItemListRequest.md index ccba803b..51d27761 100644 --- a/docs/Models/Operations/GetCommerceSubscriptionItemListRequest.md +++ b/docs/Models/Operations/GetCommerceSubscriptionItemListRequest.md @@ -12,6 +12,4 @@ | `PayerType` | [QueryParamPayerType](../../Models/Operations/QueryParamPayerType.md) | :heavy_minus_sign: | Filter subscription items by payer type | | | `PlanId` | *string* | :heavy_minus_sign: | Filter subscription items by plan ID | | | `IncludeFree` | *bool* | :heavy_minus_sign: | Whether to include free plan subscription items | | -| `Query` | *string* | :heavy_minus_sign: | Search query to filter subscription items by email, user first name, user last name, or organization name.
Supports partial matching. | | -| `UserId` | *string* | :heavy_minus_sign: | Filter subscription items by user ID | | -| `OrganizationId` | *string* | :heavy_minus_sign: | Filter subscription items by organization ID | | \ No newline at end of file +| `Query` | *string* | :heavy_minus_sign: | Search query to filter subscription items | | \ No newline at end of file diff --git a/docs/Models/Operations/GetUserListRequest.md b/docs/Models/Operations/GetUserListRequest.md index e2e26095..95228fb8 100644 --- a/docs/Models/Operations/GetUserListRequest.md +++ b/docs/Models/Operations/GetUserListRequest.md @@ -7,12 +7,12 @@ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `EmailAddress` | List<*string*> | :heavy_minus_sign: | Returns users with the specified email addresses.
Accepts up to 100 email addresses.
Any email addresses not found are ignored. | [
"test@example.com"
] | | `PhoneNumber` | List<*string*> | :heavy_minus_sign: | Returns users with the specified phone numbers.
Accepts up to 100 phone numbers.
Any phone numbers not found are ignored. | [
"+12345678901"
] | -| `ExternalId` | List<*string*> | :heavy_minus_sign: | Returns users with the specified external ids.
For each external id, the `+` and `-` can be
prepended to the id, which denote whether the
respective external id should be included or
excluded from the result set.
Accepts up to 100 external ids.
Any external ids not found are ignored. | [
"external-id-123"
] | +| `ExternalId` | List<*string*> | :heavy_minus_sign: | Returns users with the specified external IDs.
For each external ID, the `+` and `-` can be
prepended to the ID, which denote whether the
respective external ID should be included or
excluded from the result set.
Accepts up to 100 external IDs.
Any external IDs not found are ignored. | [
"external-id-123"
] | | `Username` | List<*string*> | :heavy_minus_sign: | Returns users with the specified usernames.
Accepts up to 100 usernames.
Any usernames not found are ignored. | [
"user123"
] | -| `Web3Wallet` | List<*string*> | :heavy_minus_sign: | Returns users with the specified web3 wallet addresses.
Accepts up to 100 web3 wallet addresses.
Any web3 wallet addressed not found are ignored. | [
"0x123456789abcdef0x123456789abcdef"
] | -| `UserId` | List<*string*> | :heavy_minus_sign: | Returns users with the user ids specified.
For each user id, the `+` and `-` can be
prepended to the id, which denote whether the
respective user id should be included or
excluded from the result set.
Accepts up to 100 user ids.
Any user ids not found are ignored. | [
"user-id-123"
] | -| `OrganizationId` | List<*string*> | :heavy_minus_sign: | Returns users that have memberships to the
given organizations.
For each organization id, the `+` and `-` can be
prepended to the id, which denote whether the
respective organization should be included or
excluded from the result set.
Accepts up to 100 organization ids. | [
"org-id-123"
] | -| `Query` | *string* | :heavy_minus_sign: | Returns users that match the given query.
For possible matches, we check the email addresses, phone numbers, usernames, web3 wallets, user ids, first and last names.
The query value doesn't need to match the exact value you are looking for, it is capable of partial matches as well. | John | +| `Web3Wallet` | List<*string*> | :heavy_minus_sign: | Returns users with the specified web3 wallet addresses.
Accepts up to 100 web3 wallet addresses.
Any web3 wallet addresses not found are ignored. | [
"0x123456789abcdef0x123456789abcdef"
] | +| `UserId` | List<*string*> | :heavy_minus_sign: | Returns users with the user IDs specified.
For each user ID, the `+` and `-` can be
prepended to the ID, which denote whether the
respective user ID should be included or
excluded from the result set.
Accepts up to 100 user IDs.
Any user IDs not found are ignored. | [
"user-id-123"
] | +| `OrganizationId` | List<*string*> | :heavy_minus_sign: | Returns users that have memberships to the
given organizations.
For each organization ID, the `+` and `-` can be
prepended to the ID, which denote whether the
respective organization should be included or
excluded from the result set.
Accepts up to 100 organization IDs. | [
"org-id-123"
] | +| `Query` | *string* | :heavy_minus_sign: | Returns users that match the given query.
For possible matches, we check the email addresses, phone numbers, usernames, web3 wallets, user IDs, first and last names.
The query value doesn't need to match the exact value you are looking for, it is capable of partial matches as well. | John | | `EmailAddressQuery` | *string* | :heavy_minus_sign: | Returns users with emails that match the given query, via case-insensitive partial match.
For example, `email_address_query=ello` will match a user with the email `HELLO@example.com`. | | | `PhoneNumberQuery` | *string* | :heavy_minus_sign: | Returns users with phone numbers that match the given query, via case-insensitive partial match.
For example, `phone_number_query=555` will match a user with the phone number `+1555xxxxxxx`. | | | `UsernameQuery` | *string* | :heavy_minus_sign: | Returns users with usernames that match the given query, via case-insensitive partial match.
For example, `username_query=CoolUser` will match a user with the username `SomeCoolUser`. | | diff --git a/docs/Models/Operations/GetUsersCountRequest.md b/docs/Models/Operations/GetUsersCountRequest.md index f2fcf2c0..adaf417b 100644 --- a/docs/Models/Operations/GetUsersCountRequest.md +++ b/docs/Models/Operations/GetUsersCountRequest.md @@ -7,12 +7,12 @@ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `EmailAddress` | List<*string*> | :heavy_minus_sign: | Counts users with the specified email addresses.
Accepts up to 100 email addresses.
Any email addresses not found are ignored. | [
"user@example.com"
] | | `PhoneNumber` | List<*string*> | :heavy_minus_sign: | Counts users with the specified phone numbers.
Accepts up to 100 phone numbers.
Any phone numbers not found are ignored. | [
"+1234567890"
] | -| `ExternalId` | List<*string*> | :heavy_minus_sign: | Counts users with the specified external ids.
Accepts up to 100 external ids.
Any external ids not found are ignored. | [
"external-id-123"
] | +| `ExternalId` | List<*string*> | :heavy_minus_sign: | Counts users with the specified external IDs.
Accepts up to 100 external IDs.
Any external IDs not found are ignored. | [
"external-id-123"
] | | `Username` | List<*string*> | :heavy_minus_sign: | Counts users with the specified usernames.
Accepts up to 100 usernames.
Any usernames not found are ignored. | [
"username123"
] | -| `Web3Wallet` | List<*string*> | :heavy_minus_sign: | Counts users with the specified web3 wallet addresses.
Accepts up to 100 web3 wallet addresses.
Any web3 wallet addressed not found are ignored. | [
"0x123456789abcdef"
] | -| `UserId` | List<*string*> | :heavy_minus_sign: | Counts users with the user ids specified.
Accepts up to 100 user ids.
Any user ids not found are ignored. | [
"user-id-123"
] | -| `OrganizationId` | List<*string*> | :heavy_minus_sign: | Returns users that have memberships to the given organizations. For each organization id, the `+` and `-`
can be prepended to the id, which denote whether the respective organization should be included or
excluded from the result set. Accepts up to 100 organization ids. | John Doe | -| `Query` | *string* | :heavy_minus_sign: | Counts users that match the given query.
For possible matches, we check the email addresses, phone numbers, usernames, web3 wallets, user ids, first and last names.
The query value doesn't need to match the exact value you are looking for, it is capable of partial matches as well. | | +| `Web3Wallet` | List<*string*> | :heavy_minus_sign: | Counts users with the specified web3 wallet addresses.
Accepts up to 100 web3 wallet addresses.
Any web3 wallet addresses not found are ignored. | [
"0x123456789abcdef"
] | +| `UserId` | List<*string*> | :heavy_minus_sign: | Counts users with the user IDs specified.
Accepts up to 100 user IDs.
Any user IDs not found are ignored. | [
"user-id-123"
] | +| `OrganizationId` | List<*string*> | :heavy_minus_sign: | Returns users that have memberships to the given organizations. For each organization ID, the `+` and `-`
can be prepended to the ID, which denote whether the respective organization should be included or
excluded from the result set. Accepts up to 100 organization IDs. | John Doe | +| `Query` | *string* | :heavy_minus_sign: | Counts users that match the given query.
For possible matches, we check the email addresses, phone numbers, usernames, web3 wallets, user IDs, first and last names.
The query value doesn't need to match the exact value you are looking for, it is capable of partial matches as well. | | | `EmailAddressQuery` | *string* | :heavy_minus_sign: | Counts users with emails that match the given query, via case-insensitive partial match.
For example, `email_address_query=ello` will match a user with the email `HELLO@example.com`,
and will be included in the resulting count. | | | `PhoneNumberQuery` | *string* | :heavy_minus_sign: | Counts users with phone numbers that match the given query, via case-insensitive partial match.
For example, `phone_number_query=555` will match a user with the phone number `+1555xxxxxxx`,
and will be included in the resulting count. | | | `UsernameQuery` | *string* | :heavy_minus_sign: | Counts users with usernames that match the given query, via case-insensitive partial match.
For example, `username_query=CoolUser` will match a user with the username `SomeCoolUser`,
and will be included in the resulting count. | | diff --git a/docs/Models/Operations/ListOrganizationMembershipsRequest.md b/docs/Models/Operations/ListOrganizationMembershipsRequest.md index 62337a92..b5b56e81 100644 --- a/docs/Models/Operations/ListOrganizationMembershipsRequest.md +++ b/docs/Models/Operations/ListOrganizationMembershipsRequest.md @@ -7,13 +7,13 @@ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `OrganizationId` | *string* | :heavy_check_mark: | The organization ID. | org_789 | | `OrderBy` | *string* | :heavy_minus_sign: | Sorts organizations memberships by phone_number, email_address, created_at, first_name, last_name or username.
By prepending one of those values with + or -, we can choose to sort in ascending (ASC) or descending (DESC) order." | | -| `UserId` | List<*string*> | :heavy_minus_sign: | Returns users with the user ids specified. For each user id, the `+` and `-` can be
prepended to the id, which denote whether the respective user id should be included or
excluded from the result set. Accepts up to 100 user ids. Any user ids not found are ignored. | | +| `UserId` | List<*string*> | :heavy_minus_sign: | Returns users with the user IDs specified. For each user ID, the `+` and `-` can be
prepended to the ID, which denote whether the respective user ID should be included or
excluded from the result set. Accepts up to 100 user IDs. Any user IDs not found are ignored. | | | `EmailAddress` | List<*string*> | :heavy_minus_sign: | Returns users with the specified email addresses. Accepts up to 100 email addresses. Any email addresses not found are ignored. | +created_at | | `PhoneNumber` | List<*string*> | :heavy_minus_sign: | Returns users with the specified phone numbers. Accepts up to 100 phone numbers. Any phone numbers not found are ignored. | | | `Username` | List<*string*> | :heavy_minus_sign: | Returns users with the specified usernames.
Accepts up to 100 usernames.
Any usernames not found are ignored. | | -| `Web3Wallet` | List<*string*> | :heavy_minus_sign: | Returns users with the specified web3 wallet addresses.
Accepts up to 100 web3 wallet addresses.
Any web3 wallet addressed not found are ignored. | | +| `Web3Wallet` | List<*string*> | :heavy_minus_sign: | Returns users with the specified web3 wallet addresses.
Accepts up to 100 web3 wallet addresses.
Any web3 wallet addresses not found are ignored. | | | `Role` | List<*string*> | :heavy_minus_sign: | Returns users with the specified roles. Accepts up to 100 roles. Any roles not found are ignored. | | -| `Query` | *string* | :heavy_minus_sign: | Returns users that match the given query.
For possible matches, we check the email addresses, phone numbers, usernames, web3 wallets, user ids, first and last names.
The query value doesn't need to match the exact value you are looking for, it is capable of partial matches as well. | | +| `Query` | *string* | :heavy_minus_sign: | Returns users that match the given query.
For possible matches, we check the email addresses, phone numbers, usernames, web3 wallets, user IDs, first and last names.
The query value doesn't need to match the exact value you are looking for, it is capable of partial matches as well. | | | `EmailAddressQuery` | *string* | :heavy_minus_sign: | Returns users with emails that match the given query, via case-insensitive partial match.
For example, `email_address_query=ello` will match a user with the email `HELLO@example.com`. | | | `PhoneNumberQuery` | *string* | :heavy_minus_sign: | Returns users with phone numbers that match the given query, via case-insensitive partial match.
For example, `phone_number_query=555` will match a user with the phone number `+1555xxxxxxx`. | | | `UsernameQuery` | *string* | :heavy_minus_sign: | Returns users with usernames that match the given query, via case-insensitive partial match.
For example, `username_query=CoolUser` will match a user with the username `SomeCoolUser`. | | diff --git a/docs/Models/Operations/ListOrganizationsRequest.md b/docs/Models/Operations/ListOrganizationsRequest.md index 80cdc7ea..9708efc4 100644 --- a/docs/Models/Operations/ListOrganizationsRequest.md +++ b/docs/Models/Operations/ListOrganizationsRequest.md @@ -8,8 +8,8 @@ | `IncludeMembersCount` | *bool* | :heavy_minus_sign: | Flag to denote whether the member counts of each organization should be included in the response or not. | | | `IncludeMissingMemberWithElevatedPermissions` | *bool* | :heavy_minus_sign: | Flag to denote whether or not to include a member with elevated permissions who is not currently a member of the organization. | | | `Query` | *string* | :heavy_minus_sign: | Returns organizations with ID, name, or slug that match the given query.
Uses exact match for organization ID and partial match for name and slug. | false | -| `UserId` | List<*string*> | :heavy_minus_sign: | Returns organizations with the user ids specified. Any user ids not found are ignored.
For each user id, the `+` and `-` can be prepended to the id, which denote whether the
respective organization should be included or excluded from the result set. | clerk | -| `OrganizationId` | List<*string*> | :heavy_minus_sign: | Returns organizations with the organization ids specified. Any organization ids not found are ignored.
For each organization id, the `+` and `-` can be prepended to the id, which denote whether the
respective organization should be included or excluded from the result set. Accepts up to 100 organization ids.
Example: ?organization_id=+org_1&organization_id=-org_2 | -name | +| `UserId` | List<*string*> | :heavy_minus_sign: | Returns organizations that include any of the specified user IDs as members. Any user IDs not found are ignored.
For each user ID, the `+` and `-` can be prepended to the ID, which denote whether the
respective organization should be included or excluded from the result set. | clerk | +| `OrganizationId` | List<*string*> | :heavy_minus_sign: | Returns organizations with the organization IDs specified. Any organization IDs not found are ignored.
For each organization ID, the `+` and `-` can be prepended to the ID, which denote whether the
respective organization should be included or excluded from the result set. Accepts up to 100 organization IDs.
Example: ?organization_id=+org_1&organization_id=-org_2 | -name | | `OrderBy` | *string* | :heavy_minus_sign: | Allows to return organizations in a particular order.
At the moment, you can order the returned organizations either by their `name`, `created_at` or `members_count`.
In order to specify the direction, you can use the `+/-` symbols prepended in the property to order by.
For example, if you want organizations to be returned in descending order according to their `created_at` property, you can use `-created_at`.
If you don't use `+` or `-`, then `+` is implied.
Defaults to `-created_at`. | | | `Limit` | *long* | :heavy_minus_sign: | Applies a limit to the number of results returned.
Can be used for paginating the results together with `offset`. | 20 | | `Offset` | *long* | :heavy_minus_sign: | Skip the first `offset` results when paginating.
Needs to be an integer greater or equal to zero.
To be used in conjunction with `limit`. | 10 | \ No newline at end of file diff --git a/docs/Models/Operations/ListSAMLConnectionsRequest.md b/docs/Models/Operations/ListSAMLConnectionsRequest.md index b9eeea28..4095d252 100644 --- a/docs/Models/Operations/ListSAMLConnectionsRequest.md +++ b/docs/Models/Operations/ListSAMLConnectionsRequest.md @@ -9,4 +9,4 @@ | `Offset` | *long* | :heavy_minus_sign: | Skip the first `offset` results when paginating.
Needs to be an integer greater or equal to zero.
To be used in conjunction with `limit`. | 10 | | `Query` | *string* | :heavy_minus_sign: | Returns SAML connections that have a name that matches the given query, via case-insensitive partial match. | | | `OrderBy` | *string* | :heavy_minus_sign: | Sorts organizations memberships by phone_number, email_address, created_at, first_name, last_name or username.
By prepending one of those values with + or -,
we can choose to sort in ascending (ASC) or descending (DESC) order. | | -| `OrganizationId` | List<*string*> | :heavy_minus_sign: | Returns SAML connections that have an associated organization ID to the
given organizations.
For each organization id, the `+` and `-` can be
prepended to the id, which denote whether the
respective organization should be included or
excluded from the result set.
Accepts up to 100 organization ids. | | \ No newline at end of file +| `OrganizationId` | List<*string*> | :heavy_minus_sign: | Returns SAML connections that have an associated organization ID to the
given organizations.
For each organization ID, the `+` and `-` can be
prepended to the ID, which denote whether the
respective organization should be included or
excluded from the result set.
Accepts up to 100 organization IDs. | | \ No newline at end of file diff --git a/docs/Models/Operations/One.md b/docs/Models/Operations/One.md index b9eb2d53..2659b3e0 100644 --- a/docs/Models/Operations/One.md +++ b/docs/Models/Operations/One.md @@ -15,4 +15,5 @@ | `IdpMetadataUrl` | *string* | :heavy_minus_sign: | The URL which serves the IdP metadata. If present, it takes priority over the corresponding individual properties | http://idp.example.org/metadata.xml | | `IdpMetadata` | *string* | :heavy_minus_sign: | The XML content of the IdP metadata file. If present, it takes priority over the corresponding individual properties | Note: this JWT must be associated with the supplied session ID. | -| `RefreshToken` | *string* | :heavy_check_mark: | The JWT that is sent via the `__session` cookie from your frontend. | +| `RefreshToken` | *string* | :heavy_check_mark: | The refresh token from the `__refresh` cookie set via FAPI's handshake flow. | | `RequestOrigin` | *string* | :heavy_check_mark: | The origin of the request. | | `RequestHeaders` | Dictionary | :heavy_minus_sign: | The headers of the request. | | `Format` | [Format](../../Models/Operations/Format.md) | :heavy_minus_sign: | The format of the response. | diff --git a/docs/Models/Operations/Two.md b/docs/Models/Operations/Two.md index 098c2633..fde3d314 100644 --- a/docs/Models/Operations/Two.md +++ b/docs/Models/Operations/Two.md @@ -15,4 +15,5 @@ | `IdpMetadataUrl` | *string* | :heavy_minus_sign: | The URL which serves the IdP metadata. If present, it takes priority over the corresponding individual properties | http://idp.example.org/metadata.xml | | `IdpMetadata` | *string* | :heavy_minus_sign: | The XML content of the IdP metadata file. If present, it takes priority over the corresponding individual properties | | :heavy_minus_sign: | N/A | -| `SecretAccessKey` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/Models/Operations/UpdateAWSCredentialResponse.md b/docs/Models/Operations/UpdateAWSCredentialResponse.md deleted file mode 100644 index 330db689..00000000 --- a/docs/Models/Operations/UpdateAWSCredentialResponse.md +++ /dev/null @@ -1,9 +0,0 @@ -# UpdateAWSCredentialResponse - - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------- | -| `HttpMeta` | [HTTPMetadata](../../Models/Components/HTTPMetadata.md) | :heavy_check_mark: | N/A | -| `AWSCredential` | [AWSCredential](../../Models/Components/AWSCredential.md) | :heavy_minus_sign: | Success | \ No newline at end of file diff --git a/docs/Models/Operations/UpdateInstanceOrganizationSettingsRequestBody.md b/docs/Models/Operations/UpdateInstanceOrganizationSettingsRequestBody.md index f6fdab84..84145ce7 100644 --- a/docs/Models/Operations/UpdateInstanceOrganizationSettingsRequestBody.md +++ b/docs/Models/Operations/UpdateInstanceOrganizationSettingsRequestBody.md @@ -9,6 +9,7 @@ | `MaxAllowedMemberships` | *long* | :heavy_minus_sign: | N/A | 10 | | `AdminDeleteEnabled` | *bool* | :heavy_minus_sign: | N/A | false | | `DomainsEnabled` | *bool* | :heavy_minus_sign: | N/A | true | +| `SlugDisabled` | *bool* | :heavy_minus_sign: | N/A | | | `DomainsEnrollmentModes` | List<*string*> | :heavy_minus_sign: | Specify which enrollment modes to enable for your Organization Domains.
Supported modes are 'automatic_invitation' & 'automatic_suggestion'. | [
"automatic_invitation",
"automatic_suggestion"
] | | `CreatorRoleId` | *string* | :heavy_minus_sign: | Specify what the default organization role is for an organization creator. | creator_role | | `DomainsDefaultRoleId` | *string* | :heavy_minus_sign: | Specify what the default organization role is for the organization domains. | member_role | \ No newline at end of file diff --git a/docs/Models/Operations/UpdateJWTTemplateRequestBody.md b/docs/Models/Operations/UpdateJWTTemplateRequestBody.md index 28a0c169..55ea48fc 100644 --- a/docs/Models/Operations/UpdateJWTTemplateRequestBody.md +++ b/docs/Models/Operations/UpdateJWTTemplateRequestBody.md @@ -7,8 +7,8 @@ | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | | `Name` | *string* | :heavy_check_mark: | JWT template name | | `Claims` | [UpdateJWTTemplateClaims](../../Models/Operations/UpdateJWTTemplateClaims.md) | :heavy_check_mark: | JWT template claims in JSON format | -| `Lifetime` | *long* | :heavy_minus_sign: | JWT token lifetime | -| `AllowedClockSkew` | *long* | :heavy_minus_sign: | JWT token allowed clock skew | +| `Lifetime` | *long* | :heavy_minus_sign: | JWT lifetime | +| `AllowedClockSkew` | *long* | :heavy_minus_sign: | JWT allowed clock skew | | `CustomSigningKey` | *bool* | :heavy_minus_sign: | Whether a custom signing key/algorithm is also provided for this template | | `SigningAlgorithm` | *string* | :heavy_minus_sign: | The custom signing algorithm to use when minting JWTs. Required if `custom_signing_key` is `true`. | | `SigningKey` | *string* | :heavy_minus_sign: | The custom signing private key to use when minting JWTs. Required if `custom_signing_key` is `true`. | \ No newline at end of file diff --git a/docs/Models/Operations/UpdateOrganizationDomainRequest.md b/docs/Models/Operations/UpdateOrganizationDomainRequest.md index fc54fa52..b4fe715f 100644 --- a/docs/Models/Operations/UpdateOrganizationDomainRequest.md +++ b/docs/Models/Operations/UpdateOrganizationDomainRequest.md @@ -5,6 +5,6 @@ | Field | Type | Required | Description | | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | -| `OrganizationId` | *string* | :heavy_check_mark: | The ID of the organization the domain belongs to | +| `OrganizationId` | *string* | :heavy_check_mark: | The ID of the organization to which the domain belongs | | `DomainId` | *string* | :heavy_check_mark: | The ID of the domain | | `RequestBody` | [UpdateOrganizationDomainRequestBody](../../Models/Operations/UpdateOrganizationDomainRequestBody.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/Models/Operations/UpdateOrganizationMembershipMetadataRequest.md b/docs/Models/Operations/UpdateOrganizationMembershipMetadataRequest.md index ad004910..6daee11a 100644 --- a/docs/Models/Operations/UpdateOrganizationMembershipMetadataRequest.md +++ b/docs/Models/Operations/UpdateOrganizationMembershipMetadataRequest.md @@ -5,6 +5,6 @@ | Field | Type | Required | Description | Example | | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | -| `OrganizationId` | *string* | :heavy_check_mark: | The ID of the organization to which the membership belongs | org_123456 | -| `UserId` | *string* | :heavy_check_mark: | The ID of the user that this membership belongs to | user_654321 | +| `OrganizationId` | *string* | :heavy_check_mark: | The ID of the organization to which this membership belongs | org_123456 | +| `UserId` | *string* | :heavy_check_mark: | The ID of the user to which this membership belongs | user_654321 | | `RequestBody` | [UpdateOrganizationMembershipMetadataRequestBody](../../Models/Operations/UpdateOrganizationMembershipMetadataRequestBody.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Operations/UpdateOrganizationMembershipRequest.md b/docs/Models/Operations/UpdateOrganizationMembershipRequest.md index ca15f079..3f305912 100644 --- a/docs/Models/Operations/UpdateOrganizationMembershipRequest.md +++ b/docs/Models/Operations/UpdateOrganizationMembershipRequest.md @@ -5,6 +5,6 @@ | Field | Type | Required | Description | Example | | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | -| `OrganizationId` | *string* | :heavy_check_mark: | The ID of the organization to which the membership belongs | org_12345 | -| `UserId` | *string* | :heavy_check_mark: | The ID of the user that this membership belongs to | user_67890 | +| `OrganizationId` | *string* | :heavy_check_mark: | The ID of the organization to which this membership belongs | org_12345 | +| `UserId` | *string* | :heavy_check_mark: | The ID of the user to which this membership belongs | user_67890 | | `RequestBody` | [UpdateOrganizationMembershipRequestBody](../../Models/Operations/UpdateOrganizationMembershipRequestBody.md) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/Models/Operations/UpdateSAMLConnectionRequestBody.md b/docs/Models/Operations/UpdateSAMLConnectionRequestBody.md index 9d095495..9e411d14 100644 --- a/docs/Models/Operations/UpdateSAMLConnectionRequestBody.md +++ b/docs/Models/Operations/UpdateSAMLConnectionRequestBody.md @@ -8,15 +8,16 @@ | `Name` | *string* | :heavy_minus_sign: | The name of the new SAML Connection | Example SAML Connection | | ~~`Domain`~~ | *string* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

The domain to use for the new SAML Connection | example.com | | `Domains` | List<*string*> | :heavy_minus_sign: | A list of the domains on use for the SAML connection | | -| `IdpEntityId` | *string* | :heavy_minus_sign: | The entity id as provided by the IdP | entity_123 | -| `IdpSsoUrl` | *string* | :heavy_minus_sign: | The SSO url as provided by the IdP | https://idp.example.com/sso | +| `IdpEntityId` | *string* | :heavy_minus_sign: | The Entity ID as provided by the IdP | entity_123 | +| `IdpSsoUrl` | *string* | :heavy_minus_sign: | The SSO URL as provided by the IdP | https://idp.example.com/sso | | `IdpCertificate` | *string* | :heavy_minus_sign: | The x509 certificated as provided by the IdP | MIIDBTCCAe2gAwIBAgIQ... | | `IdpMetadataUrl` | *string* | :heavy_minus_sign: | The URL which serves the IdP metadata. If present, it takes priority over the corresponding individual properties and replaces them | https://idp.example.com/metadata | | `IdpMetadata` | *string* | :heavy_minus_sign: | The XML content of the IdP metadata file. If present, it takes priority over the corresponding individual properties | ... | | `OrganizationId` | *string* | :heavy_minus_sign: | The ID of the organization to which users of this SAML Connection will be added | | -| `AttributeMapping` | [AttributeMapping](../../Models/Operations/AttributeMapping.md) | :heavy_minus_sign: | Define the atrtibute name mapping between Identity Provider and Clerk's user properties | | +| `AttributeMapping` | [AttributeMapping](../../Models/Operations/AttributeMapping.md) | :heavy_minus_sign: | Define the attribute name mapping between Identity Provider and Clerk's user properties | | | `Active` | *bool* | :heavy_minus_sign: | Activate or de-activate the SAML Connection | true | | `SyncUserAttributes` | *bool* | :heavy_minus_sign: | Controls whether to update the user's attributes in each sign-in | false | | `AllowSubdomains` | *bool* | :heavy_minus_sign: | Allow users with an email address subdomain to use this connection in order to authenticate | true | | `AllowIdpInitiated` | *bool* | :heavy_minus_sign: | Enable or deactivate IdP-initiated flows | false | -| `DisableAdditionalIdentifications` | *bool* | :heavy_minus_sign: | Enable or deactivate additional identifications | | \ No newline at end of file +| `DisableAdditionalIdentifications` | *bool* | :heavy_minus_sign: | Enable or deactivate additional identifications | | +| `ForceAuthn` | *bool* | :heavy_minus_sign: | Enable or deactivate ForceAuthn | | \ No newline at end of file diff --git a/docs/Models/Operations/UpdateUserRequestBody.md b/docs/Models/Operations/UpdateUserRequestBody.md index 650dc2db..9fb9a99d 100644 --- a/docs/Models/Operations/UpdateUserRequestBody.md +++ b/docs/Models/Operations/UpdateUserRequestBody.md @@ -8,6 +8,7 @@ | `ExternalId` | *string* | :heavy_minus_sign: | The ID of the user as used in your external systems or your previous authentication solution.
Must be unique across your instance. | ext_123 | | `FirstName` | *string* | :heavy_minus_sign: | The first name to assign to the user | Jane | | `LastName` | *string* | :heavy_minus_sign: | The last name to assign to the user | Doe | +| `Locale` | *string* | :heavy_minus_sign: | The locale to assign to the user (e.g., "en-US", "fr-FR") | | | `PrimaryEmailAddressId` | *string* | :heavy_minus_sign: | The ID of the email address to set as primary.
It must be verified, and present on the current user. | eml_12345 | | `NotifyPrimaryEmailAddressChanged` | *bool* | :heavy_minus_sign: | If set to `true`, the user will be notified that their primary email address has changed.
By default, no notification is sent. | true | | `PrimaryPhoneNumberId` | *string* | :heavy_minus_sign: | The ID of the phone number to set as primary.
It must be verified, and present on the current user. | phn_67890 | @@ -26,7 +27,7 @@ | `UnsafeMetadata` | Dictionary | :heavy_minus_sign: | Metadata saved on the user, that can be updated from both the Frontend and Backend APIs.
Note: Since this data can be modified from the frontend, it is not guaranteed to be safe. | {
"age": 30
} | | `DeleteSelfEnabled` | *bool* | :heavy_minus_sign: | If true, the user can delete themselves with the Frontend API. | true | | `CreateOrganizationEnabled` | *bool* | :heavy_minus_sign: | If true, the user can create organizations with the Frontend API. | false | -| `LegalAcceptedAt` | *string* | :heavy_minus_sign: | A custom timestamps denoting _when_ the user accepted legal requirements, specified in RFC3339 format (e.g. `2012-10-20T07:15:20.902Z`). | | +| `LegalAcceptedAt` | *string* | :heavy_minus_sign: | A custom timestamp denoting _when_ the user accepted legal requirements, specified in RFC3339 format (e.g. `2012-10-20T07:15:20.902Z`). | | | `SkipLegalChecks` | *bool* | :heavy_minus_sign: | When set to `true` all legal checks are skipped.
It is not recommended to skip legal checks unless you are migrating a user to Clerk. | | | `CreateOrganizationsLimit` | *long* | :heavy_minus_sign: | The maximum number of organizations the user can create. 0 means unlimited. | | | `CreatedAt` | *string* | :heavy_minus_sign: | A custom date/time denoting _when_ the user signed up to the application, specified in RFC3339 format (e.g. `2012-10-20T07:15:20.902Z`). | 2021-04-05T14:30:00.000Z | \ No newline at end of file diff --git a/docs/sdks/awscredentials/README.md b/docs/sdks/awscredentials/README.md deleted file mode 100644 index 37df413e..00000000 --- a/docs/sdks/awscredentials/README.md +++ /dev/null @@ -1,80 +0,0 @@ -# AwsCredentials -(*AwsCredentials*) - -## Overview - -### Available Operations - -* [Delete](#delete) - Delete an AWS Credential -* [Update](#update) - Update an AWS Credential - -## Delete - -Delete the AWS Credential with the given ID - -### Example Usage - - -```csharp -using Clerk.BackendAPI; -using Clerk.BackendAPI.Models.Components; - -var sdk = new ClerkBackendApi(bearerAuth: ""); - -var res = await sdk.AwsCredentials.DeleteAsync(id: ""); - -// handle response -``` - -### Parameters - -| Parameter | Type | Required | Description | -| -------------------------------------- | -------------------------------------- | -------------------------------------- | -------------------------------------- | -| `Id` | *string* | :heavy_check_mark: | The ID of the AWS Credential to delete | - -### Response - -**[DeleteAWSCredentialResponse](../../Models/Operations/DeleteAWSCredentialResponse.md)** - -### Errors - -| Error Type | Status Code | Content Type | -| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | -| Clerk.BackendAPI.Models.Errors.ClerkErrors | 400, 401, 403, 404 | application/json | -| Clerk.BackendAPI.Models.Errors.SDKError | 4XX, 5XX | \*/\* | - -## Update - -Updates an AWS credential. - -### Example Usage - - -```csharp -using Clerk.BackendAPI; -using Clerk.BackendAPI.Models.Components; - -var sdk = new ClerkBackendApi(bearerAuth: ""); - -var res = await sdk.AwsCredentials.UpdateAsync(id: ""); - -// handle response -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | -| `Id` | *string* | :heavy_check_mark: | The ID of the AWS Credential to update | -| `RequestBody` | [UpdateAWSCredentialRequestBody](../../Models/Operations/UpdateAWSCredentialRequestBody.md) | :heavy_minus_sign: | N/A | - -### Response - -**[UpdateAWSCredentialResponse](../../Models/Operations/UpdateAWSCredentialResponse.md)** - -### Errors - -| Error Type | Status Code | Content Type | -| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | -| Clerk.BackendAPI.Models.Errors.ClerkErrors | 400, 401, 403, 404 | application/json | -| Clerk.BackendAPI.Models.Errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/billing/README.md b/docs/sdks/billing/README.md new file mode 100644 index 00000000..c517ee9d --- /dev/null +++ b/docs/sdks/billing/README.md @@ -0,0 +1,179 @@ +# Billing +(*Billing*) + +## Overview + +### Available Operations + +* [ExtendSubscriptionItemFreeTrial](#extendsubscriptionitemfreetrial) - Extend free trial for a subscription item +* [ListStatements](#liststatements) - List all billing statements +* [GetStatement](#getstatement) - Retrieve a billing statement +* [GetStatementPaymentAttempts](#getstatementpaymentattempts) - List payment attempts for a billing statement + +## ExtendSubscriptionItemFreeTrial + +Extends the free trial period for a specific subscription item to the specified timestamp. +The subscription item must be currently in a free trial period, and the plan must support free trials. +The timestamp must be in the future and not more than 365 days from the end of the current trial period +This operation is idempotent - repeated requests with the same timestamp will not change the trial period. + +### Example Usage + + +```csharp +using Clerk.BackendAPI; +using Clerk.BackendAPI.Models.Components; +using System; + +var sdk = new ClerkBackendApi(bearerAuth: ""); + +var res = await sdk.Billing.ExtendSubscriptionItemFreeTrialAsync( + subscriptionItemId: "", + extendFreeTrialRequest: new ExtendFreeTrialRequest() { + ExtendTo = System.DateTime.Parse("2026-01-08T00:00:00Z"), + } +); + +// handle response +``` + +### Parameters + +| Parameter | Type | Required | Description | +| --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | +| `SubscriptionItemId` | *string* | :heavy_check_mark: | The ID of the subscription item to extend the free trial for | +| `ExtendFreeTrialRequest` | [ExtendFreeTrialRequest](../../Models/Components/ExtendFreeTrialRequest.md) | :heavy_check_mark: | Parameters for extending the free trial | + +### Response + +**[ExtendBillingSubscriptionItemFreeTrialResponse](../../Models/Operations/ExtendBillingSubscriptionItemFreeTrialResponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | +| Clerk.BackendAPI.Models.Errors.ClerkErrors | 400, 401, 403, 404, 422 | application/json | +| Clerk.BackendAPI.Models.Errors.ClerkErrors | 500 | application/json | +| Clerk.BackendAPI.Models.Errors.SDKError | 4XX, 5XX | \*/\* | + +## ListStatements + +Returns a list of all billing statements for the instance. The statements are returned sorted by creation date, +with the newest statements appearing first. Pagination is supported. + +### Example Usage + + +```csharp +using Clerk.BackendAPI; +using Clerk.BackendAPI.Models.Components; + +var sdk = new ClerkBackendApi(bearerAuth: ""); + +var res = await sdk.Billing.ListStatementsAsync( + limit: 20, + offset: 10 +); + +// handle response +``` + +### Parameters + +| Parameter | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| `Paginated` | *bool* | :heavy_minus_sign: | Whether to paginate the results.
If true, the results will be paginated.
If false, the results will not be paginated. | | +| `Limit` | *long* | :heavy_minus_sign: | Applies a limit to the number of results returned.
Can be used for paginating the results together with `offset`. | 20 | +| `Offset` | *long* | :heavy_minus_sign: | Skip the first `offset` results when paginating.
Needs to be an integer greater or equal to zero.
To be used in conjunction with `limit`. | 10 | + +### Response + +**[GetBillingStatementListResponse](../../Models/Operations/GetBillingStatementListResponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | +| Clerk.BackendAPI.Models.Errors.ClerkErrors | 400, 401, 422 | application/json | +| Clerk.BackendAPI.Models.Errors.ClerkErrors | 500 | application/json | +| Clerk.BackendAPI.Models.Errors.SDKError | 4XX, 5XX | \*/\* | + +## GetStatement + +Retrieves the details of a billing statement. + +### Example Usage + + +```csharp +using Clerk.BackendAPI; +using Clerk.BackendAPI.Models.Components; + +var sdk = new ClerkBackendApi(bearerAuth: ""); + +var res = await sdk.Billing.GetStatementAsync(statementID: ""); + +// handle response +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | +| `StatementID` | *string* | :heavy_check_mark: | The ID of the statement to retrieve. | + +### Response + +**[GetBillingStatementResponse](../../Models/Operations/GetBillingStatementResponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | +| Clerk.BackendAPI.Models.Errors.ClerkErrors | 400, 401, 404, 422 | application/json | +| Clerk.BackendAPI.Models.Errors.ClerkErrors | 500 | application/json | +| Clerk.BackendAPI.Models.Errors.SDKError | 4XX, 5XX | \*/\* | + +## GetStatementPaymentAttempts + +Returns a list of all payment attempts for a specific billing statement. The payment attempts are returned sorted by creation date, +with the newest payment attempts appearing first. Pagination is supported. + +### Example Usage + + +```csharp +using Clerk.BackendAPI; +using Clerk.BackendAPI.Models.Components; + +var sdk = new ClerkBackendApi(bearerAuth: ""); + +var res = await sdk.Billing.GetStatementPaymentAttemptsAsync( + statementID: "", + limit: 20, + offset: 10 +); + +// handle response +``` + +### Parameters + +| Parameter | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| `StatementID` | *string* | :heavy_check_mark: | The ID of the statement to retrieve payment attempts for. | | +| `Paginated` | *bool* | :heavy_minus_sign: | Whether to paginate the results.
If true, the results will be paginated.
If false, the results will not be paginated. | | +| `Limit` | *long* | :heavy_minus_sign: | Applies a limit to the number of results returned.
Can be used for paginating the results together with `offset`. | 20 | +| `Offset` | *long* | :heavy_minus_sign: | Skip the first `offset` results when paginating.
Needs to be an integer greater or equal to zero.
To be used in conjunction with `limit`. | 10 | + +### Response + +**[GetBillingStatementPaymentAttemptsResponse](../../Models/Operations/GetBillingStatementPaymentAttemptsResponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | +| Clerk.BackendAPI.Models.Errors.ClerkErrors | 400, 401, 404, 422 | application/json | +| Clerk.BackendAPI.Models.Errors.ClerkErrors | 500 | application/json | +| Clerk.BackendAPI.Models.Errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/clerkbackendapi/README.md b/docs/sdks/clerkbackendapi/README.md deleted file mode 100644 index aabb6fb2..00000000 --- a/docs/sdks/clerkbackendapi/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# ClerkBackendApi SDK - -## Overview - -Clerk Backend API: The Clerk REST Backend API, meant to be accessed by backend servers. - -### Versions - -When the API changes in a way that isn't compatible with older versions, a new version is released. -Each version is identified by its release date, e.g. `2025-04-10`. For more information, please see [Clerk API Versions](https://clerk.com/docs/versioning/available-versions). - -Please see https://clerk.com/docs for more information. - - -### Available Operations diff --git a/docs/sdks/commerce/README.md b/docs/sdks/commerce/README.md index 6cd5e324..8c1552f9 100644 --- a/docs/sdks/commerce/README.md +++ b/docs/sdks/commerce/README.md @@ -8,7 +8,6 @@ * [ListPlans](#listplans) - List all commerce plans * [ListSubscriptionItems](#listsubscriptionitems) - List all subscription items * [CancelSubscriptionItem](#cancelsubscriptionitem) - Cancel a subscription item -* [ExtendSubscriptionItemFreeTrial](#extendsubscriptionitemfreetrial) - Extend free trial for a subscription item ## ListPlans @@ -130,52 +129,6 @@ var res = await sdk.Commerce.CancelSubscriptionItemAsync( ### Errors -| Error Type | Status Code | Content Type | -| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | -| Clerk.BackendAPI.Models.Errors.ClerkErrors | 400, 401, 403, 404, 422 | application/json | -| Clerk.BackendAPI.Models.Errors.ClerkErrors | 500 | application/json | -| Clerk.BackendAPI.Models.Errors.SDKError | 4XX, 5XX | \*/\* | - -## ExtendSubscriptionItemFreeTrial - -Extends the free trial period for a specific subscription item to the specified timestamp. -The subscription item must be currently in a free trial period, and the plan must support free trials. -The timestamp must be in the future and not more than 365 days from the end of the current trial period -This operation is idempotent - repeated requests with the same timestamp will not change the trial period. - -### Example Usage - - -```csharp -using Clerk.BackendAPI; -using Clerk.BackendAPI.Models.Components; -using System; - -var sdk = new ClerkBackendApi(bearerAuth: ""); - -var res = await sdk.Commerce.ExtendSubscriptionItemFreeTrialAsync( - subscriptionItemId: "", - extendFreeTrialRequest: new ExtendFreeTrialRequest() { - ExtendTo = System.DateTime.Parse("2026-01-08T00:00:00Z"), - } -); - -// handle response -``` - -### Parameters - -| Parameter | Type | Required | Description | -| --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | -| `SubscriptionItemId` | *string* | :heavy_check_mark: | The ID of the subscription item to extend the free trial for | -| `ExtendFreeTrialRequest` | [ExtendFreeTrialRequest](../../Models/Components/ExtendFreeTrialRequest.md) | :heavy_check_mark: | Parameters for extending the free trial | - -### Response - -**[ExtendCommerceSubscriptionItemFreeTrialResponse](../../Models/Operations/ExtendCommerceSubscriptionItemFreeTrialResponse.md)** - -### Errors - | Error Type | Status Code | Content Type | | ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | | Clerk.BackendAPI.Models.Errors.ClerkErrors | 400, 401, 403, 404, 422 | application/json | diff --git a/docs/sdks/experimentalaccountlessapplications/README.md b/docs/sdks/experimentalaccountlessapplications/README.md deleted file mode 100644 index 279e7968..00000000 --- a/docs/sdks/experimentalaccountlessapplications/README.md +++ /dev/null @@ -1,67 +0,0 @@ -# ExperimentalAccountlessApplications -(*ExperimentalAccountlessApplications*) - -## Overview - -### Available Operations - -* [Create](#create) - Create an accountless application [EXPERIMENTAL] -* [Complete](#complete) - Complete an accountless application [EXPERIMENTAL] - -## Create - -Creates a new accountless application. [EXPERIMENTAL] - -### Example Usage - - -```csharp -using Clerk.BackendAPI; -using Clerk.BackendAPI.Models.Components; - -var sdk = new ClerkBackendApi(bearerAuth: ""); - -var res = await sdk.ExperimentalAccountlessApplications.CreateAsync(); - -// handle response -``` - -### Response - -**[CreateAccountlessApplicationResponse](../../Models/Operations/CreateAccountlessApplicationResponse.md)** - -### Errors - -| Error Type | Status Code | Content Type | -| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | -| Clerk.BackendAPI.Models.Errors.ClerkErrors | 500 | application/json | -| Clerk.BackendAPI.Models.Errors.SDKError | 4XX, 5XX | \*/\* | - -## Complete - -Completes an accountless application. [EXPERIMENTAL] - -### Example Usage - - -```csharp -using Clerk.BackendAPI; -using Clerk.BackendAPI.Models.Components; - -var sdk = new ClerkBackendApi(bearerAuth: ""); - -var res = await sdk.ExperimentalAccountlessApplications.CompleteAsync(); - -// handle response -``` - -### Response - -**[CompleteAccountlessApplicationResponse](../../Models/Operations/CompleteAccountlessApplicationResponse.md)** - -### Errors - -| Error Type | Status Code | Content Type | -| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | -| Clerk.BackendAPI.Models.Errors.ClerkErrors | 500 | application/json | -| Clerk.BackendAPI.Models.Errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/oauthapplications/README.md b/docs/sdks/oauthapplications/README.md index 86674cce..b3266233 100644 --- a/docs/sdks/oauthapplications/README.md +++ b/docs/sdks/oauthapplications/README.md @@ -60,7 +60,7 @@ var res = await sdk.OauthApplications.ListAsync( ## Create Creates a new OAuth application with the given name and callback URL for an instance. -The callback URL must be a valid url. +The callback URL must be a valid URL. All URL schemes are allowed such as `http://`, `https://`, `myapp://`, etc... ### Example Usage diff --git a/docs/sdks/organizationdomains/README.md b/docs/sdks/organizationdomains/README.md index adc034ba..0f1bc186 100644 --- a/docs/sdks/organizationdomains/README.md +++ b/docs/sdks/organizationdomains/README.md @@ -120,7 +120,7 @@ var res = await sdk.OrganizationDomains.UpdateAsync( | Parameter | Type | Required | Description | | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | -| `OrganizationId` | *string* | :heavy_check_mark: | The ID of the organization the domain belongs to | +| `OrganizationId` | *string* | :heavy_check_mark: | The ID of the organization to which the domain belongs | | `DomainId` | *string* | :heavy_check_mark: | The ID of the domain | | `RequestBody` | [UpdateOrganizationDomainRequestBody](../../Models/Operations/UpdateOrganizationDomainRequestBody.md) | :heavy_check_mark: | N/A | @@ -158,10 +158,10 @@ var res = await sdk.OrganizationDomains.DeleteAsync( ### Parameters -| Parameter | Type | Required | Description | -| ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ | -| `OrganizationId` | *string* | :heavy_check_mark: | The ID of the organization the domain belongs to | -| `DomainId` | *string* | :heavy_check_mark: | The ID of the domain | +| Parameter | Type | Required | Description | +| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | +| `OrganizationId` | *string* | :heavy_check_mark: | The ID of the organization to which the domain belongs | +| `DomainId` | *string* | :heavy_check_mark: | The ID of the domain | ### Response diff --git a/docs/sdks/organizationmemberships/README.md b/docs/sdks/organizationmemberships/README.md index fa1c900e..64f1c754 100644 --- a/docs/sdks/organizationmemberships/README.md +++ b/docs/sdks/organizationmemberships/README.md @@ -133,8 +133,8 @@ var res = await sdk.OrganizationMemberships.UpdateAsync( | Parameter | Type | Required | Description | Example | | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | -| `OrganizationId` | *string* | :heavy_check_mark: | The ID of the organization to which the membership belongs | org_12345 | -| `UserId` | *string* | :heavy_check_mark: | The ID of the user that this membership belongs to | user_67890 | +| `OrganizationId` | *string* | :heavy_check_mark: | The ID of the organization to which this membership belongs | org_12345 | +| `UserId` | *string* | :heavy_check_mark: | The ID of the user to which this membership belongs | user_67890 | | `RequestBody` | [UpdateOrganizationMembershipRequestBody](../../Models/Operations/UpdateOrganizationMembershipRequestBody.md) | :heavy_check_mark: | N/A | | ### Response @@ -171,10 +171,10 @@ var res = await sdk.OrganizationMemberships.DeleteAsync( ### Parameters -| Parameter | Type | Required | Description | Example | -| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | -| `OrganizationId` | *string* | :heavy_check_mark: | The ID of the organization to which the membership belongs | org_12345 | -| `UserId` | *string* | :heavy_check_mark: | The ID of the user that this membership belongs to | user_67890 | +| Parameter | Type | Required | Description | Example | +| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | +| `OrganizationId` | *string* | :heavy_check_mark: | The ID of the organization to which this membership belongs | org_12345 | +| `UserId` | *string* | :heavy_check_mark: | The ID of the user to which this membership belongs | user_67890 | ### Response @@ -224,8 +224,8 @@ var res = await sdk.OrganizationMemberships.UpdateMetadataAsync( | Parameter | Type | Required | Description | Example | | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | -| `OrganizationId` | *string* | :heavy_check_mark: | The ID of the organization to which the membership belongs | org_123456 | -| `UserId` | *string* | :heavy_check_mark: | The ID of the user that this membership belongs to | user_654321 | +| `OrganizationId` | *string* | :heavy_check_mark: | The ID of the organization to which this membership belongs | org_123456 | +| `UserId` | *string* | :heavy_check_mark: | The ID of the user to which this membership belongs | user_654321 | | `RequestBody` | [UpdateOrganizationMembershipMetadataRequestBody](../../Models/Operations/UpdateOrganizationMembershipMetadataRequestBody.md) | :heavy_minus_sign: | N/A | | ### Response diff --git a/docs/sdks/organizations/README.md b/docs/sdks/organizations/README.md index 24f8843e..9cef115b 100644 --- a/docs/sdks/organizations/README.md +++ b/docs/sdks/organizations/README.md @@ -212,7 +212,7 @@ var res = await sdk.Organizations.UpdateAsync( | Error Type | Status Code | Content Type | | ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | -| Clerk.BackendAPI.Models.Errors.ClerkErrors | 402, 404, 422 | application/json | +| Clerk.BackendAPI.Models.Errors.ClerkErrors | 402, 403, 404, 422 | application/json | | Clerk.BackendAPI.Models.Errors.SDKError | 4XX, 5XX | \*/\* | ## Delete diff --git a/docs/sdks/sessions/README.md b/docs/sdks/sessions/README.md index 8cbff913..c9c8013d 100644 --- a/docs/sdks/sessions/README.md +++ b/docs/sdks/sessions/README.md @@ -11,7 +11,7 @@ * [Refresh](#refresh) - Refresh a session * [Revoke](#revoke) - Revoke a session * [CreateToken](#createtoken) - Create a session token -* [CreateTokenFromTemplate](#createtokenfromtemplate) - Create a session token from a jwt template +* [CreateTokenFromTemplate](#createtokenfromtemplate) - Create a session token from a JWT template ## List @@ -247,7 +247,7 @@ var res = await sdk.Sessions.CreateTokenAsync(sessionId: ""); ## CreateTokenFromTemplate -Creates a JSON Web Token(JWT) based on a session and a JWT Template name defined for your instance +Creates a JSON Web Token (JWT) based on a session and a JWT Template name defined for your instance ### Example Usage @@ -271,7 +271,7 @@ var res = await sdk.Sessions.CreateTokenFromTemplateAsync( | Parameter | Type | Required | Description | Example | | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | | `SessionId` | *string* | :heavy_check_mark: | The ID of the session | ses_123abcd4567 | -| `TemplateName` | *string* | :heavy_check_mark: | The name of the JWT Template defined in your instance (e.g. `custom_hasura`). | custom_hasura | +| `TemplateName` | *string* | :heavy_check_mark: | The name of the JWT template defined in your instance (e.g. `custom_hasura`). | custom_hasura | | `RequestBody` | [CreateSessionTokenFromTemplateRequestBody](../../Models/Operations/CreateSessionTokenFromTemplateRequestBody.md) | :heavy_minus_sign: | N/A | | ### Response diff --git a/docs/sdks/webhooks/README.md b/docs/sdks/webhooks/README.md index 4f0741f2..ebf27365 100644 --- a/docs/sdks/webhooks/README.md +++ b/docs/sdks/webhooks/README.md @@ -69,7 +69,7 @@ var res = await sdk.Webhooks.DeleteSvixAppAsync(); ## GenerateSvixAuthURL -Generate a new url for accessing the Svix's management dashboard for that particular instance +Generate a new URL for accessing the Svix's management dashboard for that particular instance ### Example Usage diff --git a/src/Clerk/BackendAPI/ActorTokens.cs b/src/Clerk/BackendAPI/ActorTokens.cs index 2fee9e8e..cf03fe69 100644 --- a/src/Clerk/BackendAPI/ActorTokens.cs +++ b/src/Clerk/BackendAPI/ActorTokens.cs @@ -49,9 +49,9 @@ public class ActorTokens: IActorTokens { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public ActorTokens(SDKConfig config) { @@ -78,7 +78,7 @@ public async Task CreateAsync(CreateActorTokenRequestB httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateActorToken", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateActorToken", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -225,7 +225,7 @@ public async Task RevokeAsync(string actorTokenId, Ret httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "RevokeActorToken", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "RevokeActorToken", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/AllowlistIdentifiers.cs b/src/Clerk/BackendAPI/AllowlistIdentifiers.cs index 23f5e6b6..fbe1e37c 100644 --- a/src/Clerk/BackendAPI/AllowlistIdentifiers.cs +++ b/src/Clerk/BackendAPI/AllowlistIdentifiers.cs @@ -57,9 +57,9 @@ public class AllowlistIdentifiers: IAllowlistIdentifiers { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public AllowlistIdentifiers(SDKConfig config) { @@ -85,7 +85,7 @@ public async Task ListAsync(bool? paginated = httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListAllowlistIdentifiers", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListAllowlistIdentifiers", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -235,7 +235,7 @@ public async Task CreateAsync(CreateAllowlist httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateAllowlistIdentifier", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateAllowlistIdentifier", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -382,7 +382,7 @@ public async Task DeleteAsync(string identifi httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteAllowlistIdentifier", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteAllowlistIdentifier", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/AwsCredentials.cs b/src/Clerk/BackendAPI/AwsCredentials.cs deleted file mode 100644 index a06f997b..00000000 --- a/src/Clerk/BackendAPI/AwsCredentials.cs +++ /dev/null @@ -1,361 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. -// -// Changes to this file may cause incorrect behavior and will be lost when -// the code is regenerated. -// -//------------------------------------------------------------------------------ -#nullable enable -namespace Clerk.BackendAPI -{ - using Clerk.BackendAPI.Hooks; - using Clerk.BackendAPI.Models.Components; - using Clerk.BackendAPI.Models.Errors; - using Clerk.BackendAPI.Models.Operations; - using Clerk.BackendAPI.Utils; - using Clerk.BackendAPI.Utils.Retries; - using Newtonsoft.Json; - using System; - using System.Collections.Generic; - using System.Net.Http; - using System.Net.Http.Headers; - using System.Threading.Tasks; - - public interface IAwsCredentials - { - - /// - /// Delete an AWS Credential - /// - /// - /// Delete the AWS Credential with the given ID - /// - /// - Task DeleteAsync(string id, RetryConfig? retryConfig = null); - - /// - /// Update an AWS Credential - /// - /// - /// Updates an AWS credential. - /// - /// - Task UpdateAsync(string id, UpdateAWSCredentialRequestBody? requestBody = null, RetryConfig? retryConfig = null); - } - - public class AwsCredentials: IAwsCredentials - { - public SDKConfig SDKConfiguration { get; private set; } - private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; - - public AwsCredentials(SDKConfig config) - { - SDKConfiguration = config; - } - - public async Task DeleteAsync(string id, RetryConfig? retryConfig = null) - { - var request = new DeleteAWSCredentialRequest() - { - Id = id, - }; - string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl(); - var urlString = URLBuilder.Build(baseUrl, "/aws_credentials/{id}", request); - - var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString); - httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); - - if (SDKConfiguration.SecuritySource != null) - { - httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); - } - - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteAWSCredential", new List { }, SDKConfiguration.SecuritySource); - - httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); - if (retryConfig == null) - { - if (this.SDKConfiguration.RetryConfig != null) - { - retryConfig = this.SDKConfiguration.RetryConfig; - } - else - { - var backoff = new BackoffStrategy( - initialIntervalMs: 500L, - maxIntervalMs: 60000L, - maxElapsedTimeMs: 3600000L, - exponent: 1.5 - ); - retryConfig = new RetryConfig( - strategy: RetryConfig.RetryStrategy.BACKOFF, - backoff: backoff, - retryConnectionErrors: true - ); - } - } - - List statusCodes = new List - { - "5XX", - }; - - Func> retrySend = async () => - { - var _httpRequest = await SDKConfiguration.Client.CloneAsync(httpRequest); - return await SDKConfiguration.Client.SendAsync(_httpRequest); - }; - var retries = new Clerk.BackendAPI.Utils.Retries.Retries(retrySend, retryConfig, statusCodes); - - HttpResponseMessage httpResponse; - try - { - httpResponse = await retries.Run(); - int _statusCode = (int)httpResponse.StatusCode; - - if (_statusCode == 400 || _statusCode == 401 || _statusCode == 403 || _statusCode == 404 || _statusCode >= 400 && _statusCode < 500 || _statusCode >= 500 && _statusCode < 600) - { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), httpResponse, null); - if (_httpResponse != null) - { - httpResponse = _httpResponse; - } - } - } - catch (Exception error) - { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); - if (_httpResponse != null) - { - httpResponse = _httpResponse; - } - else - { - throw; - } - } - - httpResponse = await this.SDKConfiguration.Hooks.AfterSuccessAsync(new AfterSuccessContext(hookCtx), httpResponse); - - var contentType = httpResponse.Content.Headers.ContentType?.MediaType; - int responseStatusCode = (int)httpResponse.StatusCode; - if(responseStatusCode == 200) - { - if(Utilities.IsContentTypeMatch("application/json", contentType)) - { - var httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); - DeletedObject obj; - try - { - obj = ResponseBodyDeserializer.DeserializeNotNull(httpResponseBody, NullValueHandling.Ignore); - } - catch (Exception ex) - { - throw new ResponseValidationException("Failed to deserialize response body into DeletedObject.", httpRequest, httpResponse, httpResponseBody, ex); - } - - var response = new DeleteAWSCredentialResponse() - { - HttpMeta = new Models.Components.HTTPMetadata() - { - Response = httpResponse, - Request = httpRequest - } - }; - response.DeletedObject = obj; - return response; - } - - throw new Models.Errors.SDKError("Unknown content type received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); - } - else if(new List{400, 401, 403, 404}.Contains(responseStatusCode)) - { - if(Utilities.IsContentTypeMatch("application/json", contentType)) - { - var httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); - ClerkErrorsPayload payload; - try - { - payload = ResponseBodyDeserializer.DeserializeNotNull(httpResponseBody, NullValueHandling.Ignore); - } - catch (Exception ex) - { - throw new ResponseValidationException("Failed to deserialize response body into ClerkErrorsPayload.", httpRequest, httpResponse, httpResponseBody, ex); - } - - throw new ClerkErrors(payload, httpRequest, httpResponse, httpResponseBody); - } - - throw new Models.Errors.SDKError("Unknown content type received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); - } - else if(responseStatusCode >= 400 && responseStatusCode < 500) - { - throw new Models.Errors.SDKError("API error occurred", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); - } - else if(responseStatusCode >= 500 && responseStatusCode < 600) - { - throw new Models.Errors.SDKError("API error occurred", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); - } - - throw new Models.Errors.SDKError("Unknown status code received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); - } - - public async Task UpdateAsync(string id, UpdateAWSCredentialRequestBody? requestBody = null, RetryConfig? retryConfig = null) - { - var request = new UpdateAWSCredentialRequest() - { - Id = id, - RequestBody = requestBody, - }; - string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl(); - var urlString = URLBuilder.Build(baseUrl, "/aws_credentials/{id}", request); - - var httpRequest = new HttpRequestMessage(HttpMethod.Patch, urlString); - httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); - - var serializedBody = RequestBodySerializer.Serialize(request, "RequestBody", "json", false, true); - if (serializedBody != null) - { - httpRequest.Content = serializedBody; - } - - if (SDKConfiguration.SecuritySource != null) - { - httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); - } - - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateAWSCredential", new List { }, SDKConfiguration.SecuritySource); - - httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); - if (retryConfig == null) - { - if (this.SDKConfiguration.RetryConfig != null) - { - retryConfig = this.SDKConfiguration.RetryConfig; - } - else - { - var backoff = new BackoffStrategy( - initialIntervalMs: 500L, - maxIntervalMs: 60000L, - maxElapsedTimeMs: 3600000L, - exponent: 1.5 - ); - retryConfig = new RetryConfig( - strategy: RetryConfig.RetryStrategy.BACKOFF, - backoff: backoff, - retryConnectionErrors: true - ); - } - } - - List statusCodes = new List - { - "5XX", - }; - - Func> retrySend = async () => - { - var _httpRequest = await SDKConfiguration.Client.CloneAsync(httpRequest); - return await SDKConfiguration.Client.SendAsync(_httpRequest); - }; - var retries = new Clerk.BackendAPI.Utils.Retries.Retries(retrySend, retryConfig, statusCodes); - - HttpResponseMessage httpResponse; - try - { - httpResponse = await retries.Run(); - int _statusCode = (int)httpResponse.StatusCode; - - if (_statusCode == 400 || _statusCode == 401 || _statusCode == 403 || _statusCode == 404 || _statusCode >= 400 && _statusCode < 500 || _statusCode >= 500 && _statusCode < 600) - { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), httpResponse, null); - if (_httpResponse != null) - { - httpResponse = _httpResponse; - } - } - } - catch (Exception error) - { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); - if (_httpResponse != null) - { - httpResponse = _httpResponse; - } - else - { - throw; - } - } - - httpResponse = await this.SDKConfiguration.Hooks.AfterSuccessAsync(new AfterSuccessContext(hookCtx), httpResponse); - - var contentType = httpResponse.Content.Headers.ContentType?.MediaType; - int responseStatusCode = (int)httpResponse.StatusCode; - if(responseStatusCode == 200) - { - if(Utilities.IsContentTypeMatch("application/json", contentType)) - { - var httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); - AWSCredential obj; - try - { - obj = ResponseBodyDeserializer.DeserializeNotNull(httpResponseBody, NullValueHandling.Ignore); - } - catch (Exception ex) - { - throw new ResponseValidationException("Failed to deserialize response body into AWSCredential.", httpRequest, httpResponse, httpResponseBody, ex); - } - - var response = new UpdateAWSCredentialResponse() - { - HttpMeta = new Models.Components.HTTPMetadata() - { - Response = httpResponse, - Request = httpRequest - } - }; - response.AWSCredential = obj; - return response; - } - - throw new Models.Errors.SDKError("Unknown content type received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); - } - else if(new List{400, 401, 403, 404}.Contains(responseStatusCode)) - { - if(Utilities.IsContentTypeMatch("application/json", contentType)) - { - var httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); - ClerkErrorsPayload payload; - try - { - payload = ResponseBodyDeserializer.DeserializeNotNull(httpResponseBody, NullValueHandling.Ignore); - } - catch (Exception ex) - { - throw new ResponseValidationException("Failed to deserialize response body into ClerkErrorsPayload.", httpRequest, httpResponse, httpResponseBody, ex); - } - - throw new ClerkErrors(payload, httpRequest, httpResponse, httpResponseBody); - } - - throw new Models.Errors.SDKError("Unknown content type received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); - } - else if(responseStatusCode >= 400 && responseStatusCode < 500) - { - throw new Models.Errors.SDKError("API error occurred", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); - } - else if(responseStatusCode >= 500 && responseStatusCode < 600) - { - throw new Models.Errors.SDKError("API error occurred", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); - } - - throw new Models.Errors.SDKError("Unknown status code received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); - } - } -} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/BetaFeatures.cs b/src/Clerk/BackendAPI/BetaFeatures.cs index 85d885a6..35978504 100644 --- a/src/Clerk/BackendAPI/BetaFeatures.cs +++ b/src/Clerk/BackendAPI/BetaFeatures.cs @@ -52,9 +52,9 @@ public class BetaFeatures: IBetaFeatures { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public BetaFeatures(SDKConfig config) { @@ -81,7 +81,7 @@ public async Task UpdateInstanceSettingsAsync( httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateInstanceAuthConfig", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateInstanceAuthConfig", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -232,7 +232,7 @@ public async Task UpdateProductionInstan httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateProductionInstanceDomain", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateProductionInstanceDomain", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/Billing.cs b/src/Clerk/BackendAPI/Billing.cs new file mode 100644 index 00000000..40296103 --- /dev/null +++ b/src/Clerk/BackendAPI/Billing.cs @@ -0,0 +1,763 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI +{ + using Clerk.BackendAPI.Hooks; + using Clerk.BackendAPI.Models.Components; + using Clerk.BackendAPI.Models.Errors; + using Clerk.BackendAPI.Models.Operations; + using Clerk.BackendAPI.Utils; + using Clerk.BackendAPI.Utils.Retries; + using Newtonsoft.Json; + using System; + using System.Collections.Generic; + using System.Net.Http; + using System.Net.Http.Headers; + using System.Threading.Tasks; + + public interface IBilling + { + + /// + /// Extend free trial for a subscription item + /// + /// + /// Extends the free trial period for a specific subscription item to the specified timestamp.
+ /// The subscription item must be currently in a free trial period, and the plan must support free trials.
+ /// The timestamp must be in the future and not more than 365 days from the end of the current trial period
+ /// This operation is idempotent - repeated requests with the same timestamp will not change the trial period. + ///
+ ///
+ Task ExtendSubscriptionItemFreeTrialAsync(string subscriptionItemId, ExtendFreeTrialRequest extendFreeTrialRequest, RetryConfig? retryConfig = null); + + /// + /// List all billing statements + /// + /// + /// Returns a list of all billing statements for the instance. The statements are returned sorted by creation date,
+ /// with the newest statements appearing first. Pagination is supported. + ///
+ ///
+ Task ListStatementsAsync(bool? paginated = null, long? limit = 10, long? offset = 0, RetryConfig? retryConfig = null); + + /// + /// Retrieve a billing statement + /// + /// + /// Retrieves the details of a billing statement. + /// + /// + Task GetStatementAsync(string statementID, RetryConfig? retryConfig = null); + + /// + /// List payment attempts for a billing statement + /// + /// + /// Returns a list of all payment attempts for a specific billing statement. The payment attempts are returned sorted by creation date,
+ /// with the newest payment attempts appearing first. Pagination is supported. + ///
+ ///
+ Task GetStatementPaymentAttemptsAsync(string statementID, bool? paginated = null, long? limit = 10, long? offset = 0, RetryConfig? retryConfig = null); + } + + public class Billing: IBilling + { + public SDKConfig SDKConfiguration { get; private set; } + private const string _language = "csharp"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; + + public Billing(SDKConfig config) + { + SDKConfiguration = config; + } + + public async Task ExtendSubscriptionItemFreeTrialAsync(string subscriptionItemId, ExtendFreeTrialRequest extendFreeTrialRequest, RetryConfig? retryConfig = null) + { + var request = new ExtendBillingSubscriptionItemFreeTrialRequest() + { + SubscriptionItemId = subscriptionItemId, + ExtendFreeTrialRequest = extendFreeTrialRequest, + }; + string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl(); + var urlString = URLBuilder.Build(baseUrl, "/billing/subscription_items/{subscription_item_id}/extend_free_trial", request); + + var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString); + httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + + var serializedBody = RequestBodySerializer.Serialize(request, "ExtendFreeTrialRequest", "json", false, false); + if (serializedBody != null) + { + httpRequest.Content = serializedBody; + } + + if (SDKConfiguration.SecuritySource != null) + { + httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); + } + + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ExtendBillingSubscriptionItemFreeTrial", null, SDKConfiguration.SecuritySource); + + httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); + if (retryConfig == null) + { + if (this.SDKConfiguration.RetryConfig != null) + { + retryConfig = this.SDKConfiguration.RetryConfig; + } + else + { + var backoff = new BackoffStrategy( + initialIntervalMs: 500L, + maxIntervalMs: 60000L, + maxElapsedTimeMs: 3600000L, + exponent: 1.5 + ); + retryConfig = new RetryConfig( + strategy: RetryConfig.RetryStrategy.BACKOFF, + backoff: backoff, + retryConnectionErrors: true + ); + } + } + + List statusCodes = new List + { + "5XX", + }; + + Func> retrySend = async () => + { + var _httpRequest = await SDKConfiguration.Client.CloneAsync(httpRequest); + return await SDKConfiguration.Client.SendAsync(_httpRequest); + }; + var retries = new Clerk.BackendAPI.Utils.Retries.Retries(retrySend, retryConfig, statusCodes); + + HttpResponseMessage httpResponse; + try + { + httpResponse = await retries.Run(); + int _statusCode = (int)httpResponse.StatusCode; + + if (_statusCode == 400 || _statusCode == 401 || _statusCode == 403 || _statusCode == 404 || _statusCode == 422 || _statusCode >= 400 && _statusCode < 500 || _statusCode == 500 || _statusCode >= 500 && _statusCode < 600) + { + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), httpResponse, null); + if (_httpResponse != null) + { + httpResponse = _httpResponse; + } + } + } + catch (Exception error) + { + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + if (_httpResponse != null) + { + httpResponse = _httpResponse; + } + else + { + throw; + } + } + + httpResponse = await this.SDKConfiguration.Hooks.AfterSuccessAsync(new AfterSuccessContext(hookCtx), httpResponse); + + var contentType = httpResponse.Content.Headers.ContentType?.MediaType; + int responseStatusCode = (int)httpResponse.StatusCode; + if(responseStatusCode == 200) + { + if(Utilities.IsContentTypeMatch("application/json", contentType)) + { + var httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); + SchemasCommerceSubscriptionItem obj; + try + { + obj = ResponseBodyDeserializer.DeserializeNotNull(httpResponseBody, NullValueHandling.Ignore); + } + catch (Exception ex) + { + throw new ResponseValidationException("Failed to deserialize response body into SchemasCommerceSubscriptionItem.", httpRequest, httpResponse, httpResponseBody, ex); + } + + var response = new ExtendBillingSubscriptionItemFreeTrialResponse() + { + HttpMeta = new Models.Components.HTTPMetadata() + { + Response = httpResponse, + Request = httpRequest + } + }; + response.SchemasCommerceSubscriptionItem = obj; + return response; + } + + throw new Models.Errors.SDKError("Unknown content type received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + else if(new List{400, 401, 403, 404, 422}.Contains(responseStatusCode)) + { + if(Utilities.IsContentTypeMatch("application/json", contentType)) + { + var httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); + ClerkErrorsPayload payload; + try + { + payload = ResponseBodyDeserializer.DeserializeNotNull(httpResponseBody, NullValueHandling.Ignore); + } + catch (Exception ex) + { + throw new ResponseValidationException("Failed to deserialize response body into ClerkErrorsPayload.", httpRequest, httpResponse, httpResponseBody, ex); + } + + throw new ClerkErrors(payload, httpRequest, httpResponse, httpResponseBody); + } + + throw new Models.Errors.SDKError("Unknown content type received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + else if(responseStatusCode == 500) + { + if(Utilities.IsContentTypeMatch("application/json", contentType)) + { + var httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); + ClerkErrorsPayload payload; + try + { + payload = ResponseBodyDeserializer.DeserializeNotNull(httpResponseBody, NullValueHandling.Ignore); + } + catch (Exception ex) + { + throw new ResponseValidationException("Failed to deserialize response body into ClerkErrorsPayload.", httpRequest, httpResponse, httpResponseBody, ex); + } + + throw new ClerkErrors(payload, httpRequest, httpResponse, httpResponseBody); + } + + throw new Models.Errors.SDKError("Unknown content type received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + else if(responseStatusCode >= 400 && responseStatusCode < 500) + { + throw new Models.Errors.SDKError("API error occurred", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + else if(responseStatusCode >= 500 && responseStatusCode < 600) + { + throw new Models.Errors.SDKError("API error occurred", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + + throw new Models.Errors.SDKError("Unknown status code received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + + public async Task ListStatementsAsync(bool? paginated = null, long? limit = 10, long? offset = 0, RetryConfig? retryConfig = null) + { + var request = new GetBillingStatementListRequest() + { + Paginated = paginated, + Limit = limit, + Offset = offset, + }; + string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl(); + var urlString = URLBuilder.Build(baseUrl, "/billing/statements", request); + + var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString); + httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + + if (SDKConfiguration.SecuritySource != null) + { + httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); + } + + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetBillingStatementList", null, SDKConfiguration.SecuritySource); + + httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); + if (retryConfig == null) + { + if (this.SDKConfiguration.RetryConfig != null) + { + retryConfig = this.SDKConfiguration.RetryConfig; + } + else + { + var backoff = new BackoffStrategy( + initialIntervalMs: 500L, + maxIntervalMs: 60000L, + maxElapsedTimeMs: 3600000L, + exponent: 1.5 + ); + retryConfig = new RetryConfig( + strategy: RetryConfig.RetryStrategy.BACKOFF, + backoff: backoff, + retryConnectionErrors: true + ); + } + } + + List statusCodes = new List + { + "5XX", + }; + + Func> retrySend = async () => + { + var _httpRequest = await SDKConfiguration.Client.CloneAsync(httpRequest); + return await SDKConfiguration.Client.SendAsync(_httpRequest); + }; + var retries = new Clerk.BackendAPI.Utils.Retries.Retries(retrySend, retryConfig, statusCodes); + + HttpResponseMessage httpResponse; + try + { + httpResponse = await retries.Run(); + int _statusCode = (int)httpResponse.StatusCode; + + if (_statusCode == 400 || _statusCode == 401 || _statusCode == 422 || _statusCode >= 400 && _statusCode < 500 || _statusCode == 500 || _statusCode >= 500 && _statusCode < 600) + { + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), httpResponse, null); + if (_httpResponse != null) + { + httpResponse = _httpResponse; + } + } + } + catch (Exception error) + { + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + if (_httpResponse != null) + { + httpResponse = _httpResponse; + } + else + { + throw; + } + } + + httpResponse = await this.SDKConfiguration.Hooks.AfterSuccessAsync(new AfterSuccessContext(hookCtx), httpResponse); + + var contentType = httpResponse.Content.Headers.ContentType?.MediaType; + int responseStatusCode = (int)httpResponse.StatusCode; + if(responseStatusCode == 200) + { + if(Utilities.IsContentTypeMatch("application/json", contentType)) + { + var httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); + PaginatedBillingStatementResponse obj; + try + { + obj = ResponseBodyDeserializer.DeserializeNotNull(httpResponseBody, NullValueHandling.Include); + } + catch (Exception ex) + { + throw new ResponseValidationException("Failed to deserialize response body into PaginatedBillingStatementResponse.", httpRequest, httpResponse, httpResponseBody, ex); + } + + var response = new GetBillingStatementListResponse() + { + HttpMeta = new Models.Components.HTTPMetadata() + { + Response = httpResponse, + Request = httpRequest + } + }; + response.PaginatedBillingStatementResponse = obj; + return response; + } + + throw new Models.Errors.SDKError("Unknown content type received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + else if(new List{400, 401, 422}.Contains(responseStatusCode)) + { + if(Utilities.IsContentTypeMatch("application/json", contentType)) + { + var httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); + ClerkErrorsPayload payload; + try + { + payload = ResponseBodyDeserializer.DeserializeNotNull(httpResponseBody, NullValueHandling.Include); + } + catch (Exception ex) + { + throw new ResponseValidationException("Failed to deserialize response body into ClerkErrorsPayload.", httpRequest, httpResponse, httpResponseBody, ex); + } + + throw new ClerkErrors(payload, httpRequest, httpResponse, httpResponseBody); + } + + throw new Models.Errors.SDKError("Unknown content type received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + else if(responseStatusCode == 500) + { + if(Utilities.IsContentTypeMatch("application/json", contentType)) + { + var httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); + ClerkErrorsPayload payload; + try + { + payload = ResponseBodyDeserializer.DeserializeNotNull(httpResponseBody, NullValueHandling.Include); + } + catch (Exception ex) + { + throw new ResponseValidationException("Failed to deserialize response body into ClerkErrorsPayload.", httpRequest, httpResponse, httpResponseBody, ex); + } + + throw new ClerkErrors(payload, httpRequest, httpResponse, httpResponseBody); + } + + throw new Models.Errors.SDKError("Unknown content type received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + else if(responseStatusCode >= 400 && responseStatusCode < 500) + { + throw new Models.Errors.SDKError("API error occurred", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + else if(responseStatusCode >= 500 && responseStatusCode < 600) + { + throw new Models.Errors.SDKError("API error occurred", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + + throw new Models.Errors.SDKError("Unknown status code received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + + public async Task GetStatementAsync(string statementID, RetryConfig? retryConfig = null) + { + var request = new GetBillingStatementRequest() + { + StatementID = statementID, + }; + string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl(); + var urlString = URLBuilder.Build(baseUrl, "/billing/statements/{statementID}", request); + + var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString); + httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + + if (SDKConfiguration.SecuritySource != null) + { + httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); + } + + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetBillingStatement", null, SDKConfiguration.SecuritySource); + + httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); + if (retryConfig == null) + { + if (this.SDKConfiguration.RetryConfig != null) + { + retryConfig = this.SDKConfiguration.RetryConfig; + } + else + { + var backoff = new BackoffStrategy( + initialIntervalMs: 500L, + maxIntervalMs: 60000L, + maxElapsedTimeMs: 3600000L, + exponent: 1.5 + ); + retryConfig = new RetryConfig( + strategy: RetryConfig.RetryStrategy.BACKOFF, + backoff: backoff, + retryConnectionErrors: true + ); + } + } + + List statusCodes = new List + { + "5XX", + }; + + Func> retrySend = async () => + { + var _httpRequest = await SDKConfiguration.Client.CloneAsync(httpRequest); + return await SDKConfiguration.Client.SendAsync(_httpRequest); + }; + var retries = new Clerk.BackendAPI.Utils.Retries.Retries(retrySend, retryConfig, statusCodes); + + HttpResponseMessage httpResponse; + try + { + httpResponse = await retries.Run(); + int _statusCode = (int)httpResponse.StatusCode; + + if (_statusCode == 400 || _statusCode == 401 || _statusCode == 404 || _statusCode == 422 || _statusCode >= 400 && _statusCode < 500 || _statusCode == 500 || _statusCode >= 500 && _statusCode < 600) + { + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), httpResponse, null); + if (_httpResponse != null) + { + httpResponse = _httpResponse; + } + } + } + catch (Exception error) + { + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + if (_httpResponse != null) + { + httpResponse = _httpResponse; + } + else + { + throw; + } + } + + httpResponse = await this.SDKConfiguration.Hooks.AfterSuccessAsync(new AfterSuccessContext(hookCtx), httpResponse); + + var contentType = httpResponse.Content.Headers.ContentType?.MediaType; + int responseStatusCode = (int)httpResponse.StatusCode; + if(responseStatusCode == 200) + { + if(Utilities.IsContentTypeMatch("application/json", contentType)) + { + var httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); + BillingStatement obj; + try + { + obj = ResponseBodyDeserializer.DeserializeNotNull(httpResponseBody, NullValueHandling.Ignore); + } + catch (Exception ex) + { + throw new ResponseValidationException("Failed to deserialize response body into BillingStatement.", httpRequest, httpResponse, httpResponseBody, ex); + } + + var response = new GetBillingStatementResponse() + { + HttpMeta = new Models.Components.HTTPMetadata() + { + Response = httpResponse, + Request = httpRequest + } + }; + response.BillingStatement = obj; + return response; + } + + throw new Models.Errors.SDKError("Unknown content type received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + else if(new List{400, 401, 404, 422}.Contains(responseStatusCode)) + { + if(Utilities.IsContentTypeMatch("application/json", contentType)) + { + var httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); + ClerkErrorsPayload payload; + try + { + payload = ResponseBodyDeserializer.DeserializeNotNull(httpResponseBody, NullValueHandling.Ignore); + } + catch (Exception ex) + { + throw new ResponseValidationException("Failed to deserialize response body into ClerkErrorsPayload.", httpRequest, httpResponse, httpResponseBody, ex); + } + + throw new ClerkErrors(payload, httpRequest, httpResponse, httpResponseBody); + } + + throw new Models.Errors.SDKError("Unknown content type received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + else if(responseStatusCode == 500) + { + if(Utilities.IsContentTypeMatch("application/json", contentType)) + { + var httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); + ClerkErrorsPayload payload; + try + { + payload = ResponseBodyDeserializer.DeserializeNotNull(httpResponseBody, NullValueHandling.Ignore); + } + catch (Exception ex) + { + throw new ResponseValidationException("Failed to deserialize response body into ClerkErrorsPayload.", httpRequest, httpResponse, httpResponseBody, ex); + } + + throw new ClerkErrors(payload, httpRequest, httpResponse, httpResponseBody); + } + + throw new Models.Errors.SDKError("Unknown content type received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + else if(responseStatusCode >= 400 && responseStatusCode < 500) + { + throw new Models.Errors.SDKError("API error occurred", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + else if(responseStatusCode >= 500 && responseStatusCode < 600) + { + throw new Models.Errors.SDKError("API error occurred", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + + throw new Models.Errors.SDKError("Unknown status code received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + + public async Task GetStatementPaymentAttemptsAsync(string statementID, bool? paginated = null, long? limit = 10, long? offset = 0, RetryConfig? retryConfig = null) + { + var request = new GetBillingStatementPaymentAttemptsRequest() + { + StatementID = statementID, + Paginated = paginated, + Limit = limit, + Offset = offset, + }; + string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl(); + var urlString = URLBuilder.Build(baseUrl, "/billing/statements/{statementID}/payment_attempts", request); + + var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString); + httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); + + if (SDKConfiguration.SecuritySource != null) + { + httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); + } + + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetBillingStatementPaymentAttempts", null, SDKConfiguration.SecuritySource); + + httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); + if (retryConfig == null) + { + if (this.SDKConfiguration.RetryConfig != null) + { + retryConfig = this.SDKConfiguration.RetryConfig; + } + else + { + var backoff = new BackoffStrategy( + initialIntervalMs: 500L, + maxIntervalMs: 60000L, + maxElapsedTimeMs: 3600000L, + exponent: 1.5 + ); + retryConfig = new RetryConfig( + strategy: RetryConfig.RetryStrategy.BACKOFF, + backoff: backoff, + retryConnectionErrors: true + ); + } + } + + List statusCodes = new List + { + "5XX", + }; + + Func> retrySend = async () => + { + var _httpRequest = await SDKConfiguration.Client.CloneAsync(httpRequest); + return await SDKConfiguration.Client.SendAsync(_httpRequest); + }; + var retries = new Clerk.BackendAPI.Utils.Retries.Retries(retrySend, retryConfig, statusCodes); + + HttpResponseMessage httpResponse; + try + { + httpResponse = await retries.Run(); + int _statusCode = (int)httpResponse.StatusCode; + + if (_statusCode == 400 || _statusCode == 401 || _statusCode == 404 || _statusCode == 422 || _statusCode >= 400 && _statusCode < 500 || _statusCode == 500 || _statusCode >= 500 && _statusCode < 600) + { + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), httpResponse, null); + if (_httpResponse != null) + { + httpResponse = _httpResponse; + } + } + } + catch (Exception error) + { + var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); + if (_httpResponse != null) + { + httpResponse = _httpResponse; + } + else + { + throw; + } + } + + httpResponse = await this.SDKConfiguration.Hooks.AfterSuccessAsync(new AfterSuccessContext(hookCtx), httpResponse); + + var contentType = httpResponse.Content.Headers.ContentType?.MediaType; + int responseStatusCode = (int)httpResponse.StatusCode; + if(responseStatusCode == 200) + { + if(Utilities.IsContentTypeMatch("application/json", contentType)) + { + var httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); + PaginatedBillingPaymentAttemptResponse obj; + try + { + obj = ResponseBodyDeserializer.DeserializeNotNull(httpResponseBody, NullValueHandling.Ignore); + } + catch (Exception ex) + { + throw new ResponseValidationException("Failed to deserialize response body into PaginatedBillingPaymentAttemptResponse.", httpRequest, httpResponse, httpResponseBody, ex); + } + + var response = new GetBillingStatementPaymentAttemptsResponse() + { + HttpMeta = new Models.Components.HTTPMetadata() + { + Response = httpResponse, + Request = httpRequest + } + }; + response.PaginatedBillingPaymentAttemptResponse = obj; + return response; + } + + throw new Models.Errors.SDKError("Unknown content type received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + else if(new List{400, 401, 404, 422}.Contains(responseStatusCode)) + { + if(Utilities.IsContentTypeMatch("application/json", contentType)) + { + var httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); + ClerkErrorsPayload payload; + try + { + payload = ResponseBodyDeserializer.DeserializeNotNull(httpResponseBody, NullValueHandling.Ignore); + } + catch (Exception ex) + { + throw new ResponseValidationException("Failed to deserialize response body into ClerkErrorsPayload.", httpRequest, httpResponse, httpResponseBody, ex); + } + + throw new ClerkErrors(payload, httpRequest, httpResponse, httpResponseBody); + } + + throw new Models.Errors.SDKError("Unknown content type received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + else if(responseStatusCode == 500) + { + if(Utilities.IsContentTypeMatch("application/json", contentType)) + { + var httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); + ClerkErrorsPayload payload; + try + { + payload = ResponseBodyDeserializer.DeserializeNotNull(httpResponseBody, NullValueHandling.Ignore); + } + catch (Exception ex) + { + throw new ResponseValidationException("Failed to deserialize response body into ClerkErrorsPayload.", httpRequest, httpResponse, httpResponseBody, ex); + } + + throw new ClerkErrors(payload, httpRequest, httpResponse, httpResponseBody); + } + + throw new Models.Errors.SDKError("Unknown content type received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + else if(responseStatusCode >= 400 && responseStatusCode < 500) + { + throw new Models.Errors.SDKError("API error occurred", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + else if(responseStatusCode >= 500 && responseStatusCode < 600) + { + throw new Models.Errors.SDKError("API error occurred", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + + throw new Models.Errors.SDKError("Unknown status code received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); + } + } +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/BlocklistIdentifiers.cs b/src/Clerk/BackendAPI/BlocklistIdentifiers.cs index 8b0ede16..2df4dd47 100644 --- a/src/Clerk/BackendAPI/BlocklistIdentifiers.cs +++ b/src/Clerk/BackendAPI/BlocklistIdentifiers.cs @@ -57,9 +57,9 @@ public class BlocklistIdentifiers: IBlocklistIdentifiers { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public BlocklistIdentifiers(SDKConfig config) { @@ -80,7 +80,7 @@ public async Task ListAsync(RetryConfig? retry httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListBlocklistIdentifiers", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListBlocklistIdentifiers", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -230,7 +230,7 @@ public async Task CreateAsync(CreateBlocklist httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateBlocklistIdentifier", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateBlocklistIdentifier", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -377,7 +377,7 @@ public async Task DeleteAsync(string identifi httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteBlocklistIdentifier", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteBlocklistIdentifier", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/Clerk.BackendAPI.csproj b/src/Clerk/BackendAPI/Clerk.BackendAPI.csproj index 21999d52..1f21595b 100644 --- a/src/Clerk/BackendAPI/Clerk.BackendAPI.csproj +++ b/src/Clerk/BackendAPI/Clerk.BackendAPI.csproj @@ -3,7 +3,7 @@ true Clerk.BackendAPI - 0.13.0 + 0.14.0 net8.0 Clerk Copyright (c) Clerk 2025 diff --git a/src/Clerk/BackendAPI/ClerkBackendApi.cs b/src/Clerk/BackendAPI/ClerkBackendApi.cs index 8c1f2913..f2201b55 100644 --- a/src/Clerk/BackendAPI/ClerkBackendApi.cs +++ b/src/Clerk/BackendAPI/ClerkBackendApi.cs @@ -39,7 +39,6 @@ public interface IClerkBackendApi { public IMiscellaneous Miscellaneous { get; } public IJwks Jwks { get; } - public IAwsCredentials AwsCredentials { get; } public IClients Clients { get; } public IEmailAddresses EmailAddresses { get; } public IPhoneNumbers PhoneNumbers { get; } @@ -70,8 +69,8 @@ public interface IClerkBackendApi public ISamlConnections SamlConnections { get; } public ITestingTokens TestingTokens { get; } public IWaitlistEntries WaitlistEntries { get; } - public IExperimentalAccountlessApplications ExperimentalAccountlessApplications { get; } public ICommerce Commerce { get; } + public IBilling Billing { get; } public IM2m M2m { get; } public IOauthAccessTokens OauthAccessTokens { get; } } @@ -97,12 +96,11 @@ public class ClerkBackendApi: IClerkBackendApi public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public IMiscellaneous Miscellaneous { get; private set; } public IJwks Jwks { get; private set; } - public IAwsCredentials AwsCredentials { get; private set; } public IClients Clients { get; private set; } public IEmailAddresses EmailAddresses { get; private set; } public IPhoneNumbers PhoneNumbers { get; private set; } @@ -133,8 +131,8 @@ public class ClerkBackendApi: IClerkBackendApi public ISamlConnections SamlConnections { get; private set; } public ITestingTokens TestingTokens { get; private set; } public IWaitlistEntries WaitlistEntries { get; private set; } - public IExperimentalAccountlessApplications ExperimentalAccountlessApplications { get; private set; } public ICommerce Commerce { get; private set; } + public IBilling Billing { get; private set; } public IM2m M2m { get; private set; } public IOauthAccessTokens OauthAccessTokens { get; private set; } @@ -147,8 +145,6 @@ public ClerkBackendApi(SDKConfig config) Jwks = new Jwks(SDKConfiguration); - AwsCredentials = new AwsCredentials(SDKConfiguration); - Clients = new Clients(SDKConfiguration); EmailAddresses = new EmailAddresses(SDKConfiguration); @@ -209,15 +205,26 @@ public ClerkBackendApi(SDKConfig config) WaitlistEntries = new WaitlistEntries(SDKConfiguration); - ExperimentalAccountlessApplications = new ExperimentalAccountlessApplications(SDKConfiguration); - Commerce = new Commerce(SDKConfiguration); + Billing = new Billing(SDKConfiguration); + M2m = new M2m(SDKConfiguration); OauthAccessTokens = new OauthAccessTokens(SDKConfiguration); } + /// + /// Initializes a new instance of the SDK with optional configuration parameters. + /// + /// The security configuration to use for API requests. If provided, this will be used as a static security configuration. + /// A function that returns the security configuration dynamically. This takes precedence over the static security parameter if both are provided. + /// The index of the server to use from the predefined server list. Must be between 0 and the length of the server list. Defaults to 0 if not specified. + /// A custom server URL to use instead of the predefined server list. If provided with urlParams, the URL will be templated with the provided parameters. + /// A dictionary of parameters to use for templating the serverUrl. Only used when serverUrl is provided. + /// A custom HTTP client implementation to use for making API requests. If not provided, the default SpeakeasyHttpClient will be used. + /// Configuration for retry behavior when API requests fail. Defines retry strategies, backoff policies, and maximum retry attempts. + /// Thrown when the serverIndex is out of range (less than 0 or greater than or equal to the server list length). public ClerkBackendApi(string? bearerAuth = null, Func? bearerAuthSource = null, int? serverIndex = null, string? serverUrl = null, Dictionary? urlParams = null, ISpeakeasyHttpClient? client = null, RetryConfig? retryConfig = null) { if (serverIndex != null) @@ -260,8 +267,6 @@ public ClerkBackendApi(string? bearerAuth = null, Func? bearerAuthSource Jwks = new Jwks(SDKConfiguration); - AwsCredentials = new AwsCredentials(SDKConfiguration); - Clients = new Clients(SDKConfiguration); EmailAddresses = new EmailAddresses(SDKConfiguration); @@ -322,10 +327,10 @@ public ClerkBackendApi(string? bearerAuth = null, Func? bearerAuthSource WaitlistEntries = new WaitlistEntries(SDKConfiguration); - ExperimentalAccountlessApplications = new ExperimentalAccountlessApplications(SDKConfiguration); - Commerce = new Commerce(SDKConfiguration); + Billing = new Billing(SDKConfiguration); + M2m = new M2m(SDKConfiguration); OauthAccessTokens = new OauthAccessTokens(SDKConfiguration); diff --git a/src/Clerk/BackendAPI/Clients.cs b/src/Clerk/BackendAPI/Clients.cs index 2f1bcda8..8b41f795 100644 --- a/src/Clerk/BackendAPI/Clients.cs +++ b/src/Clerk/BackendAPI/Clients.cs @@ -59,9 +59,9 @@ public class Clients: IClients { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public Clients(SDKConfig config) { @@ -88,7 +88,7 @@ public async Task ListAsync(bool? paginated = null, long? httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetClientList", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetClientList", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -238,7 +238,7 @@ public async Task VerifyAsync(VerifyClientRequestBody? req httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "VerifyClient", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "VerifyClient", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -385,7 +385,7 @@ public async Task GetAsync(string clientId, RetryConfig? retr httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetClient", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetClient", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/Commerce.cs b/src/Clerk/BackendAPI/Commerce.cs index 14a23326..c754f008 100644 --- a/src/Clerk/BackendAPI/Commerce.cs +++ b/src/Clerk/BackendAPI/Commerce.cs @@ -53,27 +53,15 @@ public interface ICommerce /// /// Task CancelSubscriptionItemAsync(string subscriptionItemId, bool? endNow = false, RetryConfig? retryConfig = null); - - /// - /// Extend free trial for a subscription item - /// - /// - /// Extends the free trial period for a specific subscription item to the specified timestamp.
- /// The subscription item must be currently in a free trial period, and the plan must support free trials.
- /// The timestamp must be in the future and not more than 365 days from the end of the current trial period
- /// This operation is idempotent - repeated requests with the same timestamp will not change the trial period. - ///
- ///
- Task ExtendSubscriptionItemFreeTrialAsync(string subscriptionItemId, ExtendFreeTrialRequest extendFreeTrialRequest, RetryConfig? retryConfig = null); } public class Commerce: ICommerce { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public Commerce(SDKConfig config) { @@ -100,7 +88,7 @@ public async Task ListPlansAsync(bool? paginated = httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetCommercePlanList", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetCommercePlanList", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -263,7 +251,7 @@ public async Task ListSubscriptionItems httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetCommerceSubscriptionItemList", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetCommerceSubscriptionItemList", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -431,7 +419,7 @@ public async Task CancelSubscriptionItem httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CancelCommerceSubscriptionItem", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CancelCommerceSubscriptionItem", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -580,179 +568,5 @@ public async Task CancelSubscriptionItem throw new Models.Errors.SDKError("Unknown status code received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); } - - public async Task ExtendSubscriptionItemFreeTrialAsync(string subscriptionItemId, ExtendFreeTrialRequest extendFreeTrialRequest, RetryConfig? retryConfig = null) - { - var request = new ExtendCommerceSubscriptionItemFreeTrialRequest() - { - SubscriptionItemId = subscriptionItemId, - ExtendFreeTrialRequest = extendFreeTrialRequest, - }; - string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl(); - var urlString = URLBuilder.Build(baseUrl, "/billing/subscription_items/{subscription_item_id}/extend_free_trial", request); - - var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString); - httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); - - var serializedBody = RequestBodySerializer.Serialize(request, "ExtendFreeTrialRequest", "json", false, false); - if (serializedBody != null) - { - httpRequest.Content = serializedBody; - } - - if (SDKConfiguration.SecuritySource != null) - { - httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); - } - - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ExtendCommerceSubscriptionItemFreeTrial", new List { }, SDKConfiguration.SecuritySource); - - httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); - if (retryConfig == null) - { - if (this.SDKConfiguration.RetryConfig != null) - { - retryConfig = this.SDKConfiguration.RetryConfig; - } - else - { - var backoff = new BackoffStrategy( - initialIntervalMs: 500L, - maxIntervalMs: 60000L, - maxElapsedTimeMs: 3600000L, - exponent: 1.5 - ); - retryConfig = new RetryConfig( - strategy: RetryConfig.RetryStrategy.BACKOFF, - backoff: backoff, - retryConnectionErrors: true - ); - } - } - - List statusCodes = new List - { - "5XX", - }; - - Func> retrySend = async () => - { - var _httpRequest = await SDKConfiguration.Client.CloneAsync(httpRequest); - return await SDKConfiguration.Client.SendAsync(_httpRequest); - }; - var retries = new Clerk.BackendAPI.Utils.Retries.Retries(retrySend, retryConfig, statusCodes); - - HttpResponseMessage httpResponse; - try - { - httpResponse = await retries.Run(); - int _statusCode = (int)httpResponse.StatusCode; - - if (_statusCode == 400 || _statusCode == 401 || _statusCode == 403 || _statusCode == 404 || _statusCode == 422 || _statusCode >= 400 && _statusCode < 500 || _statusCode == 500 || _statusCode >= 500 && _statusCode < 600) - { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), httpResponse, null); - if (_httpResponse != null) - { - httpResponse = _httpResponse; - } - } - } - catch (Exception error) - { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); - if (_httpResponse != null) - { - httpResponse = _httpResponse; - } - else - { - throw; - } - } - - httpResponse = await this.SDKConfiguration.Hooks.AfterSuccessAsync(new AfterSuccessContext(hookCtx), httpResponse); - - var contentType = httpResponse.Content.Headers.ContentType?.MediaType; - int responseStatusCode = (int)httpResponse.StatusCode; - if(responseStatusCode == 200) - { - if(Utilities.IsContentTypeMatch("application/json", contentType)) - { - var httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); - CommerceSubscriptionItem obj; - try - { - obj = ResponseBodyDeserializer.DeserializeNotNull(httpResponseBody, NullValueHandling.Ignore); - } - catch (Exception ex) - { - throw new ResponseValidationException("Failed to deserialize response body into CommerceSubscriptionItem.", httpRequest, httpResponse, httpResponseBody, ex); - } - - var response = new ExtendCommerceSubscriptionItemFreeTrialResponse() - { - HttpMeta = new Models.Components.HTTPMetadata() - { - Response = httpResponse, - Request = httpRequest - } - }; - response.CommerceSubscriptionItem = obj; - return response; - } - - throw new Models.Errors.SDKError("Unknown content type received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); - } - else if(new List{400, 401, 403, 404, 422}.Contains(responseStatusCode)) - { - if(Utilities.IsContentTypeMatch("application/json", contentType)) - { - var httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); - ClerkErrorsPayload payload; - try - { - payload = ResponseBodyDeserializer.DeserializeNotNull(httpResponseBody, NullValueHandling.Ignore); - } - catch (Exception ex) - { - throw new ResponseValidationException("Failed to deserialize response body into ClerkErrorsPayload.", httpRequest, httpResponse, httpResponseBody, ex); - } - - throw new ClerkErrors(payload, httpRequest, httpResponse, httpResponseBody); - } - - throw new Models.Errors.SDKError("Unknown content type received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); - } - else if(responseStatusCode == 500) - { - if(Utilities.IsContentTypeMatch("application/json", contentType)) - { - var httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); - ClerkErrorsPayload payload; - try - { - payload = ResponseBodyDeserializer.DeserializeNotNull(httpResponseBody, NullValueHandling.Ignore); - } - catch (Exception ex) - { - throw new ResponseValidationException("Failed to deserialize response body into ClerkErrorsPayload.", httpRequest, httpResponse, httpResponseBody, ex); - } - - throw new ClerkErrors(payload, httpRequest, httpResponse, httpResponseBody); - } - - throw new Models.Errors.SDKError("Unknown content type received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); - } - else if(responseStatusCode >= 400 && responseStatusCode < 500) - { - throw new Models.Errors.SDKError("API error occurred", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); - } - else if(responseStatusCode >= 500 && responseStatusCode < 600) - { - throw new Models.Errors.SDKError("API error occurred", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); - } - - throw new Models.Errors.SDKError("Unknown status code received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); - } } } \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Domains.cs b/src/Clerk/BackendAPI/Domains.cs index e526742d..1c381ce7 100644 --- a/src/Clerk/BackendAPI/Domains.cs +++ b/src/Clerk/BackendAPI/Domains.cs @@ -79,9 +79,9 @@ public class Domains: IDomains { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public Domains(SDKConfig config) { @@ -102,7 +102,7 @@ public async Task ListAsync(RetryConfig? retryConfig = null httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListDomains", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListDomains", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -232,7 +232,7 @@ public async Task AddAsync(AddDomainRequestBody? request = nu httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "AddDomain", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "AddDomain", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -379,7 +379,7 @@ public async Task DeleteAsync(string domainId, RetryConfig httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteDomain", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteDomain", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -533,7 +533,7 @@ public async Task UpdateAsync(string domainId, UpdateDomai httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateDomain", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateDomain", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/EmailAddresses.cs b/src/Clerk/BackendAPI/EmailAddresses.cs index 1f78de22..b8b21af4 100644 --- a/src/Clerk/BackendAPI/EmailAddresses.cs +++ b/src/Clerk/BackendAPI/EmailAddresses.cs @@ -66,9 +66,9 @@ public class EmailAddresses: IEmailAddresses { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public EmailAddresses(SDKConfig config) { @@ -95,7 +95,7 @@ public async Task CreateAsync(CreateEmailAddressRequ httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateEmailAddress", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateEmailAddress", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -242,7 +242,7 @@ public async Task GetAsync(string emailAddressId, Retry httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetEmailAddress", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetEmailAddress", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -389,7 +389,7 @@ public async Task DeleteAsync(string emailAddressId, httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteEmailAddress", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteEmailAddress", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -543,7 +543,7 @@ public async Task UpdateAsync(string emailAddressId, httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateEmailAddress", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateEmailAddress", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/EmailAndSmsTemplates.cs b/src/Clerk/BackendAPI/EmailAndSmsTemplates.cs index e6e7fb47..553ba771 100644 --- a/src/Clerk/BackendAPI/EmailAndSmsTemplates.cs +++ b/src/Clerk/BackendAPI/EmailAndSmsTemplates.cs @@ -39,9 +39,9 @@ public class EmailAndSmsTemplates: IEmailAndSmsTemplates { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public EmailAndSmsTemplates(SDKConfig config) { @@ -74,7 +74,7 @@ public async Task UpsertAsync(UpsertTemplatePathParamTem httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpsertTemplate", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpsertTemplate", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/EmailSMSTemplates.cs b/src/Clerk/BackendAPI/EmailSMSTemplates.cs index edc95c0e..39416cf3 100644 --- a/src/Clerk/BackendAPI/EmailSMSTemplates.cs +++ b/src/Clerk/BackendAPI/EmailSMSTemplates.cs @@ -69,9 +69,9 @@ public class EmailSMSTemplates: IEmailSMSTemplates { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public EmailSMSTemplates(SDKConfig config) { @@ -99,7 +99,7 @@ public async Task ListAsync(TemplateType templateType, httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetTemplateList", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetTemplateList", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -248,7 +248,7 @@ public async Task GetAsync(PathParamTemplateType templateTy httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetTemplate", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetTemplate", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -397,7 +397,7 @@ public async Task RevertAsync(RevertTemplatePathParamTem httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "RevertTemplate", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "RevertTemplate", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -553,7 +553,7 @@ public async Task ToggleTemplateDeliveryAsync(To httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ToggleTemplateDelivery", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ToggleTemplateDelivery", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/ExperimentalAccountlessApplications.cs b/src/Clerk/BackendAPI/ExperimentalAccountlessApplications.cs deleted file mode 100644 index e929e7c7..00000000 --- a/src/Clerk/BackendAPI/ExperimentalAccountlessApplications.cs +++ /dev/null @@ -1,347 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. -// -// Changes to this file may cause incorrect behavior and will be lost when -// the code is regenerated. -// -//------------------------------------------------------------------------------ -#nullable enable -namespace Clerk.BackendAPI -{ - using Clerk.BackendAPI.Hooks; - using Clerk.BackendAPI.Models.Components; - using Clerk.BackendAPI.Models.Errors; - using Clerk.BackendAPI.Models.Operations; - using Clerk.BackendAPI.Utils; - using Clerk.BackendAPI.Utils.Retries; - using Newtonsoft.Json; - using System; - using System.Collections.Generic; - using System.Net.Http; - using System.Threading.Tasks; - - public interface IExperimentalAccountlessApplications - { - - /// - /// Create an accountless application [EXPERIMENTAL] - /// - /// - /// Creates a new accountless application. [EXPERIMENTAL] - /// - /// - Task CreateAsync(RetryConfig? retryConfig = null); - - /// - /// Complete an accountless application [EXPERIMENTAL] - /// - /// - /// Completes an accountless application. [EXPERIMENTAL] - /// - /// - Task CompleteAsync(RetryConfig? retryConfig = null); - } - - public class ExperimentalAccountlessApplications: IExperimentalAccountlessApplications - { - public SDKConfig SDKConfiguration { get; private set; } - private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; - - public ExperimentalAccountlessApplications(SDKConfig config) - { - SDKConfiguration = config; - } - - public async Task CreateAsync(RetryConfig? retryConfig = null) - { - string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl(); - - var urlString = baseUrl + "/accountless_applications"; - - var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString); - httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); - - if (SDKConfiguration.SecuritySource != null) - { - httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); - } - - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateAccountlessApplication", new List { }, SDKConfiguration.SecuritySource); - - httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); - if (retryConfig == null) - { - if (this.SDKConfiguration.RetryConfig != null) - { - retryConfig = this.SDKConfiguration.RetryConfig; - } - else - { - var backoff = new BackoffStrategy( - initialIntervalMs: 500L, - maxIntervalMs: 60000L, - maxElapsedTimeMs: 3600000L, - exponent: 1.5 - ); - retryConfig = new RetryConfig( - strategy: RetryConfig.RetryStrategy.BACKOFF, - backoff: backoff, - retryConnectionErrors: true - ); - } - } - - List statusCodes = new List - { - "5XX", - }; - - Func> retrySend = async () => - { - var _httpRequest = await SDKConfiguration.Client.CloneAsync(httpRequest); - return await SDKConfiguration.Client.SendAsync(_httpRequest); - }; - var retries = new Clerk.BackendAPI.Utils.Retries.Retries(retrySend, retryConfig, statusCodes); - - HttpResponseMessage httpResponse; - try - { - httpResponse = await retries.Run(); - int _statusCode = (int)httpResponse.StatusCode; - - if (_statusCode >= 400 && _statusCode < 500 || _statusCode == 500 || _statusCode >= 500 && _statusCode < 600) - { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), httpResponse, null); - if (_httpResponse != null) - { - httpResponse = _httpResponse; - } - } - } - catch (Exception error) - { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); - if (_httpResponse != null) - { - httpResponse = _httpResponse; - } - else - { - throw; - } - } - - httpResponse = await this.SDKConfiguration.Hooks.AfterSuccessAsync(new AfterSuccessContext(hookCtx), httpResponse); - - var contentType = httpResponse.Content.Headers.ContentType?.MediaType; - int responseStatusCode = (int)httpResponse.StatusCode; - if(responseStatusCode == 200) - { - if(Utilities.IsContentTypeMatch("application/json", contentType)) - { - var httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); - AccountlessApplication obj; - try - { - obj = ResponseBodyDeserializer.DeserializeNotNull(httpResponseBody, NullValueHandling.Ignore); - } - catch (Exception ex) - { - throw new ResponseValidationException("Failed to deserialize response body into AccountlessApplication.", httpRequest, httpResponse, httpResponseBody, ex); - } - - var response = new CreateAccountlessApplicationResponse() - { - HttpMeta = new Models.Components.HTTPMetadata() - { - Response = httpResponse, - Request = httpRequest - } - }; - response.AccountlessApplication = obj; - return response; - } - - throw new Models.Errors.SDKError("Unknown content type received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); - } - else if(responseStatusCode == 500) - { - if(Utilities.IsContentTypeMatch("application/json", contentType)) - { - var httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); - ClerkErrorsPayload payload; - try - { - payload = ResponseBodyDeserializer.DeserializeNotNull(httpResponseBody, NullValueHandling.Ignore); - } - catch (Exception ex) - { - throw new ResponseValidationException("Failed to deserialize response body into ClerkErrorsPayload.", httpRequest, httpResponse, httpResponseBody, ex); - } - - throw new ClerkErrors(payload, httpRequest, httpResponse, httpResponseBody); - } - - throw new Models.Errors.SDKError("Unknown content type received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); - } - else if(responseStatusCode >= 400 && responseStatusCode < 500) - { - throw new Models.Errors.SDKError("API error occurred", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); - } - else if(responseStatusCode >= 500 && responseStatusCode < 600) - { - throw new Models.Errors.SDKError("API error occurred", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); - } - - throw new Models.Errors.SDKError("Unknown status code received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); - } - - public async Task CompleteAsync(RetryConfig? retryConfig = null) - { - string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl(); - - var urlString = baseUrl + "/accountless_applications/complete"; - - var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString); - httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); - - if (SDKConfiguration.SecuritySource != null) - { - httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); - } - - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CompleteAccountlessApplication", new List { }, SDKConfiguration.SecuritySource); - - httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); - if (retryConfig == null) - { - if (this.SDKConfiguration.RetryConfig != null) - { - retryConfig = this.SDKConfiguration.RetryConfig; - } - else - { - var backoff = new BackoffStrategy( - initialIntervalMs: 500L, - maxIntervalMs: 60000L, - maxElapsedTimeMs: 3600000L, - exponent: 1.5 - ); - retryConfig = new RetryConfig( - strategy: RetryConfig.RetryStrategy.BACKOFF, - backoff: backoff, - retryConnectionErrors: true - ); - } - } - - List statusCodes = new List - { - "5XX", - }; - - Func> retrySend = async () => - { - var _httpRequest = await SDKConfiguration.Client.CloneAsync(httpRequest); - return await SDKConfiguration.Client.SendAsync(_httpRequest); - }; - var retries = new Clerk.BackendAPI.Utils.Retries.Retries(retrySend, retryConfig, statusCodes); - - HttpResponseMessage httpResponse; - try - { - httpResponse = await retries.Run(); - int _statusCode = (int)httpResponse.StatusCode; - - if (_statusCode >= 400 && _statusCode < 500 || _statusCode == 500 || _statusCode >= 500 && _statusCode < 600) - { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), httpResponse, null); - if (_httpResponse != null) - { - httpResponse = _httpResponse; - } - } - } - catch (Exception error) - { - var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error); - if (_httpResponse != null) - { - httpResponse = _httpResponse; - } - else - { - throw; - } - } - - httpResponse = await this.SDKConfiguration.Hooks.AfterSuccessAsync(new AfterSuccessContext(hookCtx), httpResponse); - - var contentType = httpResponse.Content.Headers.ContentType?.MediaType; - int responseStatusCode = (int)httpResponse.StatusCode; - if(responseStatusCode == 200) - { - if(Utilities.IsContentTypeMatch("application/json", contentType)) - { - var httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); - AccountlessApplication obj; - try - { - obj = ResponseBodyDeserializer.DeserializeNotNull(httpResponseBody, NullValueHandling.Ignore); - } - catch (Exception ex) - { - throw new ResponseValidationException("Failed to deserialize response body into AccountlessApplication.", httpRequest, httpResponse, httpResponseBody, ex); - } - - var response = new CompleteAccountlessApplicationResponse() - { - HttpMeta = new Models.Components.HTTPMetadata() - { - Response = httpResponse, - Request = httpRequest - } - }; - response.AccountlessApplication = obj; - return response; - } - - throw new Models.Errors.SDKError("Unknown content type received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); - } - else if(responseStatusCode == 500) - { - if(Utilities.IsContentTypeMatch("application/json", contentType)) - { - var httpResponseBody = await httpResponse.Content.ReadAsStringAsync(); - ClerkErrorsPayload payload; - try - { - payload = ResponseBodyDeserializer.DeserializeNotNull(httpResponseBody, NullValueHandling.Ignore); - } - catch (Exception ex) - { - throw new ResponseValidationException("Failed to deserialize response body into ClerkErrorsPayload.", httpRequest, httpResponse, httpResponseBody, ex); - } - - throw new ClerkErrors(payload, httpRequest, httpResponse, httpResponseBody); - } - - throw new Models.Errors.SDKError("Unknown content type received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); - } - else if(responseStatusCode >= 400 && responseStatusCode < 500) - { - throw new Models.Errors.SDKError("API error occurred", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); - } - else if(responseStatusCode >= 500 && responseStatusCode < 600) - { - throw new Models.Errors.SDKError("API error occurred", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); - } - - throw new Models.Errors.SDKError("Unknown status code received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); - } - } -} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Helpers/Cache.cs b/src/Clerk/BackendAPI/Helpers/Cache.cs index 634870a9..2da8d3a6 100644 --- a/src/Clerk/BackendAPI/Helpers/Cache.cs +++ b/src/Clerk/BackendAPI/Helpers/Cache.cs @@ -56,12 +56,12 @@ public void Set(string? key, string value) } // Expired, remove from cache - Remove(key); + Remove(key); } return null; } - + /// /// Removes a value from the cache. /// diff --git a/src/Clerk/BackendAPI/Helpers/VerifyToken.cs b/src/Clerk/BackendAPI/Helpers/VerifyToken.cs index a137f67a..10155317 100644 --- a/src/Clerk/BackendAPI/Helpers/VerifyToken.cs +++ b/src/Clerk/BackendAPI/Helpers/VerifyToken.cs @@ -152,7 +152,7 @@ private static async Task GetRemoteJwtKeyAsync(string token, Ver } } } - + // Not in cache, fetch from API var jwks = await FetchJwksAsync(options); if (jwks.Keys == null) throw new TokenVerificationException(TokenVerificationErrorReason.JWK_REMOTE_INVALID); diff --git a/src/Clerk/BackendAPI/Hooks/SDKHooks.cs b/src/Clerk/BackendAPI/Hooks/SDKHooks.cs index 5b5f669f..84e1365b 100644 --- a/src/Clerk/BackendAPI/Hooks/SDKHooks.cs +++ b/src/Clerk/BackendAPI/Hooks/SDKHooks.cs @@ -76,7 +76,8 @@ public async Task BeforeRequestAsync(BeforeRequestContext ho try { request = await hook.BeforeRequestAsync(hookCtx, request); - } catch (Exception ex) + } + catch (Exception ex) { throw new Exception("An error occurred while calling BeforeRequestAsync hook", ex); } @@ -102,17 +103,18 @@ public async Task AfterSuccessAsync(AfterSuccessContext hoo public async Task AfterErrorAsync(AfterErrorContext hookCtx, HttpResponseMessage? response, Exception? error) { - (HttpResponseMessage?, Exception?) responseAndError = (response, error); foreach (var hook in this.afterErrorHooks) { try { responseAndError = await hook.AfterErrorAsync(hookCtx, responseAndError.Item1, responseAndError.Item2); - } catch (FailEarlyException) + } + catch (FailEarlyException) { throw; - } catch (Exception ex) + } + catch (Exception ex) { throw new Exception("An error occurred while calling AfterErrorAsync hook", ex); } diff --git a/src/Clerk/BackendAPI/InstanceSettings.cs b/src/Clerk/BackendAPI/InstanceSettings.cs index 33e753cc..640e4ca3 100644 --- a/src/Clerk/BackendAPI/InstanceSettings.cs +++ b/src/Clerk/BackendAPI/InstanceSettings.cs @@ -79,9 +79,9 @@ public class InstanceSettings: IInstanceSettings { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public InstanceSettings(SDKConfig config) { @@ -102,7 +102,7 @@ public async Task GetAsync(RetryConfig? retryConfig = null) httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetInstance", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetInstance", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -232,7 +232,7 @@ public async Task UpdateAsync(UpdateInstanceRequestBody? httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateInstance", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateInstance", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -364,7 +364,7 @@ public async Task UpdateRestrictionsAsync(Up httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateInstanceRestrictions", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateInstanceRestrictions", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -514,7 +514,7 @@ public async Task ChangeDomainAsync(Chan httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ChangeProductionInstanceDomain", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ChangeProductionInstanceDomain", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -646,7 +646,7 @@ public async Task UpdateOrganization httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateInstanceOrganizationSettings", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateInstanceOrganizationSettings", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/Invitations.cs b/src/Clerk/BackendAPI/Invitations.cs index b50dcce2..f3cef58f 100644 --- a/src/Clerk/BackendAPI/Invitations.cs +++ b/src/Clerk/BackendAPI/Invitations.cs @@ -74,9 +74,9 @@ public class Invitations: IInvitations { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public Invitations(SDKConfig config) { @@ -103,7 +103,7 @@ public async Task CreateAsync(CreateInvitationRequestB httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateInvitation", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateInvitation", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -246,7 +246,7 @@ public async Task ListAsync(ListInvitationsRequest? req httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListInvitations", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListInvitations", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -376,7 +376,7 @@ public async Task BulkCreateAsync(List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateBulkInvitations", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -523,7 +523,7 @@ public async Task RevokeAsync(string invitationId, Ret httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "RevokeInvitation", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "RevokeInvitation", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/Jwks.cs b/src/Clerk/BackendAPI/Jwks.cs index c2ff27d9..fffe77a3 100644 --- a/src/Clerk/BackendAPI/Jwks.cs +++ b/src/Clerk/BackendAPI/Jwks.cs @@ -38,9 +38,9 @@ public class Jwks: IJwks { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public Jwks(SDKConfig config) { @@ -61,7 +61,7 @@ public async Task GetJWKSAsync(RetryConfig? retryConfig = null) httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetJWKS", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetJWKS", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/JwtTemplates.cs b/src/Clerk/BackendAPI/JwtTemplates.cs index 38a02d52..bfc6e969 100644 --- a/src/Clerk/BackendAPI/JwtTemplates.cs +++ b/src/Clerk/BackendAPI/JwtTemplates.cs @@ -67,9 +67,9 @@ public class JwtTemplates: IJwtTemplates { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public JwtTemplates(SDKConfig config) { @@ -95,7 +95,7 @@ public async Task ListAsync(bool? paginated = null, lo httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListJWTTemplates", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListJWTTemplates", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -225,7 +225,7 @@ public async Task CreateAsync(CreateJWTTemplateReques httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateJWTTemplate", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateJWTTemplate", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -372,7 +372,7 @@ public async Task GetAsync(string templateId, RetryConfi httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetJWTTemplate", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetJWTTemplate", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -526,7 +526,7 @@ public async Task UpdateAsync(string templateId, Upda httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateJWTTemplate", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateJWTTemplate", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -673,7 +673,7 @@ public async Task DeleteAsync(string templateId, Retr httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteJWTTemplate", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteJWTTemplate", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/M2m.cs b/src/Clerk/BackendAPI/M2m.cs index 54197d6a..16d0464e 100644 --- a/src/Clerk/BackendAPI/M2m.cs +++ b/src/Clerk/BackendAPI/M2m.cs @@ -81,9 +81,9 @@ public class M2m: IM2m { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public M2m(SDKConfig config) { @@ -110,7 +110,7 @@ public async Task CreateTokenAsync(CreateM2MTokenRequest httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "createM2MToken", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "createM2MToken", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -285,7 +285,7 @@ public async Task ListTokensAsync(GetM2MTokensRequest requ httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "getM2MTokens", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "getM2MTokens", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -497,7 +497,7 @@ public async Task RevokeTokenAsync(string m2mTokenId, Re httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "revokeM2MToken", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "revokeM2MToken", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -679,7 +679,7 @@ public async Task VerifyTokenAsync(VerifyM2MTokenRequest httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "verifyM2MToken", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "verifyM2MToken", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/Machines.cs b/src/Clerk/BackendAPI/Machines.cs index ebee1e1e..b6531b13 100644 --- a/src/Clerk/BackendAPI/Machines.cs +++ b/src/Clerk/BackendAPI/Machines.cs @@ -117,9 +117,9 @@ public class Machines: IMachines { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public Machines(SDKConfig config) { @@ -146,7 +146,7 @@ public async Task ListAsync(long? limit = 10, long? offset httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListMachines", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListMachines", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -296,7 +296,7 @@ public async Task CreateAsync(CreateMachineRequestBody? r httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateMachine", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateMachine", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -443,7 +443,7 @@ public async Task GetAsync(string machineId, RetryConfig? re httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetMachine", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetMachine", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -597,7 +597,7 @@ public async Task UpdateAsync(string machineId, UpdateMac httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateMachine", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateMachine", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -744,7 +744,7 @@ public async Task DeleteAsync(string machineId, RetryConf httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteMachine", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteMachine", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -891,7 +891,7 @@ public async Task GetSecretKeyAsync(string machineI httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetMachineSecretKey", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetMachineSecretKey", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -1045,7 +1045,7 @@ public async Task RotateSecretKeyAsync(string ma httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "RotateMachineSecretKey", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "RotateMachineSecretKey", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -1199,7 +1199,7 @@ public async Task CreateScopeAsync(string machineId, httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateMachineScope", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateMachineScope", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -1347,7 +1347,7 @@ public async Task DeleteScopeAsync(string machineId, httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteMachineScope", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteMachineScope", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/Miscellaneous.cs b/src/Clerk/BackendAPI/Miscellaneous.cs index 9a59d9cd..77f35fee 100644 --- a/src/Clerk/BackendAPI/Miscellaneous.cs +++ b/src/Clerk/BackendAPI/Miscellaneous.cs @@ -39,9 +39,9 @@ public class Miscellaneous: IMiscellaneous { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public Miscellaneous(SDKConfig config) { @@ -56,7 +56,7 @@ public async Task GetPublicInterstitialAsync(GetP var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString); httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent); - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetPublicInterstitial", new List { }, null); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetPublicInterstitial", null, null); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/Models/Components/AWSCredential.cs b/src/Clerk/BackendAPI/Models/Components/AWSCredential.cs deleted file mode 100644 index c506d86d..00000000 --- a/src/Clerk/BackendAPI/Models/Components/AWSCredential.cs +++ /dev/null @@ -1,62 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. -// -// Changes to this file may cause incorrect behavior and will be lost when -// the code is regenerated. -// -//------------------------------------------------------------------------------ -#nullable enable -namespace Clerk.BackendAPI.Models.Components -{ - using Clerk.BackendAPI.Models.Components; - using Clerk.BackendAPI.Utils; - using Newtonsoft.Json; - using System.Collections.Generic; - - /// - /// Success - /// - public class AWSCredential - { - - [JsonProperty("id")] - public string Id { get; set; } = default!; - - /// - /// String representing the object's type. Objects of the same type share the same value.
- /// - /// - /// - /// - ///
- [JsonProperty("object")] - public Models.Components.Object Object { get; set; } = default!; - - [JsonProperty("access_key_id")] - public string AccessKeyId { get; set; } = default!; - - [JsonProperty("user_pool_ids")] - public List UserPoolIds { get; set; } = default!; - - /// - /// Unix timestamp of creation
- /// - /// - /// - /// - ///
- [JsonProperty("created_at")] - public long CreatedAt { get; set; } = default!; - - /// - /// Unix timestamp of creation
- /// - /// - /// - /// - ///
- [JsonProperty("updated_at")] - public long UpdatedAt { get; set; } = default!; - } -} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/Amount.cs b/src/Clerk/BackendAPI/Models/Components/Amount.cs index db82be14..827e381e 100644 --- a/src/Clerk/BackendAPI/Models/Components/Amount.cs +++ b/src/Clerk/BackendAPI/Models/Components/Amount.cs @@ -13,7 +13,7 @@ namespace Clerk.BackendAPI.Models.Components using Newtonsoft.Json; /// - /// Current amount for this subscription. + /// Credit amount. /// public class Amount { diff --git a/src/Clerk/BackendAPI/Models/Components/AnnualFee.cs b/src/Clerk/BackendAPI/Models/Components/AnnualFee.cs new file mode 100644 index 00000000..9f222b08 --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/AnnualFee.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Utils; + using Newtonsoft.Json; + + public class AnnualFee + { + + /// + /// The amount in cents. + /// + [JsonProperty("amount")] + public long Amount { get; set; } = default!; + + /// + /// The formatted amount as a string (e.g., "$49.99"). + /// + [JsonProperty("amount_formatted")] + public string AmountFormatted { get; set; } = default!; + + /// + /// The currency code (e.g., "USD"). + /// + [JsonProperty("currency")] + public string Currency { get; set; } = default!; + + /// + /// The currency symbol (e.g., "$"). + /// + [JsonProperty("currency_symbol")] + public string CurrencySymbol { get; set; } = default!; + } +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/AnnualMonthlyFee.cs b/src/Clerk/BackendAPI/Models/Components/AnnualMonthlyFee.cs new file mode 100644 index 00000000..9447afed --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/AnnualMonthlyFee.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Utils; + using Newtonsoft.Json; + + public class AnnualMonthlyFee + { + + /// + /// The amount in cents. + /// + [JsonProperty("amount")] + public long Amount { get; set; } = default!; + + /// + /// The formatted amount as a string (e.g., "$49.99"). + /// + [JsonProperty("amount_formatted")] + public string AmountFormatted { get; set; } = default!; + + /// + /// The currency code (e.g., "USD"). + /// + [JsonProperty("currency")] + public string Currency { get; set; } = default!; + + /// + /// The currency symbol (e.g., "$"). + /// + [JsonProperty("currency_symbol")] + public string CurrencySymbol { get; set; } = default!; + } +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/BillingPaymentAttempt.cs b/src/Clerk/BackendAPI/Models/Components/BillingPaymentAttempt.cs new file mode 100644 index 00000000..10597ce1 --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/BillingPaymentAttempt.cs @@ -0,0 +1,142 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Models.Components; + using Clerk.BackendAPI.Utils; + using Newtonsoft.Json; + + public class BillingPaymentAttempt + { + + /// + /// String representing the object's type. Objects of the same type share the same value. + /// + [JsonProperty("object")] + public BillingPaymentAttemptObject Object { get; set; } = default!; + + /// + /// Unique identifier for the payment attempt. + /// + [JsonProperty("id")] + public string Id { get; set; } = default!; + + /// + /// Unique identifier for the associated payment. + /// + [JsonProperty("payment_id")] + public string PaymentId { get; set; } = default!; + + /// + /// The ID of the instance this payment attempt belongs to. + /// + [JsonProperty("instance_id")] + public string InstanceId { get; set; } = default!; + + /// + /// Type of charge for this payment attempt. + /// + [JsonProperty("charge_type")] + public string ChargeType { get; set; } = default!; + + /// + /// Unique identifier for the payee. + /// + [JsonProperty("payee_id")] + public string PayeeId { get; set; } = default!; + + /// + /// The payee associated with this payment attempt. + /// + [JsonProperty("payee")] + public Payee Payee { get; set; } = default!; + + /// + /// Unique identifier for the payer. + /// + [JsonProperty("payer_id")] + public string PayerId { get; set; } = default!; + + [JsonProperty("payer")] + public CommercePayerResponse Payer { get; set; } = default!; + + /// + /// Unique identifier for the associated subscription item. + /// + [JsonProperty("subscription_item_id")] + public string? SubscriptionItemId { get; set; } + + /// + /// The subscription item associated with this payment attempt. + /// + [JsonProperty("subscription_item")] + public SubscriptionItem? SubscriptionItem { get; set; } + + [JsonProperty("amount")] + public CommerceMoneyResponse Amount { get; set; } = default!; + + /// + /// Unique identifier for the payment method. + /// + [JsonProperty("payment_method_id")] + public string PaymentMethodId { get; set; } = default!; + + [JsonProperty("payment_method")] + public CommercePaymentMethodResponse PaymentMethod { get; set; } = default!; + + /// + /// Unique identifier for the associated statement. + /// + [JsonProperty("statement_id")] + public string StatementId { get; set; } = default!; + + /// + /// External identifier from the payment gateway. + /// + [JsonProperty("gateway_external_id", NullValueHandling = NullValueHandling.Include)] + public string? GatewayExternalId { get; set; } + + /// + /// External URL from the payment gateway. + /// + [JsonProperty("gateway_external_url", NullValueHandling = NullValueHandling.Include)] + public string? GatewayExternalUrl { get; set; } + + /// + /// The current status of the payment attempt. + /// + [JsonProperty("status")] + public BillingPaymentAttemptStatus Status { get; set; } = default!; + + /// + /// Unix timestamp (in milliseconds) when the payment was completed. + /// + [JsonProperty("paid_at", NullValueHandling = NullValueHandling.Include)] + public long? PaidAt { get; set; } + + /// + /// Unix timestamp (in milliseconds) when the payment failed to be processed. + /// + [JsonProperty("failed_at", NullValueHandling = NullValueHandling.Include)] + public long? FailedAt { get; set; } + + /// + /// Unix timestamp (in milliseconds) when the payment attempt was created. + /// + [JsonProperty("created_at")] + public long CreatedAt { get; set; } = default!; + + /// + /// Unix timestamp (in milliseconds) when the payment attempt was last updated. + /// + [JsonProperty("updated_at")] + public long UpdatedAt { get; set; } = default!; + } +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/BillingPaymentAttemptObject.cs b/src/Clerk/BackendAPI/Models/Components/BillingPaymentAttemptObject.cs new file mode 100644 index 00000000..914b91bf --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/BillingPaymentAttemptObject.cs @@ -0,0 +1,58 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Utils; + using Newtonsoft.Json; + using System; + + /// + /// String representing the object's type. Objects of the same type share the same value. + /// + public enum BillingPaymentAttemptObject + { + [JsonProperty("commerce_payment")] + CommercePayment, + } + + public static class BillingPaymentAttemptObjectExtension + { + public static string Value(this BillingPaymentAttemptObject value) + { + return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); + } + + public static BillingPaymentAttemptObject ToEnum(this string value) + { + foreach(var field in typeof(BillingPaymentAttemptObject).GetFields()) + { + var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); + if (attributes.Length == 0) + { + continue; + } + + var attribute = attributes[0] as JsonPropertyAttribute; + if (attribute != null && attribute.PropertyName == value) + { + var enumVal = field.GetValue(null); + + if (enumVal is BillingPaymentAttemptObject) + { + return (BillingPaymentAttemptObject)enumVal; + } + } + } + + throw new Exception($"Unknown value {value} for enum BillingPaymentAttemptObject"); + } + } + +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/BillingPaymentAttemptStatus.cs b/src/Clerk/BackendAPI/Models/Components/BillingPaymentAttemptStatus.cs new file mode 100644 index 00000000..133a6b9c --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/BillingPaymentAttemptStatus.cs @@ -0,0 +1,62 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Utils; + using Newtonsoft.Json; + using System; + + /// + /// The current status of the payment attempt. + /// + public enum BillingPaymentAttemptStatus + { + [JsonProperty("pending")] + Pending, + [JsonProperty("paid")] + Paid, + [JsonProperty("failed")] + Failed, + } + + public static class BillingPaymentAttemptStatusExtension + { + public static string Value(this BillingPaymentAttemptStatus value) + { + return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); + } + + public static BillingPaymentAttemptStatus ToEnum(this string value) + { + foreach(var field in typeof(BillingPaymentAttemptStatus).GetFields()) + { + var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); + if (attributes.Length == 0) + { + continue; + } + + var attribute = attributes[0] as JsonPropertyAttribute; + if (attribute != null && attribute.PropertyName == value) + { + var enumVal = field.GetValue(null); + + if (enumVal is BillingPaymentAttemptStatus) + { + return (BillingPaymentAttemptStatus)enumVal; + } + } + } + + throw new Exception($"Unknown value {value} for enum BillingPaymentAttemptStatus"); + } + } + +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/BillingStatement.cs b/src/Clerk/BackendAPI/Models/Components/BillingStatement.cs new file mode 100644 index 00000000..5ab7ca01 --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/BillingStatement.cs @@ -0,0 +1,65 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Models.Components; + using Clerk.BackendAPI.Utils; + using Newtonsoft.Json; + using System.Collections.Generic; + + public class BillingStatement + { + + /// + /// String representing the object's type. Objects of the same type share the same value. + /// + [JsonProperty("object")] + public BillingStatementObject Object { get; set; } = default!; + + /// + /// Unique identifier for the billing statement. + /// + [JsonProperty("id")] + public string Id { get; set; } = default!; + + /// + /// The ID of the instance this statement belongs to. + /// + [JsonProperty("instance_id")] + public string InstanceId { get; set; } = default!; + + /// + /// Unix timestamp (in milliseconds) when the statement was created. + /// + [JsonProperty("timestamp")] + public long Timestamp { get; set; } = default!; + + [JsonProperty("payer")] + public CommercePayerResponse Payer { get; set; } = default!; + + /// + /// The current status of the statement. + /// + [JsonProperty("status")] + public BillingStatementStatus Status { get; set; } = default!; + + /// + /// Totals for the statement. + /// + [JsonProperty("totals")] + public Totals Totals { get; set; } = default!; + + /// + /// Array of statement groups. + /// + [JsonProperty("groups")] + public List Groups { get; set; } = default!; + } +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/BillingStatementGroupsObject.cs b/src/Clerk/BackendAPI/Models/Components/BillingStatementGroupsObject.cs new file mode 100644 index 00000000..b1916f8a --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/BillingStatementGroupsObject.cs @@ -0,0 +1,58 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Utils; + using Newtonsoft.Json; + using System; + + /// + /// String representing the object's type. Objects of the same type share the same value. + /// + public enum BillingStatementGroupsObject + { + [JsonProperty("commerce_statement_group")] + CommerceStatementGroup, + } + + public static class BillingStatementGroupsObjectExtension + { + public static string Value(this BillingStatementGroupsObject value) + { + return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); + } + + public static BillingStatementGroupsObject ToEnum(this string value) + { + foreach(var field in typeof(BillingStatementGroupsObject).GetFields()) + { + var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); + if (attributes.Length == 0) + { + continue; + } + + var attribute = attributes[0] as JsonPropertyAttribute; + if (attribute != null && attribute.PropertyName == value) + { + var enumVal = field.GetValue(null); + + if (enumVal is BillingStatementGroupsObject) + { + return (BillingStatementGroupsObject)enumVal; + } + } + } + + throw new Exception($"Unknown value {value} for enum BillingStatementGroupsObject"); + } + } + +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/ClientObject.cs b/src/Clerk/BackendAPI/Models/Components/BillingStatementObject.cs similarity index 72% rename from src/Clerk/BackendAPI/Models/Components/ClientObject.cs rename to src/Clerk/BackendAPI/Models/Components/BillingStatementObject.cs index 14cc647b..b81726f3 100644 --- a/src/Clerk/BackendAPI/Models/Components/ClientObject.cs +++ b/src/Clerk/BackendAPI/Models/Components/BillingStatementObject.cs @@ -14,28 +14,24 @@ namespace Clerk.BackendAPI.Models.Components using System; /// - /// String representing the object's type. Objects of the same type share the same value.
- /// - /// - /// - /// + /// String representing the object's type. Objects of the same type share the same value. ///
- public enum ClientObject + public enum BillingStatementObject { - [JsonProperty("client")] - Client, + [JsonProperty("commerce_statement")] + CommerceStatement, } - public static class ClientObjectExtension + public static class BillingStatementObjectExtension { - public static string Value(this ClientObject value) + public static string Value(this BillingStatementObject value) { return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); } - public static ClientObject ToEnum(this string value) + public static BillingStatementObject ToEnum(this string value) { - foreach(var field in typeof(ClientObject).GetFields()) + foreach(var field in typeof(BillingStatementObject).GetFields()) { var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); if (attributes.Length == 0) @@ -48,14 +44,14 @@ public static ClientObject ToEnum(this string value) { var enumVal = field.GetValue(null); - if (enumVal is ClientObject) + if (enumVal is BillingStatementObject) { - return (ClientObject)enumVal; + return (BillingStatementObject)enumVal; } } } - throw new Exception($"Unknown value {value} for enum ClientObject"); + throw new Exception($"Unknown value {value} for enum BillingStatementObject"); } } diff --git a/src/Clerk/BackendAPI/Models/Components/BillingStatementStatus.cs b/src/Clerk/BackendAPI/Models/Components/BillingStatementStatus.cs new file mode 100644 index 00000000..38f06bb6 --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/BillingStatementStatus.cs @@ -0,0 +1,60 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Utils; + using Newtonsoft.Json; + using System; + + /// + /// The current status of the statement. + /// + public enum BillingStatementStatus + { + [JsonProperty("open")] + Open, + [JsonProperty("closed")] + Closed, + } + + public static class BillingStatementStatusExtension + { + public static string Value(this BillingStatementStatus value) + { + return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); + } + + public static BillingStatementStatus ToEnum(this string value) + { + foreach(var field in typeof(BillingStatementStatus).GetFields()) + { + var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); + if (attributes.Length == 0) + { + continue; + } + + var attribute = attributes[0] as JsonPropertyAttribute; + if (attribute != null && attribute.PropertyName == value) + { + var enumVal = field.GetValue(null); + + if (enumVal is BillingStatementStatus) + { + return (BillingStatementStatus)enumVal; + } + } + } + + throw new Exception($"Unknown value {value} for enum BillingStatementStatus"); + } + } + +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/ClerkError.cs b/src/Clerk/BackendAPI/Models/Components/ClerkError.cs index a14933b9..d2cfd871 100644 --- a/src/Clerk/BackendAPI/Models/Components/ClerkError.cs +++ b/src/Clerk/BackendAPI/Models/Components/ClerkError.cs @@ -27,8 +27,5 @@ public class ClerkError [JsonProperty("meta")] public Models.Components.Meta? Meta { get; set; } - - [JsonProperty("clerk_trace_id")] - public string? ClerkTraceId { get; set; } } } \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/Client.cs b/src/Clerk/BackendAPI/Models/Components/Client.cs index 584394e9..b021be82 100644 --- a/src/Clerk/BackendAPI/Models/Components/Client.cs +++ b/src/Clerk/BackendAPI/Models/Components/Client.cs @@ -28,7 +28,7 @@ public class Client /// /// [JsonProperty("object")] - public ClientObject Object { get; set; } = default!; + public Models.Components.Object Object { get; set; } = default!; /// /// String representing the identifier of the session.
@@ -62,6 +62,16 @@ public class Client [JsonProperty("last_active_session_id", NullValueHandling = NullValueHandling.Include)] public string? LastActiveSessionId { get; set; } + /// + /// The authentication strategy that was last used to authenticate the user on this client.
+ /// + /// + /// + /// + ///
+ [JsonProperty("last_authentication_strategy", NullValueHandling = NullValueHandling.Include)] + public string? LastAuthenticationStrategy { get; set; } + /// /// Unix timestamp of last update.
/// diff --git a/src/Clerk/BackendAPI/Models/Components/CommercePayerResponse.cs b/src/Clerk/BackendAPI/Models/Components/CommercePayerResponse.cs new file mode 100644 index 00000000..a6d41ffc --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/CommercePayerResponse.cs @@ -0,0 +1,91 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Models.Components; + using Clerk.BackendAPI.Utils; + using Newtonsoft.Json; + + public class CommercePayerResponse + { + + /// + /// String representing the object's type. Objects of the same type share the same value. + /// + [JsonProperty("object")] + public CommercePayerResponseObject Object { get; set; } = default!; + + /// + /// Unique identifier for the payer. + /// + [JsonProperty("id")] + public string Id { get; set; } = default!; + + /// + /// Unique identifier for the Clerk instance. + /// + [JsonProperty("instance_id")] + public string InstanceId { get; set; } = default!; + + /// + /// User ID for user-type payers. + /// + [JsonProperty("user_id")] + public string? UserId { get; set; } = null; + + /// + /// First name of the payer. + /// + [JsonProperty("first_name")] + public string? FirstName { get; set; } = null; + + /// + /// Last name of the payer. + /// + [JsonProperty("last_name")] + public string? LastName { get; set; } = null; + + /// + /// Email address of the payer. + /// + [JsonProperty("email")] + public string? Email { get; set; } = null; + + /// + /// Organization ID for org-type payers. + /// + [JsonProperty("organization_id")] + public string? OrganizationId { get; set; } = null; + + /// + /// Organization name for org-type payers. + /// + [JsonProperty("organization_name")] + public string? OrganizationName { get; set; } = null; + + /// + /// URL of the payer's image/avatar. + /// + [JsonProperty("image_url")] + public string? ImageUrl { get; set; } + + /// + /// Unix timestamp (in milliseconds) when the payer was created. + /// + [JsonProperty("created_at")] + public long? CreatedAt { get; set; } + + /// + /// Unix timestamp (in milliseconds) when the payer was last updated. + /// + [JsonProperty("updated_at")] + public long? UpdatedAt { get; set; } + } +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemPayerObject.cs b/src/Clerk/BackendAPI/Models/Components/CommercePayerResponseObject.cs similarity index 73% rename from src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemPayerObject.cs rename to src/Clerk/BackendAPI/Models/Components/CommercePayerResponseObject.cs index 1d9e92ef..9104ccca 100644 --- a/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemPayerObject.cs +++ b/src/Clerk/BackendAPI/Models/Components/CommercePayerResponseObject.cs @@ -16,22 +16,22 @@ namespace Clerk.BackendAPI.Models.Components /// /// String representing the object's type. Objects of the same type share the same value. /// - public enum CommerceSubscriptionItemPayerObject + public enum CommercePayerResponseObject { [JsonProperty("commerce_payer")] CommercePayer, } - public static class CommerceSubscriptionItemPayerObjectExtension + public static class CommercePayerResponseObjectExtension { - public static string Value(this CommerceSubscriptionItemPayerObject value) + public static string Value(this CommercePayerResponseObject value) { return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); } - public static CommerceSubscriptionItemPayerObject ToEnum(this string value) + public static CommercePayerResponseObject ToEnum(this string value) { - foreach(var field in typeof(CommerceSubscriptionItemPayerObject).GetFields()) + foreach(var field in typeof(CommercePayerResponseObject).GetFields()) { var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); if (attributes.Length == 0) @@ -44,14 +44,14 @@ public static CommerceSubscriptionItemPayerObject ToEnum(this string value) { var enumVal = field.GetValue(null); - if (enumVal is CommerceSubscriptionItemPayerObject) + if (enumVal is CommercePayerResponseObject) { - return (CommerceSubscriptionItemPayerObject)enumVal; + return (CommercePayerResponseObject)enumVal; } } } - throw new Exception($"Unknown value {value} for enum CommerceSubscriptionItemPayerObject"); + throw new Exception($"Unknown value {value} for enum CommercePayerResponseObject"); } } diff --git a/src/Clerk/BackendAPI/Models/Components/CommercePaymentMethodResponse.cs b/src/Clerk/BackendAPI/Models/Components/CommercePaymentMethodResponse.cs new file mode 100644 index 00000000..8b4c8933 --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/CommercePaymentMethodResponse.cs @@ -0,0 +1,121 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Models.Components; + using Clerk.BackendAPI.Utils; + using Newtonsoft.Json; + + public class CommercePaymentMethodResponse + { + + /// + /// String representing the object's type. Objects of the same type share the same value. + /// + [JsonProperty("object")] + public CommercePaymentMethodResponseObject Object { get; set; } = default!; + + /// + /// Unique identifier for the payment method. + /// + [JsonProperty("id")] + public string Id { get; set; } = default!; + + /// + /// Unique identifier for the payer. + /// + [JsonProperty("payer_id")] + public string PayerId { get; set; } = default!; + + /// + /// The payment method type. + /// + [JsonProperty("payment_type")] + public PaymentType PaymentType { get; set; } = default!; + + /// + /// Whether this is the default payment method for the payer. + /// + [JsonProperty("is_default")] + public bool? IsDefault { get; set; } + + /// + /// The payment gateway. + /// + [JsonProperty("gateway")] + public string Gateway { get; set; } = default!; + + /// + /// External ID in the payment gateway. + /// + [JsonProperty("gateway_external_id")] + public string GatewayExternalId { get; set; } = default!; + + /// + /// External account ID in the payment gateway. + /// + [JsonProperty("gateway_external_account_id", NullValueHandling = NullValueHandling.Include)] + public string? GatewayExternalAccountId { get; set; } + + /// + /// Last 4 digits of the card (for card payment methods). + /// + [JsonProperty("last4", NullValueHandling = NullValueHandling.Include)] + public string? Last4 { get; set; } + + /// + /// Status of the payment method. + /// + [JsonProperty("status")] + public CommercePaymentMethodResponseStatus Status { get; set; } = default!; + + /// + /// Type of wallet (if applicable). + /// + [JsonProperty("wallet_type")] + public string? WalletType { get; set; } = null; + + /// + /// Type of card (if applicable). + /// + [JsonProperty("card_type", NullValueHandling = NullValueHandling.Include)] + public string? CardType { get; set; } + + /// + /// Card expiration year (for card payment methods). + /// + [JsonProperty("expiry_year")] + public long? ExpiryYear { get; set; } = null; + + /// + /// Card expiration month (for card payment methods). + /// + [JsonProperty("expiry_month")] + public long? ExpiryMonth { get; set; } = null; + + /// + /// Unix timestamp (in milliseconds) when the payment method was created. + /// + [JsonProperty("created_at")] + public long? CreatedAt { get; set; } + + /// + /// Unix timestamp (in milliseconds) when the payment method was last updated. + /// + [JsonProperty("updated_at")] + public long? UpdatedAt { get; set; } + + /// + /// Whether this payment method can be removed. + /// + [JsonProperty("is_removable")] + public bool? IsRemovable { get; set; } + } +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/CommercePaymentMethodResponseObject.cs b/src/Clerk/BackendAPI/Models/Components/CommercePaymentMethodResponseObject.cs new file mode 100644 index 00000000..dfed5047 --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/CommercePaymentMethodResponseObject.cs @@ -0,0 +1,58 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Utils; + using Newtonsoft.Json; + using System; + + /// + /// String representing the object's type. Objects of the same type share the same value. + /// + public enum CommercePaymentMethodResponseObject + { + [JsonProperty("commerce_payment_method")] + CommercePaymentMethod, + } + + public static class CommercePaymentMethodResponseObjectExtension + { + public static string Value(this CommercePaymentMethodResponseObject value) + { + return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); + } + + public static CommercePaymentMethodResponseObject ToEnum(this string value) + { + foreach(var field in typeof(CommercePaymentMethodResponseObject).GetFields()) + { + var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); + if (attributes.Length == 0) + { + continue; + } + + var attribute = attributes[0] as JsonPropertyAttribute; + if (attribute != null && attribute.PropertyName == value) + { + var enumVal = field.GetValue(null); + + if (enumVal is CommercePaymentMethodResponseObject) + { + return (CommercePaymentMethodResponseObject)enumVal; + } + } + } + + throw new Exception($"Unknown value {value} for enum CommercePaymentMethodResponseObject"); + } + } + +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemPaymentSourceStatus.cs b/src/Clerk/BackendAPI/Models/Components/CommercePaymentMethodResponseStatus.cs similarity index 69% rename from src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemPaymentSourceStatus.cs rename to src/Clerk/BackendAPI/Models/Components/CommercePaymentMethodResponseStatus.cs index 8957278d..60b77d08 100644 --- a/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemPaymentSourceStatus.cs +++ b/src/Clerk/BackendAPI/Models/Components/CommercePaymentMethodResponseStatus.cs @@ -14,9 +14,9 @@ namespace Clerk.BackendAPI.Models.Components using System; /// - /// Status of the payment source. + /// Status of the payment method. /// - public enum CommerceSubscriptionItemPaymentSourceStatus + public enum CommercePaymentMethodResponseStatus { [JsonProperty("active")] Active, @@ -24,16 +24,16 @@ public enum CommerceSubscriptionItemPaymentSourceStatus Disconnected, } - public static class CommerceSubscriptionItemPaymentSourceStatusExtension + public static class CommercePaymentMethodResponseStatusExtension { - public static string Value(this CommerceSubscriptionItemPaymentSourceStatus value) + public static string Value(this CommercePaymentMethodResponseStatus value) { return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); } - public static CommerceSubscriptionItemPaymentSourceStatus ToEnum(this string value) + public static CommercePaymentMethodResponseStatus ToEnum(this string value) { - foreach(var field in typeof(CommerceSubscriptionItemPaymentSourceStatus).GetFields()) + foreach(var field in typeof(CommercePaymentMethodResponseStatus).GetFields()) { var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); if (attributes.Length == 0) @@ -46,14 +46,14 @@ public static CommerceSubscriptionItemPaymentSourceStatus ToEnum(this string val { var enumVal = field.GetValue(null); - if (enumVal is CommerceSubscriptionItemPaymentSourceStatus) + if (enumVal is CommercePaymentMethodResponseStatus) { - return (CommerceSubscriptionItemPaymentSourceStatus)enumVal; + return (CommercePaymentMethodResponseStatus)enumVal; } } } - throw new Exception($"Unknown value {value} for enum CommerceSubscriptionItemPaymentSourceStatus"); + throw new Exception($"Unknown value {value} for enum CommercePaymentMethodResponseStatus"); } } diff --git a/src/Clerk/BackendAPI/Models/Components/CommercePlan.cs b/src/Clerk/BackendAPI/Models/Components/CommercePlan.cs index 5d6c481e..c5602df0 100644 --- a/src/Clerk/BackendAPI/Models/Components/CommercePlan.cs +++ b/src/Clerk/BackendAPI/Models/Components/CommercePlan.cs @@ -24,13 +24,13 @@ public class CommercePlan public CommercePlanObject Object { get; set; } = default!; /// - /// Unique identifier for the commerce plan. + /// Unique identifier for the plan. /// [JsonProperty("id")] public string Id { get; set; } = default!; /// - /// The name of the commerce plan. + /// The name of the plan. /// [JsonProperty("name")] public string Name { get; set; } = default!; @@ -38,65 +38,17 @@ public class CommercePlan [JsonProperty("fee")] public CommerceMoneyResponse Fee { get; set; } = default!; - [JsonProperty("annual_monthly_fee")] - public CommerceMoneyResponse AnnualMonthlyFee { get; set; } = default!; + [JsonProperty("annual_monthly_fee", NullValueHandling = NullValueHandling.Include)] + public AnnualMonthlyFee? AnnualMonthlyFee { get; set; } - [JsonProperty("annual_fee")] - public CommerceMoneyResponse AnnualFee { get; set; } = default!; + [JsonProperty("annual_fee", NullValueHandling = NullValueHandling.Include)] + public AnnualFee? AnnualFee { get; set; } /// - /// The amount in cents for the plan. + /// The description of the plan. /// - [JsonProperty("amount")] - public long Amount { get; set; } = default!; - - /// - /// The formatted amount as a string (e.g., "$49.99"). - /// - [JsonProperty("amount_formatted")] - public string AmountFormatted { get; set; } = default!; - - /// - /// The monthly amount in cents when billed annually. - /// - [JsonProperty("annual_monthly_amount")] - public long AnnualMonthlyAmount { get; set; } = default!; - - /// - /// The formatted annual monthly amount as a string. - /// - [JsonProperty("annual_monthly_amount_formatted")] - public string AnnualMonthlyAmountFormatted { get; set; } = default!; - - /// - /// The total annual amount in cents. - /// - [JsonProperty("annual_amount")] - public long AnnualAmount { get; set; } = default!; - - /// - /// The formatted annual amount as a string. - /// - [JsonProperty("annual_amount_formatted")] - public string AnnualAmountFormatted { get; set; } = default!; - - /// - /// The currency symbol (e.g., "$"). - /// - [JsonProperty("currency_symbol")] - public string CurrencySymbol { get; set; } = default!; - - /// - /// The currency code (e.g., "USD"). - /// - [JsonProperty("currency")] - public string Currency { get; set; } = default!; - - /// - /// The description of the commerce plan. - /// - [JsonProperty("description")] - public string Description { get; set; } = default!; + [JsonProperty("description", NullValueHandling = NullValueHandling.Include)] + public string? Description { get; set; } /// /// The ID of the product this plan belongs to. @@ -128,12 +80,6 @@ public class CommercePlan [JsonProperty("has_base_fee")] public bool HasBaseFee { get; set; } = default!; - /// - /// The types of payers that can use this plan. - /// - [JsonProperty("payer_type")] - public List PayerType { get; set; } = default!; - /// /// The payer type this plan is designed for. /// @@ -149,37 +95,25 @@ public class CommercePlan /// /// The URL of the plan's avatar image. /// - [JsonProperty("avatar_url")] - public string AvatarUrl { get; set; } = default!; - - /// - /// The billing period for the plan. - /// - [JsonProperty("period")] - public string? Period { get; set; } - - /// - /// The billing interval. - /// - [JsonProperty("interval")] - public long? Interval { get; set; } + [JsonProperty("avatar_url", NullValueHandling = NullValueHandling.Include)] + public string? AvatarUrl { get; set; } /// /// The features included in this plan. /// [JsonProperty("features")] - public List Features { get; set; } = default!; + public List? Features { get; set; } /// /// Whether free trial is enabled for this plan. /// [JsonProperty("free_trial_enabled")] - public bool? FreeTrialEnabled { get; set; } + public bool FreeTrialEnabled { get; set; } = default!; /// /// Number of free trial days for this plan. /// - [JsonProperty("free_trial_days")] - public long? FreeTrialDays { get; set; } = null; + [JsonProperty("free_trial_days", NullValueHandling = NullValueHandling.Include)] + public long? FreeTrialDays { get; set; } } } \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/CommerceSubscription.cs b/src/Clerk/BackendAPI/Models/Components/CommerceSubscription.cs index d36a7f0b..4eddd0f7 100644 --- a/src/Clerk/BackendAPI/Models/Components/CommerceSubscription.cs +++ b/src/Clerk/BackendAPI/Models/Components/CommerceSubscription.cs @@ -65,14 +65,14 @@ public class CommerceSubscription /// /// Unix timestamp (milliseconds) when the subscription became active. /// - [JsonProperty("active_at")] - public long? ActiveAt { get; set; } = null; + [JsonProperty("active_at", NullValueHandling = NullValueHandling.Include)] + public long? ActiveAt { get; set; } /// /// Unix timestamp (milliseconds) when the subscription became past due. /// - [JsonProperty("past_due_at")] - public long? PastDueAt { get; set; } = null; + [JsonProperty("past_due_at", NullValueHandling = NullValueHandling.Include)] + public long? PastDueAt { get; set; } /// /// Array of subscription items in this subscription. @@ -87,6 +87,6 @@ public class CommerceSubscription /// Whether the payer is eligible for a free trial. /// [JsonProperty("eligible_for_free_trial")] - public bool? EligibleForFreeTrial { get; set; } = null; + public bool? EligibleForFreeTrial { get; set; } } } \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Operations/CompleteAccountlessApplicationResponse.cs b/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionCreditResponse.cs similarity index 58% rename from src/Clerk/BackendAPI/Models/Operations/CompleteAccountlessApplicationResponse.cs rename to src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionCreditResponse.cs index 9dc080c8..87c9891a 100644 --- a/src/Clerk/BackendAPI/Models/Operations/CompleteAccountlessApplicationResponse.cs +++ b/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionCreditResponse.cs @@ -7,21 +7,25 @@ // //------------------------------------------------------------------------------ #nullable enable -namespace Clerk.BackendAPI.Models.Operations +namespace Clerk.BackendAPI.Models.Components { using Clerk.BackendAPI.Models.Components; using Clerk.BackendAPI.Utils; using Newtonsoft.Json; - public class CompleteAccountlessApplicationResponse + public class CommerceSubscriptionCreditResponse { - [JsonProperty("-")] - public HTTPMetadata HttpMeta { get; set; } = default!; + /// + /// Credit amount. + /// + [JsonProperty("amount")] + public Amount? Amount { get; set; } = null; /// - /// Success + /// Percentage of the billing cycle remaining. /// - public AccountlessApplication? AccountlessApplication { get; set; } + [JsonProperty("cycle_remaining_percent")] + public float? CycleRemainingPercent { get; set; } } } \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItem.cs b/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItem.cs index 5726f3f3..f7dfb2eb 100644 --- a/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItem.cs +++ b/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItem.cs @@ -12,6 +12,7 @@ namespace Clerk.BackendAPI.Models.Components using Clerk.BackendAPI.Models.Components; using Clerk.BackendAPI.Utils; using Newtonsoft.Json; + using NodaTime; public class CommerceSubscriptionItem { @@ -40,59 +41,32 @@ public class CommerceSubscriptionItem [JsonProperty("status")] public CommerceSubscriptionItemStatus Status { get; set; } = default!; - /// - /// Credit information (only available in PaymentAttempt events). - /// [JsonProperty("credit")] - public Credit? Credit { get; set; } = null; + public CommerceSubscriptionCreditResponse? Credit { get; set; } /// /// Unique identifier for the associated plan. /// - [JsonProperty("plan_id")] - public string PlanId { get; set; } = default!; + [JsonProperty("plan_id", NullValueHandling = NullValueHandling.Include)] + public string? PlanId { get; set; } /// - /// The associated commerce plan. + /// The associated plan. /// - [JsonProperty("plan", NullValueHandling = NullValueHandling.Include)] - public Plan? Plan { get; set; } + [JsonProperty("plan")] + public Plan? Plan { get; set; } = null; /// - /// The billing period for this subscription. + /// The billing period for this subscription item. /// [JsonProperty("plan_period")] public PlanPeriod PlanPeriod { get; set; } = default!; - /// - /// Unique identifier for the payment source. - /// - [JsonProperty("payment_source_id")] - public string PaymentSourceId { get; set; } = default!; + [JsonProperty("payment_method")] + public CommercePaymentMethodResponse? PaymentMethod { get; set; } - /// - /// The payment source associated with this subscription. - /// - [JsonProperty("payment_source")] - public PaymentSource? PaymentSource { get; set; } = null; - - /// - /// Total amount paid over the lifetime of this subscription. - /// [JsonProperty("lifetime_paid")] - public LifetimePaid? LifetimePaid { get; set; } = null; - - /// - /// Current amount for this subscription. - /// - [JsonProperty("amount")] - public Amount? Amount { get; set; } = null; - - /// - /// Information about the next invoice. - /// - [JsonProperty("next_invoice")] - public NextInvoice? NextInvoice { get; set; } = null; + public CommerceMoneyResponse? LifetimePaid { get; set; } /// /// Information about the next payment. @@ -106,14 +80,11 @@ public class CommerceSubscriptionItem [JsonProperty("payer_id")] public string PayerId { get; set; } = default!; - /// - /// The payer associated with this subscription. - /// [JsonProperty("payer")] - public Payer? Payer { get; set; } = null; + public CommercePayerResponse? Payer { get; set; } /// - /// Whether this subscription is currently on a free trial. + /// Whether this subscription item includes a free trial. /// [JsonProperty("is_free_trial")] public bool IsFreeTrial { get; set; } = default!; @@ -122,48 +93,48 @@ public class CommerceSubscriptionItem /// Unix timestamp (in milliseconds) when the current period started. /// [JsonProperty("period_start")] - public long? PeriodStart { get; set; } = null; + public long PeriodStart { get; set; } = default!; /// /// Unix timestamp (in milliseconds) when the current period ends. /// - [JsonProperty("period_end")] - public long? PeriodEnd { get; set; } = null; + [JsonProperty("period_end", NullValueHandling = NullValueHandling.Include)] + public long? PeriodEnd { get; set; } /// - /// Date used for proration calculations. + /// The day the subscription item was prorated from. Only available in some responses. /// [JsonProperty("proration_date")] - public string ProrationDate { get; set; } = default!; + public LocalDate? ProrationDate { get; set; } /// - /// Unix timestamp (in milliseconds) when the subscription was canceled. + /// Unix timestamp (in milliseconds) when the subscription item was canceled. /// - [JsonProperty("canceled_at")] - public long? CanceledAt { get; set; } = null; + [JsonProperty("canceled_at", NullValueHandling = NullValueHandling.Include)] + public long? CanceledAt { get; set; } /// - /// Unix timestamp (in milliseconds) when the subscription became past due. + /// Unix timestamp (in milliseconds) when the subscription item became past due. /// - [JsonProperty("past_due_at")] - public long? PastDueAt { get; set; } = null; + [JsonProperty("past_due_at", NullValueHandling = NullValueHandling.Include)] + public long? PastDueAt { get; set; } /// - /// Unix timestamp (in milliseconds) when the subscription ended. + /// Unix timestamp (in milliseconds) when the subscription item ended. /// - [JsonProperty("ended_at")] - public long? EndedAt { get; set; } = null; + [JsonProperty("ended_at", NullValueHandling = NullValueHandling.Include)] + public long? EndedAt { get; set; } /// - /// Unix timestamp (in milliseconds) when the subscription was created. + /// Unix timestamp (in milliseconds) when the subscription item was created. /// [JsonProperty("created_at")] - public long CreatedAt { get; set; } = default!; + public long? CreatedAt { get; set; } /// - /// Unix timestamp (in milliseconds) when the subscription was last updated. + /// Unix timestamp (in milliseconds) when the subscription item was last updated. /// [JsonProperty("updated_at")] - public long UpdatedAt { get; set; } = default!; + public long? UpdatedAt { get; set; } } } \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemAmount.cs b/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemAmount.cs index 6fb76c9d..24bb095a 100644 --- a/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemAmount.cs +++ b/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemAmount.cs @@ -13,7 +13,7 @@ namespace Clerk.BackendAPI.Models.Components using Newtonsoft.Json; /// - /// Credit amount. + /// Amount for the next payment. /// public class CommerceSubscriptionItemAmount { diff --git a/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemAnnualFee.cs b/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemAnnualFee.cs new file mode 100644 index 00000000..bbdc7207 --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemAnnualFee.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Utils; + using Newtonsoft.Json; + + public class CommerceSubscriptionItemAnnualFee + { + + /// + /// The amount in cents. + /// + [JsonProperty("amount")] + public long Amount { get; set; } = default!; + + /// + /// The formatted amount as a string (e.g., "$49.99"). + /// + [JsonProperty("amount_formatted")] + public string AmountFormatted { get; set; } = default!; + + /// + /// The currency code (e.g., "USD"). + /// + [JsonProperty("currency")] + public string Currency { get; set; } = default!; + + /// + /// The currency symbol (e.g., "$"). + /// + [JsonProperty("currency_symbol")] + public string CurrencySymbol { get; set; } = default!; + } +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemAnnualMonthlyFee.cs b/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemAnnualMonthlyFee.cs new file mode 100644 index 00000000..ce40a6d6 --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemAnnualMonthlyFee.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Utils; + using Newtonsoft.Json; + + public class CommerceSubscriptionItemAnnualMonthlyFee + { + + /// + /// The amount in cents. + /// + [JsonProperty("amount")] + public long Amount { get; set; } = default!; + + /// + /// The formatted amount as a string (e.g., "$49.99"). + /// + [JsonProperty("amount_formatted")] + public string AmountFormatted { get; set; } = default!; + + /// + /// The currency code (e.g., "USD"). + /// + [JsonProperty("currency")] + public string Currency { get; set; } = default!; + + /// + /// The currency symbol (e.g., "$"). + /// + [JsonProperty("currency_symbol")] + public string CurrencySymbol { get; set; } = default!; + } +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemStatus.cs b/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemStatus.cs index df93051a..634f5b87 100644 --- a/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemStatus.cs +++ b/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemStatus.cs @@ -20,6 +20,10 @@ public enum CommerceSubscriptionItemStatus { [JsonProperty("active")] Active, + [JsonProperty("canceled")] + Canceled, + [JsonProperty("expired")] + Expired, [JsonProperty("ended")] Ended, [JsonProperty("past_due")] diff --git a/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionNextPayment.cs b/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionNextPayment.cs index a1dc71cd..ab7b1cc5 100644 --- a/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionNextPayment.cs +++ b/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionNextPayment.cs @@ -16,12 +16,6 @@ namespace Clerk.BackendAPI.Models.Components public class CommerceSubscriptionNextPayment { - /// - /// Unix timestamp (milliseconds) of the next payment. - /// - [JsonProperty("time")] - public long Time { get; set; } = default!; - /// /// Unix timestamp (milliseconds) of the next payment date. /// diff --git a/src/Clerk/BackendAPI/Models/Components/Credit.cs b/src/Clerk/BackendAPI/Models/Components/Credit.cs index c6768631..7c127861 100644 --- a/src/Clerk/BackendAPI/Models/Components/Credit.cs +++ b/src/Clerk/BackendAPI/Models/Components/Credit.cs @@ -23,7 +23,7 @@ public class Credit /// Credit amount. /// [JsonProperty("amount")] - public CommerceSubscriptionItemAmount? Amount { get; set; } = null; + public SchemasCommerceSubscriptionItemCreditAmount? Amount { get; set; } = null; /// /// Percentage of the billing cycle remaining. diff --git a/src/Clerk/BackendAPI/Models/Components/DeletedObject.cs b/src/Clerk/BackendAPI/Models/Components/DeletedObject.cs index 2ff56c08..cadf55ad 100644 --- a/src/Clerk/BackendAPI/Models/Components/DeletedObject.cs +++ b/src/Clerk/BackendAPI/Models/Components/DeletedObject.cs @@ -29,5 +29,8 @@ public class DeletedObject [JsonProperty("deleted")] public bool Deleted { get; set; } = default!; + + [JsonProperty("external_id")] + public string? ExternalId { get; set; } } } \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/ErrorClerkError.cs b/src/Clerk/BackendAPI/Models/Components/ErrorClerkError.cs index d841b432..ebcc808c 100644 --- a/src/Clerk/BackendAPI/Models/Components/ErrorClerkError.cs +++ b/src/Clerk/BackendAPI/Models/Components/ErrorClerkError.cs @@ -27,8 +27,5 @@ public class ErrorClerkError [JsonProperty("meta")] public ErrorMeta? Meta { get; set; } - - [JsonProperty("clerk_trace_id")] - public string? ClerkTraceId { get; set; } } } \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/Groups.cs b/src/Clerk/BackendAPI/Models/Components/Groups.cs new file mode 100644 index 00000000..11cdf124 --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/Groups.cs @@ -0,0 +1,41 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Models.Components; + using Clerk.BackendAPI.Utils; + using Newtonsoft.Json; + using System.Collections.Generic; + + /// + /// A statement group. + /// + public class Groups + { + + /// + /// String representing the object's type. Objects of the same type share the same value. + /// + [JsonProperty("object")] + public BillingStatementGroupsObject Object { get; set; } = default!; + + /// + /// Unix timestamp (in milliseconds) of the date the group's payment attempts were created + /// + [JsonProperty("timestamp")] + public long Timestamp { get; set; } = default!; + + /// + /// The payment attempts included in the group + /// + [JsonProperty("items")] + public List Items { get; set; } = default!; + } +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/NextInvoice.cs b/src/Clerk/BackendAPI/Models/Components/NextInvoice.cs index 48a6f600..35388ca6 100644 --- a/src/Clerk/BackendAPI/Models/Components/NextInvoice.cs +++ b/src/Clerk/BackendAPI/Models/Components/NextInvoice.cs @@ -23,7 +23,7 @@ public class NextInvoice /// Amount for the next payment. /// [JsonProperty("amount")] - public CommerceSubscriptionItemNextInvoiceAmount? Amount { get; set; } = null; + public SchemasCommerceSubscriptionItemNextInvoiceAmount? Amount { get; set; } = null; /// /// Unix timestamp (in milliseconds) for the next payment date. diff --git a/src/Clerk/BackendAPI/Models/Components/NextPayment.cs b/src/Clerk/BackendAPI/Models/Components/NextPayment.cs index 4ab74529..09115e49 100644 --- a/src/Clerk/BackendAPI/Models/Components/NextPayment.cs +++ b/src/Clerk/BackendAPI/Models/Components/NextPayment.cs @@ -23,7 +23,7 @@ public class NextPayment /// Amount for the next payment. /// [JsonProperty("amount")] - public CommerceSubscriptionItemNextPaymentAmount? Amount { get; set; } = null; + public CommerceSubscriptionItemAmount? Amount { get; set; } = null; /// /// Unix timestamp (in milliseconds) for the next payment date. diff --git a/src/Clerk/BackendAPI/Models/Components/Object.cs b/src/Clerk/BackendAPI/Models/Components/Object.cs index 9744feed..e124a6c4 100644 --- a/src/Clerk/BackendAPI/Models/Components/Object.cs +++ b/src/Clerk/BackendAPI/Models/Components/Object.cs @@ -22,8 +22,8 @@ namespace Clerk.BackendAPI.Models.Components /// public enum Object { - [JsonProperty("aws_credential")] - AwsCredential, + [JsonProperty("client")] + Client, } public static class ObjectExtension diff --git a/src/Clerk/BackendAPI/Models/Components/One.cs b/src/Clerk/BackendAPI/Models/Components/One.cs index 6c535f85..8e9d5de0 100644 --- a/src/Clerk/BackendAPI/Models/Components/One.cs +++ b/src/Clerk/BackendAPI/Models/Components/One.cs @@ -77,13 +77,19 @@ public class One public bool SyncUserAttributes { get; set; } = default!; [JsonProperty("allow_subdomains")] - public bool? AllowSubdomains { get; set; } + public bool AllowSubdomains { get; set; } = default!; [JsonProperty("allow_idp_initiated")] - public bool? AllowIdpInitiated { get; set; } + public bool AllowIdpInitiated { get; set; } = default!; [JsonProperty("disable_additional_identifications")] - public bool? DisableAdditionalIdentifications { get; set; } + public bool DisableAdditionalIdentifications { get; set; } = default!; + + /// + /// Enable or deactivate ForceAuthn + /// + [JsonProperty("force_authn")] + public bool ForceAuthn { get; set; } = default!; /// /// Unix timestamp of creation.
diff --git a/src/Clerk/BackendAPI/Models/Components/OrganizationMembershipPublicUserData.cs b/src/Clerk/BackendAPI/Models/Components/OrganizationMembershipPublicUserData.cs index 3a8015cd..8515dd8a 100644 --- a/src/Clerk/BackendAPI/Models/Components/OrganizationMembershipPublicUserData.cs +++ b/src/Clerk/BackendAPI/Models/Components/OrganizationMembershipPublicUserData.cs @@ -40,5 +40,8 @@ public class OrganizationMembershipPublicUserData [JsonProperty("identifier")] public string? Identifier { get; set; } = null; + + [JsonProperty("username")] + public string? Username { get; set; } = null; } } \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/OrganizationSettings.cs b/src/Clerk/BackendAPI/Models/Components/OrganizationSettings.cs index ee4460a1..4a219b7a 100644 --- a/src/Clerk/BackendAPI/Models/Components/OrganizationSettings.cs +++ b/src/Clerk/BackendAPI/Models/Components/OrganizationSettings.cs @@ -58,6 +58,9 @@ public class OrganizationSettings [JsonProperty("domains_enabled")] public bool DomainsEnabled { get; set; } = default!; + [JsonProperty("slug_disabled")] + public bool? SlugDisabled { get; set; } + [JsonProperty("domains_enrollment_modes")] public List DomainsEnrollmentModes { get; set; } = default!; @@ -66,5 +69,11 @@ public class OrganizationSettings ///
[JsonProperty("domains_default_role")] public string DomainsDefaultRole { get; set; } = default!; + + /// + /// The role set key that it will be used to create new organizations. + /// + [JsonProperty("initial_role_set_key")] + public string? InitialRoleSetKey { get; set; } = null; } } \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/PaginatedBillingPaymentAttemptResponse.cs b/src/Clerk/BackendAPI/Models/Components/PaginatedBillingPaymentAttemptResponse.cs new file mode 100644 index 00000000..feac988e --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/PaginatedBillingPaymentAttemptResponse.cs @@ -0,0 +1,35 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Models.Components; + using Clerk.BackendAPI.Utils; + using Newtonsoft.Json; + using System.Collections.Generic; + + /// + /// A list of billing payment attempts. + /// + public class PaginatedBillingPaymentAttemptResponse + { + + /// + /// Array of billing payment attempts. + /// + [JsonProperty("data")] + public List Data { get; set; } = default!; + + /// + /// Total number of billing payment attempts. + /// + [JsonProperty("total_count")] + public long TotalCount { get; set; } = default!; + } +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/PaginatedBillingStatementResponse.cs b/src/Clerk/BackendAPI/Models/Components/PaginatedBillingStatementResponse.cs new file mode 100644 index 00000000..2d8749ec --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/PaginatedBillingStatementResponse.cs @@ -0,0 +1,35 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Models.Components; + using Clerk.BackendAPI.Utils; + using Newtonsoft.Json; + using System.Collections.Generic; + + /// + /// A list of billing statements. + /// + public class PaginatedBillingStatementResponse + { + + /// + /// Array of billing statements. + /// + [JsonProperty("data")] + public List Data { get; set; } = default!; + + /// + /// Total number of billing statements. + /// + [JsonProperty("total_count")] + public long TotalCount { get; set; } = default!; + } +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/PaginatedCommercePlanResponse.cs b/src/Clerk/BackendAPI/Models/Components/PaginatedCommercePlanResponse.cs index 7227ad6c..f8b09519 100644 --- a/src/Clerk/BackendAPI/Models/Components/PaginatedCommercePlanResponse.cs +++ b/src/Clerk/BackendAPI/Models/Components/PaginatedCommercePlanResponse.cs @@ -21,13 +21,13 @@ public class PaginatedCommercePlanResponse { /// - /// Array of commerce plans. + /// Array of plans. /// [JsonProperty("data")] public List Data { get; set; } = default!; /// - /// Total number of commerce plans. + /// Total number of plans. /// [JsonProperty("total_count")] public long TotalCount { get; set; } = default!; diff --git a/src/Clerk/BackendAPI/Models/Components/PaginatedCommerceSubscriptionItemResponse.cs b/src/Clerk/BackendAPI/Models/Components/PaginatedCommerceSubscriptionItemResponse.cs index 5b437912..28f3f632 100644 --- a/src/Clerk/BackendAPI/Models/Components/PaginatedCommerceSubscriptionItemResponse.cs +++ b/src/Clerk/BackendAPI/Models/Components/PaginatedCommerceSubscriptionItemResponse.cs @@ -21,13 +21,13 @@ public class PaginatedCommerceSubscriptionItemResponse { /// - /// Array of commerce subscription items. + /// Array of subscription items. /// [JsonProperty("data")] public List Data { get; set; } = default!; /// - /// Total number of commerce subscription items. + /// Total number of subscription items. /// [JsonProperty("total_count")] public long TotalCount { get; set; } = default!; diff --git a/src/Clerk/BackendAPI/Models/Components/Payee.cs b/src/Clerk/BackendAPI/Models/Components/Payee.cs new file mode 100644 index 00000000..08c86766 --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/Payee.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Utils; + + /// + /// The payee associated with this payment attempt. + /// + public class Payee + { + } +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/Payer.cs b/src/Clerk/BackendAPI/Models/Components/Payer.cs index 1e69d605..3729d109 100644 --- a/src/Clerk/BackendAPI/Models/Components/Payer.cs +++ b/src/Clerk/BackendAPI/Models/Components/Payer.cs @@ -23,7 +23,7 @@ public class Payer /// String representing the object's type. Objects of the same type share the same value. ///
[JsonProperty("object")] - public CommerceSubscriptionItemPayerObject Object { get; set; } = default!; + public SchemasCommerceSubscriptionItemPayerObject Object { get; set; } = default!; /// /// Unique identifier for the payer. diff --git a/src/Clerk/BackendAPI/Models/Components/PaymentSource.cs b/src/Clerk/BackendAPI/Models/Components/PaymentSource.cs index 1758d56a..84054593 100644 --- a/src/Clerk/BackendAPI/Models/Components/PaymentSource.cs +++ b/src/Clerk/BackendAPI/Models/Components/PaymentSource.cs @@ -23,7 +23,7 @@ public class PaymentSource /// String representing the object's type. Objects of the same type share the same value. /// [JsonProperty("object")] - public CommerceSubscriptionItemPaymentSourceObject Object { get; set; } = default!; + public SchemasCommerceSubscriptionItemPaymentSourceObject Object { get; set; } = default!; /// /// Unique identifier for the payment source. @@ -77,7 +77,7 @@ public class PaymentSource /// Status of the payment source. /// [JsonProperty("status")] - public CommerceSubscriptionItemPaymentSourceStatus Status { get; set; } = default!; + public SchemasCommerceSubscriptionItemPaymentSourceStatus Status { get; set; } = default!; /// /// Type of wallet (if applicable). diff --git a/src/Clerk/BackendAPI/Models/Components/AccountlessApplicationObject.cs b/src/Clerk/BackendAPI/Models/Components/PaymentType.cs similarity index 69% rename from src/Clerk/BackendAPI/Models/Components/AccountlessApplicationObject.cs rename to src/Clerk/BackendAPI/Models/Components/PaymentType.cs index 166bd4b9..f4bd80bd 100644 --- a/src/Clerk/BackendAPI/Models/Components/AccountlessApplicationObject.cs +++ b/src/Clerk/BackendAPI/Models/Components/PaymentType.cs @@ -13,22 +13,27 @@ namespace Clerk.BackendAPI.Models.Components using Newtonsoft.Json; using System; - public enum AccountlessApplicationObject + /// + /// The payment method type. + /// + public enum PaymentType { - [JsonProperty("accountless_application")] - AccountlessApplication, + [JsonProperty("card")] + Card, + [JsonProperty("link")] + Link, } - public static class AccountlessApplicationObjectExtension + public static class PaymentTypeExtension { - public static string Value(this AccountlessApplicationObject value) + public static string Value(this PaymentType value) { return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); } - public static AccountlessApplicationObject ToEnum(this string value) + public static PaymentType ToEnum(this string value) { - foreach(var field in typeof(AccountlessApplicationObject).GetFields()) + foreach(var field in typeof(PaymentType).GetFields()) { var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); if (attributes.Length == 0) @@ -41,14 +46,14 @@ public static AccountlessApplicationObject ToEnum(this string value) { var enumVal = field.GetValue(null); - if (enumVal is AccountlessApplicationObject) + if (enumVal is PaymentType) { - return (AccountlessApplicationObject)enumVal; + return (PaymentType)enumVal; } } } - throw new Exception($"Unknown value {value} for enum AccountlessApplicationObject"); + throw new Exception($"Unknown value {value} for enum PaymentType"); } } diff --git a/src/Clerk/BackendAPI/Models/Components/Plan.cs b/src/Clerk/BackendAPI/Models/Components/Plan.cs index db38d550..5ff87b86 100644 --- a/src/Clerk/BackendAPI/Models/Components/Plan.cs +++ b/src/Clerk/BackendAPI/Models/Components/Plan.cs @@ -15,7 +15,7 @@ namespace Clerk.BackendAPI.Models.Components using System.Collections.Generic; /// - /// The associated commerce plan. + /// The associated plan. /// public class Plan { @@ -27,13 +27,13 @@ public class Plan public CommerceSubscriptionItemPlanObject Object { get; set; } = default!; /// - /// Unique identifier for the commerce plan. + /// Unique identifier for the plan. /// [JsonProperty("id")] public string Id { get; set; } = default!; /// - /// The name of the commerce plan. + /// The name of the plan. /// [JsonProperty("name")] public string Name { get; set; } = default!; @@ -41,65 +41,17 @@ public class Plan [JsonProperty("fee")] public CommerceMoneyResponse Fee { get; set; } = default!; - [JsonProperty("annual_monthly_fee")] - public CommerceMoneyResponse AnnualMonthlyFee { get; set; } = default!; + [JsonProperty("annual_monthly_fee", NullValueHandling = NullValueHandling.Include)] + public CommerceSubscriptionItemAnnualMonthlyFee? AnnualMonthlyFee { get; set; } - [JsonProperty("annual_fee")] - public CommerceMoneyResponse AnnualFee { get; set; } = default!; + [JsonProperty("annual_fee", NullValueHandling = NullValueHandling.Include)] + public CommerceSubscriptionItemAnnualFee? AnnualFee { get; set; } /// - /// The amount in cents for the plan. + /// The description of the plan. /// - [JsonProperty("amount")] - public long Amount { get; set; } = default!; - - /// - /// The formatted amount as a string (e.g., "$49.99"). - /// - [JsonProperty("amount_formatted")] - public string AmountFormatted { get; set; } = default!; - - /// - /// The monthly amount in cents when billed annually. - /// - [JsonProperty("annual_monthly_amount")] - public long AnnualMonthlyAmount { get; set; } = default!; - - /// - /// The formatted annual monthly amount as a string. - /// - [JsonProperty("annual_monthly_amount_formatted")] - public string AnnualMonthlyAmountFormatted { get; set; } = default!; - - /// - /// The total annual amount in cents. - /// - [JsonProperty("annual_amount")] - public long AnnualAmount { get; set; } = default!; - - /// - /// The formatted annual amount as a string. - /// - [JsonProperty("annual_amount_formatted")] - public string AnnualAmountFormatted { get; set; } = default!; - - /// - /// The currency symbol (e.g., "$"). - /// - [JsonProperty("currency_symbol")] - public string CurrencySymbol { get; set; } = default!; - - /// - /// The currency code (e.g., "USD"). - /// - [JsonProperty("currency")] - public string Currency { get; set; } = default!; - - /// - /// The description of the commerce plan. - /// - [JsonProperty("description")] - public string Description { get; set; } = default!; + [JsonProperty("description", NullValueHandling = NullValueHandling.Include)] + public string? Description { get; set; } /// /// The ID of the product this plan belongs to. @@ -131,12 +83,6 @@ public class Plan [JsonProperty("has_base_fee")] public bool HasBaseFee { get; set; } = default!; - /// - /// The types of payers that can use this plan. - /// - [JsonProperty("payer_type")] - public List PayerType { get; set; } = default!; - /// /// The payer type this plan is designed for. /// @@ -152,37 +98,25 @@ public class Plan /// /// The URL of the plan's avatar image. /// - [JsonProperty("avatar_url")] - public string AvatarUrl { get; set; } = default!; - - /// - /// The billing period for the plan. - /// - [JsonProperty("period")] - public string? Period { get; set; } - - /// - /// The billing interval. - /// - [JsonProperty("interval")] - public long? Interval { get; set; } + [JsonProperty("avatar_url", NullValueHandling = NullValueHandling.Include)] + public string? AvatarUrl { get; set; } /// /// The features included in this plan. /// [JsonProperty("features")] - public List Features { get; set; } = default!; + public List? Features { get; set; } /// /// Whether free trial is enabled for this plan. /// [JsonProperty("free_trial_enabled")] - public bool? FreeTrialEnabled { get; set; } + public bool FreeTrialEnabled { get; set; } = default!; /// /// Number of free trial days for this plan. /// - [JsonProperty("free_trial_days")] - public long? FreeTrialDays { get; set; } = null; + [JsonProperty("free_trial_days", NullValueHandling = NullValueHandling.Include)] + public long? FreeTrialDays { get; set; } } } \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/PlanPeriod.cs b/src/Clerk/BackendAPI/Models/Components/PlanPeriod.cs index d0daebbb..a64fba42 100644 --- a/src/Clerk/BackendAPI/Models/Components/PlanPeriod.cs +++ b/src/Clerk/BackendAPI/Models/Components/PlanPeriod.cs @@ -14,7 +14,7 @@ namespace Clerk.BackendAPI.Models.Components using System; /// - /// The billing period for this subscription. + /// The billing period for this subscription item. /// public enum PlanPeriod { diff --git a/src/Clerk/BackendAPI/Models/Components/SAMLAccount.cs b/src/Clerk/BackendAPI/Models/Components/SAMLAccount.cs index c2ba9ba4..2b634a60 100644 --- a/src/Clerk/BackendAPI/Models/Components/SAMLAccount.cs +++ b/src/Clerk/BackendAPI/Models/Components/SAMLAccount.cs @@ -48,6 +48,16 @@ public class SAMLAccount [JsonProperty("provider_user_id")] public string? ProviderUserId { get; set; } = null; + /// + /// Unix timestamp of last authentication.
+ /// + /// + /// + /// + ///
+ [JsonProperty("last_authenticated_at")] + public long? LastAuthenticatedAt { get; set; } = null; + [JsonProperty("public_metadata")] public Dictionary? PublicMetadata { get; set; } diff --git a/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItem.cs b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItem.cs new file mode 100644 index 00000000..f204bf04 --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItem.cs @@ -0,0 +1,172 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Models.Components; + using Clerk.BackendAPI.Utils; + using Newtonsoft.Json; + + /// + /// A commerce subscription item. + /// + public class SchemasCommerceSubscriptionItem + { + + /// + /// String representing the object's type. Objects of the same type share the same value. + /// + [JsonProperty("object")] + public SchemasCommerceSubscriptionItemObject Object { get; set; } = default!; + + /// + /// Unique identifier for the subscription item. + /// + [JsonProperty("id")] + public string Id { get; set; } = default!; + + /// + /// Unique identifier for the Clerk instance. + /// + [JsonProperty("instance_id")] + public string InstanceId { get; set; } = default!; + + /// + /// Current status of the subscription item. + /// + [JsonProperty("status")] + public SchemasCommerceSubscriptionItemStatus Status { get; set; } = default!; + + /// + /// Credit information (only available in PaymentAttempt events). + /// + [JsonProperty("credit")] + public Credit? Credit { get; set; } = null; + + /// + /// Unique identifier for the associated plan. + /// + [JsonProperty("plan_id")] + public string PlanId { get; set; } = default!; + + /// + /// The associated commerce plan. + /// + [JsonProperty("plan", NullValueHandling = NullValueHandling.Include)] + public SchemasCommerceSubscriptionItemPlan? Plan { get; set; } + + /// + /// The billing period for this subscription. + /// + [JsonProperty("plan_period")] + public SchemasCommerceSubscriptionItemPlanPeriod PlanPeriod { get; set; } = default!; + + /// + /// Unique identifier for the payment source. + /// + [JsonProperty("payment_source_id")] + public string PaymentSourceId { get; set; } = default!; + + /// + /// The payment source associated with this subscription. + /// + [JsonProperty("payment_source")] + public PaymentSource? PaymentSource { get; set; } = null; + + /// + /// Total amount paid over the lifetime of this subscription. + /// + [JsonProperty("lifetime_paid")] + public LifetimePaid? LifetimePaid { get; set; } = null; + + /// + /// Current amount for this subscription. + /// + [JsonProperty("amount")] + public SchemasCommerceSubscriptionItemAmount? Amount { get; set; } = null; + + /// + /// Information about the next invoice. + /// + [JsonProperty("next_invoice")] + public NextInvoice? NextInvoice { get; set; } = null; + + /// + /// Information about the next payment. + /// + [JsonProperty("next_payment")] + public SchemasCommerceSubscriptionItemNextPayment? NextPayment { get; set; } = null; + + /// + /// Unique identifier for the payer. + /// + [JsonProperty("payer_id")] + public string PayerId { get; set; } = default!; + + /// + /// The payer associated with this subscription. + /// + [JsonProperty("payer")] + public Payer? Payer { get; set; } = null; + + /// + /// Whether this subscription is currently on a free trial. + /// + [JsonProperty("is_free_trial")] + public bool IsFreeTrial { get; set; } = default!; + + /// + /// Unix timestamp (in milliseconds) when the current period started. + /// + [JsonProperty("period_start")] + public long? PeriodStart { get; set; } = null; + + /// + /// Unix timestamp (in milliseconds) when the current period ends. + /// + [JsonProperty("period_end")] + public long? PeriodEnd { get; set; } = null; + + /// + /// Date used for proration calculations. + /// + [JsonProperty("proration_date")] + public string ProrationDate { get; set; } = default!; + + /// + /// Unix timestamp (in milliseconds) when the subscription was canceled. + /// + [JsonProperty("canceled_at")] + public long? CanceledAt { get; set; } = null; + + /// + /// Unix timestamp (in milliseconds) when the subscription became past due. + /// + [JsonProperty("past_due_at")] + public long? PastDueAt { get; set; } = null; + + /// + /// Unix timestamp (in milliseconds) when the subscription ended. + /// + [JsonProperty("ended_at")] + public long? EndedAt { get; set; } = null; + + /// + /// Unix timestamp (in milliseconds) when the subscription was created. + /// + [JsonProperty("created_at")] + public long CreatedAt { get; set; } = default!; + + /// + /// Unix timestamp (in milliseconds) when the subscription was last updated. + /// + [JsonProperty("updated_at")] + public long UpdatedAt { get; set; } = default!; + } +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemAmount.cs b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemAmount.cs new file mode 100644 index 00000000..9de88a5a --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemAmount.cs @@ -0,0 +1,45 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Utils; + using Newtonsoft.Json; + + /// + /// Current amount for this subscription. + /// + public class SchemasCommerceSubscriptionItemAmount + { + + /// + /// The amount in cents. + /// + [JsonProperty("amount")] + public long Amount { get; set; } = default!; + + /// + /// The formatted amount as a string (e.g., "$49.99"). + /// + [JsonProperty("amount_formatted")] + public string AmountFormatted { get; set; } = default!; + + /// + /// The currency code (e.g., "USD"). + /// + [JsonProperty("currency")] + public string Currency { get; set; } = default!; + + /// + /// The currency symbol (e.g., "$"). + /// + [JsonProperty("currency_symbol")] + public string CurrencySymbol { get; set; } = default!; + } +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemCreditAmount.cs b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemCreditAmount.cs new file mode 100644 index 00000000..ea85019b --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemCreditAmount.cs @@ -0,0 +1,45 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Utils; + using Newtonsoft.Json; + + /// + /// Credit amount. + /// + public class SchemasCommerceSubscriptionItemCreditAmount + { + + /// + /// The amount in cents. + /// + [JsonProperty("amount")] + public long Amount { get; set; } = default!; + + /// + /// The formatted amount as a string (e.g., "$49.99"). + /// + [JsonProperty("amount_formatted")] + public string AmountFormatted { get; set; } = default!; + + /// + /// The currency code (e.g., "USD"). + /// + [JsonProperty("currency")] + public string Currency { get; set; } = default!; + + /// + /// The currency symbol (e.g., "$"). + /// + [JsonProperty("currency_symbol")] + public string CurrencySymbol { get; set; } = default!; + } +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemNextInvoiceAmount.cs b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemNextInvoiceAmount.cs similarity index 95% rename from src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemNextInvoiceAmount.cs rename to src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemNextInvoiceAmount.cs index 0e125829..45bd581e 100644 --- a/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemNextInvoiceAmount.cs +++ b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemNextInvoiceAmount.cs @@ -15,7 +15,7 @@ namespace Clerk.BackendAPI.Models.Components /// /// Amount for the next payment. /// - public class CommerceSubscriptionItemNextInvoiceAmount + public class SchemasCommerceSubscriptionItemNextInvoiceAmount { /// diff --git a/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemNextPayment.cs b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemNextPayment.cs new file mode 100644 index 00000000..8c188793 --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemNextPayment.cs @@ -0,0 +1,34 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Models.Components; + using Clerk.BackendAPI.Utils; + using Newtonsoft.Json; + + /// + /// Information about the next payment. + /// + public class SchemasCommerceSubscriptionItemNextPayment + { + + /// + /// Amount for the next payment. + /// + [JsonProperty("amount")] + public SchemasCommerceSubscriptionItemNextPaymentAmount? Amount { get; set; } = null; + + /// + /// Unix timestamp (in milliseconds) for the next payment date. + /// + [JsonProperty("date")] + public long? Date { get; set; } = null; + } +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemNextPaymentAmount.cs b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemNextPaymentAmount.cs similarity index 95% rename from src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemNextPaymentAmount.cs rename to src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemNextPaymentAmount.cs index e7e8b20d..25bc747c 100644 --- a/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemNextPaymentAmount.cs +++ b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemNextPaymentAmount.cs @@ -15,7 +15,7 @@ namespace Clerk.BackendAPI.Models.Components /// /// Amount for the next payment. /// - public class CommerceSubscriptionItemNextPaymentAmount + public class SchemasCommerceSubscriptionItemNextPaymentAmount { /// diff --git a/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemObject.cs b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemObject.cs new file mode 100644 index 00000000..fd9b86f9 --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemObject.cs @@ -0,0 +1,58 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Utils; + using Newtonsoft.Json; + using System; + + /// + /// String representing the object's type. Objects of the same type share the same value. + /// + public enum SchemasCommerceSubscriptionItemObject + { + [JsonProperty("commerce_subscription_item")] + CommerceSubscriptionItem, + } + + public static class SchemasCommerceSubscriptionItemObjectExtension + { + public static string Value(this SchemasCommerceSubscriptionItemObject value) + { + return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); + } + + public static SchemasCommerceSubscriptionItemObject ToEnum(this string value) + { + foreach(var field in typeof(SchemasCommerceSubscriptionItemObject).GetFields()) + { + var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); + if (attributes.Length == 0) + { + continue; + } + + var attribute = attributes[0] as JsonPropertyAttribute; + if (attribute != null && attribute.PropertyName == value) + { + var enumVal = field.GetValue(null); + + if (enumVal is SchemasCommerceSubscriptionItemObject) + { + return (SchemasCommerceSubscriptionItemObject)enumVal; + } + } + } + + throw new Exception($"Unknown value {value} for enum SchemasCommerceSubscriptionItemObject"); + } + } + +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemPayerObject.cs b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemPayerObject.cs new file mode 100644 index 00000000..8660dc87 --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemPayerObject.cs @@ -0,0 +1,58 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Utils; + using Newtonsoft.Json; + using System; + + /// + /// String representing the object's type. Objects of the same type share the same value. + /// + public enum SchemasCommerceSubscriptionItemPayerObject + { + [JsonProperty("commerce_payer")] + CommercePayer, + } + + public static class SchemasCommerceSubscriptionItemPayerObjectExtension + { + public static string Value(this SchemasCommerceSubscriptionItemPayerObject value) + { + return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); + } + + public static SchemasCommerceSubscriptionItemPayerObject ToEnum(this string value) + { + foreach(var field in typeof(SchemasCommerceSubscriptionItemPayerObject).GetFields()) + { + var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); + if (attributes.Length == 0) + { + continue; + } + + var attribute = attributes[0] as JsonPropertyAttribute; + if (attribute != null && attribute.PropertyName == value) + { + var enumVal = field.GetValue(null); + + if (enumVal is SchemasCommerceSubscriptionItemPayerObject) + { + return (SchemasCommerceSubscriptionItemPayerObject)enumVal; + } + } + } + + throw new Exception($"Unknown value {value} for enum SchemasCommerceSubscriptionItemPayerObject"); + } + } + +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemPaymentSourceObject.cs b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemPaymentSourceObject.cs similarity index 69% rename from src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemPaymentSourceObject.cs rename to src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemPaymentSourceObject.cs index 75b6a00f..4ba7fa31 100644 --- a/src/Clerk/BackendAPI/Models/Components/CommerceSubscriptionItemPaymentSourceObject.cs +++ b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemPaymentSourceObject.cs @@ -16,22 +16,22 @@ namespace Clerk.BackendAPI.Models.Components /// /// String representing the object's type. Objects of the same type share the same value. /// - public enum CommerceSubscriptionItemPaymentSourceObject + public enum SchemasCommerceSubscriptionItemPaymentSourceObject { [JsonProperty("commerce_source")] CommerceSource, } - public static class CommerceSubscriptionItemPaymentSourceObjectExtension + public static class SchemasCommerceSubscriptionItemPaymentSourceObjectExtension { - public static string Value(this CommerceSubscriptionItemPaymentSourceObject value) + public static string Value(this SchemasCommerceSubscriptionItemPaymentSourceObject value) { return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); } - public static CommerceSubscriptionItemPaymentSourceObject ToEnum(this string value) + public static SchemasCommerceSubscriptionItemPaymentSourceObject ToEnum(this string value) { - foreach(var field in typeof(CommerceSubscriptionItemPaymentSourceObject).GetFields()) + foreach(var field in typeof(SchemasCommerceSubscriptionItemPaymentSourceObject).GetFields()) { var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); if (attributes.Length == 0) @@ -44,14 +44,14 @@ public static CommerceSubscriptionItemPaymentSourceObject ToEnum(this string val { var enumVal = field.GetValue(null); - if (enumVal is CommerceSubscriptionItemPaymentSourceObject) + if (enumVal is SchemasCommerceSubscriptionItemPaymentSourceObject) { - return (CommerceSubscriptionItemPaymentSourceObject)enumVal; + return (SchemasCommerceSubscriptionItemPaymentSourceObject)enumVal; } } } - throw new Exception($"Unknown value {value} for enum CommerceSubscriptionItemPaymentSourceObject"); + throw new Exception($"Unknown value {value} for enum SchemasCommerceSubscriptionItemPaymentSourceObject"); } } diff --git a/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemPaymentSourceStatus.cs b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemPaymentSourceStatus.cs new file mode 100644 index 00000000..cb93911b --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemPaymentSourceStatus.cs @@ -0,0 +1,60 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Utils; + using Newtonsoft.Json; + using System; + + /// + /// Status of the payment source. + /// + public enum SchemasCommerceSubscriptionItemPaymentSourceStatus + { + [JsonProperty("active")] + Active, + [JsonProperty("disconnected")] + Disconnected, + } + + public static class SchemasCommerceSubscriptionItemPaymentSourceStatusExtension + { + public static string Value(this SchemasCommerceSubscriptionItemPaymentSourceStatus value) + { + return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); + } + + public static SchemasCommerceSubscriptionItemPaymentSourceStatus ToEnum(this string value) + { + foreach(var field in typeof(SchemasCommerceSubscriptionItemPaymentSourceStatus).GetFields()) + { + var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); + if (attributes.Length == 0) + { + continue; + } + + var attribute = attributes[0] as JsonPropertyAttribute; + if (attribute != null && attribute.PropertyName == value) + { + var enumVal = field.GetValue(null); + + if (enumVal is SchemasCommerceSubscriptionItemPaymentSourceStatus) + { + return (SchemasCommerceSubscriptionItemPaymentSourceStatus)enumVal; + } + } + } + + throw new Exception($"Unknown value {value} for enum SchemasCommerceSubscriptionItemPaymentSourceStatus"); + } + } + +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemPlan.cs b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemPlan.cs new file mode 100644 index 00000000..a9351e42 --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemPlan.cs @@ -0,0 +1,188 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Models.Components; + using Clerk.BackendAPI.Utils; + using Newtonsoft.Json; + using System.Collections.Generic; + + /// + /// The associated commerce plan. + /// + public class SchemasCommerceSubscriptionItemPlan + { + + /// + /// String representing the object's type. Objects of the same type share the same value. + /// + [JsonProperty("object")] + public SchemasCommerceSubscriptionItemPlanObject Object { get; set; } = default!; + + /// + /// Unique identifier for the commerce plan. + /// + [JsonProperty("id")] + public string Id { get; set; } = default!; + + /// + /// The name of the commerce plan. + /// + [JsonProperty("name")] + public string Name { get; set; } = default!; + + [JsonProperty("fee")] + public CommerceMoneyResponse Fee { get; set; } = default!; + + [JsonProperty("annual_monthly_fee")] + public CommerceMoneyResponse AnnualMonthlyFee { get; set; } = default!; + + [JsonProperty("annual_fee")] + public CommerceMoneyResponse AnnualFee { get; set; } = default!; + + /// + /// The amount in cents for the plan. + /// + [JsonProperty("amount")] + public long Amount { get; set; } = default!; + + /// + /// The formatted amount as a string (e.g., "$49.99"). + /// + [JsonProperty("amount_formatted")] + public string AmountFormatted { get; set; } = default!; + + /// + /// The monthly amount in cents when billed annually. + /// + [JsonProperty("annual_monthly_amount")] + public long AnnualMonthlyAmount { get; set; } = default!; + + /// + /// The formatted annual monthly amount as a string. + /// + [JsonProperty("annual_monthly_amount_formatted")] + public string AnnualMonthlyAmountFormatted { get; set; } = default!; + + /// + /// The total annual amount in cents. + /// + [JsonProperty("annual_amount")] + public long AnnualAmount { get; set; } = default!; + + /// + /// The formatted annual amount as a string. + /// + [JsonProperty("annual_amount_formatted")] + public string AnnualAmountFormatted { get; set; } = default!; + + /// + /// The currency symbol (e.g., "$"). + /// + [JsonProperty("currency_symbol")] + public string CurrencySymbol { get; set; } = default!; + + /// + /// The currency code (e.g., "USD"). + /// + [JsonProperty("currency")] + public string Currency { get; set; } = default!; + + /// + /// The description of the commerce plan. + /// + [JsonProperty("description")] + public string Description { get; set; } = default!; + + /// + /// The ID of the product this plan belongs to. + /// + [JsonProperty("product_id")] + public string ProductId { get; set; } = default!; + + /// + /// Whether this is the default plan. + /// + [JsonProperty("is_default")] + public bool IsDefault { get; set; } = default!; + + /// + /// Whether this is a recurring plan. + /// + [JsonProperty("is_recurring")] + public bool IsRecurring { get; set; } = default!; + + /// + /// Whether this plan is publicly visible. + /// + [JsonProperty("publicly_visible")] + public bool PubliclyVisible { get; set; } = default!; + + /// + /// Whether this plan has a base fee. + /// + [JsonProperty("has_base_fee")] + public bool HasBaseFee { get; set; } = default!; + + /// + /// The types of payers that can use this plan. + /// + [JsonProperty("payer_type")] + public List PayerType { get; set; } = default!; + + /// + /// The payer type this plan is designed for. + /// + [JsonProperty("for_payer_type")] + public string ForPayerType { get; set; } = default!; + + /// + /// The URL-friendly slug for the plan. + /// + [JsonProperty("slug")] + public string Slug { get; set; } = default!; + + /// + /// The URL of the plan's avatar image. + /// + [JsonProperty("avatar_url")] + public string AvatarUrl { get; set; } = default!; + + /// + /// The billing period for the plan. + /// + [JsonProperty("period")] + public string? Period { get; set; } + + /// + /// The billing interval. + /// + [JsonProperty("interval")] + public long? Interval { get; set; } + + /// + /// The features included in this plan. + /// + [JsonProperty("features")] + public List Features { get; set; } = default!; + + /// + /// Whether free trial is enabled for this plan. + /// + [JsonProperty("free_trial_enabled")] + public bool? FreeTrialEnabled { get; set; } + + /// + /// Number of free trial days for this plan. + /// + [JsonProperty("free_trial_days")] + public long? FreeTrialDays { get; set; } = null; + } +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemPlanObject.cs b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemPlanObject.cs new file mode 100644 index 00000000..d05bd229 --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemPlanObject.cs @@ -0,0 +1,58 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Utils; + using Newtonsoft.Json; + using System; + + /// + /// String representing the object's type. Objects of the same type share the same value. + /// + public enum SchemasCommerceSubscriptionItemPlanObject + { + [JsonProperty("commerce_plan")] + CommercePlan, + } + + public static class SchemasCommerceSubscriptionItemPlanObjectExtension + { + public static string Value(this SchemasCommerceSubscriptionItemPlanObject value) + { + return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); + } + + public static SchemasCommerceSubscriptionItemPlanObject ToEnum(this string value) + { + foreach(var field in typeof(SchemasCommerceSubscriptionItemPlanObject).GetFields()) + { + var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); + if (attributes.Length == 0) + { + continue; + } + + var attribute = attributes[0] as JsonPropertyAttribute; + if (attribute != null && attribute.PropertyName == value) + { + var enumVal = field.GetValue(null); + + if (enumVal is SchemasCommerceSubscriptionItemPlanObject) + { + return (SchemasCommerceSubscriptionItemPlanObject)enumVal; + } + } + } + + throw new Exception($"Unknown value {value} for enum SchemasCommerceSubscriptionItemPlanObject"); + } + } + +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemPlanPeriod.cs b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemPlanPeriod.cs new file mode 100644 index 00000000..7528807b --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemPlanPeriod.cs @@ -0,0 +1,60 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Utils; + using Newtonsoft.Json; + using System; + + /// + /// The billing period for this subscription. + /// + public enum SchemasCommerceSubscriptionItemPlanPeriod + { + [JsonProperty("month")] + Month, + [JsonProperty("annual")] + Annual, + } + + public static class SchemasCommerceSubscriptionItemPlanPeriodExtension + { + public static string Value(this SchemasCommerceSubscriptionItemPlanPeriod value) + { + return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); + } + + public static SchemasCommerceSubscriptionItemPlanPeriod ToEnum(this string value) + { + foreach(var field in typeof(SchemasCommerceSubscriptionItemPlanPeriod).GetFields()) + { + var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); + if (attributes.Length == 0) + { + continue; + } + + var attribute = attributes[0] as JsonPropertyAttribute; + if (attribute != null && attribute.PropertyName == value) + { + var enumVal = field.GetValue(null); + + if (enumVal is SchemasCommerceSubscriptionItemPlanPeriod) + { + return (SchemasCommerceSubscriptionItemPlanPeriod)enumVal; + } + } + } + + throw new Exception($"Unknown value {value} for enum SchemasCommerceSubscriptionItemPlanPeriod"); + } + } + +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemStatus.cs b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemStatus.cs new file mode 100644 index 00000000..97f54117 --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/SchemasCommerceSubscriptionItemStatus.cs @@ -0,0 +1,68 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Utils; + using Newtonsoft.Json; + using System; + + /// + /// Current status of the subscription item. + /// + public enum SchemasCommerceSubscriptionItemStatus + { + [JsonProperty("active")] + Active, + [JsonProperty("ended")] + Ended, + [JsonProperty("past_due")] + PastDue, + [JsonProperty("upcoming")] + Upcoming, + [JsonProperty("incomplete")] + Incomplete, + [JsonProperty("abandoned")] + Abandoned, + } + + public static class SchemasCommerceSubscriptionItemStatusExtension + { + public static string Value(this SchemasCommerceSubscriptionItemStatus value) + { + return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); + } + + public static SchemasCommerceSubscriptionItemStatus ToEnum(this string value) + { + foreach(var field in typeof(SchemasCommerceSubscriptionItemStatus).GetFields()) + { + var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); + if (attributes.Length == 0) + { + continue; + } + + var attribute = attributes[0] as JsonPropertyAttribute; + if (attribute != null && attribute.PropertyName == value) + { + var enumVal = field.GetValue(null); + + if (enumVal is SchemasCommerceSubscriptionItemStatus) + { + return (SchemasCommerceSubscriptionItemStatus)enumVal; + } + } + } + + throw new Exception($"Unknown value {value} for enum SchemasCommerceSubscriptionItemStatus"); + } + } + +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/SchemasSAMLConnection.cs b/src/Clerk/BackendAPI/Models/Components/SchemasSAMLConnection.cs index fc50ff7a..a02b461d 100644 --- a/src/Clerk/BackendAPI/Models/Components/SchemasSAMLConnection.cs +++ b/src/Clerk/BackendAPI/Models/Components/SchemasSAMLConnection.cs @@ -169,7 +169,6 @@ public override void WriteJson(JsonWriter writer, object? value, JsonSerializer if (value == null) { throw new InvalidOperationException("Unexpected null JSON value."); - return; } SchemasSAMLConnection res = (SchemasSAMLConnection)value; diff --git a/src/Clerk/BackendAPI/Models/Components/SessionRefresh.cs b/src/Clerk/BackendAPI/Models/Components/SessionRefresh.cs index ed0fde06..5f879060 100644 --- a/src/Clerk/BackendAPI/Models/Components/SessionRefresh.cs +++ b/src/Clerk/BackendAPI/Models/Components/SessionRefresh.cs @@ -172,7 +172,6 @@ public override void WriteJson(JsonWriter writer, object? value, JsonSerializer if (value == null) { throw new InvalidOperationException("Unexpected null JSON value."); - return; } SessionRefresh res = (SessionRefresh)value; diff --git a/src/Clerk/BackendAPI/Models/Components/SignUp.cs b/src/Clerk/BackendAPI/Models/Components/SignUp.cs index 285cbaf0..2bc6bf28 100644 --- a/src/Clerk/BackendAPI/Models/Components/SignUp.cs +++ b/src/Clerk/BackendAPI/Models/Components/SignUp.cs @@ -104,6 +104,12 @@ public class SignUp [JsonProperty("legal_accepted_at", NullValueHandling = NullValueHandling.Include)] public long? LegalAcceptedAt { get; set; } + /// + /// The user locale preference for the sign-up specified as a BCP-47 language tag. + /// + [JsonProperty("locale")] + public string? Locale { get; set; } = null; + [Obsolete("This field will be removed in a future release, please migrate away from it as soon as possible")] [JsonProperty("external_account")] public SignUpExternalAccount? ExternalAccount { get; set; } diff --git a/src/Clerk/BackendAPI/Models/Components/SubscriptionItem.cs b/src/Clerk/BackendAPI/Models/Components/SubscriptionItem.cs new file mode 100644 index 00000000..860ebf81 --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Components/SubscriptionItem.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Components +{ + using Clerk.BackendAPI.Utils; + + /// + /// The subscription item associated with this payment attempt. + /// + public class SubscriptionItem + { + } +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/Template.cs b/src/Clerk/BackendAPI/Models/Components/Template.cs index edae97a6..9a30dfe8 100644 --- a/src/Clerk/BackendAPI/Models/Components/Template.cs +++ b/src/Clerk/BackendAPI/Models/Components/Template.cs @@ -34,7 +34,7 @@ public class Template public TemplateObject? Object { get; set; } /// - /// The id of the instance to which this template belongs + /// The ID of the instance to which the template belongs /// [JsonProperty("instance_id")] public string? InstanceId { get; set; } = null; diff --git a/src/Clerk/BackendAPI/Models/Components/Token.cs b/src/Clerk/BackendAPI/Models/Components/Token.cs index ab502bb6..6f0fb625 100644 --- a/src/Clerk/BackendAPI/Models/Components/Token.cs +++ b/src/Clerk/BackendAPI/Models/Components/Token.cs @@ -27,7 +27,7 @@ public class Token public TokenObject Object { get; set; } = default!; /// - /// String representing the encoded jwt value.
+ /// String representing the encoded JSON Web Token (JWT) value.
/// /// /// diff --git a/src/Clerk/BackendAPI/Models/Components/AccountlessApplication.cs b/src/Clerk/BackendAPI/Models/Components/Totals.cs similarity index 53% rename from src/Clerk/BackendAPI/Models/Components/AccountlessApplication.cs rename to src/Clerk/BackendAPI/Models/Components/Totals.cs index 45a00280..11029136 100644 --- a/src/Clerk/BackendAPI/Models/Components/AccountlessApplication.cs +++ b/src/Clerk/BackendAPI/Models/Components/Totals.cs @@ -14,24 +14,18 @@ namespace Clerk.BackendAPI.Models.Components using Newtonsoft.Json; /// - /// Success + /// Totals for the statement. /// - public class AccountlessApplication + public class Totals { - [JsonProperty("object")] - public AccountlessApplicationObject Object { get; set; } = default!; + [JsonProperty("grand_total")] + public CommerceMoneyResponse GrandTotal { get; set; } = default!; - [JsonProperty("publishable_key")] - public string PublishableKey { get; set; } = default!; + [JsonProperty("subtotal")] + public CommerceMoneyResponse Subtotal { get; set; } = default!; - [JsonProperty("secret_key")] - public string? SecretKey { get; set; } - - [JsonProperty("claim_url")] - public string? ClaimUrl { get; set; } - - [JsonProperty("api_keys_url")] - public string? ApiKeysUrl { get; set; } + [JsonProperty("tax_total")] + public CommerceMoneyResponse TaxTotal { get; set; } = default!; } } \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/Two.cs b/src/Clerk/BackendAPI/Models/Components/Two.cs index fafd8c95..260e4337 100644 --- a/src/Clerk/BackendAPI/Models/Components/Two.cs +++ b/src/Clerk/BackendAPI/Models/Components/Two.cs @@ -77,13 +77,19 @@ public class Two public bool SyncUserAttributes { get; set; } = default!; [JsonProperty("allow_subdomains")] - public bool? AllowSubdomains { get; set; } + public bool AllowSubdomains { get; set; } = default!; [JsonProperty("allow_idp_initiated")] - public bool? AllowIdpInitiated { get; set; } + public bool AllowIdpInitiated { get; set; } = default!; [JsonProperty("disable_additional_identifications")] - public bool? DisableAdditionalIdentifications { get; set; } + public bool DisableAdditionalIdentifications { get; set; } = default!; + + /// + /// Enable or deactivate ForceAuthn + /// + [JsonProperty("force_authn")] + public bool ForceAuthn { get; set; } = default!; /// /// Unix timestamp of creation.
diff --git a/src/Clerk/BackendAPI/Models/Components/User.cs b/src/Clerk/BackendAPI/Models/Components/User.cs index 77172ea8..c1cf03f9 100644 --- a/src/Clerk/BackendAPI/Models/Components/User.cs +++ b/src/Clerk/BackendAPI/Models/Components/User.cs @@ -55,6 +55,9 @@ public class User [JsonProperty("last_name", NullValueHandling = NullValueHandling.Include)] public string? LastName { get; set; } + [JsonProperty("locale")] + public string? Locale { get; set; } = null; + [Obsolete("This field will be removed in a future release, please migrate away from it as soon as possible")] [JsonProperty("profile_image_url")] public string? ProfileImageUrl { get; set; } diff --git a/src/Clerk/BackendAPI/Models/Components/VerificationGoogleOneTapErrorClerkError.cs b/src/Clerk/BackendAPI/Models/Components/VerificationGoogleOneTapErrorClerkError.cs index 16f53ae4..b9526f2b 100644 --- a/src/Clerk/BackendAPI/Models/Components/VerificationGoogleOneTapErrorClerkError.cs +++ b/src/Clerk/BackendAPI/Models/Components/VerificationGoogleOneTapErrorClerkError.cs @@ -27,8 +27,5 @@ public class VerificationGoogleOneTapErrorClerkError [JsonProperty("meta")] public ClerkErrorErrorExternalAccountWithVerificationVerificationMeta? Meta { get; set; } - - [JsonProperty("clerk_trace_id")] - public string? ClerkTraceId { get; set; } } } \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/VerificationOauthErrorClerkError.cs b/src/Clerk/BackendAPI/Models/Components/VerificationOauthErrorClerkError.cs index 65e4d435..89ea42ee 100644 --- a/src/Clerk/BackendAPI/Models/Components/VerificationOauthErrorClerkError.cs +++ b/src/Clerk/BackendAPI/Models/Components/VerificationOauthErrorClerkError.cs @@ -27,8 +27,5 @@ public class VerificationOauthErrorClerkError [JsonProperty("meta")] public ClerkErrorErrorExternalAccountWithVerificationMeta? Meta { get; set; } - - [JsonProperty("clerk_trace_id")] - public string? ClerkTraceId { get; set; } } } \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/VerificationSAMLErrorSAMLAccountClerkError.cs b/src/Clerk/BackendAPI/Models/Components/VerificationSAMLErrorSAMLAccountClerkError.cs index fbcb9bee..e0c6b702 100644 --- a/src/Clerk/BackendAPI/Models/Components/VerificationSAMLErrorSAMLAccountClerkError.cs +++ b/src/Clerk/BackendAPI/Models/Components/VerificationSAMLErrorSAMLAccountClerkError.cs @@ -27,8 +27,5 @@ public class VerificationSAMLErrorSAMLAccountClerkError [JsonProperty("meta")] public ClerkErrorErrorSAMLAccountMeta? Meta { get; set; } - - [JsonProperty("clerk_trace_id")] - public string? ClerkTraceId { get; set; } } } \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Components/VerificationSamlErrorClerkError.cs b/src/Clerk/BackendAPI/Models/Components/VerificationSamlErrorClerkError.cs index 95395409..ef3a0072 100644 --- a/src/Clerk/BackendAPI/Models/Components/VerificationSamlErrorClerkError.cs +++ b/src/Clerk/BackendAPI/Models/Components/VerificationSamlErrorClerkError.cs @@ -27,8 +27,5 @@ public class VerificationSamlErrorClerkError [JsonProperty("meta")] public ClerkErrorErrorMeta? Meta { get; set; } - - [JsonProperty("clerk_trace_id")] - public string? ClerkTraceId { get; set; } } } \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Operations/AttributeMapping.cs b/src/Clerk/BackendAPI/Models/Operations/AttributeMapping.cs index f9510f11..9e56622b 100644 --- a/src/Clerk/BackendAPI/Models/Operations/AttributeMapping.cs +++ b/src/Clerk/BackendAPI/Models/Operations/AttributeMapping.cs @@ -13,7 +13,7 @@ namespace Clerk.BackendAPI.Models.Operations using Newtonsoft.Json; /// - /// Define the atrtibute name mapping between Identity Provider and Clerk's user properties + /// Define the attribute name mapping between Identity Provider and Clerk's user properties /// public class AttributeMapping { diff --git a/src/Clerk/BackendAPI/Models/Operations/CreateJWTTemplateRequestBody.cs b/src/Clerk/BackendAPI/Models/Operations/CreateJWTTemplateRequestBody.cs index e98cf0c3..eb8932fa 100644 --- a/src/Clerk/BackendAPI/Models/Operations/CreateJWTTemplateRequestBody.cs +++ b/src/Clerk/BackendAPI/Models/Operations/CreateJWTTemplateRequestBody.cs @@ -29,13 +29,13 @@ public class CreateJWTTemplateRequestBody public Models.Operations.Claims Claims { get; set; } = default!; /// - /// JWT token lifetime + /// JWT lifetime /// [JsonProperty("lifetime")] public long? Lifetime { get; set; } = null; /// - /// JWT token allowed clock skew + /// JWT allowed clock skew /// [JsonProperty("allowed_clock_skew")] public long? AllowedClockSkew { get; set; } = null; diff --git a/src/Clerk/BackendAPI/Models/Operations/CreateOrganizationRequestBody.cs b/src/Clerk/BackendAPI/Models/Operations/CreateOrganizationRequestBody.cs index 1652a5ee..5ea36f30 100644 --- a/src/Clerk/BackendAPI/Models/Operations/CreateOrganizationRequestBody.cs +++ b/src/Clerk/BackendAPI/Models/Operations/CreateOrganizationRequestBody.cs @@ -50,7 +50,8 @@ public class CreateOrganizationRequestBody /// /// /// Can contain only lowercase alphanumeric characters and the dash "-".
- /// Must be unique for the instance. + /// Must be unique for the instance.
+ /// This field should only be included when slugs are enabled in the organization settings, refer to our documentation. ///
///
[JsonProperty("slug")] diff --git a/src/Clerk/BackendAPI/Models/Operations/CreateRedirectURLRequestBody.cs b/src/Clerk/BackendAPI/Models/Operations/CreateRedirectURLRequestBody.cs index f0d5c72b..0a84a276 100644 --- a/src/Clerk/BackendAPI/Models/Operations/CreateRedirectURLRequestBody.cs +++ b/src/Clerk/BackendAPI/Models/Operations/CreateRedirectURLRequestBody.cs @@ -16,7 +16,7 @@ public class CreateRedirectURLRequestBody { /// - /// The full url value prefixed with `https://` or a custom scheme e.g. `"https://my-app.com/oauth-callback"` or `"my-app://oauth-callback"` + /// The full URL value prefixed with `https://` or a custom scheme e.g. `"https://my-app.com/oauth-callback"` or `"my-app://oauth-callback"` /// [JsonProperty("url")] public string Url { get; set; } = default!; diff --git a/src/Clerk/BackendAPI/Models/Operations/CreateSAMLConnectionRequestBody.cs b/src/Clerk/BackendAPI/Models/Operations/CreateSAMLConnectionRequestBody.cs index b21c9baa..6cdb49aa 100644 --- a/src/Clerk/BackendAPI/Models/Operations/CreateSAMLConnectionRequestBody.cs +++ b/src/Clerk/BackendAPI/Models/Operations/CreateSAMLConnectionRequestBody.cs @@ -169,7 +169,6 @@ public override void WriteJson(JsonWriter writer, object? value, JsonSerializer if (value == null) { throw new InvalidOperationException("Unexpected null JSON value."); - return; } CreateSAMLConnectionRequestBody res = (CreateSAMLConnectionRequestBody)value; diff --git a/src/Clerk/BackendAPI/Models/Operations/CreateSessionTokenFromTemplateRequest.cs b/src/Clerk/BackendAPI/Models/Operations/CreateSessionTokenFromTemplateRequest.cs index 0f91ba43..a711e810 100644 --- a/src/Clerk/BackendAPI/Models/Operations/CreateSessionTokenFromTemplateRequest.cs +++ b/src/Clerk/BackendAPI/Models/Operations/CreateSessionTokenFromTemplateRequest.cs @@ -22,7 +22,7 @@ public class CreateSessionTokenFromTemplateRequest public string SessionId { get; set; } = default!; /// - /// The name of the JWT Template defined in your instance (e.g. `custom_hasura`). + /// The name of the JWT template defined in your instance (e.g. `custom_hasura`). /// [SpeakeasyMetadata("pathParam:style=simple,explode=false,name=template_name")] public string TemplateName { get; set; } = default!; diff --git a/src/Clerk/BackendAPI/Models/Operations/CreateSessionTokenFromTemplateRequestBody.cs b/src/Clerk/BackendAPI/Models/Operations/CreateSessionTokenFromTemplateRequestBody.cs index 4ec24c2e..83d8dfd1 100644 --- a/src/Clerk/BackendAPI/Models/Operations/CreateSessionTokenFromTemplateRequestBody.cs +++ b/src/Clerk/BackendAPI/Models/Operations/CreateSessionTokenFromTemplateRequestBody.cs @@ -16,7 +16,7 @@ public class CreateSessionTokenFromTemplateRequestBody { /// - /// Use this parameter to override the JWT token lifetime. + /// Use this parameter to override the JWT lifetime. /// [JsonProperty("expires_in_seconds")] public long? ExpiresInSeconds { get; set; } = null; diff --git a/src/Clerk/BackendAPI/Models/Operations/CreateUserRequestBody.cs b/src/Clerk/BackendAPI/Models/Operations/CreateUserRequestBody.cs index 23065539..99ad8429 100644 --- a/src/Clerk/BackendAPI/Models/Operations/CreateUserRequestBody.cs +++ b/src/Clerk/BackendAPI/Models/Operations/CreateUserRequestBody.cs @@ -38,6 +38,12 @@ public class CreateUserRequestBody [JsonProperty("last_name")] public string? LastName { get; set; } = null; + /// + /// The locale to assign to the user (e.g., "en-US", "fr-FR") + /// + [JsonProperty("locale")] + public string? Locale { get; set; } = null; + /// /// Email addresses to add to the user.
/// diff --git a/src/Clerk/BackendAPI/Models/Operations/DeleteOrganizationDomainRequest.cs b/src/Clerk/BackendAPI/Models/Operations/DeleteOrganizationDomainRequest.cs index 74927a72..3697ba2e 100644 --- a/src/Clerk/BackendAPI/Models/Operations/DeleteOrganizationDomainRequest.cs +++ b/src/Clerk/BackendAPI/Models/Operations/DeleteOrganizationDomainRequest.cs @@ -15,7 +15,7 @@ public class DeleteOrganizationDomainRequest { /// - /// The ID of the organization the domain belongs to + /// The ID of the organization to which the domain belongs /// [SpeakeasyMetadata("pathParam:style=simple,explode=false,name=organization_id")] public string OrganizationId { get; set; } = default!; diff --git a/src/Clerk/BackendAPI/Models/Operations/DeleteOrganizationMembershipRequest.cs b/src/Clerk/BackendAPI/Models/Operations/DeleteOrganizationMembershipRequest.cs index fa1cea3d..8f16fc31 100644 --- a/src/Clerk/BackendAPI/Models/Operations/DeleteOrganizationMembershipRequest.cs +++ b/src/Clerk/BackendAPI/Models/Operations/DeleteOrganizationMembershipRequest.cs @@ -15,13 +15,13 @@ public class DeleteOrganizationMembershipRequest { /// - /// The ID of the organization to which the membership belongs + /// The ID of the organization to which this membership belongs /// [SpeakeasyMetadata("pathParam:style=simple,explode=false,name=organization_id")] public string OrganizationId { get; set; } = default!; /// - /// The ID of the user that this membership belongs to + /// The ID of the user to which this membership belongs /// [SpeakeasyMetadata("pathParam:style=simple,explode=false,name=user_id")] public string UserId { get; set; } = default!; diff --git a/src/Clerk/BackendAPI/Models/Operations/ExtendCommerceSubscriptionItemFreeTrialRequest.cs b/src/Clerk/BackendAPI/Models/Operations/ExtendBillingSubscriptionItemFreeTrialRequest.cs similarity index 94% rename from src/Clerk/BackendAPI/Models/Operations/ExtendCommerceSubscriptionItemFreeTrialRequest.cs rename to src/Clerk/BackendAPI/Models/Operations/ExtendBillingSubscriptionItemFreeTrialRequest.cs index 77f37cbf..f455da5d 100644 --- a/src/Clerk/BackendAPI/Models/Operations/ExtendCommerceSubscriptionItemFreeTrialRequest.cs +++ b/src/Clerk/BackendAPI/Models/Operations/ExtendBillingSubscriptionItemFreeTrialRequest.cs @@ -12,7 +12,7 @@ namespace Clerk.BackendAPI.Models.Operations using Clerk.BackendAPI.Models.Components; using Clerk.BackendAPI.Utils; - public class ExtendCommerceSubscriptionItemFreeTrialRequest + public class ExtendBillingSubscriptionItemFreeTrialRequest { /// diff --git a/src/Clerk/BackendAPI/Models/Operations/ExtendCommerceSubscriptionItemFreeTrialResponse.cs b/src/Clerk/BackendAPI/Models/Operations/ExtendBillingSubscriptionItemFreeTrialResponse.cs similarity index 82% rename from src/Clerk/BackendAPI/Models/Operations/ExtendCommerceSubscriptionItemFreeTrialResponse.cs rename to src/Clerk/BackendAPI/Models/Operations/ExtendBillingSubscriptionItemFreeTrialResponse.cs index bb5b498c..3345e881 100644 --- a/src/Clerk/BackendAPI/Models/Operations/ExtendCommerceSubscriptionItemFreeTrialResponse.cs +++ b/src/Clerk/BackendAPI/Models/Operations/ExtendBillingSubscriptionItemFreeTrialResponse.cs @@ -13,7 +13,7 @@ namespace Clerk.BackendAPI.Models.Operations using Clerk.BackendAPI.Utils; using Newtonsoft.Json; - public class ExtendCommerceSubscriptionItemFreeTrialResponse + public class ExtendBillingSubscriptionItemFreeTrialResponse { [JsonProperty("-")] @@ -22,6 +22,6 @@ public class ExtendCommerceSubscriptionItemFreeTrialResponse /// /// A commerce subscription item. /// - public CommerceSubscriptionItem? CommerceSubscriptionItem { get; set; } + public SchemasCommerceSubscriptionItem? SchemasCommerceSubscriptionItem { get; set; } } } \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Operations/GetBillingStatementListRequest.cs b/src/Clerk/BackendAPI/Models/Operations/GetBillingStatementListRequest.cs new file mode 100644 index 00000000..10cdba3d --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Operations/GetBillingStatementListRequest.cs @@ -0,0 +1,49 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Operations +{ + using Clerk.BackendAPI.Utils; + + public class GetBillingStatementListRequest + { + + /// + /// Whether to paginate the results.
+ /// + /// + /// If true, the results will be paginated.
+ /// If false, the results will not be paginated. + ///
+ ///
+ [SpeakeasyMetadata("queryParam:style=form,explode=true,name=paginated")] + public bool? Paginated { get; set; } + + /// + /// Applies a limit to the number of results returned.
+ /// + /// + /// Can be used for paginating the results together with `offset`. + /// + ///
+ [SpeakeasyMetadata("queryParam:style=form,explode=true,name=limit")] + public long? Limit { get; set; } = 10; + + /// + /// Skip the first `offset` results when paginating.
+ /// + /// + /// Needs to be an integer greater or equal to zero.
+ /// To be used in conjunction with `limit`. + ///
+ ///
+ [SpeakeasyMetadata("queryParam:style=form,explode=true,name=offset")] + public long? Offset { get; set; } = 0; + } +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Operations/CreateAccountlessApplicationResponse.cs b/src/Clerk/BackendAPI/Models/Operations/GetBillingStatementListResponse.cs similarity index 79% rename from src/Clerk/BackendAPI/Models/Operations/CreateAccountlessApplicationResponse.cs rename to src/Clerk/BackendAPI/Models/Operations/GetBillingStatementListResponse.cs index 63fcda25..f7250668 100644 --- a/src/Clerk/BackendAPI/Models/Operations/CreateAccountlessApplicationResponse.cs +++ b/src/Clerk/BackendAPI/Models/Operations/GetBillingStatementListResponse.cs @@ -13,15 +13,15 @@ namespace Clerk.BackendAPI.Models.Operations using Clerk.BackendAPI.Utils; using Newtonsoft.Json; - public class CreateAccountlessApplicationResponse + public class GetBillingStatementListResponse { [JsonProperty("-")] public HTTPMetadata HttpMeta { get; set; } = default!; /// - /// Success + /// A list of billing statements. /// - public AccountlessApplication? AccountlessApplication { get; set; } + public PaginatedBillingStatementResponse? PaginatedBillingStatementResponse { get; set; } } } \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Operations/GetBillingStatementPaymentAttemptsRequest.cs b/src/Clerk/BackendAPI/Models/Operations/GetBillingStatementPaymentAttemptsRequest.cs new file mode 100644 index 00000000..b10806e6 --- /dev/null +++ b/src/Clerk/BackendAPI/Models/Operations/GetBillingStatementPaymentAttemptsRequest.cs @@ -0,0 +1,55 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace Clerk.BackendAPI.Models.Operations +{ + using Clerk.BackendAPI.Utils; + + public class GetBillingStatementPaymentAttemptsRequest + { + + /// + /// The ID of the statement to retrieve payment attempts for. + /// + [SpeakeasyMetadata("pathParam:style=simple,explode=false,name=statementID")] + public string StatementID { get; set; } = default!; + + /// + /// Whether to paginate the results.
+ /// + /// + /// If true, the results will be paginated.
+ /// If false, the results will not be paginated. + ///
+ ///
+ [SpeakeasyMetadata("queryParam:style=form,explode=true,name=paginated")] + public bool? Paginated { get; set; } + + /// + /// Applies a limit to the number of results returned.
+ /// + /// + /// Can be used for paginating the results together with `offset`. + /// + ///
+ [SpeakeasyMetadata("queryParam:style=form,explode=true,name=limit")] + public long? Limit { get; set; } = 10; + + /// + /// Skip the first `offset` results when paginating.
+ /// + /// + /// Needs to be an integer greater or equal to zero.
+ /// To be used in conjunction with `limit`. + ///
+ ///
+ [SpeakeasyMetadata("queryParam:style=form,explode=true,name=offset")] + public long? Offset { get; set; } = 0; + } +} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Operations/DeleteAWSCredentialResponse.cs b/src/Clerk/BackendAPI/Models/Operations/GetBillingStatementPaymentAttemptsResponse.cs similarity index 76% rename from src/Clerk/BackendAPI/Models/Operations/DeleteAWSCredentialResponse.cs rename to src/Clerk/BackendAPI/Models/Operations/GetBillingStatementPaymentAttemptsResponse.cs index c7b2f13b..d12c6ccf 100644 --- a/src/Clerk/BackendAPI/Models/Operations/DeleteAWSCredentialResponse.cs +++ b/src/Clerk/BackendAPI/Models/Operations/GetBillingStatementPaymentAttemptsResponse.cs @@ -13,15 +13,15 @@ namespace Clerk.BackendAPI.Models.Operations using Clerk.BackendAPI.Utils; using Newtonsoft.Json; - public class DeleteAWSCredentialResponse + public class GetBillingStatementPaymentAttemptsResponse { [JsonProperty("-")] public HTTPMetadata HttpMeta { get; set; } = default!; /// - /// Deleted Object + /// A list of billing payment attempts. /// - public DeletedObject? DeletedObject { get; set; } + public PaginatedBillingPaymentAttemptResponse? PaginatedBillingPaymentAttemptResponse { get; set; } } } \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Operations/DeleteAWSCredentialRequest.cs b/src/Clerk/BackendAPI/Models/Operations/GetBillingStatementRequest.cs similarity index 77% rename from src/Clerk/BackendAPI/Models/Operations/DeleteAWSCredentialRequest.cs rename to src/Clerk/BackendAPI/Models/Operations/GetBillingStatementRequest.cs index 3e75695c..024a9c97 100644 --- a/src/Clerk/BackendAPI/Models/Operations/DeleteAWSCredentialRequest.cs +++ b/src/Clerk/BackendAPI/Models/Operations/GetBillingStatementRequest.cs @@ -11,13 +11,13 @@ namespace Clerk.BackendAPI.Models.Operations { using Clerk.BackendAPI.Utils; - public class DeleteAWSCredentialRequest + public class GetBillingStatementRequest { /// - /// The ID of the AWS Credential to delete + /// The ID of the statement to retrieve. /// - [SpeakeasyMetadata("pathParam:style=simple,explode=false,name=id")] - public string Id { get; set; } = default!; + [SpeakeasyMetadata("pathParam:style=simple,explode=false,name=statementID")] + public string StatementID { get; set; } = default!; } } \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Operations/UpdateAWSCredentialResponse.cs b/src/Clerk/BackendAPI/Models/Operations/GetBillingStatementResponse.cs similarity index 83% rename from src/Clerk/BackendAPI/Models/Operations/UpdateAWSCredentialResponse.cs rename to src/Clerk/BackendAPI/Models/Operations/GetBillingStatementResponse.cs index f6c2f7e0..918c60b4 100644 --- a/src/Clerk/BackendAPI/Models/Operations/UpdateAWSCredentialResponse.cs +++ b/src/Clerk/BackendAPI/Models/Operations/GetBillingStatementResponse.cs @@ -13,15 +13,15 @@ namespace Clerk.BackendAPI.Models.Operations using Clerk.BackendAPI.Utils; using Newtonsoft.Json; - public class UpdateAWSCredentialResponse + public class GetBillingStatementResponse { [JsonProperty("-")] public HTTPMetadata HttpMeta { get; set; } = default!; /// - /// Success + /// A billing statement. /// - public AWSCredential? AWSCredential { get; set; } + public BillingStatement? BillingStatement { get; set; } } } \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Operations/GetCommerceSubscriptionItemListRequest.cs b/src/Clerk/BackendAPI/Models/Operations/GetCommerceSubscriptionItemListRequest.cs index d8ee81e1..2ca97e37 100644 --- a/src/Clerk/BackendAPI/Models/Operations/GetCommerceSubscriptionItemListRequest.cs +++ b/src/Clerk/BackendAPI/Models/Operations/GetCommerceSubscriptionItemListRequest.cs @@ -72,25 +72,9 @@ public class GetCommerceSubscriptionItemListRequest public bool? IncludeFree { get; set; } = false; /// - /// Search query to filter subscription items by email, user first name, user last name, or organization name.
- /// - /// - /// Supports partial matching. - /// + /// Search query to filter subscription items ///
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=query")] public string? Query { get; set; } - - /// - /// Filter subscription items by user ID - /// - [SpeakeasyMetadata("queryParam:style=form,explode=true,name=user_id")] - public string? UserId { get; set; } - - /// - /// Filter subscription items by organization ID - /// - [SpeakeasyMetadata("queryParam:style=form,explode=true,name=organization_id")] - public string? OrganizationId { get; set; } } } \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Operations/GetUserListRequest.cs b/src/Clerk/BackendAPI/Models/Operations/GetUserListRequest.cs index c8f337ee..86373add 100644 --- a/src/Clerk/BackendAPI/Models/Operations/GetUserListRequest.cs +++ b/src/Clerk/BackendAPI/Models/Operations/GetUserListRequest.cs @@ -39,15 +39,15 @@ public class GetUserListRequest public List? PhoneNumber { get; set; } /// - /// Returns users with the specified external ids.
+ /// Returns users with the specified external IDs.
/// /// - /// For each external id, the `+` and `-` can be
- /// prepended to the id, which denote whether the
- /// respective external id should be included or
+ /// For each external ID, the `+` and `-` can be
+ /// prepended to the ID, which denote whether the
+ /// respective external ID should be included or
/// excluded from the result set.
- /// Accepts up to 100 external ids.
- /// Any external ids not found are ignored. + /// Accepts up to 100 external IDs.
+ /// Any external IDs not found are ignored. ///
///
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=external_id")] @@ -69,22 +69,22 @@ public class GetUserListRequest /// /// /// Accepts up to 100 web3 wallet addresses.
- /// Any web3 wallet addressed not found are ignored. + /// Any web3 wallet addresses not found are ignored. ///
///
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=web3_wallet")] public List? Web3Wallet { get; set; } /// - /// Returns users with the user ids specified.
+ /// Returns users with the user IDs specified.
/// /// - /// For each user id, the `+` and `-` can be
- /// prepended to the id, which denote whether the
- /// respective user id should be included or
+ /// For each user ID, the `+` and `-` can be
+ /// prepended to the ID, which denote whether the
+ /// respective user ID should be included or
/// excluded from the result set.
- /// Accepts up to 100 user ids.
- /// Any user ids not found are ignored. + /// Accepts up to 100 user IDs.
+ /// Any user IDs not found are ignored. ///
///
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=user_id")] @@ -95,11 +95,11 @@ public class GetUserListRequest /// /// /// given organizations.
- /// For each organization id, the `+` and `-` can be
- /// prepended to the id, which denote whether the
+ /// For each organization ID, the `+` and `-` can be
+ /// prepended to the ID, which denote whether the
/// respective organization should be included or
/// excluded from the result set.
- /// Accepts up to 100 organization ids. + /// Accepts up to 100 organization IDs. ///
///
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=organization_id")] @@ -109,7 +109,7 @@ public class GetUserListRequest /// Returns users that match the given query.
/// /// - /// For possible matches, we check the email addresses, phone numbers, usernames, web3 wallets, user ids, first and last names.
+ /// For possible matches, we check the email addresses, phone numbers, usernames, web3 wallets, user IDs, first and last names.
/// The query value doesn't need to match the exact value you are looking for, it is capable of partial matches as well. ///
///
diff --git a/src/Clerk/BackendAPI/Models/Operations/GetUsersCountRequest.cs b/src/Clerk/BackendAPI/Models/Operations/GetUsersCountRequest.cs index a650c60e..c322d203 100644 --- a/src/Clerk/BackendAPI/Models/Operations/GetUsersCountRequest.cs +++ b/src/Clerk/BackendAPI/Models/Operations/GetUsersCountRequest.cs @@ -39,11 +39,11 @@ public class GetUsersCountRequest public List? PhoneNumber { get; set; } /// - /// Counts users with the specified external ids.
+ /// Counts users with the specified external IDs.
/// /// - /// Accepts up to 100 external ids.
- /// Any external ids not found are ignored. + /// Accepts up to 100 external IDs.
+ /// Any external IDs not found are ignored. ///
///
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=external_id")] @@ -65,29 +65,29 @@ public class GetUsersCountRequest /// /// /// Accepts up to 100 web3 wallet addresses.
- /// Any web3 wallet addressed not found are ignored. + /// Any web3 wallet addresses not found are ignored. ///
///
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=web3_wallet")] public List? Web3Wallet { get; set; } /// - /// Counts users with the user ids specified.
+ /// Counts users with the user IDs specified.
/// /// - /// Accepts up to 100 user ids.
- /// Any user ids not found are ignored. + /// Accepts up to 100 user IDs.
+ /// Any user IDs not found are ignored. ///
///
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=user_id")] public List? UserId { get; set; } /// - /// Returns users that have memberships to the given organizations. For each organization id, the `+` and `-`
+ /// Returns users that have memberships to the given organizations. For each organization ID, the `+` and `-`
/// /// - /// can be prepended to the id, which denote whether the respective organization should be included or
- /// excluded from the result set. Accepts up to 100 organization ids. + /// can be prepended to the ID, which denote whether the respective organization should be included or
+ /// excluded from the result set. Accepts up to 100 organization IDs. ///
///
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=organization_id")] @@ -97,7 +97,7 @@ public class GetUsersCountRequest /// Counts users that match the given query.
/// /// - /// For possible matches, we check the email addresses, phone numbers, usernames, web3 wallets, user ids, first and last names.
+ /// For possible matches, we check the email addresses, phone numbers, usernames, web3 wallets, user IDs, first and last names.
/// The query value doesn't need to match the exact value you are looking for, it is capable of partial matches as well. ///
///
diff --git a/src/Clerk/BackendAPI/Models/Operations/ListOrganizationMembershipsRequest.cs b/src/Clerk/BackendAPI/Models/Operations/ListOrganizationMembershipsRequest.cs index 4231fca8..57e4001a 100644 --- a/src/Clerk/BackendAPI/Models/Operations/ListOrganizationMembershipsRequest.cs +++ b/src/Clerk/BackendAPI/Models/Operations/ListOrganizationMembershipsRequest.cs @@ -32,11 +32,11 @@ public class ListOrganizationMembershipsRequest public string? OrderBy { get; set; } /// - /// Returns users with the user ids specified. For each user id, the `+` and `-` can be
+ /// Returns users with the user IDs specified. For each user ID, the `+` and `-` can be
/// /// - /// prepended to the id, which denote whether the respective user id should be included or
- /// excluded from the result set. Accepts up to 100 user ids. Any user ids not found are ignored. + /// prepended to the ID, which denote whether the respective user ID should be included or
+ /// excluded from the result set. Accepts up to 100 user IDs. Any user IDs not found are ignored. ///
///
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=user_id")] @@ -70,7 +70,7 @@ public class ListOrganizationMembershipsRequest /// /// /// Accepts up to 100 web3 wallet addresses.
- /// Any web3 wallet addressed not found are ignored. + /// Any web3 wallet addresses not found are ignored. ///
///
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=web3_wallet")] @@ -86,7 +86,7 @@ public class ListOrganizationMembershipsRequest /// Returns users that match the given query.
/// /// - /// For possible matches, we check the email addresses, phone numbers, usernames, web3 wallets, user ids, first and last names.
+ /// For possible matches, we check the email addresses, phone numbers, usernames, web3 wallets, user IDs, first and last names.
/// The query value doesn't need to match the exact value you are looking for, it is capable of partial matches as well. ///
///
diff --git a/src/Clerk/BackendAPI/Models/Operations/ListOrganizationsRequest.cs b/src/Clerk/BackendAPI/Models/Operations/ListOrganizationsRequest.cs index 58e41f12..38c5d2ed 100644 --- a/src/Clerk/BackendAPI/Models/Operations/ListOrganizationsRequest.cs +++ b/src/Clerk/BackendAPI/Models/Operations/ListOrganizationsRequest.cs @@ -38,10 +38,10 @@ public class ListOrganizationsRequest public string? Query { get; set; } /// - /// Returns organizations with the user ids specified. Any user ids not found are ignored.
+ /// Returns organizations that include any of the specified user IDs as members. Any user IDs not found are ignored.
/// /// - /// For each user id, the `+` and `-` can be prepended to the id, which denote whether the
+ /// For each user ID, the `+` and `-` can be prepended to the ID, which denote whether the
/// respective organization should be included or excluded from the result set. ///
///
@@ -49,11 +49,11 @@ public class ListOrganizationsRequest public List? UserId { get; set; } /// - /// Returns organizations with the organization ids specified. Any organization ids not found are ignored.
+ /// Returns organizations with the organization IDs specified. Any organization IDs not found are ignored.
/// /// - /// For each organization id, the `+` and `-` can be prepended to the id, which denote whether the
- /// respective organization should be included or excluded from the result set. Accepts up to 100 organization ids.
+ /// For each organization ID, the `+` and `-` can be prepended to the ID, which denote whether the
+ /// respective organization should be included or excluded from the result set. Accepts up to 100 organization IDs.
/// Example: ?organization_id=+org_1&organization_id=-org_2 ///
///
diff --git a/src/Clerk/BackendAPI/Models/Operations/ListSAMLConnectionsRequest.cs b/src/Clerk/BackendAPI/Models/Operations/ListSAMLConnectionsRequest.cs index 72851803..7afd121a 100644 --- a/src/Clerk/BackendAPI/Models/Operations/ListSAMLConnectionsRequest.cs +++ b/src/Clerk/BackendAPI/Models/Operations/ListSAMLConnectionsRequest.cs @@ -58,11 +58,11 @@ public class ListSAMLConnectionsRequest /// /// /// given organizations.
- /// For each organization id, the `+` and `-` can be
- /// prepended to the id, which denote whether the
+ /// For each organization ID, the `+` and `-` can be
+ /// prepended to the ID, which denote whether the
/// respective organization should be included or
/// excluded from the result set.
- /// Accepts up to 100 organization ids. + /// Accepts up to 100 organization IDs. ///
///
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=organization_id")] diff --git a/src/Clerk/BackendAPI/Models/Operations/One.cs b/src/Clerk/BackendAPI/Models/Operations/One.cs index 00e994cc..94a3bc29 100644 --- a/src/Clerk/BackendAPI/Models/Operations/One.cs +++ b/src/Clerk/BackendAPI/Models/Operations/One.cs @@ -84,5 +84,11 @@ public class One /// [JsonProperty("attribute_mapping")] public CreateSAMLConnectionRequestBodyAttributeMapping? AttributeMapping { get; set; } = null; + + /// + /// Enable or deactivate ForceAuthn + /// + [JsonProperty("force_authn")] + public bool? ForceAuthn { get; set; } } } \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Operations/RefreshSessionRequestBody.cs b/src/Clerk/BackendAPI/Models/Operations/RefreshSessionRequestBody.cs index f712f096..b9ba57d7 100644 --- a/src/Clerk/BackendAPI/Models/Operations/RefreshSessionRequestBody.cs +++ b/src/Clerk/BackendAPI/Models/Operations/RefreshSessionRequestBody.cs @@ -31,7 +31,7 @@ public class RefreshSessionRequestBody public string ExpiredToken { get; set; } = default!; /// - /// The JWT that is sent via the `__session` cookie from your frontend. + /// The refresh token from the `__refresh` cookie set via FAPI's handshake flow. /// [JsonProperty("refresh_token")] public string RefreshToken { get; set; } = default!; diff --git a/src/Clerk/BackendAPI/Models/Operations/Two.cs b/src/Clerk/BackendAPI/Models/Operations/Two.cs index a5533b45..6b64d53b 100644 --- a/src/Clerk/BackendAPI/Models/Operations/Two.cs +++ b/src/Clerk/BackendAPI/Models/Operations/Two.cs @@ -84,5 +84,11 @@ public class Two /// [JsonProperty("attribute_mapping")] public RequestBodyAttributeMapping? AttributeMapping { get; set; } = null; + + /// + /// Enable or deactivate ForceAuthn + /// + [JsonProperty("force_authn")] + public bool? ForceAuthn { get; set; } } } \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Operations/UpdateAWSCredentialRequest.cs b/src/Clerk/BackendAPI/Models/Operations/UpdateAWSCredentialRequest.cs deleted file mode 100644 index 8ca815df..00000000 --- a/src/Clerk/BackendAPI/Models/Operations/UpdateAWSCredentialRequest.cs +++ /dev/null @@ -1,27 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. -// -// Changes to this file may cause incorrect behavior and will be lost when -// the code is regenerated. -// -//------------------------------------------------------------------------------ -#nullable enable -namespace Clerk.BackendAPI.Models.Operations -{ - using Clerk.BackendAPI.Models.Operations; - using Clerk.BackendAPI.Utils; - - public class UpdateAWSCredentialRequest - { - - /// - /// The ID of the AWS Credential to update - /// - [SpeakeasyMetadata("pathParam:style=simple,explode=false,name=id")] - public string Id { get; set; } = default!; - - [SpeakeasyMetadata("request:mediaType=application/json")] - public UpdateAWSCredentialRequestBody? RequestBody { get; set; } - } -} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Operations/UpdateAWSCredentialRequestBody.cs b/src/Clerk/BackendAPI/Models/Operations/UpdateAWSCredentialRequestBody.cs deleted file mode 100644 index 70777d73..00000000 --- a/src/Clerk/BackendAPI/Models/Operations/UpdateAWSCredentialRequestBody.cs +++ /dev/null @@ -1,28 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. -// -// Changes to this file may cause incorrect behavior and will be lost when -// the code is regenerated. -// -//------------------------------------------------------------------------------ -#nullable enable -namespace Clerk.BackendAPI.Models.Operations -{ - using Clerk.BackendAPI.Utils; - using Newtonsoft.Json; - using System.Collections.Generic; - - public class UpdateAWSCredentialRequestBody - { - - [JsonProperty("access_key_id")] - public string? AccessKeyId { get; set; } = null; - - [JsonProperty("user_pool_ids")] - public List? UserPoolIds { get; set; } - - [JsonProperty("secret_access_key")] - public string? SecretAccessKey { get; set; } = null; - } -} \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Operations/UpdateInstanceOrganizationSettingsRequestBody.cs b/src/Clerk/BackendAPI/Models/Operations/UpdateInstanceOrganizationSettingsRequestBody.cs index 9b68ce60..ac04beb8 100644 --- a/src/Clerk/BackendAPI/Models/Operations/UpdateInstanceOrganizationSettingsRequestBody.cs +++ b/src/Clerk/BackendAPI/Models/Operations/UpdateInstanceOrganizationSettingsRequestBody.cs @@ -28,6 +28,9 @@ public class UpdateInstanceOrganizationSettingsRequestBody [JsonProperty("domains_enabled")] public bool? DomainsEnabled { get; set; } = null; + [JsonProperty("slug_disabled")] + public bool? SlugDisabled { get; set; } = null; + /// /// Specify which enrollment modes to enable for your Organization Domains.
/// diff --git a/src/Clerk/BackendAPI/Models/Operations/UpdateJWTTemplateRequestBody.cs b/src/Clerk/BackendAPI/Models/Operations/UpdateJWTTemplateRequestBody.cs index c6620377..6b9837d4 100644 --- a/src/Clerk/BackendAPI/Models/Operations/UpdateJWTTemplateRequestBody.cs +++ b/src/Clerk/BackendAPI/Models/Operations/UpdateJWTTemplateRequestBody.cs @@ -29,13 +29,13 @@ public class UpdateJWTTemplateRequestBody public UpdateJWTTemplateClaims Claims { get; set; } = default!; /// - /// JWT token lifetime + /// JWT lifetime /// [JsonProperty("lifetime")] public long? Lifetime { get; set; } = null; /// - /// JWT token allowed clock skew + /// JWT allowed clock skew /// [JsonProperty("allowed_clock_skew")] public long? AllowedClockSkew { get; set; } = null; diff --git a/src/Clerk/BackendAPI/Models/Operations/UpdateOrganizationDomainRequest.cs b/src/Clerk/BackendAPI/Models/Operations/UpdateOrganizationDomainRequest.cs index 26285295..e9513dbb 100644 --- a/src/Clerk/BackendAPI/Models/Operations/UpdateOrganizationDomainRequest.cs +++ b/src/Clerk/BackendAPI/Models/Operations/UpdateOrganizationDomainRequest.cs @@ -16,7 +16,7 @@ public class UpdateOrganizationDomainRequest { /// - /// The ID of the organization the domain belongs to + /// The ID of the organization to which the domain belongs /// [SpeakeasyMetadata("pathParam:style=simple,explode=false,name=organization_id")] public string OrganizationId { get; set; } = default!; diff --git a/src/Clerk/BackendAPI/Models/Operations/UpdateOrganizationMembershipMetadataRequest.cs b/src/Clerk/BackendAPI/Models/Operations/UpdateOrganizationMembershipMetadataRequest.cs index 0e71de27..e6e4f635 100644 --- a/src/Clerk/BackendAPI/Models/Operations/UpdateOrganizationMembershipMetadataRequest.cs +++ b/src/Clerk/BackendAPI/Models/Operations/UpdateOrganizationMembershipMetadataRequest.cs @@ -16,13 +16,13 @@ public class UpdateOrganizationMembershipMetadataRequest { /// - /// The ID of the organization to which the membership belongs + /// The ID of the organization to which this membership belongs /// [SpeakeasyMetadata("pathParam:style=simple,explode=false,name=organization_id")] public string OrganizationId { get; set; } = default!; /// - /// The ID of the user that this membership belongs to + /// The ID of the user to which this membership belongs /// [SpeakeasyMetadata("pathParam:style=simple,explode=false,name=user_id")] public string UserId { get; set; } = default!; diff --git a/src/Clerk/BackendAPI/Models/Operations/UpdateOrganizationMembershipRequest.cs b/src/Clerk/BackendAPI/Models/Operations/UpdateOrganizationMembershipRequest.cs index 3b6e4d61..daaa2ea9 100644 --- a/src/Clerk/BackendAPI/Models/Operations/UpdateOrganizationMembershipRequest.cs +++ b/src/Clerk/BackendAPI/Models/Operations/UpdateOrganizationMembershipRequest.cs @@ -16,13 +16,13 @@ public class UpdateOrganizationMembershipRequest { /// - /// The ID of the organization to which the membership belongs + /// The ID of the organization to which this membership belongs /// [SpeakeasyMetadata("pathParam:style=simple,explode=false,name=organization_id")] public string OrganizationId { get; set; } = default!; /// - /// The ID of the user that this membership belongs to + /// The ID of the user to which this membership belongs /// [SpeakeasyMetadata("pathParam:style=simple,explode=false,name=user_id")] public string UserId { get; set; } = default!; diff --git a/src/Clerk/BackendAPI/Models/Operations/UpdateSAMLConnectionRequestBody.cs b/src/Clerk/BackendAPI/Models/Operations/UpdateSAMLConnectionRequestBody.cs index 49df79b8..915d6866 100644 --- a/src/Clerk/BackendAPI/Models/Operations/UpdateSAMLConnectionRequestBody.cs +++ b/src/Clerk/BackendAPI/Models/Operations/UpdateSAMLConnectionRequestBody.cs @@ -38,13 +38,13 @@ public class UpdateSAMLConnectionRequestBody public List? Domains { get; set; } = null; /// - /// The entity id as provided by the IdP + /// The Entity ID as provided by the IdP /// [JsonProperty("idp_entity_id")] public string? IdpEntityId { get; set; } = null; /// - /// The SSO url as provided by the IdP + /// The SSO URL as provided by the IdP /// [JsonProperty("idp_sso_url")] public string? IdpSsoUrl { get; set; } = null; @@ -74,7 +74,7 @@ public class UpdateSAMLConnectionRequestBody public string? OrganizationId { get; set; } = null; /// - /// Define the atrtibute name mapping between Identity Provider and Clerk's user properties + /// Define the attribute name mapping between Identity Provider and Clerk's user properties /// [JsonProperty("attribute_mapping")] public AttributeMapping? AttributeMapping { get; set; } = null; @@ -108,5 +108,11 @@ public class UpdateSAMLConnectionRequestBody ///
[JsonProperty("disable_additional_identifications")] public bool? DisableAdditionalIdentifications { get; set; } = null; + + /// + /// Enable or deactivate ForceAuthn + /// + [JsonProperty("force_authn")] + public bool? ForceAuthn { get; set; } } } \ No newline at end of file diff --git a/src/Clerk/BackendAPI/Models/Operations/UpdateUserRequestBody.cs b/src/Clerk/BackendAPI/Models/Operations/UpdateUserRequestBody.cs index 940e958f..e987bd52 100644 --- a/src/Clerk/BackendAPI/Models/Operations/UpdateUserRequestBody.cs +++ b/src/Clerk/BackendAPI/Models/Operations/UpdateUserRequestBody.cs @@ -38,6 +38,12 @@ public class UpdateUserRequestBody [JsonProperty("last_name")] public string? LastName { get; set; } = null; + /// + /// The locale to assign to the user (e.g., "en-US", "fr-FR") + /// + [JsonProperty("locale")] + public string? Locale { get; set; } = null; + /// /// The ID of the email address to set as primary.
/// @@ -201,7 +207,7 @@ public class UpdateUserRequestBody public bool? CreateOrganizationEnabled { get; set; } = null; /// - /// A custom timestamps denoting _when_ the user accepted legal requirements, specified in RFC3339 format (e.g. `2012-10-20T07:15:20.902Z`). + /// A custom timestamp denoting _when_ the user accepted legal requirements, specified in RFC3339 format (e.g. `2012-10-20T07:15:20.902Z`). /// [JsonProperty("legal_accepted_at")] public string? LegalAcceptedAt { get; set; } = null; diff --git a/src/Clerk/BackendAPI/OauthAccessTokens.cs b/src/Clerk/BackendAPI/OauthAccessTokens.cs index 5616c515..3d208a0e 100644 --- a/src/Clerk/BackendAPI/OauthAccessTokens.cs +++ b/src/Clerk/BackendAPI/OauthAccessTokens.cs @@ -35,9 +35,9 @@ public class OauthAccessTokens: IOauthAccessTokens { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public OauthAccessTokens(SDKConfig config) { @@ -64,7 +64,7 @@ public async Task VerifyAsync(VerifyOAuthAccessT httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "verifyOAuthAccessToken", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "verifyOAuthAccessToken", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/OauthApplications.cs b/src/Clerk/BackendAPI/OauthApplications.cs index dd9b11c3..1675e28d 100644 --- a/src/Clerk/BackendAPI/OauthApplications.cs +++ b/src/Clerk/BackendAPI/OauthApplications.cs @@ -42,7 +42,7 @@ public interface IOauthApplications /// /// /// Creates a new OAuth application with the given name and callback URL for an instance.
- /// The callback URL must be a valid url.
+ /// The callback URL must be a valid URL.
/// All URL schemes are allowed such as `http://`, `https://`, `myapp://`, etc... ///
///
@@ -91,9 +91,9 @@ public class OauthApplications: IOauthApplications { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public OauthApplications(SDKConfig config) { @@ -120,7 +120,7 @@ public async Task ListAsync(long? limit = 10, lon httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListOAuthApplications", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListOAuthApplications", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -270,7 +270,7 @@ public async Task CreateAsync(CreateOAuthApplica httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateOAuthApplication", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateOAuthApplication", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -417,7 +417,7 @@ public async Task GetAsync(string oauthApplicationI httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetOAuthApplication", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetOAuthApplication", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -571,7 +571,7 @@ public async Task UpdateAsync(string oauthApplic httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateOAuthApplication", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateOAuthApplication", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -718,7 +718,7 @@ public async Task DeleteAsync(string oauthApplic httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteOAuthApplication", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteOAuthApplication", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -865,7 +865,7 @@ public async Task RotateSecretAsync(string httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "RotateOAuthApplicationSecret", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "RotateOAuthApplicationSecret", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/OrganizationDomains.cs b/src/Clerk/BackendAPI/OrganizationDomains.cs index 518827fb..3a7a8dd3 100644 --- a/src/Clerk/BackendAPI/OrganizationDomains.cs +++ b/src/Clerk/BackendAPI/OrganizationDomains.cs @@ -81,9 +81,9 @@ public class OrganizationDomains: IOrganizationDomains { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public OrganizationDomains(SDKConfig config) { @@ -114,7 +114,7 @@ public async Task CreateAsync(string organizat httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateOrganizationDomain", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateOrganizationDomain", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -257,7 +257,7 @@ public async Task ListAsync(ListOrganizationDom httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListOrganizationDomains", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListOrganizationDomains", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -412,7 +412,7 @@ public async Task UpdateAsync(string organizat httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateOrganizationDomain", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateOrganizationDomain", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -560,7 +560,7 @@ public async Task DeleteAsync(string organizat httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteOrganizationDomain", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteOrganizationDomain", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -703,7 +703,7 @@ public async Task ListAllAsync(ListAllOrgani httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListAllOrganizationDomains", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListAllOrganizationDomains", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/OrganizationInvitations.cs b/src/Clerk/BackendAPI/OrganizationInvitations.cs index 712a22f2..0bc63390 100644 --- a/src/Clerk/BackendAPI/OrganizationInvitations.cs +++ b/src/Clerk/BackendAPI/OrganizationInvitations.cs @@ -139,9 +139,9 @@ public class OrganizationInvitations: IOrganizationInvitations { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public OrganizationInvitations(SDKConfig config) { @@ -161,7 +161,7 @@ public async Task GetAllAsync(ListI httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListInstanceOrganizationInvitations", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListInstanceOrganizationInvitations", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -335,7 +335,7 @@ public async Task CreateAsync(string organ httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateOrganizationInvitation", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateOrganizationInvitation", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -478,7 +478,7 @@ public async Task ListAsync(ListOrganizatio httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListOrganizationInvitations", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListOrganizationInvitations", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -632,7 +632,7 @@ public async Task BulkCreateAsync(stri httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateOrganizationInvitationBulk", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateOrganizationInvitationBulk", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -782,7 +782,7 @@ public async Task ListPendingAsync(s httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListPendingOrganizationInvitations", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListPendingOrganizationInvitations", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -930,7 +930,7 @@ public async Task GetAsync(string organizatio httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetOrganizationInvitation", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetOrganizationInvitation", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -1085,7 +1085,7 @@ public async Task RevokeAsync(string organ httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "RevokeOrganizationInvitation", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "RevokeOrganizationInvitation", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/OrganizationMemberships.cs b/src/Clerk/BackendAPI/OrganizationMemberships.cs index cc96a122..dca7cb2e 100644 --- a/src/Clerk/BackendAPI/OrganizationMemberships.cs +++ b/src/Clerk/BackendAPI/OrganizationMemberships.cs @@ -77,9 +77,9 @@ public class OrganizationMemberships: IOrganizationMemberships { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public OrganizationMemberships(SDKConfig config) { @@ -110,7 +110,7 @@ public async Task CreateAsync(string organ httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateOrganizationMembership", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateOrganizationMembership", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -253,7 +253,7 @@ public async Task ListAsync(ListOrganizatio httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListOrganizationMemberships", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListOrganizationMemberships", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -408,7 +408,7 @@ public async Task UpdateAsync(string organ httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateOrganizationMembership", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateOrganizationMembership", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -556,7 +556,7 @@ public async Task DeleteAsync(string organ httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteOrganizationMembership", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteOrganizationMembership", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -711,7 +711,7 @@ public async Task UpdateMetadataAs httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateOrganizationMembershipMetadata", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateOrganizationMembershipMetadata", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/Organizations.cs b/src/Clerk/BackendAPI/Organizations.cs index dc454480..9f2d92d0 100644 --- a/src/Clerk/BackendAPI/Organizations.cs +++ b/src/Clerk/BackendAPI/Organizations.cs @@ -133,9 +133,9 @@ public class Organizations: IOrganizations { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public Organizations(SDKConfig config) { @@ -155,7 +155,7 @@ public async Task ListAsync(ListOrganizationsRequest? httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListOrganizations", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListOrganizations", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -305,7 +305,7 @@ public async Task CreateAsync(CreateOrganizationRequ httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateOrganization", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateOrganization", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -454,7 +454,7 @@ public async Task GetAsync(string organizationId, bool? httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetOrganization", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetOrganization", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -608,7 +608,7 @@ public async Task UpdateAsync(string organizationId, httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateOrganization", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateOrganization", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -651,7 +651,7 @@ public async Task UpdateAsync(string organizationId, httpResponse = await retries.Run(); int _statusCode = (int)httpResponse.StatusCode; - if (_statusCode == 402 || _statusCode == 404 || _statusCode == 422 || _statusCode >= 400 && _statusCode < 500 || _statusCode >= 500 && _statusCode < 600) + if (_statusCode == 402 || _statusCode == 403 || _statusCode == 404 || _statusCode == 422 || _statusCode >= 400 && _statusCode < 500 || _statusCode >= 500 && _statusCode < 600) { var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), httpResponse, null); if (_httpResponse != null) @@ -706,7 +706,7 @@ public async Task UpdateAsync(string organizationId, throw new Models.Errors.SDKError("Unknown content type received", httpRequest, httpResponse, await httpResponse.Content.ReadAsStringAsync()); } - else if(new List{402, 404, 422}.Contains(responseStatusCode)) + else if(new List{402, 403, 404, 422}.Contains(responseStatusCode)) { if(Utilities.IsContentTypeMatch("application/json", contentType)) { @@ -755,7 +755,7 @@ public async Task DeleteAsync(string organizationId, httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteOrganization", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteOrganization", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -909,7 +909,7 @@ public async Task MergeMetadataAsync(string o httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "MergeOrganizationMetadata", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "MergeOrganizationMetadata", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -1063,7 +1063,7 @@ public async Task UploadLogoAsync(string organiz httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UploadOrganizationLogo", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UploadOrganizationLogo", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -1210,7 +1210,7 @@ public async Task DeleteLogoAsync(string organiz httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteOrganizationLogo", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteOrganizationLogo", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -1357,7 +1357,7 @@ public async Task GetBillingSubscrip httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetOrganizationBillingSubscription", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetOrganizationBillingSubscription", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/PhoneNumbers.cs b/src/Clerk/BackendAPI/PhoneNumbers.cs index 9a15ca48..6a723ae4 100644 --- a/src/Clerk/BackendAPI/PhoneNumbers.cs +++ b/src/Clerk/BackendAPI/PhoneNumbers.cs @@ -66,9 +66,9 @@ public class PhoneNumbers: IPhoneNumbers { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public PhoneNumbers(SDKConfig config) { @@ -95,7 +95,7 @@ public async Task CreateAsync(CreatePhoneNumberReques httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreatePhoneNumber", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreatePhoneNumber", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -242,7 +242,7 @@ public async Task GetAsync(string phoneNumberId, RetryCo httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetPhoneNumber", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetPhoneNumber", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -389,7 +389,7 @@ public async Task DeleteAsync(string phoneNumberId, R httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeletePhoneNumber", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeletePhoneNumber", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -543,7 +543,7 @@ public async Task UpdateAsync(string phoneNumberId, U httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdatePhoneNumber", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdatePhoneNumber", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/ProxyChecks.cs b/src/Clerk/BackendAPI/ProxyChecks.cs index 8dc05a87..5d22bff6 100644 --- a/src/Clerk/BackendAPI/ProxyChecks.cs +++ b/src/Clerk/BackendAPI/ProxyChecks.cs @@ -46,9 +46,9 @@ public class ProxyChecks: IProxyChecks { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public ProxyChecks(SDKConfig config) { @@ -75,7 +75,7 @@ public async Task VerifyAsync(VerifyDomainProxyReques httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "VerifyDomainProxy", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "VerifyDomainProxy", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/RedirectUrls.cs b/src/Clerk/BackendAPI/RedirectUrls.cs index 7c029852..d17508d8 100644 --- a/src/Clerk/BackendAPI/RedirectUrls.cs +++ b/src/Clerk/BackendAPI/RedirectUrls.cs @@ -66,9 +66,9 @@ public class RedirectUrls: IRedirectUrls { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public RedirectUrls(SDKConfig config) { @@ -94,7 +94,7 @@ public async Task ListAsync(bool? paginated = null, lo httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListRedirectURLs", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListRedirectURLs", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -224,7 +224,7 @@ public async Task CreateAsync(CreateRedirectURLReques httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateRedirectURL", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateRedirectURL", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -371,7 +371,7 @@ public async Task GetAsync(string id, RetryConfig? retry httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetRedirectURL", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetRedirectURL", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -518,7 +518,7 @@ public async Task DeleteAsync(string id, RetryConfig? httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteRedirectURL", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteRedirectURL", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/SDKConfig.cs b/src/Clerk/BackendAPI/SDKConfig.cs index 3707a018..37a308b7 100644 --- a/src/Clerk/BackendAPI/SDKConfig.cs +++ b/src/Clerk/BackendAPI/SDKConfig.cs @@ -42,7 +42,7 @@ public SDKConfig(ISpeakeasyHttpClient? client = null) Client = client ?? new SpeakeasyHttpClient(); ServerUrl = ""; ServerIndex = 0; - UserAgent = "speakeasy-sdk/csharp 0.13.0 2.716.9 2025-04-10 Clerk.BackendAPI"; + UserAgent = "speakeasy-sdk/csharp 0.14.0 2.748.0 2025-11-10 Clerk.BackendAPI"; SecuritySource = null; Hooks = new SDKHooks(); RetryConfig = null; diff --git a/src/Clerk/BackendAPI/SamlConnections.cs b/src/Clerk/BackendAPI/SamlConnections.cs index fc42f860..aa6b4a54 100644 --- a/src/Clerk/BackendAPI/SamlConnections.cs +++ b/src/Clerk/BackendAPI/SamlConnections.cs @@ -77,9 +77,9 @@ public class SamlConnections: ISamlConnections { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public SamlConnections(SDKConfig config) { @@ -99,7 +99,7 @@ public async Task ListAsync(ListSAMLConnectionsRequ httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListSAMLConnections", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListSAMLConnections", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -249,7 +249,7 @@ public async Task CreateAsync(CreateSAMLConnection httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateSAMLConnection", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateSAMLConnection", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -396,7 +396,7 @@ public async Task GetAsync(string samlConnectionId, R httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetSAMLConnection", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetSAMLConnection", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -550,7 +550,7 @@ public async Task UpdateAsync(string samlConnectio httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateSAMLConnection", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateSAMLConnection", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -697,7 +697,7 @@ public async Task DeleteAsync(string samlConnectio httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteSAMLConnection", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteSAMLConnection", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/Sessions.cs b/src/Clerk/BackendAPI/Sessions.cs index fc91ded3..3387ee32 100644 --- a/src/Clerk/BackendAPI/Sessions.cs +++ b/src/Clerk/BackendAPI/Sessions.cs @@ -88,10 +88,10 @@ public interface ISessions Task CreateTokenAsync(string sessionId, CreateSessionTokenRequestBody? requestBody = null, RetryConfig? retryConfig = null); /// - /// Create a session token from a jwt template + /// Create a session token from a JWT template /// /// - /// Creates a JSON Web Token(JWT) based on a session and a JWT Template name defined for your instance + /// Creates a JSON Web Token (JWT) based on a session and a JWT Template name defined for your instance /// /// Task CreateTokenFromTemplateAsync(string sessionId, string templateName, CreateSessionTokenFromTemplateRequestBody? requestBody = null, RetryConfig? retryConfig = null); @@ -101,9 +101,9 @@ public class Sessions: ISessions { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public Sessions(SDKConfig config) { @@ -123,7 +123,7 @@ public async Task ListAsync(GetSessionListRequest? reque httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetSessionList", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetSessionList", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -273,7 +273,7 @@ public async Task CreateAsync(CreateSessionRequestBody? r httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "createSession", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "createSession", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -420,7 +420,7 @@ public async Task GetAsync(string sessionId, RetryConfig? re httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetSession", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetSession", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -574,7 +574,7 @@ public async Task RefreshAsync(string sessionId, Refresh httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "RefreshSession", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "RefreshSession", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -721,7 +721,7 @@ public async Task RevokeAsync(string sessionId, RetryConf httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "RevokeSession", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "RevokeSession", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -875,7 +875,7 @@ public async Task CreateTokenAsync(string sessionId, httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateSessionToken", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateSessionToken", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -1030,7 +1030,7 @@ public async Task CreateTokenFromTemplat httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateSessionTokenFromTemplate", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateSessionTokenFromTemplate", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/SignInTokens.cs b/src/Clerk/BackendAPI/SignInTokens.cs index c1dff992..3c8ac4a3 100644 --- a/src/Clerk/BackendAPI/SignInTokens.cs +++ b/src/Clerk/BackendAPI/SignInTokens.cs @@ -50,9 +50,9 @@ public class SignInTokens: ISignInTokens { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public SignInTokens(SDKConfig config) { @@ -79,7 +79,7 @@ public async Task CreateAsync(CreateSignInTokenReques httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateSignInToken", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateSignInToken", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -226,7 +226,7 @@ public async Task RevokeAsync(string signInTokenId, R httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "RevokeSignInToken", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "RevokeSignInToken", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/SignUps.cs b/src/Clerk/BackendAPI/SignUps.cs index 0629e3bb..3b81897f 100644 --- a/src/Clerk/BackendAPI/SignUps.cs +++ b/src/Clerk/BackendAPI/SignUps.cs @@ -48,9 +48,9 @@ public class SignUps: ISignUps { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public SignUps(SDKConfig config) { @@ -74,7 +74,7 @@ public async Task GetAsync(string id, RetryConfig? retryConfi httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetSignUp", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetSignUp", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -228,7 +228,7 @@ public async Task UpdateAsync(string id, UpdateSignUpReque httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateSignUp", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateSignUp", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/Templates.cs b/src/Clerk/BackendAPI/Templates.cs index a292c299..5b7461ca 100644 --- a/src/Clerk/BackendAPI/Templates.cs +++ b/src/Clerk/BackendAPI/Templates.cs @@ -39,9 +39,9 @@ public class Templates: ITemplates { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public Templates(SDKConfig config) { @@ -74,7 +74,7 @@ public async Task PreviewAsync(string templateType, str httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "PreviewTemplate", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "PreviewTemplate", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/TestingTokens.cs b/src/Clerk/BackendAPI/TestingTokens.cs index 8a8a380f..d0d34072 100644 --- a/src/Clerk/BackendAPI/TestingTokens.cs +++ b/src/Clerk/BackendAPI/TestingTokens.cs @@ -38,9 +38,9 @@ public class TestingTokens: ITestingTokens { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public TestingTokens(SDKConfig config) { @@ -61,7 +61,7 @@ public async Task CreateAsync(RetryConfig? retryConf httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateTestingToken", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateTestingToken", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/Users.cs b/src/Clerk/BackendAPI/Users.cs index e80a9ba0..0feb1d25 100644 --- a/src/Clerk/BackendAPI/Users.cs +++ b/src/Clerk/BackendAPI/Users.cs @@ -315,9 +315,9 @@ public class Users: IUsers { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public Users(SDKConfig config) { @@ -337,7 +337,7 @@ public async Task ListAsync(GetUserListRequest? request = n httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetUserList", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetUserList", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -487,7 +487,7 @@ public async Task CreateAsync(CreateUserRequestBody request, httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateUser", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateUser", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -630,7 +630,7 @@ public async Task CountAsync(GetUsersCountRequest? reques httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetUsersCount", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetUsersCount", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -777,7 +777,7 @@ public async Task GetAsync(string userId, RetryConfig? retryCon httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetUser", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetUser", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -931,7 +931,7 @@ public async Task UpdateAsync(string userId, UpdateUserReque httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateUser", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateUser", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -1078,7 +1078,7 @@ public async Task DeleteAsync(string userId, RetryConfig? re httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteUser", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteUser", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -1225,7 +1225,7 @@ public async Task BanAsync(string userId, RetryConfig? retryCon httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "BanUser", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "BanUser", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -1372,7 +1372,7 @@ public async Task UnbanAsync(string userId, RetryConfig? retr httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UnbanUser", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UnbanUser", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -1522,7 +1522,7 @@ public async Task BulkBanAsync(UsersBanRequestBody request, Re httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UsersBan", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UsersBan", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -1672,7 +1672,7 @@ public async Task BulkUnbanAsync(UsersUnbanRequestBody reque httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UsersUnban", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UsersUnban", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -1819,7 +1819,7 @@ public async Task LockAsync(string userId, RetryConfig? retryC httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "LockUser", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "LockUser", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -1966,7 +1966,7 @@ public async Task UnlockAsync(string userId, RetryConfig? re httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UnlockUser", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UnlockUser", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -2120,7 +2120,7 @@ public async Task SetProfileImageAsync(string userI httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "SetUserProfileImage", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "SetUserProfileImage", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -2267,7 +2267,7 @@ public async Task DeleteProfileImageAsync(string httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteUserProfileImage", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteUserProfileImage", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -2421,7 +2421,7 @@ public async Task UpdateMetadataAsync(string userId, httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateUserMetadata", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UpdateUserMetadata", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -2568,7 +2568,7 @@ public async Task GetBillingSubscriptionAsyn httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetUserBillingSubscription", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetUserBillingSubscription", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -2731,7 +2731,7 @@ public async Task GetOAuthAccessTokenAsync(GetOAuth httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetOAuthAccessToken", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GetOAuthAccessToken", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -2880,7 +2880,7 @@ public async Task GetOrganizationMember httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UsersGetOrganizationMemberships", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UsersGetOrganizationMemberships", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -3030,7 +3030,7 @@ public async Task GetOrganizationInvita httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UsersGetOrganizationInvitations", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UsersGetOrganizationInvitations", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -3184,7 +3184,7 @@ public async Task VerifyPasswordAsync(string userId, Ver httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "VerifyPassword", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "VerifyPassword", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -3338,7 +3338,7 @@ public async Task VerifyTotpAsync(string userId, VerifyTOTPR httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "VerifyTOTP", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "VerifyTOTP", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -3485,7 +3485,7 @@ public async Task DisableMfaAsync(string userId, RetryConfig httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DisableMFA", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DisableMFA", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -3652,7 +3652,7 @@ public async Task DeleteBackupCodesAsync(string userId httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteBackupCode", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteBackupCode", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -3820,7 +3820,7 @@ public async Task DeletePasskeyAsync(string userId, s httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UserPasskeyDelete", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UserPasskeyDelete", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -3988,7 +3988,7 @@ public async Task DeleteWeb3WalletAsync(string use httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UserWeb3WalletDelete", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "UserWeb3WalletDelete", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -4155,7 +4155,7 @@ public async Task DeleteTOTPAsync(string userId, RetryConfig httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteTOTP", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteTOTP", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -4323,7 +4323,7 @@ public async Task DeleteExternalAccountAsync(stri httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteExternalAccount", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteExternalAccount", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -4492,7 +4492,7 @@ public async Task GetInstanceOrganiz httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "InstanceGetOrganizationMemberships", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "InstanceGetOrganizationMemberships", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/WaitlistEntries.cs b/src/Clerk/BackendAPI/WaitlistEntries.cs index 6fc815c8..c27eabaf 100644 --- a/src/Clerk/BackendAPI/WaitlistEntries.cs +++ b/src/Clerk/BackendAPI/WaitlistEntries.cs @@ -78,9 +78,9 @@ public class WaitlistEntries: IWaitlistEntries { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public WaitlistEntries(SDKConfig config) { @@ -100,7 +100,7 @@ public async Task ListAsync(ListWaitlistEntriesRequ httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListWaitlistEntries", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "ListWaitlistEntries", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -230,7 +230,7 @@ public async Task CreateAsync(CreateWaitlistEntryRe httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateWaitlistEntry", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateWaitlistEntry", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -377,7 +377,7 @@ public async Task DeleteAsync(string waitlistEntryI httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteWaitlistEntry", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteWaitlistEntry", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -531,7 +531,7 @@ public async Task InviteAsync(string waitlistEntryI httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "InviteWaitlistEntry", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "InviteWaitlistEntry", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -678,7 +678,7 @@ public async Task RejectAsync(string waitlistEntryI httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "RejectWaitlistEntry", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "RejectWaitlistEntry", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) diff --git a/src/Clerk/BackendAPI/Webhooks.cs b/src/Clerk/BackendAPI/Webhooks.cs index f4d62379..9b0a70ab 100644 --- a/src/Clerk/BackendAPI/Webhooks.cs +++ b/src/Clerk/BackendAPI/Webhooks.cs @@ -46,7 +46,7 @@ public interface IWebhooks /// Create a Svix Dashboard URL /// /// - /// Generate a new url for accessing the Svix's management dashboard for that particular instance + /// Generate a new URL for accessing the Svix's management dashboard for that particular instance /// /// Task GenerateSvixAuthURLAsync(RetryConfig? retryConfig = null); @@ -56,9 +56,9 @@ public class Webhooks: IWebhooks { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.13.0"; - private const string _sdkGenVersion = "2.716.9"; - private const string _openapiDocVersion = "2025-04-10"; + private const string _sdkVersion = "0.14.0"; + private const string _sdkGenVersion = "2.748.0"; + private const string _openapiDocVersion = "2025-11-10"; public Webhooks(SDKConfig config) { @@ -79,7 +79,7 @@ public async Task CreateSvixAppAsync(RetryConfig? retryCo httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateSvixApp", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "CreateSvixApp", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -223,7 +223,7 @@ public async Task DeleteSvixAppAsync(RetryConfig? retryCo httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteSvixApp", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "DeleteSvixApp", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null) @@ -349,7 +349,7 @@ public async Task GenerateSvixAuthURLAsync(RetryCon httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest); } - var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GenerateSvixAuthURL", new List { }, SDKConfiguration.SecuritySource); + var hookCtx = new HookContext(SDKConfiguration, baseUrl, "GenerateSvixAuthURL", null, SDKConfiguration.SecuritySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); if (retryConfig == null)