diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 000000000..1e7a0adba
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,35 @@
+root = true
+
+[*.cs]
+resharper_arrange_object_creation_when_type_evident_highlighting = hint
+resharper_auto_property_can_be_made_get_only_global_highlighting = hint
+resharper_check_namespace_highlighting = hint
+resharper_class_never_instantiated_global_highlighting = hint
+resharper_class_never_instantiated_local_highlighting = hint
+resharper_collection_never_updated_global_highlighting = hint
+resharper_convert_type_check_pattern_to_null_check_highlighting = hint
+resharper_inconsistent_naming_highlighting = hint
+resharper_member_can_be_private_global_highlighting = hint
+resharper_member_hides_static_from_outer_class_highlighting = hint
+resharper_not_accessed_field_local_highlighting = hint
+resharper_nullable_warning_suppression_is_used_highlighting = suggestion
+resharper_partial_type_with_single_part_highlighting = hint
+resharper_prefer_concrete_value_over_default_highlighting = none
+resharper_private_field_can_be_converted_to_local_variable_highlighting = hint
+resharper_property_can_be_made_init_only_global_highlighting = hint
+resharper_property_can_be_made_init_only_local_highlighting = hint
+resharper_redundant_name_qualifier_highlighting = none
+resharper_redundant_using_directive_highlighting = hint
+resharper_replace_slice_with_range_indexer_highlighting = none
+resharper_unused_auto_property_accessor_global_highlighting = hint
+resharper_unused_auto_property_accessor_local_highlighting = hint
+resharper_unused_member_global_highlighting = hint
+resharper_unused_type_global_highlighting = hint
+resharper_use_string_interpolation_highlighting = hint
+dotnet_diagnostic.CS1591.severity = suggestion
+
+[src/**/Types/*.cs]
+resharper_check_namespace_highlighting = none
+
+[src/**/Core/Public/*.cs]
+resharper_check_namespace_highlighting = none
\ No newline at end of file
diff --git a/.fern/metadata.json b/.fern/metadata.json
new file mode 100644
index 000000000..0d3c0dab5
--- /dev/null
+++ b/.fern/metadata.json
@@ -0,0 +1,22 @@
+{
+ "cliVersion": "3.60.1",
+ "generatorName": "fernapi/fern-csharp-sdk",
+ "generatorVersion": "2.20.3",
+ "generatorConfig": {
+ "namespace": "Auth0.ManagementApi",
+ "package-id": "Auth0.ManagementApi",
+ "client-class-name": "ManagementApiClient",
+ "base-api-exception-class-name": "ManagementApiException",
+ "base-exception-class-name": "ManagementException",
+ "generate-mock-server-tests": true,
+ "use-default-request-parameter-values": true,
+ "experimental-explicit-nullable-optional": true,
+ "use-undiscriminated-unions": true,
+ "output-path": {
+ "library": "src",
+ "test": "tests",
+ "solution": "."
+ }
+ },
+ "sdkVersion": "0.0.1662"
+}
\ No newline at end of file
diff --git a/.fernignore b/.fernignore
new file mode 100644
index 000000000..edd71520f
--- /dev/null
+++ b/.fernignore
@@ -0,0 +1,45 @@
+# Specify files that shouldn't be modified by Fern
+.github
+.gitattributes
+.gitignore
+.semgrepignore
+.shiprc
+.snyk
+.version
+
+build
+docs
+docs-source
+
+Auth0.Net.sln
+CHANGELOG.md
+DEVELOPMENT.md
+Examples.md
+LICENSE
+opslevel.yml
+README.md
+SECURITY-NOTICE.md
+V8_MIGRATION_GUIDE.md
+
+Auth0.ManagementApi.slnx
+Auth0.Net.slnx
+
+src/Auth0.AuthenticationApi
+src/Auth0.Core
+src/Directory.Build.props
+src/Auth0.ManagementApi/Auth0.ManagementApi.Custom.props
+src/Auth0.ManagementApi/.shiprc
+src/Auth0.ManagementApi/.version
+
+tests/Auth0.AuthenticationApi.IntegrationTests
+tests/Auth0.Core.UnitTests
+tests/Auth0.IntegrationTests.Shared
+tests/Auth0.ManagementApi.IntegrationTests
+tests/Auth0.ManagementApi.Test/Auth0.ManagementApi.Test.Custom.props
+tests/Auth0.ManagementApi.Test/Unit/MockServer/Auth0ClientHeaderTest.cs
+tests/Auth0.ManagementApi.Test/Wrapper
+
+src/Auth0.ManagementApi/Core/RawClient.cs
+src/Auth0.ManagementApi/ManagementApiClient.cs
+src/Auth0.ManagementApi/Types/ResourceServerTokenEncryptionKey.cs
+src/Auth0.ManagementApi/Wrapper
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index a27376069..43c223073 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -114,8 +114,10 @@ jobs:
path: .
key: ${{ env.CACHE_KEY }}
- name: Test Management API
- run: dotnet test tests/Auth0.ManagementApi.IntegrationTests/Auth0.ManagementApi.IntegrationTests.csproj --collect:"XPlat Code coverage" --results-directory ./TestResults/ /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura
-
+ run: |
+ dotnet test tests/Auth0.ManagementApi.IntegrationTests/Auth0.ManagementApi.IntegrationTests.csproj --collect:"XPlat Code coverage" --results-directory ./TestResults/ /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura && \
+ dotnet test tests/Auth0.ManagementApi.Test/Auth0.ManagementApi.Test.csproj --collect:"XPlat Code coverage" --results-directory ./TestResults/ /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura
+
- name: Update codecov report
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # pin@5.5.2
with:
diff --git a/.github/workflows/snyk.yml b/.github/workflows/snyk.yml
index 454afe67c..6061fb1c2 100644
--- a/.github/workflows/snyk.yml
+++ b/.github/workflows/snyk.yml
@@ -30,7 +30,7 @@ jobs:
- if: github.actor == 'dependabot[bot]' || github.event_name == 'merge_group'
run: exit 0 # Skip unnecessary test runs for dependabot and merge queues. Artifically flag as successful, as this is a required check for branch protection.
- - uses: actions/checkout@v6
+ - uses: actions/checkout@v5
with:
ref: ${{ github.event.pull_request.merge_commit_sha || github.ref }}
diff --git a/.gitignore b/.gitignore
index 4f477152a..9d88d43a8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,7 @@
Auth0.Net-tests/App.config
client-secrets.json
tools/*
+Auth0.Net.slnx
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
@@ -351,4 +352,6 @@ MigrationBackup/
# Intell-J Rider etc.
.idea/*
-.vscode/*
\ No newline at end of file
+.vscode/*
+.DS_Store
+.idea
\ No newline at end of file
diff --git a/Auth0.Net.sln b/Auth0.Net.sln
index 07d019063..f4690cc6c 100644
--- a/Auth0.Net.sln
+++ b/Auth0.Net.sln
@@ -16,8 +16,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Auth0.Core", "src\Auth0.Core\Auth0.Core.csproj", "{0F45514D-6CF8-4962-8FED-BE000AE6FD09}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Auth0.ManagementApi", "src\Auth0.ManagementApi\Auth0.ManagementApi.csproj", "{78B2102E-B5F2-4C35-A485-BFAC3576C6DD}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Auth0.AuthenticationApi", "src\Auth0.AuthenticationApi\Auth0.AuthenticationApi.csproj", "{DB8AFC1D-2A56-4CF4-9F54-7B7511B674ED}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Auth0.Core.UnitTests", "tests\Auth0.Core.UnitTests\Auth0.Core.UnitTests.csproj", "{49CFAA66-C4A3-45DA-AD10-DBE9B5B35F2B}"
@@ -28,6 +26,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Auth0.ManagementApi.Integra
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Auth0.IntegrationTests.Shared", "tests\Auth0.IntegrationTests.Shared\Auth0.IntegrationTests.Shared.csproj", "{7AE5A1C8-19E6-4BC9-8B11-9B8921C85FE2}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Auth0.ManagementApi.Test", "tests\Auth0.ManagementApi.Test\Auth0.ManagementApi.Test.csproj", "{D2751BB3-1E06-46BF-916E-029DA2623354}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Auth0.ManagementApi", "src\Auth0.ManagementApi\Auth0.ManagementApi.csproj", "{31ABA338-13AB-4DED-8E29-4119867DBDFD}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -38,10 +40,6 @@ Global
{0F45514D-6CF8-4962-8FED-BE000AE6FD09}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0F45514D-6CF8-4962-8FED-BE000AE6FD09}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0F45514D-6CF8-4962-8FED-BE000AE6FD09}.Release|Any CPU.Build.0 = Release|Any CPU
- {78B2102E-B5F2-4C35-A485-BFAC3576C6DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {78B2102E-B5F2-4C35-A485-BFAC3576C6DD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {78B2102E-B5F2-4C35-A485-BFAC3576C6DD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {78B2102E-B5F2-4C35-A485-BFAC3576C6DD}.Release|Any CPU.Build.0 = Release|Any CPU
{DB8AFC1D-2A56-4CF4-9F54-7B7511B674ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DB8AFC1D-2A56-4CF4-9F54-7B7511B674ED}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DB8AFC1D-2A56-4CF4-9F54-7B7511B674ED}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -62,18 +60,27 @@ Global
{7AE5A1C8-19E6-4BC9-8B11-9B8921C85FE2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7AE5A1C8-19E6-4BC9-8B11-9B8921C85FE2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7AE5A1C8-19E6-4BC9-8B11-9B8921C85FE2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D2751BB3-1E06-46BF-916E-029DA2623354}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D2751BB3-1E06-46BF-916E-029DA2623354}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D2751BB3-1E06-46BF-916E-029DA2623354}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D2751BB3-1E06-46BF-916E-029DA2623354}.Release|Any CPU.Build.0 = Release|Any CPU
+ {31ABA338-13AB-4DED-8E29-4119867DBDFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {31ABA338-13AB-4DED-8E29-4119867DBDFD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {31ABA338-13AB-4DED-8E29-4119867DBDFD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {31ABA338-13AB-4DED-8E29-4119867DBDFD}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{0F45514D-6CF8-4962-8FED-BE000AE6FD09} = {C9550C3F-90EB-42C0-B530-E728566A13C2}
- {78B2102E-B5F2-4C35-A485-BFAC3576C6DD} = {C9550C3F-90EB-42C0-B530-E728566A13C2}
{DB8AFC1D-2A56-4CF4-9F54-7B7511B674ED} = {C9550C3F-90EB-42C0-B530-E728566A13C2}
{49CFAA66-C4A3-45DA-AD10-DBE9B5B35F2B} = {0EBAD055-E431-443B-8212-411D1AFE3796}
{72307777-1064-4E95-95FC-957FBDF117B2} = {0EBAD055-E431-443B-8212-411D1AFE3796}
{AE75D5CF-1AB0-4630-B53C-EA6C7347A114} = {0EBAD055-E431-443B-8212-411D1AFE3796}
{7AE5A1C8-19E6-4BC9-8B11-9B8921C85FE2} = {0EBAD055-E431-443B-8212-411D1AFE3796}
+ {D2751BB3-1E06-46BF-916E-029DA2623354} = {0EBAD055-E431-443B-8212-411D1AFE3796}
+ {31ABA338-13AB-4DED-8E29-4119867DBDFD} = {C9550C3F-90EB-42C0-B530-E728566A13C2}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {8B26058B-3755-4E47-AE0B-350E5B18A4CD}
diff --git a/README.md b/README.md
index f199434d9..83b086480 100644
--- a/README.md
+++ b/README.md
@@ -5,6 +5,7 @@
[](https://opensource.org/licenses/MIT)
[](https://github.com/auth0/auth0.net/actions/workflows/build.yml)
[](https://deepwiki.com/auth0/auth0.net)
+[](https://buildwithfern.com?utm_source=github&utm_medium=github&utm_campaign=readme&utm_source=https%3A%2F%2Fgithub.com%2Fauth0%2Fauth0.net)
:books: [Documentation](#documentation) - :rocket: [Getting Started](#getting-started) - :computer: [API Reference](https://auth0.github.io/auth0.net/) - :speech_balloon: [Feedback](#feedback)
@@ -28,13 +29,72 @@ Install-Package Auth0.ManagementApi
#### Usage
-Generate a token for the API calls you wish to make (see [Access Tokens for the Management API](https://auth0.com/docs/api/management/v2/tokens)). Create an instance of the `ManagementApiClient` class with the token and the API URL of your Auth0 instance:
+The recommended way to use the Management API is with the `ManagementClient` wrapper, which provides automatic token management and a simpler configuration experience.
+
+##### Using ManagementClient (Recommended)
+
+The `ManagementClient` wrapper handles token acquisition and refresh automatically using client credentials:
+
+```csharp
+var client = new ManagementClient(new ManagementClientOptions
+{
+ Domain = "YOUR_AUTH0_DOMAIN",
+ ClientId = "YOUR_CLIENT_ID",
+ ClientSecret = "YOUR_CLIENT_SECRET"
+});
+
+// Tokens are automatically acquired and refreshed
+var users = await client.Users.GetAllAsync();
+```
+
+You can also use a static token or a dynamic token provider:
+
+```csharp
+// With a static token
+var client = new ManagementClient(new ManagementClientOptions
+{
+ Domain = "YOUR_AUTH0_DOMAIN",
+ Token = "your-access-token"
+});
+
+// With a dynamic token provider (e.g., from a vault or external service)
+var client = new ManagementClient(new ManagementClientOptions
+{
+ Domain = "YOUR_AUTH0_DOMAIN",
+ TokenProvider = () => GetTokenFromVault()
+});
+```
+
+Additional configuration options:
+
+```csharp
+var client = new ManagementClient(new ManagementClientOptions
+{
+ Domain = "YOUR_AUTH0_DOMAIN",
+ ClientId = "YOUR_CLIENT_ID",
+ ClientSecret = "YOUR_CLIENT_SECRET",
+ Audience = "https://custom-audience/", // Optional: defaults to https://{domain}/api/v2/
+ Timeout = TimeSpan.FromSeconds(60), // Optional: request timeout
+ MaxRetries = 3, // Optional: retry attempts
+ HttpClient = customHttpClient, // Optional: bring your own HttpClient
+ AdditionalHeaders = new Dictionary // Optional: custom headers
+ {
+ { "X-Custom-Header", "value" }
+ }
+});
+```
+
+##### Using ManagementApiClient (Alternative)
+
+If you prefer to manage tokens yourself, you can use the `ManagementApiClient` directly. Generate a token for the API calls you wish to make (see [Access Tokens for the Management API](https://auth0.com/docs/api/management/v2/tokens)):
```csharp
var client = new ManagementApiClient("your token", new Uri("https://YOUR_AUTH0_DOMAIN/api/v2"));
```
-The API calls are divided into groups which correlate to the [Management API documentation](https://auth0.com/docs/api/v2). For example all Connection related methods can be found under the `ManagementApiClient.Connections` property. So to get a list of all database (Auth0) connections, you can make the following API call:
+##### Making API Calls
+
+The API calls are divided into groups which correlate to the [Management API documentation](https://auth0.com/docs/api/v2). For example all Connection related methods can be found under the `Connections` property. So to get a list of all database (Auth0) connections, you can make the following API call:
```csharp
await client.Connections.GetAllAsync("auth0");
@@ -66,6 +126,134 @@ This library contains [URL Builders](https://auth0.github.io/auth0.net/#using-ur
See [more examples](Examples.md#authentication-api).
+## Advanced
+
+### Accessing the Raw Response
+
+Access raw HTTP response data (status code, headers, URL) alongside parsed response data using the `.WithRawResponse()` method.
+
+```csharp
+using Auth0.ManagementApi;
+
+// Access raw response data (status code, headers, etc.) alongside the parsed response
+var result = await client.Users.CreateAsync(
+ new CreateUserRequestContent
+ {
+ Email = "user@example.com",
+ Connection = "Username-Password-Authentication"
+ }
+).WithRawResponse();
+
+// Access the parsed data
+var user = result.Data;
+
+// Access raw response metadata
+var statusCode = result.RawResponse.StatusCode;
+var headers = result.RawResponse.Headers;
+var url = result.RawResponse.Url;
+
+// Access specific headers (case-insensitive)
+if (headers.TryGetValue("X-Request-Id", out var requestId))
+{
+ Console.WriteLine($"Request ID: {requestId}");
+}
+
+// For the default behavior, simply await without .WithRawResponse()
+var user = await client.Users.CreateAsync(
+ new CreateUserRequestContent
+ {
+ Email = "user@example.com",
+ Connection = "Username-Password-Authentication"
+ }
+);
+```
+
+### Working with Optional Fields
+
+The SDK uses `Optional` for fields that need to distinguish between "not set" (undefined) and "explicitly set to null". This is important for PATCH/update operations where you want to:
+
+- **Undefined**: Don't send this field (leave it unchanged on the server)
+- **Defined with null**: Send null (clear the field on the server)
+- **Defined with value**: Send the value (update the field on the server)
+
+```csharp
+using Auth0.ManagementApi;
+using Auth0.ManagementApi.Core;
+
+// Update only the name, leave other fields unchanged
+var request = new UpdateUserRequestContent
+{
+ Name = "John Doe" // Will be sent
+ // Email, PhoneNumber, etc. are Optional.Undefined by default - won't be sent
+};
+
+// Explicitly clear a field by setting it to null
+var clearNickname = new UpdateUserRequestContent
+{
+ Nickname = Optional.Of(null) // Will send null to clear the nickname
+};
+
+// Check if a value is defined
+if (request.Name.IsDefined)
+{
+ Console.WriteLine($"Name will be updated to: {request.Name.Value}");
+}
+
+// Use TryGetValue for safe access
+if (request.Email.TryGetValue(out var email))
+{
+ Console.WriteLine($"Email: {email}");
+}
+else
+{
+ Console.WriteLine("Email is not being updated");
+}
+```
+
+### Interfaces
+
+The SDK provides interfaces for all clients, enabling dependency injection and testing scenarios:
+
+```csharp
+using Auth0.ManagementApi;
+
+public class UserService
+{
+ private readonly IManagementApiClient _client;
+
+ public UserService(IManagementApiClient client)
+ {
+ _client = client;
+ }
+
+ public async Task GetUserAsync(string userId)
+ {
+ return await _client.Users.GetAsync(userId, new GetUserRequestParameters());
+ }
+}
+
+// Register with dependency injection
+services.AddSingleton(provider =>
+{
+ return new ManagementClient(new ManagementClientOptions
+ {
+ Domain = "YOUR_AUTH0_DOMAIN",
+ ClientId = "YOUR_CLIENT_ID",
+ ClientSecret = "YOUR_CLIENT_SECRET"
+ });
+});
+```
+
+Sub-clients also have interfaces (e.g., `IUsersClient`, `IConnectionsClient`) for more granular mocking:
+
+```csharp
+// Mock specific sub-clients for unit testing
+var mockUsersClient = new Mock();
+mockUsersClient
+ .Setup(c => c.GetAsync(It.IsAny(), It.IsAny(), null, default))
+ .ReturnsAsync(new GetUserResponseContent { UserId = "user_123" });
+```
+
## Feedback
### Contributing
diff --git a/V8_MIGRATION_GUIDE.md b/V8_MIGRATION_GUIDE.md
new file mode 100644
index 000000000..676d4e1a6
--- /dev/null
+++ b/V8_MIGRATION_GUIDE.md
@@ -0,0 +1,722 @@
+# Auth0 .NET SDK v7 to v8 Migration Guide
+
+**Please review this guide thoroughly to understand the changes required to migrate from Auth0.ManagementApi v7 to v8.**
+
+## Table of Contents
+
+- [Overview](#overview)
+- [Authentication API](#authentication-api)
+- [Breaking Changes](#breaking-changes)
+ - [NuGet Package](#nuget-package)
+ - [Client Initialization](#client-initialization)
+ - [Request and Response Types](#request-and-response-types)
+ - [Method Signatures](#method-signatures)
+ - [Sub-client Organization](#sub-client-organization)
+ - [Type Changes](#type-changes)
+ - [Exception Handling](#exception-handling)
+- [Migration Steps](#migration-steps)
+- [Examples](#examples)
+ - [User Management](#user-management)
+ - [Client/Application Management](#clientapplication-management)
+ - [Connection Management](#connection-management)
+- [New Features in v8](#new-features-in-v8)
+ - [Raw Response Access](#raw-response-access)
+ - [Optional Fields for PATCH Operations](#optional-fields-for-patch-operations)
+ - [Interfaces for Dependency Injection](#interfaces-for-dependency-injection)
+- [Additional Notes](#additional-notes)
+- [Troubleshooting](#troubleshooting)
+
+## Overview
+
+The Auth0 .NET SDK v8 represents a significant update to the Management API SDK with the following major improvements:
+
+- **Generated from OpenAPI**: v8 is generated from Auth0's OpenAPI specifications using [Fern](https://github.com/fern-api/fern), ensuring consistency and accuracy
+- **Improved Type Safety**: Strongly typed request/response structures with proper validation
+- **Better Organization**: Management APIs are organized into dedicated sub-clients
+- **Automatic Token Management**: New `ManagementClient` wrapper handles token acquisition and refresh automatically
+- **Enhanced Developer Experience**: Better IntelliSense support and clear method signatures
+
+## Authentication API
+
+The `Auth0.AuthenticationApi` package remains unchanged between v7 and v8. Any code that worked in v7 should work in v8:
+
+```csharp
+// Works in both v7 and v8
+using Auth0.AuthenticationApi;
+
+var client = new AuthenticationApiClient(new Uri("https://YOUR_DOMAIN"));
+
+var tokenRequest = new ResourceOwnerTokenRequest
+{
+ ClientId = "YOUR_CLIENT_ID",
+ ClientSecret = "YOUR_CLIENT_SECRET",
+ Username = "user@example.com",
+ Password = "password",
+ Scope = "openid profile"
+};
+
+var token = await client.GetTokenAsync(tokenRequest);
+```
+
+## Breaking Changes
+
+### NuGet Package
+
+The NuGet package name remains unchanged, but the version has been updated.
+
+**v7:**
+```xml
+
+```
+
+**v8:**
+```xml
+
+```
+
+### Client Initialization
+
+The way you initialize the Management API client has changed significantly. V8 introduces a new `ManagementClient` wrapper that handles token management automatically.
+
+**v7:**
+```csharp
+using Auth0.ManagementApi;
+
+// Required manual token management
+var token = await GetAccessTokenAsync(); // Your token acquisition logic
+var client = new ManagementApiClient(token, new Uri("https://YOUR_DOMAIN/api/v2"));
+```
+
+**v8 (Recommended - with automatic token management):**
+```csharp
+using Auth0.ManagementApi;
+
+// Automatic token acquisition and refresh
+var client = new ManagementClient(new ManagementClientOptions
+{
+ Domain = "YOUR_DOMAIN",
+ ClientId = "YOUR_CLIENT_ID",
+ ClientSecret = "YOUR_CLIENT_SECRET"
+});
+```
+
+**v8 (Alternative - with manual token):**
+```csharp
+using Auth0.ManagementApi;
+
+// If you prefer to manage tokens yourself
+var client = new ManagementClient(new ManagementClientOptions
+{
+ Domain = "YOUR_DOMAIN",
+ Token = "YOUR_ACCESS_TOKEN"
+});
+
+// Or with a dynamic token provider
+var client = new ManagementClient(new ManagementClientOptions
+{
+ Domain = "YOUR_DOMAIN",
+ TokenProvider = () => GetTokenFromVault()
+});
+```
+
+#### Configuration Options Comparison
+
+| Option | v7 | v8 |
+|--------|----|----|
+| Domain/URL | Constructor parameter (`Uri`) | `ManagementClientOptions.Domain` |
+| Token | Constructor parameter | `ManagementClientOptions.Token` or `TokenProvider` |
+| Client Credentials | Not supported (manual token) | `ManagementClientOptions.ClientId` + `ClientSecret` |
+| Timeout | Via `HttpClientManagementConnection` | `ManagementClientOptions.Timeout` |
+| Max Retries | Via `HttpClientManagementConnection` | `ManagementClientOptions.MaxRetries` |
+| Custom HttpClient | Via `HttpClientManagementConnection` | `ManagementClientOptions.HttpClient` |
+| Custom Headers | Via `HttpClientManagementConnection` | `ManagementClientOptions.AdditionalHeaders` |
+
+### Request and Response Types
+
+V8 introduces specific request and response types for each operation, with different naming conventions from v7.
+
+**v7:**
+```csharp
+// Request type named *CreateRequest, response is the domain type
+var request = new UserCreateRequest
+{
+ Email = "user@example.com",
+ Connection = "Username-Password-Authentication",
+ Password = "SecurePassword123!"
+};
+
+User createdUser = await client.Users.CreateAsync(request);
+// createdUser is of type User
+```
+
+**v8:**
+```csharp
+// Request type named *RequestContent, response is *ResponseContent
+var request = new CreateUserRequestContent
+{
+ Email = "user@example.com",
+ Connection = "Username-Password-Authentication",
+ Password = "SecurePassword123!"
+};
+
+CreateUserResponseContent createdUser = await client.Users.CreateAsync(request);
+// createdUser is of type CreateUserResponseContent
+```
+
+### Method Signatures
+
+Method signatures have been updated with more specific types and clearer parameter structures.
+
+**v7:**
+```csharp
+// Create user
+Task CreateAsync(UserCreateRequest request, CancellationToken cancellationToken = default);
+
+// Get user
+Task GetAsync(string id, string fields = null, bool includeFields = true,
+ CancellationToken cancellationToken = default);
+
+// List users (with separate pagination parameter)
+Task> GetAllAsync(GetUsersRequest request, PaginationInfo pagination = null,
+ CancellationToken cancellationToken = default);
+```
+
+**v8:**
+```csharp
+// Create user
+Task CreateAsync(
+ CreateUserRequestContent request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default);
+
+// Get user
+Task GetAsync(
+ string id,
+ GetUserRequestParameters request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default);
+
+// List users (returns async pager for automatic pagination)
+Task> ListAsync(
+ ListUsersRequestParameters request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default);
+```
+
+### Sub-client Organization
+
+V8 introduces a hierarchical sub-client structure for related resources, improving organization and discoverability.
+
+**v7:**
+```csharp
+// All user operations on a flat client
+var permissions = await client.Users.GetPermissionsAsync("user_id");
+var roles = await client.Users.GetRolesAsync("user_id");
+var logs = await client.Users.GetLogsAsync("user_id");
+var organizations = await client.Users.GetAllOrganizationsAsync("user_id");
+```
+
+**v8:**
+```csharp
+// Operations organized into sub-clients
+var permissions = await client.Users.Permissions.ListAsync("user_id", new ListUserPermissionsRequestParameters());
+var roles = await client.Users.Roles.ListAsync("user_id", new ListUserRolesRequestParameters());
+var logs = await client.Users.Logs.ListAsync("user_id", new ListUserLogsRequestParameters());
+var organizations = await client.Users.Organizations.ListAsync("user_id", new ListUserOrganizationsRequestParameters());
+```
+
+#### Common Sub-client Mappings
+
+| v7 Method | v8 Sub-client |
+|-----------|---------------|
+| `client.Users.GetPermissionsAsync()` | `client.Users.Permissions.ListAsync()` |
+| `client.Users.GetRolesAsync()` | `client.Users.Roles.ListAsync()` |
+| `client.Users.AssignRolesAsync()` | `client.Users.Roles.AssignAsync()` |
+| `client.Users.RemoveRolesAsync()` | `client.Users.Roles.DeleteAsync()` |
+| `client.Users.GetLogsAsync()` | `client.Users.Logs.ListAsync()` |
+| `client.Users.GetAllOrganizationsAsync()` | `client.Users.Organizations.ListAsync()` |
+| `client.Users.LinkAccountAsync()` | `client.Users.Identities.LinkAsync()` |
+| `client.Users.UnlinkAccountAsync()` | `client.Users.Identities.DeleteAsync()` |
+| `client.Organizations.GetAllMembersAsync()` | `client.Organizations.Members.ListAsync()` |
+| `client.Organizations.GetAllInvitationsAsync()` | `client.Organizations.Invitations.ListAsync()` |
+| `client.Organizations.GetAllConnectionsAsync()` | `client.Organizations.EnabledConnections.ListAsync()` |
+| `client.Actions.GetAllVersionsAsync()` | `client.Actions.Versions.ListAsync()` |
+| `client.Branding.GetUniversalLoginTemplateAsync()` | `client.Branding.Templates.GetUniversalLoginAsync()` |
+
+### Type Changes
+
+V8 uses generated type classes with different naming conventions.
+
+**v7:**
+```csharp
+using Auth0.ManagementApi.Models;
+
+User user = ...;
+Role role = ...;
+Organization organization = ...;
+Connection connection = ...;
+```
+
+**v8:**
+```csharp
+using Auth0.ManagementApi;
+using Auth0.ManagementApi.Core;
+
+// Request types
+CreateUserRequestContent createRequest = ...;
+UpdateUserRequestContent updateRequest = ...;
+ListUsersRequestParameters listParams = ...;
+
+// Response types
+CreateUserResponseContent createResponse = ...;
+GetUserResponseContent getResponse = ...;
+Pager userPager = ...; // List operations return Pager
+```
+
+Type naming conventions in v8:
+- Request body types: `*RequestContent` (e.g., `CreateUserRequestContent`)
+- Response types: `*ResponseContent` (e.g., `GetUserResponseContent`, `CreateUserResponseContent`)
+- Response schema types: `*ResponseSchema` or `*Schema` (e.g., `UserResponseSchema`)
+- Query parameters: `*RequestParameters` (e.g., `ListUsersRequestParameters`)
+- List operations: Return `Pager` for automatic pagination
+
+### Exception Handling
+
+V8 uses a unified exception hierarchy based on `ManagementApiException`.
+
+**v7:**
+```csharp
+using Auth0.Core.Exceptions;
+using System.Net;
+
+try
+{
+ var user = await client.Users.GetAsync("user_id");
+}
+catch (ErrorApiException ex) when (ex.StatusCode == HttpStatusCode.NotFound)
+{
+ // Handle 404
+ string errorCode = ex.ApiError?.ErrorCode;
+ string message = ex.ApiError?.Message;
+}
+catch (RateLimitApiException ex)
+{
+ // Handle rate limiting
+ long? retryAfter = ex.RateLimit?.RetryAfter;
+ DateTimeOffset? resetTime = ex.RateLimit?.Reset;
+}
+catch (ApiException ex)
+{
+ // Handle other API errors
+}
+```
+
+**v8:**
+```csharp
+using Auth0.ManagementApi;
+
+try
+{
+ var user = await client.Users.GetAsync("user_id", new GetUserRequestParameters());
+}
+catch (NotFoundError ex)
+{
+ // Handle 404
+ int statusCode = ex.StatusCode; // 404
+ object body = ex.Body;
+}
+catch (TooManyRequestsError ex)
+{
+ // Handle rate limiting (429)
+ int statusCode = ex.StatusCode;
+ object body = ex.Body;
+}
+catch (ManagementApiException ex)
+{
+ // Handle other API errors
+ int statusCode = ex.StatusCode;
+ object body = ex.Body;
+ string message = ex.Message;
+}
+```
+
+#### Exception Type Mappings
+
+| HTTP Status | v8 Exception Type |
+|-------------|-------------------|
+| 400 | `BadRequestError` |
+| 401 | `UnauthorizedError` |
+| 403 | `ForbiddenError` |
+| 404 | `NotFoundError` |
+| 409 | `ConflictError` |
+| 429 | `TooManyRequestsError` |
+| Other | `ManagementApiException` |
+
+## Migration Steps
+
+### Step 1: Update NuGet Package
+
+```bash
+dotnet add package Auth0.ManagementApi --version 8.*
+```
+
+Or update your `.csproj`:
+```xml
+
+```
+
+### Step 2: Update Client Initialization
+
+Replace your client initialization with the new `ManagementClient` wrapper:
+
+```csharp
+// Old (v7)
+var token = await GetAccessTokenAsync();
+var client = new ManagementApiClient(token, new Uri("https://YOUR_DOMAIN/api/v2"));
+
+// New (v8) - Recommended with automatic token management
+var client = new ManagementClient(new ManagementClientOptions
+{
+ Domain = "YOUR_DOMAIN",
+ ClientId = "YOUR_CLIENT_ID",
+ ClientSecret = "YOUR_CLIENT_SECRET"
+});
+```
+
+### Step 3: Update API Calls
+
+Update your API calls to use the new request/response types:
+
+```csharp
+// Old (v7)
+var request = new UserCreateRequest
+{
+ Email = "test@example.com",
+ Connection = "Username-Password-Authentication"
+};
+User created = await client.Users.CreateAsync(request);
+
+// New (v8)
+var request = new CreateUserRequestContent
+{
+ Email = "test@example.com",
+ Connection = "Username-Password-Authentication"
+};
+CreateUserResponseContent created = await client.Users.CreateAsync(request);
+```
+
+### Step 4: Update Exception Handling
+
+Update your exception handling to use the new exception types:
+
+```csharp
+// Old (v7)
+catch (ErrorApiException ex) when (ex.StatusCode == HttpStatusCode.NotFound)
+
+// New (v8)
+catch (NotFoundError ex)
+```
+
+## Examples
+
+### User Management
+
+**Creating a User:**
+
+**v7:**
+```csharp
+var userRequest = new UserCreateRequest
+{
+ Email = "newuser@example.com",
+ Connection = "Username-Password-Authentication",
+ Password = "SecureP@ssw0rd!",
+ EmailVerified = true
+};
+
+var user = await client.Users.CreateAsync(userRequest);
+Console.WriteLine($"Created user: {user.UserId}");
+```
+
+**v8:**
+```csharp
+var request = new CreateUserRequestContent
+{
+ Email = "newuser@example.com",
+ Connection = "Username-Password-Authentication",
+ Password = "SecureP@ssw0rd!",
+ EmailVerified = true
+};
+
+var user = await client.Users.CreateAsync(request);
+Console.WriteLine($"Created user: {user.UserId}");
+```
+
+**Listing Users:**
+
+**v7:**
+```csharp
+var request = new GetUsersRequest
+{
+ SearchEngine = "v3",
+ Query = "email:*@example.com"
+};
+
+var pagination = new PaginationInfo(pageNo: 0, perPage: 50, includeTotals: true);
+
+IPagedList users = await client.Users.GetAllAsync(request, pagination);
+foreach (var user in users)
+{
+ Console.WriteLine(user.Email);
+}
+```
+
+**v8:**
+```csharp
+var request = new ListUsersRequestParameters
+{
+ SearchEngine = SearchEngineVersionsEnum.V3,
+ Q = "email:*@example.com"
+};
+
+var pager = await client.Users.ListAsync(request);
+// Iterate through all pages automatically
+await foreach (var user in pager)
+{
+ Console.WriteLine(user.Email);
+}
+
+// Or access the current page directly
+foreach (var user in pager.CurrentPage.Items)
+{
+ Console.WriteLine(user.Email);
+}
+```
+
+### Client/Application Management
+
+**Creating a Client:**
+
+**v7:**
+```csharp
+var request = new ClientCreateRequest
+{
+ Name = "My Application",
+ ApplicationType = ClientApplicationType.Spa,
+ Callbacks = new List { "https://myapp.com/callback" }
+};
+
+Client app = await client.Clients.CreateAsync(request);
+```
+
+**v8:**
+```csharp
+var request = new CreateClientRequestContent
+{
+ Name = "My Application",
+ AppType = ClientAppTypeEnum.Spa,
+ Callbacks = new[] { "https://myapp.com/callback" }
+};
+
+CreateClientResponseContent app = await client.Clients.CreateAsync(request);
+```
+
+### Connection Management
+
+**Creating a Connection:**
+
+**v7:**
+```csharp
+var request = new ConnectionCreateRequest
+{
+ Name = "my-database",
+ Strategy = "auth0"
+};
+
+Connection connection = await client.Connections.CreateAsync(request);
+```
+
+**v8:**
+```csharp
+var request = new CreateConnectionRequestContent
+{
+ Name = "my-database",
+ Strategy = ConnectionIdentityProviderEnum.Auth0
+};
+
+CreateConnectionResponseContent connection = await client.Connections.CreateAsync(request);
+```
+
+## New Features in v8
+
+### Raw Response Access
+
+V8 introduces the ability to access raw HTTP response metadata (status code, headers, URL) alongside parsed responses using the `.WithRawResponse()` method:
+
+```csharp
+using Auth0.ManagementApi;
+
+// Access raw response data alongside the parsed response
+var result = await client.Users.CreateAsync(
+ new CreateUserRequestContent
+ {
+ Email = "user@example.com",
+ Connection = "Username-Password-Authentication"
+ }
+).WithRawResponse();
+
+// Access the parsed data
+var user = result.Data;
+
+// Access raw response metadata
+var statusCode = result.RawResponse.StatusCode;
+var headers = result.RawResponse.Headers;
+var url = result.RawResponse.Url;
+
+// Access specific headers (case-insensitive)
+if (headers.TryGetValue("X-Request-Id", out var requestId))
+{
+ Console.WriteLine($"Request ID: {requestId}");
+}
+
+// For the default behavior, simply await without .WithRawResponse()
+var user = await client.Users.CreateAsync(...);
+```
+
+### Optional Fields for PATCH Operations
+
+V8 uses `Optional` for update/patch request fields to properly distinguish between:
+- **Undefined**: Don't send this field (leave it unchanged on the server)
+- **Defined with null**: Send null (clear the field on the server)
+- **Defined with value**: Send the value (update the field on the server)
+
+**v7:**
+```csharp
+// In v7, null meant "don't send" - no way to explicitly clear a field
+var request = new UserUpdateRequest
+{
+ Name = "John Doe", // Will be sent
+ Nickname = null // Won't be sent (but you couldn't explicitly clear it)
+};
+```
+
+**v8:**
+```csharp
+using Auth0.ManagementApi.Core;
+
+// Update only specific fields
+var request = new UpdateUserRequestContent
+{
+ Name = "John Doe" // Will be sent
+ // Other Optional fields are Undefined by default - won't be sent
+};
+
+// Explicitly clear a field
+var clearNickname = new UpdateUserRequestContent
+{
+ Nickname = Optional.Of(null) // Will send null to clear the field
+};
+
+// Check if a value is defined
+if (request.Name.IsDefined)
+{
+ Console.WriteLine($"Name will be updated to: {request.Name.Value}");
+}
+
+// Use TryGetValue for safe access
+if (request.Email.TryGetValue(out var email))
+{
+ Console.WriteLine($"Email: {email}");
+}
+```
+
+### Interfaces for Dependency Injection
+
+V8 provides interfaces for all clients, making dependency injection and unit testing easier:
+
+**v7:**
+```csharp
+// Limited interface support - typically used concrete types
+public class UserService
+{
+ private readonly ManagementApiClient _client;
+
+ public UserService(ManagementApiClient client)
+ {
+ _client = client;
+ }
+}
+```
+
+**v8:**
+```csharp
+using Auth0.ManagementApi;
+
+// Use IManagementApiClient interface
+public class UserService
+{
+ private readonly IManagementApiClient _client;
+
+ public UserService(IManagementApiClient client)
+ {
+ _client = client;
+ }
+
+ public async Task GetUserAsync(string userId)
+ {
+ return await _client.Users.GetAsync(userId, new GetUserRequestParameters());
+ }
+}
+
+// Register with dependency injection
+services.AddSingleton(provider =>
+{
+ return new ManagementClient(new ManagementClientOptions
+ {
+ Domain = "YOUR_AUTH0_DOMAIN",
+ ClientId = "YOUR_CLIENT_ID",
+ ClientSecret = "YOUR_CLIENT_SECRET"
+ });
+});
+
+// Sub-clients also have interfaces for granular mocking
+var mockUsersClient = new Mock();
+mockUsersClient
+ .Setup(c => c.GetAsync(It.IsAny(), It.IsAny(), null, default))
+ .ReturnsAsync(new GetUserResponseContent { UserId = "user_123" });
+```
+
+## Additional Notes
+
+1. **Async Methods**: All v8 methods are async and support `CancellationToken`
+2. **Request Options**: Per-request configuration is available via `RequestOptions`:
+ ```csharp
+ var options = new RequestOptions
+ {
+ Timeout = TimeSpan.FromSeconds(30),
+ MaxRetries = 3,
+ AdditionalHeaders = new[] { new KeyValuePair("X-Custom-Header", "value") }
+ };
+
+ var user = await client.Users.GetAsync("user_id", new GetUserRequestParameters(), options);
+ ```
+3. **Automatic Token Management**: The `ManagementClient` wrapper automatically handles token expiration and refresh when using client credentials
+4. **Thread Safety**: The `ManagementClient` wrapper is thread-safe and can be used as a singleton
+
+## Troubleshooting
+
+### Common Issues
+
+1. **Import Errors**: Update namespace imports from `Auth0.ManagementApi.Models` to `Auth0.ManagementApi`
+2. **Type Mismatches**: Use the new `*RequestContent` and `*ResponseContent` types instead of domain objects
+3. **Method Not Found**: Check the sub-client structure - methods may have moved (e.g., `GetRolesAsync` is now `Roles.ListAsync`)
+4. **Missing CancellationToken**: Add `CancellationToken` parameter if needed for async operations
+
+### Getting Help
+
+- Check the [API Reference Documentation](https://auth0.github.io/auth0.net/)
+- Review the [Examples](Examples.md) in the repository
+- [Open an issue on GitHub](https://github.com/auth0/auth0.net/issues) for specific migration problems
+
+---
+
+This migration guide covers the major changes needed to upgrade from Auth0.ManagementApi v7 to v8. While the changes are significant, the improved type safety, automatic token management, and better organization make the SDK more robust and easier to use.
diff --git a/docs-source/index.md b/docs-source/index.md
index b082fd0fb..606b0b14c 100644
--- a/docs-source/index.md
+++ b/docs-source/index.md
@@ -14,7 +14,7 @@
## Getting started
### Requirements
-This library supports .NET Standard 2.0 and .NET Framework 4.5.2 as well as later versions of both.
+This library supports .NET Standard 2.0 and .NET Framework 4.6.2 as well as later versions of both.
### Management API
@@ -26,16 +26,45 @@ Install-Package Auth0.ManagementApi
#### Usage
-Generate a token for the API calls you wish to make (see [Access Tokens for the Management API](https://auth0.com/docs/api/management/v2/tokens)). Create an instance of the `ManagementApiClient` class with the token and the API URL of your Auth0 instance:
+The recommended way to use the Management API is with the `ManagementClient` wrapper, which provides automatic token management and a simpler configuration experience:
```csharp
-var client = new ManagementApiClient("your token", new Uri("https://YOUR_AUTH0_DOMAIN/api/v2"));
+var client = new ManagementClient(new ManagementClientOptions
+{
+ Domain = "YOUR_AUTH0_DOMAIN",
+ ClientId = "YOUR_CLIENT_ID",
+ ClientSecret = "YOUR_CLIENT_SECRET"
+});
+
+// Tokens are automatically acquired and refreshed
+var users = await client.Users.ListAsync(new ListUsersRequestParameters());
```
-The API calls are divided into groups which correlate to the [Management API documentation](https://auth0.com/docs/api/v2). For example all Connection related methods can be found under the `ManagementApiClient.Connections` property. So to get a list of all database (Auth0) connections, you can make the following API call:
+You can also use a static token or a dynamic token provider:
```csharp
-await client.Connections.GetAllAsync("auth0");
+// With a static token
+var client = new ManagementClient(new ManagementClientOptions
+{
+ Domain = "YOUR_AUTH0_DOMAIN",
+ Token = "your-access-token"
+});
+
+// With a dynamic token provider (e.g., from a vault or external service)
+var client = new ManagementClient(new ManagementClientOptions
+{
+ Domain = "YOUR_AUTH0_DOMAIN",
+ TokenProvider = () => GetTokenFromVault()
+});
+```
+
+The API calls are divided into groups which correlate to the [Management API documentation](https://auth0.com/docs/api/v2). For example all Connection related methods can be found under the `Connections` property. So to get a list of all database (Auth0) connections, you can make the following API call:
+
+```csharp
+var connections = await client.Connections.ListAsync(new ListConnectionsQueryParameters
+{
+ Strategy = new List { ConnectionStrategyEnum.Auth0 }
+});
```
### Authentication API
@@ -88,4 +117,4 @@ Please do not report security vulnerabilities on the public GitHub issue tracker
Auth0 is an easy to implement, adaptable authentication and authorization platform. To learn more checkout Why Auth0?
-This project is licensed under the MIT license. See the LICENSE file for more info.
\ No newline at end of file
+This project is licensed under the MIT license. See the LICENSE file for more info.
diff --git a/docs-source/migrating.md b/docs-source/migrating.md
index 2efdcc0b6..c30928d1e 100644
--- a/docs-source/migrating.md
+++ b/docs-source/migrating.md
@@ -1,5 +1,9 @@
# Migration Guide
+## Migrating from v7 to v8
+
+Please follow the information in our [v8 migration guide](../V8_MIGRATION_GUIDE.md).
+
## Migrating from v6 to v7
Please follow the information in our [v7 migration guide](migrating-to-v7.md).
diff --git a/reference.md b/reference.md
new file mode 100644
index 000000000..7b912fd64
--- /dev/null
+++ b/reference.md
@@ -0,0 +1,21897 @@
+# Reference
+## Actions
+client.Actions.ListAsync (ListActionsRequestParameters { ... }) -> Pager<Action>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve all actions.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Actions.ListAsync(
+ new ListActionsRequestParameters
+ {
+ TriggerId = "triggerId",
+ ActionName = "actionName",
+ Deployed = true,
+ Page = 1,
+ PerPage = 1,
+ Installed = true,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListActionsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Actions.CreateAsync (CreateActionRequestContent { ... }) -> WithRawResponseTask<CreateActionResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create an action. Once an action is created, it must be deployed, and then bound to a trigger before it will be executed as part of a flow.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Actions.CreateAsync(
+ new CreateActionRequestContent
+ {
+ Name = "name",
+ SupportedTriggers = new List() { new ActionTrigger { Id = "id" } },
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateActionRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Actions.GetAsync (id) -> WithRawResponseTask<GetActionResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve an action by its ID.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Actions.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The ID of the action to retrieve.
+
+
+
+
+
+
+
+
+
+
+
+client.Actions.DeleteAsync (id, DeleteActionRequestParameters { ... })
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Deletes an action and all of its associated versions. An action must be unbound from all triggers before it can be deleted.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Actions.DeleteAsync("id", new DeleteActionRequestParameters { Force = true });
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The ID of the action to delete.
+
+
+
+
+
+
+
+**request:** `DeleteActionRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Actions.UpdateAsync (id, UpdateActionRequestContent { ... }) -> WithRawResponseTask<UpdateActionResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update an existing action. If this action is currently bound to a trigger, updating it will not affect any user flows until the action is deployed.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Actions.UpdateAsync("id", new UpdateActionRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the action to update.
+
+
+
+
+
+
+
+**request:** `UpdateActionRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Actions.DeployAsync (id) -> WithRawResponseTask<DeployActionResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Deploy an action. Deploying an action will create a new immutable version of the action. If the action is currently bound to a trigger, then the system will begin executing the newly deployed version of the action immediately. Otherwise, the action will only be executed as a part of a flow once it is bound to that flow.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Actions.DeployAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The ID of an action.
+
+
+
+
+
+
+
+
+
+
+
+client.Actions.TestAsync (id, TestActionRequestContent { ... }) -> WithRawResponseTask<TestActionResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Test an action. After updating an action, it can be tested prior to being deployed to ensure it behaves as expected.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Actions.TestAsync(
+ "id",
+ new TestActionRequestContent
+ {
+ Payload = new Dictionary() { { "key", "value" } },
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the action to test.
+
+
+
+
+
+
+
+**request:** `TestActionRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Branding
+client.Branding.GetAsync () -> WithRawResponseTask<GetBrandingResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve branding settings.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Branding.GetAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.Branding.UpdateAsync (UpdateBrandingRequestContent { ... }) -> WithRawResponseTask<UpdateBrandingResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update branding settings.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Branding.UpdateAsync(new UpdateBrandingRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `UpdateBrandingRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## ClientGrants
+client.ClientGrants.ListAsync (ListClientGrantsRequestParameters { ... }) -> Pager<ClientGrantResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve a list of client grants , including the scopes associated with the application/API pair.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.ClientGrants.ListAsync(
+ new ListClientGrantsRequestParameters
+ {
+ From = "from",
+ Take = 1,
+ Audience = "audience",
+ ClientId = "client_id",
+ AllowAnyOrganization = true,
+ SubjectType = ClientGrantSubjectTypeEnum.Client,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListClientGrantsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.ClientGrants.CreateAsync (CreateClientGrantRequestContent { ... }) -> WithRawResponseTask<CreateClientGrantResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create a client grant for a machine-to-machine login flow. To learn more, read Client Credential Flow .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.ClientGrants.CreateAsync(
+ new CreateClientGrantRequestContent { ClientId = "client_id", Audience = "audience" }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateClientGrantRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.ClientGrants.DeleteAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete the Client Credential Flow from your machine-to-machine application.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.ClientGrants.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the client grant to delete.
+
+
+
+
+
+
+
+
+
+
+
+client.ClientGrants.UpdateAsync (id, UpdateClientGrantRequestContent { ... }) -> WithRawResponseTask<UpdateClientGrantResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update a client grant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.ClientGrants.UpdateAsync("id", new UpdateClientGrantRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the client grant to update.
+
+
+
+
+
+
+
+**request:** `UpdateClientGrantRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Clients
+client.Clients.ListAsync (ListClientsRequestParameters { ... }) -> Pager<Client>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve clients (applications and SSO integrations) matching provided filters. A list of fields to include or exclude may also be specified.
+For more information, read Applications in Auth0 and Single Sign-On .
+
+
+
+ The following can be retrieved with any scope:
+ client_id, app_type, name, and description.
+
+
+ The following properties can only be retrieved with the read:clients or
+ read:client_keys scope:
+ callbacks, oidc_logout, allowed_origins,
+ web_origins, tenant, global, config_route,
+ callback_url_template, jwt_configuration,
+ jwt_configuration.lifetime_in_seconds, jwt_configuration.secret_encoded,
+ jwt_configuration.scopes, jwt_configuration.alg, api_type,
+ logo_uri, allowed_clients, owners, custom_login_page,
+ custom_login_page_off, sso, addons, form_template,
+ custom_login_page_codeview, resource_servers, client_metadata,
+ mobile, mobile.android, mobile.ios, allowed_logout_urls,
+ token_endpoint_auth_method, is_first_party, oidc_conformant,
+ is_token_endpoint_ip_header_trusted, initiate_login_uri, grant_types,
+ refresh_token, refresh_token.rotation_type, refresh_token.expiration_type,
+ refresh_token.leeway, refresh_token.token_lifetime, refresh_token.policies, organization_usage,
+ organization_require_behavior.
+
+
+ The following properties can only be retrieved with the
+ read:client_keys or read:client_credentials scope:
+ encryption_key, encryption_key.pub, encryption_key.cert,
+ client_secret, client_authentication_methods and signing_key.
+
+
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Clients.ListAsync(
+ new ListClientsRequestParameters
+ {
+ Fields = "fields",
+ IncludeFields = true,
+ Page = 1,
+ PerPage = 1,
+ IncludeTotals = true,
+ IsGlobal = true,
+ IsFirstParty = true,
+ AppType = "app_type",
+ Q = "q",
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListClientsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Clients.CreateAsync (CreateClientRequestContent { ... }) -> WithRawResponseTask<CreateClientResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create a new client (application or SSO integration). For more information, read Create Applications
+API Endpoints for Single Sign-On .
+
+Notes:
+- We recommend leaving the `client_secret` parameter unspecified to allow the generation of a safe secret.
+- The client_authentication_methods and token_endpoint_auth_method properties are mutually exclusive. Use
+client_authentication_methods to configure the client with Private Key JWT authentication method. Otherwise, use token_endpoint_auth_method
+to configure the client with client secret (basic or post) or with no authentication method (none).
+- When using client_authentication_methods to configure the client with Private Key JWT authentication method, specify fully defined credentials.
+These credentials will be automatically enabled for Private Key JWT authentication on the client.
+- To configure client_authentication_methods, the create:client_credentials scope is required.
+- To configure client_authentication_methods, the property jwt_configuration.alg must be set to RS256.
+
+SSO Integrations created via this endpoint will accept login requests and share user profile information.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Clients.CreateAsync(new CreateClientRequestContent { Name = "name" });
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateClientRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Clients.GetAsync (id, GetClientRequestParameters { ... }) -> WithRawResponseTask<GetClientResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve client details by ID. Clients are SSO connections or Applications linked with your Auth0 tenant. A list of fields to include or exclude may also be specified.
+For more information, read Applications in Auth0 and Single Sign-On .
+
+
+ The following properties can be retrieved with any of the scopes:
+ client_id, app_type, name, and description.
+
+
+ The following properties can only be retrieved with the read:clients or
+ read:client_keys scopes:
+ callbacks, oidc_logout, allowed_origins,
+ web_origins, tenant, global, config_route,
+ callback_url_template, jwt_configuration,
+ jwt_configuration.lifetime_in_seconds, jwt_configuration.secret_encoded,
+ jwt_configuration.scopes, jwt_configuration.alg, api_type,
+ logo_uri, allowed_clients, owners, custom_login_page,
+ custom_login_page_off, sso, addons, form_template,
+ custom_login_page_codeview, resource_servers, client_metadata,
+ mobile, mobile.android, mobile.ios, allowed_logout_urls,
+ token_endpoint_auth_method, is_first_party, oidc_conformant,
+ is_token_endpoint_ip_header_trusted, initiate_login_uri, grant_types,
+ refresh_token, refresh_token.rotation_type, refresh_token.expiration_type,
+ refresh_token.leeway, refresh_token.token_lifetime, refresh_token.policies, organization_usage,
+ organization_require_behavior.
+
+
+ The following properties can only be retrieved with the read:client_keys or read:client_credentials scopes:
+ encryption_key, encryption_key.pub, encryption_key.cert,
+ client_secret, client_authentication_methods and signing_key.
+
+
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Clients.GetAsync(
+ "id",
+ new GetClientRequestParameters { Fields = "fields", IncludeFields = true }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the client to retrieve.
+
+
+
+
+
+
+
+**request:** `GetClientRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Clients.DeleteAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete a client and related configuration (rules, connections, etc).
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Clients.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the client to delete.
+
+
+
+
+
+
+
+
+
+
+
+client.Clients.UpdateAsync (id, UpdateClientRequestContent { ... }) -> WithRawResponseTask<UpdateClientResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Updates a client's settings. For more information, read Applications in Auth0 and Single Sign-On .
+
+Notes:
+- The `client_secret` and `signing_key` attributes can only be updated with the `update:client_keys` scope.
+- The client_authentication_methods and token_endpoint_auth_method properties are mutually exclusive. Use client_authentication_methods to configure the client with Private Key JWT authentication method. Otherwise, use token_endpoint_auth_method to configure the client with client secret (basic or post) or with no authentication method (none).
+- When using client_authentication_methods to configure the client with Private Key JWT authentication method, only specify the credential IDs that were generated when creating the credentials on the client.
+- To configure client_authentication_methods, the update:client_credentials scope is required.
+- To configure client_authentication_methods, the property jwt_configuration.alg must be set to RS256.
+- To change a client's is_first_party property to false, the organization_usage and organization_require_behavior properties must be unset.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Clients.UpdateAsync("id", new UpdateClientRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the client to update.
+
+
+
+
+
+
+
+**request:** `UpdateClientRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Clients.RotateSecretAsync (id) -> WithRawResponseTask<RotateClientSecretResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Rotate a client secret.
+
+This endpoint cannot be used with clients configured with Private Key JWT authentication method (client_authentication_methods configured with private_key_jwt). The generated secret is NOT base64 encoded.
+
+For more information, read Rotate Client Secrets .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Clients.RotateSecretAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the client that will rotate secrets.
+
+
+
+
+
+
+
+
+
+
+
+## ConnectionProfiles
+client.ConnectionProfiles.ListAsync (ListConnectionProfileRequestParameters { ... }) -> Pager<ConnectionProfile>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve a list of Connection Profiles. This endpoint supports Checkpoint pagination.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.ConnectionProfiles.ListAsync(
+ new ListConnectionProfileRequestParameters { From = "from", Take = 1 }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListConnectionProfileRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.ConnectionProfiles.CreateAsync (CreateConnectionProfileRequestContent { ... }) -> WithRawResponseTask<CreateConnectionProfileResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create a Connection Profile.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.ConnectionProfiles.CreateAsync(
+ new CreateConnectionProfileRequestContent { Name = "name" }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateConnectionProfileRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.ConnectionProfiles.ListTemplatesAsync () -> WithRawResponseTask<ListConnectionProfileTemplateResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve a list of Connection Profile Templates.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.ConnectionProfiles.ListTemplatesAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.ConnectionProfiles.GetTemplateAsync (id) -> WithRawResponseTask<GetConnectionProfileTemplateResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve a Connection Profile Template.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.ConnectionProfiles.GetTemplateAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the connection-profile-template to retrieve.
+
+
+
+
+
+
+
+
+
+
+
+client.ConnectionProfiles.GetAsync (id) -> WithRawResponseTask<GetConnectionProfileResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details about a single Connection Profile specified by ID.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.ConnectionProfiles.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the connection-profile to retrieve.
+
+
+
+
+
+
+
+
+
+
+
+client.ConnectionProfiles.DeleteAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete a single Connection Profile specified by ID.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.ConnectionProfiles.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the connection-profile to delete.
+
+
+
+
+
+
+
+
+
+
+
+client.ConnectionProfiles.UpdateAsync (id, UpdateConnectionProfileRequestContent { ... }) -> WithRawResponseTask<UpdateConnectionProfileResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update the details of a specific Connection Profile.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.ConnectionProfiles.UpdateAsync("id", new UpdateConnectionProfileRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the connection profile to update.
+
+
+
+
+
+
+
+**request:** `UpdateConnectionProfileRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Connections
+client.Connections.ListAsync (ListConnectionsQueryParameters { ... }) -> Pager<ConnectionForList>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieves detailed list of all connections that match the specified strategy. If no strategy is provided, all connections within your tenant are retrieved. This action can accept a list of fields to include or exclude from the resulting list of connections.
+
+This endpoint supports two types of pagination:
+
+Offset pagination
+Checkpoint pagination
+
+
+Checkpoint pagination must be used if you need to retrieve more than 1000 connections.
+
+Checkpoint Pagination
+
+To search by checkpoint, use the following parameters:
+
+from: Optional id from which to start selection.
+take: The total amount of entries to retrieve when using the from parameter. Defaults to 50.
+
+
+Note : The first time you call this endpoint using checkpoint pagination, omit the from parameter. If there are more results, a next value is included in the response. You can use this for subsequent API calls. When next is no longer included in the response, no pages are remaining.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Connections.ListAsync(
+ new ListConnectionsQueryParameters
+ {
+ From = "from",
+ Take = 1,
+ Name = "name",
+ Fields = "fields",
+ IncludeFields = true,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListConnectionsQueryParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Connections.CreateAsync (CreateConnectionRequestContent { ... }) -> WithRawResponseTask<CreateConnectionResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Creates a new connection according to the JSON object received in body.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Connections.CreateAsync(
+ new CreateConnectionRequestContent
+ {
+ Name = "name",
+ Strategy = ConnectionIdentityProviderEnum.Ad,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateConnectionRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Connections.GetAsync (id, GetConnectionRequestParameters { ... }) -> WithRawResponseTask<GetConnectionResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details for a specified connection along with options that can be used for identity provider configuration.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Connections.GetAsync(
+ "id",
+ new GetConnectionRequestParameters { Fields = "fields", IncludeFields = true }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the connection to retrieve
+
+
+
+
+
+
+
+**request:** `GetConnectionRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Connections.DeleteAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Removes a specific connection from your tenant. This action cannot be undone. Once removed, users can no longer use this connection to authenticate.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Connections.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the connection to delete
+
+
+
+
+
+
+
+
+
+
+
+client.Connections.UpdateAsync (id, UpdateConnectionRequestContent { ... }) -> WithRawResponseTask<UpdateConnectionResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update details for a specific connection , including option properties for identity provider configuration.
+
+Note : If you use the options parameter, the entire options object is overriden. To avoid partial data or other issues, ensure all parameters are present when using this option.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Connections.UpdateAsync("id", new UpdateConnectionRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the connection to update
+
+
+
+
+
+
+
+**request:** `UpdateConnectionRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Connections.CheckStatusAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieves the status of an ad/ldap connection referenced by its ID. 200 OK http status code response is returned when the connection is online, otherwise a 404 status code is returned along with an error message
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Connections.CheckStatusAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the connection to check
+
+
+
+
+
+
+
+
+
+
+
+## CustomDomains
+client.CustomDomains.ListAsync (ListCustomDomainsRequestParameters { ... }) -> WithRawResponseTask<IEnumerable<CustomDomain>>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details on custom domains .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.CustomDomains.ListAsync(
+ new ListCustomDomainsRequestParameters
+ {
+ Take = 1,
+ From = "from",
+ Q = "q",
+ Fields = "fields",
+ IncludeFields = true,
+ Sort = "sort",
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListCustomDomainsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.CustomDomains.CreateAsync (CreateCustomDomainRequestContent { ... }) -> WithRawResponseTask<CreateCustomDomainResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create a new custom domain.
+
+Note: The custom domain will need to be verified before it will accept
+requests.
+
+Optional attributes that can be updated:
+
+- custom_client_ip_header
+- tls_policy
+
+
+TLS Policies:
+
+- recommended - for modern usage this includes TLS 1.2 only
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.CustomDomains.CreateAsync(
+ new CreateCustomDomainRequestContent
+ {
+ Domain = "domain",
+ Type = CustomDomainProvisioningTypeEnum.Auth0ManagedCerts,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateCustomDomainRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.CustomDomains.GetAsync (id) -> WithRawResponseTask<GetCustomDomainResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve a custom domain configuration and status.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.CustomDomains.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the custom domain to retrieve.
+
+
+
+
+
+
+
+
+
+
+
+client.CustomDomains.DeleteAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete a custom domain and stop serving requests for it.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.CustomDomains.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the custom domain to delete.
+
+
+
+
+
+
+
+
+
+
+
+client.CustomDomains.UpdateAsync (id, UpdateCustomDomainRequestContent { ... }) -> WithRawResponseTask<UpdateCustomDomainResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update a custom domain.
+
+These are the attributes that can be updated:
+
+- custom_client_ip_header
+- tls_policy
+
+Updating CUSTOM_CLIENT_IP_HEADER for a custom domain To update the custom_client_ip_header for a domain, the body to
+send should be:
+{ "custom_client_ip_header": "cf-connecting-ip" }
+
+Updating TLS_POLICY for a custom domain To update the tls_policy for a domain, the body to send should be:
+{ "tls_policy": "recommended" }
+
+
+TLS Policies:
+
+- recommended - for modern usage this includes TLS 1.2 only
+
+
+Some considerations:
+
+- The TLS ciphers and protocols available in each TLS policy follow industry recommendations, and may be updated occasionally.
+- The compatible TLS policy is no longer supported.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.CustomDomains.UpdateAsync("id", new UpdateCustomDomainRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the custom domain to update
+
+
+
+
+
+
+
+**request:** `UpdateCustomDomainRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.CustomDomains.TestAsync (id) -> WithRawResponseTask<TestCustomDomainResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Run the test process on a custom domain.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.CustomDomains.TestAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the custom domain to test.
+
+
+
+
+
+
+
+
+
+
+
+client.CustomDomains.VerifyAsync (id) -> WithRawResponseTask<VerifyCustomDomainResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Run the verification process on a custom domain.
+
+Note: Check the status field to see its verification status. Once verification is complete, it may take up to 10 minutes before the custom domain can start accepting requests.
+
+For self_managed_certs, when the custom domain is verified for the first time, the response will also include the cname_api_key which you will need to configure your proxy. This key must be kept secret, and is used to validate the proxy requests.
+
+Learn more about verifying custom domains that use Auth0 Managed certificates.
+Learn more about verifying custom domains that use Self Managed certificates.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.CustomDomains.VerifyAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the custom domain to verify.
+
+
+
+
+
+
+
+
+
+
+
+## DeviceCredentials
+client.DeviceCredentials.ListAsync (ListDeviceCredentialsRequestParameters { ... }) -> Pager<DeviceCredential>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve device credential information (public_key, refresh_token, or rotating_refresh_token) associated with a specific user.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.DeviceCredentials.ListAsync(
+ new ListDeviceCredentialsRequestParameters
+ {
+ Page = 1,
+ PerPage = 1,
+ IncludeTotals = true,
+ Fields = "fields",
+ IncludeFields = true,
+ UserId = "user_id",
+ ClientId = "client_id",
+ Type = DeviceCredentialTypeEnum.PublicKey,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListDeviceCredentialsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.DeviceCredentials.CreatePublicKeyAsync (CreatePublicKeyDeviceCredentialRequestContent { ... }) -> WithRawResponseTask<CreatePublicKeyDeviceCredentialResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create a device credential public key to manage refresh token rotation for a given user_id. Device Credentials APIs are designed for ad-hoc administrative use only and paging is by default enabled for GET requests.
+
+When refresh token rotation is enabled, the endpoint becomes consistent. For more information, read Signing Keys .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.DeviceCredentials.CreatePublicKeyAsync(
+ new CreatePublicKeyDeviceCredentialRequestContent
+ {
+ DeviceName = "device_name",
+ Type = "public_key",
+ Value = "value",
+ DeviceId = "device_id",
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreatePublicKeyDeviceCredentialRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.DeviceCredentials.DeleteAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Permanently delete a device credential (such as a refresh token or public key) with the given ID.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.DeviceCredentials.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the credential to delete.
+
+
+
+
+
+
+
+
+
+
+
+## EmailTemplates
+client.EmailTemplates.CreateAsync (CreateEmailTemplateRequestContent { ... }) -> WithRawResponseTask<CreateEmailTemplateResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create an email template.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.EmailTemplates.CreateAsync(
+ new CreateEmailTemplateRequestContent { Template = EmailTemplateNameEnum.VerifyEmail }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateEmailTemplateRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.EmailTemplates.GetAsync (templateName) -> WithRawResponseTask<GetEmailTemplateResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve an email template by pre-defined name. These names are `verify_email`, `verify_email_by_code`, `reset_email`, `reset_email_by_code`, `welcome_email`, `blocked_account`, `stolen_credentials`, `enrollment_email`, `mfa_oob_code`, `user_invitation`, and `async_approval`. The names `change_password`, and `password_reset` are also supported for legacy scenarios.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.EmailTemplates.GetAsync(EmailTemplateNameEnum.VerifyEmail);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**templateName:** `EmailTemplateNameEnum` — Template name. Can be `verify_email`, `verify_email_by_code`, `reset_email`, `reset_email_by_code`, `welcome_email`, `blocked_account`, `stolen_credentials`, `enrollment_email`, `mfa_oob_code`, `user_invitation`, `async_approval`, `change_password` (legacy), or `password_reset` (legacy).
+
+
+
+
+
+
+
+
+
+
+
+client.EmailTemplates.SetAsync (templateName, SetEmailTemplateRequestContent { ... }) -> WithRawResponseTask<SetEmailTemplateResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update an email template.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.EmailTemplates.SetAsync(
+ EmailTemplateNameEnum.VerifyEmail,
+ new SetEmailTemplateRequestContent { Template = EmailTemplateNameEnum.VerifyEmail }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**templateName:** `EmailTemplateNameEnum` — Template name. Can be `verify_email`, `verify_email_by_code`, `reset_email`, `reset_email_by_code`, `welcome_email`, `blocked_account`, `stolen_credentials`, `enrollment_email`, `mfa_oob_code`, `user_invitation`, `async_approval`, `change_password` (legacy), or `password_reset` (legacy).
+
+
+
+
+
+
+
+**request:** `SetEmailTemplateRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.EmailTemplates.UpdateAsync (templateName, UpdateEmailTemplateRequestContent { ... }) -> WithRawResponseTask<UpdateEmailTemplateResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Modify an email template.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.EmailTemplates.UpdateAsync(
+ EmailTemplateNameEnum.VerifyEmail,
+ new UpdateEmailTemplateRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**templateName:** `EmailTemplateNameEnum` — Template name. Can be `verify_email`, `verify_email_by_code`, `reset_email`, `reset_email_by_code`, `welcome_email`, `blocked_account`, `stolen_credentials`, `enrollment_email`, `mfa_oob_code`, `user_invitation`, `async_approval`, `change_password` (legacy), or `password_reset` (legacy).
+
+
+
+
+
+
+
+**request:** `UpdateEmailTemplateRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## EventStreams
+client.EventStreams.ListAsync (ListEventStreamsRequestParameters { ... }) -> WithRawResponseTask<IEnumerable<EventStreamResponseContent>>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.EventStreams.ListAsync(
+ new ListEventStreamsRequestParameters { From = "from", Take = 1 }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListEventStreamsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.EventStreams.CreateAsync (EventStreamsCreateRequest { ... }) -> WithRawResponseTask<CreateEventStreamResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.EventStreams.CreateAsync(
+ new CreateEventStreamWebHookRequestContent
+ {
+ Destination = new EventStreamWebhookDestination
+ {
+ Type = "webhook",
+ Configuration = new EventStreamWebhookConfiguration
+ {
+ WebhookEndpoint = "webhook_endpoint",
+ WebhookAuthorization = new EventStreamWebhookBasicAuth
+ {
+ Method = "basic",
+ Username = "username",
+ },
+ },
+ },
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `EventStreamsCreateRequest`
+
+
+
+
+
+
+
+
+
+
+
+client.EventStreams.GetAsync (id) -> WithRawResponseTask<GetEventStreamResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.EventStreams.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Unique identifier for the event stream.
+
+
+
+
+
+
+
+
+
+
+
+client.EventStreams.DeleteAsync (id)
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.EventStreams.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Unique identifier for the event stream.
+
+
+
+
+
+
+
+
+
+
+
+client.EventStreams.UpdateAsync (id, UpdateEventStreamRequestContent { ... }) -> WithRawResponseTask<UpdateEventStreamResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.EventStreams.UpdateAsync("id", new UpdateEventStreamRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Unique identifier for the event stream.
+
+
+
+
+
+
+
+**request:** `UpdateEventStreamRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.EventStreams.TestAsync (id, CreateEventStreamTestEventRequestContent { ... }) -> WithRawResponseTask<CreateEventStreamTestEventResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.EventStreams.TestAsync(
+ "id",
+ new CreateEventStreamTestEventRequestContent
+ {
+ EventType = EventStreamTestEventTypeEnum.UserCreated,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Unique identifier for the event stream.
+
+
+
+
+
+
+
+**request:** `CreateEventStreamTestEventRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Flows
+client.Flows.ListAsync (FlowsListRequest { ... }) -> Pager<FlowSummary>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Flows.ListAsync(
+ new FlowsListRequest
+ {
+ Page = 1,
+ PerPage = 1,
+ IncludeTotals = true,
+ Synchronous = true,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `FlowsListRequest`
+
+
+
+
+
+
+
+
+
+
+
+client.Flows.CreateAsync (CreateFlowRequestContent { ... }) -> WithRawResponseTask<CreateFlowResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Flows.CreateAsync(new CreateFlowRequestContent { Name = "name" });
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateFlowRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Flows.GetAsync (id, GetFlowRequestParameters { ... }) -> WithRawResponseTask<GetFlowResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Flows.GetAsync("id", new GetFlowRequestParameters());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Flow identifier
+
+
+
+
+
+
+
+**request:** `GetFlowRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Flows.DeleteAsync (id)
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Flows.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Flow id
+
+
+
+
+
+
+
+
+
+
+
+client.Flows.UpdateAsync (id, UpdateFlowRequestContent { ... }) -> WithRawResponseTask<UpdateFlowResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Flows.UpdateAsync("id", new UpdateFlowRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Flow identifier
+
+
+
+
+
+
+
+**request:** `UpdateFlowRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Forms
+client.Forms.ListAsync (ListFormsRequestParameters { ... }) -> Pager<FormSummary>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Forms.ListAsync(
+ new ListFormsRequestParameters
+ {
+ Page = 1,
+ PerPage = 1,
+ IncludeTotals = true,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListFormsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Forms.CreateAsync (CreateFormRequestContent { ... }) -> WithRawResponseTask<CreateFormResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Forms.CreateAsync(new CreateFormRequestContent { Name = "name" });
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateFormRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Forms.GetAsync (id, GetFormRequestParameters { ... }) -> WithRawResponseTask<GetFormResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Forms.GetAsync("id", new GetFormRequestParameters());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The ID of the form to retrieve.
+
+
+
+
+
+
+
+**request:** `GetFormRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Forms.DeleteAsync (id)
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Forms.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The ID of the form to delete.
+
+
+
+
+
+
+
+
+
+
+
+client.Forms.UpdateAsync (id, UpdateFormRequestContent { ... }) -> WithRawResponseTask<UpdateFormResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Forms.UpdateAsync("id", new UpdateFormRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The ID of the form to update.
+
+
+
+
+
+
+
+**request:** `UpdateFormRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## UserGrants
+client.UserGrants.ListAsync (ListUserGrantsRequestParameters { ... }) -> Pager<UserGrant>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve the grants associated with your account.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.UserGrants.ListAsync(
+ new ListUserGrantsRequestParameters
+ {
+ PerPage = 1,
+ Page = 1,
+ IncludeTotals = true,
+ UserId = "user_id",
+ ClientId = "client_id",
+ Audience = "audience",
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListUserGrantsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.UserGrants.DeleteByUserIdAsync (DeleteUserGrantByUserIdRequestParameters { ... })
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete a grant associated with your account.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.UserGrants.DeleteByUserIdAsync(
+ new DeleteUserGrantByUserIdRequestParameters { UserId = "user_id" }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `DeleteUserGrantByUserIdRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.UserGrants.DeleteAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete a grant associated with your account.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.UserGrants.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the grant to delete.
+
+
+
+
+
+
+
+
+
+
+
+## Hooks
+client.Hooks.ListAsync (ListHooksRequestParameters { ... }) -> Pager<Hook>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve all hooks . Accepts a list of fields to include or exclude in the result.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Hooks.ListAsync(
+ new ListHooksRequestParameters
+ {
+ Page = 1,
+ PerPage = 1,
+ IncludeTotals = true,
+ Enabled = true,
+ Fields = "fields",
+ TriggerId = HookTriggerIdEnum.CredentialsExchange,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListHooksRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Hooks.CreateAsync (CreateHookRequestContent { ... }) -> WithRawResponseTask<CreateHookResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create a new hook.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Hooks.CreateAsync(
+ new CreateHookRequestContent
+ {
+ Name = "name",
+ Script = "script",
+ TriggerId = HookTriggerIdEnum.CredentialsExchange,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateHookRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Hooks.GetAsync (id, GetHookRequestParameters { ... }) -> WithRawResponseTask<GetHookResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve a hook by its ID. Accepts a list of fields to include in the result.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Hooks.GetAsync("id", new GetHookRequestParameters { Fields = "fields" });
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the hook to retrieve.
+
+
+
+
+
+
+
+**request:** `GetHookRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Hooks.DeleteAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete a hook.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Hooks.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the hook to delete.
+
+
+
+
+
+
+
+
+
+
+
+client.Hooks.UpdateAsync (id, UpdateHookRequestContent { ... }) -> WithRawResponseTask<UpdateHookResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update an existing hook.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Hooks.UpdateAsync("id", new UpdateHookRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the hook to update.
+
+
+
+
+
+
+
+**request:** `UpdateHookRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Jobs
+client.Jobs.GetAsync (id) -> WithRawResponseTask<GetJobResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieves a job. Useful to check its status.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Jobs.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the job.
+
+
+
+
+
+
+
+
+
+
+
+## LogStreams
+client.LogStreams.ListAsync () -> WithRawResponseTask<IEnumerable<LogStreamResponseSchema>>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details on log streams .
+Sample Response [{
+ "id": "string",
+ "name": "string",
+ "type": "eventbridge",
+ "status": "active|paused|suspended",
+ "sink": {
+ "awsAccountId": "string",
+ "awsRegion": "string",
+ "awsPartnerEventSource": "string"
+ }
+}, {
+ "id": "string",
+ "name": "string",
+ "type": "http",
+ "status": "active|paused|suspended",
+ "sink": {
+ "httpContentFormat": "JSONLINES|JSONARRAY",
+ "httpContentType": "string",
+ "httpEndpoint": "string",
+ "httpAuthorization": "string"
+ }
+},
+{
+ "id": "string",
+ "name": "string",
+ "type": "eventgrid",
+ "status": "active|paused|suspended",
+ "sink": {
+ "azureSubscriptionId": "string",
+ "azureResourceGroup": "string",
+ "azureRegion": "string",
+ "azurePartnerTopic": "string"
+ }
+},
+{
+ "id": "string",
+ "name": "string",
+ "type": "splunk",
+ "status": "active|paused|suspended",
+ "sink": {
+ "splunkDomain": "string",
+ "splunkToken": "string",
+ "splunkPort": "string",
+ "splunkSecure": "boolean"
+ }
+},
+{
+ "id": "string",
+ "name": "string",
+ "type": "sumo",
+ "status": "active|paused|suspended",
+ "sink": {
+ "sumoSourceAddress": "string",
+ }
+},
+{
+ "id": "string",
+ "name": "string",
+ "type": "datadog",
+ "status": "active|paused|suspended",
+ "sink": {
+ "datadogRegion": "string",
+ "datadogApiKey": "string"
+ }
+}]
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.LogStreams.ListAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.LogStreams.CreateAsync (CreateLogStreamRequestContent { ... }) -> WithRawResponseTask<CreateLogStreamResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create a log stream.
+Log Stream Types The type of log stream being created determines the properties required in the sink payload.
+HTTP Stream For an http Stream, the sink properties are listed in the payload below
+Request: {
+ "name": "string",
+ "type": "http",
+ "sink": {
+ "httpEndpoint": "string",
+ "httpContentType": "string",
+ "httpContentFormat": "JSONLINES|JSONARRAY",
+ "httpAuthorization": "string"
+ }
+}
+Response: {
+ "id": "string",
+ "name": "string",
+ "type": "http",
+ "status": "active",
+ "sink": {
+ "httpEndpoint": "string",
+ "httpContentType": "string",
+ "httpContentFormat": "JSONLINES|JSONARRAY",
+ "httpAuthorization": "string"
+ }
+}
+Amazon EventBridge Stream For an eventbridge Stream, the sink properties are listed in the payload below
+Request: {
+ "name": "string",
+ "type": "eventbridge",
+ "sink": {
+ "awsRegion": "string",
+ "awsAccountId": "string"
+ }
+}
+The response will include an additional field awsPartnerEventSource in the sink: {
+ "id": "string",
+ "name": "string",
+ "type": "eventbridge",
+ "status": "active",
+ "sink": {
+ "awsAccountId": "string",
+ "awsRegion": "string",
+ "awsPartnerEventSource": "string"
+ }
+}
+Azure Event Grid Stream For an Azure Event Grid Stream, the sink properties are listed in the payload below
+Request: {
+ "name": "string",
+ "type": "eventgrid",
+ "sink": {
+ "azureSubscriptionId": "string",
+ "azureResourceGroup": "string",
+ "azureRegion": "string"
+ }
+}
+Response: {
+ "id": "string",
+ "name": "string",
+ "type": "http",
+ "status": "active",
+ "sink": {
+ "azureSubscriptionId": "string",
+ "azureResourceGroup": "string",
+ "azureRegion": "string",
+ "azurePartnerTopic": "string"
+ }
+}
+Datadog Stream For a Datadog Stream, the sink properties are listed in the payload below
+Request: {
+ "name": "string",
+ "type": "datadog",
+ "sink": {
+ "datadogRegion": "string",
+ "datadogApiKey": "string"
+ }
+}
+Response: {
+ "id": "string",
+ "name": "string",
+ "type": "datadog",
+ "status": "active",
+ "sink": {
+ "datadogRegion": "string",
+ "datadogApiKey": "string"
+ }
+}
+Splunk Stream For a Splunk Stream, the sink properties are listed in the payload below
+Request: {
+ "name": "string",
+ "type": "splunk",
+ "sink": {
+ "splunkDomain": "string",
+ "splunkToken": "string",
+ "splunkPort": "string",
+ "splunkSecure": "boolean"
+ }
+}
+Response: {
+ "id": "string",
+ "name": "string",
+ "type": "splunk",
+ "status": "active",
+ "sink": {
+ "splunkDomain": "string",
+ "splunkToken": "string",
+ "splunkPort": "string",
+ "splunkSecure": "boolean"
+ }
+}
+Sumo Logic Stream For a Sumo Logic Stream, the sink properties are listed in the payload below
+Request: {
+ "name": "string",
+ "type": "sumo",
+ "sink": {
+ "sumoSourceAddress": "string",
+ }
+}
+Response: {
+ "id": "string",
+ "name": "string",
+ "type": "sumo",
+ "status": "active",
+ "sink": {
+ "sumoSourceAddress": "string",
+ }
+}
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.LogStreams.CreateAsync(
+ new CreateLogStreamHttpRequestBody
+ {
+ Type = "http",
+ Sink = new LogStreamHttpSink { HttpEndpoint = "httpEndpoint" },
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateLogStreamRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.LogStreams.GetAsync (id) -> WithRawResponseTask<GetLogStreamResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve a log stream configuration and status.
+Sample responses Amazon EventBridge Log Stream {
+ "id": "string",
+ "name": "string",
+ "type": "eventbridge",
+ "status": "active|paused|suspended",
+ "sink": {
+ "awsAccountId": "string",
+ "awsRegion": "string",
+ "awsPartnerEventSource": "string"
+ }
+} HTTP Log Stream {
+ "id": "string",
+ "name": "string",
+ "type": "http",
+ "status": "active|paused|suspended",
+ "sink": {
+ "httpContentFormat": "JSONLINES|JSONARRAY",
+ "httpContentType": "string",
+ "httpEndpoint": "string",
+ "httpAuthorization": "string"
+ }
+} Datadog Log Stream {
+ "id": "string",
+ "name": "string",
+ "type": "datadog",
+ "status": "active|paused|suspended",
+ "sink": {
+ "datadogRegion": "string",
+ "datadogApiKey": "string"
+ }
+
+}Mixpanel
+
+ Request: {
+ "name": "string",
+ "type": "mixpanel",
+ "sink": {
+ "mixpanelRegion": "string", // "us" | "eu",
+ "mixpanelProjectId": "string",
+ "mixpanelServiceAccountUsername": "string",
+ "mixpanelServiceAccountPassword": "string"
+ }
+ }
+
+
+ Response: {
+ "id": "string",
+ "name": "string",
+ "type": "mixpanel",
+ "status": "active",
+ "sink": {
+ "mixpanelRegion": "string", // "us" | "eu",
+ "mixpanelProjectId": "string",
+ "mixpanelServiceAccountUsername": "string",
+ "mixpanelServiceAccountPassword": "string" // the following is redacted on return
+ }
+ }
+
+ Segment
+
+ Request: {
+ "name": "string",
+ "type": "segment",
+ "sink": {
+ "segmentWriteKey": "string"
+ }
+ }
+
+ Response: {
+ "id": "string",
+ "name": "string",
+ "type": "segment",
+ "status": "active",
+ "sink": {
+ "segmentWriteKey": "string"
+ }
+ }
+
+Splunk Log Stream {
+ "id": "string",
+ "name": "string",
+ "type": "splunk",
+ "status": "active|paused|suspended",
+ "sink": {
+ "splunkDomain": "string",
+ "splunkToken": "string",
+ "splunkPort": "string",
+ "splunkSecure": "boolean"
+ }
+} Sumo Logic Log Stream {
+ "id": "string",
+ "name": "string",
+ "type": "sumo",
+ "status": "active|paused|suspended",
+ "sink": {
+ "sumoSourceAddress": "string",
+ }
+} Status The status of a log stream maybe any of the following:
+1. active - Stream is currently enabled.
+2. paused - Stream is currently user disabled and will not attempt log delivery.
+3. suspended - Stream is currently disabled because of errors and will not attempt log delivery.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.LogStreams.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the log stream to get
+
+
+
+
+
+
+
+
+
+
+
+client.LogStreams.DeleteAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete a log stream.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.LogStreams.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the log stream to delete
+
+
+
+
+
+
+
+
+
+
+
+client.LogStreams.UpdateAsync (id, UpdateLogStreamRequestContent { ... }) -> WithRawResponseTask<UpdateLogStreamResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update a log stream.
+Examples of how to use the PATCH endpoint. The following fields may be updated in a PATCH operation: Note: For log streams of type eventbridge and eventgrid, updating the sink is not permitted.
+Update the status of a log stream {
+ "status": "active|paused"
+}
+Update the name of a log stream {
+ "name": "string"
+}
+Update the sink properties of a stream of type http {
+ "sink": {
+ "httpEndpoint": "string",
+ "httpContentType": "string",
+ "httpContentFormat": "JSONARRAY|JSONLINES",
+ "httpAuthorization": "string"
+ }
+}
+Update the sink properties of a stream of type datadog {
+ "sink": {
+ "datadogRegion": "string",
+ "datadogApiKey": "string"
+ }
+}
+Update the sink properties of a stream of type splunk {
+ "sink": {
+ "splunkDomain": "string",
+ "splunkToken": "string",
+ "splunkPort": "string",
+ "splunkSecure": "boolean"
+ }
+}
+Update the sink properties of a stream of type sumo {
+ "sink": {
+ "sumoSourceAddress": "string"
+ }
+}
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.LogStreams.UpdateAsync("id", new UpdateLogStreamRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the log stream to get
+
+
+
+
+
+
+
+**request:** `UpdateLogStreamRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Logs
+client.Logs.ListAsync (ListLogsRequestParameters { ... }) -> Pager<Log>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve log entries that match the specified search criteria (or all log entries if no criteria specified).
+
+Set custom search criteria using the q parameter, or search from a specific log ID ("search from checkpoint" ).
+
+For more information on all possible event types, their respective acronyms, and descriptions, see Log Event Type Codes .
+
+To set custom search criteria, use the following parameters:
+
+
+ q: Search Criteria using Query String Syntax
+ page: Page index of the results to return. First page is 0.
+ per_page: Number of results per page.
+ sort: Field to use for sorting appended with `:1` for ascending and `:-1` for descending. e.g. `date:-1`
+ fields: Comma-separated list of fields to include or exclude (depending on include_fields) from the result, empty to retrieve all fields.
+ include_fields: Whether specified fields are to be included (true) or excluded (false).
+ include_totals: Return results inside an object that contains the total result count (true) or as a direct array of results (false, default). Deprecated: this field is deprecated and should be removed from use. See Search Engine V3 Breaking Changes
+
+
+For more information on the list of fields that can be used in fields and sort, see Searchable Fields .
+
+Auth0 limits the number of logs you can return by search criteria to 100 logs per request. Furthermore, you may paginate only through 1,000 search results. If you exceed this threshold, please redefine your search or use the get logs by checkpoint method .
+
+To search from a checkpoint log ID, use the following parameters:
+
+ from: Log Event ID from which to start retrieving logs. You can limit the number of logs returned using the take parameter. If you use from at the same time as q, from takes precedence and q is ignored.
+ take: Number of entries to retrieve when using the from parameter.
+
+
+Important: When fetching logs from a checkpoint log ID, any parameter other than from and take will be ignored, and date ordering is not guaranteed.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Logs.ListAsync(
+ new ListLogsRequestParameters
+ {
+ Page = 1,
+ PerPage = 1,
+ Sort = "sort",
+ Fields = "fields",
+ IncludeFields = true,
+ IncludeTotals = true,
+ Search = "search",
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListLogsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Logs.GetAsync (id) -> WithRawResponseTask<GetLogResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve an individual log event.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Logs.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — log_id of the log to retrieve.
+
+
+
+
+
+
+
+
+
+
+
+## NetworkAcls
+client.NetworkAcls.ListAsync (ListNetworkAclsRequestParameters { ... }) -> Pager<NetworkAclsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Get all access control list entries for your client.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.NetworkAcls.ListAsync(
+ new ListNetworkAclsRequestParameters
+ {
+ Page = 1,
+ PerPage = 1,
+ IncludeTotals = true,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListNetworkAclsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.NetworkAcls.CreateAsync (CreateNetworkAclRequestContent { ... })
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create a new access control list for your client.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.NetworkAcls.CreateAsync(
+ new CreateNetworkAclRequestContent
+ {
+ Description = "description",
+ Active = true,
+ Priority = 1.1,
+ Rule = new NetworkAclRule
+ {
+ Action = new NetworkAclAction(),
+ Scope = NetworkAclRuleScopeEnum.Management,
+ },
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateNetworkAclRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.NetworkAcls.GetAsync (id) -> WithRawResponseTask<GetNetworkAclsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Get a specific access control list entry for your client.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.NetworkAcls.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the access control list to retrieve.
+
+
+
+
+
+
+
+
+
+
+
+client.NetworkAcls.SetAsync (id, SetNetworkAclRequestContent { ... }) -> WithRawResponseTask<SetNetworkAclsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update existing access control list for your client.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.NetworkAcls.SetAsync(
+ "id",
+ new SetNetworkAclRequestContent
+ {
+ Description = "description",
+ Active = true,
+ Priority = 1.1,
+ Rule = new NetworkAclRule
+ {
+ Action = new NetworkAclAction(),
+ Scope = NetworkAclRuleScopeEnum.Management,
+ },
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the ACL to update.
+
+
+
+
+
+
+
+**request:** `SetNetworkAclRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.NetworkAcls.DeleteAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete existing access control list for your client.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.NetworkAcls.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the ACL to delete
+
+
+
+
+
+
+
+
+
+
+
+client.NetworkAcls.UpdateAsync (id, UpdateNetworkAclRequestContent { ... }) -> WithRawResponseTask<UpdateNetworkAclResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update existing access control list for your client.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.NetworkAcls.UpdateAsync("id", new UpdateNetworkAclRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the ACL to update.
+
+
+
+
+
+
+
+**request:** `UpdateNetworkAclRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Organizations
+client.Organizations.ListAsync (ListOrganizationsRequestParameters { ... }) -> Pager<Organization>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve detailed list of all Organizations available in your tenant. For more information, see Auth0 Organizations.
+
+This endpoint supports two types of pagination:
+
+Offset pagination
+Checkpoint pagination
+
+
+Checkpoint pagination must be used if you need to retrieve more than 1000 organizations.
+
+Checkpoint Pagination
+
+To search by checkpoint, use the following parameters:
+
+from: Optional id from which to start selection.
+take: The total number of entries to retrieve when using the from parameter. Defaults to 50.
+
+
+Note : The first time you call this endpoint using checkpoint pagination, omit the from parameter. If there are more results, a next value is included in the response. You can use this for subsequent API calls. When next is no longer included in the response, no pages are remaining.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.ListAsync(
+ new ListOrganizationsRequestParameters
+ {
+ From = "from",
+ Take = 1,
+ Sort = "sort",
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListOrganizationsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Organizations.CreateAsync (CreateOrganizationRequestContent { ... }) -> WithRawResponseTask<CreateOrganizationResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create a new Organization within your tenant. To learn more about Organization settings, behavior, and configuration options, review Create Your First Organization .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.CreateAsync(new CreateOrganizationRequestContent { Name = "name" });
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateOrganizationRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Organizations.GetByNameAsync (name) -> WithRawResponseTask<GetOrganizationByNameResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details about a single Organization specified by name.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.GetByNameAsync("name");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**name:** `string` — name of the organization to retrieve.
+
+
+
+
+
+
+
+
+
+
+
+client.Organizations.GetAsync (id) -> WithRawResponseTask<GetOrganizationResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details about a single Organization specified by ID.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the organization to retrieve.
+
+
+
+
+
+
+
+
+
+
+
+client.Organizations.DeleteAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Remove an Organization from your tenant. This action cannot be undone.
+
+Note : Members are automatically disassociated from an Organization when it is deleted. However, this action does not delete these users from your tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Organization identifier.
+
+
+
+
+
+
+
+
+
+
+
+client.Organizations.UpdateAsync (id, UpdateOrganizationRequestContent { ... }) -> WithRawResponseTask<UpdateOrganizationResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update the details of a specific Organization , such as name and display name, branding options, and metadata.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.UpdateAsync("id", new UpdateOrganizationRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the organization to update.
+
+
+
+
+
+
+
+**request:** `UpdateOrganizationRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Prompts
+client.Prompts.GetSettingsAsync () -> WithRawResponseTask<GetSettingsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details of the Universal Login configuration of your tenant. This includes the Identifier First Authentication and WebAuthn with Device Biometrics for MFA features.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Prompts.GetSettingsAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.Prompts.UpdateSettingsAsync (UpdateSettingsRequestContent { ... }) -> WithRawResponseTask<UpdateSettingsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update the Universal Login configuration of your tenant. This includes the Identifier First Authentication and WebAuthn with Device Biometrics for MFA features.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Prompts.UpdateSettingsAsync(new UpdateSettingsRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `UpdateSettingsRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## RefreshTokens
+client.RefreshTokens.GetAsync (id) -> WithRawResponseTask<GetRefreshTokenResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve refresh token information.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.RefreshTokens.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID refresh token to retrieve
+
+
+
+
+
+
+
+
+
+
+
+client.RefreshTokens.DeleteAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete a refresh token by its ID.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.RefreshTokens.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the refresh token to delete.
+
+
+
+
+
+
+
+
+
+
+
+## ResourceServers
+client.ResourceServers.ListAsync (ListResourceServerRequestParameters { ... }) -> Pager<ResourceServer>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details of all APIs associated with your tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.ResourceServers.ListAsync(
+ new ListResourceServerRequestParameters
+ {
+ Page = 1,
+ PerPage = 1,
+ IncludeTotals = true,
+ IncludeFields = true,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListResourceServerRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.ResourceServers.CreateAsync (CreateResourceServerRequestContent { ... }) -> WithRawResponseTask<CreateResourceServerResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create a new API associated with your tenant. Note that all new APIs must be registered with Auth0. For more information, read APIs .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.ResourceServers.CreateAsync(
+ new CreateResourceServerRequestContent { Identifier = "identifier" }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateResourceServerRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.ResourceServers.GetAsync (id, GetResourceServerRequestParameters { ... }) -> WithRawResponseTask<GetResourceServerResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve API details with the given ID.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.ResourceServers.GetAsync(
+ "id",
+ new GetResourceServerRequestParameters { IncludeFields = true }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID or audience of the resource server to retrieve.
+
+
+
+
+
+
+
+**request:** `GetResourceServerRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.ResourceServers.DeleteAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete an existing API by ID. For more information, read API Settings .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.ResourceServers.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID or the audience of the resource server to delete.
+
+
+
+
+
+
+
+
+
+
+
+client.ResourceServers.UpdateAsync (id, UpdateResourceServerRequestContent { ... }) -> WithRawResponseTask<UpdateResourceServerResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Change an existing API setting by resource server ID. For more information, read API Settings .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.ResourceServers.UpdateAsync("id", new UpdateResourceServerRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID or audience of the resource server to update.
+
+
+
+
+
+
+
+**request:** `UpdateResourceServerRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Roles
+client.Roles.ListAsync (ListRolesRequestParameters { ... }) -> Pager<Role>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve detailed list of user roles created in your tenant.
+
+Note : The returned list does not include standard roles available for tenant members, such as Admin or Support Access.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Roles.ListAsync(
+ new ListRolesRequestParameters
+ {
+ PerPage = 1,
+ Page = 1,
+ IncludeTotals = true,
+ NameFilter = "name_filter",
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListRolesRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Roles.CreateAsync (CreateRoleRequestContent { ... }) -> WithRawResponseTask<CreateRoleResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create a user role for Role-Based Access Control .
+
+Note : New roles are not associated with any permissions by default. To assign existing permissions to your role, review Associate Permissions with a Role. To create new permissions, review Add API Permissions.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Roles.CreateAsync(new CreateRoleRequestContent { Name = "name" });
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateRoleRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Roles.GetAsync (id) -> WithRawResponseTask<GetRoleResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details about a specific user role specified by ID.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Roles.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the role to retrieve.
+
+
+
+
+
+
+
+
+
+
+
+client.Roles.DeleteAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete a specific user role from your tenant. Once deleted, it is removed from any user who was previously assigned that role. This action cannot be undone.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Roles.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the role to delete.
+
+
+
+
+
+
+
+
+
+
+
+client.Roles.UpdateAsync (id, UpdateRoleRequestContent { ... }) -> WithRawResponseTask<UpdateRoleResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Modify the details of a specific user role specified by ID.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Roles.UpdateAsync("id", new UpdateRoleRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the role to update.
+
+
+
+
+
+
+
+**request:** `UpdateRoleRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Rules
+client.Rules.ListAsync (ListRulesRequestParameters { ... }) -> Pager<Rule>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve a filtered list of rules . Accepts a list of fields to include or exclude.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Rules.ListAsync(
+ new ListRulesRequestParameters
+ {
+ Page = 1,
+ PerPage = 1,
+ IncludeTotals = true,
+ Enabled = true,
+ Fields = "fields",
+ IncludeFields = true,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListRulesRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Rules.CreateAsync (CreateRuleRequestContent { ... }) -> WithRawResponseTask<CreateRuleResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create a new rule .
+
+Note: Changing a rule's stage of execution from the default login_success can change the rule's function signature to have user omitted.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Rules.CreateAsync(new CreateRuleRequestContent { Name = "name", Script = "script" });
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateRuleRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Rules.GetAsync (id, GetRuleRequestParameters { ... }) -> WithRawResponseTask<GetRuleResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve rule details. Accepts a list of fields to include or exclude in the result.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Rules.GetAsync(
+ "id",
+ new GetRuleRequestParameters { Fields = "fields", IncludeFields = true }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the rule to retrieve.
+
+
+
+
+
+
+
+**request:** `GetRuleRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Rules.DeleteAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete a rule.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Rules.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the rule to delete.
+
+
+
+
+
+
+
+
+
+
+
+client.Rules.UpdateAsync (id, UpdateRuleRequestContent { ... }) -> WithRawResponseTask<UpdateRuleResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update an existing rule.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Rules.UpdateAsync("id", new UpdateRuleRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the rule to retrieve.
+
+
+
+
+
+
+
+**request:** `UpdateRuleRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## RulesConfigs
+client.RulesConfigs.ListAsync () -> WithRawResponseTask<IEnumerable<RulesConfig>>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve rules config variable keys.
+
+ Note: For security, config variable values cannot be retrieved outside rule execution.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.RulesConfigs.ListAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.RulesConfigs.SetAsync (key, SetRulesConfigRequestContent { ... }) -> WithRawResponseTask<SetRulesConfigResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Sets a rules config variable.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.RulesConfigs.SetAsync("key", new SetRulesConfigRequestContent { Value = "value" });
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**key:** `string` — Key of the rules config variable to set (max length: 127 characters).
+
+
+
+
+
+
+
+**request:** `SetRulesConfigRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.RulesConfigs.DeleteAsync (key)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete a rules config variable identified by its key.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.RulesConfigs.DeleteAsync("key");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**key:** `string` — Key of the rules config variable to delete.
+
+
+
+
+
+
+
+
+
+
+
+## SelfServiceProfiles
+client.SelfServiceProfiles.ListAsync (ListSelfServiceProfilesRequestParameters { ... }) -> Pager<SelfServiceProfile>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieves self-service profiles.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.SelfServiceProfiles.ListAsync(
+ new ListSelfServiceProfilesRequestParameters
+ {
+ Page = 1,
+ PerPage = 1,
+ IncludeTotals = true,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListSelfServiceProfilesRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.SelfServiceProfiles.CreateAsync (CreateSelfServiceProfileRequestContent { ... }) -> WithRawResponseTask<CreateSelfServiceProfileResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Creates a self-service profile.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.SelfServiceProfiles.CreateAsync(
+ new CreateSelfServiceProfileRequestContent { Name = "name" }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateSelfServiceProfileRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.SelfServiceProfiles.GetAsync (id) -> WithRawResponseTask<GetSelfServiceProfileResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieves a self-service profile by Id.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.SelfServiceProfiles.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the self-service profile to retrieve
+
+
+
+
+
+
+
+
+
+
+
+client.SelfServiceProfiles.DeleteAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Deletes a self-service profile by Id.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.SelfServiceProfiles.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the self-service profile to delete
+
+
+
+
+
+
+
+
+
+
+
+client.SelfServiceProfiles.UpdateAsync (id, UpdateSelfServiceProfileRequestContent { ... }) -> WithRawResponseTask<UpdateSelfServiceProfileResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Updates a self-service profile.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.SelfServiceProfiles.UpdateAsync("id", new UpdateSelfServiceProfileRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the self-service profile to update
+
+
+
+
+
+
+
+**request:** `UpdateSelfServiceProfileRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Sessions
+client.Sessions.GetAsync (id) -> WithRawResponseTask<GetSessionResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve session information.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Sessions.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of session to retrieve
+
+
+
+
+
+
+
+
+
+
+
+client.Sessions.DeleteAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete a session by ID.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Sessions.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the session to delete.
+
+
+
+
+
+
+
+
+
+
+
+client.Sessions.UpdateAsync (id, UpdateSessionRequestContent { ... }) -> WithRawResponseTask<UpdateSessionResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update session information.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Sessions.UpdateAsync("id", new UpdateSessionRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the session to update.
+
+
+
+
+
+
+
+**request:** `UpdateSessionRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Sessions.RevokeAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Revokes a session by ID and all associated refresh tokens.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Sessions.RevokeAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the session to revoke.
+
+
+
+
+
+
+
+
+
+
+
+## Stats
+client.Stats.GetActiveUsersCountAsync () -> WithRawResponseTask<double>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve the number of active users that logged in during the last 30 days.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Stats.GetActiveUsersCountAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.Stats.GetDailyAsync (GetDailyStatsRequestParameters { ... }) -> WithRawResponseTask<IEnumerable<DailyStats>>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve the number of logins, signups and breached-password detections (subscription required) that occurred each day within a specified date range.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Stats.GetDailyAsync(new GetDailyStatsRequestParameters { From = "from", To = "to" });
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `GetDailyStatsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+## SupplementalSignals
+client.SupplementalSignals.GetAsync () -> WithRawResponseTask<GetSupplementalSignalsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Get the supplemental signals configuration for a tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.SupplementalSignals.GetAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.SupplementalSignals.PatchAsync (UpdateSupplementalSignalsRequestContent { ... }) -> WithRawResponseTask<PatchSupplementalSignalsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update the supplemental signals configuration for a tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.SupplementalSignals.PatchAsync(
+ new UpdateSupplementalSignalsRequestContent { AkamaiEnabled = true }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `UpdateSupplementalSignalsRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Tickets
+client.Tickets.VerifyEmailAsync (VerifyEmailTicketRequestContent { ... }) -> WithRawResponseTask<VerifyEmailTicketResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create an email verification ticket for a given user. An email verification ticket is a generated URL that the user can consume to verify their email address.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Tickets.VerifyEmailAsync(new VerifyEmailTicketRequestContent { UserId = "user_id" });
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `VerifyEmailTicketRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Tickets.ChangePasswordAsync (ChangePasswordTicketRequestContent { ... }) -> WithRawResponseTask<ChangePasswordTicketResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create a password change ticket for a given user. A password change ticket is a generated URL that the user can consume to start a reset password flow.
+
+Note: This endpoint does not verify the given user’s identity. If you call this endpoint within your application, you must design your application to verify the user’s identity.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Tickets.ChangePasswordAsync(new ChangePasswordTicketRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ChangePasswordTicketRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## TokenExchangeProfiles
+client.TokenExchangeProfiles.ListAsync (TokenExchangeProfilesListRequest { ... }) -> Pager<TokenExchangeProfileResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve a list of all Token Exchange Profiles available in your tenant.
+
+By using this feature, you agree to the applicable Free Trial terms in Okta’s Master Subscription Agreement . It is your responsibility to securely validate the user’s subject_token. See User Guide for more details.
+
+This endpoint supports Checkpoint pagination. To search by checkpoint, use the following parameters:
+
+from: Optional id from which to start selection.
+take: The total amount of entries to retrieve when using the from parameter. Defaults to 50.
+
+
+Note : The first time you call this endpoint using checkpoint pagination, omit the from parameter. If there are more results, a next value is included in the response. You can use this for subsequent API calls. When next is no longer included in the response, no pages are remaining.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.TokenExchangeProfiles.ListAsync(
+ new TokenExchangeProfilesListRequest { From = "from", Take = 1 }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `TokenExchangeProfilesListRequest`
+
+
+
+
+
+
+
+
+
+
+
+client.TokenExchangeProfiles.CreateAsync (CreateTokenExchangeProfileRequestContent { ... }) -> WithRawResponseTask<CreateTokenExchangeProfileResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create a new Token Exchange Profile within your tenant.
+
+By using this feature, you agree to the applicable Free Trial terms in Okta’s Master Subscription Agreement . It is your responsibility to securely validate the user’s subject_token. See User Guide for more details.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.TokenExchangeProfiles.CreateAsync(
+ new CreateTokenExchangeProfileRequestContent
+ {
+ Name = "name",
+ SubjectTokenType = "subject_token_type",
+ ActionId = "action_id",
+ Type = "custom_authentication",
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateTokenExchangeProfileRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.TokenExchangeProfiles.GetAsync (id) -> WithRawResponseTask<GetTokenExchangeProfileResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details about a single Token Exchange Profile specified by ID.
+
+By using this feature, you agree to the applicable Free Trial terms in Okta’s Master Subscription Agreement . It is your responsibility to securely validate the user’s subject_token. See User Guide for more details.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.TokenExchangeProfiles.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the Token Exchange Profile to retrieve.
+
+
+
+
+
+
+
+
+
+
+
+client.TokenExchangeProfiles.DeleteAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete a Token Exchange Profile within your tenant.
+
+By using this feature, you agree to the applicable Free Trial terms in Okta's Master Subscription Agreement . It is your responsibility to securely validate the user's subject_token. See User Guide for more details.
+
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.TokenExchangeProfiles.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the Token Exchange Profile to delete.
+
+
+
+
+
+
+
+
+
+
+
+client.TokenExchangeProfiles.UpdateAsync (id, UpdateTokenExchangeProfileRequestContent { ... })
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update a Token Exchange Profile within your tenant.
+
+By using this feature, you agree to the applicable Free Trial terms in Okta's Master Subscription Agreement . It is your responsibility to securely validate the user's subject_token. See User Guide for more details.
+
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.TokenExchangeProfiles.UpdateAsync(
+ "id",
+ new UpdateTokenExchangeProfileRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the Token Exchange Profile to update.
+
+
+
+
+
+
+
+**request:** `UpdateTokenExchangeProfileRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## UserAttributeProfiles
+client.UserAttributeProfiles.ListAsync (ListUserAttributeProfileRequestParameters { ... }) -> Pager<UserAttributeProfile>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve a list of User Attribute Profiles. This endpoint supports Checkpoint pagination.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.UserAttributeProfiles.ListAsync(
+ new ListUserAttributeProfileRequestParameters { From = "from", Take = 1 }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListUserAttributeProfileRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.UserAttributeProfiles.CreateAsync (CreateUserAttributeProfileRequestContent { ... }) -> WithRawResponseTask<CreateUserAttributeProfileResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details about a single User Attribute Profile specified by ID.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.UserAttributeProfiles.CreateAsync(
+ new CreateUserAttributeProfileRequestContent
+ {
+ Name = "name",
+ UserAttributes = new Dictionary<
+ string,
+ UserAttributeProfileUserAttributeAdditionalProperties
+ >()
+ {
+ {
+ "key",
+ new UserAttributeProfileUserAttributeAdditionalProperties
+ {
+ Description = "description",
+ Label = "label",
+ ProfileRequired = true,
+ Auth0Mapping = "auth0_mapping",
+ }
+ },
+ },
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateUserAttributeProfileRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.UserAttributeProfiles.ListTemplatesAsync () -> WithRawResponseTask<ListUserAttributeProfileTemplateResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve a list of User Attribute Profile Templates.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.UserAttributeProfiles.ListTemplatesAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.UserAttributeProfiles.GetTemplateAsync (id) -> WithRawResponseTask<GetUserAttributeProfileTemplateResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve a User Attribute Profile Template.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.UserAttributeProfiles.GetTemplateAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the user-attribute-profile-template to retrieve.
+
+
+
+
+
+
+
+
+
+
+
+client.UserAttributeProfiles.GetAsync (id) -> WithRawResponseTask<GetUserAttributeProfileResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details about a single User Attribute Profile specified by ID.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.UserAttributeProfiles.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the user-attribute-profile to retrieve.
+
+
+
+
+
+
+
+
+
+
+
+client.UserAttributeProfiles.DeleteAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete a single User Attribute Profile specified by ID.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.UserAttributeProfiles.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the user-attribute-profile to delete.
+
+
+
+
+
+
+
+
+
+
+
+client.UserAttributeProfiles.UpdateAsync (id, UpdateUserAttributeProfileRequestContent { ... }) -> WithRawResponseTask<UpdateUserAttributeProfileResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update the details of a specific User attribute profile, such as name, user_id and user_attributes.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.UserAttributeProfiles.UpdateAsync(
+ "id",
+ new UpdateUserAttributeProfileRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the user attribute profile to update.
+
+
+
+
+
+
+
+**request:** `UpdateUserAttributeProfileRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## UserBlocks
+client.UserBlocks.ListByIdentifierAsync (ListUserBlocksByIdentifierRequestParameters { ... }) -> WithRawResponseTask<ListUserBlocksByIdentifierResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details of all Brute-force Protection blocks for a user with the given identifier (username, phone number, or email).
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.UserBlocks.ListByIdentifierAsync(
+ new ListUserBlocksByIdentifierRequestParameters
+ {
+ Identifier = "identifier",
+ ConsiderBruteForceEnablement = true,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListUserBlocksByIdentifierRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.UserBlocks.DeleteByIdentifierAsync (DeleteUserBlocksByIdentifierRequestParameters { ... })
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Remove all Brute-force Protection blocks for the user with the given identifier (username, phone number, or email).
+
+Note: This endpoint does not unblock users that were blocked by a tenant administrator .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.UserBlocks.DeleteByIdentifierAsync(
+ new DeleteUserBlocksByIdentifierRequestParameters { Identifier = "identifier" }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `DeleteUserBlocksByIdentifierRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.UserBlocks.ListAsync (id, ListUserBlocksRequestParameters { ... }) -> WithRawResponseTask<ListUserBlocksResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details of all Brute-force Protection blocks for the user with the given ID.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.UserBlocks.ListAsync(
+ "id",
+ new ListUserBlocksRequestParameters { ConsiderBruteForceEnablement = true }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — user_id of the user blocks to retrieve.
+
+
+
+
+
+
+
+**request:** `ListUserBlocksRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.UserBlocks.DeleteAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Remove all Brute-force Protection blocks for the user with the given ID.
+
+Note: This endpoint does not unblock users that were blocked by a tenant administrator .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.UserBlocks.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The user_id of the user to update.
+
+
+
+
+
+
+
+
+
+
+
+## Users
+client.Users.ListAsync (ListUsersRequestParameters { ... }) -> Pager<UserResponseSchema>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details of users. It is possible to:
+
+- Specify a search criteria for users
+- Sort the users to be returned
+- Select the fields to be returned
+- Specify the number of users to retrieve per page and the page index
+
+The q query parameter can be used to get users that match the specified criteria using query string syntax.
+
+Learn more about searching for users.
+
+Read about best practices when working with the API endpoints for retrieving users.
+
+Auth0 limits the number of users you can return. If you exceed this threshold, please redefine your search, use the export job , or the User Import / Export extension.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.ListAsync(
+ new ListUsersRequestParameters
+ {
+ Page = 1,
+ PerPage = 1,
+ IncludeTotals = true,
+ Sort = "sort",
+ Connection = "connection",
+ Fields = "fields",
+ IncludeFields = true,
+ Q = "q",
+ SearchEngine = SearchEngineVersionsEnum.V1,
+ PrimaryOrder = true,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListUsersRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Users.CreateAsync (CreateUserRequestContent { ... }) -> WithRawResponseTask<CreateUserResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create a new user for a given database or passwordless connection.
+
+Note: connection is required but other parameters such as email and password are dependent upon the type of connection.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.CreateAsync(new CreateUserRequestContent { Connection = "connection" });
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateUserRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Users.ListUsersByEmailAsync (ListUsersByEmailRequestParameters { ... }) -> WithRawResponseTask<IEnumerable<UserResponseSchema>>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Find users by email. If Auth0 is the identity provider (idP), the email address associated with a user is saved in lower case, regardless of how you initially provided it.
+
+For example, if you register a user as JohnSmith@example.com, Auth0 saves the user's email as johnsmith@example.com.
+
+Therefore, when using this endpoint, make sure that you are searching for users via email addresses using the correct case.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.ListUsersByEmailAsync(
+ new ListUsersByEmailRequestParameters
+ {
+ Fields = "fields",
+ IncludeFields = true,
+ Email = "email",
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListUsersByEmailRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Users.GetAsync (id, GetUserRequestParameters { ... }) -> WithRawResponseTask<GetUserResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve user details. A list of fields to include or exclude may also be specified. For more information, see Retrieve Users with the Get Users Endpoint .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.GetAsync(
+ "id",
+ new GetUserRequestParameters { Fields = "fields", IncludeFields = true }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the user to retrieve.
+
+
+
+
+
+
+
+**request:** `GetUserRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Users.DeleteAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete a user by user ID. This action cannot be undone. For Auth0 Dashboard instructions, see Delete Users .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the user to delete.
+
+
+
+
+
+
+
+
+
+
+
+client.Users.UpdateAsync (id, UpdateUserRequestContent { ... }) -> WithRawResponseTask<UpdateUserResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update a user.
+
+These are the attributes that can be updated at the root level:
+
+
+ app_metadata
+ blocked
+ email
+ email_verified
+ family_name
+ given_name
+ name
+ nickname
+ password
+ phone_number
+ phone_verified
+ picture
+ username
+ user_metadata
+ verify_email
+
+
+Some considerations:
+
+ The properties of the new object will replace the old ones.
+ The metadata fields are an exception to this rule (user_metadata and app_metadata). These properties are merged instead of being replaced but be careful, the merge only occurs on the first level.
+ If you are updating email, email_verified, phone_number, phone_verified, username or password of a secondary identity, you need to specify the connection property too.
+ If you are updating email or phone_number you can specify, optionally, the client_id property.
+ Updating email_verified is not supported for enterprise and passwordless sms connections.
+ Updating the blocked to false does not affect the user's blocked state from an excessive amount of incorrectly provided credentials. Use the "Unblock a user" endpoint from the "User Blocks" API to change the user's state.
+ Supported attributes can be unset by supplying null as the value.
+
+
+Updating a field (non-metadata property)
+To mark the email address of a user as verified, the body to send should be:
+{ "email_verified": true }
+
+Updating a user metadata root property Let's assume that our test user has the following user_metadata:
+{ "user_metadata" : { "profileCode": 1479 } }
+
+To add the field addresses the body to send should be:
+{ "user_metadata" : { "addresses": {"work_address": "100 Industrial Way"} }}
+
+The modified object ends up with the following user_metadata property:{
+ "user_metadata": {
+ "profileCode": 1479,
+ "addresses": { "work_address": "100 Industrial Way" }
+ }
+}
+
+Updating an inner user metadata property If there's existing user metadata to which we want to add "home_address": "742 Evergreen Terrace" (using the addresses property) we should send the whole addresses object. Since this is a first-level object, the object will be merged in, but its own properties will not be. The body to send should be:
+{
+ "user_metadata": {
+ "addresses": {
+ "work_address": "100 Industrial Way",
+ "home_address": "742 Evergreen Terrace"
+ }
+ }
+}
+
+The modified object ends up with the following user_metadata property:
+{
+ "user_metadata": {
+ "profileCode": 1479,
+ "addresses": {
+ "work_address": "100 Industrial Way",
+ "home_address": "742 Evergreen Terrace"
+ }
+ }
+}
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.UpdateAsync("id", new UpdateUserRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the user to update.
+
+
+
+
+
+
+
+**request:** `UpdateUserRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Users.RegenerateRecoveryCodeAsync (id) -> WithRawResponseTask<RegenerateUsersRecoveryCodeResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Remove an existing multi-factor authentication (MFA) recovery code and generate a new one. If a user cannot access the original device or account used for MFA enrollment, they can use a recovery code to authenticate.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.RegenerateRecoveryCodeAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the user to regenerate a multi-factor authentication recovery code for.
+
+
+
+
+
+
+
+
+
+
+
+client.Users.RevokeAccessAsync (id, RevokeUserAccessRequestContent { ... })
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Revokes selected resources related to a user (sessions, refresh tokens, ...).
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.RevokeAccessAsync("id", new RevokeUserAccessRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the user.
+
+
+
+
+
+
+
+**request:** `RevokeUserAccessRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Actions Versions
+client.Actions.Versions.ListAsync (actionId, ListActionVersionsRequestParameters { ... }) -> Pager<ActionVersion>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve all of an action's versions. An action version is created whenever an action is deployed. An action version is immutable, once created.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Actions.Versions.ListAsync(
+ "actionId",
+ new ListActionVersionsRequestParameters { Page = 1, PerPage = 1 }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**actionId:** `string` — The ID of the action.
+
+
+
+
+
+
+
+**request:** `ListActionVersionsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Actions.Versions.GetAsync (actionId, id) -> WithRawResponseTask<GetActionVersionResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve a specific version of an action. An action version is created whenever an action is deployed. An action version is immutable, once created.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Actions.Versions.GetAsync("actionId", "id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**actionId:** `string` — The ID of the action.
+
+
+
+
+
+
+
+**id:** `string` — The ID of the action version.
+
+
+
+
+
+
+
+
+
+
+
+client.Actions.Versions.DeployAsync (actionId, id, Optional<DeployActionVersionRequestBodyParams?> { ... }) -> WithRawResponseTask<DeployActionVersionResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Performs the equivalent of a roll-back of an action to an earlier, specified version. Creates a new, deployed action version that is identical to the specified version. If this action is currently bound to a trigger, the system will begin executing the newly-created version immediately.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Actions.Versions.DeployAsync(
+ "actionId",
+ "id",
+ new DeployActionVersionRequestBodyParams()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**actionId:** `string` — The ID of an action.
+
+
+
+
+
+
+
+**id:** `string` — The ID of an action version.
+
+
+
+
+
+
+
+**request:** `Optional`
+
+
+
+
+
+
+
+
+
+
+
+## Actions Executions
+client.Actions.Executions.GetAsync (id) -> WithRawResponseTask<GetActionExecutionResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve information about a specific execution of a trigger. Relevant execution IDs will be included in tenant logs generated as part of that authentication flow. Executions will only be stored for 10 days after their creation.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Actions.Executions.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The ID of the execution to retrieve.
+
+
+
+
+
+
+
+
+
+
+
+## Actions Triggers
+client.Actions.Triggers.ListAsync () -> WithRawResponseTask<ListActionTriggersResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve the set of triggers currently available within actions. A trigger is an extensibility point to which actions can be bound.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Actions.Triggers.ListAsync();
+```
+
+
+
+
+
+
+
+
+
+
+## Actions Triggers Bindings
+client.Actions.Triggers.Bindings.ListAsync (triggerId, ListActionTriggerBindingsRequestParameters { ... }) -> Pager<ActionBinding>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve the actions that are bound to a trigger. Once an action is created and deployed, it must be attached (i.e. bound) to a trigger so that it will be executed as part of a flow. The list of actions returned reflects the order in which they will be executed during the appropriate flow.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Actions.Triggers.Bindings.ListAsync(
+ "triggerId",
+ new ListActionTriggerBindingsRequestParameters { Page = 1, PerPage = 1 }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**triggerId:** `string` — An actions extensibility point.
+
+
+
+
+
+
+
+**request:** `ListActionTriggerBindingsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Actions.Triggers.Bindings.UpdateManyAsync (triggerId, UpdateActionBindingsRequestContent { ... }) -> WithRawResponseTask<UpdateActionBindingsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update the actions that are bound (i.e. attached) to a trigger. Once an action is created and deployed, it must be attached (i.e. bound) to a trigger so that it will be executed as part of a flow. The order in which the actions are provided will determine the order in which they are executed.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Actions.Triggers.Bindings.UpdateManyAsync(
+ "triggerId",
+ new UpdateActionBindingsRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**triggerId:** `string` — An actions extensibility point.
+
+
+
+
+
+
+
+**request:** `UpdateActionBindingsRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Anomaly Blocks
+client.Anomaly.Blocks.CheckIpAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Check if the given IP address is blocked via the Suspicious IP Throttling due to multiple suspicious attempts.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Anomaly.Blocks.CheckIpAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — IP address to check.
+
+
+
+
+
+
+
+
+
+
+
+client.Anomaly.Blocks.UnblockIpAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Remove a block imposed by Suspicious IP Throttling for the given IP address.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Anomaly.Blocks.UnblockIpAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — IP address to unblock.
+
+
+
+
+
+
+
+
+
+
+
+## AttackProtection BotDetection
+client.AttackProtection.BotDetection.GetAsync () -> WithRawResponseTask<GetBotDetectionSettingsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Get the Bot Detection configuration of your tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.AttackProtection.BotDetection.GetAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.AttackProtection.BotDetection.UpdateAsync (UpdateBotDetectionSettingsRequestContent { ... }) -> WithRawResponseTask<UpdateBotDetectionSettingsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update the Bot Detection configuration of your tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.AttackProtection.BotDetection.UpdateAsync(
+ new UpdateBotDetectionSettingsRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `UpdateBotDetectionSettingsRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## AttackProtection BreachedPasswordDetection
+client.AttackProtection.BreachedPasswordDetection.GetAsync () -> WithRawResponseTask<GetBreachedPasswordDetectionSettingsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details of the Breached Password Detection configuration of your tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.AttackProtection.BreachedPasswordDetection.GetAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.AttackProtection.BreachedPasswordDetection.UpdateAsync (UpdateBreachedPasswordDetectionSettingsRequestContent { ... }) -> WithRawResponseTask<UpdateBreachedPasswordDetectionSettingsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update details of the Breached Password Detection configuration of your tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.AttackProtection.BreachedPasswordDetection.UpdateAsync(
+ new UpdateBreachedPasswordDetectionSettingsRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `UpdateBreachedPasswordDetectionSettingsRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## AttackProtection BruteForceProtection
+client.AttackProtection.BruteForceProtection.GetAsync () -> WithRawResponseTask<GetBruteForceSettingsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details of the Brute-force Protection configuration of your tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.AttackProtection.BruteForceProtection.GetAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.AttackProtection.BruteForceProtection.UpdateAsync (UpdateBruteForceSettingsRequestContent { ... }) -> WithRawResponseTask<UpdateBruteForceSettingsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update the Brute-force Protection configuration of your tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.AttackProtection.BruteForceProtection.UpdateAsync(
+ new UpdateBruteForceSettingsRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `UpdateBruteForceSettingsRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## AttackProtection Captcha
+client.AttackProtection.Captcha.GetAsync () -> WithRawResponseTask<GetAttackProtectionCaptchaResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Get the CAPTCHA configuration for your client.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.AttackProtection.Captcha.GetAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.AttackProtection.Captcha.UpdateAsync (UpdateAttackProtectionCaptchaRequestContent { ... }) -> WithRawResponseTask<UpdateAttackProtectionCaptchaResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update existing CAPTCHA configuration for your client.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.AttackProtection.Captcha.UpdateAsync(
+ new UpdateAttackProtectionCaptchaRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `UpdateAttackProtectionCaptchaRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## AttackProtection SuspiciousIpThrottling
+client.AttackProtection.SuspiciousIpThrottling.GetAsync () -> WithRawResponseTask<GetSuspiciousIpThrottlingSettingsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details of the Suspicious IP Throttling configuration of your tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.AttackProtection.SuspiciousIpThrottling.GetAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.AttackProtection.SuspiciousIpThrottling.UpdateAsync (UpdateSuspiciousIpThrottlingSettingsRequestContent { ... }) -> WithRawResponseTask<UpdateSuspiciousIpThrottlingSettingsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update the details of the Suspicious IP Throttling configuration of your tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.AttackProtection.SuspiciousIpThrottling.UpdateAsync(
+ new UpdateSuspiciousIpThrottlingSettingsRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `UpdateSuspiciousIpThrottlingSettingsRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Branding Templates
+client.Branding.Templates.GetUniversalLoginAsync () -> WithRawResponseTask<GetUniversalLoginTemplateResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Branding.Templates.GetUniversalLoginAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.Branding.Templates.UpdateUniversalLoginAsync (UpdateUniversalLoginTemplateRequestContent { ... })
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update the Universal Login branding template.
+
+When content-type header is set to application/json:
+
+{
+ "template": "<!DOCTYPE html>{% assign resolved_dir = dir | default: "auto" %}<html lang="{{locale}}" dir="{{resolved_dir}}"><head>{%- auth0:head -%}</head><body class="_widget-auto-layout">{%- auth0:widget -%}</body></html>"
+}
+
+
+
+ When content-type header is set to text/html:
+
+
+<!DOCTYPE html>
+{% assign resolved_dir = dir | default: "auto" %}
+<html lang="{{locale}}" dir="{{resolved_dir}}">
+ <head>
+ {%- auth0:head -%}
+ </head>
+ <body class="_widget-auto-layout">
+ {%- auth0:widget -%}
+ </body>
+</html>
+
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Branding.Templates.UpdateUniversalLoginAsync("string");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `UpdateUniversalLoginTemplateRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Branding.Templates.DeleteUniversalLoginAsync ()
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Branding.Templates.DeleteUniversalLoginAsync();
+```
+
+
+
+
+
+
+
+
+
+
+## Branding Themes
+client.Branding.Themes.CreateAsync (CreateBrandingThemeRequestContent { ... }) -> WithRawResponseTask<CreateBrandingThemeResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create branding theme.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Branding.Themes.CreateAsync(
+ new CreateBrandingThemeRequestContent
+ {
+ Borders = new BrandingThemeBorders
+ {
+ ButtonBorderRadius = 1.1,
+ ButtonBorderWeight = 1.1,
+ ButtonsStyle = BrandingThemeBordersButtonsStyleEnum.Pill,
+ InputBorderRadius = 1.1,
+ InputBorderWeight = 1.1,
+ InputsStyle = BrandingThemeBordersInputsStyleEnum.Pill,
+ ShowWidgetShadow = true,
+ WidgetBorderWeight = 1.1,
+ WidgetCornerRadius = 1.1,
+ },
+ Colors = new BrandingThemeColors
+ {
+ BodyText = "body_text",
+ Error = "error",
+ Header = "header",
+ Icons = "icons",
+ InputBackground = "input_background",
+ InputBorder = "input_border",
+ InputFilledText = "input_filled_text",
+ InputLabelsPlaceholders = "input_labels_placeholders",
+ LinksFocusedComponents = "links_focused_components",
+ PrimaryButton = "primary_button",
+ PrimaryButtonLabel = "primary_button_label",
+ SecondaryButtonBorder = "secondary_button_border",
+ SecondaryButtonLabel = "secondary_button_label",
+ Success = "success",
+ WidgetBackground = "widget_background",
+ WidgetBorder = "widget_border",
+ },
+ Fonts = new BrandingThemeFonts
+ {
+ BodyText = new BrandingThemeFontBodyText { Bold = true, Size = 1.1 },
+ ButtonsText = new BrandingThemeFontButtonsText { Bold = true, Size = 1.1 },
+ FontUrl = "font_url",
+ InputLabels = new BrandingThemeFontInputLabels { Bold = true, Size = 1.1 },
+ Links = new BrandingThemeFontLinks { Bold = true, Size = 1.1 },
+ LinksStyle = BrandingThemeFontLinksStyleEnum.Normal,
+ ReferenceTextSize = 1.1,
+ Subtitle = new BrandingThemeFontSubtitle { Bold = true, Size = 1.1 },
+ Title = new BrandingThemeFontTitle { Bold = true, Size = 1.1 },
+ },
+ PageBackground = new BrandingThemePageBackground
+ {
+ BackgroundColor = "background_color",
+ BackgroundImageUrl = "background_image_url",
+ PageLayout = BrandingThemePageBackgroundPageLayoutEnum.Center,
+ },
+ Widget = new BrandingThemeWidget
+ {
+ HeaderTextAlignment = BrandingThemeWidgetHeaderTextAlignmentEnum.Center,
+ LogoHeight = 1.1,
+ LogoPosition = BrandingThemeWidgetLogoPositionEnum.Center,
+ LogoUrl = "logo_url",
+ SocialButtonsLayout = BrandingThemeWidgetSocialButtonsLayoutEnum.Bottom,
+ },
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateBrandingThemeRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Branding.Themes.GetDefaultAsync () -> WithRawResponseTask<GetBrandingDefaultThemeResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve default branding theme.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Branding.Themes.GetDefaultAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.Branding.Themes.GetAsync (themeId) -> WithRawResponseTask<GetBrandingThemeResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve branding theme.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Branding.Themes.GetAsync("themeId");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**themeId:** `string` — The ID of the theme
+
+
+
+
+
+
+
+
+
+
+
+client.Branding.Themes.DeleteAsync (themeId)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete branding theme.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Branding.Themes.DeleteAsync("themeId");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**themeId:** `string` — The ID of the theme
+
+
+
+
+
+
+
+
+
+
+
+client.Branding.Themes.UpdateAsync (themeId, UpdateBrandingThemeRequestContent { ... }) -> WithRawResponseTask<UpdateBrandingThemeResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update branding theme.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Branding.Themes.UpdateAsync(
+ "themeId",
+ new UpdateBrandingThemeRequestContent
+ {
+ Borders = new BrandingThemeBorders
+ {
+ ButtonBorderRadius = 1.1,
+ ButtonBorderWeight = 1.1,
+ ButtonsStyle = BrandingThemeBordersButtonsStyleEnum.Pill,
+ InputBorderRadius = 1.1,
+ InputBorderWeight = 1.1,
+ InputsStyle = BrandingThemeBordersInputsStyleEnum.Pill,
+ ShowWidgetShadow = true,
+ WidgetBorderWeight = 1.1,
+ WidgetCornerRadius = 1.1,
+ },
+ Colors = new BrandingThemeColors
+ {
+ BodyText = "body_text",
+ Error = "error",
+ Header = "header",
+ Icons = "icons",
+ InputBackground = "input_background",
+ InputBorder = "input_border",
+ InputFilledText = "input_filled_text",
+ InputLabelsPlaceholders = "input_labels_placeholders",
+ LinksFocusedComponents = "links_focused_components",
+ PrimaryButton = "primary_button",
+ PrimaryButtonLabel = "primary_button_label",
+ SecondaryButtonBorder = "secondary_button_border",
+ SecondaryButtonLabel = "secondary_button_label",
+ Success = "success",
+ WidgetBackground = "widget_background",
+ WidgetBorder = "widget_border",
+ },
+ Fonts = new BrandingThemeFonts
+ {
+ BodyText = new BrandingThemeFontBodyText { Bold = true, Size = 1.1 },
+ ButtonsText = new BrandingThemeFontButtonsText { Bold = true, Size = 1.1 },
+ FontUrl = "font_url",
+ InputLabels = new BrandingThemeFontInputLabels { Bold = true, Size = 1.1 },
+ Links = new BrandingThemeFontLinks { Bold = true, Size = 1.1 },
+ LinksStyle = BrandingThemeFontLinksStyleEnum.Normal,
+ ReferenceTextSize = 1.1,
+ Subtitle = new BrandingThemeFontSubtitle { Bold = true, Size = 1.1 },
+ Title = new BrandingThemeFontTitle { Bold = true, Size = 1.1 },
+ },
+ PageBackground = new BrandingThemePageBackground
+ {
+ BackgroundColor = "background_color",
+ BackgroundImageUrl = "background_image_url",
+ PageLayout = BrandingThemePageBackgroundPageLayoutEnum.Center,
+ },
+ Widget = new BrandingThemeWidget
+ {
+ HeaderTextAlignment = BrandingThemeWidgetHeaderTextAlignmentEnum.Center,
+ LogoHeight = 1.1,
+ LogoPosition = BrandingThemeWidgetLogoPositionEnum.Center,
+ LogoUrl = "logo_url",
+ SocialButtonsLayout = BrandingThemeWidgetSocialButtonsLayoutEnum.Bottom,
+ },
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**themeId:** `string` — The ID of the theme
+
+
+
+
+
+
+
+**request:** `UpdateBrandingThemeRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Branding Phone Providers
+client.Branding.Phone.Providers.ListAsync (ListBrandingPhoneProvidersRequestParameters { ... }) -> WithRawResponseTask<ListBrandingPhoneProvidersResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve a list of phone providers details set for a Tenant. A list of fields to include or exclude may also be specified.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Branding.Phone.Providers.ListAsync(
+ new ListBrandingPhoneProvidersRequestParameters { Disabled = true }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListBrandingPhoneProvidersRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Branding.Phone.Providers.CreateAsync (CreateBrandingPhoneProviderRequestContent { ... }) -> WithRawResponseTask<CreateBrandingPhoneProviderResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create a phone provider .
+The credentials object requires different properties depending on the phone provider (which is specified using the name property).
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Branding.Phone.Providers.CreateAsync(
+ new CreateBrandingPhoneProviderRequestContent
+ {
+ Name = PhoneProviderNameEnum.Twilio,
+ Credentials = new TwilioProviderCredentials { AuthToken = "auth_token" },
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateBrandingPhoneProviderRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Branding.Phone.Providers.GetAsync (id) -> WithRawResponseTask<GetBrandingPhoneProviderResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve phone provider details. A list of fields to include or exclude may also be specified.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Branding.Phone.Providers.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string`
+
+
+
+
+
+
+
+
+
+
+
+client.Branding.Phone.Providers.DeleteAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete the configured phone provider.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Branding.Phone.Providers.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string`
+
+
+
+
+
+
+
+
+
+
+
+client.Branding.Phone.Providers.UpdateAsync (id, UpdateBrandingPhoneProviderRequestContent { ... }) -> WithRawResponseTask<UpdateBrandingPhoneProviderResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update a phone provider .
+The credentials object requires different properties depending on the phone provider (which is specified using the name property).
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Branding.Phone.Providers.UpdateAsync(
+ "id",
+ new UpdateBrandingPhoneProviderRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string`
+
+
+
+
+
+
+
+**request:** `UpdateBrandingPhoneProviderRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Branding.Phone.Providers.TestAsync (id, CreatePhoneProviderSendTestRequestContent { ... }) -> WithRawResponseTask<CreatePhoneProviderSendTestResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Branding.Phone.Providers.TestAsync(
+ "id",
+ new CreatePhoneProviderSendTestRequestContent { To = "to" }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string`
+
+
+
+
+
+
+
+**request:** `CreatePhoneProviderSendTestRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Branding Phone Templates
+client.Branding.Phone.Templates.ListAsync (ListPhoneTemplatesRequestParameters { ... }) -> WithRawResponseTask<ListPhoneTemplatesResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Branding.Phone.Templates.ListAsync(
+ new ListPhoneTemplatesRequestParameters { Disabled = true }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListPhoneTemplatesRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Branding.Phone.Templates.CreateAsync (CreatePhoneTemplateRequestContent { ... }) -> WithRawResponseTask<CreatePhoneTemplateResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Branding.Phone.Templates.CreateAsync(new CreatePhoneTemplateRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreatePhoneTemplateRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Branding.Phone.Templates.GetAsync (id) -> WithRawResponseTask<GetPhoneTemplateResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Branding.Phone.Templates.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string`
+
+
+
+
+
+
+
+
+
+
+
+client.Branding.Phone.Templates.DeleteAsync (id)
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Branding.Phone.Templates.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string`
+
+
+
+
+
+
+
+
+
+
+
+client.Branding.Phone.Templates.UpdateAsync (id, UpdatePhoneTemplateRequestContent { ... }) -> WithRawResponseTask<UpdatePhoneTemplateResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Branding.Phone.Templates.UpdateAsync("id", new UpdatePhoneTemplateRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string`
+
+
+
+
+
+
+
+**request:** `UpdatePhoneTemplateRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Branding.Phone.Templates.ResetAsync (id, object { ... }) -> WithRawResponseTask<ResetPhoneTemplateResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Branding.Phone.Templates.ResetAsync(
+ "id",
+ new Dictionary() { { "key", "value" } }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string`
+
+
+
+
+
+
+
+**request:** `object`
+
+
+
+
+
+
+
+
+
+
+
+client.Branding.Phone.Templates.TestAsync (id, CreatePhoneTemplateTestNotificationRequestContent { ... }) -> WithRawResponseTask<CreatePhoneTemplateTestNotificationResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Branding.Phone.Templates.TestAsync(
+ "id",
+ new CreatePhoneTemplateTestNotificationRequestContent { To = "to" }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string`
+
+
+
+
+
+
+
+**request:** `CreatePhoneTemplateTestNotificationRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## ClientGrants Organizations
+client.ClientGrants.Organizations.ListAsync (id, ListClientGrantOrganizationsRequestParameters { ... }) -> Pager<Organization>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.ClientGrants.Organizations.ListAsync(
+ "id",
+ new ListClientGrantOrganizationsRequestParameters { From = "from", Take = 1 }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the client grant
+
+
+
+
+
+
+
+**request:** `ListClientGrantOrganizationsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+## Clients Credentials
+client.Clients.Credentials.ListAsync (clientId) -> WithRawResponseTask<IEnumerable<ClientCredential>>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Get the details of a client credential.
+
+Important : To enable credentials to be used for a client authentication method, set the client_authentication_methods property on the client. To enable credentials to be used for JWT-Secured Authorization requests set the signed_request_object property on the client.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Clients.Credentials.ListAsync("client_id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**clientId:** `string` — ID of the client.
+
+
+
+
+
+
+
+
+
+
+
+client.Clients.Credentials.CreateAsync (clientId, PostClientCredentialRequestContent { ... }) -> WithRawResponseTask<PostClientCredentialResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create a client credential associated to your application. Credentials can be used to configure Private Key JWT and mTLS authentication methods, as well as for JWT-secured Authorization requests.
+
+Public Key Public Key credentials can be used to set up Private Key JWT client authentication and JWT-secured Authorization requests.
+
+Sample: {
+ "credential_type": "public_key",
+ "name": "string",
+ "pem": "string",
+ "alg": "RS256",
+ "parse_expiry_from_cert": false,
+ "expires_at": "2022-12-31T23:59:59Z"
+}
+Certificate (CA-signed & self-signed) Certificate credentials can be used to set up mTLS client authentication. CA-signed certificates can be configured either with a signed certificate or with just the certificate Subject DN.
+
+CA-signed Certificate Sample (pem): {
+ "credential_type": "x509_cert",
+ "name": "string",
+ "pem": "string"
+} CA-signed Certificate Sample (subject_dn): {
+ "credential_type": "cert_subject_dn",
+ "name": "string",
+ "subject_dn": "string"
+} Self-signed Certificate Sample: {
+ "credential_type": "cert_subject_dn",
+ "name": "string",
+ "pem": "string"
+}
+
+The credential will be created but not yet enabled for use until you set the corresponding properties in the client:
+
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Clients.Credentials.CreateAsync(
+ "client_id",
+ new PostClientCredentialRequestContent { CredentialType = ClientCredentialTypeEnum.PublicKey }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**clientId:** `string` — ID of the client.
+
+
+
+
+
+
+
+**request:** `PostClientCredentialRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Clients.Credentials.GetAsync (clientId, credentialId) -> WithRawResponseTask<GetClientCredentialResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Get the details of a client credential.
+
+Important : To enable credentials to be used for a client authentication method, set the client_authentication_methods property on the client. To enable credentials to be used for JWT-Secured Authorization requests set the signed_request_object property on the client.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Clients.Credentials.GetAsync("client_id", "credential_id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**clientId:** `string` — ID of the client.
+
+
+
+
+
+
+
+**credentialId:** `string` — ID of the credential.
+
+
+
+
+
+
+
+
+
+
+
+client.Clients.Credentials.DeleteAsync (clientId, credentialId)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete a client credential you previously created. May be enabled or disabled. For more information, read Client Credential Flow .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Clients.Credentials.DeleteAsync("client_id", "credential_id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**clientId:** `string` — ID of the client.
+
+
+
+
+
+
+
+**credentialId:** `string` — ID of the credential to delete.
+
+
+
+
+
+
+
+
+
+
+
+client.Clients.Credentials.UpdateAsync (clientId, credentialId, PatchClientCredentialRequestContent { ... }) -> WithRawResponseTask<PatchClientCredentialResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Change a client credential you previously created. May be enabled or disabled. For more information, read Client Credential Flow .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Clients.Credentials.UpdateAsync(
+ "client_id",
+ "credential_id",
+ new PatchClientCredentialRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**clientId:** `string` — ID of the client.
+
+
+
+
+
+
+
+**credentialId:** `string` — ID of the credential.
+
+
+
+
+
+
+
+**request:** `PatchClientCredentialRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Clients Connections
+client.Clients.Connections.GetAsync (id, ConnectionsGetRequest { ... }) -> Pager<ConnectionForList>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve all connections that are enabled for the specified Application , using checkpoint pagination. A list of fields to include or exclude for each connection may also be specified.
+
+
+ This endpoint requires the read:connections scope and any one of read:clients or read:client_summary.
+
+
+ Note : The first time you call this endpoint, omit the from parameter. If there are more results, a next value is included in the response. You can use this for subsequent API calls. When next is no longer included in the response, no further results are remaining.
+
+
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Clients.Connections.GetAsync(
+ "id",
+ new ConnectionsGetRequest
+ {
+ From = "from",
+ Take = 1,
+ Fields = "fields",
+ IncludeFields = true,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the client for which to retrieve enabled connections.
+
+
+
+
+
+
+
+**request:** `ConnectionsGetRequest`
+
+
+
+
+
+
+
+
+
+
+
+## Connections Clients
+client.Connections.Clients.GetAsync (id, GetConnectionEnabledClientsRequestParameters { ... }) -> Pager<ConnectionEnabledClient>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve all clients that have the specified connection enabled.
+
+Note : The first time you call this endpoint, omit the from parameter. If there are more results, a next value is included in the response. You can use this for subsequent API calls. When next is no longer included in the response, no further results are remaining.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Connections.Clients.GetAsync(
+ "id",
+ new GetConnectionEnabledClientsRequestParameters { Take = 1, From = "from" }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the connection for which enabled clients are to be retrieved
+
+
+
+
+
+
+
+**request:** `GetConnectionEnabledClientsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Connections.Clients.UpdateAsync (id, IEnumerable<UpdateEnabledClientConnectionsRequestContentItem> { ... })
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Connections.Clients.UpdateAsync(
+ "id",
+ new List()
+ {
+ new UpdateEnabledClientConnectionsRequestContentItem
+ {
+ ClientId = "client_id",
+ Status = true,
+ },
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the connection to modify
+
+
+
+
+
+
+
+**request:** `IEnumerable`
+
+
+
+
+
+
+
+
+
+
+
+## Connections DirectoryProvisioning
+client.Connections.DirectoryProvisioning.GetAsync (id) -> WithRawResponseTask<GetDirectoryProvisioningResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve the directory provisioning configuration of a connection.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Connections.DirectoryProvisioning.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the connection to retrieve its directory provisioning configuration
+
+
+
+
+
+
+
+
+
+
+
+client.Connections.DirectoryProvisioning.CreateAsync (id, Optional<CreateDirectoryProvisioningRequestContent?> { ... }) -> WithRawResponseTask<CreateDirectoryProvisioningResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create a directory provisioning configuration for a connection.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Connections.DirectoryProvisioning.CreateAsync(
+ "id",
+ new CreateDirectoryProvisioningRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the connection to create its directory provisioning configuration
+
+
+
+
+
+
+
+**request:** `Optional`
+
+
+
+
+
+
+
+
+
+
+
+client.Connections.DirectoryProvisioning.DeleteAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete the directory provisioning configuration of a connection.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Connections.DirectoryProvisioning.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the connection to delete its directory provisioning configuration
+
+
+
+
+
+
+
+
+
+
+
+client.Connections.DirectoryProvisioning.UpdateAsync (id, Optional<UpdateDirectoryProvisioningRequestContent?> { ... }) -> WithRawResponseTask<UpdateDirectoryProvisioningResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update the directory provisioning configuration of a connection.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Connections.DirectoryProvisioning.UpdateAsync(
+ "id",
+ new UpdateDirectoryProvisioningRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the connection to create its directory provisioning configuration
+
+
+
+
+
+
+
+**request:** `Optional`
+
+
+
+
+
+
+
+
+
+
+
+client.Connections.DirectoryProvisioning.GetDefaultMappingAsync (id) -> WithRawResponseTask<GetDirectoryProvisioningDefaultMappingResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve the directory provisioning default attribute mapping of a connection.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Connections.DirectoryProvisioning.GetDefaultMappingAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the connection to retrieve its directory provisioning configuration
+
+
+
+
+
+
+
+
+
+
+
+## Connections Keys
+client.Connections.Keys.GetAsync (id) -> WithRawResponseTask<IEnumerable<ConnectionKey>>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Gets the connection keys for the Okta or OIDC connection strategy.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Connections.Keys.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the connection
+
+
+
+
+
+
+
+
+
+
+
+client.Connections.Keys.RotateAsync (id, Optional<RotateConnectionKeysRequestContent?> { ... }) -> WithRawResponseTask<RotateConnectionsKeysResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Rotates the connection keys for the Okta or OIDC connection strategies.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Connections.Keys.RotateAsync("id", new RotateConnectionKeysRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the connection
+
+
+
+
+
+
+
+**request:** `Optional`
+
+
+
+
+
+
+
+
+
+
+
+## Connections ScimConfiguration
+client.Connections.ScimConfiguration.GetAsync (id) -> WithRawResponseTask<GetScimConfigurationResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieves a scim configuration by its connectionId.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Connections.ScimConfiguration.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the connection to retrieve its SCIM configuration
+
+
+
+
+
+
+
+
+
+
+
+client.Connections.ScimConfiguration.CreateAsync (id, Optional<CreateScimConfigurationRequestContent?> { ... }) -> WithRawResponseTask<CreateScimConfigurationResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create a scim configuration for a connection.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Connections.ScimConfiguration.CreateAsync(
+ "id",
+ new CreateScimConfigurationRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the connection to create its SCIM configuration
+
+
+
+
+
+
+
+**request:** `Optional`
+
+
+
+
+
+
+
+
+
+
+
+client.Connections.ScimConfiguration.DeleteAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Deletes a scim configuration by its connectionId.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Connections.ScimConfiguration.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the connection to delete its SCIM configuration
+
+
+
+
+
+
+
+
+
+
+
+client.Connections.ScimConfiguration.UpdateAsync (id, UpdateScimConfigurationRequestContent { ... }) -> WithRawResponseTask<UpdateScimConfigurationResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update a scim configuration by its connectionId.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Connections.ScimConfiguration.UpdateAsync(
+ "id",
+ new UpdateScimConfigurationRequestContent
+ {
+ UserIdAttribute = "user_id_attribute",
+ Mapping = new List() { new ScimMappingItem() },
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the connection to update its SCIM configuration
+
+
+
+
+
+
+
+**request:** `UpdateScimConfigurationRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Connections.ScimConfiguration.GetDefaultMappingAsync (id) -> WithRawResponseTask<GetScimConfigurationDefaultMappingResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieves a scim configuration's default mapping by its connectionId.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Connections.ScimConfiguration.GetDefaultMappingAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the connection to retrieve its default SCIM mapping
+
+
+
+
+
+
+
+
+
+
+
+## Connections Users
+client.Connections.Users.DeleteByEmailAsync (id, DeleteConnectionUsersByEmailQueryParameters { ... })
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Deletes a specified connection user by its email (you cannot delete all users from specific connection). Currently, only Database Connections are supported.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Connections.Users.DeleteByEmailAsync(
+ "id",
+ new DeleteConnectionUsersByEmailQueryParameters { Email = "email" }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the connection (currently only database connections are supported)
+
+
+
+
+
+
+
+**request:** `DeleteConnectionUsersByEmailQueryParameters`
+
+
+
+
+
+
+
+
+
+
+
+## Connections DirectoryProvisioning Synchronizations
+client.Connections.DirectoryProvisioning.Synchronizations.CreateAsync (id) -> WithRawResponseTask<CreateDirectorySynchronizationResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Request an on-demand synchronization of the directory.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Connections.DirectoryProvisioning.Synchronizations.CreateAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the connection to trigger synchronization for
+
+
+
+
+
+
+
+
+
+
+
+## Connections ScimConfiguration Tokens
+client.Connections.ScimConfiguration.Tokens.GetAsync (id) -> WithRawResponseTask<IEnumerable<ScimTokenItem>>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieves all scim tokens by its connection id.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Connections.ScimConfiguration.Tokens.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the connection to retrieve its SCIM configuration
+
+
+
+
+
+
+
+
+
+
+
+client.Connections.ScimConfiguration.Tokens.CreateAsync (id, CreateScimTokenRequestContent { ... }) -> WithRawResponseTask<CreateScimTokenResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create a scim token for a scim client.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Connections.ScimConfiguration.Tokens.CreateAsync(
+ "id",
+ new CreateScimTokenRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the connection to create its SCIM token
+
+
+
+
+
+
+
+**request:** `CreateScimTokenRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Connections.ScimConfiguration.Tokens.DeleteAsync (id, tokenId)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Deletes a scim token by its connection id and tokenId.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Connections.ScimConfiguration.Tokens.DeleteAsync("id", "tokenId");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The connection id that owns the SCIM token to delete
+
+
+
+
+
+
+
+**tokenId:** `string` — The id of the scim token to delete
+
+
+
+
+
+
+
+
+
+
+
+## Emails Provider
+client.Emails.Provider.GetAsync (GetEmailProviderRequestParameters { ... }) -> WithRawResponseTask<GetEmailProviderResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details of the email provider configuration in your tenant. A list of fields to include or exclude may also be specified.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Emails.Provider.GetAsync(
+ new GetEmailProviderRequestParameters { Fields = "fields", IncludeFields = true }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `GetEmailProviderRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Emails.Provider.CreateAsync (CreateEmailProviderRequestContent { ... }) -> WithRawResponseTask<CreateEmailProviderResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create an email provider . The credentials object
+requires different properties depending on the email provider (which is specified using the name property):
+
+ mandrill requires api_key
+ sendgrid requires api_key
+
+ sparkpost requires api_key. Optionally, set region to eu to use
+ the SparkPost service hosted in Western Europe; set to null to use the SparkPost service hosted in
+ North America. eu or null are the only valid values for region.
+
+
+ mailgun requires api_key and domain. Optionally, set region to
+ eu to use the Mailgun service hosted in Europe; set to null otherwise. eu or
+ null are the only valid values for region.
+
+ ses requires accessKeyId, secretAccessKey, and region
+
+ smtp requires smtp_host, smtp_port, smtp_user, and
+ smtp_pass
+
+
+Depending on the type of provider it is possible to specify settings object with different configuration
+options, which will be used when sending an email:
+
+
+ smtp provider, settings may contain headers object.
+
+
+ When using AWS SES SMTP host, you may provide a name of configuration set in
+ X-SES-Configuration-Set header. Value must be a string.
+
+
+ When using Sparkpost host, you may provide value for
+ X-MSYS_API header. Value must be an object.
+
+
+
+
+ for ses provider, settings may contain message object, where you can provide
+ a name of configuration set in configuration_set_name property. Value must be a string.
+
+
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Emails.Provider.CreateAsync(
+ new CreateEmailProviderRequestContent
+ {
+ Name = EmailProviderNameEnum.Mailgun,
+ Credentials = new EmailProviderCredentialsSchemaZero { ApiKey = "api_key" },
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateEmailProviderRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Emails.Provider.DeleteAsync ()
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete the email provider.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Emails.Provider.DeleteAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.Emails.Provider.UpdateAsync (UpdateEmailProviderRequestContent { ... }) -> WithRawResponseTask<UpdateEmailProviderResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update an email provider . The credentials object
+requires different properties depending on the email provider (which is specified using the name property):
+
+ mandrill requires api_key
+ sendgrid requires api_key
+
+ sparkpost requires api_key. Optionally, set region to eu to use
+ the SparkPost service hosted in Western Europe; set to null to use the SparkPost service hosted in
+ North America. eu or null are the only valid values for region.
+
+
+ mailgun requires api_key and domain. Optionally, set region to
+ eu to use the Mailgun service hosted in Europe; set to null otherwise. eu or
+ null are the only valid values for region.
+
+ ses requires accessKeyId, secretAccessKey, and region
+
+ smtp requires smtp_host, smtp_port, smtp_user, and
+ smtp_pass
+
+
+Depending on the type of provider it is possible to specify settings object with different configuration
+options, which will be used when sending an email:
+
+
+ smtp provider, settings may contain headers object.
+
+
+ When using AWS SES SMTP host, you may provide a name of configuration set in
+ X-SES-Configuration-Set header. Value must be a string.
+
+
+ When using Sparkpost host, you may provide value for
+ X-MSYS_API header. Value must be an object.
+
+
+ for ses provider, settings may contain message object, where you can provide
+ a name of configuration set in configuration_set_name property. Value must be a string.
+
+
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Emails.Provider.UpdateAsync(new UpdateEmailProviderRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `UpdateEmailProviderRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## EventStreams Deliveries
+client.EventStreams.Deliveries.ListAsync (id, ListEventStreamDeliveriesRequestParameters { ... }) -> WithRawResponseTask<IEnumerable<EventStreamDelivery>>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.EventStreams.Deliveries.ListAsync(
+ "id",
+ new ListEventStreamDeliveriesRequestParameters
+ {
+ Statuses = "statuses",
+ EventTypes = "event_types",
+ DateFrom = "date_from",
+ DateTo = "date_to",
+ From = "from",
+ Take = 1,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Unique identifier for the event stream.
+
+
+
+
+
+
+
+**request:** `ListEventStreamDeliveriesRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.EventStreams.Deliveries.GetHistoryAsync (id, eventId) -> WithRawResponseTask<GetEventStreamDeliveryHistoryResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.EventStreams.Deliveries.GetHistoryAsync("id", "event_id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Unique identifier for the event stream.
+
+
+
+
+
+
+
+**eventId:** `string` — Unique identifier for the event
+
+
+
+
+
+
+
+
+
+
+
+## EventStreams Redeliveries
+client.EventStreams.Redeliveries.CreateAsync (id, CreateEventStreamRedeliveryRequestContent { ... }) -> WithRawResponseTask<CreateEventStreamRedeliveryResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.EventStreams.Redeliveries.CreateAsync(
+ "id",
+ new CreateEventStreamRedeliveryRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Unique identifier for the event stream.
+
+
+
+
+
+
+
+**request:** `CreateEventStreamRedeliveryRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.EventStreams.Redeliveries.CreateByIdAsync (id, eventId)
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.EventStreams.Redeliveries.CreateByIdAsync("id", "event_id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Unique identifier for the event stream.
+
+
+
+
+
+
+
+**eventId:** `string` — Unique identifier for the event
+
+
+
+
+
+
+
+
+
+
+
+## Flows Executions
+client.Flows.Executions.ListAsync (flowId, ExecutionsListRequest { ... }) -> Pager<FlowExecutionSummary>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Flows.Executions.ListAsync(
+ "flow_id",
+ new ExecutionsListRequest { From = "from", Take = 1 }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**flowId:** `string` — Flow id
+
+
+
+
+
+
+
+**request:** `ExecutionsListRequest`
+
+
+
+
+
+
+
+
+
+
+
+client.Flows.Executions.GetAsync (flowId, executionId, ExecutionsGetRequest { ... }) -> WithRawResponseTask<GetFlowExecutionResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Flows.Executions.GetAsync("flow_id", "execution_id", new ExecutionsGetRequest());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**flowId:** `string` — Flow id
+
+
+
+
+
+
+
+**executionId:** `string` — Flow execution id
+
+
+
+
+
+
+
+**request:** `ExecutionsGetRequest`
+
+
+
+
+
+
+
+
+
+
+
+client.Flows.Executions.DeleteAsync (flowId, executionId)
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Flows.Executions.DeleteAsync("flow_id", "execution_id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**flowId:** `string` — Flows id
+
+
+
+
+
+
+
+**executionId:** `string` — Flow execution identifier
+
+
+
+
+
+
+
+
+
+
+
+## Flows Vault Connections
+client.Flows.Vault.Connections.ListAsync (ListFlowsVaultConnectionsRequestParameters { ... }) -> Pager<FlowsVaultConnectionSummary>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Flows.Vault.Connections.ListAsync(
+ new ListFlowsVaultConnectionsRequestParameters
+ {
+ Page = 1,
+ PerPage = 1,
+ IncludeTotals = true,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListFlowsVaultConnectionsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Flows.Vault.Connections.CreateAsync (CreateFlowsVaultConnectionRequestContent { ... }) -> WithRawResponseTask<CreateFlowsVaultConnectionResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Flows.Vault.Connections.CreateAsync(
+ new CreateFlowsVaultConnectionActivecampaignApiKey
+ {
+ Name = "name",
+ AppId = "ACTIVECAMPAIGN",
+ Setup = new FlowsVaultConnectioSetupApiKeyWithBaseUrl
+ {
+ Type = "API_KEY",
+ ApiKey = "api_key",
+ BaseUrl = "base_url",
+ },
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateFlowsVaultConnectionRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Flows.Vault.Connections.GetAsync (id) -> WithRawResponseTask<GetFlowsVaultConnectionResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Flows.Vault.Connections.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Flows Vault connection ID
+
+
+
+
+
+
+
+
+
+
+
+client.Flows.Vault.Connections.DeleteAsync (id)
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Flows.Vault.Connections.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Vault connection id
+
+
+
+
+
+
+
+
+
+
+
+client.Flows.Vault.Connections.UpdateAsync (id, UpdateFlowsVaultConnectionRequestContent { ... }) -> WithRawResponseTask<UpdateFlowsVaultConnectionResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Flows.Vault.Connections.UpdateAsync(
+ "id",
+ new UpdateFlowsVaultConnectionRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Flows Vault connection ID
+
+
+
+
+
+
+
+**request:** `UpdateFlowsVaultConnectionRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Guardian Enrollments
+client.Guardian.Enrollments.CreateTicketAsync (CreateGuardianEnrollmentTicketRequestContent { ... }) -> WithRawResponseTask<CreateGuardianEnrollmentTicketResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create a multi-factor authentication (MFA) enrollment ticket , and optionally send an email with the created ticket, to a given user.
+Create a multi-factor authentication (MFA) enrollment ticket , and optionally send an email with the created ticket to a given user. Enrollment tickets can specify which factor users must enroll with or allow existing MFA users to enroll in additional factors.
+
+Note: Users cannot enroll in Email as a factor through custom enrollment tickets.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Enrollments.CreateTicketAsync(
+ new CreateGuardianEnrollmentTicketRequestContent { UserId = "user_id" }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateGuardianEnrollmentTicketRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Guardian.Enrollments.GetAsync (id) -> WithRawResponseTask<GetGuardianEnrollmentResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details, such as status and type, for a specific multi-factor authentication enrollment registered to a user account.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Enrollments.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the enrollment to be retrieve.
+
+
+
+
+
+
+
+
+
+
+
+client.Guardian.Enrollments.DeleteAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Remove a specific multi-factor authentication (MFA) enrollment from a user's account. This allows the user to re-enroll with MFA. For more information, review Reset User Multi-Factor Authentication and Recovery Codes .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Enrollments.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the enrollment to be deleted.
+
+
+
+
+
+
+
+
+
+
+
+## Guardian Factors
+client.Guardian.Factors.ListAsync () -> WithRawResponseTask<IEnumerable<GuardianFactor>>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details of all multi-factor authentication factors associated with your tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.ListAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.Guardian.Factors.SetAsync (name, SetGuardianFactorRequestContent { ... }) -> WithRawResponseTask<SetGuardianFactorResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update the status (i.e., enabled or disabled) of a specific multi-factor authentication factor.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.SetAsync(
+ GuardianFactorNameEnum.PushNotification,
+ new SetGuardianFactorRequestContent { Enabled = true }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**name:** `GuardianFactorNameEnum` — Factor name. Can be `sms`, `push-notification`, `email`, `duo` `otp` `webauthn-roaming`, `webauthn-platform`, or `recovery-code`.
+
+
+
+
+
+
+
+**request:** `SetGuardianFactorRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Guardian Policies
+client.Guardian.Policies.ListAsync () -> WithRawResponseTask<IEnumerable<MfaPolicyEnum>>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve the multi-factor authentication (MFA) policies configured for your tenant.
+
+The following policies are supported:
+
+all-applications policy prompts with MFA for all logins.
+confidence-score policy prompts with MFA only for low confidence logins.
+
+
+Note : The confidence-score policy is part of the Adaptive MFA feature . Adaptive MFA requires an add-on for the Enterprise plan; review Auth0 Pricing for more details.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Policies.ListAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.Guardian.Policies.SetAsync (IEnumerable<MfaPolicyEnum> { ... }) -> WithRawResponseTask<IEnumerable<MfaPolicyEnum>>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Set multi-factor authentication (MFA) policies for your tenant.
+
+The following policies are supported:
+
+all-applications policy prompts with MFA for all logins.
+confidence-score policy prompts with MFA only for low confidence logins.
+
+
+Note : The confidence-score policy is part of the Adaptive MFA feature . Adaptive MFA requires an add-on for the Enterprise plan; review Auth0 Pricing for more details.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Policies.SetAsync(
+ new List() { MfaPolicyEnum.AllApplications }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `IEnumerable`
+
+
+
+
+
+
+
+
+
+
+
+## Guardian Factors Phone
+client.Guardian.Factors.Phone.GetMessageTypesAsync () -> WithRawResponseTask<GetGuardianFactorPhoneMessageTypesResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve list of phone-type MFA factors (i.e., sms and voice) that are enabled for your tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.Phone.GetMessageTypesAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.Guardian.Factors.Phone.SetMessageTypesAsync (SetGuardianFactorPhoneMessageTypesRequestContent { ... }) -> WithRawResponseTask<SetGuardianFactorPhoneMessageTypesResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Replace the list of phone-type MFA factors (i.e., sms and voice) that are enabled for your tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.Phone.SetMessageTypesAsync(
+ new SetGuardianFactorPhoneMessageTypesRequestContent
+ {
+ MessageTypes = new List()
+ {
+ GuardianFactorPhoneFactorMessageTypeEnum.Sms,
+ },
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `SetGuardianFactorPhoneMessageTypesRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Guardian.Factors.Phone.GetTwilioProviderAsync () -> WithRawResponseTask<GetGuardianFactorsProviderPhoneTwilioResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve configuration details for a Twilio phone provider that has been set up in your tenant. To learn more, review Configure SMS and Voice Notifications for MFA .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.Phone.GetTwilioProviderAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.Guardian.Factors.Phone.SetTwilioProviderAsync (SetGuardianFactorsProviderPhoneTwilioRequestContent { ... }) -> WithRawResponseTask<SetGuardianFactorsProviderPhoneTwilioResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update the configuration of a Twilio phone provider that has been set up in your tenant. To learn more, review Configure SMS and Voice Notifications for MFA .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.Phone.SetTwilioProviderAsync(
+ new SetGuardianFactorsProviderPhoneTwilioRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `SetGuardianFactorsProviderPhoneTwilioRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Guardian.Factors.Phone.GetSelectedProviderAsync () -> WithRawResponseTask<GetGuardianFactorsProviderPhoneResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details of the multi-factor authentication phone provider configured for your tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.Phone.GetSelectedProviderAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.Guardian.Factors.Phone.SetProviderAsync (SetGuardianFactorsProviderPhoneRequestContent { ... }) -> WithRawResponseTask<SetGuardianFactorsProviderPhoneResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.Phone.SetProviderAsync(
+ new SetGuardianFactorsProviderPhoneRequestContent
+ {
+ Provider = GuardianFactorsProviderSmsProviderEnum.Auth0,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `SetGuardianFactorsProviderPhoneRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Guardian.Factors.Phone.GetTemplatesAsync () -> WithRawResponseTask<GetGuardianFactorPhoneTemplatesResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details of the multi-factor authentication enrollment and verification templates for phone-type factors available in your tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.Phone.GetTemplatesAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.Guardian.Factors.Phone.SetTemplatesAsync (SetGuardianFactorPhoneTemplatesRequestContent { ... }) -> WithRawResponseTask<SetGuardianFactorPhoneTemplatesResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Customize the messages sent to complete phone enrollment and verification (subscription required).
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.Phone.SetTemplatesAsync(
+ new SetGuardianFactorPhoneTemplatesRequestContent
+ {
+ EnrollmentMessage = "enrollment_message",
+ VerificationMessage = "verification_message",
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `SetGuardianFactorPhoneTemplatesRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Guardian Factors PushNotification
+client.Guardian.Factors.PushNotification.GetApnsProviderAsync () -> WithRawResponseTask<GetGuardianFactorsProviderApnsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve configuration details for the multi-factor authentication APNS provider associated with your tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.PushNotification.GetApnsProviderAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.Guardian.Factors.PushNotification.SetApnsProviderAsync (SetGuardianFactorsProviderPushNotificationApnsRequestContent { ... }) -> WithRawResponseTask<SetGuardianFactorsProviderPushNotificationApnsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Modify configuration details of the multi-factor authentication APNS provider associated with your tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.PushNotification.SetApnsProviderAsync(
+ new SetGuardianFactorsProviderPushNotificationApnsRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `SetGuardianFactorsProviderPushNotificationApnsRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Guardian.Factors.PushNotification.SetFcmProviderAsync (SetGuardianFactorsProviderPushNotificationFcmRequestContent { ... }) -> WithRawResponseTask<Dictionary<string, object?>>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Modify configuration details of the multi-factor authentication FCM provider associated with your tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.PushNotification.SetFcmProviderAsync(
+ new SetGuardianFactorsProviderPushNotificationFcmRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `SetGuardianFactorsProviderPushNotificationFcmRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Guardian.Factors.PushNotification.SetFcmv1ProviderAsync (SetGuardianFactorsProviderPushNotificationFcmv1RequestContent { ... }) -> WithRawResponseTask<Dictionary<string, object?>>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Modify configuration details of the multi-factor authentication FCMV1 provider associated with your tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.PushNotification.SetFcmv1ProviderAsync(
+ new SetGuardianFactorsProviderPushNotificationFcmv1RequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `SetGuardianFactorsProviderPushNotificationFcmv1RequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Guardian.Factors.PushNotification.GetSnsProviderAsync () -> WithRawResponseTask<GetGuardianFactorsProviderSnsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve configuration details for an AWS SNS push notification provider that has been enabled for MFA. To learn more, review Configure Push Notifications for MFA .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.PushNotification.GetSnsProviderAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.Guardian.Factors.PushNotification.SetSnsProviderAsync (SetGuardianFactorsProviderPushNotificationSnsRequestContent { ... }) -> WithRawResponseTask<SetGuardianFactorsProviderPushNotificationSnsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Configure the AWS SNS push notification provider configuration (subscription required).
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.PushNotification.SetSnsProviderAsync(
+ new SetGuardianFactorsProviderPushNotificationSnsRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `SetGuardianFactorsProviderPushNotificationSnsRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Guardian.Factors.PushNotification.UpdateSnsProviderAsync (UpdateGuardianFactorsProviderPushNotificationSnsRequestContent { ... }) -> WithRawResponseTask<UpdateGuardianFactorsProviderPushNotificationSnsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Configure the AWS SNS push notification provider configuration (subscription required).
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.PushNotification.UpdateSnsProviderAsync(
+ new UpdateGuardianFactorsProviderPushNotificationSnsRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `UpdateGuardianFactorsProviderPushNotificationSnsRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Guardian.Factors.PushNotification.GetSelectedProviderAsync () -> WithRawResponseTask<GetGuardianFactorsProviderPushNotificationResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Modify the push notification provider configured for your tenant. For more information, review Configure Push Notifications for MFA .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.PushNotification.GetSelectedProviderAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.Guardian.Factors.PushNotification.SetProviderAsync (SetGuardianFactorsProviderPushNotificationRequestContent { ... }) -> WithRawResponseTask<SetGuardianFactorsProviderPushNotificationResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Modify the push notification provider configured for your tenant. For more information, review Configure Push Notifications for MFA .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.PushNotification.SetProviderAsync(
+ new SetGuardianFactorsProviderPushNotificationRequestContent
+ {
+ Provider = GuardianFactorsProviderPushNotificationProviderDataEnum.Guardian,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `SetGuardianFactorsProviderPushNotificationRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Guardian Factors Sms
+client.Guardian.Factors.Sms.GetTwilioProviderAsync () -> WithRawResponseTask<GetGuardianFactorsProviderSmsTwilioResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve the Twilio SMS provider configuration (subscription required).
+
+ A new endpoint is available to retrieve the Twilio configuration related to phone factors (phone Twilio configuration ). It has the same payload as this one. Please use it instead.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.Sms.GetTwilioProviderAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.Guardian.Factors.Sms.SetTwilioProviderAsync (SetGuardianFactorsProviderSmsTwilioRequestContent { ... }) -> WithRawResponseTask<SetGuardianFactorsProviderSmsTwilioResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+This endpoint has been deprecated. To complete this action, use the Update Twilio phone configuration endpoint.
+
+ Previous functionality : Update the Twilio SMS provider configuration.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.Sms.SetTwilioProviderAsync(
+ new SetGuardianFactorsProviderSmsTwilioRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `SetGuardianFactorsProviderSmsTwilioRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Guardian.Factors.Sms.GetSelectedProviderAsync () -> WithRawResponseTask<GetGuardianFactorsProviderSmsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+This endpoint has been deprecated. To complete this action, use the Retrieve phone configuration endpoint instead.
+
+ Previous functionality : Retrieve details for the multi-factor authentication SMS provider configured for your tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.Sms.GetSelectedProviderAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.Guardian.Factors.Sms.SetProviderAsync (SetGuardianFactorsProviderSmsRequestContent { ... }) -> WithRawResponseTask<SetGuardianFactorsProviderSmsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+This endpoint has been deprecated. To complete this action, use the Update phone configuration endpoint instead.
+
+ Previous functionality : Update the multi-factor authentication SMS provider configuration in your tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.Sms.SetProviderAsync(
+ new SetGuardianFactorsProviderSmsRequestContent
+ {
+ Provider = GuardianFactorsProviderSmsProviderEnum.Auth0,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `SetGuardianFactorsProviderSmsRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Guardian.Factors.Sms.GetTemplatesAsync () -> WithRawResponseTask<GetGuardianFactorSmsTemplatesResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+This endpoint has been deprecated. To complete this action, use the Retrieve enrollment and verification phone templates endpoint instead.
+
+ Previous function : Retrieve details of SMS enrollment and verification templates configured for your tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.Sms.GetTemplatesAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.Guardian.Factors.Sms.SetTemplatesAsync (SetGuardianFactorSmsTemplatesRequestContent { ... }) -> WithRawResponseTask<SetGuardianFactorSmsTemplatesResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+This endpoint has been deprecated. To complete this action, use the Update enrollment and verification phone templates endpoint instead.
+
+ Previous functionality : Customize the messages sent to complete SMS enrollment and verification.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.Sms.SetTemplatesAsync(
+ new SetGuardianFactorSmsTemplatesRequestContent
+ {
+ EnrollmentMessage = "enrollment_message",
+ VerificationMessage = "verification_message",
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `SetGuardianFactorSmsTemplatesRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Guardian Factors Duo Settings
+client.Guardian.Factors.Duo.Settings.GetAsync () -> WithRawResponseTask<GetGuardianFactorDuoSettingsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieves the DUO account and factor configuration.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.Duo.Settings.GetAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.Guardian.Factors.Duo.Settings.SetAsync (SetGuardianFactorDuoSettingsRequestContent { ... }) -> WithRawResponseTask<SetGuardianFactorDuoSettingsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Set the DUO account configuration and other properties specific to this factor.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.Duo.Settings.SetAsync(
+ new SetGuardianFactorDuoSettingsRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `SetGuardianFactorDuoSettingsRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Guardian.Factors.Duo.Settings.UpdateAsync (UpdateGuardianFactorDuoSettingsRequestContent { ... }) -> WithRawResponseTask<UpdateGuardianFactorDuoSettingsResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Guardian.Factors.Duo.Settings.UpdateAsync(
+ new UpdateGuardianFactorDuoSettingsRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `UpdateGuardianFactorDuoSettingsRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Hooks Secrets
+client.Hooks.Secrets.GetAsync (id) -> WithRawResponseTask<Dictionary<string, string>>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve a hook's secrets by the ID of the hook.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Hooks.Secrets.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the hook to retrieve secrets from.
+
+
+
+
+
+
+
+
+
+
+
+client.Hooks.Secrets.CreateAsync (id, Dictionary<string, string> { ... })
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Add one or more secrets to an existing hook. Accepts an object of key-value pairs, where the key is the name of the secret. A hook can have a maximum of 20 secrets.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Hooks.Secrets.CreateAsync(
+ "id",
+ new Dictionary() { { "key", "value" } }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the hook to retrieve
+
+
+
+
+
+
+
+**request:** `Dictionary`
+
+
+
+
+
+
+
+
+
+
+
+client.Hooks.Secrets.DeleteAsync (id, IEnumerable<string> { ... })
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete one or more existing secrets for a given hook. Accepts an array of secret names to delete.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Hooks.Secrets.DeleteAsync("id", new List() { "string" });
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the hook whose secrets to delete.
+
+
+
+
+
+
+
+**request:** `IEnumerable`
+
+
+
+
+
+
+
+
+
+
+
+client.Hooks.Secrets.UpdateAsync (id, Dictionary<string, string> { ... })
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update one or more existing secrets for an existing hook. Accepts an object of key-value pairs, where the key is the name of the existing secret.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Hooks.Secrets.UpdateAsync(
+ "id",
+ new Dictionary() { { "key", "value" } }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the hook whose secrets to update.
+
+
+
+
+
+
+
+**request:** `Dictionary`
+
+
+
+
+
+
+
+
+
+
+
+## Jobs UsersExports
+client.Jobs.UsersExports.CreateAsync (CreateExportUsersRequestContent { ... }) -> WithRawResponseTask<CreateExportUsersResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Export all users to a file via a long-running job.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Jobs.UsersExports.CreateAsync(new CreateExportUsersRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateExportUsersRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Jobs UsersImports
+client.Jobs.UsersImports.CreateAsync (CreateImportUsersRequestContent { ... }) -> WithRawResponseTask<CreateImportUsersResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Import users from a formatted file into a connection via a long-running job. When importing users, with or without upsert, the `email_verified` is set to `false` when the email address is added or updated. Users must verify their email address. To avoid this behavior, set `email_verified` to `true` in the imported data.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Jobs.UsersImports.CreateAsync(
+ new CreateImportUsersRequestContent { ConnectionId = "connection_id" }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateImportUsersRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Jobs VerificationEmail
+client.Jobs.VerificationEmail.CreateAsync (CreateVerificationEmailRequestContent { ... }) -> WithRawResponseTask<CreateVerificationEmailResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Send an email to the specified user that asks them to click a link to verify their email address .
+
+Note: You must have the `Status` toggle enabled for the verification email template for the email to be sent.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Jobs.VerificationEmail.CreateAsync(
+ new CreateVerificationEmailRequestContent { UserId = "user_id" }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateVerificationEmailRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Jobs Errors
+client.Jobs.Errors.GetAsync (id) -> WithRawResponseTask<ErrorsGetResponse>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve error details of a failed job.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Jobs.Errors.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the job.
+
+
+
+
+
+
+
+
+
+
+
+## Keys CustomSigning
+client.Keys.CustomSigning.GetAsync () -> WithRawResponseTask<GetCustomSigningKeysResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Get entire jwks representation of custom signing keys.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Keys.CustomSigning.GetAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.Keys.CustomSigning.SetAsync (SetCustomSigningKeysRequestContent { ... }) -> WithRawResponseTask<SetCustomSigningKeysResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create or replace entire jwks representation of custom signing keys.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Keys.CustomSigning.SetAsync(
+ new SetCustomSigningKeysRequestContent
+ {
+ Keys = new List()
+ {
+ new CustomSigningKeyJwk { Kty = CustomSigningKeyTypeEnum.Ec },
+ },
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `SetCustomSigningKeysRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Keys.CustomSigning.DeleteAsync ()
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete entire jwks representation of custom signing keys.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Keys.CustomSigning.DeleteAsync();
+```
+
+
+
+
+
+
+
+
+
+
+## Keys Encryption
+client.Keys.Encryption.ListAsync (ListEncryptionKeysRequestParameters { ... }) -> Pager<EncryptionKey>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details of all the encryption keys associated with your tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Keys.Encryption.ListAsync(
+ new ListEncryptionKeysRequestParameters
+ {
+ Page = 1,
+ PerPage = 1,
+ IncludeTotals = true,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListEncryptionKeysRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Keys.Encryption.CreateAsync (CreateEncryptionKeyRequestContent { ... }) -> WithRawResponseTask<CreateEncryptionKeyResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create the new, pre-activated encryption key, without the key material.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Keys.Encryption.CreateAsync(
+ new CreateEncryptionKeyRequestContent { Type = CreateEncryptionKeyType.CustomerProvidedRootKey }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateEncryptionKeyRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Keys.Encryption.RekeyAsync ()
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Perform rekeying operation on the key hierarchy.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Keys.Encryption.RekeyAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.Keys.Encryption.GetAsync (kid) -> WithRawResponseTask<GetEncryptionKeyResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details of the encryption key with the given ID.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Keys.Encryption.GetAsync("kid");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**kid:** `string` — Encryption key ID
+
+
+
+
+
+
+
+
+
+
+
+client.Keys.Encryption.ImportAsync (kid, ImportEncryptionKeyRequestContent { ... }) -> WithRawResponseTask<ImportEncryptionKeyResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Import wrapped key material and activate encryption key.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Keys.Encryption.ImportAsync(
+ "kid",
+ new ImportEncryptionKeyRequestContent { WrappedKey = "wrapped_key" }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**kid:** `string` — Encryption key ID
+
+
+
+
+
+
+
+**request:** `ImportEncryptionKeyRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Keys.Encryption.DeleteAsync (kid)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete the custom provided encryption key with the given ID and move back to using native encryption key.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Keys.Encryption.DeleteAsync("kid");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**kid:** `string` — Encryption key ID
+
+
+
+
+
+
+
+
+
+
+
+client.Keys.Encryption.CreatePublicWrappingKeyAsync (kid) -> WithRawResponseTask<CreateEncryptionKeyPublicWrappingResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create the public wrapping key to wrap your own encryption key material.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Keys.Encryption.CreatePublicWrappingKeyAsync("kid");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**kid:** `string` — Encryption key ID
+
+
+
+
+
+
+
+
+
+
+
+## Keys Signing
+client.Keys.Signing.ListAsync () -> WithRawResponseTask<IEnumerable<SigningKeys>>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details of all the application signing keys associated with your tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Keys.Signing.ListAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.Keys.Signing.RotateAsync () -> WithRawResponseTask<RotateSigningKeysResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Rotate the application signing key of your tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Keys.Signing.RotateAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.Keys.Signing.GetAsync (kid) -> WithRawResponseTask<GetSigningKeysResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details of the application signing key with the given ID.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Keys.Signing.GetAsync("kid");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**kid:** `string` — Key id of the key to retrieve
+
+
+
+
+
+
+
+
+
+
+
+client.Keys.Signing.RevokeAsync (kid) -> WithRawResponseTask<RevokedSigningKeysResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Revoke the application signing key with the given ID.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Keys.Signing.RevokeAsync("kid");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**kid:** `string` — Key id of the key to revoke
+
+
+
+
+
+
+
+
+
+
+
+## Organizations ClientGrants
+client.Organizations.ClientGrants.ListAsync (id, ListOrganizationClientGrantsRequestParameters { ... }) -> Pager<OrganizationClientGrant>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.ClientGrants.ListAsync(
+ "id",
+ new ListOrganizationClientGrantsRequestParameters
+ {
+ Audience = "audience",
+ ClientId = "client_id",
+ Page = 1,
+ PerPage = 1,
+ IncludeTotals = true,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Organization identifier.
+
+
+
+
+
+
+
+**request:** `ListOrganizationClientGrantsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Organizations.ClientGrants.CreateAsync (id, AssociateOrganizationClientGrantRequestContent { ... }) -> WithRawResponseTask<AssociateOrganizationClientGrantResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.ClientGrants.CreateAsync(
+ "id",
+ new AssociateOrganizationClientGrantRequestContent { GrantId = "grant_id" }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Organization identifier.
+
+
+
+
+
+
+
+**request:** `AssociateOrganizationClientGrantRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Organizations.ClientGrants.DeleteAsync (id, grantId)
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.ClientGrants.DeleteAsync("id", "grant_id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Organization identifier.
+
+
+
+
+
+
+
+**grantId:** `string` — The Client Grant ID to remove from the organization
+
+
+
+
+
+
+
+
+
+
+
+## Organizations DiscoveryDomains
+client.Organizations.DiscoveryDomains.ListAsync (id, ListOrganizationDiscoveryDomainsRequestParameters { ... }) -> Pager<OrganizationDiscoveryDomain>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve list of all organization discovery domains associated with the specified organization.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.DiscoveryDomains.ListAsync(
+ "id",
+ new ListOrganizationDiscoveryDomainsRequestParameters { From = "from", Take = 1 }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the organization.
+
+
+
+
+
+
+
+**request:** `ListOrganizationDiscoveryDomainsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Organizations.DiscoveryDomains.CreateAsync (id, CreateOrganizationDiscoveryDomainRequestContent { ... }) -> WithRawResponseTask<CreateOrganizationDiscoveryDomainResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update the verification status for an organization discovery domain. The status field must be either pending or verified.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.DiscoveryDomains.CreateAsync(
+ "id",
+ new CreateOrganizationDiscoveryDomainRequestContent { Domain = "domain" }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the organization.
+
+
+
+
+
+
+
+**request:** `CreateOrganizationDiscoveryDomainRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Organizations.DiscoveryDomains.GetAsync (id, discoveryDomainId) -> WithRawResponseTask<GetOrganizationDiscoveryDomainResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details about a single organization discovery domain specified by ID.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.DiscoveryDomains.GetAsync("id", "discovery_domain_id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the organization.
+
+
+
+
+
+
+
+**discoveryDomainId:** `string` — ID of the discovery domain.
+
+
+
+
+
+
+
+
+
+
+
+client.Organizations.DiscoveryDomains.DeleteAsync (id, discoveryDomainId)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Remove a discovery domain from an organization. This action cannot be undone.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.DiscoveryDomains.DeleteAsync("id", "discovery_domain_id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the organization.
+
+
+
+
+
+
+
+**discoveryDomainId:** `string` — ID of the discovery domain.
+
+
+
+
+
+
+
+
+
+
+
+client.Organizations.DiscoveryDomains.UpdateAsync (id, discoveryDomainId, UpdateOrganizationDiscoveryDomainRequestContent { ... }) -> WithRawResponseTask<UpdateOrganizationDiscoveryDomainResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update the verification status for an organization discovery domain. The status field must be either pending or verified.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.DiscoveryDomains.UpdateAsync(
+ "id",
+ "discovery_domain_id",
+ new UpdateOrganizationDiscoveryDomainRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the organization.
+
+
+
+
+
+
+
+**discoveryDomainId:** `string` — ID of the discovery domain to update.
+
+
+
+
+
+
+
+**request:** `UpdateOrganizationDiscoveryDomainRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Organizations EnabledConnections
+client.Organizations.EnabledConnections.ListAsync (id, ListOrganizationConnectionsRequestParameters { ... }) -> Pager<OrganizationConnection>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details about a specific connection currently enabled for an Organization. Information returned includes details such as connection ID, name, strategy, and whether the connection automatically grants membership upon login.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.EnabledConnections.ListAsync(
+ "id",
+ new ListOrganizationConnectionsRequestParameters
+ {
+ Page = 1,
+ PerPage = 1,
+ IncludeTotals = true,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Organization identifier.
+
+
+
+
+
+
+
+**request:** `ListOrganizationConnectionsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Organizations.EnabledConnections.AddAsync (id, AddOrganizationConnectionRequestContent { ... }) -> WithRawResponseTask<AddOrganizationConnectionResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Enable a specific connection for a given Organization. To enable a connection, it must already exist within your tenant; connections cannot be created through this action.
+
+Connections represent the relationship between Auth0 and a source of users. Available types of connections include database, enterprise, and social.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.EnabledConnections.AddAsync(
+ "id",
+ new AddOrganizationConnectionRequestContent { ConnectionId = "connection_id" }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Organization identifier.
+
+
+
+
+
+
+
+**request:** `AddOrganizationConnectionRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Organizations.EnabledConnections.GetAsync (id, connectionId) -> WithRawResponseTask<GetOrganizationConnectionResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details about a specific connection currently enabled for an Organization. Information returned includes details such as connection ID, name, strategy, and whether the connection automatically grants membership upon login.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.EnabledConnections.GetAsync("id", "connectionId");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Organization identifier.
+
+
+
+
+
+
+
+**connectionId:** `string` — Connection identifier.
+
+
+
+
+
+
+
+
+
+
+
+client.Organizations.EnabledConnections.DeleteAsync (id, connectionId)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Disable a specific connection for an Organization. Once disabled, Organization members can no longer use that connection to authenticate.
+
+Note : This action does not remove the connection from your tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.EnabledConnections.DeleteAsync("id", "connectionId");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Organization identifier.
+
+
+
+
+
+
+
+**connectionId:** `string` — Connection identifier.
+
+
+
+
+
+
+
+
+
+
+
+client.Organizations.EnabledConnections.UpdateAsync (id, connectionId, UpdateOrganizationConnectionRequestContent { ... }) -> WithRawResponseTask<UpdateOrganizationConnectionResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Modify the details of a specific connection currently enabled for an Organization.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.EnabledConnections.UpdateAsync(
+ "id",
+ "connectionId",
+ new UpdateOrganizationConnectionRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Organization identifier.
+
+
+
+
+
+
+
+**connectionId:** `string` — Connection identifier.
+
+
+
+
+
+
+
+**request:** `UpdateOrganizationConnectionRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Organizations Invitations
+client.Organizations.Invitations.ListAsync (id, ListOrganizationInvitationsRequestParameters { ... }) -> Pager<OrganizationInvitation>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve a detailed list of invitations sent to users for a specific Organization. The list includes details such as inviter and invitee information, invitation URLs, and dates of creation and expiration. To learn more about Organization invitations, review Invite Organization Members .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.Invitations.ListAsync(
+ "id",
+ new ListOrganizationInvitationsRequestParameters
+ {
+ Page = 1,
+ PerPage = 1,
+ IncludeTotals = true,
+ Fields = "fields",
+ IncludeFields = true,
+ Sort = "sort",
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Organization identifier.
+
+
+
+
+
+
+
+**request:** `ListOrganizationInvitationsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Organizations.Invitations.CreateAsync (id, CreateOrganizationInvitationRequestContent { ... }) -> WithRawResponseTask<CreateOrganizationInvitationResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create a user invitation for a specific Organization. Upon creation, the listed user receives an email inviting them to join the Organization. To learn more about Organization invitations, review Invite Organization Members .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.Invitations.CreateAsync(
+ "id",
+ new CreateOrganizationInvitationRequestContent
+ {
+ Inviter = new OrganizationInvitationInviter { Name = "name" },
+ Invitee = new OrganizationInvitationInvitee { Email = "email" },
+ ClientId = "client_id",
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Organization identifier.
+
+
+
+
+
+
+
+**request:** `CreateOrganizationInvitationRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Organizations.Invitations.GetAsync (id, invitationId, GetOrganizationInvitationRequestParameters { ... }) -> WithRawResponseTask<GetOrganizationInvitationResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.Invitations.GetAsync(
+ "id",
+ "invitation_id",
+ new GetOrganizationInvitationRequestParameters { Fields = "fields", IncludeFields = true }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Organization identifier.
+
+
+
+
+
+
+
+**invitationId:** `string` — The id of the user invitation.
+
+
+
+
+
+
+
+**request:** `GetOrganizationInvitationRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Organizations.Invitations.DeleteAsync (id, invitationId)
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.Invitations.DeleteAsync("id", "invitation_id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Organization identifier.
+
+
+
+
+
+
+
+**invitationId:** `string` — The id of the user invitation.
+
+
+
+
+
+
+
+
+
+
+
+## Organizations Members
+client.Organizations.Members.ListAsync (id, ListOrganizationMembersRequestParameters { ... }) -> Pager<OrganizationMember>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+List organization members.
+This endpoint is subject to eventual consistency. New users may not be immediately included in the response and deleted users may not be immediately removed from it.
+
+
+
+ Use the fields parameter to optionally define the specific member details retrieved. If fields is left blank, all fields (except roles) are returned.
+
+
+ Member roles are not sent by default. Use fields=roles to retrieve the roles assigned to each listed member. To use this parameter, you must include the read:organization_member_roles scope in the token.
+
+
+
+This endpoint supports two types of pagination:
+
+- Offset pagination
+- Checkpoint pagination
+
+Checkpoint pagination must be used if you need to retrieve more than 1000 organization members.
+
+Checkpoint Pagination
+
+To search by checkpoint, use the following parameters: - from: Optional id from which to start selection. - take: The total amount of entries to retrieve when using the from parameter. Defaults to 50. Note: The first time you call this endpoint using Checkpoint Pagination, you should omit the from parameter. If there are more results, a next value will be included in the response. You can use this for subsequent API calls. When next is no longer included in the response, this indicates there are no more pages remaining.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.Members.ListAsync(
+ "id",
+ new ListOrganizationMembersRequestParameters
+ {
+ From = "from",
+ Take = 1,
+ Fields = "fields",
+ IncludeFields = true,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Organization identifier.
+
+
+
+
+
+
+
+**request:** `ListOrganizationMembersRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Organizations.Members.CreateAsync (id, CreateOrganizationMemberRequestContent { ... })
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Set one or more existing users as members of a specific Organization .
+
+To add a user to an Organization through this action, the user must already exist in your tenant. If a user does not yet exist, you can invite them to create an account , manually create them through the Auth0 Dashboard, or use the Management API.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.Members.CreateAsync(
+ "id",
+ new CreateOrganizationMemberRequestContent { Members = new List() { "members" } }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Organization identifier.
+
+
+
+
+
+
+
+**request:** `CreateOrganizationMemberRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Organizations.Members.DeleteAsync (id, DeleteOrganizationMembersRequestContent { ... })
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.Members.DeleteAsync(
+ "id",
+ new DeleteOrganizationMembersRequestContent { Members = new List() { "members" } }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Organization identifier.
+
+
+
+
+
+
+
+**request:** `DeleteOrganizationMembersRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Organizations Members Roles
+client.Organizations.Members.Roles.ListAsync (id, userId, ListOrganizationMemberRolesRequestParameters { ... }) -> Pager<Role>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve detailed list of roles assigned to a given user within the context of a specific Organization.
+
+Users can be members of multiple Organizations with unique roles assigned for each membership. This action only returns the roles associated with the specified Organization; any roles assigned to the user within other Organizations are not included.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.Members.Roles.ListAsync(
+ "id",
+ "user_id",
+ new ListOrganizationMemberRolesRequestParameters
+ {
+ Page = 1,
+ PerPage = 1,
+ IncludeTotals = true,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Organization identifier.
+
+
+
+
+
+
+
+**userId:** `string` — ID of the user to associate roles with.
+
+
+
+
+
+
+
+**request:** `ListOrganizationMemberRolesRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Organizations.Members.Roles.AssignAsync (id, userId, AssignOrganizationMemberRolesRequestContent { ... })
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Assign one or more roles to a user to determine their access for a specific Organization.
+
+Users can be members of multiple Organizations with unique roles assigned for each membership. This action assigns roles to a user only for the specified Organization. Roles cannot be assigned to a user across multiple Organizations in the same call.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.Members.Roles.AssignAsync(
+ "id",
+ "user_id",
+ new AssignOrganizationMemberRolesRequestContent { Roles = new List() { "roles" } }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Organization identifier.
+
+
+
+
+
+
+
+**userId:** `string` — ID of the user to associate roles with.
+
+
+
+
+
+
+
+**request:** `AssignOrganizationMemberRolesRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Organizations.Members.Roles.DeleteAsync (id, userId, DeleteOrganizationMemberRolesRequestContent { ... })
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Remove one or more Organization-specific roles from a given user.
+
+Users can be members of multiple Organizations with unique roles assigned for each membership. This action removes roles from a user in relation to the specified Organization. Roles assigned to the user within a different Organization cannot be managed in the same call.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Organizations.Members.Roles.DeleteAsync(
+ "id",
+ "user_id",
+ new DeleteOrganizationMemberRolesRequestContent { Roles = new List() { "roles" } }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Organization identifier.
+
+
+
+
+
+
+
+**userId:** `string` — User ID of the organization member to remove roles from.
+
+
+
+
+
+
+
+**request:** `DeleteOrganizationMemberRolesRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Prompts Rendering
+client.Prompts.Rendering.ListAsync (ListAculsRequestParameters { ... }) -> Pager<AculResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Get render setting configurations for all screens.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Prompts.Rendering.ListAsync(
+ new ListAculsRequestParameters
+ {
+ Fields = "fields",
+ IncludeFields = true,
+ Page = 1,
+ PerPage = 1,
+ IncludeTotals = true,
+ Prompt = "prompt",
+ Screen = "screen",
+ RenderingMode = AculRenderingModeEnum.Advanced,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListAculsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Prompts.Rendering.BulkUpdateAsync (BulkUpdateAculRequestContent { ... }) -> WithRawResponseTask<BulkUpdateAculResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Learn more about configuring render settings for advanced customization.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Prompts.Rendering.BulkUpdateAsync(
+ new BulkUpdateAculRequestContent
+ {
+ Configs = new List()
+ {
+ new AculConfigsItem
+ {
+ Prompt = PromptGroupNameEnum.Login,
+ Screen = ScreenGroupNameEnum.Login,
+ },
+ },
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `BulkUpdateAculRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Prompts.Rendering.GetAsync (prompt, screen) -> WithRawResponseTask<GetAculResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Get render settings for a screen.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Prompts.Rendering.GetAsync(PromptGroupNameEnum.Login, ScreenGroupNameEnum.Login);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**prompt:** `PromptGroupNameEnum` — Name of the prompt
+
+
+
+
+
+
+
+**screen:** `ScreenGroupNameEnum` — Name of the screen
+
+
+
+
+
+
+
+
+
+
+
+client.Prompts.Rendering.UpdateAsync (prompt, screen, UpdateAculRequestContent { ... }) -> WithRawResponseTask<UpdateAculResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Learn more about configuring render settings for advanced customization.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Prompts.Rendering.UpdateAsync(
+ PromptGroupNameEnum.Login,
+ ScreenGroupNameEnum.Login,
+ new UpdateAculRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**prompt:** `PromptGroupNameEnum` — Name of the prompt
+
+
+
+
+
+
+
+**screen:** `ScreenGroupNameEnum` — Name of the screen
+
+
+
+
+
+
+
+**request:** `UpdateAculRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Prompts CustomText
+client.Prompts.CustomText.GetAsync (prompt, language) -> WithRawResponseTask<Dictionary<string, object?>>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve custom text for a specific prompt and language.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Prompts.CustomText.GetAsync(PromptGroupNameEnum.Login, PromptLanguageEnum.Am);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**prompt:** `PromptGroupNameEnum` — Name of the prompt.
+
+
+
+
+
+
+
+**language:** `PromptLanguageEnum` — Language to update.
+
+
+
+
+
+
+
+
+
+
+
+client.Prompts.CustomText.SetAsync (prompt, language, Dictionary<string, object?> { ... })
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Set custom text for a specific prompt. Existing texts will be overwritten.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Prompts.CustomText.SetAsync(
+ PromptGroupNameEnum.Login,
+ PromptLanguageEnum.Am,
+ new Dictionary() { { "key", "value" } }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**prompt:** `PromptGroupNameEnum` — Name of the prompt.
+
+
+
+
+
+
+
+**language:** `PromptLanguageEnum` — Language to update.
+
+
+
+
+
+
+
+**request:** `Dictionary`
+
+
+
+
+
+
+
+
+
+
+
+## Prompts Partials
+client.Prompts.Partials.GetAsync (prompt) -> WithRawResponseTask<Dictionary<string, object?>>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Get template partials for a prompt
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Prompts.Partials.GetAsync(PartialGroupsEnum.Login);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**prompt:** `PartialGroupsEnum` — Name of the prompt.
+
+
+
+
+
+
+
+
+
+
+
+client.Prompts.Partials.SetAsync (prompt, Dictionary<string, object?> { ... })
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Set template partials for a prompt
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Prompts.Partials.SetAsync(
+ PartialGroupsEnum.Login,
+ new Dictionary() { { "key", "value" } }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**prompt:** `PartialGroupsEnum` — Name of the prompt.
+
+
+
+
+
+
+
+**request:** `Dictionary`
+
+
+
+
+
+
+
+
+
+
+
+## RiskAssessments Settings
+client.RiskAssessments.Settings.GetAsync () -> WithRawResponseTask<GetRiskAssessmentsSettingsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Gets the tenant settings for risk assessments
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.RiskAssessments.Settings.GetAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.RiskAssessments.Settings.UpdateAsync (UpdateRiskAssessmentsSettingsRequestContent { ... }) -> WithRawResponseTask<UpdateRiskAssessmentsSettingsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Updates the tenant settings for risk assessments
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.RiskAssessments.Settings.UpdateAsync(
+ new UpdateRiskAssessmentsSettingsRequestContent { Enabled = true }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `UpdateRiskAssessmentsSettingsRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## RiskAssessments Settings NewDevice
+client.RiskAssessments.Settings.NewDevice.GetAsync () -> WithRawResponseTask<GetRiskAssessmentsSettingsNewDeviceResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Gets the risk assessment settings for the new device assessor
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.RiskAssessments.Settings.NewDevice.GetAsync();
+```
+
+
+
+
+
+
+
+
+
+
+client.RiskAssessments.Settings.NewDevice.UpdateAsync (UpdateRiskAssessmentsSettingsNewDeviceRequestContent { ... }) -> WithRawResponseTask<UpdateRiskAssessmentsSettingsNewDeviceResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Updates the risk assessment settings for the new device assessor
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.RiskAssessments.Settings.NewDevice.UpdateAsync(
+ new UpdateRiskAssessmentsSettingsNewDeviceRequestContent { RememberFor = 1 }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `UpdateRiskAssessmentsSettingsNewDeviceRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Roles Permissions
+client.Roles.Permissions.ListAsync (id, ListRolePermissionsRequestParameters { ... }) -> Pager<PermissionsResponsePayload>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve detailed list (name, description, resource server) of permissions granted by a specified user role.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Roles.Permissions.ListAsync(
+ "id",
+ new ListRolePermissionsRequestParameters
+ {
+ PerPage = 1,
+ Page = 1,
+ IncludeTotals = true,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the role to list granted permissions.
+
+
+
+
+
+
+
+**request:** `ListRolePermissionsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Roles.Permissions.AddAsync (id, AddRolePermissionsRequestContent { ... })
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Add one or more permissions to a specified user role.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Roles.Permissions.AddAsync(
+ "id",
+ new AddRolePermissionsRequestContent
+ {
+ Permissions = new List()
+ {
+ new PermissionRequestPayload
+ {
+ ResourceServerIdentifier = "resource_server_identifier",
+ PermissionName = "permission_name",
+ },
+ },
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the role to add permissions to.
+
+
+
+
+
+
+
+**request:** `AddRolePermissionsRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Roles.Permissions.DeleteAsync (id, DeleteRolePermissionsRequestContent { ... })
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Remove one or more permissions from a specified user role.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Roles.Permissions.DeleteAsync(
+ "id",
+ new DeleteRolePermissionsRequestContent
+ {
+ Permissions = new List()
+ {
+ new PermissionRequestPayload
+ {
+ ResourceServerIdentifier = "resource_server_identifier",
+ PermissionName = "permission_name",
+ },
+ },
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the role to remove permissions from.
+
+
+
+
+
+
+
+**request:** `DeleteRolePermissionsRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Roles Users
+client.Roles.Users.ListAsync (id, ListRoleUsersRequestParameters { ... }) -> Pager<RoleUser>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve list of users associated with a specific role. For Dashboard instructions, review View Users Assigned to Roles .
+
+This endpoint supports two types of pagination:
+
+Offset pagination
+Checkpoint pagination
+
+
+Checkpoint pagination must be used if you need to retrieve more than 1000 organization members.
+
+Checkpoint Pagination
+
+To search by checkpoint, use the following parameters:
+
+from: Optional id from which to start selection.
+take: The total amount of entries to retrieve when using the from parameter. Defaults to 50.
+
+
+Note : The first time you call this endpoint using checkpoint pagination, omit the from parameter. If there are more results, a next value is included in the response. You can use this for subsequent API calls. When next is no longer included in the response, no pages are remaining.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Roles.Users.ListAsync(
+ "id",
+ new ListRoleUsersRequestParameters { From = "from", Take = 1 }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the role to retrieve a list of users associated with.
+
+
+
+
+
+
+
+**request:** `ListRoleUsersRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Roles.Users.AssignAsync (id, AssignRoleUsersRequestContent { ... })
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Assign one or more users to an existing user role. To learn more, review Role-Based Access Control .
+
+Note : New roles cannot be created through this action.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Roles.Users.AssignAsync(
+ "id",
+ new AssignRoleUsersRequestContent { Users = new List() { "users" } }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the role to assign users to.
+
+
+
+
+
+
+
+**request:** `AssignRoleUsersRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## SelfServiceProfiles CustomText
+client.SelfServiceProfiles.CustomText.ListAsync (id, language, page) -> WithRawResponseTask<Dictionary<string, string>>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieves text customizations for a given self-service profile, language and Self Service SSO Flow page.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.SelfServiceProfiles.CustomText.ListAsync("id", "en", "get-started");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the self-service profile.
+
+
+
+
+
+
+
+**language:** `string` — The language of the custom text.
+
+
+
+
+
+
+
+**page:** `string` — The page where the custom text is shown.
+
+
+
+
+
+
+
+
+
+
+
+client.SelfServiceProfiles.CustomText.SetAsync (id, language, page, Dictionary<string, string> { ... }) -> WithRawResponseTask<Dictionary<string, string>>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Updates text customizations for a given self-service profile, language and Self Service SSO Flow page.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.SelfServiceProfiles.CustomText.SetAsync(
+ "id",
+ "en",
+ "get-started",
+ new Dictionary() { { "key", "value" } }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the self-service profile.
+
+
+
+
+
+
+
+**language:** `string` — The language of the custom text.
+
+
+
+
+
+
+
+**page:** `string` — The page where the custom text is shown.
+
+
+
+
+
+
+
+**request:** `Dictionary`
+
+
+
+
+
+
+
+
+
+
+
+## SelfServiceProfiles SsoTicket
+client.SelfServiceProfiles.SsoTicket.CreateAsync (id, CreateSelfServiceProfileSsoTicketRequestContent { ... }) -> WithRawResponseTask<CreateSelfServiceProfileSsoTicketResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Creates an SSO access ticket to initiate the Self Service SSO Flow using a self-service profile.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.SelfServiceProfiles.SsoTicket.CreateAsync(
+ "id",
+ new CreateSelfServiceProfileSsoTicketRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The id of the self-service profile to retrieve
+
+
+
+
+
+
+
+**request:** `CreateSelfServiceProfileSsoTicketRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.SelfServiceProfiles.SsoTicket.RevokeAsync (profileId, id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Revokes an SSO access ticket and invalidates associated sessions. The ticket will no longer be accepted to initiate a Self-Service SSO session. If any users have already started a session through this ticket, their session will be terminated. Clients should expect a `202 Accepted` response upon successful processing, indicating that the request has been acknowledged and that the revocation is underway but may not be fully completed at the time of response. If the specified ticket does not exist, a `202 Accepted` response is also returned, signaling that no further action is required.
+Clients should treat these `202` responses as an acknowledgment that the request has been accepted and is in progress, even if the ticket was not found.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.SelfServiceProfiles.SsoTicket.RevokeAsync("profileId", "id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**profileId:** `string` — The id of the self-service profile
+
+
+
+
+
+
+
+**id:** `string` — The id of the ticket to revoke
+
+
+
+
+
+
+
+
+
+
+
+## Tenants Settings
+client.Tenants.Settings.GetAsync (GetTenantSettingsRequestParameters { ... }) -> WithRawResponseTask<GetTenantSettingsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve tenant settings. A list of fields to include or exclude may also be specified.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Tenants.Settings.GetAsync(
+ new GetTenantSettingsRequestParameters { Fields = "fields", IncludeFields = true }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `GetTenantSettingsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Tenants.Settings.UpdateAsync (UpdateTenantSettingsRequestContent { ... }) -> WithRawResponseTask<UpdateTenantSettingsResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update settings for a tenant.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Tenants.Settings.UpdateAsync(new UpdateTenantSettingsRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `UpdateTenantSettingsRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Users AuthenticationMethods
+client.Users.AuthenticationMethods.ListAsync (id, ListUserAuthenticationMethodsRequestParameters { ... }) -> Pager<UserAuthenticationMethod>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve detailed list of authentication methods associated with a specified user.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.AuthenticationMethods.ListAsync(
+ "id",
+ new ListUserAuthenticationMethodsRequestParameters
+ {
+ Page = 1,
+ PerPage = 1,
+ IncludeTotals = true,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The ID of the user in question.
+
+
+
+
+
+
+
+**request:** `ListUserAuthenticationMethodsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Users.AuthenticationMethods.CreateAsync (id, CreateUserAuthenticationMethodRequestContent { ... }) -> WithRawResponseTask<CreateUserAuthenticationMethodResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create an authentication method. Authentication methods created via this endpoint will be auto confirmed and should already have verification completed.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.AuthenticationMethods.CreateAsync(
+ "id",
+ new CreateUserAuthenticationMethodRequestContent
+ {
+ Type = CreatedUserAuthenticationMethodTypeEnum.Phone,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The ID of the user to whom the new authentication method will be assigned.
+
+
+
+
+
+
+
+**request:** `CreateUserAuthenticationMethodRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Users.AuthenticationMethods.SetAsync (id, IEnumerable<SetUserAuthenticationMethods> { ... }) -> WithRawResponseTask<IEnumerable<SetUserAuthenticationMethodResponseContent>>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Replace the specified user authentication methods with supplied values.
+
+ Note : Authentication methods supplied through this action do not iterate on existing methods. Instead, any methods passed will overwrite the user’s existing settings.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.AuthenticationMethods.SetAsync(
+ "id",
+ new List()
+ {
+ new SetUserAuthenticationMethods { Type = AuthenticationTypeEnum.Phone },
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The ID of the user in question.
+
+
+
+
+
+
+
+**request:** `IEnumerable`
+
+
+
+
+
+
+
+
+
+
+
+client.Users.AuthenticationMethods.DeleteAllAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Remove all authentication methods (i.e., enrolled MFA factors) from the specified user account. This action cannot be undone.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.AuthenticationMethods.DeleteAllAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The ID of the user in question.
+
+
+
+
+
+
+
+
+
+
+
+client.Users.AuthenticationMethods.GetAsync (id, authenticationMethodId) -> WithRawResponseTask<GetUserAuthenticationMethodResponseContent>
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.AuthenticationMethods.GetAsync("id", "authentication_method_id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The ID of the user in question.
+
+
+
+
+
+
+
+**authenticationMethodId:** `string` — The ID of the authentication methods in question.
+
+
+
+
+
+
+
+
+
+
+
+client.Users.AuthenticationMethods.DeleteAsync (id, authenticationMethodId)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Remove the authentication method with the given ID from the specified user. For more information, review Manage Authentication Methods with Management API .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.AuthenticationMethods.DeleteAsync("id", "authentication_method_id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The ID of the user in question.
+
+
+
+
+
+
+
+**authenticationMethodId:** `string` — The ID of the authentication method to delete.
+
+
+
+
+
+
+
+
+
+
+
+client.Users.AuthenticationMethods.UpdateAsync (id, authenticationMethodId, UpdateUserAuthenticationMethodRequestContent { ... }) -> WithRawResponseTask<UpdateUserAuthenticationMethodResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Modify the authentication method with the given ID from the specified user. For more information, review Manage Authentication Methods with Management API .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.AuthenticationMethods.UpdateAsync(
+ "id",
+ "authentication_method_id",
+ new UpdateUserAuthenticationMethodRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — The ID of the user in question.
+
+
+
+
+
+
+
+**authenticationMethodId:** `string` — The ID of the authentication method to update.
+
+
+
+
+
+
+
+**request:** `UpdateUserAuthenticationMethodRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Users Authenticators
+client.Users.Authenticators.DeleteAllAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Remove all authenticators registered to a given user ID, such as OTP, email, phone, and push-notification. This action cannot be undone. For more information, review Manage Authentication Methods with Management API .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.Authenticators.DeleteAllAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the user to delete.
+
+
+
+
+
+
+
+
+
+
+
+## Users ConnectedAccounts
+client.Users.ConnectedAccounts.ListAsync (id, GetUserConnectedAccountsRequestParameters { ... }) -> Pager<ConnectedAccount>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve all connected accounts associated with the user.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.ConnectedAccounts.ListAsync(
+ "id",
+ new GetUserConnectedAccountsRequestParameters { From = "from", Take = 1 }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the user to list connected accounts for.
+
+
+
+
+
+
+
+**request:** `GetUserConnectedAccountsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+## Users Enrollments
+client.Users.Enrollments.GetAsync (id) -> WithRawResponseTask<IEnumerable<UsersEnrollment>>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve the first multi-factor authentication enrollment that a specific user has confirmed.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.Enrollments.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the user to list enrollments for.
+
+
+
+
+
+
+
+
+
+
+
+## Users FederatedConnectionsTokensets
+client.Users.FederatedConnectionsTokensets.ListAsync (id) -> WithRawResponseTask<IEnumerable<FederatedConnectionTokenSet>>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+List active federated connections tokensets for a provided user
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.FederatedConnectionsTokensets.ListAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — User identifier
+
+
+
+
+
+
+
+
+
+
+
+client.Users.FederatedConnectionsTokensets.DeleteAsync (id, tokensetId)
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.FederatedConnectionsTokensets.DeleteAsync("id", "tokenset_id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — Id of the user that owns the tokenset
+
+
+
+
+
+
+
+**tokensetId:** `string` — The tokenset id
+
+
+
+
+
+
+
+
+
+
+
+## Users Identities
+client.Users.Identities.LinkAsync (id, LinkUserIdentityRequestContent { ... }) -> WithRawResponseTask<IEnumerable<UserIdentity>>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Link two user accounts together forming a primary and secondary relationship. On successful linking, the endpoint returns the new array of the primary account identities.
+
+Note: There are two ways of invoking the endpoint:
+
+
+ With the authenticated primary account's JWT in the Authorization header, which has the update:current_user_identities scope:
+
+ POST /api/v2/users/PRIMARY_ACCOUNT_USER_ID/identities
+ Authorization: "Bearer PRIMARY_ACCOUNT_JWT"
+ {
+ "link_with": "SECONDARY_ACCOUNT_JWT"
+ }
+
+ In this case, only the link_with param is required in the body, which also contains the JWT obtained upon the secondary account's authentication.
+
+ With a token generated by the API V2 containing the update:users scope:
+
+ POST /api/v2/users/PRIMARY_ACCOUNT_USER_ID/identities
+ Authorization: "Bearer YOUR_API_V2_TOKEN"
+ {
+ "provider": "SECONDARY_ACCOUNT_PROVIDER",
+ "connection_id": "SECONDARY_ACCOUNT_CONNECTION_ID(OPTIONAL)",
+ "user_id": "SECONDARY_ACCOUNT_USER_ID"
+ }
+
+ In this case you need to send provider and user_id in the body. Optionally you can also send the connection_id param which is suitable for identifying a particular database connection for the 'auth0' provider.
+
+
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.Identities.LinkAsync("id", new LinkUserIdentityRequestContent());
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the primary user account to link a second user account to.
+
+
+
+
+
+
+
+**request:** `LinkUserIdentityRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Users.Identities.DeleteAsync (id, provider, userId) -> WithRawResponseTask<IEnumerable<DeleteUserIdentityResponseContentItem>>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Unlink a specific secondary account from a target user. This action requires the ID of both the target user and the secondary account.
+
+Unlinking the secondary account removes it from the identities array of the target user and creates a new standalone profile for the secondary account. To learn more, review Unlink User Accounts .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.Identities.DeleteAsync("id", UserIdentityProviderEnum.Ad, "user_id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the primary user account.
+
+
+
+
+
+
+
+**provider:** `UserIdentityProviderEnum` — Identity provider name of the secondary linked account (e.g. `google-oauth2`).
+
+
+
+
+
+
+
+**userId:** `string` — ID of the secondary linked account (e.g. `123456789081523216417` part after the `|` in `google-oauth2|123456789081523216417`).
+
+
+
+
+
+
+
+
+
+
+
+## Users Logs
+client.Users.Logs.ListAsync (id, ListUserLogsRequestParameters { ... }) -> Pager<Log>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve log events for a specific user.
+
+Note: For more information on all possible event types, their respective acronyms and descriptions, see Log Event Type Codes .
+
+For more information on the list of fields that can be used in `sort`, see Searchable Fields .
+
+Auth0 limits the number of logs you can return by search criteria to 100 logs per request. Furthermore, you may only paginate through up to 1,000 search results. If you exceed this threshold, please redefine your search.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.Logs.ListAsync(
+ "id",
+ new ListUserLogsRequestParameters
+ {
+ Page = 1,
+ PerPage = 1,
+ Sort = "sort",
+ IncludeTotals = true,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the user of the logs to retrieve
+
+
+
+
+
+
+
+**request:** `ListUserLogsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+## Users Multifactor
+client.Users.Multifactor.InvalidateRememberBrowserAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Invalidate all remembered browsers across all authentication factors for a user.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.Multifactor.InvalidateRememberBrowserAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the user to invalidate all remembered browsers and authentication factors for.
+
+
+
+
+
+
+
+
+
+
+
+client.Users.Multifactor.DeleteProviderAsync (id, provider)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Remove a multifactor authentication configuration from a user's account. This forces the user to manually reconfigure the multi-factor provider.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.Multifactor.DeleteProviderAsync("id", UserMultifactorProviderEnum.Duo);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the user to remove a multifactor configuration from.
+
+
+
+
+
+
+
+**provider:** `UserMultifactorProviderEnum` — The multi-factor provider. Supported values 'duo' or 'google-authenticator'
+
+
+
+
+
+
+
+
+
+
+
+## Users Organizations
+client.Users.Organizations.ListAsync (id, ListUserOrganizationsRequestParameters { ... }) -> Pager<Organization>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve list of the specified user's current Organization memberships. User must be specified by user ID. For more information, review Auth0 Organizations .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.Organizations.ListAsync(
+ "id",
+ new ListUserOrganizationsRequestParameters
+ {
+ Page = 1,
+ PerPage = 1,
+ IncludeTotals = true,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the user to retrieve the organizations for.
+
+
+
+
+
+
+
+**request:** `ListUserOrganizationsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+## Users Permissions
+client.Users.Permissions.ListAsync (id, ListUserPermissionsRequestParameters { ... }) -> Pager<UserPermissionSchema>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve all permissions associated with the user.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.Permissions.ListAsync(
+ "id",
+ new ListUserPermissionsRequestParameters
+ {
+ PerPage = 1,
+ Page = 1,
+ IncludeTotals = true,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the user to retrieve the permissions for.
+
+
+
+
+
+
+
+**request:** `ListUserPermissionsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Users.Permissions.CreateAsync (id, CreateUserPermissionsRequestContent { ... })
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Assign permissions to a user.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.Permissions.CreateAsync(
+ "id",
+ new CreateUserPermissionsRequestContent
+ {
+ Permissions = new List()
+ {
+ new PermissionRequestPayload
+ {
+ ResourceServerIdentifier = "resource_server_identifier",
+ PermissionName = "permission_name",
+ },
+ },
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the user to assign permissions to.
+
+
+
+
+
+
+
+**request:** `CreateUserPermissionsRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Users.Permissions.DeleteAsync (id, DeleteUserPermissionsRequestContent { ... })
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Remove permissions from a user.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.Permissions.DeleteAsync(
+ "id",
+ new DeleteUserPermissionsRequestContent
+ {
+ Permissions = new List()
+ {
+ new PermissionRequestPayload
+ {
+ ResourceServerIdentifier = "resource_server_identifier",
+ PermissionName = "permission_name",
+ },
+ },
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the user to remove permissions from.
+
+
+
+
+
+
+
+**request:** `DeleteUserPermissionsRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Users RiskAssessments
+client.Users.RiskAssessments.ClearAsync (id, ClearAssessorsRequestContent { ... })
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Clear risk assessment assessors for a specific user
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.RiskAssessments.ClearAsync(
+ "id",
+ new ClearAssessorsRequestContent
+ {
+ Connection = "connection",
+ Assessors = new List() { "new-device" },
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the user to clear assessors for.
+
+
+
+
+
+
+
+**request:** `ClearAssessorsRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Users Roles
+client.Users.Roles.ListAsync (id, ListUserRolesRequestParameters { ... }) -> Pager<Role>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve detailed list of all user roles currently assigned to a user.
+
+Note : This action retrieves all roles assigned to a user in the context of your whole tenant. To retrieve Organization-specific roles, use the following endpoint: Get user roles assigned to an Organization member .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.Roles.ListAsync(
+ "id",
+ new ListUserRolesRequestParameters
+ {
+ PerPage = 1,
+ Page = 1,
+ IncludeTotals = true,
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the user to list roles for.
+
+
+
+
+
+
+
+**request:** `ListUserRolesRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Users.Roles.AssignAsync (id, AssignUserRolesRequestContent { ... })
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Assign one or more existing user roles to a user. For more information, review Role-Based Access Control .
+
+Note : New roles cannot be created through this action. Additionally, this action is used to assign roles to a user in the context of your whole tenant. To assign roles in the context of a specific Organization, use the following endpoint: Assign user roles to an Organization member .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.Roles.AssignAsync(
+ "id",
+ new AssignUserRolesRequestContent { Roles = new List() { "roles" } }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the user to associate roles with.
+
+
+
+
+
+
+
+**request:** `AssignUserRolesRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.Users.Roles.DeleteAsync (id, DeleteUserRolesRequestContent { ... })
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Remove one or more specified user roles assigned to a user.
+
+Note : This action removes a role from a user in the context of your whole tenant. If you want to unassign a role from a user in the context of a specific Organization, use the following endpoint: Delete user roles from an Organization member .
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.Roles.DeleteAsync(
+ "id",
+ new DeleteUserRolesRequestContent { Roles = new List() { "roles" } }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the user to remove roles from.
+
+
+
+
+
+
+
+**request:** `DeleteUserRolesRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+## Users RefreshToken
+client.Users.RefreshToken.ListAsync (userId, ListRefreshTokensRequestParameters { ... }) -> Pager<RefreshTokenResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details for a user's refresh tokens.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.RefreshToken.ListAsync(
+ "user_id",
+ new ListRefreshTokensRequestParameters { From = "from", Take = 1 }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**userId:** `string` — ID of the user to get refresh tokens for
+
+
+
+
+
+
+
+**request:** `ListRefreshTokensRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Users.RefreshToken.DeleteAsync (userId)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete all refresh tokens for a user.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.RefreshToken.DeleteAsync("user_id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**userId:** `string` — ID of the user to get remove refresh tokens for
+
+
+
+
+
+
+
+
+
+
+
+## Users Sessions
+client.Users.Sessions.ListAsync (userId, ListUserSessionsRequestParameters { ... }) -> Pager<SessionResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Retrieve details for a user's sessions.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.Sessions.ListAsync(
+ "user_id",
+ new ListUserSessionsRequestParameters { From = "from", Take = 1 }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**userId:** `string` — ID of the user to get sessions for
+
+
+
+
+
+
+
+**request:** `ListUserSessionsRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.Users.Sessions.DeleteAsync (userId)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete all sessions for a user.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.Users.Sessions.DeleteAsync("user_id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**userId:** `string` — ID of the user to get sessions for
+
+
+
+
+
+
+
+
+
+
+
+## VerifiableCredentials Verification Templates
+client.VerifiableCredentials.Verification.Templates.ListAsync (ListVerifiableCredentialTemplatesRequestParameters { ... }) -> Pager<VerifiableCredentialTemplateResponse>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+List a verifiable credential templates.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.VerifiableCredentials.Verification.Templates.ListAsync(
+ new ListVerifiableCredentialTemplatesRequestParameters { From = "from", Take = 1 }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `ListVerifiableCredentialTemplatesRequestParameters`
+
+
+
+
+
+
+
+
+
+
+
+client.VerifiableCredentials.Verification.Templates.CreateAsync (CreateVerifiableCredentialTemplateRequestContent { ... }) -> WithRawResponseTask<CreateVerifiableCredentialTemplateResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Create a verifiable credential template.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.VerifiableCredentials.Verification.Templates.CreateAsync(
+ new CreateVerifiableCredentialTemplateRequestContent
+ {
+ Name = "name",
+ Type = "type",
+ Dialect = "dialect",
+ Presentation = new MdlPresentationRequest
+ {
+ OrgIso1801351MDl = new MdlPresentationRequestProperties
+ {
+ OrgIso1801351 = new MdlPresentationProperties(),
+ },
+ },
+ WellKnownTrustedIssuers = "well_known_trusted_issuers",
+ }
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**request:** `CreateVerifiableCredentialTemplateRequestContent`
+
+
+
+
+
+
+
+
+
+
+
+client.VerifiableCredentials.Verification.Templates.GetAsync (id) -> WithRawResponseTask<GetVerifiableCredentialTemplateResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Get a verifiable credential template.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.VerifiableCredentials.Verification.Templates.GetAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the template to retrieve.
+
+
+
+
+
+
+
+
+
+
+
+client.VerifiableCredentials.Verification.Templates.DeleteAsync (id)
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Delete a verifiable credential template.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.VerifiableCredentials.Verification.Templates.DeleteAsync("id");
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the template to retrieve.
+
+
+
+
+
+
+
+
+
+
+
+client.VerifiableCredentials.Verification.Templates.UpdateAsync (id, UpdateVerifiableCredentialTemplateRequestContent { ... }) -> WithRawResponseTask<UpdateVerifiableCredentialTemplateResponseContent>
+
+
+
+#### 📝 Description
+
+
+
+
+
+
+
+Update a verifiable credential template.
+
+
+
+
+
+#### 🔌 Usage
+
+
+
+
+
+
+
+```csharp
+await client.VerifiableCredentials.Verification.Templates.UpdateAsync(
+ "id",
+ new UpdateVerifiableCredentialTemplateRequestContent()
+);
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+
+
+
+
+
+**id:** `string` — ID of the template to retrieve.
+
+
+
+
+
+
+
+**request:** `UpdateVerifiableCredentialTemplateRequestContent`
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Auth0.ManagementApi/Actions/ActionsClient.cs b/src/Auth0.ManagementApi/Actions/ActionsClient.cs
new file mode 100644
index 000000000..eb9f07d9d
--- /dev/null
+++ b/src/Auth0.ManagementApi/Actions/ActionsClient.cs
@@ -0,0 +1,783 @@
+using System.Text.Json;
+using Auth0.ManagementApi.Actions;
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi;
+
+public partial class ActionsClient : IActionsClient
+{
+ private RawClient _client;
+
+ internal ActionsClient(RawClient client)
+ {
+ _client = client;
+ Versions = new VersionsClient(_client);
+ Executions = new Auth0.ManagementApi.Actions.ExecutionsClient(_client);
+ Triggers = new TriggersClient(_client);
+ }
+
+ public IVersionsClient Versions { get; }
+
+ public Auth0.ManagementApi.Actions.IExecutionsClient Executions { get; }
+
+ public ITriggersClient Triggers { get; }
+
+ ///
+ /// Retrieve all actions.
+ ///
+ private WithRawResponseTask ListInternalAsync(
+ ListActionsRequestParameters request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ return new WithRawResponseTask(
+ ListInternalAsyncCore(request, options, cancellationToken)
+ );
+ }
+
+ private async Task> ListInternalAsyncCore(
+ ListActionsRequestParameters request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ var _queryString = new Auth0.ManagementApi.Core.QueryStringBuilder.Builder(capacity: 6)
+ .Add("triggerId", request.TriggerId.IsDefined ? request.TriggerId.Value : null)
+ .Add("actionName", request.ActionName.IsDefined ? request.ActionName.Value : null)
+ .Add("deployed", request.Deployed.IsDefined ? request.Deployed.Value : null)
+ .Add("page", request.Page.IsDefined ? request.Page.Value : null)
+ .Add("per_page", request.PerPage.IsDefined ? request.PerPage.Value : null)
+ .Add("installed", request.Installed.IsDefined ? request.Installed.Value : null)
+ .MergeAdditional(options?.AdditionalQueryParameters)
+ .Build();
+ var _headers = await new Auth0.ManagementApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ BaseUrl = _client.Options.BaseUrl,
+ Method = HttpMethod.Get,
+ Path = "actions/actions",
+ QueryString = _queryString,
+ Headers = _headers,
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ var responseData = JsonUtils.Deserialize(
+ responseBody
+ )!;
+ return new WithRawResponse()
+ {
+ Data = responseData,
+ RawResponse = new RawResponse()
+ {
+ StatusCode = response.Raw.StatusCode,
+ Url = response.Raw.RequestMessage?.RequestUri ?? new Uri("about:blank"),
+ Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
+ },
+ };
+ }
+ catch (JsonException e)
+ {
+ throw new ManagementApiException(
+ "Failed to deserialize response",
+ response.StatusCode,
+ responseBody,
+ e
+ );
+ }
+ }
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ switch (response.StatusCode)
+ {
+ case 400:
+ throw new BadRequestError(JsonUtils.Deserialize(responseBody));
+ case 401:
+ throw new UnauthorizedError(JsonUtils.Deserialize(responseBody));
+ case 403:
+ throw new ForbiddenError(JsonUtils.Deserialize(responseBody));
+ case 429:
+ throw new TooManyRequestsError(JsonUtils.Deserialize(responseBody));
+ }
+ }
+ catch (JsonException)
+ {
+ // unable to map error response, throwing generic error
+ }
+ throw new ManagementApiException(
+ $"Error with status code {response.StatusCode}",
+ response.StatusCode,
+ responseBody
+ );
+ }
+ }
+
+ private async Task> CreateAsyncCore(
+ CreateActionRequestContent request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ var _headers = await new Auth0.ManagementApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ BaseUrl = _client.Options.BaseUrl,
+ Method = HttpMethod.Post,
+ Path = "actions/actions",
+ Body = request,
+ Headers = _headers,
+ ContentType = "application/json",
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ var responseData = JsonUtils.Deserialize(
+ responseBody
+ )!;
+ return new WithRawResponse()
+ {
+ Data = responseData,
+ RawResponse = new RawResponse()
+ {
+ StatusCode = response.Raw.StatusCode,
+ Url = response.Raw.RequestMessage?.RequestUri ?? new Uri("about:blank"),
+ Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
+ },
+ };
+ }
+ catch (JsonException e)
+ {
+ throw new ManagementApiException(
+ "Failed to deserialize response",
+ response.StatusCode,
+ responseBody,
+ e
+ );
+ }
+ }
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ switch (response.StatusCode)
+ {
+ case 400:
+ throw new BadRequestError(JsonUtils.Deserialize(responseBody));
+ case 401:
+ throw new UnauthorizedError(JsonUtils.Deserialize(responseBody));
+ case 403:
+ throw new ForbiddenError(JsonUtils.Deserialize(responseBody));
+ case 429:
+ throw new TooManyRequestsError(JsonUtils.Deserialize(responseBody));
+ }
+ }
+ catch (JsonException)
+ {
+ // unable to map error response, throwing generic error
+ }
+ throw new ManagementApiException(
+ $"Error with status code {response.StatusCode}",
+ response.StatusCode,
+ responseBody
+ );
+ }
+ }
+
+ private async Task> GetAsyncCore(
+ string id,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ var _headers = await new Auth0.ManagementApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ BaseUrl = _client.Options.BaseUrl,
+ Method = HttpMethod.Get,
+ Path = string.Format(
+ "actions/actions/{0}",
+ ValueConvert.ToPathParameterString(id)
+ ),
+ Headers = _headers,
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ var responseData = JsonUtils.Deserialize(responseBody)!;
+ return new WithRawResponse()
+ {
+ Data = responseData,
+ RawResponse = new RawResponse()
+ {
+ StatusCode = response.Raw.StatusCode,
+ Url = response.Raw.RequestMessage?.RequestUri ?? new Uri("about:blank"),
+ Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
+ },
+ };
+ }
+ catch (JsonException e)
+ {
+ throw new ManagementApiException(
+ "Failed to deserialize response",
+ response.StatusCode,
+ responseBody,
+ e
+ );
+ }
+ }
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ switch (response.StatusCode)
+ {
+ case 400:
+ throw new BadRequestError(JsonUtils.Deserialize(responseBody));
+ case 401:
+ throw new UnauthorizedError(JsonUtils.Deserialize(responseBody));
+ case 403:
+ throw new ForbiddenError(JsonUtils.Deserialize(responseBody));
+ case 404:
+ throw new NotFoundError(JsonUtils.Deserialize(responseBody));
+ case 429:
+ throw new TooManyRequestsError(JsonUtils.Deserialize(responseBody));
+ }
+ }
+ catch (JsonException)
+ {
+ // unable to map error response, throwing generic error
+ }
+ throw new ManagementApiException(
+ $"Error with status code {response.StatusCode}",
+ response.StatusCode,
+ responseBody
+ );
+ }
+ }
+
+ private async Task> UpdateAsyncCore(
+ string id,
+ UpdateActionRequestContent request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ var _headers = await new Auth0.ManagementApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ BaseUrl = _client.Options.BaseUrl,
+ Method = HttpMethodExtensions.Patch,
+ Path = string.Format(
+ "actions/actions/{0}",
+ ValueConvert.ToPathParameterString(id)
+ ),
+ Body = request,
+ Headers = _headers,
+ ContentType = "application/json",
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ var responseData = JsonUtils.Deserialize(
+ responseBody
+ )!;
+ return new WithRawResponse()
+ {
+ Data = responseData,
+ RawResponse = new RawResponse()
+ {
+ StatusCode = response.Raw.StatusCode,
+ Url = response.Raw.RequestMessage?.RequestUri ?? new Uri("about:blank"),
+ Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
+ },
+ };
+ }
+ catch (JsonException e)
+ {
+ throw new ManagementApiException(
+ "Failed to deserialize response",
+ response.StatusCode,
+ responseBody,
+ e
+ );
+ }
+ }
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ switch (response.StatusCode)
+ {
+ case 400:
+ throw new BadRequestError(JsonUtils.Deserialize(responseBody));
+ case 401:
+ throw new UnauthorizedError(JsonUtils.Deserialize(responseBody));
+ case 403:
+ throw new ForbiddenError(JsonUtils.Deserialize(responseBody));
+ case 404:
+ throw new NotFoundError(JsonUtils.Deserialize(responseBody));
+ case 429:
+ throw new TooManyRequestsError(JsonUtils.Deserialize(responseBody));
+ }
+ }
+ catch (JsonException)
+ {
+ // unable to map error response, throwing generic error
+ }
+ throw new ManagementApiException(
+ $"Error with status code {response.StatusCode}",
+ response.StatusCode,
+ responseBody
+ );
+ }
+ }
+
+ private async Task> DeployAsyncCore(
+ string id,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ var _headers = await new Auth0.ManagementApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ BaseUrl = _client.Options.BaseUrl,
+ Method = HttpMethod.Post,
+ Path = string.Format(
+ "actions/actions/{0}/deploy",
+ ValueConvert.ToPathParameterString(id)
+ ),
+ Headers = _headers,
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ var responseData = JsonUtils.Deserialize(
+ responseBody
+ )!;
+ return new WithRawResponse()
+ {
+ Data = responseData,
+ RawResponse = new RawResponse()
+ {
+ StatusCode = response.Raw.StatusCode,
+ Url = response.Raw.RequestMessage?.RequestUri ?? new Uri("about:blank"),
+ Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
+ },
+ };
+ }
+ catch (JsonException e)
+ {
+ throw new ManagementApiException(
+ "Failed to deserialize response",
+ response.StatusCode,
+ responseBody,
+ e
+ );
+ }
+ }
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ switch (response.StatusCode)
+ {
+ case 400:
+ throw new BadRequestError(JsonUtils.Deserialize(responseBody));
+ case 401:
+ throw new UnauthorizedError(JsonUtils.Deserialize(responseBody));
+ case 403:
+ throw new ForbiddenError(JsonUtils.Deserialize(responseBody));
+ case 429:
+ throw new TooManyRequestsError(JsonUtils.Deserialize(responseBody));
+ }
+ }
+ catch (JsonException)
+ {
+ // unable to map error response, throwing generic error
+ }
+ throw new ManagementApiException(
+ $"Error with status code {response.StatusCode}",
+ response.StatusCode,
+ responseBody
+ );
+ }
+ }
+
+ private async Task> TestAsyncCore(
+ string id,
+ TestActionRequestContent request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ var _headers = await new Auth0.ManagementApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ BaseUrl = _client.Options.BaseUrl,
+ Method = HttpMethod.Post,
+ Path = string.Format(
+ "actions/actions/{0}/test",
+ ValueConvert.ToPathParameterString(id)
+ ),
+ Body = request,
+ Headers = _headers,
+ ContentType = "application/json",
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ var responseData = JsonUtils.Deserialize(responseBody)!;
+ return new WithRawResponse()
+ {
+ Data = responseData,
+ RawResponse = new RawResponse()
+ {
+ StatusCode = response.Raw.StatusCode,
+ Url = response.Raw.RequestMessage?.RequestUri ?? new Uri("about:blank"),
+ Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
+ },
+ };
+ }
+ catch (JsonException e)
+ {
+ throw new ManagementApiException(
+ "Failed to deserialize response",
+ response.StatusCode,
+ responseBody,
+ e
+ );
+ }
+ }
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ switch (response.StatusCode)
+ {
+ case 400:
+ throw new BadRequestError(JsonUtils.Deserialize(responseBody));
+ case 401:
+ throw new UnauthorizedError(JsonUtils.Deserialize(responseBody));
+ case 403:
+ throw new ForbiddenError(JsonUtils.Deserialize(responseBody));
+ case 429:
+ throw new TooManyRequestsError(JsonUtils.Deserialize(responseBody));
+ }
+ }
+ catch (JsonException)
+ {
+ // unable to map error response, throwing generic error
+ }
+ throw new ManagementApiException(
+ $"Error with status code {response.StatusCode}",
+ response.StatusCode,
+ responseBody
+ );
+ }
+ }
+
+ ///
+ /// Retrieve all actions.
+ ///
+ ///
+ /// await client.Actions.ListAsync(
+ /// new ListActionsRequestParameters
+ /// {
+ /// TriggerId = "triggerId",
+ /// ActionName = "actionName",
+ /// Deployed = true,
+ /// Page = 1,
+ /// PerPage = 1,
+ /// Installed = true,
+ /// }
+ /// );
+ ///
+ public async Task> ListAsync(
+ ListActionsRequestParameters request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ request = request with { };
+ var pager = await OffsetPager<
+ ListActionsRequestParameters,
+ RequestOptions?,
+ ListActionsPaginatedResponseContent,
+ int?,
+ int?,
+ Action
+ >
+ .CreateInstanceAsync(
+ request,
+ options,
+ async (request, options, cancellationToken) =>
+ await ListInternalAsync(request, options, cancellationToken),
+ request => request.Page.GetValueOrDefault(0),
+ (request, offset) =>
+ {
+ request.Page = offset;
+ },
+ request => request.PerPage.GetValueOrDefault(0),
+ response => response.Actions?.ToList(),
+ null,
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ return pager;
+ }
+
+ ///
+ /// Create an action. Once an action is created, it must be deployed, and then bound to a trigger before it will be executed as part of a flow.
+ ///
+ ///
+ /// await client.Actions.CreateAsync(
+ /// new CreateActionRequestContent
+ /// {
+ /// Name = "name",
+ /// SupportedTriggers = new List<ActionTrigger>() { new ActionTrigger { Id = "id" } },
+ /// }
+ /// );
+ ///
+ public WithRawResponseTask CreateAsync(
+ CreateActionRequestContent request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ return new WithRawResponseTask(
+ CreateAsyncCore(request, options, cancellationToken)
+ );
+ }
+
+ ///
+ /// Retrieve an action by its ID.
+ ///
+ ///
+ /// await client.Actions.GetAsync("id");
+ ///
+ public WithRawResponseTask GetAsync(
+ string id,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ return new WithRawResponseTask(
+ GetAsyncCore(id, options, cancellationToken)
+ );
+ }
+
+ ///
+ /// Deletes an action and all of its associated versions. An action must be unbound from all triggers before it can be deleted.
+ ///
+ ///
+ /// await client.Actions.DeleteAsync("id", new DeleteActionRequestParameters { Force = true });
+ ///
+ public async Task DeleteAsync(
+ string id,
+ DeleteActionRequestParameters request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ var _queryString = new Auth0.ManagementApi.Core.QueryStringBuilder.Builder(capacity: 1)
+ .Add("force", request.Force.IsDefined ? request.Force.Value : null)
+ .MergeAdditional(options?.AdditionalQueryParameters)
+ .Build();
+ var _headers = await new Auth0.ManagementApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ BaseUrl = _client.Options.BaseUrl,
+ Method = HttpMethod.Delete,
+ Path = string.Format(
+ "actions/actions/{0}",
+ ValueConvert.ToPathParameterString(id)
+ ),
+ QueryString = _queryString,
+ Headers = _headers,
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return;
+ }
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ switch (response.StatusCode)
+ {
+ case 400:
+ throw new BadRequestError(JsonUtils.Deserialize(responseBody));
+ case 401:
+ throw new UnauthorizedError(JsonUtils.Deserialize(responseBody));
+ case 403:
+ throw new ForbiddenError(JsonUtils.Deserialize(responseBody));
+ case 404:
+ throw new NotFoundError(JsonUtils.Deserialize(responseBody));
+ case 429:
+ throw new TooManyRequestsError(JsonUtils.Deserialize(responseBody));
+ }
+ }
+ catch (JsonException)
+ {
+ // unable to map error response, throwing generic error
+ }
+ throw new ManagementApiException(
+ $"Error with status code {response.StatusCode}",
+ response.StatusCode,
+ responseBody
+ );
+ }
+ }
+
+ ///
+ /// Update an existing action. If this action is currently bound to a trigger, updating it will not affect any user flows until the action is deployed.
+ ///
+ ///
+ /// await client.Actions.UpdateAsync("id", new UpdateActionRequestContent());
+ ///
+ public WithRawResponseTask UpdateAsync(
+ string id,
+ UpdateActionRequestContent request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ return new WithRawResponseTask(
+ UpdateAsyncCore(id, request, options, cancellationToken)
+ );
+ }
+
+ ///
+ /// Deploy an action. Deploying an action will create a new immutable version of the action. If the action is currently bound to a trigger, then the system will begin executing the newly deployed version of the action immediately. Otherwise, the action will only be executed as a part of a flow once it is bound to that flow.
+ ///
+ ///
+ /// await client.Actions.DeployAsync("id");
+ ///
+ public WithRawResponseTask DeployAsync(
+ string id,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ return new WithRawResponseTask(
+ DeployAsyncCore(id, options, cancellationToken)
+ );
+ }
+
+ ///
+ /// Test an action. After updating an action, it can be tested prior to being deployed to ensure it behaves as expected.
+ ///
+ ///
+ /// await client.Actions.TestAsync(
+ /// "id",
+ /// new TestActionRequestContent
+ /// {
+ /// Payload = new Dictionary<string, object?>() { { "key", "value" } },
+ /// }
+ /// );
+ ///
+ public WithRawResponseTask TestAsync(
+ string id,
+ TestActionRequestContent request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ return new WithRawResponseTask(
+ TestAsyncCore(id, request, options, cancellationToken)
+ );
+ }
+}
diff --git a/src/Auth0.ManagementApi/Actions/Executions/ExecutionsClient.cs b/src/Auth0.ManagementApi/Actions/Executions/ExecutionsClient.cs
new file mode 100644
index 000000000..fbba76f67
--- /dev/null
+++ b/src/Auth0.ManagementApi/Actions/Executions/ExecutionsClient.cs
@@ -0,0 +1,119 @@
+using System.Text.Json;
+using Auth0.ManagementApi;
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi.Actions;
+
+public partial class ExecutionsClient : IExecutionsClient
+{
+ private RawClient _client;
+
+ internal ExecutionsClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ private async Task> GetAsyncCore(
+ string id,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ var _headers = await new Auth0.ManagementApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ BaseUrl = _client.Options.BaseUrl,
+ Method = HttpMethod.Get,
+ Path = string.Format(
+ "actions/executions/{0}",
+ ValueConvert.ToPathParameterString(id)
+ ),
+ Headers = _headers,
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ var responseData = JsonUtils.Deserialize(
+ responseBody
+ )!;
+ return new WithRawResponse()
+ {
+ Data = responseData,
+ RawResponse = new RawResponse()
+ {
+ StatusCode = response.Raw.StatusCode,
+ Url = response.Raw.RequestMessage?.RequestUri ?? new Uri("about:blank"),
+ Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
+ },
+ };
+ }
+ catch (JsonException e)
+ {
+ throw new ManagementApiException(
+ "Failed to deserialize response",
+ response.StatusCode,
+ responseBody,
+ e
+ );
+ }
+ }
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ switch (response.StatusCode)
+ {
+ case 400:
+ throw new BadRequestError(JsonUtils.Deserialize(responseBody));
+ case 401:
+ throw new UnauthorizedError(JsonUtils.Deserialize(responseBody));
+ case 403:
+ throw new ForbiddenError(JsonUtils.Deserialize(responseBody));
+ case 404:
+ throw new NotFoundError(JsonUtils.Deserialize(responseBody));
+ case 429:
+ throw new TooManyRequestsError(JsonUtils.Deserialize(responseBody));
+ }
+ }
+ catch (JsonException)
+ {
+ // unable to map error response, throwing generic error
+ }
+ throw new ManagementApiException(
+ $"Error with status code {response.StatusCode}",
+ response.StatusCode,
+ responseBody
+ );
+ }
+ }
+
+ ///
+ /// Retrieve information about a specific execution of a trigger. Relevant execution IDs will be included in tenant logs generated as part of that authentication flow. Executions will only be stored for 10 days after their creation.
+ ///
+ ///
+ /// await client.Actions.Executions.GetAsync("id");
+ ///
+ public WithRawResponseTask GetAsync(
+ string id,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ return new WithRawResponseTask(
+ GetAsyncCore(id, options, cancellationToken)
+ );
+ }
+}
diff --git a/src/Auth0.ManagementApi/Actions/Executions/IExecutionsClient.cs b/src/Auth0.ManagementApi/Actions/Executions/IExecutionsClient.cs
new file mode 100644
index 000000000..fec4b4e76
--- /dev/null
+++ b/src/Auth0.ManagementApi/Actions/Executions/IExecutionsClient.cs
@@ -0,0 +1,15 @@
+using Auth0.ManagementApi;
+
+namespace Auth0.ManagementApi.Actions;
+
+public partial interface IExecutionsClient
+{
+ ///
+ /// Retrieve information about a specific execution of a trigger. Relevant execution IDs will be included in tenant logs generated as part of that authentication flow. Executions will only be stored for 10 days after their creation.
+ ///
+ WithRawResponseTask GetAsync(
+ string id,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ );
+}
diff --git a/src/Auth0.ManagementApi/Actions/IActionsClient.cs b/src/Auth0.ManagementApi/Actions/IActionsClient.cs
new file mode 100644
index 000000000..293f6ff05
--- /dev/null
+++ b/src/Auth0.ManagementApi/Actions/IActionsClient.cs
@@ -0,0 +1,77 @@
+using Auth0.ManagementApi.Actions;
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi;
+
+public partial interface IActionsClient
+{
+ public IVersionsClient Versions { get; }
+ public Auth0.ManagementApi.Actions.IExecutionsClient Executions { get; }
+ public ITriggersClient Triggers { get; }
+
+ ///
+ /// Retrieve all actions.
+ ///
+ Task> ListAsync(
+ ListActionsRequestParameters request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ );
+
+ ///
+ /// Create an action. Once an action is created, it must be deployed, and then bound to a trigger before it will be executed as part of a flow.
+ ///
+ WithRawResponseTask CreateAsync(
+ CreateActionRequestContent request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ );
+
+ ///
+ /// Retrieve an action by its ID.
+ ///
+ WithRawResponseTask GetAsync(
+ string id,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ );
+
+ ///
+ /// Deletes an action and all of its associated versions. An action must be unbound from all triggers before it can be deleted.
+ ///
+ Task DeleteAsync(
+ string id,
+ DeleteActionRequestParameters request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ );
+
+ ///
+ /// Update an existing action. If this action is currently bound to a trigger, updating it will not affect any user flows until the action is deployed.
+ ///
+ WithRawResponseTask UpdateAsync(
+ string id,
+ UpdateActionRequestContent request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ );
+
+ ///
+ /// Deploy an action. Deploying an action will create a new immutable version of the action. If the action is currently bound to a trigger, then the system will begin executing the newly deployed version of the action immediately. Otherwise, the action will only be executed as a part of a flow once it is bound to that flow.
+ ///
+ WithRawResponseTask DeployAsync(
+ string id,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ );
+
+ ///
+ /// Test an action. After updating an action, it can be tested prior to being deployed to ensure it behaves as expected.
+ ///
+ WithRawResponseTask TestAsync(
+ string id,
+ TestActionRequestContent request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ );
+}
diff --git a/src/Auth0.ManagementApi/Actions/Requests/CreateActionRequestContent.cs b/src/Auth0.ManagementApi/Actions/Requests/CreateActionRequestContent.cs
new file mode 100644
index 000000000..0e2300a27
--- /dev/null
+++ b/src/Auth0.ManagementApi/Actions/Requests/CreateActionRequestContent.cs
@@ -0,0 +1,61 @@
+using System.Text.Json.Serialization;
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi;
+
+[Serializable]
+public record CreateActionRequestContent
+{
+ ///
+ /// The name of an action.
+ ///
+ [JsonPropertyName("name")]
+ public required string Name { get; set; }
+
+ ///
+ /// The list of triggers that this action supports. At this time, an action can only target a single trigger at a time.
+ ///
+ [JsonPropertyName("supported_triggers")]
+ public IEnumerable SupportedTriggers { get; set; } = new List();
+
+ ///
+ /// The source code of the action.
+ ///
+ [Optional]
+ [JsonPropertyName("code")]
+ public string? Code { get; set; }
+
+ ///
+ /// The list of third party npm modules, and their versions, that this action depends on.
+ ///
+ [Optional]
+ [JsonPropertyName("dependencies")]
+ public IEnumerable? Dependencies { get; set; }
+
+ ///
+ /// The Node runtime. For example: `node22`, defaults to `node22`
+ ///
+ [Optional]
+ [JsonPropertyName("runtime")]
+ public string? Runtime { get; set; }
+
+ ///
+ /// The list of secrets that are included in an action or a version of an action.
+ ///
+ [Optional]
+ [JsonPropertyName("secrets")]
+ public IEnumerable? Secrets { get; set; }
+
+ ///
+ /// True if the action should be deployed after creation.
+ ///
+ [Optional]
+ [JsonPropertyName("deploy")]
+ public bool? Deploy { get; set; }
+
+ ///
+ public override string ToString()
+ {
+ return JsonUtils.Serialize(this);
+ }
+}
diff --git a/src/Auth0.ManagementApi/Actions/Requests/DeleteActionRequestParameters.cs b/src/Auth0.ManagementApi/Actions/Requests/DeleteActionRequestParameters.cs
new file mode 100644
index 000000000..ab4dacfdc
--- /dev/null
+++ b/src/Auth0.ManagementApi/Actions/Requests/DeleteActionRequestParameters.cs
@@ -0,0 +1,20 @@
+using System.Text.Json.Serialization;
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi;
+
+[Serializable]
+public record DeleteActionRequestParameters
+{
+ ///
+ /// Force action deletion detaching bindings
+ ///
+ [JsonIgnore]
+ public Optional Force { get; set; }
+
+ ///
+ public override string ToString()
+ {
+ return JsonUtils.Serialize(this);
+ }
+}
diff --git a/src/Auth0.ManagementApi/Actions/Requests/ListActionsRequestParameters.cs b/src/Auth0.ManagementApi/Actions/Requests/ListActionsRequestParameters.cs
new file mode 100644
index 000000000..d9e8040a0
--- /dev/null
+++ b/src/Auth0.ManagementApi/Actions/Requests/ListActionsRequestParameters.cs
@@ -0,0 +1,50 @@
+using System.Text.Json.Serialization;
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi;
+
+[Serializable]
+public record ListActionsRequestParameters
+{
+ ///
+ /// An actions extensibility point.
+ ///
+ [JsonIgnore]
+ public Optional TriggerId { get; set; }
+
+ ///
+ /// The name of the action to retrieve.
+ ///
+ [JsonIgnore]
+ public Optional ActionName { get; set; }
+
+ ///
+ /// Optional filter to only retrieve actions that are deployed.
+ ///
+ [JsonIgnore]
+ public Optional Deployed { get; set; }
+
+ ///
+ /// Use this field to request a specific page of the list results.
+ ///
+ [JsonIgnore]
+ public Optional Page { get; set; } = 0;
+
+ ///
+ /// The maximum number of results to be returned by the server in single response. 20 by default
+ ///
+ [JsonIgnore]
+ public Optional PerPage { get; set; } = 50;
+
+ ///
+ /// Optional. When true, return only installed actions. When false, return only custom actions. Returns all actions by default.
+ ///
+ [JsonIgnore]
+ public Optional Installed { get; set; }
+
+ ///
+ public override string ToString()
+ {
+ return JsonUtils.Serialize(this);
+ }
+}
diff --git a/src/Auth0.ManagementApi/Actions/Requests/TestActionRequestContent.cs b/src/Auth0.ManagementApi/Actions/Requests/TestActionRequestContent.cs
new file mode 100644
index 000000000..be8dbc27f
--- /dev/null
+++ b/src/Auth0.ManagementApi/Actions/Requests/TestActionRequestContent.cs
@@ -0,0 +1,17 @@
+using System.Text.Json.Serialization;
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi;
+
+[Serializable]
+public record TestActionRequestContent
+{
+ [JsonPropertyName("payload")]
+ public Dictionary Payload { get; set; } = new Dictionary();
+
+ ///
+ public override string ToString()
+ {
+ return JsonUtils.Serialize(this);
+ }
+}
diff --git a/src/Auth0.ManagementApi/Actions/Requests/UpdateActionRequestContent.cs b/src/Auth0.ManagementApi/Actions/Requests/UpdateActionRequestContent.cs
new file mode 100644
index 000000000..d8c28b43b
--- /dev/null
+++ b/src/Auth0.ManagementApi/Actions/Requests/UpdateActionRequestContent.cs
@@ -0,0 +1,56 @@
+using System.Text.Json.Serialization;
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi;
+
+[Serializable]
+public record UpdateActionRequestContent
+{
+ ///
+ /// The name of an action.
+ ///
+ [Optional]
+ [JsonPropertyName("name")]
+ public string? Name { get; set; }
+
+ ///
+ /// The list of triggers that this action supports. At this time, an action can only target a single trigger at a time.
+ ///
+ [Optional]
+ [JsonPropertyName("supported_triggers")]
+ public IEnumerable? SupportedTriggers { get; set; }
+
+ ///
+ /// The source code of the action.
+ ///
+ [Optional]
+ [JsonPropertyName("code")]
+ public string? Code { get; set; }
+
+ ///
+ /// The list of third party npm modules, and their versions, that this action depends on.
+ ///
+ [Optional]
+ [JsonPropertyName("dependencies")]
+ public IEnumerable? Dependencies { get; set; }
+
+ ///
+ /// The Node runtime. For example: `node22`, defaults to `node22`
+ ///
+ [Optional]
+ [JsonPropertyName("runtime")]
+ public string? Runtime { get; set; }
+
+ ///
+ /// The list of secrets that are included in an action or a version of an action.
+ ///
+ [Optional]
+ [JsonPropertyName("secrets")]
+ public IEnumerable? Secrets { get; set; }
+
+ ///
+ public override string ToString()
+ {
+ return JsonUtils.Serialize(this);
+ }
+}
diff --git a/src/Auth0.ManagementApi/Actions/Triggers/Bindings/BindingsClient.cs b/src/Auth0.ManagementApi/Actions/Triggers/Bindings/BindingsClient.cs
new file mode 100644
index 000000000..d3b6dc920
--- /dev/null
+++ b/src/Auth0.ManagementApi/Actions/Triggers/Bindings/BindingsClient.cs
@@ -0,0 +1,279 @@
+using System.Text.Json;
+using Auth0.ManagementApi;
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi.Actions.Triggers;
+
+public partial class BindingsClient : IBindingsClient
+{
+ private RawClient _client;
+
+ internal BindingsClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ ///
+ /// Retrieve the actions that are bound to a trigger. Once an action is created and deployed, it must be attached (i.e. bound) to a trigger so that it will be executed as part of a flow. The list of actions returned reflects the order in which they will be executed during the appropriate flow.
+ ///
+ private WithRawResponseTask ListInternalAsync(
+ string triggerId,
+ ListActionTriggerBindingsRequestParameters request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ return new WithRawResponseTask(
+ ListInternalAsyncCore(triggerId, request, options, cancellationToken)
+ );
+ }
+
+ private async Task<
+ WithRawResponse
+ > ListInternalAsyncCore(
+ string triggerId,
+ ListActionTriggerBindingsRequestParameters request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ var _queryString = new Auth0.ManagementApi.Core.QueryStringBuilder.Builder(capacity: 2)
+ .Add("page", request.Page.IsDefined ? request.Page.Value : null)
+ .Add("per_page", request.PerPage.IsDefined ? request.PerPage.Value : null)
+ .MergeAdditional(options?.AdditionalQueryParameters)
+ .Build();
+ var _headers = await new Auth0.ManagementApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ BaseUrl = _client.Options.BaseUrl,
+ Method = HttpMethod.Get,
+ Path = string.Format(
+ "actions/triggers/{0}/bindings",
+ ValueConvert.ToPathParameterString(triggerId)
+ ),
+ QueryString = _queryString,
+ Headers = _headers,
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ var responseData =
+ JsonUtils.Deserialize(
+ responseBody
+ )!;
+ return new WithRawResponse()
+ {
+ Data = responseData,
+ RawResponse = new RawResponse()
+ {
+ StatusCode = response.Raw.StatusCode,
+ Url = response.Raw.RequestMessage?.RequestUri ?? new Uri("about:blank"),
+ Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
+ },
+ };
+ }
+ catch (JsonException e)
+ {
+ throw new ManagementApiException(
+ "Failed to deserialize response",
+ response.StatusCode,
+ responseBody,
+ e
+ );
+ }
+ }
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ switch (response.StatusCode)
+ {
+ case 400:
+ throw new BadRequestError(JsonUtils.Deserialize(responseBody));
+ case 401:
+ throw new UnauthorizedError(JsonUtils.Deserialize(responseBody));
+ case 403:
+ throw new ForbiddenError(JsonUtils.Deserialize(responseBody));
+ case 429:
+ throw new TooManyRequestsError(JsonUtils.Deserialize(responseBody));
+ }
+ }
+ catch (JsonException)
+ {
+ // unable to map error response, throwing generic error
+ }
+ throw new ManagementApiException(
+ $"Error with status code {response.StatusCode}",
+ response.StatusCode,
+ responseBody
+ );
+ }
+ }
+
+ private async Task> UpdateManyAsyncCore(
+ string triggerId,
+ UpdateActionBindingsRequestContent request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ var _headers = await new Auth0.ManagementApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ BaseUrl = _client.Options.BaseUrl,
+ Method = HttpMethodExtensions.Patch,
+ Path = string.Format(
+ "actions/triggers/{0}/bindings",
+ ValueConvert.ToPathParameterString(triggerId)
+ ),
+ Body = request,
+ Headers = _headers,
+ ContentType = "application/json",
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ var responseData = JsonUtils.Deserialize(
+ responseBody
+ )!;
+ return new WithRawResponse()
+ {
+ Data = responseData,
+ RawResponse = new RawResponse()
+ {
+ StatusCode = response.Raw.StatusCode,
+ Url = response.Raw.RequestMessage?.RequestUri ?? new Uri("about:blank"),
+ Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
+ },
+ };
+ }
+ catch (JsonException e)
+ {
+ throw new ManagementApiException(
+ "Failed to deserialize response",
+ response.StatusCode,
+ responseBody,
+ e
+ );
+ }
+ }
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ switch (response.StatusCode)
+ {
+ case 400:
+ throw new BadRequestError(JsonUtils.Deserialize(responseBody));
+ case 401:
+ throw new UnauthorizedError(JsonUtils.Deserialize(responseBody));
+ case 403:
+ throw new ForbiddenError(JsonUtils.Deserialize(responseBody));
+ case 429:
+ throw new TooManyRequestsError(JsonUtils.Deserialize(responseBody));
+ }
+ }
+ catch (JsonException)
+ {
+ // unable to map error response, throwing generic error
+ }
+ throw new ManagementApiException(
+ $"Error with status code {response.StatusCode}",
+ response.StatusCode,
+ responseBody
+ );
+ }
+ }
+
+ ///
+ /// Retrieve the actions that are bound to a trigger. Once an action is created and deployed, it must be attached (i.e. bound) to a trigger so that it will be executed as part of a flow. The list of actions returned reflects the order in which they will be executed during the appropriate flow.
+ ///
+ ///
+ /// await client.Actions.Triggers.Bindings.ListAsync(
+ /// "triggerId",
+ /// new ListActionTriggerBindingsRequestParameters { Page = 1, PerPage = 1 }
+ /// );
+ ///
+ public async Task> ListAsync(
+ string triggerId,
+ ListActionTriggerBindingsRequestParameters request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ request = request with { };
+ var pager = await OffsetPager<
+ ListActionTriggerBindingsRequestParameters,
+ RequestOptions?,
+ ListActionBindingsPaginatedResponseContent,
+ int?,
+ int?,
+ ActionBinding
+ >
+ .CreateInstanceAsync(
+ request,
+ options,
+ async (request, options, cancellationToken) =>
+ await ListInternalAsync(triggerId, request, options, cancellationToken)
+ .ConfigureAwait(false),
+ request => request.Page.GetValueOrDefault(0),
+ (request, offset) =>
+ {
+ request.Page = offset;
+ },
+ request => request.PerPage.GetValueOrDefault(0),
+ response => response.Bindings?.ToList(),
+ null,
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ return pager;
+ }
+
+ ///
+ /// Update the actions that are bound (i.e. attached) to a trigger. Once an action is created and deployed, it must be attached (i.e. bound) to a trigger so that it will be executed as part of a flow. The order in which the actions are provided will determine the order in which they are executed.
+ ///
+ ///
+ /// await client.Actions.Triggers.Bindings.UpdateManyAsync(
+ /// "triggerId",
+ /// new UpdateActionBindingsRequestContent()
+ /// );
+ ///
+ public WithRawResponseTask UpdateManyAsync(
+ string triggerId,
+ UpdateActionBindingsRequestContent request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ return new WithRawResponseTask(
+ UpdateManyAsyncCore(triggerId, request, options, cancellationToken)
+ );
+ }
+}
diff --git a/src/Auth0.ManagementApi/Actions/Triggers/Bindings/IBindingsClient.cs b/src/Auth0.ManagementApi/Actions/Triggers/Bindings/IBindingsClient.cs
new file mode 100644
index 000000000..92f48b2cb
--- /dev/null
+++ b/src/Auth0.ManagementApi/Actions/Triggers/Bindings/IBindingsClient.cs
@@ -0,0 +1,27 @@
+using Auth0.ManagementApi;
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi.Actions.Triggers;
+
+public partial interface IBindingsClient
+{
+ ///
+ /// Retrieve the actions that are bound to a trigger. Once an action is created and deployed, it must be attached (i.e. bound) to a trigger so that it will be executed as part of a flow. The list of actions returned reflects the order in which they will be executed during the appropriate flow.
+ ///
+ Task> ListAsync(
+ string triggerId,
+ ListActionTriggerBindingsRequestParameters request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ );
+
+ ///
+ /// Update the actions that are bound (i.e. attached) to a trigger. Once an action is created and deployed, it must be attached (i.e. bound) to a trigger so that it will be executed as part of a flow. The order in which the actions are provided will determine the order in which they are executed.
+ ///
+ WithRawResponseTask UpdateManyAsync(
+ string triggerId,
+ UpdateActionBindingsRequestContent request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ );
+}
diff --git a/src/Auth0.ManagementApi/Actions/Triggers/Bindings/Requests/ListActionTriggerBindingsRequestParameters.cs b/src/Auth0.ManagementApi/Actions/Triggers/Bindings/Requests/ListActionTriggerBindingsRequestParameters.cs
new file mode 100644
index 000000000..34d9289f7
--- /dev/null
+++ b/src/Auth0.ManagementApi/Actions/Triggers/Bindings/Requests/ListActionTriggerBindingsRequestParameters.cs
@@ -0,0 +1,26 @@
+using System.Text.Json.Serialization;
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi.Actions.Triggers;
+
+[Serializable]
+public record ListActionTriggerBindingsRequestParameters
+{
+ ///
+ /// Use this field to request a specific page of the list results.
+ ///
+ [JsonIgnore]
+ public Optional Page { get; set; } = 0;
+
+ ///
+ /// The maximum number of results to be returned in a single request. 20 by default
+ ///
+ [JsonIgnore]
+ public Optional PerPage { get; set; } = 50;
+
+ ///
+ public override string ToString()
+ {
+ return JsonUtils.Serialize(this);
+ }
+}
diff --git a/src/Auth0.ManagementApi/Actions/Triggers/Bindings/Requests/UpdateActionBindingsRequestContent.cs b/src/Auth0.ManagementApi/Actions/Triggers/Bindings/Requests/UpdateActionBindingsRequestContent.cs
new file mode 100644
index 000000000..8b6d7d654
--- /dev/null
+++ b/src/Auth0.ManagementApi/Actions/Triggers/Bindings/Requests/UpdateActionBindingsRequestContent.cs
@@ -0,0 +1,22 @@
+using System.Text.Json.Serialization;
+using Auth0.ManagementApi;
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi.Actions.Triggers;
+
+[Serializable]
+public record UpdateActionBindingsRequestContent
+{
+ ///
+ /// The actions that will be bound to this trigger. The order in which they are included will be the order in which they are executed.
+ ///
+ [Optional]
+ [JsonPropertyName("bindings")]
+ public IEnumerable? Bindings { get; set; }
+
+ ///
+ public override string ToString()
+ {
+ return JsonUtils.Serialize(this);
+ }
+}
diff --git a/src/Auth0.ManagementApi/Actions/Triggers/ITriggersClient.cs b/src/Auth0.ManagementApi/Actions/Triggers/ITriggersClient.cs
new file mode 100644
index 000000000..86ecf1065
--- /dev/null
+++ b/src/Auth0.ManagementApi/Actions/Triggers/ITriggersClient.cs
@@ -0,0 +1,17 @@
+using Auth0.ManagementApi;
+using Auth0.ManagementApi.Actions.Triggers;
+
+namespace Auth0.ManagementApi.Actions;
+
+public partial interface ITriggersClient
+{
+ public IBindingsClient Bindings { get; }
+
+ ///
+ /// Retrieve the set of triggers currently available within actions. A trigger is an extensibility point to which actions can be bound.
+ ///
+ WithRawResponseTask ListAsync(
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ );
+}
diff --git a/src/Auth0.ManagementApi/Actions/Triggers/TriggersClient.cs b/src/Auth0.ManagementApi/Actions/Triggers/TriggersClient.cs
new file mode 100644
index 000000000..1178d790f
--- /dev/null
+++ b/src/Auth0.ManagementApi/Actions/Triggers/TriggersClient.cs
@@ -0,0 +1,116 @@
+using System.Text.Json;
+using Auth0.ManagementApi;
+using Auth0.ManagementApi.Actions.Triggers;
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi.Actions;
+
+public partial class TriggersClient : ITriggersClient
+{
+ private RawClient _client;
+
+ internal TriggersClient(RawClient client)
+ {
+ _client = client;
+ Bindings = new BindingsClient(_client);
+ }
+
+ public IBindingsClient Bindings { get; }
+
+ private async Task> ListAsyncCore(
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ var _headers = await new Auth0.ManagementApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ BaseUrl = _client.Options.BaseUrl,
+ Method = HttpMethod.Get,
+ Path = "actions/triggers",
+ Headers = _headers,
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ var responseData = JsonUtils.Deserialize(
+ responseBody
+ )!;
+ return new WithRawResponse()
+ {
+ Data = responseData,
+ RawResponse = new RawResponse()
+ {
+ StatusCode = response.Raw.StatusCode,
+ Url = response.Raw.RequestMessage?.RequestUri ?? new Uri("about:blank"),
+ Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
+ },
+ };
+ }
+ catch (JsonException e)
+ {
+ throw new ManagementApiException(
+ "Failed to deserialize response",
+ response.StatusCode,
+ responseBody,
+ e
+ );
+ }
+ }
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ switch (response.StatusCode)
+ {
+ case 400:
+ throw new BadRequestError(JsonUtils.Deserialize(responseBody));
+ case 401:
+ throw new UnauthorizedError(JsonUtils.Deserialize(responseBody));
+ case 403:
+ throw new ForbiddenError(JsonUtils.Deserialize(responseBody));
+ case 429:
+ throw new TooManyRequestsError(JsonUtils.Deserialize(responseBody));
+ }
+ }
+ catch (JsonException)
+ {
+ // unable to map error response, throwing generic error
+ }
+ throw new ManagementApiException(
+ $"Error with status code {response.StatusCode}",
+ response.StatusCode,
+ responseBody
+ );
+ }
+ }
+
+ ///
+ /// Retrieve the set of triggers currently available within actions. A trigger is an extensibility point to which actions can be bound.
+ ///
+ ///
+ /// await client.Actions.Triggers.ListAsync();
+ ///
+ public WithRawResponseTask ListAsync(
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ return new WithRawResponseTask(
+ ListAsyncCore(options, cancellationToken)
+ );
+ }
+}
diff --git a/src/Auth0.ManagementApi/Actions/Versions/IVersionsClient.cs b/src/Auth0.ManagementApi/Actions/Versions/IVersionsClient.cs
new file mode 100644
index 000000000..23c5c8b4f
--- /dev/null
+++ b/src/Auth0.ManagementApi/Actions/Versions/IVersionsClient.cs
@@ -0,0 +1,38 @@
+using Auth0.ManagementApi;
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi.Actions;
+
+public partial interface IVersionsClient
+{
+ ///
+ /// Retrieve all of an action's versions. An action version is created whenever an action is deployed. An action version is immutable, once created.
+ ///
+ Task> ListAsync(
+ string actionId,
+ ListActionVersionsRequestParameters request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ );
+
+ ///
+ /// Retrieve a specific version of an action. An action version is created whenever an action is deployed. An action version is immutable, once created.
+ ///
+ WithRawResponseTask GetAsync(
+ string actionId,
+ string id,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ );
+
+ ///
+ /// Performs the equivalent of a roll-back of an action to an earlier, specified version. Creates a new, deployed action version that is identical to the specified version. If this action is currently bound to a trigger, the system will begin executing the newly-created version immediately.
+ ///
+ WithRawResponseTask DeployAsync(
+ string actionId,
+ string id,
+ Optional request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ );
+}
diff --git a/src/Auth0.ManagementApi/Actions/Versions/Requests/ListActionVersionsRequestParameters.cs b/src/Auth0.ManagementApi/Actions/Versions/Requests/ListActionVersionsRequestParameters.cs
new file mode 100644
index 000000000..72dbc7034
--- /dev/null
+++ b/src/Auth0.ManagementApi/Actions/Versions/Requests/ListActionVersionsRequestParameters.cs
@@ -0,0 +1,26 @@
+using System.Text.Json.Serialization;
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi.Actions;
+
+[Serializable]
+public record ListActionVersionsRequestParameters
+{
+ ///
+ /// Use this field to request a specific page of the list results.
+ ///
+ [JsonIgnore]
+ public Optional Page { get; set; } = 0;
+
+ ///
+ /// This field specify the maximum number of results to be returned by the server. 20 by default
+ ///
+ [JsonIgnore]
+ public Optional PerPage { get; set; } = 50;
+
+ ///
+ public override string ToString()
+ {
+ return JsonUtils.Serialize(this);
+ }
+}
diff --git a/src/Auth0.ManagementApi/Actions/Versions/VersionsClient.cs b/src/Auth0.ManagementApi/Actions/Versions/VersionsClient.cs
new file mode 100644
index 000000000..112098cc2
--- /dev/null
+++ b/src/Auth0.ManagementApi/Actions/Versions/VersionsClient.cs
@@ -0,0 +1,390 @@
+using System.Text.Json;
+using Auth0.ManagementApi;
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi.Actions;
+
+public partial class VersionsClient : IVersionsClient
+{
+ private RawClient _client;
+
+ internal VersionsClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ ///
+ /// Retrieve all of an action's versions. An action version is created whenever an action is deployed. An action version is immutable, once created.
+ ///
+ private WithRawResponseTask ListInternalAsync(
+ string actionId,
+ ListActionVersionsRequestParameters request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ return new WithRawResponseTask(
+ ListInternalAsyncCore(actionId, request, options, cancellationToken)
+ );
+ }
+
+ private async Task<
+ WithRawResponse
+ > ListInternalAsyncCore(
+ string actionId,
+ ListActionVersionsRequestParameters request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ var _queryString = new Auth0.ManagementApi.Core.QueryStringBuilder.Builder(capacity: 2)
+ .Add("page", request.Page.IsDefined ? request.Page.Value : null)
+ .Add("per_page", request.PerPage.IsDefined ? request.PerPage.Value : null)
+ .MergeAdditional(options?.AdditionalQueryParameters)
+ .Build();
+ var _headers = await new Auth0.ManagementApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ BaseUrl = _client.Options.BaseUrl,
+ Method = HttpMethod.Get,
+ Path = string.Format(
+ "actions/actions/{0}/versions",
+ ValueConvert.ToPathParameterString(actionId)
+ ),
+ QueryString = _queryString,
+ Headers = _headers,
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ var responseData =
+ JsonUtils.Deserialize(
+ responseBody
+ )!;
+ return new WithRawResponse()
+ {
+ Data = responseData,
+ RawResponse = new RawResponse()
+ {
+ StatusCode = response.Raw.StatusCode,
+ Url = response.Raw.RequestMessage?.RequestUri ?? new Uri("about:blank"),
+ Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
+ },
+ };
+ }
+ catch (JsonException e)
+ {
+ throw new ManagementApiException(
+ "Failed to deserialize response",
+ response.StatusCode,
+ responseBody,
+ e
+ );
+ }
+ }
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ switch (response.StatusCode)
+ {
+ case 400:
+ throw new BadRequestError(JsonUtils.Deserialize(responseBody));
+ case 401:
+ throw new UnauthorizedError(JsonUtils.Deserialize(responseBody));
+ case 403:
+ throw new ForbiddenError(JsonUtils.Deserialize(responseBody));
+ case 429:
+ throw new TooManyRequestsError(JsonUtils.Deserialize(responseBody));
+ }
+ }
+ catch (JsonException)
+ {
+ // unable to map error response, throwing generic error
+ }
+ throw new ManagementApiException(
+ $"Error with status code {response.StatusCode}",
+ response.StatusCode,
+ responseBody
+ );
+ }
+ }
+
+ private async Task> GetAsyncCore(
+ string actionId,
+ string id,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ var _headers = await new Auth0.ManagementApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ BaseUrl = _client.Options.BaseUrl,
+ Method = HttpMethod.Get,
+ Path = string.Format(
+ "actions/actions/{0}/versions/{1}",
+ ValueConvert.ToPathParameterString(actionId),
+ ValueConvert.ToPathParameterString(id)
+ ),
+ Headers = _headers,
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ var responseData = JsonUtils.Deserialize(
+ responseBody
+ )!;
+ return new WithRawResponse()
+ {
+ Data = responseData,
+ RawResponse = new RawResponse()
+ {
+ StatusCode = response.Raw.StatusCode,
+ Url = response.Raw.RequestMessage?.RequestUri ?? new Uri("about:blank"),
+ Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
+ },
+ };
+ }
+ catch (JsonException e)
+ {
+ throw new ManagementApiException(
+ "Failed to deserialize response",
+ response.StatusCode,
+ responseBody,
+ e
+ );
+ }
+ }
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ switch (response.StatusCode)
+ {
+ case 400:
+ throw new BadRequestError(JsonUtils.Deserialize(responseBody));
+ case 401:
+ throw new UnauthorizedError(JsonUtils.Deserialize(responseBody));
+ case 403:
+ throw new ForbiddenError(JsonUtils.Deserialize(responseBody));
+ case 404:
+ throw new NotFoundError(JsonUtils.Deserialize(responseBody));
+ case 429:
+ throw new TooManyRequestsError(JsonUtils.Deserialize(responseBody));
+ }
+ }
+ catch (JsonException)
+ {
+ // unable to map error response, throwing generic error
+ }
+ throw new ManagementApiException(
+ $"Error with status code {response.StatusCode}",
+ response.StatusCode,
+ responseBody
+ );
+ }
+ }
+
+ private async Task> DeployAsyncCore(
+ string actionId,
+ string id,
+ Optional request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ var _headers = await new Auth0.ManagementApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ BaseUrl = _client.Options.BaseUrl,
+ Method = HttpMethod.Post,
+ Path = string.Format(
+ "actions/actions/{0}/versions/{1}/deploy",
+ ValueConvert.ToPathParameterString(actionId),
+ ValueConvert.ToPathParameterString(id)
+ ),
+ Body = request,
+ Headers = _headers,
+ ContentType = "application/json",
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ var responseData = JsonUtils.Deserialize(
+ responseBody
+ )!;
+ return new WithRawResponse()
+ {
+ Data = responseData,
+ RawResponse = new RawResponse()
+ {
+ StatusCode = response.Raw.StatusCode,
+ Url = response.Raw.RequestMessage?.RequestUri ?? new Uri("about:blank"),
+ Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
+ },
+ };
+ }
+ catch (JsonException e)
+ {
+ throw new ManagementApiException(
+ "Failed to deserialize response",
+ response.StatusCode,
+ responseBody,
+ e
+ );
+ }
+ }
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ switch (response.StatusCode)
+ {
+ case 400:
+ throw new BadRequestError(JsonUtils.Deserialize(responseBody));
+ case 401:
+ throw new UnauthorizedError(JsonUtils.Deserialize(responseBody));
+ case 403:
+ throw new ForbiddenError(JsonUtils.Deserialize(responseBody));
+ case 429:
+ throw new TooManyRequestsError(JsonUtils.Deserialize(responseBody));
+ }
+ }
+ catch (JsonException)
+ {
+ // unable to map error response, throwing generic error
+ }
+ throw new ManagementApiException(
+ $"Error with status code {response.StatusCode}",
+ response.StatusCode,
+ responseBody
+ );
+ }
+ }
+
+ ///
+ /// Retrieve all of an action's versions. An action version is created whenever an action is deployed. An action version is immutable, once created.
+ ///
+ ///
+ /// await client.Actions.Versions.ListAsync(
+ /// "actionId",
+ /// new ListActionVersionsRequestParameters { Page = 1, PerPage = 1 }
+ /// );
+ ///
+ public async Task> ListAsync(
+ string actionId,
+ ListActionVersionsRequestParameters request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ request = request with { };
+ var pager = await OffsetPager<
+ ListActionVersionsRequestParameters,
+ RequestOptions?,
+ ListActionVersionsPaginatedResponseContent,
+ int?,
+ int?,
+ ActionVersion
+ >
+ .CreateInstanceAsync(
+ request,
+ options,
+ async (request, options, cancellationToken) =>
+ await ListInternalAsync(actionId, request, options, cancellationToken)
+ .ConfigureAwait(false),
+ request => request.Page.GetValueOrDefault(0),
+ (request, offset) =>
+ {
+ request.Page = offset;
+ },
+ request => request.PerPage.GetValueOrDefault(0),
+ response => response.Versions?.ToList(),
+ null,
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ return pager;
+ }
+
+ ///
+ /// Retrieve a specific version of an action. An action version is created whenever an action is deployed. An action version is immutable, once created.
+ ///
+ ///
+ /// await client.Actions.Versions.GetAsync("actionId", "id");
+ ///
+ public WithRawResponseTask GetAsync(
+ string actionId,
+ string id,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ return new WithRawResponseTask(
+ GetAsyncCore(actionId, id, options, cancellationToken)
+ );
+ }
+
+ ///
+ /// Performs the equivalent of a roll-back of an action to an earlier, specified version. Creates a new, deployed action version that is identical to the specified version. If this action is currently bound to a trigger, the system will begin executing the newly-created version immediately.
+ ///
+ ///
+ /// await client.Actions.Versions.DeployAsync(
+ /// "actionId",
+ /// "id",
+ /// new DeployActionVersionRequestBodyParams()
+ /// );
+ ///
+ public WithRawResponseTask DeployAsync(
+ string actionId,
+ string id,
+ Optional request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ return new WithRawResponseTask(
+ DeployAsyncCore(actionId, id, request, options, cancellationToken)
+ );
+ }
+}
diff --git a/src/Auth0.ManagementApi/Anomaly/AnomalyClient.cs b/src/Auth0.ManagementApi/Anomaly/AnomalyClient.cs
new file mode 100644
index 000000000..bb0e23707
--- /dev/null
+++ b/src/Auth0.ManagementApi/Anomaly/AnomalyClient.cs
@@ -0,0 +1,16 @@
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi.Anomaly;
+
+public partial class AnomalyClient : IAnomalyClient
+{
+ private RawClient _client;
+
+ internal AnomalyClient(RawClient client)
+ {
+ _client = client;
+ Blocks = new BlocksClient(_client);
+ }
+
+ public IBlocksClient Blocks { get; }
+}
diff --git a/src/Auth0.ManagementApi/Anomaly/Blocks/BlocksClient.cs b/src/Auth0.ManagementApi/Anomaly/Blocks/BlocksClient.cs
new file mode 100644
index 000000000..0fe5ebbf7
--- /dev/null
+++ b/src/Auth0.ManagementApi/Anomaly/Blocks/BlocksClient.cs
@@ -0,0 +1,149 @@
+using System.Text.Json;
+using Auth0.ManagementApi;
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi.Anomaly;
+
+public partial class BlocksClient : IBlocksClient
+{
+ private RawClient _client;
+
+ internal BlocksClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ ///
+ /// Check if the given IP address is blocked via the Suspicious IP Throttling due to multiple suspicious attempts.
+ ///
+ ///
+ /// await client.Anomaly.Blocks.CheckIpAsync("id");
+ ///
+ public async Task CheckIpAsync(
+ string id,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ var _headers = await new Auth0.ManagementApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ BaseUrl = _client.Options.BaseUrl,
+ Method = HttpMethod.Get,
+ Path = string.Format(
+ "anomaly/blocks/ips/{0}",
+ ValueConvert.ToPathParameterString(id)
+ ),
+ Headers = _headers,
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return;
+ }
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ switch (response.StatusCode)
+ {
+ case 400:
+ throw new BadRequestError(JsonUtils.Deserialize(responseBody));
+ case 401:
+ throw new UnauthorizedError(JsonUtils.Deserialize(responseBody));
+ case 403:
+ throw new ForbiddenError(JsonUtils.Deserialize(responseBody));
+ case 404:
+ throw new NotFoundError(JsonUtils.Deserialize(responseBody));
+ case 429:
+ throw new TooManyRequestsError(JsonUtils.Deserialize(responseBody));
+ }
+ }
+ catch (JsonException)
+ {
+ // unable to map error response, throwing generic error
+ }
+ throw new ManagementApiException(
+ $"Error with status code {response.StatusCode}",
+ response.StatusCode,
+ responseBody
+ );
+ }
+ }
+
+ ///
+ /// Remove a block imposed by Suspicious IP Throttling for the given IP address.
+ ///
+ ///
+ /// await client.Anomaly.Blocks.UnblockIpAsync("id");
+ ///
+ public async Task UnblockIpAsync(
+ string id,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ var _headers = await new Auth0.ManagementApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ BaseUrl = _client.Options.BaseUrl,
+ Method = HttpMethod.Delete,
+ Path = string.Format(
+ "anomaly/blocks/ips/{0}",
+ ValueConvert.ToPathParameterString(id)
+ ),
+ Headers = _headers,
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return;
+ }
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ switch (response.StatusCode)
+ {
+ case 400:
+ throw new BadRequestError(JsonUtils.Deserialize(responseBody));
+ case 401:
+ throw new UnauthorizedError(JsonUtils.Deserialize(responseBody));
+ case 403:
+ throw new ForbiddenError(JsonUtils.Deserialize(responseBody));
+ case 429:
+ throw new TooManyRequestsError(JsonUtils.Deserialize(responseBody));
+ }
+ }
+ catch (JsonException)
+ {
+ // unable to map error response, throwing generic error
+ }
+ throw new ManagementApiException(
+ $"Error with status code {response.StatusCode}",
+ response.StatusCode,
+ responseBody
+ );
+ }
+ }
+}
diff --git a/src/Auth0.ManagementApi/Anomaly/Blocks/IBlocksClient.cs b/src/Auth0.ManagementApi/Anomaly/Blocks/IBlocksClient.cs
new file mode 100644
index 000000000..a5bdfc975
--- /dev/null
+++ b/src/Auth0.ManagementApi/Anomaly/Blocks/IBlocksClient.cs
@@ -0,0 +1,24 @@
+using Auth0.ManagementApi;
+
+namespace Auth0.ManagementApi.Anomaly;
+
+public partial interface IBlocksClient
+{
+ ///
+ /// Check if the given IP address is blocked via the Suspicious IP Throttling due to multiple suspicious attempts.
+ ///
+ Task CheckIpAsync(
+ string id,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ );
+
+ ///
+ /// Remove a block imposed by Suspicious IP Throttling for the given IP address.
+ ///
+ Task UnblockIpAsync(
+ string id,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ );
+}
diff --git a/src/Auth0.ManagementApi/Anomaly/IAnomalyClient.cs b/src/Auth0.ManagementApi/Anomaly/IAnomalyClient.cs
new file mode 100644
index 000000000..609856680
--- /dev/null
+++ b/src/Auth0.ManagementApi/Anomaly/IAnomalyClient.cs
@@ -0,0 +1,6 @@
+namespace Auth0.ManagementApi.Anomaly;
+
+public partial interface IAnomalyClient
+{
+ public IBlocksClient Blocks { get; }
+}
diff --git a/src/Auth0.ManagementApi/AssemblyInfo.cs b/src/Auth0.ManagementApi/AssemblyInfo.cs
deleted file mode 100644
index 6f15ab4f6..000000000
--- a/src/Auth0.ManagementApi/AssemblyInfo.cs
+++ /dev/null
@@ -1,3 +0,0 @@
-using System.Runtime.CompilerServices;
-
-[assembly: InternalsVisibleTo("Auth0.ManagementApi.IntegrationTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100453e57bfa7549abf0f1775df9384d2f279d25c2ab4c78d5a69d7e6da9567d2b984da533229a0d530a3b75c7f5a12c341799b448102995b8a123d1288aa12ca3c1c354c3da97e64626d1223ca7c6e95cba845bce6edcee8b326c2cd015cc84995e5b630ef5c7fa69928dea64a53ee71a493267de7e18d0e9f31e1e00bb8e01cae")]
diff --git a/src/Auth0.ManagementApi/AttackProtection/AttackProtectionClient.cs b/src/Auth0.ManagementApi/AttackProtection/AttackProtectionClient.cs
new file mode 100644
index 000000000..43d6366c4
--- /dev/null
+++ b/src/Auth0.ManagementApi/AttackProtection/AttackProtectionClient.cs
@@ -0,0 +1,28 @@
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi.AttackProtection;
+
+public partial class AttackProtectionClient : IAttackProtectionClient
+{
+ private RawClient _client;
+
+ internal AttackProtectionClient(RawClient client)
+ {
+ _client = client;
+ BotDetection = new BotDetectionClient(_client);
+ BreachedPasswordDetection = new BreachedPasswordDetectionClient(_client);
+ BruteForceProtection = new BruteForceProtectionClient(_client);
+ Captcha = new CaptchaClient(_client);
+ SuspiciousIpThrottling = new SuspiciousIpThrottlingClient(_client);
+ }
+
+ public IBotDetectionClient BotDetection { get; }
+
+ public IBreachedPasswordDetectionClient BreachedPasswordDetection { get; }
+
+ public IBruteForceProtectionClient BruteForceProtection { get; }
+
+ public ICaptchaClient Captcha { get; }
+
+ public ISuspiciousIpThrottlingClient SuspiciousIpThrottling { get; }
+}
diff --git a/src/Auth0.ManagementApi/AttackProtection/BotDetection/BotDetectionClient.cs b/src/Auth0.ManagementApi/AttackProtection/BotDetection/BotDetectionClient.cs
new file mode 100644
index 000000000..6622a6841
--- /dev/null
+++ b/src/Auth0.ManagementApi/AttackProtection/BotDetection/BotDetectionClient.cs
@@ -0,0 +1,217 @@
+using System.Text.Json;
+using Auth0.ManagementApi;
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi.AttackProtection;
+
+public partial class BotDetectionClient : IBotDetectionClient
+{
+ private RawClient _client;
+
+ internal BotDetectionClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ private async Task> GetAsyncCore(
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ var _headers = await new Auth0.ManagementApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ BaseUrl = _client.Options.BaseUrl,
+ Method = HttpMethod.Get,
+ Path = "attack-protection/bot-detection",
+ Headers = _headers,
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ var responseData = JsonUtils.Deserialize(
+ responseBody
+ )!;
+ return new WithRawResponse()
+ {
+ Data = responseData,
+ RawResponse = new RawResponse()
+ {
+ StatusCode = response.Raw.StatusCode,
+ Url = response.Raw.RequestMessage?.RequestUri ?? new Uri("about:blank"),
+ Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
+ },
+ };
+ }
+ catch (JsonException e)
+ {
+ throw new ManagementApiException(
+ "Failed to deserialize response",
+ response.StatusCode,
+ responseBody,
+ e
+ );
+ }
+ }
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ switch (response.StatusCode)
+ {
+ case 401:
+ throw new UnauthorizedError(JsonUtils.Deserialize(responseBody));
+ case 403:
+ throw new ForbiddenError(JsonUtils.Deserialize(responseBody));
+ case 404:
+ throw new NotFoundError(JsonUtils.Deserialize(responseBody));
+ case 429:
+ throw new TooManyRequestsError(JsonUtils.Deserialize(responseBody));
+ }
+ }
+ catch (JsonException)
+ {
+ // unable to map error response, throwing generic error
+ }
+ throw new ManagementApiException(
+ $"Error with status code {response.StatusCode}",
+ response.StatusCode,
+ responseBody
+ );
+ }
+ }
+
+ private async Task> UpdateAsyncCore(
+ UpdateBotDetectionSettingsRequestContent request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ var _headers = await new Auth0.ManagementApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ BaseUrl = _client.Options.BaseUrl,
+ Method = HttpMethodExtensions.Patch,
+ Path = "attack-protection/bot-detection",
+ Body = request,
+ Headers = _headers,
+ ContentType = "application/json",
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ var responseData = JsonUtils.Deserialize(
+ responseBody
+ )!;
+ return new WithRawResponse()
+ {
+ Data = responseData,
+ RawResponse = new RawResponse()
+ {
+ StatusCode = response.Raw.StatusCode,
+ Url = response.Raw.RequestMessage?.RequestUri ?? new Uri("about:blank"),
+ Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
+ },
+ };
+ }
+ catch (JsonException e)
+ {
+ throw new ManagementApiException(
+ "Failed to deserialize response",
+ response.StatusCode,
+ responseBody,
+ e
+ );
+ }
+ }
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ switch (response.StatusCode)
+ {
+ case 400:
+ throw new BadRequestError(JsonUtils.Deserialize(responseBody));
+ case 401:
+ throw new UnauthorizedError(JsonUtils.Deserialize(responseBody));
+ case 403:
+ throw new ForbiddenError(JsonUtils.Deserialize(responseBody));
+ case 404:
+ throw new NotFoundError(JsonUtils.Deserialize(responseBody));
+ case 429:
+ throw new TooManyRequestsError(JsonUtils.Deserialize(responseBody));
+ }
+ }
+ catch (JsonException)
+ {
+ // unable to map error response, throwing generic error
+ }
+ throw new ManagementApiException(
+ $"Error with status code {response.StatusCode}",
+ response.StatusCode,
+ responseBody
+ );
+ }
+ }
+
+ ///
+ /// Get the Bot Detection configuration of your tenant.
+ ///
+ ///
+ /// await client.AttackProtection.BotDetection.GetAsync();
+ ///
+ public WithRawResponseTask GetAsync(
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ return new WithRawResponseTask(
+ GetAsyncCore(options, cancellationToken)
+ );
+ }
+
+ ///
+ /// Update the Bot Detection configuration of your tenant.
+ ///
+ ///
+ /// await client.AttackProtection.BotDetection.UpdateAsync(
+ /// new UpdateBotDetectionSettingsRequestContent()
+ /// );
+ ///
+ public WithRawResponseTask UpdateAsync(
+ UpdateBotDetectionSettingsRequestContent request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ return new WithRawResponseTask(
+ UpdateAsyncCore(request, options, cancellationToken)
+ );
+ }
+}
diff --git a/src/Auth0.ManagementApi/AttackProtection/BotDetection/IBotDetectionClient.cs b/src/Auth0.ManagementApi/AttackProtection/BotDetection/IBotDetectionClient.cs
new file mode 100644
index 000000000..a3a13c7ad
--- /dev/null
+++ b/src/Auth0.ManagementApi/AttackProtection/BotDetection/IBotDetectionClient.cs
@@ -0,0 +1,23 @@
+using Auth0.ManagementApi;
+
+namespace Auth0.ManagementApi.AttackProtection;
+
+public partial interface IBotDetectionClient
+{
+ ///
+ /// Get the Bot Detection configuration of your tenant.
+ ///
+ WithRawResponseTask GetAsync(
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ );
+
+ ///
+ /// Update the Bot Detection configuration of your tenant.
+ ///
+ WithRawResponseTask UpdateAsync(
+ UpdateBotDetectionSettingsRequestContent request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ );
+}
diff --git a/src/Auth0.ManagementApi/AttackProtection/BotDetection/Requests/UpdateBotDetectionSettingsRequestContent.cs b/src/Auth0.ManagementApi/AttackProtection/BotDetection/Requests/UpdateBotDetectionSettingsRequestContent.cs
new file mode 100644
index 000000000..c92f973e6
--- /dev/null
+++ b/src/Auth0.ManagementApi/AttackProtection/BotDetection/Requests/UpdateBotDetectionSettingsRequestContent.cs
@@ -0,0 +1,39 @@
+using System.Text.Json.Serialization;
+using Auth0.ManagementApi;
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi.AttackProtection;
+
+[Serializable]
+public record UpdateBotDetectionSettingsRequestContent
+{
+ [Optional]
+ [JsonPropertyName("bot_detection_level")]
+ public BotDetectionLevelEnum? BotDetectionLevel { get; set; }
+
+ [Optional]
+ [JsonPropertyName("challenge_password_policy")]
+ public BotDetectionChallengePolicyPasswordFlowEnum? ChallengePasswordPolicy { get; set; }
+
+ [Optional]
+ [JsonPropertyName("challenge_passwordless_policy")]
+ public BotDetectionChallengePolicyPasswordlessFlowEnum? ChallengePasswordlessPolicy { get; set; }
+
+ [Optional]
+ [JsonPropertyName("challenge_password_reset_policy")]
+ public BotDetectionChallengePolicyPasswordResetFlowEnum? ChallengePasswordResetPolicy { get; set; }
+
+ [Optional]
+ [JsonPropertyName("allowlist")]
+ public IEnumerable? Allowlist { get; set; }
+
+ [Optional]
+ [JsonPropertyName("monitoring_mode_enabled")]
+ public bool? MonitoringModeEnabled { get; set; }
+
+ ///
+ public override string ToString()
+ {
+ return JsonUtils.Serialize(this);
+ }
+}
diff --git a/src/Auth0.ManagementApi/AttackProtection/BreachedPasswordDetection/BreachedPasswordDetectionClient.cs b/src/Auth0.ManagementApi/AttackProtection/BreachedPasswordDetection/BreachedPasswordDetectionClient.cs
new file mode 100644
index 000000000..628edebcf
--- /dev/null
+++ b/src/Auth0.ManagementApi/AttackProtection/BreachedPasswordDetection/BreachedPasswordDetectionClient.cs
@@ -0,0 +1,216 @@
+using System.Text.Json;
+using Auth0.ManagementApi;
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi.AttackProtection;
+
+public partial class BreachedPasswordDetectionClient : IBreachedPasswordDetectionClient
+{
+ private RawClient _client;
+
+ internal BreachedPasswordDetectionClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ private async Task<
+ WithRawResponse
+ > GetAsyncCore(RequestOptions? options = null, CancellationToken cancellationToken = default)
+ {
+ var _headers = await new Auth0.ManagementApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ BaseUrl = _client.Options.BaseUrl,
+ Method = HttpMethod.Get,
+ Path = "attack-protection/breached-password-detection",
+ Headers = _headers,
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ var responseData =
+ JsonUtils.Deserialize(
+ responseBody
+ )!;
+ return new WithRawResponse()
+ {
+ Data = responseData,
+ RawResponse = new RawResponse()
+ {
+ StatusCode = response.Raw.StatusCode,
+ Url = response.Raw.RequestMessage?.RequestUri ?? new Uri("about:blank"),
+ Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
+ },
+ };
+ }
+ catch (JsonException e)
+ {
+ throw new ManagementApiException(
+ "Failed to deserialize response",
+ response.StatusCode,
+ responseBody,
+ e
+ );
+ }
+ }
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ switch (response.StatusCode)
+ {
+ case 401:
+ throw new UnauthorizedError(JsonUtils.Deserialize(responseBody));
+ case 403:
+ throw new ForbiddenError(JsonUtils.Deserialize(responseBody));
+ case 429:
+ throw new TooManyRequestsError(JsonUtils.Deserialize(responseBody));
+ }
+ }
+ catch (JsonException)
+ {
+ // unable to map error response, throwing generic error
+ }
+ throw new ManagementApiException(
+ $"Error with status code {response.StatusCode}",
+ response.StatusCode,
+ responseBody
+ );
+ }
+ }
+
+ private async Task<
+ WithRawResponse
+ > UpdateAsyncCore(
+ UpdateBreachedPasswordDetectionSettingsRequestContent request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ var _headers = await new Auth0.ManagementApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ BaseUrl = _client.Options.BaseUrl,
+ Method = HttpMethodExtensions.Patch,
+ Path = "attack-protection/breached-password-detection",
+ Body = request,
+ Headers = _headers,
+ ContentType = "application/json",
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ var responseData =
+ JsonUtils.Deserialize(
+ responseBody
+ )!;
+ return new WithRawResponse()
+ {
+ Data = responseData,
+ RawResponse = new RawResponse()
+ {
+ StatusCode = response.Raw.StatusCode,
+ Url = response.Raw.RequestMessage?.RequestUri ?? new Uri("about:blank"),
+ Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
+ },
+ };
+ }
+ catch (JsonException e)
+ {
+ throw new ManagementApiException(
+ "Failed to deserialize response",
+ response.StatusCode,
+ responseBody,
+ e
+ );
+ }
+ }
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ switch (response.StatusCode)
+ {
+ case 400:
+ throw new BadRequestError(JsonUtils.Deserialize(responseBody));
+ case 401:
+ throw new UnauthorizedError(JsonUtils.Deserialize(responseBody));
+ case 403:
+ throw new ForbiddenError(JsonUtils.Deserialize(responseBody));
+ case 429:
+ throw new TooManyRequestsError(JsonUtils.Deserialize(responseBody));
+ }
+ }
+ catch (JsonException)
+ {
+ // unable to map error response, throwing generic error
+ }
+ throw new ManagementApiException(
+ $"Error with status code {response.StatusCode}",
+ response.StatusCode,
+ responseBody
+ );
+ }
+ }
+
+ ///
+ /// Retrieve details of the Breached Password Detection configuration of your tenant.
+ ///
+ ///
+ /// await client.AttackProtection.BreachedPasswordDetection.GetAsync();
+ ///
+ public WithRawResponseTask GetAsync(
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ return new WithRawResponseTask(
+ GetAsyncCore(options, cancellationToken)
+ );
+ }
+
+ ///
+ /// Update details of the Breached Password Detection configuration of your tenant.
+ ///
+ ///
+ /// await client.AttackProtection.BreachedPasswordDetection.UpdateAsync(
+ /// new UpdateBreachedPasswordDetectionSettingsRequestContent()
+ /// );
+ ///
+ public WithRawResponseTask UpdateAsync(
+ UpdateBreachedPasswordDetectionSettingsRequestContent request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ return new WithRawResponseTask(
+ UpdateAsyncCore(request, options, cancellationToken)
+ );
+ }
+}
diff --git a/src/Auth0.ManagementApi/AttackProtection/BreachedPasswordDetection/IBreachedPasswordDetectionClient.cs b/src/Auth0.ManagementApi/AttackProtection/BreachedPasswordDetection/IBreachedPasswordDetectionClient.cs
new file mode 100644
index 000000000..12c12bd53
--- /dev/null
+++ b/src/Auth0.ManagementApi/AttackProtection/BreachedPasswordDetection/IBreachedPasswordDetectionClient.cs
@@ -0,0 +1,23 @@
+using Auth0.ManagementApi;
+
+namespace Auth0.ManagementApi.AttackProtection;
+
+public partial interface IBreachedPasswordDetectionClient
+{
+ ///
+ /// Retrieve details of the Breached Password Detection configuration of your tenant.
+ ///
+ WithRawResponseTask GetAsync(
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ );
+
+ ///
+ /// Update details of the Breached Password Detection configuration of your tenant.
+ ///
+ WithRawResponseTask UpdateAsync(
+ UpdateBreachedPasswordDetectionSettingsRequestContent request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ );
+}
diff --git a/src/Auth0.ManagementApi/AttackProtection/BreachedPasswordDetection/Requests/UpdateBreachedPasswordDetectionSettingsRequestContent.cs b/src/Auth0.ManagementApi/AttackProtection/BreachedPasswordDetection/Requests/UpdateBreachedPasswordDetectionSettingsRequestContent.cs
new file mode 100644
index 000000000..7cb943ea4
--- /dev/null
+++ b/src/Auth0.ManagementApi/AttackProtection/BreachedPasswordDetection/Requests/UpdateBreachedPasswordDetectionSettingsRequestContent.cs
@@ -0,0 +1,46 @@
+using System.Text.Json.Serialization;
+using Auth0.ManagementApi;
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi.AttackProtection;
+
+[Serializable]
+public record UpdateBreachedPasswordDetectionSettingsRequestContent
+{
+ ///
+ /// Whether or not breached password detection is active.
+ ///
+ [Optional]
+ [JsonPropertyName("enabled")]
+ public bool? Enabled { get; set; }
+
+ ///
+ /// Action to take when a breached password is detected during a login.
+ /// Possible values: block, user_notification, admin_notification.
+ ///
+ [Optional]
+ [JsonPropertyName("shields")]
+ public IEnumerable? Shields { get; set; }
+
+ ///
+ /// When "admin_notification" is enabled, determines how often email notifications are sent.
+ /// Possible values: immediately, daily, weekly, monthly.
+ ///
+ [Optional]
+ [JsonPropertyName("admin_notification_frequency")]
+ public IEnumerable? AdminNotificationFrequency { get; set; }
+
+ [Optional]
+ [JsonPropertyName("method")]
+ public BreachedPasswordDetectionMethodEnum? Method { get; set; }
+
+ [Optional]
+ [JsonPropertyName("stage")]
+ public BreachedPasswordDetectionStage? Stage { get; set; }
+
+ ///
+ public override string ToString()
+ {
+ return JsonUtils.Serialize(this);
+ }
+}
diff --git a/src/Auth0.ManagementApi/AttackProtection/BruteForceProtection/BruteForceProtectionClient.cs b/src/Auth0.ManagementApi/AttackProtection/BruteForceProtection/BruteForceProtectionClient.cs
new file mode 100644
index 000000000..3f3606266
--- /dev/null
+++ b/src/Auth0.ManagementApi/AttackProtection/BruteForceProtection/BruteForceProtectionClient.cs
@@ -0,0 +1,213 @@
+using System.Text.Json;
+using Auth0.ManagementApi;
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi.AttackProtection;
+
+public partial class BruteForceProtectionClient : IBruteForceProtectionClient
+{
+ private RawClient _client;
+
+ internal BruteForceProtectionClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ private async Task> GetAsyncCore(
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ var _headers = await new Auth0.ManagementApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ BaseUrl = _client.Options.BaseUrl,
+ Method = HttpMethod.Get,
+ Path = "attack-protection/brute-force-protection",
+ Headers = _headers,
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ var responseData = JsonUtils.Deserialize(
+ responseBody
+ )!;
+ return new WithRawResponse()
+ {
+ Data = responseData,
+ RawResponse = new RawResponse()
+ {
+ StatusCode = response.Raw.StatusCode,
+ Url = response.Raw.RequestMessage?.RequestUri ?? new Uri("about:blank"),
+ Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
+ },
+ };
+ }
+ catch (JsonException e)
+ {
+ throw new ManagementApiException(
+ "Failed to deserialize response",
+ response.StatusCode,
+ responseBody,
+ e
+ );
+ }
+ }
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ switch (response.StatusCode)
+ {
+ case 401:
+ throw new UnauthorizedError(JsonUtils.Deserialize(responseBody));
+ case 403:
+ throw new ForbiddenError(JsonUtils.Deserialize(responseBody));
+ case 429:
+ throw new TooManyRequestsError(JsonUtils.Deserialize(responseBody));
+ }
+ }
+ catch (JsonException)
+ {
+ // unable to map error response, throwing generic error
+ }
+ throw new ManagementApiException(
+ $"Error with status code {response.StatusCode}",
+ response.StatusCode,
+ responseBody
+ );
+ }
+ }
+
+ private async Task> UpdateAsyncCore(
+ UpdateBruteForceSettingsRequestContent request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ var _headers = await new Auth0.ManagementApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ BaseUrl = _client.Options.BaseUrl,
+ Method = HttpMethodExtensions.Patch,
+ Path = "attack-protection/brute-force-protection",
+ Body = request,
+ Headers = _headers,
+ ContentType = "application/json",
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ var responseData = JsonUtils.Deserialize(
+ responseBody
+ )!;
+ return new WithRawResponse()
+ {
+ Data = responseData,
+ RawResponse = new RawResponse()
+ {
+ StatusCode = response.Raw.StatusCode,
+ Url = response.Raw.RequestMessage?.RequestUri ?? new Uri("about:blank"),
+ Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
+ },
+ };
+ }
+ catch (JsonException e)
+ {
+ throw new ManagementApiException(
+ "Failed to deserialize response",
+ response.StatusCode,
+ responseBody,
+ e
+ );
+ }
+ }
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ switch (response.StatusCode)
+ {
+ case 400:
+ throw new BadRequestError(JsonUtils.Deserialize(responseBody));
+ case 401:
+ throw new UnauthorizedError(JsonUtils.Deserialize(responseBody));
+ case 403:
+ throw new ForbiddenError(JsonUtils.Deserialize(responseBody));
+ case 429:
+ throw new TooManyRequestsError(JsonUtils.Deserialize(responseBody));
+ }
+ }
+ catch (JsonException)
+ {
+ // unable to map error response, throwing generic error
+ }
+ throw new ManagementApiException(
+ $"Error with status code {response.StatusCode}",
+ response.StatusCode,
+ responseBody
+ );
+ }
+ }
+
+ ///
+ /// Retrieve details of the Brute-force Protection configuration of your tenant.
+ ///
+ ///
+ /// await client.AttackProtection.BruteForceProtection.GetAsync();
+ ///
+ public WithRawResponseTask GetAsync(
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ return new WithRawResponseTask(
+ GetAsyncCore(options, cancellationToken)
+ );
+ }
+
+ ///
+ /// Update the Brute-force Protection configuration of your tenant.
+ ///
+ ///
+ /// await client.AttackProtection.BruteForceProtection.UpdateAsync(
+ /// new UpdateBruteForceSettingsRequestContent()
+ /// );
+ ///
+ public WithRawResponseTask UpdateAsync(
+ UpdateBruteForceSettingsRequestContent request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ return new WithRawResponseTask(
+ UpdateAsyncCore(request, options, cancellationToken)
+ );
+ }
+}
diff --git a/src/Auth0.ManagementApi/AttackProtection/BruteForceProtection/IBruteForceProtectionClient.cs b/src/Auth0.ManagementApi/AttackProtection/BruteForceProtection/IBruteForceProtectionClient.cs
new file mode 100644
index 000000000..514d5c293
--- /dev/null
+++ b/src/Auth0.ManagementApi/AttackProtection/BruteForceProtection/IBruteForceProtectionClient.cs
@@ -0,0 +1,23 @@
+using Auth0.ManagementApi;
+
+namespace Auth0.ManagementApi.AttackProtection;
+
+public partial interface IBruteForceProtectionClient
+{
+ ///
+ /// Retrieve details of the Brute-force Protection configuration of your tenant.
+ ///
+ WithRawResponseTask GetAsync(
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ );
+
+ ///
+ /// Update the Brute-force Protection configuration of your tenant.
+ ///
+ WithRawResponseTask UpdateAsync(
+ UpdateBruteForceSettingsRequestContent request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ );
+}
diff --git a/src/Auth0.ManagementApi/AttackProtection/BruteForceProtection/Requests/UpdateBruteForceSettingsRequestContent.cs b/src/Auth0.ManagementApi/AttackProtection/BruteForceProtection/Requests/UpdateBruteForceSettingsRequestContent.cs
new file mode 100644
index 000000000..db68a2e3e
--- /dev/null
+++ b/src/Auth0.ManagementApi/AttackProtection/BruteForceProtection/Requests/UpdateBruteForceSettingsRequestContent.cs
@@ -0,0 +1,51 @@
+using System.Text.Json.Serialization;
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi.AttackProtection;
+
+[Serializable]
+public record UpdateBruteForceSettingsRequestContent
+{
+ ///
+ /// Whether or not brute force attack protections are active.
+ ///
+ [Optional]
+ [JsonPropertyName("enabled")]
+ public bool? Enabled { get; set; }
+
+ ///
+ /// Action to take when a brute force protection threshold is violated.
+ /// Possible values: block, user_notification.
+ ///
+ [Optional]
+ [JsonPropertyName("shields")]
+ public IEnumerable? Shields { get; set; }
+
+ ///
+ /// List of trusted IP addresses that will not have attack protection enforced against them.
+ ///
+ [Optional]
+ [JsonPropertyName("allowlist")]
+ public IEnumerable? Allowlist { get; set; }
+
+ ///
+ /// Account Lockout: Determines whether or not IP address is used when counting failed attempts.
+ /// Possible values: count_per_identifier_and_ip, count_per_identifier.
+ ///
+ [Optional]
+ [JsonPropertyName("mode")]
+ public UpdateBruteForceSettingsRequestContentMode? Mode { get; set; }
+
+ ///
+ /// Maximum number of unsuccessful attempts.
+ ///
+ [Optional]
+ [JsonPropertyName("max_attempts")]
+ public int? MaxAttempts { get; set; }
+
+ ///
+ public override string ToString()
+ {
+ return JsonUtils.Serialize(this);
+ }
+}
diff --git a/src/Auth0.ManagementApi/AttackProtection/BruteForceProtection/Types/UpdateBruteForceSettingsRequestContentMode.cs b/src/Auth0.ManagementApi/AttackProtection/BruteForceProtection/Types/UpdateBruteForceSettingsRequestContentMode.cs
new file mode 100644
index 000000000..714c4f189
--- /dev/null
+++ b/src/Auth0.ManagementApi/AttackProtection/BruteForceProtection/Types/UpdateBruteForceSettingsRequestContentMode.cs
@@ -0,0 +1,75 @@
+using System.Text.Json.Serialization;
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi.AttackProtection;
+
+[JsonConverter(typeof(StringEnumSerializer))]
+[Serializable]
+public readonly record struct UpdateBruteForceSettingsRequestContentMode : IStringEnum
+{
+ public static readonly UpdateBruteForceSettingsRequestContentMode CountPerIdentifierAndIp = new(
+ Values.CountPerIdentifierAndIp
+ );
+
+ public static readonly UpdateBruteForceSettingsRequestContentMode CountPerIdentifier = new(
+ Values.CountPerIdentifier
+ );
+
+ public UpdateBruteForceSettingsRequestContentMode(string value)
+ {
+ Value = value;
+ }
+
+ ///
+ /// The string value of the enum.
+ ///
+ public string Value { get; }
+
+ ///
+ /// Create a string enum with the given value.
+ ///
+ public static UpdateBruteForceSettingsRequestContentMode FromCustom(string value)
+ {
+ return new UpdateBruteForceSettingsRequestContentMode(value);
+ }
+
+ public bool Equals(string? other)
+ {
+ return Value.Equals(other);
+ }
+
+ ///
+ /// Returns the string value of the enum.
+ ///
+ public override string ToString()
+ {
+ return Value;
+ }
+
+ public static bool operator ==(
+ UpdateBruteForceSettingsRequestContentMode value1,
+ string value2
+ ) => value1.Value.Equals(value2);
+
+ public static bool operator !=(
+ UpdateBruteForceSettingsRequestContentMode value1,
+ string value2
+ ) => !value1.Value.Equals(value2);
+
+ public static explicit operator string(UpdateBruteForceSettingsRequestContentMode value) =>
+ value.Value;
+
+ public static explicit operator UpdateBruteForceSettingsRequestContentMode(string value) =>
+ new(value);
+
+ ///
+ /// Constant strings for enum values
+ ///
+ [Serializable]
+ public static class Values
+ {
+ public const string CountPerIdentifierAndIp = "count_per_identifier_and_ip";
+
+ public const string CountPerIdentifier = "count_per_identifier";
+ }
+}
diff --git a/src/Auth0.ManagementApi/AttackProtection/BruteForceProtection/Types/UpdateBruteForceSettingsRequestContentShieldsItem.cs b/src/Auth0.ManagementApi/AttackProtection/BruteForceProtection/Types/UpdateBruteForceSettingsRequestContentShieldsItem.cs
new file mode 100644
index 000000000..a0d18e536
--- /dev/null
+++ b/src/Auth0.ManagementApi/AttackProtection/BruteForceProtection/Types/UpdateBruteForceSettingsRequestContentShieldsItem.cs
@@ -0,0 +1,77 @@
+using System.Text.Json.Serialization;
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi.AttackProtection;
+
+[JsonConverter(typeof(StringEnumSerializer))]
+[Serializable]
+public readonly record struct UpdateBruteForceSettingsRequestContentShieldsItem : IStringEnum
+{
+ public static readonly UpdateBruteForceSettingsRequestContentShieldsItem Block = new(
+ Values.Block
+ );
+
+ public static readonly UpdateBruteForceSettingsRequestContentShieldsItem UserNotification = new(
+ Values.UserNotification
+ );
+
+ public UpdateBruteForceSettingsRequestContentShieldsItem(string value)
+ {
+ Value = value;
+ }
+
+ ///
+ /// The string value of the enum.
+ ///
+ public string Value { get; }
+
+ ///
+ /// Create a string enum with the given value.
+ ///
+ public static UpdateBruteForceSettingsRequestContentShieldsItem FromCustom(string value)
+ {
+ return new UpdateBruteForceSettingsRequestContentShieldsItem(value);
+ }
+
+ public bool Equals(string? other)
+ {
+ return Value.Equals(other);
+ }
+
+ ///
+ /// Returns the string value of the enum.
+ ///
+ public override string ToString()
+ {
+ return Value;
+ }
+
+ public static bool operator ==(
+ UpdateBruteForceSettingsRequestContentShieldsItem value1,
+ string value2
+ ) => value1.Value.Equals(value2);
+
+ public static bool operator !=(
+ UpdateBruteForceSettingsRequestContentShieldsItem value1,
+ string value2
+ ) => !value1.Value.Equals(value2);
+
+ public static explicit operator string(
+ UpdateBruteForceSettingsRequestContentShieldsItem value
+ ) => value.Value;
+
+ public static explicit operator UpdateBruteForceSettingsRequestContentShieldsItem(
+ string value
+ ) => new(value);
+
+ ///
+ /// Constant strings for enum values
+ ///
+ [Serializable]
+ public static class Values
+ {
+ public const string Block = "block";
+
+ public const string UserNotification = "user_notification";
+ }
+}
diff --git a/src/Auth0.ManagementApi/AttackProtection/Captcha/CaptchaClient.cs b/src/Auth0.ManagementApi/AttackProtection/Captcha/CaptchaClient.cs
new file mode 100644
index 000000000..a74c7082f
--- /dev/null
+++ b/src/Auth0.ManagementApi/AttackProtection/Captcha/CaptchaClient.cs
@@ -0,0 +1,218 @@
+using System.Text.Json;
+using Auth0.ManagementApi;
+using Auth0.ManagementApi.Core;
+
+namespace Auth0.ManagementApi.AttackProtection;
+
+public partial class CaptchaClient : ICaptchaClient
+{
+ private RawClient _client;
+
+ internal CaptchaClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ private async Task> GetAsyncCore(
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ var _headers = await new Auth0.ManagementApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ BaseUrl = _client.Options.BaseUrl,
+ Method = HttpMethod.Get,
+ Path = "attack-protection/captcha",
+ Headers = _headers,
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ var responseData = JsonUtils.Deserialize(
+ responseBody
+ )!;
+ return new WithRawResponse()
+ {
+ Data = responseData,
+ RawResponse = new RawResponse()
+ {
+ StatusCode = response.Raw.StatusCode,
+ Url = response.Raw.RequestMessage?.RequestUri ?? new Uri("about:blank"),
+ Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
+ },
+ };
+ }
+ catch (JsonException e)
+ {
+ throw new ManagementApiException(
+ "Failed to deserialize response",
+ response.StatusCode,
+ responseBody,
+ e
+ );
+ }
+ }
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ switch (response.StatusCode)
+ {
+ case 401:
+ throw new UnauthorizedError(JsonUtils.Deserialize(responseBody));
+ case 403:
+ throw new ForbiddenError(JsonUtils.Deserialize(responseBody));
+ case 404:
+ throw new NotFoundError(JsonUtils.Deserialize(responseBody));
+ case 429:
+ throw new TooManyRequestsError(JsonUtils.Deserialize(responseBody));
+ }
+ }
+ catch (JsonException)
+ {
+ // unable to map error response, throwing generic error
+ }
+ throw new ManagementApiException(
+ $"Error with status code {response.StatusCode}",
+ response.StatusCode,
+ responseBody
+ );
+ }
+ }
+
+ private async Task<
+ WithRawResponse
+ > UpdateAsyncCore(
+ UpdateAttackProtectionCaptchaRequestContent request,
+ RequestOptions? options = null,
+ CancellationToken cancellationToken = default
+ )
+ {
+ var _headers = await new Auth0.ManagementApi.Core.HeadersBuilder.Builder()
+ .Add(_client.Options.Headers)
+ .Add(_client.Options.AdditionalHeaders)
+ .Add(options?.AdditionalHeaders)
+ .BuildAsync()
+ .ConfigureAwait(false);
+ var response = await _client
+ .SendRequestAsync(
+ new JsonRequest
+ {
+ BaseUrl = _client.Options.BaseUrl,
+ Method = HttpMethodExtensions.Patch,
+ Path = "attack-protection/captcha",
+ Body = request,
+ Headers = _headers,
+ ContentType = "application/json",
+ Options = options,
+ },
+ cancellationToken
+ )
+ .ConfigureAwait(false);
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ var responseData =
+ JsonUtils.Deserialize(
+ responseBody
+ )!;
+ return new WithRawResponse()
+ {
+ Data = responseData,
+ RawResponse = new RawResponse()
+ {
+ StatusCode = response.Raw.StatusCode,
+ Url = response.Raw.RequestMessage?.RequestUri ?? new Uri("about:blank"),
+ Headers = ResponseHeaders.FromHttpResponseMessage(response.Raw),
+ },
+ };
+ }
+ catch (JsonException e)
+ {
+ throw new ManagementApiException(
+ "Failed to deserialize response",
+ response.StatusCode,
+ responseBody,
+ e
+ );
+ }
+ }
+ {
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ try
+ {
+ switch (response.StatusCode)
+ {
+ case 401:
+ throw new UnauthorizedError(JsonUtils.Deserialize(responseBody));
+ case 403:
+ throw new ForbiddenError(JsonUtils.Deserialize(responseBody));
+ case 404:
+ throw new NotFoundError(JsonUtils.Deserialize