diff --git a/package.json b/package.json
index a1ef0434a8..5a89d161e7 100644
--- a/package.json
+++ b/package.json
@@ -73,7 +73,7 @@
"dependencies": {
"uuid": "^11.1.1",
"jose": "^4.13.2",
- "auth0-legacy": "npm:auth0@^4.27.0"
+ "auth0-legacy": "npm:auth0@^4.37.1"
},
"devDependencies": {
"webpack": "^5.105.4",
@@ -84,7 +84,7 @@
"ts-jest": "^29.3.4",
"jest-environment-jsdom": "^29.7.0",
"msw": "2.11.2",
- "@types/node": "^18.19.70",
+ "@types/node": "^20.0.0",
"typescript": "~5.9.3",
"prettier": "3.8.1",
"typedoc": "^0.28.7",
diff --git a/pr-1348-description.md b/pr-1348-description.md
new file mode 100644
index 0000000000..4a72ad2002
--- /dev/null
+++ b/pr-1348-description.md
@@ -0,0 +1,65 @@
+feat: add rate limit policies, group/org role management, and user effective roles/permissions
+
+### Changes
+
+#### New Endpoints & Resources
+
+- **Rate Limit Policies** (`client.rateLimitPolicies.*`) — full CRUD: `list`, `create`, `get`, `update`, `delete`
+- **Group Roles** (`client.groups.roles.*`) — `list`, `create`, `delete` roles assigned to a group
+- **Roles Groups** (`client.roles.groups.*`) — list and manage groups associated with a role
+- **Organization Groups** (`client.organizations.groups.*`) — list groups within an organization
+- **Organization Group Roles** (`client.organizations.groups.roles.*`) — `list`, `create`, `delete` roles for an org group
+- **Organization Member Effective Roles** (`client.organizations.members.effectiveRoles.*`) — list effective roles for an org member, including group-sourced roles via `client.organizations.members.effectiveRoles.sources.groups.*`
+- **User Effective Permissions** (`client.users.effectivePermissions.*`) — list effective permissions for a user, with role-source drill-down via `client.users.effectivePermissions.sources.roles.*`
+- **User Effective Roles** (`client.users.effectiveRoles.*`) — list effective roles for a user, with group-source drill-down via `client.users.effectiveRoles.sources.groups.*`
+
+#### New Fields
+
+- **FedCM Login** (`fedcm_login`) — new field on client create/update to configure the Google FedCM prompt on New Universal Login
+
+#### Usage: Rate Limit Policies
+
+```typescript
+// List rate limit policies (paginated)
+const page = await client.rateLimitPolicies.list({ page: 0, per_page: 20 });
+
+// Create a new policy
+await client.rateLimitPolicies.create({
+ /* policy params */
+});
+
+// Get, update, delete by ID
+await client.rateLimitPolicies.get("id");
+await client.rateLimitPolicies.update("id", {
+ /* updated params */
+});
+await client.rateLimitPolicies.delete("id");
+```
+
+#### Usage: User Effective Roles & Permissions
+
+```typescript
+// List effective roles for a user
+const roles = await client.users.effectiveRoles.list("user_id", { page: 0 });
+
+// Drill down into group-sourced roles
+const groups = await client.users.effectiveRoles.sources.groups.list("user_id", { page: 0 });
+
+// List effective permissions
+const perms = await client.users.effectivePermissions.list("user_id", { page: 0 });
+
+// Drill into role sources of those permissions
+const roleSources = await client.users.effectivePermissions.sources.roles.list("user_id", { page: 0 });
+```
+
+#### Usage: Organization Groups
+
+```typescript
+// List groups in an organization
+const groups = await client.organizations.groups.list("org_id", { page: 0 });
+
+// Manage roles assigned to an org group
+await client.organizations.groups.roles.list("org_id", "group_id");
+await client.organizations.groups.roles.create("org_id", "group_id", { roles: ["role_id"] });
+await client.organizations.groups.roles.delete("org_id", "group_id", { roles: ["role_id"] });
+```
diff --git a/reference.md b/reference.md
index f1475b7f04..34dd2c3417 100644
--- a/reference.md
+++ b/reference.md
@@ -309,7 +309,7 @@ await client.actions.delete("id", {
-
-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.
+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.
@@ -1269,10 +1269,20 @@ await client.clients.previewCimdMetadata({
-
- Idempotent registration for Client ID Metadata Document (CIMD) clients.
- Uses external_client_id as the unique identifier for upsert operations.
- **Create:** Returns 201 when a new client is created (requires \
+Idempotent registration for Client ID Metadata Document (CIMD) clients.
+Uses external_client_id as the unique identifier for upsert operations.
+Create: Returns 201 when a new client is created (requires
create:clients scope).
+Update: Returns 200 when an existing client is updated (requires update:clients scope).
+
+This endpoint automatically:
+
+
+ - Fetches and validates the metadata document
+ - Maps CIMD fields to Auth0 client configuration
+ - Creates/rotates credentials from the JWKS
+ - Enforces CIMD security policies (HTTPS-only, no shared secrets)
+
@@ -2114,27 +2124,23 @@ await client.connectionProfiles.update("id");
-
-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.
+Retrieves detailed list of all [connections](https://auth0.com/docs/authenticate/identity-providers) 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
-
+- Offset pagination
+- Checkpoint pagination
Checkpoint pagination must be used if you need to retrieve more than 1000 connections.
-Checkpoint Pagination
+**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.
-
+- `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.
+**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.
@@ -2223,9 +2229,9 @@ const response = page.response;
-
-Creates a new connection according to the JSON object received in
body.
+Creates a new connection according to the JSON object received in `body`.
-Note: If a connection with the same name was recently deleted and had a large number of associated users, the deletion may still be processing. Creating a new connection with that name before the deletion completes may fail or produce unexpected results.
+**Note:** If a connection with the same name was recently deleted and had a large number of associated users, the deletion may still be processing. Creating a new connection with that name before the deletion completes may fail or produce unexpected results.
@@ -2291,7 +2297,7 @@ await client.connections.create({
-
-Retrieve details for a specified connection along with options that can be used for identity provider configuration.
+Retrieve details for a specified [connection](https://auth0.com/docs/authenticate/identity-providers) along with options that can be used for identity provider configuration.
@@ -2365,9 +2371,9 @@ await client.connections.get("id", {
-
-Removes a specific connection from your tenant. This action cannot be undone. Once removed, users can no longer use this connection to authenticate.
+Removes a specific [connection](https://auth0.com/docs/authenticate/identity-providers) from your tenant. This action cannot be undone. Once removed, users can no longer use this connection to authenticate.
-Note: If your connection has a large amount of users associated with it, please be aware that this operation can be long running after the response is returned and may impact concurrent create connection requests, if they use an identical connection name.
+**Note:** If your connection has a large amount of users associated with it, please be aware that this operation can be long running after the response is returned and may impact concurrent [create connection](https://auth0.com/docs/api/management/v2/connections/post-connections) requests, if they use an identical connection name.
@@ -2430,9 +2436,9 @@ await client.connections.delete("id");
-
-Update details for a specific connection, including option properties for identity provider configuration.
+Update details for a specific [connection](https://auth0.com/docs/authenticate/identity-providers), 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.
+**Note**: If you use the `options` parameter, the entire `options` object is overridden. To avoid partial data or other issues, ensure all parameters are present when using this option.
@@ -2503,7 +2509,7 @@ await client.connections.update("id");
-
-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
+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
@@ -2568,7 +2574,7 @@ await client.connections.checkStatus("id");
-
-Retrieve details on custom domains.
+Retrieve details on [custom domains](https://auth0.com/docs/custom-domains).
@@ -2966,12 +2972,22 @@ 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
+**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" }
+```json
+{ "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:
+
+```json
+{ "tls_policy": "recommended" }
+```
TLS Policies:
@@ -2980,7 +2996,7 @@ TLS Policies:
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.
+- The `compatible` TLS policy is no longer supported.
@@ -3115,12 +3131,12 @@ await client.customDomains.test("id");
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.
+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.
+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.
+[Learn more](https://auth0.com/docs/custom-domains#step-2-verify-ownership) about verifying custom domains that use Auth0 Managed certificates.
+[Learn more](https://auth0.com/docs/custom-domains/self-managed-certificates#step-2-verify-ownership) about verifying custom domains that use Self Managed certificates.
@@ -3185,7 +3201,7 @@ await client.customDomains.verify("id");
-
-Retrieve device credential information (
public_key, refresh_token, or rotating_refresh_token) associated with a specific user.
+Retrieve device credential information (`public_key`, `refresh_token`, or `rotating_refresh_token`) associated with a specific user.
@@ -3278,9 +3294,9 @@ const response = page.response;
-
-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.
+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.
+When refresh token rotation is enabled, the endpoint becomes consistent. For more information, read [Signing Keys](https://auth0.com/docs/get-started/tenant-settings/signing-keys).
@@ -5106,7 +5122,7 @@ await client.groups.delete("id");
-
-Retrieve all hooks. Accepts a list of fields to include or exclude in the result.
+Retrieve all [hooks](https://auth0.com/docs/hooks). Accepts a list of fields to include or exclude in the result.
@@ -5262,7 +5278,7 @@ await client.hooks.create({
-
-Retrieve a hook by its ID. Accepts a list of fields to include in the result.
+Retrieve [a hook](https://auth0.com/docs/hooks) by its ID. Accepts a list of fields to include in the result.
@@ -6364,33 +6380,30 @@ await client.logStreams.update("id");
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").
+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.
+For more information on all possible event types, their respective acronyms, and descriptions, see [Log Event Type Codes](https://auth0.com/docs/logs/log-event-type-codes).
-To set custom search criteria, use the following parameters:
+**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
-
+- **q:** Search Criteria using [Query String Syntax](https://auth0.com/docs/logs/log-search-query-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](https://auth0.com/docs/product-lifecycle/deprecations-and-migrations/migrate-to-tenant-log-search-v3#pagination)
-For more information on the list of fields that can be used in fields and sort, see Searchable Fields.
+For more information on the list of fields that can be used in `fields` and `sort`, see [Searchable Fields](https://auth0.com/docs/logs/log-search-query-syntax#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.
+Auth0 [limits the number of logs](https://auth0.com/docs/logs/retrieve-log-events-using-mgmt-api#limitations) 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](https://auth0.com/docs/logs/retrieve-log-events-using-mgmt-api#retrieve-logs-by-checkpoint).
-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.
-
+**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.
+**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.
@@ -6980,23 +6993,19 @@ Retrieve detailed list of all Organizations available in your tenant. For more i
This endpoint supports two types of pagination:
-
-- Offset pagination
-- Checkpoint pagination
-
+- Offset pagination
+- Checkpoint pagination
Checkpoint pagination must be used if you need to retrieve more than 1000 organizations.
-Checkpoint Pagination
+**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.
-
+- `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.
+**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.
@@ -7079,7 +7088,7 @@ const response = page.response;
-
-Create a new Organization within your tenant. To learn more about Organization settings, behavior, and configuration options, review Create Your First Organization.
+Create a new Organization within your tenant. To learn more about Organization settings, behavior, and configuration options, review [Create Your First Organization](https://auth0.com/docs/manage-users/organizations/create-first-organization).
@@ -7272,7 +7281,7 @@ await client.organizations.get("id");
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.
+**Note**: Members are automatically disassociated from an Organization when it is deleted. However, this action does **not** delete these users from your tenant.
@@ -7335,7 +7344,7 @@ await client.organizations.delete("id");
-
-Update the details of a specific Organization, such as name and display name, branding options, and metadata.
+Update the details of a specific [Organization](https://auth0.com/docs/manage-users/organizations/configure-organizations/create-organizations), such as name and display name, branding options, and metadata.
@@ -7514,27 +7523,12 @@ await client.prompts.updateSettings();
-## RefreshTokens
-
-client.refreshTokens.list({ ...params }) -> core.Page<Management.RefreshTokenResponseContent, Management.GetRefreshTokensPaginatedResponseContent>
-
--
-
-#### 📝 Description
-
-
--
+## RateLimitPolicies
+
client.rateLimitPolicies.list({ ...params }) -> core.Page<Management.RateLimitPolicy, Management.ListRateLimitPoliciesPaginatedResponseContent>
-
-Retrieve a paginated list of refresh tokens for a specific user, with optional filtering by client ID. Results are sorted by credential_id ascending.
-
-
-
-
-
-
#### 🔌 Usage
@@ -7544,26 +7538,24 @@ Retrieve a paginated list of refresh tokens for a specific user, with optional f
-
```typescript
-const pageableResponse = await client.refreshTokens.list({
- user_id: "user_id",
- client_id: "client_id",
- from: "from",
+const pageableResponse = await client.rateLimitPolicies.list({
+ resource: "oauth_authentication_api",
+ consumer: "client",
+ consumer_selector: "consumer_selector",
take: 1,
- fields: "fields",
- include_fields: true,
+ from: "from",
});
for await (const item of pageableResponse) {
console.log(item);
}
// Or you can manually iterate page-by-page
-let page = await client.refreshTokens.list({
- user_id: "user_id",
- client_id: "client_id",
- from: "from",
+let page = await client.rateLimitPolicies.list({
+ resource: "oauth_authentication_api",
+ consumer: "client",
+ consumer_selector: "consumer_selector",
take: 1,
- fields: "fields",
- include_fields: true,
+ from: "from",
});
while (page.hasNextPage()) {
page = page.getNextPage();
@@ -7586,7 +7578,7 @@ const response = page.response;
-
-**request:** `Management.GetRefreshTokensRequestParameters`
+**request:** `Management.ListRateLimitPoliciesRequestParameters`
@@ -7594,7 +7586,7 @@ const response = page.response;
-
-**requestOptions:** `RefreshTokensClient.RequestOptions`
+**requestOptions:** `RateLimitPoliciesClient.RequestOptions`
@@ -7605,25 +7597,10 @@ const response = page.response;
-client.refreshTokens.revoke({ ...params }) -> void
-
--
-
-#### 📝 Description
-
-
--
-
+
client.rateLimitPolicies.create({ ...params }) -> Management.CreateRateLimitPolicyResponseContent
-
-Revoke refresh tokens in bulk by ID list, user, user+client, or client.
-
-
-
-
-
-
#### 🔌 Usage
@@ -7633,7 +7610,14 @@ Revoke refresh tokens in bulk by ID list, user, user+client, or client.
-
```typescript
-await client.refreshTokens.revoke();
+await client.rateLimitPolicies.create({
+ resource: "oauth_authentication_api",
+ consumer: "client",
+ consumer_selector: "consumer_selector",
+ configuration: {
+ action: "allow",
+ },
+});
```
@@ -7649,7 +7633,7 @@ await client.refreshTokens.revoke();
-
-**request:** `Management.RevokeRefreshTokensRequestContent`
+**request:** `Management.CreateRateLimitPolicyRequestContent`
@@ -7657,7 +7641,7 @@ await client.refreshTokens.revoke();
-
-**requestOptions:** `RefreshTokensClient.RequestOptions`
+**requestOptions:** `RateLimitPoliciesClient.RequestOptions`
@@ -7668,25 +7652,10 @@ await client.refreshTokens.revoke();
-client.refreshTokens.get(id) -> Management.GetRefreshTokenResponseContent
-
--
-
-#### 📝 Description
-
-
--
-
+
client.rateLimitPolicies.get(id) -> Management.GetRateLimitPolicyResponseContent
-
-Retrieve refresh token information.
-
-
-
-
-
-
#### 🔌 Usage
@@ -7696,7 +7665,7 @@ Retrieve refresh token information.
-
```typescript
-await client.refreshTokens.get("id");
+await client.rateLimitPolicies.get("id");
```
@@ -7712,7 +7681,7 @@ await client.refreshTokens.get("id");
-
-**id:** `string` — ID refresh token to retrieve
+**id:** `string` — Unique identifier for the Rate Limit Policy.
@@ -7720,7 +7689,7 @@ await client.refreshTokens.get("id");
-
-**requestOptions:** `RefreshTokensClient.RequestOptions`
+**requestOptions:** `RateLimitPoliciesClient.RequestOptions`
@@ -7731,25 +7700,10 @@ await client.refreshTokens.get("id");
-client.refreshTokens.delete(id) -> void
-
--
-
-#### 📝 Description
-
-
--
-
+
client.rateLimitPolicies.delete(id) -> void
-
-Delete a refresh token by its ID.
-
-
-
-
-
-
#### 🔌 Usage
@@ -7759,7 +7713,7 @@ Delete a refresh token by its ID.
-
```typescript
-await client.refreshTokens.delete("id");
+await client.rateLimitPolicies.delete("id");
```
@@ -7775,7 +7729,7 @@ await client.refreshTokens.delete("id");
-
-**id:** `string` — ID of the refresh token to delete.
+**id:** `string` — Unique identifier for the Rate Limit Policy.
@@ -7783,7 +7737,7 @@ await client.refreshTokens.delete("id");
-
-**requestOptions:** `RefreshTokensClient.RequestOptions`
+**requestOptions:** `RateLimitPoliciesClient.RequestOptions`
@@ -7794,25 +7748,10 @@ await client.refreshTokens.delete("id");
-client.refreshTokens.update(id, { ...params }) -> Management.UpdateRefreshTokenResponseContent
-
--
-
-#### 📝 Description
-
+
client.rateLimitPolicies.update(id, { ...params }) -> Management.UpdateRateLimitPolicyResponseContent
-
-
--
-
-Update a refresh token by its ID.
-
-
-
-
-
-
#### 🔌 Usage
@@ -7822,7 +7761,11 @@ Update a refresh token by its ID.
-
```typescript
-await client.refreshTokens.update("id");
+await client.rateLimitPolicies.update("id", {
+ configuration: {
+ action: "allow",
+ },
+});
```
@@ -7838,7 +7781,7 @@ await client.refreshTokens.update("id");
-
-**id:** `string` — ID of the refresh token to update.
+**id:** `string` — Unique identifier for the Rate Limit Policy.
@@ -7846,7 +7789,7 @@ await client.refreshTokens.update("id");
-
-**request:** `Management.UpdateRefreshTokenRequestContent`
+**request:** `Management.PatchRateLimitPolicyRequestContent`
@@ -7854,7 +7797,7 @@ await client.refreshTokens.update("id");
-
-**requestOptions:** `RefreshTokensClient.RequestOptions`
+**requestOptions:** `RateLimitPoliciesClient.RequestOptions`
@@ -7865,9 +7808,9 @@ await client.refreshTokens.update("id");
-## ResourceServers
+## RefreshTokens
-client.resourceServers.list({ ...params }) -> core.Page<Management.ResourceServer, Management.ListResourceServerOffsetPaginatedResponseContent>
+client.refreshTokens.list({ ...params }) -> core.Page<Management.RefreshTokenResponseContent, Management.GetRefreshTokensPaginatedResponseContent>
-
@@ -7879,7 +7822,7 @@ await client.refreshTokens.update("id");
-
-Retrieve details of all APIs associated with your tenant.
+Retrieve a paginated list of refresh tokens for a specific user, with optional filtering by client ID. Results are sorted by credential_id ascending.
@@ -7895,11 +7838,12 @@ Retrieve details of all APIs associated with your tenant.
-
```typescript
-const pageableResponse = await client.resourceServers.list({
- identifiers: ["identifiers"],
- page: 1,
- per_page: 1,
- include_totals: true,
+const pageableResponse = await client.refreshTokens.list({
+ user_id: "user_id",
+ client_id: "client_id",
+ from: "from",
+ take: 1,
+ fields: "fields",
include_fields: true,
});
for await (const item of pageableResponse) {
@@ -7907,11 +7851,12 @@ for await (const item of pageableResponse) {
}
// Or you can manually iterate page-by-page
-let page = await client.resourceServers.list({
- identifiers: ["identifiers"],
- page: 1,
- per_page: 1,
- include_totals: true,
+let page = await client.refreshTokens.list({
+ user_id: "user_id",
+ client_id: "client_id",
+ from: "from",
+ take: 1,
+ fields: "fields",
include_fields: true,
});
while (page.hasNextPage()) {
@@ -7935,7 +7880,7 @@ const response = page.response;
-
-**request:** `Management.ListResourceServerRequestParameters`
+**request:** `Management.GetRefreshTokensRequestParameters`
@@ -7943,7 +7888,7 @@ const response = page.response;
-
-**requestOptions:** `ResourceServersClient.RequestOptions`
+**requestOptions:** `RefreshTokensClient.RequestOptions`
@@ -7954,7 +7899,7 @@ const response = page.response;
-client.resourceServers.create({ ...params }) -> Management.CreateResourceServerResponseContent
+client.refreshTokens.revoke({ ...params }) -> void
-
@@ -7966,7 +7911,7 @@ const response = page.response;
-
-Create a new API associated with your tenant. Note that all new APIs must be registered with Auth0. For more information, read APIs.
+Revoke refresh tokens in bulk by ID list, user, user+client, or client.
@@ -7982,9 +7927,7 @@ Create a new API associated with your tenant. Note that all new APIs must be reg
-
```typescript
-await client.resourceServers.create({
- identifier: "identifier",
-});
+await client.refreshTokens.revoke();
```
@@ -8000,7 +7943,7 @@ await client.resourceServers.create({
-
-**request:** `Management.CreateResourceServerRequestContent`
+**request:** `Management.RevokeRefreshTokensRequestContent`
@@ -8008,7 +7951,7 @@ await client.resourceServers.create({
-
-**requestOptions:** `ResourceServersClient.RequestOptions`
+**requestOptions:** `RefreshTokensClient.RequestOptions`
@@ -8019,7 +7962,7 @@ await client.resourceServers.create({
-client.resourceServers.get(id, { ...params }) -> Management.GetResourceServerResponseContent
+client.refreshTokens.get(id) -> Management.GetRefreshTokenResponseContent
-
@@ -8031,7 +7974,7 @@ await client.resourceServers.create({
-
-Retrieve API details with the given ID.
+Retrieve refresh token information.
@@ -8047,9 +7990,7 @@ Retrieve API details with the given ID
-
```typescript
-await client.resourceServers.get("id", {
- include_fields: true,
-});
+await client.refreshTokens.get("id");
```
@@ -8065,15 +8006,7 @@ await client.resourceServers.get("id", {
-
-**id:** `string` — ID or audience of the resource server to retrieve.
-
-
-
-
-
--
-
-**request:** `Management.GetResourceServerRequestParameters`
+**id:** `string` — ID refresh token to retrieve
@@ -8081,7 +8014,7 @@ await client.resourceServers.get("id", {
-
-**requestOptions:** `ResourceServersClient.RequestOptions`
+**requestOptions:** `RefreshTokensClient.RequestOptions`
@@ -8092,7 +8025,7 @@ await client.resourceServers.get("id", {
-client.resourceServers.delete(id) -> void
+client.refreshTokens.delete(id) -> void
-
@@ -8104,7 +8037,7 @@ await client.resourceServers.get("id", {
-
-Delete an existing API by ID. For more information, read API Settings.
+Delete a refresh token by its ID.
@@ -8120,7 +8053,7 @@ Delete an existing API by ID. For more information, read
@@ -8136,7 +8069,7 @@ await client.resourceServers.delete("id");
-
-**id:** `string` — ID or the audience of the resource server to delete.
+**id:** `string` — ID of the refresh token to delete.
@@ -8144,7 +8077,7 @@ await client.resourceServers.delete("id");
-
-**requestOptions:** `ResourceServersClient.RequestOptions`
+**requestOptions:** `RefreshTokensClient.RequestOptions`
@@ -8155,7 +8088,7 @@ await client.resourceServers.delete("id");
-client.resourceServers.update(id, { ...params }) -> Management.UpdateResourceServerResponseContent
+client.refreshTokens.update(id, { ...params }) -> Management.UpdateRefreshTokenResponseContent
-
@@ -8167,7 +8100,7 @@ await client.resourceServers.delete("id");
-
-Change an existing API setting by resource server ID. For more information, read API Settings.
+Update a refresh token by its ID.
@@ -8183,7 +8116,7 @@ Change an existing API setting by resource server ID. For more information, read
-
```typescript
-await client.resourceServers.update("id");
+await client.refreshTokens.update("id");
```
@@ -8199,7 +8132,7 @@ await client.resourceServers.update("id");
-
-**id:** `string` — ID or audience of the resource server to update.
+**id:** `string` — ID of the refresh token to update.
@@ -8207,7 +8140,7 @@ await client.resourceServers.update("id");
-
-**request:** `Management.UpdateResourceServerRequestContent`
+**request:** `Management.UpdateRefreshTokenRequestContent`
@@ -8215,7 +8148,7 @@ await client.resourceServers.update("id");
-
-**requestOptions:** `ResourceServersClient.RequestOptions`
+**requestOptions:** `RefreshTokensClient.RequestOptions`
@@ -8226,9 +8159,9 @@ await client.resourceServers.update("id");
-## Roles
+## ResourceServers
-client.roles.list({ ...params }) -> core.Page<Management.Role, Management.ListRolesOffsetPaginatedResponseContent>
+client.resourceServers.list({ ...params }) -> core.Page<Management.ResourceServer, Management.ListResourceServerOffsetPaginatedResponseContent>
-
@@ -8240,9 +8173,7 @@ await client.resourceServers.update("id");
-
-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.
+Retrieve details of all APIs associated with your tenant.
@@ -8258,22 +8189,24 @@ Retrieve detailed list of user roles created in your tenant.
-
```typescript
-const pageableResponse = await client.roles.list({
- per_page: 1,
+const pageableResponse = await client.resourceServers.list({
+ identifiers: ["identifiers"],
page: 1,
+ per_page: 1,
include_totals: true,
- name_filter: "name_filter",
+ include_fields: true,
});
for await (const item of pageableResponse) {
console.log(item);
}
// Or you can manually iterate page-by-page
-let page = await client.roles.list({
- per_page: 1,
+let page = await client.resourceServers.list({
+ identifiers: ["identifiers"],
page: 1,
+ per_page: 1,
include_totals: true,
- name_filter: "name_filter",
+ include_fields: true,
});
while (page.hasNextPage()) {
page = page.getNextPage();
@@ -8296,7 +8229,7 @@ const response = page.response;
-
-**request:** `Management.ListRolesRequestParameters`
+**request:** `Management.ListResourceServerRequestParameters`
@@ -8304,7 +8237,7 @@ const response = page.response;
-
-**requestOptions:** `RolesClient.RequestOptions`
+**requestOptions:** `ResourceServersClient.RequestOptions`
@@ -8315,7 +8248,7 @@ const response = page.response;
-client.roles.create({ ...params }) -> Management.CreateRoleResponseContent
+client.resourceServers.create({ ...params }) -> Management.CreateResourceServerResponseContent
-
@@ -8327,9 +8260,7 @@ const response = page.response;
-
-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.
+Create a new API associated with your tenant. Note that all new APIs must be registered with Auth0. For more information, read APIs.
@@ -8345,8 +8276,8 @@ Create a user role for
-
-**request:** `Management.CreateRoleRequestContent`
+**request:** `Management.CreateResourceServerRequestContent`
@@ -8371,7 +8302,7 @@ await client.roles.create({
-
-**requestOptions:** `RolesClient.RequestOptions`
+**requestOptions:** `ResourceServersClient.RequestOptions`
@@ -8382,7 +8313,7 @@ await client.roles.create({
-client.roles.get(id) -> Management.GetRoleResponseContent
+client.resourceServers.get(id, { ...params }) -> Management.GetResourceServerResponseContent
-
@@ -8394,7 +8325,7 @@ await client.roles.create({
-
-Retrieve details about a specific user role specified by ID.
+Retrieve API details with the given ID.
@@ -8410,7 +8341,9 @@ Retrieve details about a specific
@@ -8426,7 +8359,7 @@ await client.roles.get("id");
-
-**id:** `string` — ID of the role to retrieve.
+**id:** `string` — ID or audience of the resource server to retrieve.
@@ -8434,7 +8367,15 @@ await client.roles.get("id");
-
-**requestOptions:** `RolesClient.RequestOptions`
+**request:** `Management.GetResourceServerRequestParameters`
+
+
+
+
+
+-
+
+**requestOptions:** `ResourceServersClient.RequestOptions`
@@ -8445,7 +8386,7 @@ await client.roles.get("id");
-client.roles.delete(id) -> void
+client.resourceServers.delete(id) -> void
-
@@ -8457,7 +8398,7 @@ await client.roles.get("id");
-
-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.
+Delete an existing API by ID. For more information, read API Settings.
@@ -8473,7 +8414,7 @@ Delete a specific
@@ -8489,7 +8430,7 @@ await client.roles.delete("id");
-
-**id:** `string` — ID of the role to delete.
+**id:** `string` — ID or the audience of the resource server to delete.
@@ -8497,7 +8438,7 @@ await client.roles.delete("id");
-
-**requestOptions:** `RolesClient.RequestOptions`
+**requestOptions:** `ResourceServersClient.RequestOptions`
@@ -8508,7 +8449,7 @@ await client.roles.delete("id");
-client.roles.update(id, { ...params }) -> Management.UpdateRoleResponseContent
+client.resourceServers.update(id, { ...params }) -> Management.UpdateResourceServerResponseContent
-
@@ -8520,7 +8461,7 @@ await client.roles.delete("id");
-
-Modify the details of a specific user role specified by ID.
+Change an existing API setting by resource server ID. For more information, read API Settings.
@@ -8536,7 +8477,7 @@ Modify the details of a specific
@@ -8552,7 +8493,7 @@ await client.roles.update("id");
-
-**id:** `string` — ID of the role to update.
+**id:** `string` — ID or audience of the resource server to update.
@@ -8560,7 +8501,7 @@ await client.roles.update("id");
-
-**request:** `Management.UpdateRoleRequestContent`
+**request:** `Management.UpdateResourceServerRequestContent`
@@ -8568,7 +8509,7 @@ await client.roles.update("id");
-
-**requestOptions:** `RolesClient.RequestOptions`
+**requestOptions:** `ResourceServersClient.RequestOptions`
@@ -8579,9 +8520,9 @@ await client.roles.update("id");
-## Rules
+## Roles
-client.rules.list({ ...params }) -> core.Page<Management.Rule, Management.ListRulesOffsetPaginatedResponseContent>
+client.roles.list({ ...params }) -> core.Page<Management.Role, Management.ListRolesOffsetPaginatedResponseContent>
-
@@ -8593,7 +8534,9 @@ await client.roles.update("id");
-
-Retrieve a filtered list of rules. Accepts a list of fields to include or exclude.
+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.
@@ -8609,26 +8552,22 @@ Retrieve a filtered list of rules. Ac
-
```typescript
-const pageableResponse = await client.rules.list({
- page: 1,
+const pageableResponse = await client.roles.list({
per_page: 1,
+ page: 1,
include_totals: true,
- enabled: true,
- fields: "fields",
- include_fields: true,
+ name_filter: "name_filter",
});
for await (const item of pageableResponse) {
console.log(item);
}
// Or you can manually iterate page-by-page
-let page = await client.rules.list({
- page: 1,
+let page = await client.roles.list({
per_page: 1,
+ page: 1,
include_totals: true,
- enabled: true,
- fields: "fields",
- include_fields: true,
+ name_filter: "name_filter",
});
while (page.hasNextPage()) {
page = page.getNextPage();
@@ -8651,7 +8590,7 @@ const response = page.response;
-
-**request:** `Management.ListRulesRequestParameters`
+**request:** `Management.ListRolesRequestParameters`
@@ -8659,7 +8598,7 @@ const response = page.response;
-
-**requestOptions:** `RulesClient.RequestOptions`
+**requestOptions:** `RolesClient.RequestOptions`
@@ -8670,7 +8609,7 @@ const response = page.response;
-client.rules.create({ ...params }) -> Management.CreateRuleResponseContent
+client.roles.create({ ...params }) -> Management.CreateRoleResponseContent
-
@@ -8682,9 +8621,9 @@ const response = page.response;
-
-Create a new rule.
+Create a user role for [Role-Based Access Control](https://auth0.com/docs/manage-users/access-control/rbac).
-Note: Changing a rule's stage of execution from the default
login_success can change the rule's function signature to have user omitted.
+**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.
@@ -8700,9 +8639,8 @@ Note: Changing a rule's stage of execution from the default login_success<
-
```typescript
-await client.rules.create({
+await client.roles.create({
name: "name",
- script: "script",
});
```
@@ -8719,7 +8657,7 @@ await client.rules.create({
-
-**request:** `Management.CreateRuleRequestContent`
+**request:** `Management.CreateRoleRequestContent`
@@ -8727,7 +8665,7 @@ await client.rules.create({
-
-**requestOptions:** `RulesClient.RequestOptions`
+**requestOptions:** `RolesClient.RequestOptions`
@@ -8738,7 +8676,7 @@ await client.rules.create({
-client.rules.get(id, { ...params }) -> Management.GetRuleResponseContent
+client.roles.get(id) -> Management.GetRoleResponseContent
-
@@ -8750,7 +8688,7 @@ await client.rules.create({
-
-Retrieve rule details. Accepts a list of fields to include or exclude in the result.
+Retrieve details about a specific [user role](https://auth0.com/docs/manage-users/access-control/rbac) specified by ID.
@@ -8766,10 +8704,7 @@ Retrieve rule details. Accepts a list
-
```typescript
-await client.rules.get("id", {
- fields: "fields",
- include_fields: true,
-});
+await client.roles.get("id");
```
@@ -8785,15 +8720,7 @@ await client.rules.get("id", {
-
-**id:** `string` — ID of the rule to retrieve.
-
-
-
-
-
--
-
-**request:** `Management.GetRuleRequestParameters`
+**id:** `string` — ID of the role to retrieve.
@@ -8801,7 +8728,7 @@ await client.rules.get("id", {
-
-**requestOptions:** `RulesClient.RequestOptions`
+**requestOptions:** `RolesClient.RequestOptions`
@@ -8812,7 +8739,7 @@ await client.rules.get("id", {
-client.rules.delete(id) -> void
+client.roles.delete(id) -> void
-
@@ -8824,7 +8751,7 @@ await client.rules.get("id", {
-
-Delete a rule.
+Delete a specific [user role](https://auth0.com/docs/manage-users/access-control/rbac) from your tenant. Once deleted, it is removed from any user who was previously assigned that role. This action cannot be undone.
@@ -8840,7 +8767,7 @@ Delete a rule.
-
```typescript
-await client.rules.delete("id");
+await client.roles.delete("id");
```
@@ -8856,7 +8783,7 @@ await client.rules.delete("id");
-
-**id:** `string` — ID of the rule to delete.
+**id:** `string` — ID of the role to delete.
@@ -8864,7 +8791,7 @@ await client.rules.delete("id");
-
-**requestOptions:** `RulesClient.RequestOptions`
+**requestOptions:** `RolesClient.RequestOptions`
@@ -8875,7 +8802,7 @@ await client.rules.delete("id");
-client.rules.update(id, { ...params }) -> Management.UpdateRuleResponseContent
+client.roles.update(id, { ...params }) -> Management.UpdateRoleResponseContent
-
@@ -8887,7 +8814,7 @@ await client.rules.delete("id");
-
-Update an existing rule.
+Modify the details of a specific [user role](https://auth0.com/docs/manage-users/access-control/rbac) specified by ID.
@@ -8903,7 +8830,7 @@ Update an existing rule.
-
```typescript
-await client.rules.update("id");
+await client.roles.update("id");
```
@@ -8919,7 +8846,7 @@ await client.rules.update("id");
-
-**id:** `string` — ID of the rule to retrieve.
+**id:** `string` — ID of the role to update.
@@ -8927,7 +8854,7 @@ await client.rules.update("id");
-
-**request:** `Management.UpdateRuleRequestContent`
+**request:** `Management.UpdateRoleRequestContent`
@@ -8935,7 +8862,7 @@ await client.rules.update("id");
-
-**requestOptions:** `RulesClient.RequestOptions`
+**requestOptions:** `RolesClient.RequestOptions`
@@ -8946,9 +8873,9 @@ await client.rules.update("id");
-## RulesConfigs
+## Rules
-client.rulesConfigs.list() -> Management.RulesConfig[]
+client.rules.list({ ...params }) -> core.Page<Management.Rule, Management.ListRulesOffsetPaginatedResponseContent>
-
@@ -8960,9 +8887,7 @@ await client.rules.update("id");
-
-Retrieve rules config variable keys.
-
- Note: For security, config variable values cannot be retrieved outside rule execution.
+Retrieve a filtered list of [rules](https://auth0.com/docs/rules). Accepts a list of fields to include or exclude.
@@ -8978,7 +8903,33 @@ Retrieve rules config variable keys.
-
```typescript
-await client.rulesConfigs.list();
+const pageableResponse = await client.rules.list({
+ page: 1,
+ per_page: 1,
+ include_totals: true,
+ enabled: true,
+ fields: "fields",
+ include_fields: true,
+});
+for await (const item of pageableResponse) {
+ console.log(item);
+}
+
+// Or you can manually iterate page-by-page
+let page = await client.rules.list({
+ page: 1,
+ per_page: 1,
+ include_totals: true,
+ enabled: true,
+ fields: "fields",
+ include_fields: true,
+});
+while (page.hasNextPage()) {
+ page = page.getNextPage();
+}
+
+// You can also access the underlying response
+const response = page.response;
```
@@ -8994,7 +8945,15 @@ await client.rulesConfigs.list();
-
-**requestOptions:** `RulesConfigsClient.RequestOptions`
+**request:** `Management.ListRulesRequestParameters`
+
+
+
+
+
+-
+
+**requestOptions:** `RulesClient.RequestOptions`
@@ -9005,7 +8964,7 @@ await client.rulesConfigs.list();
-client.rulesConfigs.set(key, { ...params }) -> Management.SetRulesConfigResponseContent
+client.rules.create({ ...params }) -> Management.CreateRuleResponseContent
-
@@ -9017,7 +8976,9 @@ await client.rulesConfigs.list();
-
-Sets a rules config variable.
+Create a [new rule](https://auth0.com/docs/rules#create-a-new-rule-using-the-management-api).
+
+Note: Changing a rule's stage of execution from the default `login_success` can change the rule's function signature to have user omitted.
@@ -9033,8 +8994,9 @@ Sets a rules config variable.
-
```typescript
-await client.rulesConfigs.set("key", {
- value: "value",
+await client.rules.create({
+ name: "name",
+ script: "script",
});
```
@@ -9051,15 +9013,7 @@ await client.rulesConfigs.set("key", {
-
-**key:** `string` — Key of the rules config variable to set (max length: 127 characters).
-
-
-
-
-
--
-
-**request:** `Management.SetRulesConfigRequestContent`
+**request:** `Management.CreateRuleRequestContent`
@@ -9067,7 +9021,7 @@ await client.rulesConfigs.set("key", {
-
-**requestOptions:** `RulesConfigsClient.RequestOptions`
+**requestOptions:** `RulesClient.RequestOptions`
@@ -9078,7 +9032,7 @@ await client.rulesConfigs.set("key", {
-client.rulesConfigs.delete(key) -> void
+client.rules.get(id, { ...params }) -> Management.GetRuleResponseContent
-
@@ -9090,7 +9044,7 @@ await client.rulesConfigs.set("key", {
-
-Delete a rules config variable identified by its key.
+Retrieve [rule](https://auth0.com/docs/rules) details. Accepts a list of fields to include or exclude in the result.
@@ -9106,7 +9060,10 @@ Delete a rules config variable identified by its key.
-
```typescript
-await client.rulesConfigs.delete("key");
+await client.rules.get("id", {
+ fields: "fields",
+ include_fields: true,
+});
```
@@ -9122,7 +9079,7 @@ await client.rulesConfigs.delete("key");
-
-**key:** `string` — Key of the rules config variable to delete.
+**id:** `string` — ID of the rule to retrieve.
@@ -9130,7 +9087,15 @@ await client.rulesConfigs.delete("key");
-
-**requestOptions:** `RulesConfigsClient.RequestOptions`
+**request:** `Management.GetRuleRequestParameters`
+
+
+
+
+
+-
+
+**requestOptions:** `RulesClient.RequestOptions`
@@ -9141,9 +9106,7 @@ await client.rulesConfigs.delete("key");
-## SelfServiceProfiles
-
-client.selfServiceProfiles.list({ ...params }) -> core.Page<Management.SelfServiceProfile, Management.ListSelfServiceProfilesPaginatedResponseContent>
+client.rules.delete(id) -> void
-
@@ -9155,7 +9118,7 @@ await client.rulesConfigs.delete("key");
-
-Retrieves self-service profiles.
+Delete a rule.
@@ -9171,27 +9134,7 @@ Retrieves self-service profiles.
-
```typescript
-const pageableResponse = await client.selfServiceProfiles.list({
- page: 1,
- per_page: 1,
- include_totals: true,
-});
-for await (const item of pageableResponse) {
- console.log(item);
-}
-
-// Or you can manually iterate page-by-page
-let page = await client.selfServiceProfiles.list({
- page: 1,
- per_page: 1,
- include_totals: true,
-});
-while (page.hasNextPage()) {
- page = page.getNextPage();
-}
-
-// You can also access the underlying response
-const response = page.response;
+await client.rules.delete("id");
```
@@ -9207,7 +9150,7 @@ const response = page.response;
-
-**request:** `Management.ListSelfServiceProfilesRequestParameters`
+**id:** `string` — ID of the rule to delete.
@@ -9215,7 +9158,7 @@ const response = page.response;
-
-**requestOptions:** `SelfServiceProfilesClient.RequestOptions`
+**requestOptions:** `RulesClient.RequestOptions`
@@ -9226,7 +9169,7 @@ const response = page.response;
-client.selfServiceProfiles.create({ ...params }) -> Management.CreateSelfServiceProfileResponseContent
+client.rules.update(id, { ...params }) -> Management.UpdateRuleResponseContent
-
@@ -9238,7 +9181,7 @@ const response = page.response;
-
-Creates a self-service profile.
+Update an existing rule.
@@ -9254,9 +9197,7 @@ Creates a self-service profile.
-
```typescript
-await client.selfServiceProfiles.create({
- name: "name",
-});
+await client.rules.update("id");
```
@@ -9272,7 +9213,7 @@ await client.selfServiceProfiles.create({
-
-**request:** `Management.CreateSelfServiceProfileRequestContent`
+**id:** `string` — ID of the rule to retrieve.
@@ -9280,7 +9221,15 @@ await client.selfServiceProfiles.create({
-
-**requestOptions:** `SelfServiceProfilesClient.RequestOptions`
+**request:** `Management.UpdateRuleRequestContent`
+
+
+
+
+
+-
+
+**requestOptions:** `RulesClient.RequestOptions`
@@ -9291,7 +9240,9 @@ await client.selfServiceProfiles.create({
-client.selfServiceProfiles.get(id) -> Management.GetSelfServiceProfileResponseContent
+## RulesConfigs
+
+client.rulesConfigs.list() -> Management.RulesConfig[]
-
@@ -9303,7 +9254,9 @@ await client.selfServiceProfiles.create({
-
-Retrieves a self-service profile by Id.
+Retrieve rules config variable keys.
+
+ Note: For security, config variable values cannot be retrieved outside rule execution.
@@ -9319,7 +9272,7 @@ Retrieves a self-service profile by Id.
-
```typescript
-await client.selfServiceProfiles.get("id");
+await client.rulesConfigs.list();
```
@@ -9335,15 +9288,7 @@ await client.selfServiceProfiles.get("id");
-
-**id:** `string` — The id of the self-service profile to retrieve
-
-
-
-
-
--
-
-**requestOptions:** `SelfServiceProfilesClient.RequestOptions`
+**requestOptions:** `RulesConfigsClient.RequestOptions`
@@ -9354,7 +9299,7 @@ await client.selfServiceProfiles.get("id");
-client.selfServiceProfiles.delete(id) -> void
+client.rulesConfigs.set(key, { ...params }) -> Management.SetRulesConfigResponseContent
-
@@ -9366,7 +9311,7 @@ await client.selfServiceProfiles.get("id");
-
-Deletes a self-service profile by Id.
+Sets a rules config variable.
@@ -9382,7 +9327,9 @@ Deletes a self-service profile by Id.
-
```typescript
-await client.selfServiceProfiles.delete("id");
+await client.rulesConfigs.set("key", {
+ value: "value",
+});
```
@@ -9398,7 +9345,7 @@ await client.selfServiceProfiles.delete("id");
-
-**id:** `string` — The id of the self-service profile to delete
+**key:** `string` — Key of the rules config variable to set (max length: 127 characters).
@@ -9406,7 +9353,15 @@ await client.selfServiceProfiles.delete("id");
-
-**requestOptions:** `SelfServiceProfilesClient.RequestOptions`
+**request:** `Management.SetRulesConfigRequestContent`
+
+
+
+
+
+-
+
+**requestOptions:** `RulesConfigsClient.RequestOptions`
@@ -9417,7 +9372,7 @@ await client.selfServiceProfiles.delete("id");
-client.selfServiceProfiles.update(id, { ...params }) -> Management.UpdateSelfServiceProfileResponseContent
+client.rulesConfigs.delete(key) -> void
-
@@ -9429,7 +9384,7 @@ await client.selfServiceProfiles.delete("id");
-
-Updates a self-service profile.
+Delete a rules config variable identified by its key.
@@ -9445,7 +9400,7 @@ Updates a self-service profile.
-
```typescript
-await client.selfServiceProfiles.update("id");
+await client.rulesConfigs.delete("key");
```
@@ -9461,15 +9416,7 @@ await client.selfServiceProfiles.update("id");
-
-**id:** `string` — The id of the self-service profile to update
-
-
-
-
-
--
-
-**request:** `Management.UpdateSelfServiceProfileRequestContent`
+**key:** `string` — Key of the rules config variable to delete.
@@ -9477,7 +9424,7 @@ await client.selfServiceProfiles.update("id");
-
-**requestOptions:** `SelfServiceProfilesClient.RequestOptions`
+**requestOptions:** `RulesConfigsClient.RequestOptions`
@@ -9488,9 +9435,9 @@ await client.selfServiceProfiles.update("id");
-## Sessions
+## SelfServiceProfiles
-client.sessions.get(id) -> Management.GetSessionResponseContent
+client.selfServiceProfiles.list({ ...params }) -> core.Page<Management.SelfServiceProfile, Management.ListSelfServiceProfilesPaginatedResponseContent>
-
@@ -9502,7 +9449,7 @@ await client.selfServiceProfiles.update("id");
-
-Retrieve session information.
+Retrieves self-service profiles.
@@ -9518,7 +9465,27 @@ Retrieve session information.
-
```typescript
-await client.sessions.get("id");
+const pageableResponse = await client.selfServiceProfiles.list({
+ page: 1,
+ per_page: 1,
+ include_totals: true,
+});
+for await (const item of pageableResponse) {
+ console.log(item);
+}
+
+// Or you can manually iterate page-by-page
+let page = await client.selfServiceProfiles.list({
+ page: 1,
+ per_page: 1,
+ include_totals: true,
+});
+while (page.hasNextPage()) {
+ page = page.getNextPage();
+}
+
+// You can also access the underlying response
+const response = page.response;
```
@@ -9534,7 +9501,7 @@ await client.sessions.get("id");
-
-**id:** `string` — ID of session to retrieve
+**request:** `Management.ListSelfServiceProfilesRequestParameters`
@@ -9542,7 +9509,7 @@ await client.sessions.get("id");
-
-**requestOptions:** `SessionsClient.RequestOptions`
+**requestOptions:** `SelfServiceProfilesClient.RequestOptions`
@@ -9553,7 +9520,7 @@ await client.sessions.get("id");
-client.sessions.delete(id) -> void
+client.selfServiceProfiles.create({ ...params }) -> Management.CreateSelfServiceProfileResponseContent
-
@@ -9565,7 +9532,7 @@ await client.sessions.get("id");
-
-Delete a session by ID.
+Creates a self-service profile.
@@ -9581,7 +9548,9 @@ Delete a session by ID.
-
```typescript
-await client.sessions.delete("id");
+await client.selfServiceProfiles.create({
+ name: "name",
+});
```
@@ -9597,7 +9566,7 @@ await client.sessions.delete("id");
-
-**id:** `string` — ID of the session to delete.
+**request:** `Management.CreateSelfServiceProfileRequestContent`
@@ -9605,7 +9574,7 @@ await client.sessions.delete("id");
-
-**requestOptions:** `SessionsClient.RequestOptions`
+**requestOptions:** `SelfServiceProfilesClient.RequestOptions`
@@ -9616,7 +9585,7 @@ await client.sessions.delete("id");
-client.sessions.update(id, { ...params }) -> Management.UpdateSessionResponseContent
+client.selfServiceProfiles.get(id) -> Management.GetSelfServiceProfileResponseContent
-
@@ -9628,7 +9597,7 @@ await client.sessions.delete("id");
-
-Update session information.
+Retrieves a self-service profile by Id.
@@ -9644,7 +9613,7 @@ Update session information.
-
```typescript
-await client.sessions.update("id");
+await client.selfServiceProfiles.get("id");
```
@@ -9660,15 +9629,7 @@ await client.sessions.update("id");
-
-**id:** `string` — ID of the session to update.
-
-
-
-
-
--
-
-**request:** `Management.UpdateSessionRequestContent`
+**id:** `string` — The id of the self-service profile to retrieve
@@ -9676,7 +9637,7 @@ await client.sessions.update("id");
-
-**requestOptions:** `SessionsClient.RequestOptions`
+**requestOptions:** `SelfServiceProfilesClient.RequestOptions`
@@ -9687,7 +9648,7 @@ await client.sessions.update("id");
-client.sessions.revoke(id) -> void
+client.selfServiceProfiles.delete(id) -> void
-
@@ -9699,7 +9660,7 @@ await client.sessions.update("id");
-
-Revokes a session by ID and all associated refresh tokens.
+Deletes a self-service profile by Id.
@@ -9715,7 +9676,7 @@ Revokes a session by ID and all associated refresh tokens.
-
```typescript
-await client.sessions.revoke("id");
+await client.selfServiceProfiles.delete("id");
```
@@ -9731,7 +9692,7 @@ await client.sessions.revoke("id");
-
-**id:** `string` — ID of the session to revoke.
+**id:** `string` — The id of the self-service profile to delete
@@ -9739,7 +9700,7 @@ await client.sessions.revoke("id");
-
-**requestOptions:** `SessionsClient.RequestOptions`
+**requestOptions:** `SelfServiceProfilesClient.RequestOptions`
@@ -9750,9 +9711,7 @@ await client.sessions.revoke("id");
-## Stats
-
-client.stats.getActiveUsersCount() -> Management.GetActiveUsersCountStatsResponseContent
+client.selfServiceProfiles.update(id, { ...params }) -> Management.UpdateSelfServiceProfileResponseContent
-
@@ -9764,7 +9723,7 @@ await client.sessions.revoke("id");
-
-Retrieve the number of active users that logged in during the last 30 days.
+Updates a self-service profile.
@@ -9780,7 +9739,7 @@ Retrieve the number of active users that logged in during the last 30 days.
-
```typescript
-await client.stats.getActiveUsersCount();
+await client.selfServiceProfiles.update("id");
```
@@ -9796,7 +9755,23 @@ await client.stats.getActiveUsersCount();
-
-**requestOptions:** `StatsClient.RequestOptions`
+**id:** `string` — The id of the self-service profile to update
+
+
+
+
+
+-
+
+**request:** `Management.UpdateSelfServiceProfileRequestContent`
+
+
+
+
+
+-
+
+**requestOptions:** `SelfServiceProfilesClient.RequestOptions`
@@ -9807,7 +9782,9 @@ await client.stats.getActiveUsersCount();
-client.stats.getDaily({ ...params }) -> Management.DailyStats[]
+## Sessions
+
+client.sessions.get(id) -> Management.GetSessionResponseContent
-
@@ -9819,7 +9796,7 @@ await client.stats.getActiveUsersCount();
-
-Retrieve the number of logins, signups and breached-password detections (subscription required) that occurred each day within a specified date range.
+Retrieve session information.
@@ -9835,10 +9812,7 @@ Retrieve the number of logins, signups and breached-password detections (subscri
-
```typescript
-await client.stats.getDaily({
- from: "from",
- to: "to",
-});
+await client.sessions.get("id");
```
@@ -9854,7 +9828,7 @@ await client.stats.getDaily({
-
-**request:** `Management.GetDailyStatsRequestParameters`
+**id:** `string` — ID of session to retrieve
@@ -9862,7 +9836,7 @@ await client.stats.getDaily({
-
-**requestOptions:** `StatsClient.RequestOptions`
+**requestOptions:** `SessionsClient.RequestOptions`
@@ -9873,9 +9847,7 @@ await client.stats.getDaily({
-## SupplementalSignals
-
-client.supplementalSignals.get() -> Management.GetSupplementalSignalsResponseContent
+client.sessions.delete(id) -> void
-
@@ -9887,7 +9859,7 @@ await client.stats.getDaily({
-
-Get the supplemental signals configuration for a tenant.
+Delete a session by ID.
@@ -9903,7 +9875,7 @@ Get the supplemental signals configuration for a tenant.
-
```typescript
-await client.supplementalSignals.get();
+await client.sessions.delete("id");
```
@@ -9919,7 +9891,15 @@ await client.supplementalSignals.get();
-
-**requestOptions:** `SupplementalSignalsClient.RequestOptions`
+**id:** `string` — ID of the session to delete.
+
+
+
+
+
+-
+
+**requestOptions:** `SessionsClient.RequestOptions`
@@ -9930,7 +9910,7 @@ await client.supplementalSignals.get();
-client.supplementalSignals.patch({ ...params }) -> Management.PatchSupplementalSignalsResponseContent
+client.sessions.update(id, { ...params }) -> Management.UpdateSessionResponseContent
-
@@ -9942,7 +9922,7 @@ await client.supplementalSignals.get();
-
-Update the supplemental signals configuration for a tenant.
+Update session information.
@@ -9958,9 +9938,7 @@ Update the supplemental signals configuration for a tenant.
-
```typescript
-await client.supplementalSignals.patch({
- akamai_enabled: true,
-});
+await client.sessions.update("id");
```
@@ -9976,7 +9954,7 @@ await client.supplementalSignals.patch({
-
-**request:** `Management.UpdateSupplementalSignalsRequestContent`
+**id:** `string` — ID of the session to update.
@@ -9984,7 +9962,15 @@ await client.supplementalSignals.patch({
-
-**requestOptions:** `SupplementalSignalsClient.RequestOptions`
+**request:** `Management.UpdateSessionRequestContent`
+
+
+
+
+
+-
+
+**requestOptions:** `SessionsClient.RequestOptions`
@@ -9995,9 +9981,7 @@ await client.supplementalSignals.patch({
-## Tickets
-
-client.tickets.verifyEmail({ ...params }) -> Management.VerifyEmailTicketResponseContent
+client.sessions.revoke(id) -> void
-
@@ -10009,7 +9993,7 @@ await client.supplementalSignals.patch({
-
-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.
+Revokes a session by ID and all associated refresh tokens.
@@ -10025,9 +10009,7 @@ Create an email verification ticket for a given user. An email verification tick
-
```typescript
-await client.tickets.verifyEmail({
- user_id: "user_id",
-});
+await client.sessions.revoke("id");
```
@@ -10043,7 +10025,7 @@ await client.tickets.verifyEmail({
-
-**request:** `Management.VerifyEmailTicketRequestContent`
+**id:** `string` — ID of the session to revoke.
@@ -10051,7 +10033,7 @@ await client.tickets.verifyEmail({
-
-**requestOptions:** `TicketsClient.RequestOptions`
+**requestOptions:** `SessionsClient.RequestOptions`
@@ -10062,7 +10044,9 @@ await client.tickets.verifyEmail({
-client.tickets.changePassword({ ...params }) -> Management.ChangePasswordTicketResponseContent
+## Stats
+
+client.stats.getActiveUsersCount() -> Management.GetActiveUsersCountStatsResponseContent
-
@@ -10074,9 +10058,7 @@ await client.tickets.verifyEmail({
-
-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.
+Retrieve the number of active users that logged in during the last 30 days.
@@ -10092,7 +10074,7 @@ Note: This endpoint does not verify the given user’s identity. If you call thi
-
```typescript
-await client.tickets.changePassword();
+await client.stats.getActiveUsersCount();
```
@@ -10108,15 +10090,7 @@ await client.tickets.changePassword();
-
-**request:** `Management.ChangePasswordTicketRequestContent`
-
-
-
-
-
--
-
-**requestOptions:** `TicketsClient.RequestOptions`
+**requestOptions:** `StatsClient.RequestOptions`
@@ -10127,9 +10101,7 @@ await client.tickets.changePassword();
-## TokenExchangeProfiles
-
-client.tokenExchangeProfiles.list({ ...params }) -> core.Page<Management.TokenExchangeProfileResponseContent, Management.ListTokenExchangeProfileResponseContent>
+client.stats.getDaily({ ...params }) -> Management.DailyStats[]
-
@@ -10141,18 +10113,7 @@ await client.tickets.changePassword();
-
-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.
+Retrieve the number of logins, signups and breached-password detections (subscription required) that occurred each day within a specified date range.
@@ -10168,25 +10129,10 @@ This endpoint supports Checkpoint pagination. To search by checkpoint, use the f
-
```typescript
-const pageableResponse = await client.tokenExchangeProfiles.list({
- from: "from",
- take: 1,
-});
-for await (const item of pageableResponse) {
- console.log(item);
-}
-
-// Or you can manually iterate page-by-page
-let page = await client.tokenExchangeProfiles.list({
+await client.stats.getDaily({
from: "from",
- take: 1,
+ to: "to",
});
-while (page.hasNextPage()) {
- page = page.getNextPage();
-}
-
-// You can also access the underlying response
-const response = page.response;
```
@@ -10202,7 +10148,7 @@ const response = page.response;
-
-**request:** `Management.TokenExchangeProfilesListRequest`
+**request:** `Management.GetDailyStatsRequestParameters`
@@ -10210,7 +10156,7 @@ const response = page.response;
-
-**requestOptions:** `TokenExchangeProfilesClient.RequestOptions`
+**requestOptions:** `StatsClient.RequestOptions`
@@ -10221,7 +10167,9 @@ const response = page.response;
-client.tokenExchangeProfiles.create({ ...params }) -> Management.CreateTokenExchangeProfileResponseContent
+## SupplementalSignals
+
+client.supplementalSignals.get() -> Management.GetSupplementalSignalsResponseContent
-
@@ -10233,9 +10181,7 @@ const response = page.response;
-
-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.
+Get the supplemental signals configuration for a tenant.
@@ -10251,12 +10197,7 @@ By using this feature, you agree to the applicable Free Trial terms in
@@ -10272,15 +10213,7 @@ await client.tokenExchangeProfiles.create({
-
-**request:** `Management.CreateTokenExchangeProfileRequestContent`
-
-
-
-
-
--
-
-**requestOptions:** `TokenExchangeProfilesClient.RequestOptions`
+**requestOptions:** `SupplementalSignalsClient.RequestOptions`
@@ -10291,7 +10224,7 @@ await client.tokenExchangeProfiles.create({
-client.tokenExchangeProfiles.get(id) -> Management.GetTokenExchangeProfileResponseContent
+client.supplementalSignals.patch({ ...params }) -> Management.PatchSupplementalSignalsResponseContent
-
@@ -10303,9 +10236,7 @@ await client.tokenExchangeProfiles.create({
-
-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.
+Update the supplemental signals configuration for a tenant.
@@ -10321,7 +10252,9 @@ By using this feature, you agree to the applicable Free Trial terms in
@@ -10337,7 +10270,7 @@ await client.tokenExchangeProfiles.get("id");
-
-**id:** `string` — ID of the Token Exchange Profile to retrieve.
+**request:** `Management.UpdateSupplementalSignalsRequestContent`
@@ -10345,7 +10278,7 @@ await client.tokenExchangeProfiles.get("id");
-
-**requestOptions:** `TokenExchangeProfilesClient.RequestOptions`
+**requestOptions:** `SupplementalSignalsClient.RequestOptions`
@@ -10356,7 +10289,9 @@ await client.tokenExchangeProfiles.get("id");
-client.tokenExchangeProfiles.delete(id) -> void
+## Tickets
+
+client.tickets.verifyEmail({ ...params }) -> Management.VerifyEmailTicketResponseContent
-
@@ -10368,9 +10303,7 @@ await client.tokenExchangeProfiles.get("id");
-
-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.
+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.
@@ -10386,7 +10319,9 @@ By using this feature, you agree to the applicable Free Trial terms in
@@ -10402,7 +10337,7 @@ await client.tokenExchangeProfiles.delete("id");
-
-**id:** `string` — ID of the Token Exchange Profile to delete.
+**request:** `Management.VerifyEmailTicketRequestContent`
@@ -10410,7 +10345,7 @@ await client.tokenExchangeProfiles.delete("id");
-
-**requestOptions:** `TokenExchangeProfilesClient.RequestOptions`
+**requestOptions:** `TicketsClient.RequestOptions`
@@ -10421,7 +10356,7 @@ await client.tokenExchangeProfiles.delete("id");
-client.tokenExchangeProfiles.update(id, { ...params }) -> void
+client.tickets.changePassword({ ...params }) -> Management.ChangePasswordTicketResponseContent
-
@@ -10433,9 +10368,9 @@ await client.tokenExchangeProfiles.delete("id");
-
-Update a Token Exchange Profile within your tenant.
+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.
-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.
+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.
@@ -10451,7 +10386,7 @@ By using this feature, you agree to the applicable Free Trial terms in
@@ -10467,15 +10402,7 @@ await client.tokenExchangeProfiles.update("id");
-
-**id:** `string` — ID of the Token Exchange Profile to update.
-
-
-
-
-
--
-
-**request:** `Management.UpdateTokenExchangeProfileRequestContent`
+**request:** `Management.ChangePasswordTicketRequestContent`
@@ -10483,7 +10410,7 @@ await client.tokenExchangeProfiles.update("id");
-
-**requestOptions:** `TokenExchangeProfilesClient.RequestOptions`
+**requestOptions:** `TicketsClient.RequestOptions`
@@ -10494,9 +10421,9 @@ await client.tokenExchangeProfiles.update("id");
-## UserAttributeProfiles
+## TokenExchangeProfiles
-client.userAttributeProfiles.list({ ...params }) -> core.Page<Management.UserAttributeProfile, Management.ListUserAttributeProfilesPaginatedResponseContent>
+client.tokenExchangeProfiles.list({ ...params }) -> core.Page<Management.TokenExchangeProfileResponseContent, Management.ListTokenExchangeProfileResponseContent>
-
@@ -10508,7 +10435,18 @@ await client.tokenExchangeProfiles.update("id");
-
-Retrieve a list of User Attribute Profiles. This endpoint supports Checkpoint pagination.
+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.
@@ -10524,7 +10462,7 @@ Retrieve a list of User Attribute Profiles. This endpoint supports Checkpoint pa
-
```typescript
-const pageableResponse = await client.userAttributeProfiles.list({
+const pageableResponse = await client.tokenExchangeProfiles.list({
from: "from",
take: 1,
});
@@ -10533,7 +10471,7 @@ for await (const item of pageableResponse) {
}
// Or you can manually iterate page-by-page
-let page = await client.userAttributeProfiles.list({
+let page = await client.tokenExchangeProfiles.list({
from: "from",
take: 1,
});
@@ -10558,7 +10496,7 @@ const response = page.response;
-
-**request:** `Management.ListUserAttributeProfileRequestParameters`
+**request:** `Management.TokenExchangeProfilesListRequest`
@@ -10566,7 +10504,7 @@ const response = page.response;
-
-**requestOptions:** `UserAttributeProfilesClient.RequestOptions`
+**requestOptions:** `TokenExchangeProfilesClient.RequestOptions`
@@ -10577,7 +10515,7 @@ const response = page.response;
-client.userAttributeProfiles.create({ ...params }) -> Management.CreateUserAttributeProfileResponseContent
+client.tokenExchangeProfiles.create({ ...params }) -> Management.CreateTokenExchangeProfileResponseContent
-
@@ -10589,7 +10527,9 @@ const response = page.response;
-
-Create a User Attribute Profile
+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.
@@ -10605,16 +10545,11 @@ Create a User Attribute Profile
-
```typescript
-await client.userAttributeProfiles.create({
+await client.tokenExchangeProfiles.create({
name: "name",
- user_attributes: {
- key: {
- description: "description",
- label: "label",
- profile_required: true,
- auth0_mapping: "auth0_mapping",
- },
- },
+ subject_token_type: "subject_token_type",
+ action_id: "action_id",
+ type: "custom_authentication",
});
```
@@ -10631,7 +10566,7 @@ await client.userAttributeProfiles.create({
-
-**request:** `Management.CreateUserAttributeProfileRequestContent`
+**request:** `Management.CreateTokenExchangeProfileRequestContent`
@@ -10639,7 +10574,7 @@ await client.userAttributeProfiles.create({
-
-**requestOptions:** `UserAttributeProfilesClient.RequestOptions`
+**requestOptions:** `TokenExchangeProfilesClient.RequestOptions`
@@ -10650,7 +10585,7 @@ await client.userAttributeProfiles.create({
-client.userAttributeProfiles.listTemplates() -> Management.ListUserAttributeProfileTemplateResponseContent
+client.tokenExchangeProfiles.get(id) -> Management.GetTokenExchangeProfileResponseContent
-
@@ -10662,7 +10597,9 @@ await client.userAttributeProfiles.create({
-
-Retrieve a list of User Attribute Profile Templates.
+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.
@@ -10678,7 +10615,7 @@ Retrieve a list of User Attribute Profile Templates.
-
```typescript
-await client.userAttributeProfiles.listTemplates();
+await client.tokenExchangeProfiles.get("id");
```
@@ -10694,7 +10631,15 @@ await client.userAttributeProfiles.listTemplates();
-
-**requestOptions:** `UserAttributeProfilesClient.RequestOptions`
+**id:** `string` — ID of the Token Exchange Profile to retrieve.
+
+
+
+
+
+-
+
+**requestOptions:** `TokenExchangeProfilesClient.RequestOptions`
@@ -10705,7 +10650,7 @@ await client.userAttributeProfiles.listTemplates();
-client.userAttributeProfiles.getTemplate(id) -> Management.GetUserAttributeProfileTemplateResponseContent
+client.tokenExchangeProfiles.delete(id) -> void
-
@@ -10717,7 +10662,9 @@ await client.userAttributeProfiles.listTemplates();
-
-Retrieve a User Attribute Profile Template.
+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.
@@ -10733,7 +10680,7 @@ Retrieve a User Attribute Profile Template.
-
```typescript
-await client.userAttributeProfiles.getTemplate("id");
+await client.tokenExchangeProfiles.delete("id");
```
@@ -10749,7 +10696,7 @@ await client.userAttributeProfiles.getTemplate("id");
-
-**id:** `string` — ID of the user-attribute-profile-template to retrieve.
+**id:** `string` — ID of the Token Exchange Profile to delete.
@@ -10757,7 +10704,7 @@ await client.userAttributeProfiles.getTemplate("id");
-
-**requestOptions:** `UserAttributeProfilesClient.RequestOptions`
+**requestOptions:** `TokenExchangeProfilesClient.RequestOptions`
@@ -10768,7 +10715,7 @@ await client.userAttributeProfiles.getTemplate("id");
-client.userAttributeProfiles.get(id) -> Management.GetUserAttributeProfileResponseContent
+client.tokenExchangeProfiles.update(id, { ...params }) -> void
-
@@ -10780,7 +10727,9 @@ await client.userAttributeProfiles.getTemplate("id");
-
-Retrieve details about a single User Attribute Profile specified by ID.
+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.
@@ -10796,7 +10745,7 @@ Retrieve details about a single User Attribute Profile specified by ID.
-
```typescript
-await client.userAttributeProfiles.get("id");
+await client.tokenExchangeProfiles.update("id");
```
@@ -10812,7 +10761,7 @@ await client.userAttributeProfiles.get("id");
-
-**id:** `string` — ID of the user-attribute-profile to retrieve.
+**id:** `string` — ID of the Token Exchange Profile to update.
@@ -10820,7 +10769,15 @@ await client.userAttributeProfiles.get("id");
-
-**requestOptions:** `UserAttributeProfilesClient.RequestOptions`
+**request:** `Management.UpdateTokenExchangeProfileRequestContent`
+
+
+
+
+
+-
+
+**requestOptions:** `TokenExchangeProfilesClient.RequestOptions`
@@ -10831,7 +10788,9 @@ await client.userAttributeProfiles.get("id");
-client.userAttributeProfiles.delete(id) -> void
+## UserAttributeProfiles
+
+client.userAttributeProfiles.list({ ...params }) -> core.Page<Management.UserAttributeProfile, Management.ListUserAttributeProfilesPaginatedResponseContent>
-
@@ -10843,7 +10802,7 @@ await client.userAttributeProfiles.get("id");
-
-Delete a single User Attribute Profile specified by ID.
+Retrieve a list of User Attribute Profiles. This endpoint supports Checkpoint pagination.
@@ -10859,7 +10818,25 @@ Delete a single User Attribute Profile specified by ID.
-
```typescript
-await client.userAttributeProfiles.delete("id");
+const pageableResponse = await client.userAttributeProfiles.list({
+ from: "from",
+ take: 1,
+});
+for await (const item of pageableResponse) {
+ console.log(item);
+}
+
+// Or you can manually iterate page-by-page
+let page = await client.userAttributeProfiles.list({
+ from: "from",
+ take: 1,
+});
+while (page.hasNextPage()) {
+ page = page.getNextPage();
+}
+
+// You can also access the underlying response
+const response = page.response;
```
@@ -10875,7 +10852,7 @@ await client.userAttributeProfiles.delete("id");
-
-**id:** `string` — ID of the user-attribute-profile to delete.
+**request:** `Management.ListUserAttributeProfileRequestParameters`
@@ -10894,7 +10871,7 @@ await client.userAttributeProfiles.delete("id");
-client.userAttributeProfiles.update(id, { ...params }) -> Management.UpdateUserAttributeProfileResponseContent
+client.userAttributeProfiles.create({ ...params }) -> Management.CreateUserAttributeProfileResponseContent
-
@@ -10906,7 +10883,7 @@ await client.userAttributeProfiles.delete("id");
-
-Update the details of a specific User attribute profile, such as name, user_id and user_attributes.
+Create a User Attribute Profile.
@@ -10922,7 +10899,17 @@ Update the details of a specific User attribute profile, such as name, user_id a
-
```typescript
-await client.userAttributeProfiles.update("id");
+await client.userAttributeProfiles.create({
+ name: "name",
+ user_attributes: {
+ key: {
+ description: "description",
+ label: "label",
+ profile_required: true,
+ auth0_mapping: "auth0_mapping",
+ },
+ },
+});
```
@@ -10938,7 +10925,7 @@ await client.userAttributeProfiles.update("id");
-
-**id:** `string` — ID of the user attribute profile to update.
+**request:** `Management.CreateUserAttributeProfileRequestContent`
@@ -10946,15 +10933,7 @@ await client.userAttributeProfiles.update("id");
-
-**request:** `Management.UpdateUserAttributeProfileRequestContent`
-
-
-
-
-
--
-
-**requestOptions:** `UserAttributeProfilesClient.RequestOptions`
+**requestOptions:** `UserAttributeProfilesClient.RequestOptions`
@@ -10965,9 +10944,7 @@ await client.userAttributeProfiles.update("id");
-## UserBlocks
-
-client.userBlocks.listByIdentifier({ ...params }) -> Management.ListUserBlocksByIdentifierResponseContent
+client.userAttributeProfiles.listTemplates() -> Management.ListUserAttributeProfileTemplateResponseContent
-
@@ -10979,7 +10956,7 @@ await client.userAttributeProfiles.update("id");
-
-Retrieve details of all Brute-force Protection blocks for a user with the given identifier (username, phone number, or email).
+Retrieve a list of User Attribute Profile Templates.
@@ -10995,10 +10972,7 @@ Retrieve details of all
@@ -11014,15 +10988,7 @@ await client.userBlocks.listByIdentifier({
-
-**request:** `Management.ListUserBlocksByIdentifierRequestParameters`
-
-
-
-
-
--
-
-**requestOptions:** `UserBlocksClient.RequestOptions`
+**requestOptions:** `UserAttributeProfilesClient.RequestOptions`
@@ -11033,7 +10999,7 @@ await client.userBlocks.listByIdentifier({
-client.userBlocks.deleteByIdentifier({ ...params }) -> void
+client.userAttributeProfiles.getTemplate(id) -> Management.GetUserAttributeProfileTemplateResponseContent
-
@@ -11045,9 +11011,7 @@ await client.userBlocks.listByIdentifier({
-
-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.
+Retrieve a User Attribute Profile Template.
@@ -11063,9 +11027,7 @@ Note: This endpoint does not unblock users that were
@@ -11081,7 +11043,7 @@ await client.userBlocks.deleteByIdentifier({
-
-**request:** `Management.DeleteUserBlocksByIdentifierRequestParameters`
+**id:** `string` — ID of the user-attribute-profile-template to retrieve.
@@ -11089,7 +11051,7 @@ await client.userBlocks.deleteByIdentifier({
-
-**requestOptions:** `UserBlocksClient.RequestOptions`
+**requestOptions:** `UserAttributeProfilesClient.RequestOptions`
@@ -11100,7 +11062,7 @@ await client.userBlocks.deleteByIdentifier({
-client.userBlocks.list(id, { ...params }) -> Management.ListUserBlocksResponseContent
+client.userAttributeProfiles.get(id) -> Management.GetUserAttributeProfileResponseContent
-
@@ -11112,7 +11074,7 @@ await client.userBlocks.deleteByIdentifier({
-
-Retrieve details of all Brute-force Protection blocks for the user with the given ID.
+Retrieve details about a single User Attribute Profile specified by ID.
@@ -11128,9 +11090,7 @@ Retrieve details of all
@@ -11146,15 +11106,7 @@ await client.userBlocks.list("id", {
-
-**id:** `string` — user_id of the user blocks to retrieve.
-
-
-
-
-
--
-
-**request:** `Management.ListUserBlocksRequestParameters`
+**id:** `string` — ID of the user-attribute-profile to retrieve.
@@ -11162,7 +11114,7 @@ await client.userBlocks.list("id", {
-
-**requestOptions:** `UserBlocksClient.RequestOptions`
+**requestOptions:** `UserAttributeProfilesClient.RequestOptions`
@@ -11173,7 +11125,7 @@ await client.userBlocks.list("id", {
-client.userBlocks.delete(id) -> void
+client.userAttributeProfiles.delete(id) -> void
-
@@ -11185,9 +11137,7 @@ await client.userBlocks.list("id", {
-
-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.
+Delete a single User Attribute Profile specified by ID.
@@ -11203,7 +11153,7 @@ Note: This endpoint does not unblock users that were
@@ -11219,7 +11169,7 @@ await client.userBlocks.delete("id");
-
-**id:** `string` — The user_id of the user to update.
+**id:** `string` — ID of the user-attribute-profile to delete.
@@ -11227,7 +11177,7 @@ await client.userBlocks.delete("id");
-
-**requestOptions:** `UserBlocksClient.RequestOptions`
+**requestOptions:** `UserAttributeProfilesClient.RequestOptions`
@@ -11238,9 +11188,7 @@ await client.userBlocks.delete("id");
-## Users
-
-client.users.list({ ...params }) -> core.Page<Management.UserResponseSchema, Management.ListUsersOffsetPaginatedResponseContent>
+client.userAttributeProfiles.update(id, { ...params }) -> Management.UpdateUserAttributeProfileResponseContent
-
@@ -11252,20 +11200,7 @@ await client.userBlocks.delete("id");
-
-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.
+Update the details of a specific User attribute profile, such as name, user_id and user_attributes.
@@ -11281,41 +11216,7 @@ Auth0 limits the number of users you can return. If you exceed this threshold, p
-
```typescript
-const pageableResponse = await client.users.list({
- page: 1,
- per_page: 1,
- include_totals: true,
- sort: "sort",
- connection: "connection",
- fields: "fields",
- include_fields: true,
- q: "q",
- search_engine: "v1",
- primary_order: true,
-});
-for await (const item of pageableResponse) {
- console.log(item);
-}
-
-// Or you can manually iterate page-by-page
-let page = await client.users.list({
- page: 1,
- per_page: 1,
- include_totals: true,
- sort: "sort",
- connection: "connection",
- fields: "fields",
- include_fields: true,
- q: "q",
- search_engine: "v1",
- primary_order: true,
-});
-while (page.hasNextPage()) {
- page = page.getNextPage();
-}
-
-// You can also access the underlying response
-const response = page.response;
+await client.userAttributeProfiles.update("id");
```
@@ -11331,7 +11232,7 @@ const response = page.response;
-
-**request:** `Management.ListUsersRequestParameters`
+**id:** `string` — ID of the user attribute profile to update.
@@ -11339,7 +11240,15 @@ const response = page.response;
-
-**requestOptions:** `UsersClient.RequestOptions`
+**request:** `Management.UpdateUserAttributeProfileRequestContent`
+
+
+
+
+
+-
+
+**requestOptions:** `UserAttributeProfilesClient.RequestOptions`
@@ -11350,7 +11259,9 @@ const response = page.response;
-client.users.create({ ...params }) -> Management.CreateUserResponseContent
+## UserBlocks
+
+client.userBlocks.listByIdentifier({ ...params }) -> Management.ListUserBlocksByIdentifierResponseContent
-
@@ -11362,9 +11273,7 @@ const response = page.response;
-
-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.
+Retrieve details of all [Brute-force Protection](https://auth0.com/docs/secure/attack-protection/brute-force-protection) blocks for a user with the given identifier (username, phone number, or email).
@@ -11380,8 +11289,9 @@ Note: connection is required but other parameters such as ema
-
```typescript
-await client.users.create({
- connection: "connection",
+await client.userBlocks.listByIdentifier({
+ identifier: "identifier",
+ consider_brute_force_enablement: true,
});
```
@@ -11398,7 +11308,7 @@ await client.users.create({
-
-**request:** `Management.CreateUserRequestContent`
+**request:** `Management.ListUserBlocksByIdentifierRequestParameters`
@@ -11406,7 +11316,7 @@ await client.users.create({
-
-**requestOptions:** `UsersClient.RequestOptions`
+**requestOptions:** `UserBlocksClient.RequestOptions`
@@ -11417,7 +11327,7 @@ await client.users.create({
-client.users.listUsersByEmail({ ...params }) -> Management.UserResponseSchema[]
+client.userBlocks.deleteByIdentifier({ ...params }) -> void
-
@@ -11429,11 +11339,9 @@ await client.users.create({
-
-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.
+Remove all [Brute-force Protection](https://auth0.com/docs/secure/attack-protection/brute-force-protection) blocks for the user with the given identifier (username, phone number, or email).
-Therefore, when using this endpoint, make sure that you are searching for users via email addresses using the correct case.
+Note: This endpoint does not unblock users that were [blocked by a tenant administrator](https://auth0.com/docs/user-profile#block-and-unblock-a-user).
@@ -11449,10 +11357,8 @@ Therefore, when using this endpoint, make sure that you are searching for users
-
```typescript
-await client.users.listUsersByEmail({
- fields: "fields",
- include_fields: true,
- email: "email",
+await client.userBlocks.deleteByIdentifier({
+ identifier: "identifier",
});
```
@@ -11469,7 +11375,7 @@ await client.users.listUsersByEmail({
-
-**request:** `Management.ListUsersByEmailRequestParameters`
+**request:** `Management.DeleteUserBlocksByIdentifierRequestParameters`
@@ -11477,7 +11383,7 @@ await client.users.listUsersByEmail({
-
-**requestOptions:** `UsersClient.RequestOptions`
+**requestOptions:** `UserBlocksClient.RequestOptions`
@@ -11488,7 +11394,7 @@ await client.users.listUsersByEmail({
-client.users.get(id, { ...params }) -> Management.GetUserResponseContent
+client.userBlocks.list(id, { ...params }) -> Management.ListUserBlocksResponseContent
-
@@ -11500,7 +11406,7 @@ await client.users.listUsersByEmail({
-
-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.
+Retrieve details of all [Brute-force Protection](https://auth0.com/docs/secure/attack-protection/brute-force-protection) blocks for the user with the given ID.
@@ -11516,9 +11422,8 @@ Retrieve user details. A list of fields to include or exclude may also be specif
-
```typescript
-await client.users.get("id", {
- fields: "fields",
- include_fields: true,
+await client.userBlocks.list("id", {
+ consider_brute_force_enablement: true,
});
```
@@ -11535,7 +11440,7 @@ await client.users.get("id", {
-
-**id:** `string` — ID of the user to retrieve.
+**id:** `string` — user_id of the user blocks to retrieve.
@@ -11543,7 +11448,7 @@ await client.users.get("id", {
-
-**request:** `Management.GetUserRequestParameters`
+**request:** `Management.ListUserBlocksRequestParameters`
@@ -11551,7 +11456,7 @@ await client.users.get("id", {
-
-**requestOptions:** `UsersClient.RequestOptions`
+**requestOptions:** `UserBlocksClient.RequestOptions`
@@ -11562,7 +11467,7 @@ await client.users.get("id", {
-client.users.delete(id) -> void
+client.userBlocks.delete(id) -> void
-
@@ -11574,7 +11479,9 @@ await client.users.get("id", {
-
-Delete a user by user ID. This action cannot be undone. For Auth0 Dashboard instructions, see Delete Users.
+Remove all [Brute-force Protection](https://auth0.com/docs/secure/attack-protection/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](https://auth0.com/docs/user-profile#block-and-unblock-a-user).
@@ -11590,7 +11497,7 @@ Delete a user by user ID. This action cannot be undone. For Auth0 Dashboard inst
-
```typescript
-await client.users.delete("id");
+await client.userBlocks.delete("id");
```
@@ -11606,7 +11513,7 @@ await client.users.delete("id");
-
-**id:** `string` — ID of the user to delete.
+**id:** `string` — The user_id of the user to update.
@@ -11614,7 +11521,7 @@ await client.users.delete("id");
-
-**requestOptions:** `UsersClient.RequestOptions`
+**requestOptions:** `UserBlocksClient.RequestOptions`
@@ -11625,7 +11532,9 @@ await client.users.delete("id");
-client.users.update(id, { ...params }) -> Management.UpdateUserResponseContent
+## Users
+
+client.users.list({ ...params }) -> core.Page<Management.UserResponseSchema, Management.ListUsersOffsetPaginatedResponseContent>
-
@@ -11637,79 +11546,21 @@ await client.users.delete("id");
-
-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 } }
+Retrieve details of users. It is possible to:
-To add the field addresses the body to send should be:
+- 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
-{ "user_metadata" : { "addresses": {"work_address": "100 Industrial Way"} }}
+The `q` query parameter can be used to get users that match the specified criteria [using query string syntax.](https://auth0.com/docs/users/search/v3/query-syntax)
-The modified object ends up with the following user_metadata property:{
-"user_metadata": {
-"profileCode": 1479,
-"addresses": { "work_address": "100 Industrial Way" }
-}
-}
+[Learn more about searching for users.](https://auth0.com/docs/users/search/v3)
-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"
- }
- }
-}
+Read about [best practices](https://auth0.com/docs/users/search/best-practices) when working with the API endpoints for retrieving users.
-The modified object ends up with the following user_metadata property:
+Auth0 limits the number of users you can return. If you exceed this threshold, please redefine your search, use the [export job](https://auth0.com/docs/api/management/v2#!/Jobs/post_users_exports), or the [User Import / Export](https://auth0.com/docs/extensions/user-import-export) extension.
-{
- "user_metadata": {
- "profileCode": 1479,
- "addresses": {
- "work_address": "100 Industrial Way",
- "home_address": "742 Evergreen Terrace"
- }
- }
-}
@@ -11724,7 +11575,41 @@ The modified object ends up with the following user_metadata proper
-
```typescript
-await client.users.update("id");
+const pageableResponse = await client.users.list({
+ page: 1,
+ per_page: 1,
+ include_totals: true,
+ sort: "sort",
+ connection: "connection",
+ fields: "fields",
+ include_fields: true,
+ q: "q",
+ search_engine: "v1",
+ primary_order: true,
+});
+for await (const item of pageableResponse) {
+ console.log(item);
+}
+
+// Or you can manually iterate page-by-page
+let page = await client.users.list({
+ page: 1,
+ per_page: 1,
+ include_totals: true,
+ sort: "sort",
+ connection: "connection",
+ fields: "fields",
+ include_fields: true,
+ q: "q",
+ search_engine: "v1",
+ primary_order: true,
+});
+while (page.hasNextPage()) {
+ page = page.getNextPage();
+}
+
+// You can also access the underlying response
+const response = page.response;
```
@@ -11740,7 +11625,7 @@ await client.users.update("id");
-
-**id:** `string` — ID of the user to update.
+**request:** `Management.ListUsersRequestParameters`
@@ -11748,26 +11633,18 @@ await client.users.update("id");
-
-**request:** `Management.UpdateUserRequestContent`
+**requestOptions:** `UsersClient.RequestOptions`
-
-
--
-
-**requestOptions:** `UsersClient.RequestOptions`
-
-
-
-
-
+
+
-client.users.regenerateRecoveryCode(id) -> Management.RegenerateUsersRecoveryCodeResponseContent
+client.users.create({ ...params }) -> Management.CreateUserResponseContent
-
@@ -11779,7 +11656,9 @@ await client.users.update("id");
-
-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.
+Create a new user for a given [database](https://auth0.com/docs/connections/database) or [passwordless](https://auth0.com/docs/connections/passwordless) connection.
+
+Note: `connection` is required but other parameters such as `email` and `password` are dependent upon the type of connection.
@@ -11795,7 +11674,9 @@ Remove an existing multi-factor authentication (MFA)
@@ -11811,7 +11692,7 @@ await client.users.regenerateRecoveryCode("id");
-
-**id:** `string` — ID of the user to regenerate a multi-factor authentication recovery code for.
+**request:** `Management.CreateUserRequestContent`
@@ -11830,7 +11711,7 @@ await client.users.regenerateRecoveryCode("id");
-client.users.revokeAccess(id, { ...params }) -> void
+client.users.listUsersByEmail({ ...params }) -> Management.UserResponseSchema[]
-
@@ -11842,7 +11723,11 @@ await client.users.regenerateRecoveryCode("id");
-
-Revokes selected resources related to a user (sessions, refresh tokens, ...).
+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.
@@ -11858,7 +11743,11 @@ Revokes selected resources related to a user (sessions, refresh tokens, ...).
-
```typescript
-await client.users.revokeAccess("id");
+await client.users.listUsersByEmail({
+ fields: "fields",
+ include_fields: true,
+ email: "email",
+});
```
@@ -11874,15 +11763,7 @@ await client.users.revokeAccess("id");
-
-**id:** `string` — ID of the user.
-
-
-
-
-
--
-
-**request:** `Management.RevokeUserAccessRequestContent`
+**request:** `Management.ListUsersByEmailRequestParameters`
@@ -11901,9 +11782,7 @@ await client.users.revokeAccess("id");
-## Actions Versions
-
-client.actions.versions.list(actionId, { ...params }) -> core.Page<Management.ActionVersion, Management.ListActionVersionsPaginatedResponseContent>
+client.users.get(id, { ...params }) -> Management.GetUserResponseContent
-
@@ -11915,7 +11794,7 @@ await client.users.revokeAccess("id");
-
-Retrieve all of an action's versions. An action version is created whenever an action is deployed. An action version is immutable, once created.
+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](https://auth0.com/docs/manage-users/user-search/retrieve-users-with-get-users-endpoint).
@@ -11931,25 +11810,10 @@ Retrieve all of an action's versions. An action version is created whenever an a
-
```typescript
-const pageableResponse = await client.actions.versions.list("actionId", {
- page: 1,
- per_page: 1,
-});
-for await (const item of pageableResponse) {
- console.log(item);
-}
-
-// Or you can manually iterate page-by-page
-let page = await client.actions.versions.list("actionId", {
- page: 1,
- per_page: 1,
+await client.users.get("id", {
+ fields: "fields",
+ include_fields: true,
});
-while (page.hasNextPage()) {
- page = page.getNextPage();
-}
-
-// You can also access the underlying response
-const response = page.response;
```
@@ -11965,7 +11829,7 @@ const response = page.response;
-
-**actionId:** `string` — The ID of the action.
+**id:** `string` — ID of the user to retrieve.
@@ -11973,7 +11837,7 @@ const response = page.response;
-
-**request:** `Management.ListActionVersionsRequestParameters`
+**request:** `Management.GetUserRequestParameters`
@@ -11981,7 +11845,7 @@ const response = page.response;
-
-**requestOptions:** `VersionsClient.RequestOptions`
+**requestOptions:** `UsersClient.RequestOptions`
@@ -11992,7 +11856,7 @@ const response = page.response;
-client.actions.versions.get(actionId, id) -> Management.GetActionVersionResponseContent
+client.users.delete(id) -> void
-
@@ -12004,7 +11868,7 @@ const response = page.response;
-
-Retrieve a specific version of an action. An action version is created whenever an action is deployed. An action version is immutable, once created.
+Delete a user by user ID. This action cannot be undone. For Auth0 Dashboard instructions, see [Delete Users](https://auth0.com/docs/manage-users/user-accounts/delete-users).
@@ -12020,7 +11884,7 @@ Retrieve a specific version of an action. An action version is created whenever
-
```typescript
-await client.actions.versions.get("actionId", "id");
+await client.users.delete("id");
```
@@ -12036,15 +11900,7 @@ await client.actions.versions.get("actionId", "id");
-
-**actionId:** `string` — The ID of the action.
-
-
-
-
-
--
-
-**id:** `string` — The ID of the action version.
+**id:** `string` — ID of the user to delete.
@@ -12052,7 +11908,7 @@ await client.actions.versions.get("actionId", "id");
-
-**requestOptions:** `VersionsClient.RequestOptions`
+**requestOptions:** `UsersClient.RequestOptions`
@@ -12063,7 +11919,7 @@ await client.actions.versions.get("actionId", "id");
-client.actions.versions.deploy(actionId, id, { ...params }) -> Management.DeployActionVersionResponseContent
+client.users.update(id, { ...params }) -> Management.UpdateUserResponseContent
-
@@ -12075,7 +11931,97 @@ await client.actions.versions.get("actionId", "id");
-
-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.
+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:
+
+```json
+{ "email_verified": true }
+```
+
+**Updating a user metadata root property**
+
+Let's assume that our test user has the following `user_metadata`:
+
+```json
+{ "user_metadata": { "profileCode": 1479 } }
+```
+
+To add the field `addresses` the body to send should be:
+
+```json
+{ "user_metadata": { "addresses": { "work_address": "100 Industrial Way" } } }
+```
+
+The modified object ends up with the following `user_metadata` property:
+
+```json
+{
+ "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:
+
+```json
+{
+ "user_metadata": {
+ "addresses": {
+ "work_address": "100 Industrial Way",
+ "home_address": "742 Evergreen Terrace"
+ }
+ }
+}
+```
+
+The modified object ends up with the following `user_metadata` property:
+
+```json
+{
+ "user_metadata": {
+ "profileCode": 1479,
+ "addresses": {
+ "work_address": "100 Industrial Way",
+ "home_address": "742 Evergreen Terrace"
+ }
+ }
+}
+```
@@ -12091,7 +12037,7 @@ Performs the equivalent of a roll-back of an action to an earlier, specified ver
-
```typescript
-await client.actions.versions.deploy("actionId", "id");
+await client.users.update("id");
```
@@ -12107,15 +12053,7 @@ await client.actions.versions.deploy("actionId", "id");
-
-**actionId:** `string` — The ID of an action.
-
-
-
-
-
--
-
-**id:** `string` — The ID of an action version.
+**id:** `string` — ID of the user to update.
@@ -12123,7 +12061,7 @@ await client.actions.versions.deploy("actionId", "id");
-
-**request:** `Management.DeployActionVersionRequestContent | null`
+**request:** `Management.UpdateUserRequestContent`
@@ -12131,7 +12069,7 @@ await client.actions.versions.deploy("actionId", "id");
-
-**requestOptions:** `VersionsClient.RequestOptions`
+**requestOptions:** `UsersClient.RequestOptions`
@@ -12142,9 +12080,7 @@ await client.actions.versions.deploy("actionId", "id");
-## Actions Executions
-
-client.actions.executions.get(id) -> Management.GetActionExecutionResponseContent
+client.users.regenerateRecoveryCode(id) -> Management.RegenerateUsersRecoveryCodeResponseContent
-
@@ -12156,7 +12092,7 @@ await client.actions.versions.deploy("actionId", "id");
-
-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.
+Remove an existing multi-factor authentication (MFA) [recovery code](https://auth0.com/docs/secure/multi-factor-authentication/reset-user-mfa) 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.
@@ -12172,7 +12108,7 @@ Retrieve information about a specific execution of a trigger. Relevant execution
-
```typescript
-await client.actions.executions.get("id");
+await client.users.regenerateRecoveryCode("id");
```
@@ -12188,7 +12124,7 @@ await client.actions.executions.get("id");
-
-**id:** `string` — The ID of the execution to retrieve.
+**id:** `string` — ID of the user to regenerate a multi-factor authentication recovery code for.
@@ -12196,7 +12132,7 @@ await client.actions.executions.get("id");
-
-**requestOptions:** `ExecutionsClient.RequestOptions`
+**requestOptions:** `UsersClient.RequestOptions`
@@ -12207,9 +12143,7 @@ await client.actions.executions.get("id");
-## Actions Modules
-
-client.actions.modules.list({ ...params }) -> core.Page<Management.ActionModuleListItem, Management.GetActionModulesResponseContent>
+client.users.revokeAccess(id, { ...params }) -> void
-
@@ -12221,7 +12155,7 @@ await client.actions.executions.get("id");
-
-Retrieve a paginated list of all Actions Modules with optional filtering and totals.
+Revokes selected resources related to a user (sessions, refresh tokens, ...).
@@ -12237,25 +12171,7 @@ Retrieve a paginated list of all Actions Modules with optional filtering and tot
-
```typescript
-const pageableResponse = await client.actions.modules.list({
- page: 1,
- per_page: 1,
-});
-for await (const item of pageableResponse) {
- console.log(item);
-}
-
-// Or you can manually iterate page-by-page
-let page = await client.actions.modules.list({
- page: 1,
- per_page: 1,
-});
-while (page.hasNextPage()) {
- page = page.getNextPage();
-}
-
-// You can also access the underlying response
-const response = page.response;
+await client.users.revokeAccess("id");
```
@@ -12271,7 +12187,7 @@ const response = page.response;
-
-**request:** `Management.GetActionModulesRequestParameters`
+**id:** `string` — ID of the user.
@@ -12279,7 +12195,15 @@ const response = page.response;
-
-**requestOptions:** `ModulesClient.RequestOptions`
+**request:** `Management.RevokeUserAccessRequestContent`
+
+
+
+
+
+-
+
+**requestOptions:** `UsersClient.RequestOptions`
@@ -12290,7 +12214,9 @@ const response = page.response;
-client.actions.modules.create({ ...params }) -> Management.CreateActionModuleResponseContent
+## Actions Versions
+
+client.actions.versions.list(actionId, { ...params }) -> core.Page<Management.ActionVersion, Management.ListActionVersionsPaginatedResponseContent>
-
@@ -12302,7 +12228,7 @@ const response = page.response;
-
-Create a new Actions Module for reusable code across actions.
+Retrieve all of an action's versions. An action version is created whenever an action is deployed. An action version is immutable, once created.
@@ -12318,10 +12244,25 @@ Create a new Actions Module for reusable code across actions.
-
```typescript
-await client.actions.modules.create({
- name: "name",
- code: "code",
+const pageableResponse = await client.actions.versions.list("actionId", {
+ page: 1,
+ per_page: 1,
+});
+for await (const item of pageableResponse) {
+ console.log(item);
+}
+
+// Or you can manually iterate page-by-page
+let page = await client.actions.versions.list("actionId", {
+ page: 1,
+ per_page: 1,
});
+while (page.hasNextPage()) {
+ page = page.getNextPage();
+}
+
+// You can also access the underlying response
+const response = page.response;
```
@@ -12337,7 +12278,7 @@ await client.actions.modules.create({
-
-**request:** `Management.CreateActionModuleRequestContent`
+**actionId:** `string` — The ID of the action.
@@ -12345,7 +12286,15 @@ await client.actions.modules.create({
-
-**requestOptions:** `ModulesClient.RequestOptions`
+**request:** `Management.ListActionVersionsRequestParameters`
+
+
+
+
+
+-
+
+**requestOptions:** `VersionsClient.RequestOptions`
@@ -12356,7 +12305,7 @@ await client.actions.modules.create({
-client.actions.modules.get(id) -> Management.GetActionModuleResponseContent
+client.actions.versions.get(actionId, id) -> Management.GetActionVersionResponseContent
-
@@ -12368,7 +12317,7 @@ await client.actions.modules.create({
-
-Retrieve details of a specific Actions Module by its unique identifier.
+Retrieve a specific version of an action. An action version is created whenever an action is deployed. An action version is immutable, once created.
@@ -12384,7 +12333,7 @@ Retrieve details of a specific Actions Module by its unique identifier.
-
```typescript
-await client.actions.modules.get("id");
+await client.actions.versions.get("actionId", "id");
```
@@ -12400,7 +12349,7 @@ await client.actions.modules.get("id");
-
-**id:** `string` — The ID of the action module to retrieve.
+**actionId:** `string` — The ID of the action.
@@ -12408,10 +12357,18 @@ await client.actions.modules.get("id");
-
-**requestOptions:** `ModulesClient.RequestOptions`
+**id:** `string` — The ID of the action version.
-
-
+
+
+
+
+-
+
+**requestOptions:** `VersionsClient.RequestOptions`
+
+
+
@@ -12419,7 +12376,7 @@ await client.actions.modules.get("id");
-client.actions.modules.delete(id) -> void
+client.actions.versions.deploy(actionId, id, { ...params }) -> Management.DeployActionVersionResponseContent
-
@@ -12431,7 +12388,7 @@ await client.actions.modules.get("id");
-
-Permanently delete an Actions Module. This will fail if the module is still in use by any actions.
+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.
@@ -12447,7 +12404,7 @@ Permanently delete an Actions Module. This will fail if the module is still in u
-
```typescript
-await client.actions.modules.delete("id");
+await client.actions.versions.deploy("actionId", "id");
```
@@ -12463,7 +12420,7 @@ await client.actions.modules.delete("id");
-
-**id:** `string` — The ID of the Actions Module to delete.
+**actionId:** `string` — The ID of an action.
@@ -12471,7 +12428,23 @@ await client.actions.modules.delete("id");
-
-**requestOptions:** `ModulesClient.RequestOptions`
+**id:** `string` — The ID of an action version.
+
+
+
+
+
+-
+
+**request:** `Management.DeployActionVersionRequestContent | null`
+
+
+
+
+
+-
+
+**requestOptions:** `VersionsClient.RequestOptions`
@@ -12482,7 +12455,9 @@ await client.actions.modules.delete("id");
-client.actions.modules.update(id, { ...params }) -> Management.UpdateActionModuleResponseContent
+## Actions Executions
+
+client.actions.executions.get(id) -> Management.GetActionExecutionResponseContent
-
@@ -12494,7 +12469,7 @@ await client.actions.modules.delete("id");
-
-Update properties of an existing Actions Module, such as code, dependencies, or secrets.
+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.
@@ -12510,7 +12485,7 @@ Update properties of an existing Actions Module, such as code, dependencies, or
-
```typescript
-await client.actions.modules.update("id");
+await client.actions.executions.get("id");
```
@@ -12526,15 +12501,7 @@ await client.actions.modules.update("id");
-
-**id:** `string` — The ID of the action module to update.
-
-
-
-
-
--
-
-**request:** `Management.UpdateActionModuleRequestContent`
+**id:** `string` — The ID of the execution to retrieve.
@@ -12542,7 +12509,7 @@ await client.actions.modules.update("id");
-
-**requestOptions:** `ModulesClient.RequestOptions`
+**requestOptions:** `ExecutionsClient.RequestOptions`
@@ -12553,7 +12520,9 @@ await client.actions.modules.update("id");
-client.actions.modules.listActions(id, { ...params }) -> core.Page<Management.ActionModuleAction, Management.GetActionModuleActionsResponseContent>
+## Actions Modules
+
+client.actions.modules.list({ ...params }) -> core.Page<Management.ActionModuleListItem, Management.GetActionModulesResponseContent>
-
@@ -12565,7 +12534,7 @@ await client.actions.modules.update("id");
-
-Lists all actions that are using a specific Actions Module, showing which deployed action versions reference this Actions Module.
+Retrieve a paginated list of all Actions Modules with optional filtering and totals.
@@ -12581,7 +12550,7 @@ Lists all actions that are using a specific Actions Module, showing which deploy
-
```typescript
-const pageableResponse = await client.actions.modules.listActions("id", {
+const pageableResponse = await client.actions.modules.list({
page: 1,
per_page: 1,
});
@@ -12590,7 +12559,7 @@ for await (const item of pageableResponse) {
}
// Or you can manually iterate page-by-page
-let page = await client.actions.modules.listActions("id", {
+let page = await client.actions.modules.list({
page: 1,
per_page: 1,
});
@@ -12615,15 +12584,7 @@ const response = page.response;
-
-**id:** `string` — The unique ID of the module.
-
-
-
-
-
--
-
-**request:** `Management.GetActionModuleActionsRequestParameters`
+**request:** `Management.GetActionModulesRequestParameters`
@@ -12642,7 +12603,7 @@ const response = page.response;
-client.actions.modules.rollback(id, { ...params }) -> Management.RollbackActionModuleResponseContent
+client.actions.modules.create({ ...params }) -> Management.CreateActionModuleResponseContent
-
@@ -12654,7 +12615,7 @@ const response = page.response;
-
-Rolls back an Actions Module's draft to a previously created version. This action copies the code, dependencies, and secrets from the specified version into the current draft.
+Create a new Actions Module for reusable code across actions.
@@ -12670,8 +12631,9 @@ Rolls back an Actions Module's draft to a previously created version. This actio
-
```typescript
-await client.actions.modules.rollback("id", {
- module_version_id: "module_version_id",
+await client.actions.modules.create({
+ name: "name",
+ code: "code",
});
```
@@ -12688,15 +12650,7 @@ await client.actions.modules.rollback("id", {
-
-**id:** `string` — The unique ID of the module to roll back.
-
-
-
-
-
--
-
-**request:** `Management.RollbackActionModuleRequestParameters`
+**request:** `Management.CreateActionModuleRequestContent`
@@ -12715,66 +12669,7 @@ await client.actions.modules.rollback("id", {
-## Actions Triggers
-
-client.actions.triggers.list() -> Management.ListActionTriggersResponseContent
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-Retrieve the set of triggers currently available within actions. A trigger is an extensibility point to which actions can be bound.
-
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```typescript
-await client.actions.triggers.list();
-```
-
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**requestOptions:** `TriggersClient.RequestOptions`
-
-
-
-
-
-
-
-
-
-
-## Actions Modules Versions
-
-client.actions.modules.versions.list(id, { ...params }) -> core.Page<Management.ActionModuleVersion, Management.GetActionModuleVersionsResponseContent>
+client.actions.modules.get(id) -> Management.GetActionModuleResponseContent
-
@@ -12786,7 +12681,7 @@ await client.actions.triggers.list();
-
-List all published versions of a specific Actions Module.
+Retrieve details of a specific Actions Module by its unique identifier.
@@ -12802,25 +12697,7 @@ List all published versions of a specific Actions Module.
-
```typescript
-const pageableResponse = await client.actions.modules.versions.list("id", {
- page: 1,
- per_page: 1,
-});
-for await (const item of pageableResponse) {
- console.log(item);
-}
-
-// Or you can manually iterate page-by-page
-let page = await client.actions.modules.versions.list("id", {
- page: 1,
- per_page: 1,
-});
-while (page.hasNextPage()) {
- page = page.getNextPage();
-}
-
-// You can also access the underlying response
-const response = page.response;
+await client.actions.modules.get("id");
```
@@ -12836,15 +12713,7 @@ const response = page.response;
-
-**id:** `string` — The unique ID of the module.
-
-
-
-
-
--
-
-**request:** `Management.GetActionModuleVersionsRequestParameters`
+**id:** `string` — The ID of the action module to retrieve.
@@ -12852,7 +12721,7 @@ const response = page.response;
-
-**requestOptions:** `VersionsClient.RequestOptions`
+**requestOptions:** `ModulesClient.RequestOptions`
@@ -12863,7 +12732,7 @@ const response = page.response;
-client.actions.modules.versions.create(id) -> Management.CreateActionModuleVersionResponseContent
+client.actions.modules.delete(id) -> void
-
@@ -12875,7 +12744,7 @@ const response = page.response;
-
-Creates a new immutable version of an Actions Module from the current draft version. This publishes the draft as a new version that can be referenced by actions, while maintaining the existing draft for continued development.
+Permanently delete an Actions Module. This will fail if the module is still in use by any actions.
@@ -12891,7 +12760,7 @@ Creates a new immutable version of an Actions Module from the current draft vers
-
```typescript
-await client.actions.modules.versions.create("id");
+await client.actions.modules.delete("id");
```
@@ -12907,7 +12776,7 @@ await client.actions.modules.versions.create("id");
-
-**id:** `string` — The ID of the action module to create a version for.
+**id:** `string` — The ID of the Actions Module to delete.
@@ -12915,7 +12784,7 @@ await client.actions.modules.versions.create("id");
-
-**requestOptions:** `VersionsClient.RequestOptions`
+**requestOptions:** `ModulesClient.RequestOptions`
@@ -12926,7 +12795,7 @@ await client.actions.modules.versions.create("id");
-client.actions.modules.versions.get(id, versionId) -> Management.GetActionModuleVersionResponseContent
+client.actions.modules.update(id, { ...params }) -> Management.UpdateActionModuleResponseContent
-
@@ -12938,7 +12807,7 @@ await client.actions.modules.versions.create("id");
-
-Retrieve the details of a specific, immutable version of an Actions Module.
+Update properties of an existing Actions Module, such as code, dependencies, or secrets.
@@ -12954,7 +12823,7 @@ Retrieve the details of a specific, immutable version of an Actions Module.
-
```typescript
-await client.actions.modules.versions.get("id", "versionId");
+await client.actions.modules.update("id");
```
@@ -12970,7 +12839,7 @@ await client.actions.modules.versions.get("id", "versionId");
-
-**id:** `string` — The unique ID of the module.
+**id:** `string` — The ID of the action module to update.
@@ -12978,7 +12847,7 @@ await client.actions.modules.versions.get("id", "versionId");
-
-**versionId:** `string` — The unique ID of the module version to retrieve.
+**request:** `Management.UpdateActionModuleRequestContent`
@@ -12986,7 +12855,7 @@ await client.actions.modules.versions.get("id", "versionId");
-
-**requestOptions:** `VersionsClient.RequestOptions`
+**requestOptions:** `ModulesClient.RequestOptions`
@@ -12997,9 +12866,7 @@ await client.actions.modules.versions.get("id", "versionId");
-## Actions Triggers Bindings
-
-client.actions.triggers.bindings.list(triggerId, { ...params }) -> core.Page<Management.ActionBinding, Management.ListActionBindingsPaginatedResponseContent>
+client.actions.modules.listActions(id, { ...params }) -> core.Page<Management.ActionModuleAction, Management.GetActionModuleActionsResponseContent>
-
@@ -13011,7 +12878,7 @@ await client.actions.modules.versions.get("id", "versionId");
-
-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.
+Lists all actions that are using a specific Actions Module, showing which deployed action versions reference this Actions Module.
@@ -13027,7 +12894,7 @@ Retrieve the actions that are bound to a trigger. Once an action is created and
-
```typescript
-const pageableResponse = await client.actions.triggers.bindings.list("post-login", {
+const pageableResponse = await client.actions.modules.listActions("id", {
page: 1,
per_page: 1,
});
@@ -13036,7 +12903,7 @@ for await (const item of pageableResponse) {
}
// Or you can manually iterate page-by-page
-let page = await client.actions.triggers.bindings.list("post-login", {
+let page = await client.actions.modules.listActions("id", {
page: 1,
per_page: 1,
});
@@ -13061,7 +12928,7 @@ const response = page.response;
-
-**triggerId:** `Management.ActionTriggerTypeEnum` — An actions extensibility point.
+**id:** `string` — The unique ID of the module.
@@ -13069,7 +12936,7 @@ const response = page.response;
-
-**request:** `Management.ListActionTriggerBindingsRequestParameters`
+**request:** `Management.GetActionModuleActionsRequestParameters`
@@ -13077,7 +12944,7 @@ const response = page.response;
-
-**requestOptions:** `BindingsClient.RequestOptions`
+**requestOptions:** `ModulesClient.RequestOptions`
@@ -13088,7 +12955,7 @@ const response = page.response;
-client.actions.triggers.bindings.updateMany(triggerId, { ...params }) -> Management.UpdateActionBindingsResponseContent
+client.actions.modules.rollback(id, { ...params }) -> Management.RollbackActionModuleResponseContent
-
@@ -13100,7 +12967,7 @@ const response = page.response;
-
-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.
+Rolls back an Actions Module's draft to a previously created version. This action copies the code, dependencies, and secrets from the specified version into the current draft.
@@ -13116,7 +12983,9 @@ Update the actions that are bound (i.e. attached) to a trigger. Once an action i
-
```typescript
-await client.actions.triggers.bindings.updateMany("post-login");
+await client.actions.modules.rollback("id", {
+ module_version_id: "module_version_id",
+});
```
@@ -13132,7 +13001,7 @@ await client.actions.triggers.bindings.updateMany("post-login");
-
-**triggerId:** `Management.ActionTriggerTypeEnum` — An actions extensibility point.
+**id:** `string` — The unique ID of the module to roll back.
@@ -13140,7 +13009,7 @@ await client.actions.triggers.bindings.updateMany("post-login");
-
-**request:** `Management.UpdateActionBindingsRequestContent`
+**request:** `Management.RollbackActionModuleRequestParameters`
@@ -13148,7 +13017,7 @@ await client.actions.triggers.bindings.updateMany("post-login");
-
-**requestOptions:** `BindingsClient.RequestOptions`
+**requestOptions:** `ModulesClient.RequestOptions`
@@ -13159,9 +13028,9 @@ await client.actions.triggers.bindings.updateMany("post-login");
-## Anomaly Blocks
+## Actions Triggers
-client.anomaly.blocks.checkIp(id) -> void
+client.actions.triggers.list() -> Management.ListActionTriggersResponseContent
-
@@ -13173,7 +13042,7 @@ await client.actions.triggers.bindings.updateMany("post-login");
-
-Check if the given IP address is blocked via the Suspicious IP Throttling due to multiple suspicious attempts.
+Retrieve the set of triggers currently available within actions. A trigger is an extensibility point to which actions can be bound.
@@ -13189,7 +13058,7 @@ Check if the given IP address is blocked via the
@@ -13205,26 +13074,20 @@ await client.anomaly.blocks.checkIp("id");
-
-**id:** `Management.AnomalyIpFormat` — IP address to check.
+**requestOptions:** `TriggersClient.RequestOptions`
-
-
--
-
-**requestOptions:** `BlocksClient.RequestOptions`
-
-
-
-
-
+
+
-client.anomaly.blocks.unblockIp(id) -> void
+## Actions Modules Versions
+
+client.actions.modules.versions.list(id, { ...params }) -> core.Page<Management.ActionModuleVersion, Management.GetActionModuleVersionsResponseContent>
-
@@ -13236,7 +13099,7 @@ await client.anomaly.blocks.checkIp("id");
-
-Remove a block imposed by Suspicious IP Throttling for the given IP address.
+List all published versions of a specific Actions Module.
@@ -13252,7 +13115,25 @@ Remove a block imposed by
@@ -13268,7 +13149,7 @@ await client.anomaly.blocks.unblockIp("id");
-
-**id:** `Management.AnomalyIpFormat` — IP address to unblock.
+**id:** `string` — The unique ID of the module.
@@ -13276,7 +13157,15 @@ await client.anomaly.blocks.unblockIp("id");
-
-**requestOptions:** `BlocksClient.RequestOptions`
+**request:** `Management.GetActionModuleVersionsRequestParameters`
+
+
+
+
+
+-
+
+**requestOptions:** `VersionsClient.RequestOptions`
@@ -13287,9 +13176,7 @@ await client.anomaly.blocks.unblockIp("id");
-## AttackProtection BotDetection
-
-client.attackProtection.botDetection.get() -> Management.GetBotDetectionSettingsResponseContent
+client.actions.modules.versions.create(id) -> Management.CreateActionModuleVersionResponseContent
-
@@ -13301,7 +13188,7 @@ await client.anomaly.blocks.unblockIp("id");
-
-Get the Bot Detection configuration of your tenant.
+Creates a new immutable version of an Actions Module from the current draft version. This publishes the draft as a new version that can be referenced by actions, while maintaining the existing draft for continued development.
@@ -13317,7 +13204,7 @@ Get the Bot Detection configuration of your tenant.
-
```typescript
-await client.attackProtection.botDetection.get();
+await client.actions.modules.versions.create("id");
```
@@ -13333,7 +13220,15 @@ await client.attackProtection.botDetection.get();
-
-**requestOptions:** `BotDetectionClient.RequestOptions`
+**id:** `string` — The ID of the action module to create a version for.
+
+
+
+
+
+-
+
+**requestOptions:** `VersionsClient.RequestOptions`
@@ -13344,7 +13239,7 @@ await client.attackProtection.botDetection.get();
-client.attackProtection.botDetection.update({ ...params }) -> Management.UpdateBotDetectionSettingsResponseContent
+client.actions.modules.versions.get(id, versionId) -> Management.GetActionModuleVersionResponseContent
-
@@ -13356,7 +13251,7 @@ await client.attackProtection.botDetection.get();
-
-Update the Bot Detection configuration of your tenant.
+Retrieve the details of a specific, immutable version of an Actions Module.
@@ -13372,7 +13267,7 @@ Update the Bot Detection configuration of your tenant.
-
```typescript
-await client.attackProtection.botDetection.update();
+await client.actions.modules.versions.get("id", "versionId");
```
@@ -13388,7 +13283,7 @@ await client.attackProtection.botDetection.update();
-
-**request:** `Management.UpdateBotDetectionSettingsRequestContent`
+**id:** `string` — The unique ID of the module.
@@ -13396,7 +13291,15 @@ await client.attackProtection.botDetection.update();
-
-**requestOptions:** `BotDetectionClient.RequestOptions`
+**versionId:** `string` — The unique ID of the module version to retrieve.
+
+
+
+
+
+-
+
+**requestOptions:** `VersionsClient.RequestOptions`
@@ -13407,9 +13310,9 @@ await client.attackProtection.botDetection.update();
-## AttackProtection BreachedPasswordDetection
+## Actions Triggers Bindings
-client.attackProtection.breachedPasswordDetection.get() -> Management.GetBreachedPasswordDetectionSettingsResponseContent
+client.actions.triggers.bindings.list(triggerId, { ...params }) -> core.Page<Management.ActionBinding, Management.ListActionBindingsPaginatedResponseContent>
-
@@ -13421,7 +13324,7 @@ await client.attackProtection.botDetection.update();
-
-Retrieve details of the Breached Password Detection configuration of your tenant.
+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.
@@ -13437,7 +13340,25 @@ Retrieve details of the Breached Password Detection configuration of your tenant
-
```typescript
-await client.attackProtection.breachedPasswordDetection.get();
+const pageableResponse = await client.actions.triggers.bindings.list("post-login", {
+ page: 1,
+ per_page: 1,
+});
+for await (const item of pageableResponse) {
+ console.log(item);
+}
+
+// Or you can manually iterate page-by-page
+let page = await client.actions.triggers.bindings.list("post-login", {
+ page: 1,
+ per_page: 1,
+});
+while (page.hasNextPage()) {
+ page = page.getNextPage();
+}
+
+// You can also access the underlying response
+const response = page.response;
```
@@ -13453,7 +13374,23 @@ await client.attackProtection.breachedPasswordDetection.get();
-
-**requestOptions:** `BreachedPasswordDetectionClient.RequestOptions`
+**triggerId:** `Management.ActionTriggerTypeEnum` — An actions extensibility point.
+
+
+
+
+
+-
+
+**request:** `Management.ListActionTriggerBindingsRequestParameters`
+
+
+
+
+
+-
+
+**requestOptions:** `BindingsClient.RequestOptions`
@@ -13464,7 +13401,7 @@ await client.attackProtection.breachedPasswordDetection.get();
-client.attackProtection.breachedPasswordDetection.update({ ...params }) -> Management.UpdateBreachedPasswordDetectionSettingsResponseContent
+client.actions.triggers.bindings.updateMany(triggerId, { ...params }) -> Management.UpdateActionBindingsResponseContent
-
@@ -13476,7 +13413,7 @@ await client.attackProtection.breachedPasswordDetection.get();
-
-Update details of the Breached Password Detection configuration of your tenant.
+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.
@@ -13492,7 +13429,7 @@ Update details of the Breached Password Detection configuration of your tenant.
-
```typescript
-await client.attackProtection.breachedPasswordDetection.update();
+await client.actions.triggers.bindings.updateMany("post-login");
```
@@ -13508,7 +13445,7 @@ await client.attackProtection.breachedPasswordDetection.update();
-
-**request:** `Management.UpdateBreachedPasswordDetectionSettingsRequestContent`
+**triggerId:** `Management.ActionTriggerTypeEnum` — An actions extensibility point.
@@ -13516,7 +13453,15 @@ await client.attackProtection.breachedPasswordDetection.update();
-
-**requestOptions:** `BreachedPasswordDetectionClient.RequestOptions`
+**request:** `Management.UpdateActionBindingsRequestContent`
+
+
+
+
+
+-
+
+**requestOptions:** `BindingsClient.RequestOptions`
@@ -13527,9 +13472,9 @@ await client.attackProtection.breachedPasswordDetection.update();
-## AttackProtection BruteForceProtection
+## Anomaly Blocks
-client.attackProtection.bruteForceProtection.get() -> Management.GetBruteForceSettingsResponseContent
+client.anomaly.blocks.checkIp(id) -> void
-
@@ -13541,7 +13486,7 @@ await client.attackProtection.breachedPasswordDetection.update();
-
-Retrieve details of the Brute-force Protection configuration of your tenant.
+Check if the given IP address is blocked via the Suspicious IP Throttling due to multiple suspicious attempts.
@@ -13557,7 +13502,7 @@ Retrieve details of the Brute-force Protection configuration of your tenant.
-
```typescript
-await client.attackProtection.bruteForceProtection.get();
+await client.anomaly.blocks.checkIp("id");
```
@@ -13573,7 +13518,15 @@ await client.attackProtection.bruteForceProtection.get();
-
-**requestOptions:** `BruteForceProtectionClient.RequestOptions`
+**id:** `Management.AnomalyIpFormat` — IP address to check.
+
+
+
+
+
+-
+
+**requestOptions:** `BlocksClient.RequestOptions`
@@ -13584,7 +13537,7 @@ await client.attackProtection.bruteForceProtection.get();
-client.attackProtection.bruteForceProtection.update({ ...params }) -> Management.UpdateBruteForceSettingsResponseContent
+client.anomaly.blocks.unblockIp(id) -> void
-
@@ -13596,7 +13549,7 @@ await client.attackProtection.bruteForceProtection.get();
-
-Update the Brute-force Protection configuration of your tenant.
+Remove a block imposed by Suspicious IP Throttling for the given IP address.
@@ -13612,7 +13565,7 @@ Update the Brute-force Protection configuration of your tenant.
-
```typescript
-await client.attackProtection.bruteForceProtection.update();
+await client.anomaly.blocks.unblockIp("id");
```
@@ -13628,7 +13581,7 @@ await client.attackProtection.bruteForceProtection.update();
-
-**request:** `Management.UpdateBruteForceSettingsRequestContent`
+**id:** `Management.AnomalyIpFormat` — IP address to unblock.
@@ -13636,7 +13589,7 @@ await client.attackProtection.bruteForceProtection.update();
-
-**requestOptions:** `BruteForceProtectionClient.RequestOptions`
+**requestOptions:** `BlocksClient.RequestOptions`
@@ -13647,9 +13600,9 @@ await client.attackProtection.bruteForceProtection.update();
-## AttackProtection Captcha
+## AttackProtection BotDetection
-client.attackProtection.captcha.get() -> Management.GetAttackProtectionCaptchaResponseContent
+client.attackProtection.botDetection.get() -> Management.GetBotDetectionSettingsResponseContent
-
@@ -13661,7 +13614,7 @@ await client.attackProtection.bruteForceProtection.update();
-
-Get the CAPTCHA configuration for your client.
+Get the Bot Detection configuration of your tenant.
@@ -13677,7 +13630,7 @@ Get the CAPTCHA configuration for your client.
-
```typescript
-await client.attackProtection.captcha.get();
+await client.attackProtection.botDetection.get();
```
@@ -13693,7 +13646,7 @@ await client.attackProtection.captcha.get();
-
-**requestOptions:** `CaptchaClient.RequestOptions`
+**requestOptions:** `BotDetectionClient.RequestOptions`
@@ -13704,7 +13657,7 @@ await client.attackProtection.captcha.get();
-client.attackProtection.captcha.update({ ...params }) -> Management.UpdateAttackProtectionCaptchaResponseContent
+client.attackProtection.botDetection.update({ ...params }) -> Management.UpdateBotDetectionSettingsResponseContent
-
@@ -13716,7 +13669,7 @@ await client.attackProtection.captcha.get();
-
-Update existing CAPTCHA configuration for your client.
+Update the Bot Detection configuration of your tenant.
@@ -13732,7 +13685,7 @@ Update existing CAPTCHA configuration for your client.
-
```typescript
-await client.attackProtection.captcha.update();
+await client.attackProtection.botDetection.update();
```
@@ -13748,7 +13701,7 @@ await client.attackProtection.captcha.update();
-
-**request:** `Management.UpdateAttackProtectionCaptchaRequestContent`
+**request:** `Management.UpdateBotDetectionSettingsRequestContent`
@@ -13756,7 +13709,7 @@ await client.attackProtection.captcha.update();
-
-**requestOptions:** `CaptchaClient.RequestOptions`
+**requestOptions:** `BotDetectionClient.RequestOptions`
@@ -13767,9 +13720,9 @@ await client.attackProtection.captcha.update();
-## AttackProtection SuspiciousIpThrottling
+## AttackProtection BreachedPasswordDetection
-client.attackProtection.suspiciousIpThrottling.get() -> Management.GetSuspiciousIpThrottlingSettingsResponseContent
+client.attackProtection.breachedPasswordDetection.get() -> Management.GetBreachedPasswordDetectionSettingsResponseContent
-
@@ -13781,7 +13734,7 @@ await client.attackProtection.captcha.update();
-
-Retrieve details of the Suspicious IP Throttling configuration of your tenant.
+Retrieve details of the Breached Password Detection configuration of your tenant.
@@ -13797,7 +13750,7 @@ Retrieve details of the Suspicious IP Throttling configuration of your tenant.
-
```typescript
-await client.attackProtection.suspiciousIpThrottling.get();
+await client.attackProtection.breachedPasswordDetection.get();
```
@@ -13813,7 +13766,7 @@ await client.attackProtection.suspiciousIpThrottling.get();
-
-**requestOptions:** `SuspiciousIpThrottlingClient.RequestOptions`
+**requestOptions:** `BreachedPasswordDetectionClient.RequestOptions`
@@ -13824,7 +13777,7 @@ await client.attackProtection.suspiciousIpThrottling.get();
-client.attackProtection.suspiciousIpThrottling.update({ ...params }) -> Management.UpdateSuspiciousIpThrottlingSettingsResponseContent
+client.attackProtection.breachedPasswordDetection.update({ ...params }) -> Management.UpdateBreachedPasswordDetectionSettingsResponseContent
-
@@ -13836,7 +13789,7 @@ await client.attackProtection.suspiciousIpThrottling.get();
-
-Update the details of the Suspicious IP Throttling configuration of your tenant.
+Update details of the Breached Password Detection configuration of your tenant.
@@ -13852,7 +13805,7 @@ Update the details of the Suspicious IP Throttling configuration of your tenant.
-
```typescript
-await client.attackProtection.suspiciousIpThrottling.update();
+await client.attackProtection.breachedPasswordDetection.update();
```
@@ -13868,7 +13821,7 @@ await client.attackProtection.suspiciousIpThrottling.update();
-
-**request:** `Management.UpdateSuspiciousIpThrottlingSettingsRequestContent`
+**request:** `Management.UpdateBreachedPasswordDetectionSettingsRequestContent`
@@ -13876,7 +13829,7 @@ await client.attackProtection.suspiciousIpThrottling.update();
-
-**requestOptions:** `SuspiciousIpThrottlingClient.RequestOptions`
+**requestOptions:** `BreachedPasswordDetectionClient.RequestOptions`
@@ -13887,12 +13840,27 @@ await client.attackProtection.suspiciousIpThrottling.update();
-## Branding Templates
+## AttackProtection BruteForceProtection
+
+client.attackProtection.bruteForceProtection.get() -> Management.GetBruteForceSettingsResponseContent
+
+-
+
+#### 📝 Description
+
+
+-
-
client.branding.templates.getUniversalLogin() -> Management.GetUniversalLoginTemplateResponseContent
-
+Retrieve details of the Brute-force Protection configuration of your tenant.
+
+
+
+
+
+
#### 🔌 Usage
@@ -13902,7 +13870,7 @@ await client.attackProtection.suspiciousIpThrottling.update();
-
```typescript
-await client.branding.templates.getUniversalLogin();
+await client.attackProtection.bruteForceProtection.get();
```
@@ -13918,7 +13886,7 @@ await client.branding.templates.getUniversalLogin();
-
-**requestOptions:** `TemplatesClient.RequestOptions`
+**requestOptions:** `BruteForceProtectionClient.RequestOptions`
@@ -13929,7 +13897,7 @@ await client.branding.templates.getUniversalLogin();
-client.branding.templates.updateUniversalLogin({ ...params }) -> void
+client.attackProtection.bruteForceProtection.update({ ...params }) -> Management.UpdateBruteForceSettingsResponseContent
-
@@ -13941,30 +13909,8 @@ await client.branding.templates.getUniversalLogin();
-
-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>"
-}
-
+Update the Brute-force Protection configuration of your tenant.
-
- 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>
-
@@ -13979,7 +13925,7 @@ Update the Universal Login branding template.
-
```typescript
-await client.branding.templates.updateUniversalLogin("string");
+await client.attackProtection.bruteForceProtection.update();
```
@@ -13995,7 +13941,7 @@ await client.branding.templates.updateUniversalLogin("string");
-
-**request:** `Management.UpdateUniversalLoginTemplateRequestContent`
+**request:** `Management.UpdateBruteForceSettingsRequestContent`
@@ -14003,7 +13949,7 @@ await client.branding.templates.updateUniversalLogin("string");
-
-**requestOptions:** `TemplatesClient.RequestOptions`
+**requestOptions:** `BruteForceProtectionClient.RequestOptions`
@@ -14014,11 +13960,13 @@ await client.branding.templates.updateUniversalLogin("string");
-client.branding.templates.deleteUniversalLogin() -> void
+## AttackProtection Captcha
+
+client.attackProtection.captcha.get() -> Management.GetAttackProtectionCaptchaResponseContent
-
-#### 🔌 Usage
+#### 📝 Description
-
@@ -14026,8 +13974,23 @@ await client.branding.templates.updateUniversalLogin("string");
-
-```typescript
-await client.branding.templates.deleteUniversalLogin();
+Get the CAPTCHA configuration for your client.
+
+
+
+
+
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+await client.attackProtection.captcha.get();
```
@@ -14043,7 +14006,7 @@ await client.branding.templates.deleteUniversalLogin();
-
-**requestOptions:** `TemplatesClient.RequestOptions`
+**requestOptions:** `CaptchaClient.RequestOptions`
@@ -14054,9 +14017,7 @@ await client.branding.templates.deleteUniversalLogin();
-## Branding Themes
-
-client.branding.themes.create({ ...params }) -> Management.CreateBrandingThemeResponseContent
+client.attackProtection.captcha.update({ ...params }) -> Management.UpdateAttackProtectionCaptchaResponseContent
-
@@ -14068,7 +14029,7 @@ await client.branding.templates.deleteUniversalLogin();
-
-Create branding theme.
+Update existing CAPTCHA configuration for your client.
@@ -14084,78 +14045,7 @@ Create branding theme.
-
```typescript
-await client.branding.themes.create({
- borders: {
- button_border_radius: 1.1,
- button_border_weight: 1.1,
- buttons_style: "pill",
- input_border_radius: 1.1,
- input_border_weight: 1.1,
- inputs_style: "pill",
- show_widget_shadow: true,
- widget_border_weight: 1.1,
- widget_corner_radius: 1.1,
- },
- colors: {
- body_text: "body_text",
- error: "error",
- header: "header",
- icons: "icons",
- input_background: "input_background",
- input_border: "input_border",
- input_filled_text: "input_filled_text",
- input_labels_placeholders: "input_labels_placeholders",
- links_focused_components: "links_focused_components",
- primary_button: "primary_button",
- primary_button_label: "primary_button_label",
- secondary_button_border: "secondary_button_border",
- secondary_button_label: "secondary_button_label",
- success: "success",
- widget_background: "widget_background",
- widget_border: "widget_border",
- },
- fonts: {
- body_text: {
- bold: true,
- size: 1.1,
- },
- buttons_text: {
- bold: true,
- size: 1.1,
- },
- font_url: "font_url",
- input_labels: {
- bold: true,
- size: 1.1,
- },
- links: {
- bold: true,
- size: 1.1,
- },
- links_style: "normal",
- reference_text_size: 1.1,
- subtitle: {
- bold: true,
- size: 1.1,
- },
- title: {
- bold: true,
- size: 1.1,
- },
- },
- page_background: {
- background_color: "background_color",
- background_image_url: "background_image_url",
- page_layout: "center",
- },
- widget: {
- header_text_alignment: "center",
- logo_height: 1.1,
- logo_position: "center",
- logo_url: "logo_url",
- social_buttons_layout: "bottom",
- },
-});
+await client.attackProtection.captcha.update();
```
@@ -14171,7 +14061,7 @@ await client.branding.themes.create({
-
-**request:** `Management.CreateBrandingThemeRequestContent`
+**request:** `Management.UpdateAttackProtectionCaptchaRequestContent`
@@ -14179,7 +14069,7 @@ await client.branding.themes.create({
-
-**requestOptions:** `ThemesClient.RequestOptions`
+**requestOptions:** `CaptchaClient.RequestOptions`
@@ -14190,7 +14080,9 @@ await client.branding.themes.create({
-client.branding.themes.getDefault() -> Management.GetBrandingDefaultThemeResponseContent
+## AttackProtection SuspiciousIpThrottling
+
+client.attackProtection.suspiciousIpThrottling.get() -> Management.GetSuspiciousIpThrottlingSettingsResponseContent
-
@@ -14202,7 +14094,7 @@ await client.branding.themes.create({
-
-Retrieve default branding theme.
+Retrieve details of the Suspicious IP Throttling configuration of your tenant.
@@ -14218,7 +14110,7 @@ Retrieve default branding theme.
-
```typescript
-await client.branding.themes.getDefault();
+await client.attackProtection.suspiciousIpThrottling.get();
```
@@ -14234,7 +14126,7 @@ await client.branding.themes.getDefault();
-
-**requestOptions:** `ThemesClient.RequestOptions`
+**requestOptions:** `SuspiciousIpThrottlingClient.RequestOptions`
@@ -14245,7 +14137,7 @@ await client.branding.themes.getDefault();
-client.branding.themes.get(themeId) -> Management.GetBrandingThemeResponseContent
+client.attackProtection.suspiciousIpThrottling.update({ ...params }) -> Management.UpdateSuspiciousIpThrottlingSettingsResponseContent
-
@@ -14257,7 +14149,7 @@ await client.branding.themes.getDefault();
-
-Retrieve branding theme.
+Update the details of the Suspicious IP Throttling configuration of your tenant.
@@ -14273,7 +14165,7 @@ Retrieve branding theme.
-
```typescript
-await client.branding.themes.get("themeId");
+await client.attackProtection.suspiciousIpThrottling.update();
```
@@ -14289,7 +14181,7 @@ await client.branding.themes.get("themeId");
-
-**themeId:** `string` — The ID of the theme
+**request:** `Management.UpdateSuspiciousIpThrottlingSettingsRequestContent`
@@ -14297,7 +14189,7 @@ await client.branding.themes.get("themeId");
-
-**requestOptions:** `ThemesClient.RequestOptions`
+**requestOptions:** `SuspiciousIpThrottlingClient.RequestOptions`
@@ -14308,7 +14200,49 @@ await client.branding.themes.get("themeId");
-client.branding.themes.delete(themeId) -> void
+## Branding Templates
+
+client.branding.templates.getUniversalLogin() -> Management.GetUniversalLoginTemplateResponseContent
+
+-
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+await client.branding.templates.getUniversalLogin();
+```
+
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**requestOptions:** `TemplatesClient.RequestOptions`
+
+
+
+
+
+
+
+
+
+
+client.branding.templates.updateUniversalLogin({ ...params }) -> void
-
@@ -14320,7 +14254,30 @@ await client.branding.themes.get("themeId");
-
-Delete branding theme.
+Update the Universal Login branding template.
+
+When `content-type` header is set to `application/json`:
+
+```json
+{
+ "template": "{% assign resolved_dir = dir | default: \"auto\" %}{%- auth0:head -%}{%- auth0:widget -%}"
+}
+```
+
+When `content-type` header is set to `text/html`:
+
+```html
+
+{% assign resolved_dir = dir | default: "auto" %}
+
+
+ {%- auth0:head -%}
+
+
+ {%- auth0:widget -%}
+
+
+```
@@ -14336,7 +14293,7 @@ Delete branding theme.
-
```typescript
-await client.branding.themes.delete("themeId");
+await client.branding.templates.updateUniversalLogin("string");
```
@@ -14352,7 +14309,7 @@ await client.branding.themes.delete("themeId");
-
-**themeId:** `string` — The ID of the theme
+**request:** `Management.UpdateUniversalLoginTemplateRequestContent`
@@ -14360,7 +14317,7 @@ await client.branding.themes.delete("themeId");
-
-**requestOptions:** `ThemesClient.RequestOptions`
+**requestOptions:** `TemplatesClient.RequestOptions`
@@ -14371,7 +14328,49 @@ await client.branding.themes.delete("themeId");
-client.branding.themes.update(themeId, { ...params }) -> Management.UpdateBrandingThemeResponseContent
+client.branding.templates.deleteUniversalLogin() -> void
+
+-
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+await client.branding.templates.deleteUniversalLogin();
+```
+
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**requestOptions:** `TemplatesClient.RequestOptions`
+
+
+
+
+
+
+
+
+
+
+## Branding Themes
+
+client.branding.themes.create({ ...params }) -> Management.CreateBrandingThemeResponseContent
-
@@ -14383,7 +14382,7 @@ await client.branding.themes.delete("themeId");
-
-Update branding theme.
+Create branding theme.
@@ -14399,7 +14398,7 @@ Update branding theme.
-
```typescript
-await client.branding.themes.update("themeId", {
+await client.branding.themes.create({
borders: {
button_border_radius: 1.1,
button_border_weight: 1.1,
@@ -14486,15 +14485,7 @@ await client.branding.themes.update("themeId", {
-
-**themeId:** `string` — The ID of the theme
-
-
-
-
-
--
-
-**request:** `Management.UpdateBrandingThemeRequestContent`
+**request:** `Management.CreateBrandingThemeRequestContent`
@@ -14513,9 +14504,7 @@ await client.branding.themes.update("themeId", {
-## Branding Phone Providers
-
-client.branding.phone.providers.list({ ...params }) -> Management.ListBrandingPhoneProvidersResponseContent
+client.branding.themes.getDefault() -> Management.GetBrandingDefaultThemeResponseContent
-
@@ -14527,7 +14516,7 @@ await client.branding.themes.update("themeId", {
-
-Retrieve a list of phone providers details set for a Tenant. A list of fields to include or exclude may also be specified.
+Retrieve default branding theme.
@@ -14543,9 +14532,7 @@ Retrieve a list of create({ ...params }) -> Management.CreateBrandingPhoneProviderResponseContent
+client.branding.themes.get(themeId) -> Management.GetBrandingThemeResponseContent
-
@@ -14592,8 +14571,7 @@ await client.branding.phone.providers.list({
-
-Create a phone provider.
-The
credentials object requires different properties depending on the phone provider (which is specified using the name property).
+Retrieve branding theme.
@@ -14609,12 +14587,7 @@ The credentials object requires different properties depending on t
-
```typescript
-await client.branding.phone.providers.create({
- name: "twilio",
- credentials: {
- auth_token: "auth_token",
- },
-});
+await client.branding.themes.get("themeId");
```
@@ -14630,7 +14603,7 @@ await client.branding.phone.providers.create({
-
-**request:** `Management.CreateBrandingPhoneProviderRequestContent`
+**themeId:** `string` — The ID of the theme
@@ -14638,7 +14611,7 @@ await client.branding.phone.providers.create({
-
-**requestOptions:** `ProvidersClient.RequestOptions`
+**requestOptions:** `ThemesClient.RequestOptions`
@@ -14649,7 +14622,7 @@ await client.branding.phone.providers.create({
-client.branding.phone.providers.get(id) -> Management.GetBrandingPhoneProviderResponseContent
+client.branding.themes.delete(themeId) -> void
-
@@ -14661,7 +14634,7 @@ await client.branding.phone.providers.create({
-
-Retrieve phone provider details. A list of fields to include or exclude may also be specified.
+Delete branding theme.
@@ -14677,7 +14650,7 @@ Retrieve
@@ -14693,7 +14666,7 @@ await client.branding.phone.providers.get("id");
-
-**id:** `string`
+**themeId:** `string` — The ID of the theme
@@ -14701,7 +14674,7 @@ await client.branding.phone.providers.get("id");
-
-**requestOptions:** `ProvidersClient.RequestOptions`
+**requestOptions:** `ThemesClient.RequestOptions`
@@ -14712,7 +14685,7 @@ await client.branding.phone.providers.get("id");
-client.branding.phone.providers.delete(id) -> void
+client.branding.themes.update(themeId, { ...params }) -> Management.UpdateBrandingThemeResponseContent
-
@@ -14724,7 +14697,7 @@ await client.branding.phone.providers.get("id");
-
-Delete the configured phone provider.
+Update branding theme.
@@ -14740,7 +14713,78 @@ Delete the configured phone provider.
-
```typescript
-await client.branding.phone.providers.delete("id");
+await client.branding.themes.update("themeId", {
+ borders: {
+ button_border_radius: 1.1,
+ button_border_weight: 1.1,
+ buttons_style: "pill",
+ input_border_radius: 1.1,
+ input_border_weight: 1.1,
+ inputs_style: "pill",
+ show_widget_shadow: true,
+ widget_border_weight: 1.1,
+ widget_corner_radius: 1.1,
+ },
+ colors: {
+ body_text: "body_text",
+ error: "error",
+ header: "header",
+ icons: "icons",
+ input_background: "input_background",
+ input_border: "input_border",
+ input_filled_text: "input_filled_text",
+ input_labels_placeholders: "input_labels_placeholders",
+ links_focused_components: "links_focused_components",
+ primary_button: "primary_button",
+ primary_button_label: "primary_button_label",
+ secondary_button_border: "secondary_button_border",
+ secondary_button_label: "secondary_button_label",
+ success: "success",
+ widget_background: "widget_background",
+ widget_border: "widget_border",
+ },
+ fonts: {
+ body_text: {
+ bold: true,
+ size: 1.1,
+ },
+ buttons_text: {
+ bold: true,
+ size: 1.1,
+ },
+ font_url: "font_url",
+ input_labels: {
+ bold: true,
+ size: 1.1,
+ },
+ links: {
+ bold: true,
+ size: 1.1,
+ },
+ links_style: "normal",
+ reference_text_size: 1.1,
+ subtitle: {
+ bold: true,
+ size: 1.1,
+ },
+ title: {
+ bold: true,
+ size: 1.1,
+ },
+ },
+ page_background: {
+ background_color: "background_color",
+ background_image_url: "background_image_url",
+ page_layout: "center",
+ },
+ widget: {
+ header_text_alignment: "center",
+ logo_height: 1.1,
+ logo_position: "center",
+ logo_url: "logo_url",
+ social_buttons_layout: "bottom",
+ },
+});
```
@@ -14756,7 +14800,7 @@ await client.branding.phone.providers.delete("id");
-
-**id:** `string`
+**themeId:** `string` — The ID of the theme
@@ -14764,7 +14808,15 @@ await client.branding.phone.providers.delete("id");
-
-**requestOptions:** `ProvidersClient.RequestOptions`
+**request:** `Management.UpdateBrandingThemeRequestContent`
+
+
+
+
+
+-
+
+**requestOptions:** `ThemesClient.RequestOptions`
@@ -14775,7 +14827,9 @@ await client.branding.phone.providers.delete("id");
-client.branding.phone.providers.update(id, { ...params }) -> Management.UpdateBrandingPhoneProviderResponseContent
+## Branding Phone Providers
+
+client.branding.phone.providers.list({ ...params }) -> Management.ListBrandingPhoneProvidersResponseContent
-
@@ -14787,8 +14841,7 @@ await client.branding.phone.providers.delete("id");
-
-Update a phone provider.
-The
credentials object requires different properties depending on the phone provider (which is specified using the name property).
+Retrieve a list of phone providers details set for a Tenant. A list of fields to include or exclude may also be specified.
@@ -14804,7 +14857,9 @@ The credentials object requires different properties depending on t
-
```typescript
-await client.branding.phone.providers.update("id");
+await client.branding.phone.providers.list({
+ disabled: true,
+});
```
@@ -14820,15 +14875,7 @@ await client.branding.phone.providers.update("id");
-
-**id:** `string`
-
-
-
-
-
--
-
-**request:** `Management.UpdateBrandingPhoneProviderRequestContent`
+**request:** `Management.ListBrandingPhoneProvidersRequestParameters`
@@ -14847,11 +14894,11 @@ await client.branding.phone.providers.update("id");
-client.branding.phone.providers.test(id, { ...params }) -> Management.CreatePhoneProviderSendTestResponseContent
+client.branding.phone.providers.create({ ...params }) -> Management.CreateBrandingPhoneProviderResponseContent
-
-#### 🔌 Usage
+#### 📝 Description
-
@@ -14859,18 +14906,15 @@ await client.branding.phone.providers.update("id");
-
-```typescript
-await client.branding.phone.providers.test("id", {
- to: "to",
-});
-```
+Create a phone provider.
+The
credentials object requires different properties depending on the phone provider (which is specified using the name property).
-#### ⚙️ Parameters
+#### 🔌 Usage
-
@@ -14878,15 +14922,29 @@ await client.branding.phone.providers.test("id", {
-
-**id:** `string`
+```typescript
+await client.branding.phone.providers.create({
+ name: "twilio",
+ credentials: {
+ auth_token: "auth_token",
+ },
+});
+```
+
+
+
+#### ⚙️ Parameters
-
-**request:** `Management.CreatePhoneProviderSendTestRequestContent`
+
+-
+
+**request:** `Management.CreateBrandingPhoneProviderRequestContent`
@@ -14905,12 +14963,25 @@ await client.branding.phone.providers.test("id", {
-## Branding Phone Templates
+client.branding.phone.providers.get(id) -> Management.GetBrandingPhoneProviderResponseContent
+
+-
+
+#### 📝 Description
+
+
+-
-
client.branding.phone.templates.list({ ...params }) -> Management.ListPhoneTemplatesResponseContent
-
+Retrieve phone provider details. A list of fields to include or exclude may also be specified.
+
+
+
+
+
+
#### 🔌 Usage
@@ -14920,9 +14991,7 @@ await client.branding.phone.providers.test("id", {
-
```typescript
-await client.branding.phone.templates.list({
- disabled: true,
-});
+await client.branding.phone.providers.get("id");
```
@@ -14938,7 +15007,7 @@ await client.branding.phone.templates.list({
-
-**request:** `Management.ListPhoneTemplatesRequestParameters`
+**id:** `string`
@@ -14946,7 +15015,7 @@ await client.branding.phone.templates.list({
-
-**requestOptions:** `TemplatesClient.RequestOptions`
+**requestOptions:** `ProvidersClient.RequestOptions`
@@ -14957,10 +15026,25 @@ await client.branding.phone.templates.list({
-client.branding.phone.templates.create({ ...params }) -> Management.CreatePhoneTemplateResponseContent
+client.branding.phone.providers.delete(id) -> void
+
+-
+
+#### 📝 Description
+
+
+-
+
-
+Delete the configured phone provider.
+
+
+
+
+
+
#### 🔌 Usage
@@ -14970,7 +15054,7 @@ await client.branding.phone.templates.list({
-
```typescript
-await client.branding.phone.templates.create();
+await client.branding.phone.providers.delete("id");
```
@@ -14986,7 +15070,7 @@ await client.branding.phone.templates.create();
-
-**request:** `Management.CreatePhoneTemplateRequestContent`
+**id:** `string`
@@ -14994,7 +15078,7 @@ await client.branding.phone.templates.create();
-
-**requestOptions:** `TemplatesClient.RequestOptions`
+**requestOptions:** `ProvidersClient.RequestOptions`
@@ -15005,10 +15089,26 @@ await client.branding.phone.templates.create();
-client.branding.phone.templates.get(id) -> Management.GetPhoneTemplateResponseContent
+client.branding.phone.providers.update(id, { ...params }) -> Management.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
@@ -15018,7 +15118,7 @@ await client.branding.phone.templates.create();
-
```typescript
-await client.branding.phone.templates.get("id");
+await client.branding.phone.providers.update("id");
```
@@ -15042,7 +15142,15 @@ await client.branding.phone.templates.get("id");
-
-**requestOptions:** `TemplatesClient.RequestOptions`
+**request:** `Management.UpdateBrandingPhoneProviderRequestContent`
+
+
+
+
+
+-
+
+**requestOptions:** `ProvidersClient.RequestOptions`
@@ -15053,7 +15161,7 @@ await client.branding.phone.templates.get("id");
-client.branding.phone.templates.delete(id) -> void
+client.branding.phone.providers.test(id, { ...params }) -> Management.CreatePhoneProviderSendTestResponseContent
-
@@ -15066,8 +15174,214 @@ await client.branding.phone.templates.get("id");
-
```typescript
-await client.branding.phone.templates.delete("id");
-```
+await client.branding.phone.providers.test("id", {
+ to: "to",
+});
+```
+
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**id:** `string`
+
+
+
+
+
+-
+
+**request:** `Management.CreatePhoneProviderSendTestRequestContent`
+
+
+
+
+
+-
+
+**requestOptions:** `ProvidersClient.RequestOptions`
+
+
+
+
+
+
+
+
+
+
+## Branding Phone Templates
+
+client.branding.phone.templates.list({ ...params }) -> Management.ListPhoneTemplatesResponseContent
+
+-
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+await client.branding.phone.templates.list({
+ disabled: true,
+});
+```
+
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**request:** `Management.ListPhoneTemplatesRequestParameters`
+
+
+
+
+
+-
+
+**requestOptions:** `TemplatesClient.RequestOptions`
+
+
+
+
+
+
+
+
+
+
+client.branding.phone.templates.create({ ...params }) -> Management.CreatePhoneTemplateResponseContent
+
+-
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+await client.branding.phone.templates.create();
+```
+
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**request:** `Management.CreatePhoneTemplateRequestContent`
+
+
+
+
+
+-
+
+**requestOptions:** `TemplatesClient.RequestOptions`
+
+
+
+
+
+
+
+
+
+
+client.branding.phone.templates.get(id) -> Management.GetPhoneTemplateResponseContent
+
+-
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+await client.branding.phone.templates.get("id");
+```
+
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**id:** `string`
+
+
+
+
+
+-
+
+**requestOptions:** `TemplatesClient.RequestOptions`
+
+
+
+
+
+
+
+
+
+
+client.branding.phone.templates.delete(id) -> void
+
+-
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+await client.branding.phone.templates.delete("id");
+```
@@ -16525,7 +16839,7 @@ const response = page.response;
-
-Retrieves a scim configuration by its
connectionId.
+Retrieves a scim configuration by its `connectionId`.
@@ -16659,7 +16973,7 @@ await client.connections.scimConfiguration.create("id");
-
-Deletes a scim configuration by its
connectionId.
+Deletes a scim configuration by its `connectionId`.
@@ -16722,7 +17036,7 @@ await client.connections.scimConfiguration.delete("id");
-
-Update a scim configuration by its
connectionId.
+Update a scim configuration by its `connectionId`.
@@ -16796,7 +17110,7 @@ await client.connections.scimConfiguration.update("id", {
-
-Retrieves a scim configuration's default mapping by its
connectionId.
+Retrieves a scim configuration's default mapping by its `connectionId`.
@@ -16861,9 +17175,9 @@ await client.connections.scimConfiguration.getDefaultMapping("id");
-
-Retrieve all clients that have the specified connection enabled.
+Retrieve all clients that have the specified [connection](https://auth0.com/docs/authenticate/identity-providers) 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.
+**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.
@@ -17362,7 +17676,7 @@ await client.connections.directoryProvisioning.synchronizations.create("id");
-
-Retrieves all scim tokens by its connection
id.
+Retrieves all scim tokens by its connection `id`.
@@ -17496,7 +17810,7 @@ await client.connections.scimConfiguration.tokens.create("id");
-
-Deletes a scim token by its connection
id and tokenId.
+Deletes a scim token by its connection `id` and `tokenId`.
@@ -18695,9 +19009,9 @@ const response = page.response;
-## Guardian Enrollments
+## Groups Roles
-client.guardian.enrollments.createTicket({ ...params }) -> Management.CreateGuardianEnrollmentTicketResponseContent
+client.groups.roles.list(id, { ...params }) -> core.Page<Management.Role, Management.ListGroupRolesResponseContent>
-
@@ -18709,10 +19023,7 @@ const response = page.response;
-
-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.
+Lists the roles assigned to a group.
@@ -18728,9 +19039,25 @@ Note: Users cannot enroll in Email as a factor through custom enrollment tickets
-
```typescript
-await client.guardian.enrollments.createTicket({
- user_id: "user_id",
+const pageableResponse = await client.groups.roles.list("id", {
+ from: "from",
+ take: 1,
+});
+for await (const item of pageableResponse) {
+ console.log(item);
+}
+
+// Or you can manually iterate page-by-page
+let page = await client.groups.roles.list("id", {
+ from: "from",
+ take: 1,
});
+while (page.hasNextPage()) {
+ page = page.getNextPage();
+}
+
+// You can also access the underlying response
+const response = page.response;
```
@@ -18746,7 +19073,7 @@ await client.guardian.enrollments.createTicket({
-
-**request:** `Management.CreateGuardianEnrollmentTicketRequestContent`
+**id:** `string` — Unique identifier for the group (service-generated).
@@ -18754,7 +19081,15 @@ await client.guardian.enrollments.createTicket({
-
-**requestOptions:** `EnrollmentsClient.RequestOptions`
+**request:** `Management.ListGroupRolesRequestParameters`
+
+
+
+
+
+-
+
+**requestOptions:** `RolesClient.RequestOptions`
@@ -18765,7 +19100,7 @@ await client.guardian.enrollments.createTicket({
-client.guardian.enrollments.get(id) -> Management.GetGuardianEnrollmentResponseContent
+client.groups.roles.create(id, { ...params }) -> void
-
@@ -18777,7 +19112,7 @@ await client.guardian.enrollments.createTicket({
-
-Retrieve details, such as status and type, for a specific multi-factor authentication enrollment registered to a user account.
+Assign one or more roles to a specified group.
@@ -18793,7 +19128,9 @@ Retrieve details, such as status and type, for a specific multi-factor authentic
-
```typescript
-await client.guardian.enrollments.get("id");
+await client.groups.roles.create("id", {
+ roles: ["roles"],
+});
```
@@ -18809,7 +19146,7 @@ await client.guardian.enrollments.get("id");
-
-**id:** `string` — ID of the enrollment to be retrieve.
+**id:** `string` — Unique identifier for the group (service-generated).
@@ -18817,7 +19154,218 @@ await client.guardian.enrollments.get("id");
-
-**requestOptions:** `EnrollmentsClient.RequestOptions`
+**request:** `Management.CreateGroupRolesRequestParameters`
+
+
+
+
+
+-
+
+**requestOptions:** `RolesClient.RequestOptions`
+
+
+
+
+
+
+
+
+
+
+client.groups.roles.delete(id, { ...params }) -> void
+
+-
+
+#### 📝 Description
+
+
+-
+
+
+-
+
+Unassign one or more roles from a specified group.
+
+
+
+
+
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+await client.groups.roles.delete("id", {
+ roles: ["roles"],
+});
+```
+
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**id:** `string` — Unique identifier for the group (service-generated).
+
+
+
+
+
+-
+
+**request:** `Management.DeleteGroupRolesRequestContent`
+
+
+
+
+
+-
+
+**requestOptions:** `RolesClient.RequestOptions`
+
+
+
+
+
+
+
+
+
+
+## Guardian Enrollments
+
+client.guardian.enrollments.createTicket({ ...params }) -> Management.CreateGuardianEnrollmentTicketResponseContent
+
+-
+
+#### 📝 Description
+
+
+-
+
+
+-
+
+Create a [multi-factor authentication (MFA) enrollment ticket](https://auth0.com/docs/secure/multi-factor-authentication/auth0-guardian/create-custom-enrollment-tickets), 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.
+
+
+
+
+
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+await client.guardian.enrollments.createTicket({
+ user_id: "user_id",
+});
+```
+
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**request:** `Management.CreateGuardianEnrollmentTicketRequestContent`
+
+
+
+
+
+-
+
+**requestOptions:** `EnrollmentsClient.RequestOptions`
+
+
+
+
+
+
+
+
+
+
+client.guardian.enrollments.get(id) -> Management.GetGuardianEnrollmentResponseContent
+
+-
+
+#### 📝 Description
+
+
+-
+
+
+-
+
+Retrieve details, such as status and type, for a specific multi-factor authentication enrollment registered to a user account.
+
+
+
+
+
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+await client.guardian.enrollments.get("id");
+```
+
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**id:** `string` — ID of the enrollment to be retrieve.
+
+
+
+
+
+-
+
+**requestOptions:** `EnrollmentsClient.RequestOptions`
@@ -18840,7 +19388,7 @@ await client.guardian.enrollments.get("id");
-
-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.
+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](https://auth0.com/docs/secure/multi-factor-authentication/reset-user-mfa).
@@ -19035,16 +19583,14 @@ await client.guardian.factors.set("push-notification", {
-
-Retrieve the multi-factor authentication (MFA) policies configured for your tenant.
+Retrieve the [multi-factor authentication (MFA) policies](https://auth0.com/docs/secure/multi-factor-authentication/enable-mfa) 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.
-
+- `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.
+**Note**: The `confidence-score` policy is part of the [Adaptive MFA feature](https://auth0.com/docs/secure/multi-factor-authentication/adaptive-mfa). Adaptive MFA requires an add-on for the Enterprise plan; review [Auth0 Pricing](https://auth0.com/pricing) for more details.
@@ -19099,16 +19645,14 @@ await client.guardian.policies.list();
-
-Set multi-factor authentication (MFA) policies for your tenant.
+Set [multi-factor authentication (MFA) policies](https://auth0.com/docs/secure/multi-factor-authentication/enable-mfa) 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.
-
+- `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.
+**Note**: The `confidence-score` policy is part of the [Adaptive MFA feature](https://auth0.com/docs/secure/multi-factor-authentication/adaptive-mfa). Adaptive MFA requires an add-on for the Enterprise plan; review [Auth0 Pricing](https://auth0.com/pricing) for more details.
@@ -20072,7 +20616,7 @@ await client.guardian.factors.pushNotification.updateFcmv1Provider();
-
-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.
+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](https://auth0.com/docs/secure/multi-factor-authentication/multi-factor-authentication-factors/configure-push-notifications-for-mfa).
@@ -20127,7 +20671,7 @@ await client.guardian.factors.pushNotification.getSnsProvider();
-
-Configure the AWS SNS push notification provider configuration (subscription required).
+Configure the [AWS SNS push notification provider configuration](https://auth0.com/docs/multifactor-authentication/developer/sns-configuration) (subscription required).
@@ -20190,7 +20734,7 @@ await client.guardian.factors.pushNotification.setSnsProvider();
-
-Configure the AWS SNS push notification provider configuration (subscription required).
+Configure the [AWS SNS push notification provider configuration](https://auth0.com/docs/multifactor-authentication/developer/sns-configuration) (subscription required).
@@ -21331,7 +21875,7 @@ await client.jobs.usersImports.create({
-
-Send an email to the specified user that asks them to click a link to verify their email address.
+Send an email to the specified user that asks them to click a link to [verify their email address](https://auth0.com/docs/email/custom#verification-email).
Note: You must have the `Status` toggle enabled for the verification email template for the email to be sent.
@@ -22377,8 +22921,316 @@ while (page.hasNextPage()) {
page = page.getNextPage();
}
-// You can also access the underlying response
-const response = page.response;
+// You can also access the underlying response
+const response = page.response;
+```
+
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**id:** `string` — Organization identifier.
+
+
+
+
+
+-
+
+**request:** `Management.ListOrganizationClientGrantsRequestParameters`
+
+
+
+
+
+-
+
+**requestOptions:** `ClientGrantsClient.RequestOptions`
+
+
+
+
+
+
+
+
+
+
+client.organizations.clientGrants.create(id, { ...params }) -> Management.AssociateOrganizationClientGrantResponseContent
+
+-
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+await client.organizations.clientGrants.create("id", {
+ grant_id: "grant_id",
+});
+```
+
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**id:** `string` — Organization identifier.
+
+
+
+
+
+-
+
+**request:** `Management.AssociateOrganizationClientGrantRequestContent`
+
+
+
+
+
+-
+
+**requestOptions:** `ClientGrantsClient.RequestOptions`
+
+
+
+
+
+
+
+
+
+
+client.organizations.clientGrants.delete(id, grant_id) -> void
+
+-
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+await client.organizations.clientGrants.delete("id", "grant_id");
+```
+
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**id:** `string` — Organization identifier.
+
+
+
+
+
+-
+
+**grant_id:** `string` — The Client Grant ID to remove from the organization
+
+
+
+
+
+-
+
+**requestOptions:** `ClientGrantsClient.RequestOptions`
+
+
+
+
+
+
+
+
+
+
+## Organizations Connections
+
+client.organizations.connections.list(id, { ...params }) -> core.Page<Management.OrganizationAllConnectionPost, Management.ListOrganizationAllConnectionsOffsetPaginatedResponseContent>
+
+-
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+const pageableResponse = await client.organizations.connections.list("id", {
+ page: 1,
+ per_page: 1,
+ include_totals: true,
+ is_enabled: true,
+});
+for await (const item of pageableResponse) {
+ console.log(item);
+}
+
+// Or you can manually iterate page-by-page
+let page = await client.organizations.connections.list("id", {
+ page: 1,
+ per_page: 1,
+ include_totals: true,
+ is_enabled: true,
+});
+while (page.hasNextPage()) {
+ page = page.getNextPage();
+}
+
+// You can also access the underlying response
+const response = page.response;
+```
+
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**id:** `string` — Organization identifier.
+
+
+
+
+
+-
+
+**request:** `Management.ListOrganizationAllConnectionsRequestParameters`
+
+
+
+
+
+-
+
+**requestOptions:** `ConnectionsClient.RequestOptions`
+
+
+
+
+
+
+
+
+
+
+client.organizations.connections.create(id, { ...params }) -> Management.CreateOrganizationAllConnectionResponseContent
+
+-
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+await client.organizations.connections.create("id", {
+ connection_id: "connection_id",
+});
+```
+
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**id:** `string` — Organization identifier.
+
+
+
+
+
+-
+
+**request:** `Management.CreateOrganizationAllConnectionRequestParameters`
+
+
+
+
+
+-
+
+**requestOptions:** `ConnectionsClient.RequestOptions`
+
+
+
+
+
+
+
+
+
+
+client.organizations.connections.get(id, connection_id) -> Management.GetOrganizationAllConnectionResponseContent
+
+-
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+await client.organizations.connections.get("id", "connection_id");
```
@@ -22402,7 +23254,7 @@ const response = page.response;
-
-**request:** `Management.ListOrganizationClientGrantsRequestParameters`
+**connection_id:** `string` — Connection identifier.
@@ -22410,7 +23262,7 @@ const response = page.response;
-
-**requestOptions:** `ClientGrantsClient.RequestOptions`
+**requestOptions:** `ConnectionsClient.RequestOptions`
@@ -22421,7 +23273,7 @@ const response = page.response;
-client.organizations.clientGrants.create(id, { ...params }) -> Management.AssociateOrganizationClientGrantResponseContent
+client.organizations.connections.delete(id, connection_id) -> void
-
@@ -22434,9 +23286,7 @@ const response = page.response;
-
```typescript
-await client.organizations.clientGrants.create("id", {
- grant_id: "grant_id",
-});
+await client.organizations.connections.delete("id", "connection_id");
```
@@ -22460,7 +23310,7 @@ await client.organizations.clientGrants.create("id", {
-
-**request:** `Management.AssociateOrganizationClientGrantRequestContent`
+**connection_id:** `string` — Connection identifier.
@@ -22468,7 +23318,7 @@ await client.organizations.clientGrants.create("id", {
-
-**requestOptions:** `ClientGrantsClient.RequestOptions`
+**requestOptions:** `ConnectionsClient.RequestOptions`
@@ -22479,7 +23329,7 @@ await client.organizations.clientGrants.create("id", {
-client.organizations.clientGrants.delete(id, grant_id) -> void
+client.organizations.connections.update(id, connection_id, { ...params }) -> Management.UpdateOrganizationAllConnectionResponseContent
-
@@ -22492,7 +23342,7 @@ await client.organizations.clientGrants.create("id", {
-
```typescript
-await client.organizations.clientGrants.delete("id", "grant_id");
+await client.organizations.connections.update("id", "connection_id");
```
@@ -22516,7 +23366,7 @@ await client.organizations.clientGrants.delete("id", "grant_id");
-
-**grant_id:** `string` — The Client Grant ID to remove from the organization
+**connection_id:** `string` — Connection identifier.
@@ -22524,7 +23374,15 @@ await client.organizations.clientGrants.delete("id", "grant_id");
-
-**requestOptions:** `ClientGrantsClient.RequestOptions`
+**request:** `Management.UpdateOrganizationConnectionRequestParameters`
+
+
+
+
+
+-
+
+**requestOptions:** `ConnectionsClient.RequestOptions`
@@ -22535,12 +23393,28 @@ await client.organizations.clientGrants.delete("id", "grant_id");
-## Organizations Connections
+## Organizations DiscoveryDomains
+
+client.organizations.discoveryDomains.list(id, { ...params }) -> core.Page<Management.OrganizationDiscoveryDomain, Management.ListOrganizationDiscoveryDomainsResponseContent>
+
+-
+
+#### 📝 Description
+
+
+-
-
client.organizations.connections.list(id, { ...params }) -> core.Page<Management.OrganizationAllConnectionPost, Management.ListOrganizationAllConnectionsOffsetPaginatedResponseContent>
-
+Retrieve list of all organization discovery domains associated with the specified organization.
+This endpoint is subject to eventual consistency; newly created, updated, or deleted discovery domains may not immediately appear in the response.
+
+
+
+
+
+
#### 🔌 Usage
@@ -22550,22 +23424,18 @@ await client.organizations.clientGrants.delete("id", "grant_id");
-
```typescript
-const pageableResponse = await client.organizations.connections.list("id", {
- page: 1,
- per_page: 1,
- include_totals: true,
- is_enabled: true,
+const pageableResponse = await client.organizations.discoveryDomains.list("id", {
+ from: "from",
+ take: 1,
});
for await (const item of pageableResponse) {
console.log(item);
}
// Or you can manually iterate page-by-page
-let page = await client.organizations.connections.list("id", {
- page: 1,
- per_page: 1,
- include_totals: true,
- is_enabled: true,
+let page = await client.organizations.discoveryDomains.list("id", {
+ from: "from",
+ take: 1,
});
while (page.hasNextPage()) {
page = page.getNextPage();
@@ -22588,7 +23458,7 @@ const response = page.response;
-
-**id:** `string` — Organization identifier.
+**id:** `string` — ID of the organization.
@@ -22596,7 +23466,7 @@ const response = page.response;
-
-**request:** `Management.ListOrganizationAllConnectionsRequestParameters`
+**request:** `Management.ListOrganizationDiscoveryDomainsRequestParameters`
@@ -22604,7 +23474,7 @@ const response = page.response;
-
-**requestOptions:** `ConnectionsClient.RequestOptions`
+**requestOptions:** `DiscoveryDomainsClient.RequestOptions`
@@ -22615,10 +23485,25 @@ const response = page.response;
-client.organizations.connections.create(id, { ...params }) -> Management.CreateOrganizationAllConnectionResponseContent
+client.organizations.discoveryDomains.create(id, { ...params }) -> Management.CreateOrganizationDiscoveryDomainResponseContent
+
+-
+
+#### 📝 Description
+
+
+-
+
-
+Create a new discovery domain for an organization.
+
+
+
+
+
+
#### 🔌 Usage
@@ -22628,8 +23513,8 @@ const response = page.response;
-
```typescript
-await client.organizations.connections.create("id", {
- connection_id: "connection_id",
+await client.organizations.discoveryDomains.create("id", {
+ domain: "domain",
});
```
@@ -22646,7 +23531,7 @@ await client.organizations.connections.create("id", {
-
-**id:** `string` — Organization identifier.
+**id:** `string` — ID of the organization.
@@ -22654,7 +23539,7 @@ await client.organizations.connections.create("id", {
-
-**request:** `Management.CreateOrganizationAllConnectionRequestParameters`
+**request:** `Management.CreateOrganizationDiscoveryDomainRequestContent`
@@ -22662,7 +23547,7 @@ await client.organizations.connections.create("id", {
-
-**requestOptions:** `ConnectionsClient.RequestOptions`
+**requestOptions:** `DiscoveryDomainsClient.RequestOptions`
@@ -22673,10 +23558,26 @@ await client.organizations.connections.create("id", {
-client.organizations.connections.get(id, connection_id) -> Management.GetOrganizationAllConnectionResponseContent
+client.organizations.discoveryDomains.getByName(id, discovery_domain) -> Management.GetOrganizationDiscoveryDomainByNameResponseContent
+
+-
+
+#### 📝 Description
+
+
+-
+
-
+Retrieve details about a single organization discovery domain specified by domain name.
+This endpoint is subject to eventual consistency; newly created, updated, or deleted discovery domains may not immediately appear in the response.
+
+
+
+
+
+
#### 🔌 Usage
@@ -22686,7 +23587,7 @@ await client.organizations.connections.create("id", {
-
```typescript
-await client.organizations.connections.get("id", "connection_id");
+await client.organizations.discoveryDomains.getByName("id", "discovery_domain");
```
@@ -22702,7 +23603,7 @@ await client.organizations.connections.get("id", "connection_id");
-
-**id:** `string` — Organization identifier.
+**id:** `string` — ID of the organization.
@@ -22710,7 +23611,7 @@ await client.organizations.connections.get("id", "connection_id");
-
-**connection_id:** `string` — Connection identifier.
+**discovery_domain:** `string` — Domain name of the discovery domain.
@@ -22718,7 +23619,7 @@ await client.organizations.connections.get("id", "connection_id");
-
-**requestOptions:** `ConnectionsClient.RequestOptions`
+**requestOptions:** `DiscoveryDomainsClient.RequestOptions`
@@ -22729,10 +23630,26 @@ await client.organizations.connections.get("id", "connection_id");
-client.organizations.connections.delete(id, connection_id) -> void
+client.organizations.discoveryDomains.get(id, discovery_domain_id) -> Management.GetOrganizationDiscoveryDomainResponseContent
+
+-
+
+#### 📝 Description
+
+
+-
+
-
+Retrieve details about a single organization discovery domain specified by ID.
+This endpoint is subject to eventual consistency; newly created, updated, or deleted discovery domains may not immediately appear in the response.
+
+
+
+
+
+
#### 🔌 Usage
@@ -22742,7 +23659,7 @@ await client.organizations.connections.get("id", "connection_id");
-
```typescript
-await client.organizations.connections.delete("id", "connection_id");
+await client.organizations.discoveryDomains.get("id", "discovery_domain_id");
```
@@ -22758,7 +23675,7 @@ await client.organizations.connections.delete("id", "connection_id");
-
-**id:** `string` — Organization identifier.
+**id:** `string` — ID of the organization.
@@ -22766,7 +23683,7 @@ await client.organizations.connections.delete("id", "connection_id");
-
-**connection_id:** `string` — Connection identifier.
+**discovery_domain_id:** `string` — ID of the discovery domain.
@@ -22774,7 +23691,7 @@ await client.organizations.connections.delete("id", "connection_id");
-
-**requestOptions:** `ConnectionsClient.RequestOptions`
+**requestOptions:** `DiscoveryDomainsClient.RequestOptions`
@@ -22785,11 +23702,11 @@ await client.organizations.connections.delete("id", "connection_id");
-client.organizations.connections.update(id, connection_id, { ...params }) -> Management.UpdateOrganizationAllConnectionResponseContent
+client.organizations.discoveryDomains.delete(id, discovery_domain_id) -> void
-
-#### 🔌 Usage
+#### 📝 Description
-
@@ -22797,16 +23714,14 @@ await client.organizations.connections.delete("id", "connection_id");
-
-```typescript
-await client.organizations.connections.update("id", "connection_id");
-```
+Remove a discovery domain from an organization. This action cannot be undone.
-#### ⚙️ Parameters
+#### 🔌 Usage
-
@@ -22814,15 +23729,24 @@ await client.organizations.connections.update("id", "connection_id");
-
-**id:** `string` — Organization identifier.
+```typescript
+await client.organizations.discoveryDomains.delete("id", "discovery_domain_id");
+```
+
+
+
+#### ⚙️ Parameters
-
-**connection_id:** `string` — Connection identifier.
+
+-
+
+**id:** `string` — ID of the organization.
@@ -22830,7 +23754,7 @@ await client.organizations.connections.update("id", "connection_id");
-
-**request:** `Management.UpdateOrganizationConnectionRequestParameters`
+**discovery_domain_id:** `string` — ID of the discovery domain.
@@ -22838,7 +23762,7 @@ await client.organizations.connections.update("id", "connection_id");
-
-**requestOptions:** `ConnectionsClient.RequestOptions`
+**requestOptions:** `DiscoveryDomainsClient.RequestOptions`
@@ -22849,9 +23773,7 @@ await client.organizations.connections.update("id", "connection_id");
-## Organizations DiscoveryDomains
-
-client.organizations.discoveryDomains.list(id, { ...params }) -> core.Page<Management.OrganizationDiscoveryDomain, Management.ListOrganizationDiscoveryDomainsResponseContent>
+client.organizations.discoveryDomains.update(id, discovery_domain_id, { ...params }) -> Management.UpdateOrganizationDiscoveryDomainResponseContent
-
@@ -22863,8 +23785,7 @@ await client.organizations.connections.update("id", "connection_id");
-
-Retrieve list of all organization discovery domains associated with the specified organization.
-This endpoint is subject to eventual consistency; newly created, updated, or deleted discovery domains may not immediately appear in the response.
+Update the verification status and/or use_for_organization_discovery for an organization discovery domain. The `status` field must be either `pending` or `verified`. The `use_for_organization_discovery` field can be `true` or `false` (default: `true`).
@@ -22880,25 +23801,7 @@ This endpoint is subject to eventual consistency; newly created, updated, or del
-
```typescript
-const pageableResponse = await client.organizations.discoveryDomains.list("id", {
- from: "from",
- take: 1,
-});
-for await (const item of pageableResponse) {
- console.log(item);
-}
-
-// Or you can manually iterate page-by-page
-let page = await client.organizations.discoveryDomains.list("id", {
- from: "from",
- take: 1,
-});
-while (page.hasNextPage()) {
- page = page.getNextPage();
-}
-
-// You can also access the underlying response
-const response = page.response;
+await client.organizations.discoveryDomains.update("id", "discovery_domain_id");
```
@@ -22922,7 +23825,15 @@ const response = page.response;
-
-**request:** `Management.ListOrganizationDiscoveryDomainsRequestParameters`
+**discovery_domain_id:** `string` — ID of the discovery domain to update.
+
+
+
+
+
+-
+
+**request:** `Management.UpdateOrganizationDiscoveryDomainRequestContent`
@@ -22941,7 +23852,9 @@ const response = page.response;
-client.organizations.discoveryDomains.create(id, { ...params }) -> Management.CreateOrganizationDiscoveryDomainResponseContent
+## Organizations EnabledConnections
+
+client.organizations.enabledConnections.list(id, { ...params }) -> core.Page<Management.OrganizationConnection, Management.ListOrganizationConnectionsOffsetPaginatedResponseContent>
-
@@ -22953,7 +23866,7 @@ const response = page.response;
-
-Create a new discovery domain for an organization.
+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.
@@ -22969,9 +23882,27 @@ Create a new discovery domain for an organization.
-
```typescript
-await client.organizations.discoveryDomains.create("id", {
- domain: "domain",
+const pageableResponse = await client.organizations.enabledConnections.list("id", {
+ page: 1,
+ per_page: 1,
+ include_totals: true,
+});
+for await (const item of pageableResponse) {
+ console.log(item);
+}
+
+// Or you can manually iterate page-by-page
+let page = await client.organizations.enabledConnections.list("id", {
+ page: 1,
+ per_page: 1,
+ include_totals: true,
});
+while (page.hasNextPage()) {
+ page = page.getNextPage();
+}
+
+// You can also access the underlying response
+const response = page.response;
```
@@ -22987,7 +23918,7 @@ await client.organizations.discoveryDomains.create("id", {
-
-**id:** `string` — ID of the organization.
+**id:** `string` — Organization identifier.
@@ -22995,7 +23926,7 @@ await client.organizations.discoveryDomains.create("id", {
-
-**request:** `Management.CreateOrganizationDiscoveryDomainRequestContent`
+**request:** `Management.ListOrganizationConnectionsRequestParameters`
@@ -23003,7 +23934,7 @@ await client.organizations.discoveryDomains.create("id", {
-
-**requestOptions:** `DiscoveryDomainsClient.RequestOptions`
+**requestOptions:** `EnabledConnectionsClient.RequestOptions`
@@ -23014,7 +23945,7 @@ await client.organizations.discoveryDomains.create("id", {
-client.organizations.discoveryDomains.getByName(id, discovery_domain) -> Management.GetOrganizationDiscoveryDomainByNameResponseContent
+client.organizations.enabledConnections.add(id, { ...params }) -> Management.AddOrganizationConnectionResponseContent
-
@@ -23026,8 +23957,9 @@ await client.organizations.discoveryDomains.create("id", {
-
-Retrieve details about a single organization discovery domain specified by domain name.
-This endpoint is subject to eventual consistency; newly created, updated, or deleted discovery domains may not immediately appear in the response.
+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](https://auth0.com/docs/authenticate/identity-providers) represent the relationship between Auth0 and a source of users. Available types of connections include database, enterprise, and social.
@@ -23043,7 +23975,9 @@ This endpoint is subject to eventual consistency; newly created, updated, or del
-
```typescript
-await client.organizations.discoveryDomains.getByName("id", "discovery_domain");
+await client.organizations.enabledConnections.add("id", {
+ connection_id: "connection_id",
+});
```
@@ -23059,7 +23993,7 @@ await client.organizations.discoveryDomains.getByName("id", "discovery_domain");
-
-**id:** `string` — ID of the organization.
+**id:** `string` — Organization identifier.
@@ -23067,7 +24001,7 @@ await client.organizations.discoveryDomains.getByName("id", "discovery_domain");
-
-**discovery_domain:** `string` — Domain name of the discovery domain.
+**request:** `Management.AddOrganizationConnectionRequestContent`
@@ -23075,7 +24009,7 @@ await client.organizations.discoveryDomains.getByName("id", "discovery_domain");
-
-**requestOptions:** `DiscoveryDomainsClient.RequestOptions`
+**requestOptions:** `EnabledConnectionsClient.RequestOptions`
@@ -23086,7 +24020,7 @@ await client.organizations.discoveryDomains.getByName("id", "discovery_domain");
-client.organizations.discoveryDomains.get(id, discovery_domain_id) -> Management.GetOrganizationDiscoveryDomainResponseContent
+client.organizations.enabledConnections.get(id, connectionId) -> Management.GetOrganizationConnectionResponseContent
-
@@ -23098,8 +24032,7 @@ await client.organizations.discoveryDomains.getByName("id", "discovery_domain");
-
-Retrieve details about a single organization discovery domain specified by ID.
-This endpoint is subject to eventual consistency; newly created, updated, or deleted discovery domains may not immediately appear in the response.
+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.
@@ -23115,7 +24048,7 @@ This endpoint is subject to eventual consistency; newly created, updated, or del
-
```typescript
-await client.organizations.discoveryDomains.get("id", "discovery_domain_id");
+await client.organizations.enabledConnections.get("id", "connectionId");
```
@@ -23131,7 +24064,7 @@ await client.organizations.discoveryDomains.get("id", "discovery_domain_id");
-
-**id:** `string` — ID of the organization.
+**id:** `string` — Organization identifier.
@@ -23139,7 +24072,7 @@ await client.organizations.discoveryDomains.get("id", "discovery_domain_id");
-
-**discovery_domain_id:** `string` — ID of the discovery domain.
+**connectionId:** `string` — Connection identifier.
@@ -23147,7 +24080,7 @@ await client.organizations.discoveryDomains.get("id", "discovery_domain_id");
-
-**requestOptions:** `DiscoveryDomainsClient.RequestOptions`
+**requestOptions:** `EnabledConnectionsClient.RequestOptions`
@@ -23158,7 +24091,7 @@ await client.organizations.discoveryDomains.get("id", "discovery_domain_id");
-client.organizations.discoveryDomains.delete(id, discovery_domain_id) -> void
+client.organizations.enabledConnections.delete(id, connectionId) -> void
-
@@ -23170,7 +24103,9 @@ await client.organizations.discoveryDomains.get("id", "discovery_domain_id");
-
-Remove a discovery domain from an organization. This action cannot be undone.
+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.
@@ -23186,7 +24121,7 @@ Remove a discovery domain from an organization. This action cannot be undone.
-
```typescript
-await client.organizations.discoveryDomains.delete("id", "discovery_domain_id");
+await client.organizations.enabledConnections.delete("id", "connectionId");
```
@@ -23202,7 +24137,7 @@ await client.organizations.discoveryDomains.delete("id", "discovery_domain_id");
-
-**id:** `string` — ID of the organization.
+**id:** `string` — Organization identifier.
@@ -23210,7 +24145,7 @@ await client.organizations.discoveryDomains.delete("id", "discovery_domain_id");
-
-**discovery_domain_id:** `string` — ID of the discovery domain.
+**connectionId:** `string` — Connection identifier.
@@ -23218,7 +24153,7 @@ await client.organizations.discoveryDomains.delete("id", "discovery_domain_id");
-
-**requestOptions:** `DiscoveryDomainsClient.RequestOptions`
+**requestOptions:** `EnabledConnectionsClient.RequestOptions`
@@ -23229,7 +24164,7 @@ await client.organizations.discoveryDomains.delete("id", "discovery_domain_id");
-client.organizations.discoveryDomains.update(id, discovery_domain_id, { ...params }) -> Management.UpdateOrganizationDiscoveryDomainResponseContent
+client.organizations.enabledConnections.update(id, connectionId, { ...params }) -> Management.UpdateOrganizationConnectionResponseContent
-
@@ -23241,7 +24176,7 @@ await client.organizations.discoveryDomains.delete("id", "discovery_domain_id");
-
-Update the verification status and/or use_for_organization_discovery for an organization discovery domain. The
status field must be either pending or verified. The use_for_organization_discovery field can be true or false (default: true).
+Modify the details of a specific connection currently enabled for an Organization.
@@ -23257,7 +24192,7 @@ Update the verification status and/or use_for_organization_discovery for an orga
-
```typescript
-await client.organizations.discoveryDomains.update("id", "discovery_domain_id");
+await client.organizations.enabledConnections.update("id", "connectionId");
```
@@ -23273,7 +24208,7 @@ await client.organizations.discoveryDomains.update("id", "discovery_domain_id");
-
-**id:** `string` — ID of the organization.
+**id:** `string` — Organization identifier.
@@ -23281,7 +24216,7 @@ await client.organizations.discoveryDomains.update("id", "discovery_domain_id");
-
-**discovery_domain_id:** `string` — ID of the discovery domain to update.
+**connectionId:** `string` — Connection identifier.
@@ -23289,7 +24224,7 @@ await client.organizations.discoveryDomains.update("id", "discovery_domain_id");
-
-**request:** `Management.UpdateOrganizationDiscoveryDomainRequestContent`
+**request:** `Management.UpdateOrganizationConnectionRequestContent`
@@ -23297,7 +24232,7 @@ await client.organizations.discoveryDomains.update("id", "discovery_domain_id");
-
-**requestOptions:** `DiscoveryDomainsClient.RequestOptions`
+**requestOptions:** `EnabledConnectionsClient.RequestOptions`
@@ -23308,9 +24243,9 @@ await client.organizations.discoveryDomains.update("id", "discovery_domain_id");
-## Organizations EnabledConnections
+## Organizations Invitations
-client.organizations.enabledConnections.list(id, { ...params }) -> core.Page<Management.OrganizationConnection, Management.ListOrganizationConnectionsOffsetPaginatedResponseContent>
+client.organizations.invitations.list(id, { ...params }) -> core.Page<Management.OrganizationInvitation, Management.ListOrganizationInvitationsOffsetPaginatedResponseContent>
-
@@ -23322,7 +24257,7 @@ await client.organizations.discoveryDomains.update("id", "discovery_domain_id");
-
-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.
+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](https://auth0.com/docs/manage-users/organizations/configure-organizations/invite-members).
@@ -23338,20 +24273,26 @@ Retrieve details about a specific connection currently enabled for an Organizati
-
```typescript
-const pageableResponse = await client.organizations.enabledConnections.list("id", {
+const pageableResponse = await client.organizations.invitations.list("id", {
page: 1,
per_page: 1,
include_totals: true,
+ fields: "fields",
+ include_fields: true,
+ sort: "sort",
});
for await (const item of pageableResponse) {
console.log(item);
}
// Or you can manually iterate page-by-page
-let page = await client.organizations.enabledConnections.list("id", {
+let page = await client.organizations.invitations.list("id", {
page: 1,
per_page: 1,
include_totals: true,
+ fields: "fields",
+ include_fields: true,
+ sort: "sort",
});
while (page.hasNextPage()) {
page = page.getNextPage();
@@ -23382,7 +24323,7 @@ const response = page.response;
-
-**request:** `Management.ListOrganizationConnectionsRequestParameters`
+**request:** `Management.ListOrganizationInvitationsRequestParameters`
@@ -23390,7 +24331,7 @@ const response = page.response;
-
-**requestOptions:** `EnabledConnectionsClient.RequestOptions`
+**requestOptions:** `InvitationsClient.RequestOptions`
@@ -23401,7 +24342,7 @@ const response = page.response;
-client.organizations.enabledConnections.add(id, { ...params }) -> Management.AddOrganizationConnectionResponseContent
+client.organizations.invitations.create(id, { ...params }) -> Management.CreateOrganizationInvitationResponseContent
-
@@ -23413,9 +24354,7 @@ const response = page.response;
-
-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.
+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](https://auth0.com/docs/manage-users/organizations/configure-organizations/invite-members).
@@ -23431,8 +24370,14 @@ Enable a specific connection for a given Organization. To enable a connection, i
-
```typescript
-await client.organizations.enabledConnections.add("id", {
- connection_id: "connection_id",
+await client.organizations.invitations.create("id", {
+ inviter: {
+ name: "name",
+ },
+ invitee: {
+ email: "email",
+ },
+ client_id: "client_id",
});
```
@@ -23457,7 +24402,7 @@ await client.organizations.enabledConnections.add("id", {
-
-**request:** `Management.AddOrganizationConnectionRequestContent`
+**request:** `Management.CreateOrganizationInvitationRequestContent`
@@ -23465,7 +24410,7 @@ await client.organizations.enabledConnections.add("id", {
-
-**requestOptions:** `EnabledConnectionsClient.RequestOptions`
+**requestOptions:** `InvitationsClient.RequestOptions`
@@ -23476,11 +24421,11 @@ await client.organizations.enabledConnections.add("id", {
-client.organizations.enabledConnections.get(id, connectionId) -> Management.GetOrganizationConnectionResponseContent
+client.organizations.invitations.get(id, invitation_id, { ...params }) -> Management.GetOrganizationInvitationResponseContent
-
-#### 📝 Description
+#### 🔌 Usage
-
@@ -23488,12 +24433,64 @@ await client.organizations.enabledConnections.add("id", {
-
-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.
+```typescript
+await client.organizations.invitations.get("id", "invitation_id", {
+ fields: "fields",
+ include_fields: true,
+});
+```
+
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**id:** `string` — Organization identifier.
+
+
+
+
+-
+
+**invitation_id:** `string` — The id of the user invitation.
+
+
+
+
+
+-
+
+**request:** `Management.GetOrganizationInvitationRequestParameters`
+
+
+
+
+
+-
+
+**requestOptions:** `InvitationsClient.RequestOptions`
+
+
+
+
+
+
+client.organizations.invitations.delete(id, invitation_id) -> void
+
+-
#### 🔌 Usage
@@ -23504,7 +24501,7 @@ Retrieve details about a specific connection currently enabled for an Organizati
-
```typescript
-await client.organizations.enabledConnections.get("id", "connectionId");
+await client.organizations.invitations.delete("id", "invitation_id");
```
@@ -23528,7 +24525,7 @@ await client.organizations.enabledConnections.get("id", "connectionId");
-
-**connectionId:** `string` — Connection identifier.
+**invitation_id:** `string` — The id of the user invitation.
@@ -23536,7 +24533,7 @@ await client.organizations.enabledConnections.get("id", "connectionId");
-
-**requestOptions:** `EnabledConnectionsClient.RequestOptions`
+**requestOptions:** `InvitationsClient.RequestOptions`
@@ -23547,7 +24544,9 @@ await client.organizations.enabledConnections.get("id", "connectionId");
-client.organizations.enabledConnections.delete(id, connectionId) -> void
+## Organizations Members
+
+client.organizations.members.list(id, { ...params }) -> core.Page<Management.OrganizationMember, Management.ListOrganizationMembersPaginatedResponseContent>
-
@@ -23559,9 +24558,22 @@ await client.organizations.enabledConnections.get("id", "connectionId");
-
-Disable a specific connection for an Organization. Once disabled, Organization members can no longer use that connection to authenticate.
+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
-Note: This action does not remove the connection from your tenant.
+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.
@@ -23577,7 +24589,29 @@ Disable a specific connection for an Organization. Once disabled, Organization m
-
```typescript
-await client.organizations.enabledConnections.delete("id", "connectionId");
+const pageableResponse = await client.organizations.members.list("id", {
+ from: "from",
+ take: 1,
+ fields: "fields",
+ include_fields: true,
+});
+for await (const item of pageableResponse) {
+ console.log(item);
+}
+
+// Or you can manually iterate page-by-page
+let page = await client.organizations.members.list("id", {
+ from: "from",
+ take: 1,
+ fields: "fields",
+ include_fields: true,
+});
+while (page.hasNextPage()) {
+ page = page.getNextPage();
+}
+
+// You can also access the underlying response
+const response = page.response;
```
@@ -23601,7 +24635,7 @@ await client.organizations.enabledConnections.delete("id", "connectionId");
-
-**connectionId:** `string` — Connection identifier.
+**request:** `Management.ListOrganizationMembersRequestParameters`
@@ -23609,7 +24643,7 @@ await client.organizations.enabledConnections.delete("id", "connectionId");
-
-**requestOptions:** `EnabledConnectionsClient.RequestOptions`
+**requestOptions:** `MembersClient.RequestOptions`
@@ -23620,7 +24654,7 @@ await client.organizations.enabledConnections.delete("id", "connectionId");
-client.organizations.enabledConnections.update(id, connectionId, { ...params }) -> Management.UpdateOrganizationConnectionResponseContent
+client.organizations.members.create(id, { ...params }) -> void
-
@@ -23632,13 +24666,73 @@ await client.organizations.enabledConnections.delete("id", "connectionId");
-
-Modify the details of a specific connection currently enabled for an Organization.
+Set one or more existing users as members of a specific [Organization](https://auth0.com/docs/manage-users/organizations).
+
+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](https://auth0.com/docs/manage-users/organizations/configure-organizations/invite-members), manually create them through the Auth0 Dashboard, or use the Management API.
+
+
+
+
+
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+await client.organizations.members.create("id", {
+ members: ["members"],
+});
+```
+
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**id:** `string` — Organization identifier.
+
+
+
+
+
+-
+
+**request:** `Management.CreateOrganizationMemberRequestContent`
+
+
+
+
+
+-
+
+**requestOptions:** `MembersClient.RequestOptions`
+
+
+
+
+client.organizations.members.delete(id, { ...params }) -> void
+
+-
+
#### 🔌 Usage
@@ -23648,7 +24742,9 @@ Modify the details of a specific connection currently enabled for an Organizatio
-
```typescript
-await client.organizations.enabledConnections.update("id", "connectionId");
+await client.organizations.members.delete("id", {
+ members: ["members"],
+});
```
@@ -23672,15 +24768,7 @@ await client.organizations.enabledConnections.update("id", "connectionId");
-
-**connectionId:** `string` — Connection identifier.
-
-
-
-
-
--
-
-**request:** `Management.UpdateOrganizationConnectionRequestContent`
+**request:** `Management.DeleteOrganizationMembersRequestContent`
@@ -23688,7 +24776,7 @@ await client.organizations.enabledConnections.update("id", "connectionId");
-
-**requestOptions:** `EnabledConnectionsClient.RequestOptions`
+**requestOptions:** `MembersClient.RequestOptions`
@@ -23699,9 +24787,9 @@ await client.organizations.enabledConnections.update("id", "connectionId");
-## Organizations Invitations
+## Organizations Groups
-client.organizations.invitations.list(id, { ...params }) -> core.Page<Management.OrganizationInvitation, Management.ListOrganizationInvitationsOffsetPaginatedResponseContent>
+client.organizations.groups.list(organization_id, { ...params }) -> core.Page<Management.Group, Management.ListOrganizationGroupsResponseContent>
-
@@ -23713,7 +24801,7 @@ await client.organizations.enabledConnections.update("id", "connectionId");
-
-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.
+Lists the groups that are assigned to the specified organization.
@@ -23729,26 +24817,18 @@ Retrieve a detailed list of invitations sent to users for a specific Organizatio
-
```typescript
-const pageableResponse = await client.organizations.invitations.list("id", {
- page: 1,
- per_page: 1,
- include_totals: true,
- fields: "fields",
- include_fields: true,
- sort: "sort",
+const pageableResponse = await client.organizations.groups.list("organization_id", {
+ from: "from",
+ take: 1,
});
for await (const item of pageableResponse) {
console.log(item);
}
// Or you can manually iterate page-by-page
-let page = await client.organizations.invitations.list("id", {
- page: 1,
- per_page: 1,
- include_totals: true,
- fields: "fields",
- include_fields: true,
- sort: "sort",
+let page = await client.organizations.groups.list("organization_id", {
+ from: "from",
+ take: 1,
});
while (page.hasNextPage()) {
page = page.getNextPage();
@@ -23771,7 +24851,7 @@ const response = page.response;
-
-**id:** `string` — Organization identifier.
+**organization_id:** `string` — ID of the organization
@@ -23779,7 +24859,7 @@ const response = page.response;
-
-**request:** `Management.ListOrganizationInvitationsRequestParameters`
+**request:** `Management.ListOrganizationGroupsRequestParameters`
@@ -23787,7 +24867,7 @@ const response = page.response;
-
-**requestOptions:** `InvitationsClient.RequestOptions`
+**requestOptions:** `GroupsClient.RequestOptions`
@@ -23798,7 +24878,9 @@ const response = page.response;
-client.organizations.invitations.create(id, { ...params }) -> Management.CreateOrganizationInvitationResponseContent
+## Organizations Groups Roles
+
+client.organizations.groups.roles.list(organization_id, group_id, { ...params }) -> core.Page<Management.Role, Management.ListOrganizationGroupRolesResponseContent>
-
@@ -23810,7 +24892,7 @@ const response = page.response;
-
-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.
+Lists the roles assigned to the specified group in the context of an organization.
@@ -23826,15 +24908,25 @@ Create a user invitation for a specific Organization. Upon creation, the listed
-
```typescript
-await client.organizations.invitations.create("id", {
- inviter: {
- name: "name",
- },
- invitee: {
- email: "email",
- },
- client_id: "client_id",
+const pageableResponse = await client.organizations.groups.roles.list("organization_id", "group_id", {
+ from: "from",
+ take: 1,
+});
+for await (const item of pageableResponse) {
+ console.log(item);
+}
+
+// Or you can manually iterate page-by-page
+let page = await client.organizations.groups.roles.list("organization_id", "group_id", {
+ from: "from",
+ take: 1,
});
+while (page.hasNextPage()) {
+ page = page.getNextPage();
+}
+
+// You can also access the underlying response
+const response = page.response;
```
@@ -23850,7 +24942,7 @@ await client.organizations.invitations.create("id", {
-
-**id:** `string` — Organization identifier.
+**organization_id:** `string` — ID of the organization
@@ -23858,7 +24950,7 @@ await client.organizations.invitations.create("id", {
-
-**request:** `Management.CreateOrganizationInvitationRequestContent`
+**group_id:** `string` — ID of the group
@@ -23866,7 +24958,15 @@ await client.organizations.invitations.create("id", {
-
-**requestOptions:** `InvitationsClient.RequestOptions`
+**request:** `Management.ListOrganizationGroupRolesRequestParameters`
+
+
+
+
+
+-
+
+**requestOptions:** `RolesClient.RequestOptions`
@@ -23877,10 +24977,25 @@ await client.organizations.invitations.create("id", {
-client.organizations.invitations.get(id, invitation_id, { ...params }) -> Management.GetOrganizationInvitationResponseContent
+client.organizations.groups.roles.create(organization_id, group_id, { ...params }) -> void
+
+-
+
+#### 📝 Description
+
-
+
+-
+
+Assign one or more roles to a specified group in the context of an organization.
+
+
+
+
+
+
#### 🔌 Usage
@@ -23890,9 +25005,8 @@ await client.organizations.invitations.create("id", {
-
```typescript
-await client.organizations.invitations.get("id", "invitation_id", {
- fields: "fields",
- include_fields: true,
+await client.organizations.groups.roles.create("organization_id", "group_id", {
+ roles: ["roles"],
});
```
@@ -23909,7 +25023,7 @@ await client.organizations.invitations.get("id", "invitation_id", {
-
-**id:** `string` — Organization identifier.
+**organization_id:** `string` — ID of the organization
@@ -23917,7 +25031,7 @@ await client.organizations.invitations.get("id", "invitation_id", {
-
-**invitation_id:** `string` — The id of the user invitation.
+**group_id:** `string` — ID of the group
@@ -23925,7 +25039,7 @@ await client.organizations.invitations.get("id", "invitation_id", {
-
-**request:** `Management.GetOrganizationInvitationRequestParameters`
+**request:** `Management.CreateOrganizationGroupRolesRequestContent`
@@ -23933,7 +25047,7 @@ await client.organizations.invitations.get("id", "invitation_id", {
-
-**requestOptions:** `InvitationsClient.RequestOptions`
+**requestOptions:** `RolesClient.RequestOptions`
@@ -23944,10 +25058,25 @@ await client.organizations.invitations.get("id", "invitation_id", {
-client.organizations.invitations.delete(id, invitation_id) -> void
+client.organizations.groups.roles.delete(organization_id, group_id, { ...params }) -> void
+
+-
+
+#### 📝 Description
+
-
+
+-
+
+Unassign one or more roles from a specified group in the context of an organization.
+
+
+
+
+
+
#### 🔌 Usage
@@ -23957,7 +25086,9 @@ await client.organizations.invitations.get("id", "invitation_id", {
-
```typescript
-await client.organizations.invitations.delete("id", "invitation_id");
+await client.organizations.groups.roles.delete("organization_id", "group_id", {
+ roles: ["roles"],
+});
```
@@ -23973,7 +25104,7 @@ await client.organizations.invitations.delete("id", "invitation_id");
-
-**id:** `string` — Organization identifier.
+**organization_id:** `string` — ID of the organization
@@ -23981,7 +25112,7 @@ await client.organizations.invitations.delete("id", "invitation_id");
-
-**invitation_id:** `string` — The id of the user invitation.
+**group_id:** `string` — ID of the group
@@ -23989,7 +25120,15 @@ await client.organizations.invitations.delete("id", "invitation_id");
-
-**requestOptions:** `InvitationsClient.RequestOptions`
+**request:** `Management.DeleteOrganizationGroupRolesRequestContent`
+
+
+
+
+
+-
+
+**requestOptions:** `RolesClient.RequestOptions`
@@ -24000,9 +25139,9 @@ await client.organizations.invitations.delete("id", "invitation_id");
-## Organizations Members
+## Organizations Members EffectiveRoles
-client.organizations.members.list(id, { ...params }) -> core.Page<Management.OrganizationMember, Management.ListOrganizationMembersPaginatedResponseContent>
+client.organizations.members.effectiveRoles.list(id, user_id, { ...params }) -> core.Page<Management.OrganizationMemberEffectiveRole, Management.ListOrganizationMemberEffectiveRolesResponseContent>
-
@@ -24014,28 +25153,7 @@ await client.organizations.invitations.delete("id", "invitation_id");
-
-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.
+Lists the roles assigned to an organization member directly or through group membership.
@@ -24051,22 +25169,18 @@ To search by checkpoint, use the following parameters: - from: Optional id from
-
```typescript
-const pageableResponse = await client.organizations.members.list("id", {
+const pageableResponse = await client.organizations.members.effectiveRoles.list("id", "user_id", {
from: "from",
take: 1,
- fields: "fields",
- include_fields: true,
});
for await (const item of pageableResponse) {
console.log(item);
}
// Or you can manually iterate page-by-page
-let page = await client.organizations.members.list("id", {
+let page = await client.organizations.members.effectiveRoles.list("id", "user_id", {
from: "from",
take: 1,
- fields: "fields",
- include_fields: true,
});
while (page.hasNextPage()) {
page = page.getNextPage();
@@ -24097,7 +25211,7 @@ const response = page.response;
-
-**request:** `Management.ListOrganizationMembersRequestParameters`
+**user_id:** `string` — ID of the user to list effective roles for.
@@ -24105,7 +25219,15 @@ const response = page.response;
-
-**requestOptions:** `MembersClient.RequestOptions`
+**request:** `Management.ListOrganizationMemberEffectiveRolesRequestParameters`
+
+
+
+
+
+-
+
+**requestOptions:** `EffectiveRolesClient.RequestOptions`
@@ -24116,7 +25238,9 @@ const response = page.response;
-client.organizations.members.create(id, { ...params }) -> void
+## Organizations Members Roles
+
+client.organizations.members.roles.list(id, user_id, { ...params }) -> core.Page<Management.Role, Management.ListOrganizationMemberRolesOffsetPaginatedResponseContent>
-
@@ -24128,9 +25252,9 @@ const response = page.response;
-
-Set one or more existing users as members of a specific Organization.
+Retrieve detailed list of roles assigned to a given user within the context 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.
+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.
@@ -24146,9 +25270,27 @@ To add a user to an Organization through this action, the user must already exis
-
```typescript
-await client.organizations.members.create("id", {
- members: ["members"],
+const pageableResponse = await client.organizations.members.roles.list("id", "user_id", {
+ page: 1,
+ per_page: 1,
+ include_totals: true,
+});
+for await (const item of pageableResponse) {
+ console.log(item);
+}
+
+// Or you can manually iterate page-by-page
+let page = await client.organizations.members.roles.list("id", "user_id", {
+ page: 1,
+ per_page: 1,
+ include_totals: true,
});
+while (page.hasNextPage()) {
+ page = page.getNextPage();
+}
+
+// You can also access the underlying response
+const response = page.response;
```
@@ -24172,57 +25314,7 @@ await client.organizations.members.create("id", {
-
-**request:** `Management.CreateOrganizationMemberRequestContent`
-
-
-
-
-
--
-
-**requestOptions:** `MembersClient.RequestOptions`
-
-
-
-
-
-
-
-
-
-
-client.organizations.members.delete(id, { ...params }) -> void
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```typescript
-await client.organizations.members.delete("id", {
- members: ["members"],
-});
-```
-
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**id:** `string` — Organization identifier.
+**user_id:** `string` — ID of the user to associate roles with.
@@ -24230,7 +25322,7 @@ await client.organizations.members.delete("id", {
-
-**request:** `Management.DeleteOrganizationMembersRequestContent`
+**request:** `Management.ListOrganizationMemberRolesRequestParameters`
@@ -24238,7 +25330,7 @@ await client.organizations.members.delete("id", {
-
-**requestOptions:** `MembersClient.RequestOptions`
+**requestOptions:** `RolesClient.RequestOptions`
@@ -24249,9 +25341,7 @@ await client.organizations.members.delete("id", {
-## Organizations Members Roles
-
-client.organizations.members.roles.list(id, user_id, { ...params }) -> core.Page<Management.Role, Management.ListOrganizationMemberRolesOffsetPaginatedResponseContent>
+client.organizations.members.roles.assign(id, user_id, { ...params }) -> void
-
@@ -24263,9 +25353,9 @@ await client.organizations.members.delete("id", {
-
-Retrieve detailed list of roles assigned to a given user within the context of a specific Organization.
+Assign one or more [roles](https://auth0.com/docs/manage-users/access-control/rbac) 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 only returns the roles associated with the specified Organization; any roles assigned to the user within other Organizations are not included.
+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.
@@ -24281,27 +25371,9 @@ Users can be members of multiple Organizations with unique roles assigned for ea
-
```typescript
-const pageableResponse = await client.organizations.members.roles.list("id", "user_id", {
- page: 1,
- per_page: 1,
- include_totals: true,
-});
-for await (const item of pageableResponse) {
- console.log(item);
-}
-
-// Or you can manually iterate page-by-page
-let page = await client.organizations.members.roles.list("id", "user_id", {
- page: 1,
- per_page: 1,
- include_totals: true,
+await client.organizations.members.roles.assign("id", "user_id", {
+ roles: ["roles"],
});
-while (page.hasNextPage()) {
- page = page.getNextPage();
-}
-
-// You can also access the underlying response
-const response = page.response;
```
@@ -24333,7 +25405,7 @@ const response = page.response;
-
-**request:** `Management.ListOrganizationMemberRolesRequestParameters`
+**request:** `Management.AssignOrganizationMemberRolesRequestContent`
@@ -24352,7 +25424,7 @@ const response = page.response;
-client.organizations.members.roles.assign(id, user_id, { ...params }) -> void
+client.organizations.members.roles.delete(id, user_id, { ...params }) -> void
-
@@ -24364,9 +25436,9 @@ const response = page.response;
-
-Assign one or more roles to a user to determine their access for a specific Organization.
+Remove one or more Organization-specific [roles](https://auth0.com/docs/manage-users/access-control/rbac) from a given user.
-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.
+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.
@@ -24382,7 +25454,7 @@ Users can be members of multiple Organizations with unique roles assigned for ea
-
```typescript
-await client.organizations.members.roles.assign("id", "user_id", {
+await client.organizations.members.roles.delete("id", "user_id", {
roles: ["roles"],
});
```
@@ -24408,7 +25480,7 @@ await client.organizations.members.roles.assign("id", "user_id", {
-
-**user_id:** `string` — ID of the user to associate roles with.
+**user_id:** `string` — User ID of the organization member to remove roles from.
@@ -24416,7 +25488,7 @@ await client.organizations.members.roles.assign("id", "user_id", {
-
-**request:** `Management.AssignOrganizationMemberRolesRequestContent`
+**request:** `Management.DeleteOrganizationMemberRolesRequestContent`
@@ -24435,7 +25507,9 @@ await client.organizations.members.roles.assign("id", "user_id", {
-client.organizations.members.roles.delete(id, user_id, { ...params }) -> void
+## Organizations Members EffectiveRoles Sources Groups
+
+client.organizations.members.effectiveRoles.sources.groups.list(id, user_id, { ...params }) -> core.Page<Management.Group, Management.ListOrganizationMemberRoleSourceGroupsResponseContent>
-
@@ -24447,9 +25521,7 @@ await client.organizations.members.roles.assign("id", "user_id", {
-
-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.
+Lists the groups which grant the org member a given role.
@@ -24465,9 +25537,27 @@ Users can be members of multiple Organizations with unique roles assigned for ea
-
```typescript
-await client.organizations.members.roles.delete("id", "user_id", {
- roles: ["roles"],
+const pageableResponse = await client.organizations.members.effectiveRoles.sources.groups.list("id", "user_id", {
+ from: "from",
+ take: 1,
+ role_id: "role_id",
+});
+for await (const item of pageableResponse) {
+ console.log(item);
+}
+
+// Or you can manually iterate page-by-page
+let page = await client.organizations.members.effectiveRoles.sources.groups.list("id", "user_id", {
+ from: "from",
+ take: 1,
+ role_id: "role_id",
});
+while (page.hasNextPage()) {
+ page = page.getNextPage();
+}
+
+// You can also access the underlying response
+const response = page.response;
```
@@ -24491,7 +25581,7 @@ await client.organizations.members.roles.delete("id", "user_id", {
-
-**user_id:** `string` — User ID of the organization member to remove roles from.
+**user_id:** `string` — ID of the user to list role source groups for.
@@ -24499,7 +25589,7 @@ await client.organizations.members.roles.delete("id", "user_id", {
-
-**request:** `Management.DeleteOrganizationMemberRolesRequestContent`
+**request:** `Management.ListOrganizationMemberRoleSourceGroupsRequestParameters`
@@ -24507,7 +25597,7 @@ await client.organizations.members.roles.delete("id", "user_id", {
-
-**requestOptions:** `RolesClient.RequestOptions`
+**requestOptions:** `GroupsClient.RequestOptions`
@@ -24625,7 +25715,7 @@ const response = page.response;
-
-Learn more about configuring render settings for advanced customization.
+Learn more about [configuring render settings](https://auth0.com/docs/customize/login-pages/advanced-customizations/getting-started/configure-acul-screens) for advanced customization.
@@ -24766,7 +25856,7 @@ await client.prompts.rendering.get("login", "login");
-
-Learn more about configuring render settings for advanced customization.
+Learn more about [configuring render settings](https://auth0.com/docs/customize/login-pages/advanced-customizations/getting-started/configure-acul-screens) for advanced customization.
@@ -25106,15 +26196,194 @@ await client.prompts.partials.set("login", {
-
-**request:** `Management.SetPartialsRequestContent`
-
-
-
-
+**request:** `Management.SetPartialsRequestContent`
+
+
+
+
+
+-
+
+**requestOptions:** `PartialsClient.RequestOptions`
+
+
+
+
+
+
+
+
+
+
+## RiskAssessments Settings
+
+client.riskAssessments.settings.get() -> Management.GetRiskAssessmentsSettingsResponseContent
+
+-
+
+#### 📝 Description
+
+
+-
+
+
+-
+
+Gets the tenant settings for risk assessments
+
+
+
+
+
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+await client.riskAssessments.settings.get();
+```
+
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**requestOptions:** `SettingsClient.RequestOptions`
+
+
+
+
+
+
+
+
+
+
+client.riskAssessments.settings.update({ ...params }) -> Management.UpdateRiskAssessmentsSettingsResponseContent
+
+-
+
+#### 📝 Description
+
+
+-
+
+
+-
+
+Updates the tenant settings for risk assessments
+
+
+
+
+
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+await client.riskAssessments.settings.update({
+ enabled: true,
+});
+```
+
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**request:** `Management.UpdateRiskAssessmentsSettingsRequestContent`
+
+
+
+
+
+-
+
+**requestOptions:** `SettingsClient.RequestOptions`
+
+
+
+
+
+
+
+
+
+
+## RiskAssessments Settings NewDevice
+
+client.riskAssessments.settings.newDevice.get() -> Management.GetRiskAssessmentsSettingsNewDeviceResponseContent
+
+-
+
+#### 📝 Description
+
+
+-
+
+
+-
+
+Gets the risk assessment settings for the new device assessor
+
+
+
+
+
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+await client.riskAssessments.settings.newDevice.get();
+```
+
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
-
-**requestOptions:** `PartialsClient.RequestOptions`
+**requestOptions:** `NewDeviceClient.RequestOptions`
@@ -25125,9 +26394,7 @@ await client.prompts.partials.set("login", {
-## RiskAssessments Settings
-
-client.riskAssessments.settings.get() -> Management.GetRiskAssessmentsSettingsResponseContent
+client.riskAssessments.settings.newDevice.update({ ...params }) -> Management.UpdateRiskAssessmentsSettingsNewDeviceResponseContent
-
@@ -25139,7 +26406,7 @@ await client.prompts.partials.set("login", {
-
-Gets the tenant settings for risk assessments
+Updates the risk assessment settings for the new device assessor
@@ -25155,7 +26422,9 @@ Gets the tenant settings for risk assessments
-
```typescript
-await client.riskAssessments.settings.get();
+await client.riskAssessments.settings.newDevice.update({
+ remember_for: 1,
+});
```
@@ -25171,7 +26440,15 @@ await client.riskAssessments.settings.get();
-
-**requestOptions:** `SettingsClient.RequestOptions`
+**request:** `Management.UpdateRiskAssessmentsSettingsNewDeviceRequestContent`
+
+
+
+
+
+-
+
+**requestOptions:** `NewDeviceClient.RequestOptions`
@@ -25182,7 +26459,9 @@ await client.riskAssessments.settings.get();
-client.riskAssessments.settings.update({ ...params }) -> Management.UpdateRiskAssessmentsSettingsResponseContent
+## Roles Groups
+
+client.roles.groups.get(id, { ...params }) -> core.Page<Management.Group, Management.ListRoleGroupsResponseContent>
-
@@ -25194,7 +26473,7 @@ await client.riskAssessments.settings.get();
-
-Updates the tenant settings for risk assessments
+Lists the groups to which the specified role is assigned.
@@ -25210,9 +26489,25 @@ Updates the tenant settings for risk assessments
-
```typescript
-await client.riskAssessments.settings.update({
- enabled: true,
+const pageableResponse = await client.roles.groups.get("id", {
+ from: "from",
+ take: 1,
+});
+for await (const item of pageableResponse) {
+ console.log(item);
+}
+
+// Or you can manually iterate page-by-page
+let page = await client.roles.groups.get("id", {
+ from: "from",
+ take: 1,
});
+while (page.hasNextPage()) {
+ page = page.getNextPage();
+}
+
+// You can also access the underlying response
+const response = page.response;
```
@@ -25228,7 +26523,7 @@ await client.riskAssessments.settings.update({
-
-**request:** `Management.UpdateRiskAssessmentsSettingsRequestContent`
+**id:** `string` — Unique identifier for the role (service-generated).
@@ -25236,7 +26531,15 @@ await client.riskAssessments.settings.update({
-
-**requestOptions:** `SettingsClient.RequestOptions`
+**request:** `Management.ListRoleGroupsParameters`
+
+
+
+
+
+-
+
+**requestOptions:** `GroupsClient.RequestOptions`
@@ -25247,9 +26550,7 @@ await client.riskAssessments.settings.update({
-## RiskAssessments Settings NewDevice
-
-client.riskAssessments.settings.newDevice.get() -> Management.GetRiskAssessmentsSettingsNewDeviceResponseContent
+client.roles.groups.create(id, { ...params }) -> void
-
@@ -25261,7 +26562,7 @@ await client.riskAssessments.settings.update({
-
-Gets the risk assessment settings for the new device assessor
+Assign one or more groups to a specified role.
@@ -25277,7 +26578,9 @@ Gets the risk assessment settings for the new device assessor
-
```typescript
-await client.riskAssessments.settings.newDevice.get();
+await client.roles.groups.create("id", {
+ groups: ["groups"],
+});
```
@@ -25293,7 +26596,23 @@ await client.riskAssessments.settings.newDevice.get();
-
-**requestOptions:** `NewDeviceClient.RequestOptions`
+**id:** `string` — Unique identifier for the role (service-generated).
+
+
+
+
+
+-
+
+**request:** `Management.AssignRoleGroupsRequestContent`
+
+
+
+
+
+-
+
+**requestOptions:** `GroupsClient.RequestOptions`
@@ -25304,7 +26623,7 @@ await client.riskAssessments.settings.newDevice.get();
-client.riskAssessments.settings.newDevice.update({ ...params }) -> Management.UpdateRiskAssessmentsSettingsNewDeviceResponseContent
+client.roles.groups.delete(id, { ...params }) -> void
-
@@ -25316,7 +26635,7 @@ await client.riskAssessments.settings.newDevice.get();
-
-Updates the risk assessment settings for the new device assessor
+Unassign one or more groups from a specified role.
@@ -25332,8 +26651,8 @@ Updates the risk assessment settings for the new device assessor
-
```typescript
-await client.riskAssessments.settings.newDevice.update({
- remember_for: 1,
+await client.roles.groups.delete("id", {
+ groups: ["groups"],
});
```
@@ -25350,7 +26669,7 @@ await client.riskAssessments.settings.newDevice.update({
-
-**request:** `Management.UpdateRiskAssessmentsSettingsNewDeviceRequestContent`
+**id:** `string` — Unique identifier for the role (service-generated).
@@ -25358,7 +26677,15 @@ await client.riskAssessments.settings.newDevice.update({
-
-**requestOptions:** `NewDeviceClient.RequestOptions`
+**request:** `Management.DeleteRoleGroupsRequestContent`
+
+
+
+
+
+-
+
+**requestOptions:** `GroupsClient.RequestOptions`
@@ -25474,7 +26801,7 @@ const response = page.response;
-
-Add one or more permissions to a specified user role.
+Add one or more [permissions](https://auth0.com/docs/manage-users/access-control/configure-core-rbac/manage-permissions) to a specified user role.
@@ -25552,7 +26879,7 @@ await client.roles.permissions.add("id", {
-
-Remove one or more permissions from a specified user role.
+Remove one or more [permissions](https://auth0.com/docs/manage-users/access-control/configure-core-rbac/manage-permissions) from a specified user role.
@@ -25632,27 +26959,23 @@ await client.roles.permissions.delete("id", {
-
-Retrieve list of users associated with a specific role. For Dashboard instructions, review View Users Assigned to Roles.
+Retrieve list of users associated with a specific role. For Dashboard instructions, review [View Users Assigned to Roles](https://auth0.com/docs/manage-users/access-control/configure-core-rbac/roles/view-users-assigned-to-roles).
This endpoint supports two types of pagination:
-
-- Offset pagination
-- Checkpoint pagination
-
+- Offset pagination
+- Checkpoint pagination
Checkpoint pagination must be used if you need to retrieve more than 1000 organization members.
-Checkpoint Pagination
+**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.
-
+- `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.
+**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.
@@ -25741,9 +27064,9 @@ const response = page.response;
-
-Assign one or more users to an existing user role. To learn more, review Role-Based Access Control.
+Assign one or more users to an existing user role. To learn more, review [Role-Based Access Control](https://auth0.com/docs/manage-users/access-control/rbac).
-Note: New roles cannot be created through this action.
+**Note**: New roles cannot be created through this action.
@@ -26707,11 +28030,175 @@ Modify the authentication method with the given ID from the specified user. For
-
-
--
+
+-
+
+```typescript
+await client.users.authenticationMethods.update("id", "authentication_method_id");
+```
+
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**id:** `string` — The ID of the user in question.
+
+
+
+
+
+-
+
+**authentication_method_id:** `string` — The ID of the authentication method to update.
+
+
+
+
+
+-
+
+**request:** `Management.UpdateUserAuthenticationMethodRequestContent`
+
+
+
+
+
+-
+
+**requestOptions:** `AuthenticationMethodsClient.RequestOptions`
+
+
+
+
+
+
+
+
+
+
+## Users Authenticators
+
+client.users.authenticators.deleteAll(id) -> void
+
+-
+
+#### 📝 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](https://auth0.com/docs/secure/multi-factor-authentication/manage-mfa-auth0-apis/manage-authentication-methods-with-management-api).
+
+
+
+
+
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+await client.users.authenticators.deleteAll("id");
+```
+
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**id:** `string` — ID of the user to delete.
+
+
+
+
+
+-
+
+**requestOptions:** `AuthenticatorsClient.RequestOptions`
+
+
+
+
+
+
+
+
+
+
+## Users ConnectedAccounts
+
+client.users.connectedAccounts.list(id, { ...params }) -> core.Page<Management.ConnectedAccount, Management.ListUserConnectedAccountsResponseContent>
+
+-
+
+#### 📝 Description
+
+
+-
+
+
+-
+
+Retrieve all connected accounts associated with the user.
+
+
+
+
+
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+const pageableResponse = await client.users.connectedAccounts.list("id", {
+ from: "from",
+ take: 1,
+});
+for await (const item of pageableResponse) {
+ console.log(item);
+}
+
+// Or you can manually iterate page-by-page
+let page = await client.users.connectedAccounts.list("id", {
+ from: "from",
+ take: 1,
+});
+while (page.hasNextPage()) {
+ page = page.getNextPage();
+}
-```typescript
-await client.users.authenticationMethods.update("id", "authentication_method_id");
+// You can also access the underlying response
+const response = page.response;
```
@@ -26727,15 +28214,7 @@ await client.users.authenticationMethods.update("id", "authentication_method_id"
-
-**id:** `string` — The ID of the user in question.
-
-
-
-
-
--
-
-**authentication_method_id:** `string` — The ID of the authentication method to update.
+**id:** `string` — ID of the user to list connected accounts for.
@@ -26743,7 +28222,7 @@ await client.users.authenticationMethods.update("id", "authentication_method_id"
-
-**request:** `Management.UpdateUserAuthenticationMethodRequestContent`
+**request:** `Management.GetUserConnectedAccountsRequestParameters`
@@ -26751,7 +28230,7 @@ await client.users.authenticationMethods.update("id", "authentication_method_id"
-
-**requestOptions:** `AuthenticationMethodsClient.RequestOptions`
+**requestOptions:** `ConnectedAccountsClient.RequestOptions`
@@ -26762,9 +28241,9 @@ await client.users.authenticationMethods.update("id", "authentication_method_id"
-## Users Authenticators
+## Users EffectivePermissions
-client.users.authenticators.deleteAll(id) -> void
+client.users.effectivePermissions.list(id, { ...params }) -> core.Page<Management.UserEffectivePermissionResponseContent, Management.ListUserEffectivePermissionsResponseContent>
-
@@ -26776,7 +28255,7 @@ await client.users.authenticationMethods.update("id", "authentication_method_id"
-
-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.
+Returns the list of effective permissions for a user, taking into account permissions granted directly to the user, as well as those inherited through roles and group memberships.
@@ -26792,7 +28271,27 @@ Remove all authenticators registered to a given user ID, such as OTP, email, pho
-
```typescript
-await client.users.authenticators.deleteAll("id");
+const pageableResponse = await client.users.effectivePermissions.list("id", {
+ from: "from",
+ take: 1,
+ resource_server_identifier: "resource_server_identifier",
+});
+for await (const item of pageableResponse) {
+ console.log(item);
+}
+
+// Or you can manually iterate page-by-page
+let page = await client.users.effectivePermissions.list("id", {
+ from: "from",
+ take: 1,
+ resource_server_identifier: "resource_server_identifier",
+});
+while (page.hasNextPage()) {
+ page = page.getNextPage();
+}
+
+// You can also access the underlying response
+const response = page.response;
```
@@ -26808,7 +28307,7 @@ await client.users.authenticators.deleteAll("id");
-
-**id:** `string` — ID of the user to delete.
+**id:** `string` — ID of the user to retrieve the permissions for.
@@ -26816,7 +28315,15 @@ await client.users.authenticators.deleteAll("id");
-
-**requestOptions:** `AuthenticatorsClient.RequestOptions`
+**request:** `Management.ListUserEffectivePermissionsRequestParameters`
+
+
+
+
+
+-
+
+**requestOptions:** `EffectivePermissionsClient.RequestOptions`
@@ -26827,9 +28334,9 @@ await client.users.authenticators.deleteAll("id");
-## Users ConnectedAccounts
+## Users EffectiveRoles
-client.users.connectedAccounts.list(id, { ...params }) -> core.Page<Management.ConnectedAccount, Management.ListUserConnectedAccountsResponseContent>
+client.users.effectiveRoles.list(id, { ...params }) -> core.Page<Management.UserEffectiveRole, Management.ListUserEffectiveRolesResponseContent>
-
@@ -26841,7 +28348,7 @@ await client.users.authenticators.deleteAll("id");
-
-Retrieve all connected accounts associated with the user.
+Retrieve detailed list of effective roles for a user, including roles assigned directly and through group memberships.
@@ -26857,7 +28364,7 @@ Retrieve all connected accounts associated with the user.
-
```typescript
-const pageableResponse = await client.users.connectedAccounts.list("id", {
+const pageableResponse = await client.users.effectiveRoles.list("id", {
from: "from",
take: 1,
});
@@ -26866,7 +28373,7 @@ for await (const item of pageableResponse) {
}
// Or you can manually iterate page-by-page
-let page = await client.users.connectedAccounts.list("id", {
+let page = await client.users.effectiveRoles.list("id", {
from: "from",
take: 1,
});
@@ -26891,7 +28398,7 @@ const response = page.response;
-
-**id:** `string` — ID of the user to list connected accounts for.
+**id:** `string` — ID of the user to list effective roles for.
@@ -26899,7 +28406,7 @@ const response = page.response;
-
-**request:** `Management.GetUserConnectedAccountsRequestParameters`
+**request:** `Management.ListUserEffectiveRolesRequestParameters`
@@ -26907,7 +28414,7 @@ const response = page.response;
-
-**requestOptions:** `ConnectedAccountsClient.RequestOptions`
+**requestOptions:** `EffectiveRolesClient.RequestOptions`
@@ -26932,7 +28439,7 @@ const response = page.response;
-
-Retrieve the first multi-factor authentication enrollment that a specific user has confirmed.
+Retrieve the first [multi-factor authentication](https://auth0.com/docs/secure/multi-factor-authentication/multi-factor-authentication-factors) enrollment that a specific user has confirmed.
@@ -27217,19 +28724,21 @@ Link two user accounts together forming a primary and secondary relationship. On
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:
-
+- With the authenticated primary account's JWT in the Authorization header, which has the `update:current_user_identities` scope:
+
+ ```http
+ 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:
+
+ ```http
POST /api/v2/users/PRIMARY_ACCOUNT_USER_ID/identities
Authorization: "Bearer YOUR_API_V2_TOKEN"
{
@@ -27237,14 +28746,13 @@ Note: There are two ways of invoking the endpoint:
"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.
-
-
-
-
-
-
+ ```
+
+ 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
@@ -27312,7 +28820,7 @@ await client.users.identities.link("id");
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.
+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](https://auth0.com/docs/manage-users/user-accounts/user-account-linking/unlink-user-accounts).
@@ -27494,7 +29002,7 @@ const response = page.response;
-
-Invalidate all remembered browsers across all authentication factors for a user.
+Invalidate all remembered browsers across all [authentication factors](https://auth0.com/docs/multifactor-authentication) for a user.
@@ -27557,7 +29065,7 @@ await client.users.multifactor.invalidateRememberBrowser("id");
-
-Remove a multifactor authentication configuration from a user's account. This forces the user to manually reconfigure the multi-factor provider.
+Remove a [multifactor](https://auth0.com/docs/multifactor-authentication) authentication configuration from a user's account. This forces the user to manually reconfigure the multi-factor provider.
@@ -27630,7 +29138,7 @@ await client.users.multifactor.deleteProvider("id", "duo");
-
-Retrieve list of the specified user's current Organization memberships. User must be specified by user ID. For more information, review Auth0 Organizations.
+Retrieve list of the specified user's current Organization memberships. User must be specified by user ID. For more information, review [Auth0 Organizations](https://auth0.com/docs/manage-users/organizations).
@@ -28050,7 +29558,7 @@ await client.users.riskAssessments.clear("id", {
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.
+**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](https://auth0.com/docs/api/management/v2/organizations/get-organization-member-roles).
@@ -28141,9 +29649,9 @@ const response = page.response;
-
-Assign one or more existing user roles to a user. For more information, review Role-Based Access Control.
+Assign one or more existing user roles to a user. For more information, review [Role-Based Access Control](https://auth0.com/docs/manage-users/access-control/rbac).
-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.
+**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](https://auth0.com/docs/api/management/v2/organizations/post-organization-member-roles).
@@ -28218,7 +29726,7 @@ await client.users.roles.assign("id", {
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.
+**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](https://auth0.com/docs/api/management/v2/organizations/delete-organization-member-roles).
@@ -28587,6 +30095,194 @@ await client.users.sessions.delete("user_id");
+## Users EffectivePermissions Sources Roles
+
+client.users.effectivePermissions.sources.roles.list(id, { ...params }) -> core.Page<Management.UserEffectivePermissionRoleSourceResponseContent, Management.ListUserEffectivePermissionRoleSourcesResponseContent>
+
+-
+
+#### 📝 Description
+
+
+-
+
+
+-
+
+Lists the roles which grant the user a given permission, including roles assigned directly to the user and those inherited through group memberships.
+
+
+
+
+
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+const pageableResponse = await client.users.effectivePermissions.sources.roles.list("id", {
+ from: "from",
+ take: 1,
+ resource_server_identifier: "resource_server_identifier",
+ permission_name: "permission_name",
+});
+for await (const item of pageableResponse) {
+ console.log(item);
+}
+
+// Or you can manually iterate page-by-page
+let page = await client.users.effectivePermissions.sources.roles.list("id", {
+ from: "from",
+ take: 1,
+ resource_server_identifier: "resource_server_identifier",
+ permission_name: "permission_name",
+});
+while (page.hasNextPage()) {
+ page = page.getNextPage();
+}
+
+// You can also access the underlying response
+const response = page.response;
+```
+
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**id:** `string` — ID of the user to retrieve the permissions for.
+
+
+
+
+
+-
+
+**request:** `Management.ListUserEffectivePermissionRoleSourceRequestParameters`
+
+
+
+
+
+-
+
+**requestOptions:** `RolesClient.RequestOptions`
+
+
+
+
+
+
+
+
+
+
+## Users EffectiveRoles Sources Groups
+
+client.users.effectiveRoles.sources.groups.list(id, { ...params }) -> core.Page<Management.Group, Management.ListUserRoleSourceGroupsResponseContent>
+
+-
+
+#### 📝 Description
+
+
+-
+
+
+-
+
+Lists the groups that grant a user a specific role.
+
+
+
+
+
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```typescript
+const pageableResponse = await client.users.effectiveRoles.sources.groups.list("id", {
+ role_id: "role_id",
+ from: "from",
+ take: 1,
+});
+for await (const item of pageableResponse) {
+ console.log(item);
+}
+
+// Or you can manually iterate page-by-page
+let page = await client.users.effectiveRoles.sources.groups.list("id", {
+ role_id: "role_id",
+ from: "from",
+ take: 1,
+});
+while (page.hasNextPage()) {
+ page = page.getNextPage();
+}
+
+// You can also access the underlying response
+const response = page.response;
+```
+
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**id:** `string` — ID of the user to list role source groups for.
+
+
+
+
+
+-
+
+**request:** `Management.ListUserRoleSourceGroupsRequestParameters`
+
+
+
+
+
+-
+
+**requestOptions:** `GroupsClient.RequestOptions`
+
+
+
+
+
+
+
+
+
+
## VerifiableCredentials Verification Templates
client.verifiableCredentials.verification.templates.list({ ...params }) -> core.Page<Management.VerifiableCredentialTemplateResponse, Management.ListVerifiableCredentialTemplatesPaginatedResponseContent>
diff --git a/src/management/BaseClient.ts b/src/management/BaseClient.ts
index 47f6a609cd..0bed906654 100644
--- a/src/management/BaseClient.ts
+++ b/src/management/BaseClient.ts
@@ -5,6 +5,12 @@ import * as core from "./core/index.js";
import type { AuthProvider } from "./core/auth/index.js";
import * as environments from "./environments.js";
+export type AuthOption =
+ | false
+ | core.AuthProvider["getAuthRequest"]
+ | core.AuthProvider
+ | BearerAuthProvider.AuthOptions;
+
export type BaseClientOptions = {
environment?: core.Supplier;
/** Specify a custom URL to connect the client to. */
@@ -20,6 +26,8 @@ export type BaseClientOptions = {
fetcher?: core.FetchFunction;
/** Configure logging for the client. */
logging?: core.logging.LogConfig | core.logging.Logger;
+ /** Override auth. Pass false to disable, a function returning auth headers, an AuthProvider, or auth options. */
+ auth?: AuthOption;
} & BearerAuthProvider.AuthOptions;
export interface BaseRequestOptions {
@@ -58,6 +66,23 @@ export function normalizeClientOptionsWithAuth {
const normalized = normalizeClientOptions(options) as NormalizedClientOptionsWithAuth;
+
+ if (options.auth === false) {
+ normalized.authProvider = new core.NoOpAuthProvider();
+ return normalized;
+ }
+ if (options.auth != null) {
+ if (typeof options.auth === "function") {
+ normalized.authProvider = { getAuthRequest: options.auth };
+ return normalized;
+ }
+ if (core.isAuthProvider(options.auth)) {
+ normalized.authProvider = options.auth;
+ return normalized;
+ }
+ Object.assign(normalized, options.auth);
+ }
+
const normalizedWithNoOpAuthProvider = withNoOpAuthProvider(normalized);
normalized.authProvider ??= new BearerAuthProvider(normalizedWithNoOpAuthProvider);
return normalized;
diff --git a/src/management/Client.ts b/src/management/Client.ts
index 85e958942e..0c006b4819 100644
--- a/src/management/Client.ts
+++ b/src/management/Client.ts
@@ -26,6 +26,7 @@ import { LogStreamsClient } from "./api/resources/logStreams/client/Client.js";
import { NetworkAclsClient } from "./api/resources/networkAcls/client/Client.js";
import { OrganizationsClient } from "./api/resources/organizations/client/Client.js";
import { PromptsClient } from "./api/resources/prompts/client/Client.js";
+import { RateLimitPoliciesClient } from "./api/resources/rateLimitPolicies/client/Client.js";
import { RefreshTokensClient } from "./api/resources/refreshTokens/client/Client.js";
import { ResourceServersClient } from "./api/resources/resourceServers/client/Client.js";
import { RiskAssessmentsClient } from "./api/resources/riskAssessments/client/Client.js";
@@ -79,6 +80,7 @@ export class ManagementClient {
protected _networkAcls: NetworkAclsClient | undefined;
protected _organizations: OrganizationsClient | undefined;
protected _prompts: PromptsClient | undefined;
+ protected _rateLimitPolicies: RateLimitPoliciesClient | undefined;
protected _refreshTokens: RefreshTokensClient | undefined;
protected _resourceServers: ResourceServersClient | undefined;
protected _roles: RolesClient | undefined;
@@ -194,6 +196,10 @@ export class ManagementClient {
return (this._prompts ??= new PromptsClient(this._options));
}
+ public get rateLimitPolicies(): RateLimitPoliciesClient {
+ return (this._rateLimitPolicies ??= new RateLimitPoliciesClient(this._options));
+ }
+
public get refreshTokens(): RefreshTokensClient {
return (this._refreshTokens ??= new RefreshTokensClient(this._options));
}
diff --git a/src/management/api/requests/requests.ts b/src/management/api/requests/requests.ts
index 3aa721d8c0..b4511290e0 100644
--- a/src/management/api/requests/requests.ts
+++ b/src/management/api/requests/requests.ts
@@ -286,6 +286,7 @@ export interface CreateClientRequestContent {
/** Initiate login uri, must be https */
initiate_login_uri?: string;
native_social_login?: Management.NativeSocialLogin;
+ fedcm_login?: Management.FedCmLogin;
refresh_token?: Management.ClientRefreshTokenConfiguration | null;
default_organization?: Management.ClientDefaultOrganization | null;
organization_usage?: Management.ClientOrganizationUsageEnum;
@@ -420,6 +421,7 @@ export interface UpdateClientRequestContent {
/** Initiate login uri, must be https */
initiate_login_uri?: string;
native_social_login?: Management.NativeSocialLogin;
+ fedcm_login?: Management.FedCmLogin;
refresh_token?: Management.ClientRefreshTokenConfiguration | null;
default_organization?: Management.ClientDefaultOrganization | null;
organization_usage?: Management.ClientOrganizationUsagePatchEnum | null;
@@ -1275,6 +1277,60 @@ export interface UpdateSettingsRequestContent {
webauthn_platform_first_factor?: boolean | null;
}
+/**
+ * @example
+ * {
+ * resource: "oauth_authentication_api",
+ * consumer: "client",
+ * consumer_selector: "consumer_selector",
+ * take: 1,
+ * from: "from"
+ * }
+ */
+export interface ListRateLimitPoliciesRequestParameters {
+ /** The API protected by the Rate Limit Policy. */
+ resource?: Management.RateLimitPolicyResourceEnum | null;
+ /** The consumer to which the rate limit policy applies. */
+ consumer?: Management.RateLimitPolicyConsumerEnum | null;
+ /** Identifier or category within the consumer to which the policy applies. Supported values: `client_id:` to target a specific client by ID, `client_id:` to target a CIMD client by URI, `cimd_clients` to target all CIMD clients, `third_party_clients` to target all third-party clients, or `default` to apply the policy to any consumer identifier not otherwise explicitly targeted. */
+ consumer_selector?: string | null;
+ /** Number of results per page. Defaults to 50. */
+ take?: number | null;
+ /** Cursor for pagination. */
+ from?: string | null;
+}
+
+/**
+ * @example
+ * {
+ * resource: "oauth_authentication_api",
+ * consumer: "client",
+ * consumer_selector: "consumer_selector",
+ * configuration: {
+ * action: "allow"
+ * }
+ * }
+ */
+export interface CreateRateLimitPolicyRequestContent {
+ resource: Management.RateLimitPolicyResourceEnum;
+ consumer: Management.RateLimitPolicyConsumerEnum;
+ /** Identifier or category within the consumer to which the policy applies. Supported values: `client_id:` to target a specific client by ID, `client_id:` to target a CIMD client by URI, `cimd_clients` to target all CIMD clients, `third_party_clients` to target all third-party clients, or `default` to apply the policy to any consumer identifier not otherwise explicitly targeted. */
+ consumer_selector: string;
+ configuration: Management.RateLimitPolicyConfiguration;
+}
+
+/**
+ * @example
+ * {
+ * configuration: {
+ * action: "allow"
+ * }
+ * }
+ */
+export interface PatchRateLimitPolicyRequestContent {
+ configuration: Management.PatchRateLimitPolicyConfigurationRequestContent;
+}
+
/**
* @example
* {
@@ -2800,6 +2856,42 @@ export interface GetGroupMembersRequestParameters {
take?: number | null;
}
+/**
+ * @example
+ * {
+ * from: "from",
+ * take: 1
+ * }
+ */
+export interface ListGroupRolesRequestParameters {
+ /** Optional Id from which to start selection. */
+ from?: string | null;
+ /** Number of results per page. Defaults to 50. */
+ take?: number | null;
+}
+
+/**
+ * @example
+ * {
+ * roles: ["roles"]
+ * }
+ */
+export interface CreateGroupRolesRequestParameters {
+ /** Array of role IDs to assign to the group. */
+ roles: string[];
+}
+
+/**
+ * @example
+ * {
+ * roles: ["roles"]
+ * }
+ */
+export interface DeleteGroupRolesRequestContent {
+ /** Array of role IDs to remove from the group. */
+ roles: string[];
+}
+
/**
* @example
* {
@@ -3419,6 +3511,70 @@ export interface DeleteOrganizationMembersRequestContent {
members: string[];
}
+/**
+ * @example
+ * {
+ * from: "from",
+ * take: 1
+ * }
+ */
+export interface ListOrganizationGroupsRequestParameters {
+ /** Optional Id from which to start selection. */
+ from?: string | null;
+ /** Number of results per page. Defaults to 50. */
+ take?: number | null;
+}
+
+/**
+ * @example
+ * {
+ * from: "from",
+ * take: 1
+ * }
+ */
+export interface ListOrganizationGroupRolesRequestParameters {
+ /** Optional Id from which to start selection. */
+ from?: string | null;
+ /** Number of results per page. Defaults to 50. */
+ take?: number | null;
+}
+
+/**
+ * @example
+ * {
+ * roles: ["roles"]
+ * }
+ */
+export interface CreateOrganizationGroupRolesRequestContent {
+ /** Array of role IDs to assign to organization group. */
+ roles: string[];
+}
+
+/**
+ * @example
+ * {
+ * roles: ["roles"]
+ * }
+ */
+export interface DeleteOrganizationGroupRolesRequestContent {
+ /** Array of role IDs to delete from organization group. */
+ roles: string[];
+}
+
+/**
+ * @example
+ * {
+ * from: "from",
+ * take: 1
+ * }
+ */
+export interface ListOrganizationMemberEffectiveRolesRequestParameters {
+ /** Optional Id from which to start selection. */
+ from?: string | null;
+ /** Number of results per page. Defaults to 50. */
+ take?: number | null;
+}
+
/**
* @example
* {
@@ -3458,6 +3614,23 @@ export interface DeleteOrganizationMemberRolesRequestContent {
roles: string[];
}
+/**
+ * @example
+ * {
+ * from: "from",
+ * take: 1,
+ * role_id: "role_id"
+ * }
+ */
+export interface ListOrganizationMemberRoleSourceGroupsRequestParameters {
+ /** Optional Id from which to start selection. */
+ from?: string | null;
+ /** Number of results per page. Defaults to 50. */
+ take?: number | null;
+ /** The role ID to get group sources for. */
+ role_id: string;
+}
+
/**
* @example
* {
@@ -3542,6 +3715,42 @@ export interface UpdateRiskAssessmentsSettingsNewDeviceRequestContent {
remember_for: number;
}
+/**
+ * @example
+ * {
+ * from: "from",
+ * take: 1
+ * }
+ */
+export interface ListRoleGroupsParameters {
+ /** Optional Id from which to start selection. */
+ from?: string | null;
+ /** Number of results per page. Defaults to 50. */
+ take?: number | null;
+}
+
+/**
+ * @example
+ * {
+ * groups: ["groups"]
+ * }
+ */
+export interface AssignRoleGroupsRequestContent {
+ /** Array of group IDs to assign to the role. */
+ groups: string[];
+}
+
+/**
+ * @example
+ * {
+ * groups: ["groups"]
+ * }
+ */
+export interface DeleteRoleGroupsRequestContent {
+ /** Array of group IDs to remove from the role. */
+ groups: string[];
+}
+
/**
* @example
* {
@@ -3717,6 +3926,7 @@ export interface UpdateTenantSettingsRequestContent {
/** Whether Phone Consolidated Experience is enabled for this tenant. */
phone_consolidated_experience?: boolean;
dynamic_client_registration_security_mode?: Management.TenantSettingsDynamicClientRegistrationSecurityMode;
+ country_codes?: Management.TenantSettingsCountryCodes | null;
}
/**
@@ -3799,6 +4009,37 @@ export interface GetUserConnectedAccountsRequestParameters {
take?: number | null;
}
+/**
+ * @example
+ * {
+ * from: "from",
+ * take: 1,
+ * resource_server_identifier: "resource_server_identifier"
+ * }
+ */
+export interface ListUserEffectivePermissionsRequestParameters {
+ /** Optional Id from which to start selection. */
+ from?: string | null;
+ /** Number of results per page. Defaults to 50. */
+ take?: number | null;
+ /** The identifier of the resource server for which to calculate user permissions. */
+ resource_server_identifier: string;
+}
+
+/**
+ * @example
+ * {
+ * from: "from",
+ * take: 1
+ * }
+ */
+export interface ListUserEffectiveRolesRequestParameters {
+ /** Optional Id from which to start selection. */
+ from?: string | null;
+ /** Number of results per page. Defaults to 50. */
+ take?: number | null;
+}
+
/**
* @example
* {
@@ -3996,6 +4237,43 @@ export interface ListUserSessionsRequestParameters {
take?: number | null;
}
+/**
+ * @example
+ * {
+ * from: "from",
+ * take: 1,
+ * resource_server_identifier: "resource_server_identifier",
+ * permission_name: "permission_name"
+ * }
+ */
+export interface ListUserEffectivePermissionRoleSourceRequestParameters {
+ /** Optional Id from which to start selection. */
+ from?: string | null;
+ /** Number of results per page. Defaults to 50. */
+ take?: number | null;
+ /** The identifier of the resource server for which to calculate user permissions. */
+ resource_server_identifier: string;
+ /** Name of this permission */
+ permission_name: string;
+}
+
+/**
+ * @example
+ * {
+ * role_id: "role_id",
+ * from: "from",
+ * take: 1
+ * }
+ */
+export interface ListUserRoleSourceGroupsRequestParameters {
+ /** ID of the role to get source groups for. */
+ role_id: string;
+ /** Optional Id from which to start selection. */
+ from?: string | null;
+ /** Number of results per page. Defaults to 50. */
+ take?: number | null;
+}
+
/**
* @example
* {
diff --git a/src/management/api/resources/actions/client/Client.ts b/src/management/api/resources/actions/client/Client.ts
index 06537046ff..c75fb31590 100644
--- a/src/management/api/resources/actions/client/Client.ts
+++ b/src/management/api/resources/actions/client/Client.ts
@@ -410,7 +410,7 @@ export class ActionsClient {
}
/**
- * 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.
+ * 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.
*
* @param {string} id - The id of the action to update.
* @param {Management.UpdateActionRequestContent} request
diff --git a/src/management/api/resources/branding/resources/templates/client/Client.ts b/src/management/api/resources/branding/resources/templates/client/Client.ts
index 60441d3a54..7e58c0bd08 100644
--- a/src/management/api/resources/branding/resources/templates/client/Client.ts
+++ b/src/management/api/resources/branding/resources/templates/client/Client.ts
@@ -104,28 +104,28 @@ export class TemplatesClient {
/**
* Update the Universal Login branding template.
*
- * When content-type header is set to application/json:
- *
+ * When `content-type` header is set to `application/json`:
+ *
+ * ```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>"
+ * "template": "{% assign resolved_dir = dir | default: \"auto\" %}{%- auth0:head -%}{%- auth0:widget -%}"
* }
- *
+ * ```
+ *
+ * When `content-type` header is set to `text/html`:
*
- *
- * When content-type header is set to text/html:
- *
- *
- * <!DOCTYPE html>
+ * ```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>
- *
+ *
+ *
+ * ```
*
* @param {Management.UpdateUniversalLoginTemplateRequestContent} request
* @param {TemplatesClient.RequestOptions} requestOptions - Request-specific configuration.
diff --git a/src/management/api/resources/clients/client/Client.ts b/src/management/api/resources/clients/client/Client.ts
index 9d9583822e..7f7d521e24 100644
--- a/src/management/api/resources/clients/client/Client.ts
+++ b/src/management/api/resources/clients/client/Client.ts
@@ -385,10 +385,19 @@ export class ClientsClient {
}
/**
+ * Idempotent registration for Client ID Metadata Document (CIMD) clients.
+ * Uses external_client_id as the unique identifier for upsert operations.
*
- * Idempotent registration for Client ID Metadata Document (CIMD) clients.
- * Uses external_client_id as the unique identifier for upsert operations.
- * **Create:** Returns 201 when a new client is created (requires \
+ * Create: Returns 201 when a new client is created (requires create:clients scope).
+ * Update: Returns 200 when an existing client is updated (requires update:clients scope).
+ *
+ * This endpoint automatically:
+ *
+ * - Fetches and validates the metadata document
+ * - Maps CIMD fields to Auth0 client configuration
+ * - Creates/rotates credentials from the JWKS
+ * - Enforces CIMD security policies (HTTPS-only, no shared secrets)
+ *
*
* @param {Management.RegisterCimdClientRequestContent} request
* @param {ClientsClient.RequestOptions} requestOptions - Request-specific configuration.
diff --git a/src/management/api/resources/connections/client/Client.ts b/src/management/api/resources/connections/client/Client.ts
index 8488280282..7a9b590dd0 100644
--- a/src/management/api/resources/connections/client/Client.ts
+++ b/src/management/api/resources/connections/client/Client.ts
@@ -53,25 +53,23 @@ export class ConnectionsClient {
}
/**
- * 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.
+ * Retrieves detailed list of all [connections](https://auth0.com/docs/authenticate/identity-providers) 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
- *
+ *
+ * - Offset pagination
+ * - Checkpoint pagination
*
* Checkpoint pagination must be used if you need to retrieve more than 1000 connections.
*
- * Checkpoint Pagination
+ * **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.
+ * - `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.
*
* @param {Management.ListConnectionsQueryParameters} request
* @param {ConnectionsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -191,9 +189,9 @@ export class ConnectionsClient {
}
/**
- * Creates a new connection according to the JSON object received in body.
+ * Creates a new connection according to the JSON object received in `body`.
*
- * Note: If a connection with the same name was recently deleted and had a large number of associated users, the deletion may still be processing. Creating a new connection with that name before the deletion completes may fail or produce unexpected results.
+ * **Note:** If a connection with the same name was recently deleted and had a large number of associated users, the deletion may still be processing. Creating a new connection with that name before the deletion completes may fail or produce unexpected results.
*
* @param {Management.CreateConnectionRequestContent} request
* @param {ConnectionsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -278,7 +276,7 @@ export class ConnectionsClient {
}
/**
- * Retrieve details for a specified connection along with options that can be used for identity provider configuration.
+ * Retrieve details for a specified [connection](https://auth0.com/docs/authenticate/identity-providers) along with options that can be used for identity provider configuration.
*
* @param {string} id - The id of the connection to retrieve
* @param {Management.GetConnectionRequestParameters} request
@@ -372,9 +370,9 @@ export class ConnectionsClient {
}
/**
- * Removes a specific connection from your tenant. This action cannot be undone. Once removed, users can no longer use this connection to authenticate.
+ * Removes a specific [connection](https://auth0.com/docs/authenticate/identity-providers) from your tenant. This action cannot be undone. Once removed, users can no longer use this connection to authenticate.
*
- * Note: If your connection has a large amount of users associated with it, please be aware that this operation can be long running after the response is returned and may impact concurrent create connection requests, if they use an identical connection name.
+ * **Note:** If your connection has a large amount of users associated with it, please be aware that this operation can be long running after the response is returned and may impact concurrent [create connection](https://auth0.com/docs/api/management/v2/connections/post-connections) requests, if they use an identical connection name.
*
* @param {string} id - The id of the connection to delete
* @param {ConnectionsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -444,9 +442,9 @@ export class ConnectionsClient {
}
/**
- * Update details for a specific connection, including option properties for identity provider configuration.
+ * Update details for a specific [connection](https://auth0.com/docs/authenticate/identity-providers), 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.
+ * **Note**: If you use the `options` parameter, the entire `options` object is overridden. To avoid partial data or other issues, ensure all parameters are present when using this option.
*
* @param {string} id - The id of the connection to update
* @param {Management.UpdateConnectionRequestContent} request
@@ -534,7 +532,7 @@ export class ConnectionsClient {
}
/**
- * 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
+ * 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
*
* @param {string} id - ID of the connection to check
* @param {ConnectionsClient.RequestOptions} requestOptions - Request-specific configuration.
diff --git a/src/management/api/resources/connections/resources/clients/client/Client.ts b/src/management/api/resources/connections/resources/clients/client/Client.ts
index 22eba4c29a..322dce0a5b 100644
--- a/src/management/api/resources/connections/resources/clients/client/Client.ts
+++ b/src/management/api/resources/connections/resources/clients/client/Client.ts
@@ -23,9 +23,9 @@ export class ClientsClient {
}
/**
- * Retrieve all clients that have the specified connection enabled.
+ * Retrieve all clients that have the specified [connection](https://auth0.com/docs/authenticate/identity-providers) 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.
+ * **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.
*
* @param {string} id - The id of the connection for which enabled clients are to be retrieved
* @param {Management.GetConnectionEnabledClientsRequestParameters} request
diff --git a/src/management/api/resources/connections/resources/scimConfiguration/client/Client.ts b/src/management/api/resources/connections/resources/scimConfiguration/client/Client.ts
index 001d6da517..4319e0ffe0 100644
--- a/src/management/api/resources/connections/resources/scimConfiguration/client/Client.ts
+++ b/src/management/api/resources/connections/resources/scimConfiguration/client/Client.ts
@@ -139,7 +139,7 @@ export class ScimConfigurationClient {
}
/**
- * Retrieves a scim configuration by its connectionId.
+ * Retrieves a scim configuration by its `connectionId`.
*
* @param {string} id - The id of the connection to retrieve its SCIM configuration
* @param {ScimConfigurationClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -295,7 +295,7 @@ export class ScimConfigurationClient {
}
/**
- * Deletes a scim configuration by its connectionId.
+ * Deletes a scim configuration by its `connectionId`.
*
* @param {string} id - The id of the connection to delete its SCIM configuration
* @param {ScimConfigurationClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -364,7 +364,7 @@ export class ScimConfigurationClient {
}
/**
- * Update a scim configuration by its connectionId.
+ * Update a scim configuration by its `connectionId`.
*
* @param {string} id - The id of the connection to update its SCIM configuration
* @param {Management.UpdateScimConfigurationRequestContent} request
@@ -448,7 +448,7 @@ export class ScimConfigurationClient {
}
/**
- * Retrieves a scim configuration's default mapping by its connectionId.
+ * Retrieves a scim configuration's default mapping by its `connectionId`.
*
* @param {string} id - The id of the connection to retrieve its default SCIM mapping
* @param {ScimConfigurationClient.RequestOptions} requestOptions - Request-specific configuration.
diff --git a/src/management/api/resources/connections/resources/scimConfiguration/resources/tokens/client/Client.ts b/src/management/api/resources/connections/resources/scimConfiguration/resources/tokens/client/Client.ts
index 89bf853f5b..33f1032b0b 100644
--- a/src/management/api/resources/connections/resources/scimConfiguration/resources/tokens/client/Client.ts
+++ b/src/management/api/resources/connections/resources/scimConfiguration/resources/tokens/client/Client.ts
@@ -26,7 +26,7 @@ export class TokensClient {
}
/**
- * Retrieves all scim tokens by its connection id.
+ * Retrieves all scim tokens by its connection `id`.
*
* @param {string} id - The id of the connection to retrieve its SCIM configuration
* @param {TokensClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -185,7 +185,7 @@ export class TokensClient {
}
/**
- * Deletes a scim token by its connection id and tokenId.
+ * Deletes a scim token by its connection `id` and `tokenId`.
*
* @param {string} id - The connection id that owns the SCIM token to delete
* @param {string} tokenId - The id of the scim token to delete
diff --git a/src/management/api/resources/customDomains/client/Client.ts b/src/management/api/resources/customDomains/client/Client.ts
index 7cb1f957fa..bae72fb255 100644
--- a/src/management/api/resources/customDomains/client/Client.ts
+++ b/src/management/api/resources/customDomains/client/Client.ts
@@ -23,7 +23,7 @@ export class CustomDomainsClient {
}
/**
- * Retrieve details on custom domains.
+ * Retrieve details on [custom domains](https://auth0.com/docs/custom-domains).
*
* @param {Management.ListCustomDomainsRequestParameters} request
* @param {CustomDomainsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -122,7 +122,6 @@ export class CustomDomainsClient {
* - custom_client_ip_header
* - tls_policy
*
- *
* TLS Policies:
*
* - recommended - for modern usage this includes TLS 1.2 only
@@ -511,23 +510,31 @@ export class CustomDomainsClient {
* - 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
+ * **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" }
+ * ```json
+ * { "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:
+ *
+ * ```json
+ * { "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.
+ * - The `compatible` TLS policy is no longer supported.
*
* @param {string} id - The id of the custom domain to update
* @param {Management.UpdateCustomDomainRequestContent} request
@@ -690,12 +697,12 @@ export class CustomDomainsClient {
/**
* 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.
+ * 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.
+ * 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.
+ * [Learn more](https://auth0.com/docs/custom-domains#step-2-verify-ownership) about verifying custom domains that use Auth0 Managed certificates.
+ * [Learn more](https://auth0.com/docs/custom-domains/self-managed-certificates#step-2-verify-ownership) about verifying custom domains that use Self Managed certificates.
*
* @param {string} id - ID of the custom domain to verify.
* @param {CustomDomainsClient.RequestOptions} requestOptions - Request-specific configuration.
diff --git a/src/management/api/resources/deviceCredentials/client/Client.ts b/src/management/api/resources/deviceCredentials/client/Client.ts
index 9b231c7e9d..4bf55e07f2 100644
--- a/src/management/api/resources/deviceCredentials/client/Client.ts
+++ b/src/management/api/resources/deviceCredentials/client/Client.ts
@@ -23,7 +23,7 @@ export class DeviceCredentialsClient {
}
/**
- * Retrieve device credential information (public_key, refresh_token, or rotating_refresh_token) associated with a specific user.
+ * Retrieve device credential information (`public_key`, `refresh_token`, or `rotating_refresh_token`) associated with a specific user.
*
* @param {Management.ListDeviceCredentialsRequestParameters} request
* @param {DeviceCredentialsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -154,9 +154,9 @@ export class DeviceCredentialsClient {
}
/**
- * 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.
+ * 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.
+ * When refresh token rotation is enabled, the endpoint becomes consistent. For more information, read [Signing Keys](https://auth0.com/docs/get-started/tenant-settings/signing-keys).
*
* @param {Management.CreatePublicKeyDeviceCredentialRequestContent} request
* @param {DeviceCredentialsClient.RequestOptions} requestOptions - Request-specific configuration.
diff --git a/src/management/api/resources/groups/client/Client.ts b/src/management/api/resources/groups/client/Client.ts
index a82d823426..acc5b377fc 100644
--- a/src/management/api/resources/groups/client/Client.ts
+++ b/src/management/api/resources/groups/client/Client.ts
@@ -9,6 +9,7 @@ import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCode
import * as errors from "../../../../errors/index.js";
import * as Management from "../../../index.js";
import { MembersClient } from "../resources/members/client/Client.js";
+import { RolesClient } from "../resources/roles/client/Client.js";
export declare namespace GroupsClient {
export type Options = BaseClientOptions;
@@ -19,6 +20,7 @@ export declare namespace GroupsClient {
export class GroupsClient {
protected readonly _options: NormalizedClientOptionsWithAuth;
protected _members: MembersClient | undefined;
+ protected _roles: RolesClient | undefined;
constructor(options: GroupsClient.Options) {
this._options = normalizeClientOptionsWithAuth(options);
@@ -28,6 +30,10 @@ export class GroupsClient {
return (this._members ??= new MembersClient(this._options));
}
+ public get roles(): RolesClient {
+ return (this._roles ??= new RolesClient(this._options));
+ }
+
/**
* List all groups in your tenant.
*
diff --git a/src/management/api/resources/groups/resources/index.ts b/src/management/api/resources/groups/resources/index.ts
index 88a930fad1..0e2320c75a 100644
--- a/src/management/api/resources/groups/resources/index.ts
+++ b/src/management/api/resources/groups/resources/index.ts
@@ -1 +1,2 @@
export * as members from "./members/index.js";
+export * as roles from "./roles/index.js";
diff --git a/src/management/api/resources/groups/resources/roles/client/Client.ts b/src/management/api/resources/groups/resources/roles/client/Client.ts
new file mode 100644
index 0000000000..f99606fd91
--- /dev/null
+++ b/src/management/api/resources/groups/resources/roles/client/Client.ts
@@ -0,0 +1,296 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js";
+import { normalizeClientOptionsWithAuth, type NormalizedClientOptionsWithAuth } from "../../../../../../BaseClient.js";
+import * as core from "../../../../../../core/index.js";
+import { mergeHeaders } from "../../../../../../core/headers.js";
+import * as environments from "../../../../../../environments.js";
+import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js";
+import * as errors from "../../../../../../errors/index.js";
+import * as Management from "../../../../../index.js";
+
+export declare namespace RolesClient {
+ export type Options = BaseClientOptions;
+
+ export interface RequestOptions extends BaseRequestOptions {}
+}
+
+export class RolesClient {
+ protected readonly _options: NormalizedClientOptionsWithAuth;
+
+ constructor(options: RolesClient.Options) {
+ this._options = normalizeClientOptionsWithAuth(options);
+ }
+
+ /**
+ * Lists the roles assigned to a group.
+ *
+ * @param {string} id - Unique identifier for the group (service-generated).
+ * @param {Management.ListGroupRolesRequestParameters} request
+ * @param {RolesClient.RequestOptions} requestOptions - Request-specific configuration.
+ *
+ * @throws {@link Management.BadRequestError}
+ * @throws {@link Management.UnauthorizedError}
+ * @throws {@link Management.ForbiddenError}
+ * @throws {@link Management.TooManyRequestsError}
+ *
+ * @example
+ * await client.groups.roles.list("id", {
+ * from: "from",
+ * take: 1
+ * })
+ */
+ public async list(
+ id: string,
+ request: Management.ListGroupRolesRequestParameters = {},
+ requestOptions?: RolesClient.RequestOptions,
+ ): Promise> {
+ const list = core.HttpResponsePromise.interceptFunction(
+ async (
+ request: Management.ListGroupRolesRequestParameters,
+ ): Promise> => {
+ const { from: from_, take = 50 } = request;
+ const _queryParams: Record = {
+ from: from_,
+ take,
+ };
+ const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();
+ let _headers: core.Fetcher.Args["headers"] = mergeHeaders(
+ _authRequest.headers,
+ this._options?.headers,
+ requestOptions?.headers,
+ );
+ const _response = await (this._options.fetcher ?? core.fetcher)({
+ url: core.url.join(
+ (await core.Supplier.get(this._options.baseUrl)) ??
+ (await core.Supplier.get(this._options.environment)) ??
+ environments.ManagementEnvironment.Default,
+ `groups/${core.url.encodePathParam(id)}/roles`,
+ ),
+ method: "GET",
+ headers: _headers,
+ queryString: core.url
+ .queryBuilder()
+ .addMany(_queryParams)
+ .mergeAdditional(requestOptions?.queryParams)
+ .build(),
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
+ abortSignal: requestOptions?.abortSignal,
+ fetchFn: this._options?.fetch,
+ logging: this._options.logging,
+ });
+ if (_response.ok) {
+ return {
+ data: _response.body as Management.ListGroupRolesResponseContent,
+ rawResponse: _response.rawResponse,
+ };
+ }
+ if (_response.error.reason === "status-code") {
+ switch (_response.error.statusCode) {
+ case 400:
+ throw new Management.BadRequestError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ case 401:
+ throw new Management.UnauthorizedError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ case 403:
+ throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse);
+ case 429:
+ throw new Management.TooManyRequestsError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ default:
+ throw new errors.ManagementError({
+ statusCode: _response.error.statusCode,
+ body: _response.error.body,
+ rawResponse: _response.rawResponse,
+ });
+ }
+ }
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/groups/{id}/roles");
+ },
+ );
+ const dataWithRawResponse = await list(request).withRawResponse();
+ return new core.Page({
+ response: dataWithRawResponse.data,
+ rawResponse: dataWithRawResponse.rawResponse,
+ hasNextPage: (response) =>
+ response?.next != null && !(typeof response?.next === "string" && response?.next === ""),
+ getItems: (response) => response?.roles ?? [],
+ loadPage: (response) => {
+ return list(core.setObjectProperty(request, "from", response?.next));
+ },
+ });
+ }
+
+ /**
+ * Assign one or more roles to a specified group.
+ *
+ * @param {string} id - Unique identifier for the group (service-generated).
+ * @param {Management.CreateGroupRolesRequestParameters} request
+ * @param {RolesClient.RequestOptions} requestOptions - Request-specific configuration.
+ *
+ * @throws {@link Management.BadRequestError}
+ * @throws {@link Management.UnauthorizedError}
+ * @throws {@link Management.ForbiddenError}
+ * @throws {@link Management.NotFoundError}
+ * @throws {@link Management.TooManyRequestsError}
+ *
+ * @example
+ * await client.groups.roles.create("id", {
+ * roles: ["roles"]
+ * })
+ */
+ public create(
+ id: string,
+ request: Management.CreateGroupRolesRequestParameters,
+ requestOptions?: RolesClient.RequestOptions,
+ ): core.HttpResponsePromise {
+ return core.HttpResponsePromise.fromPromise(this.__create(id, request, requestOptions));
+ }
+
+ private async __create(
+ id: string,
+ request: Management.CreateGroupRolesRequestParameters,
+ requestOptions?: RolesClient.RequestOptions,
+ ): Promise> {
+ const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();
+ let _headers: core.Fetcher.Args["headers"] = mergeHeaders(
+ _authRequest.headers,
+ this._options?.headers,
+ requestOptions?.headers,
+ );
+ const _response = await (this._options.fetcher ?? core.fetcher)({
+ url: core.url.join(
+ (await core.Supplier.get(this._options.baseUrl)) ??
+ (await core.Supplier.get(this._options.environment)) ??
+ environments.ManagementEnvironment.Default,
+ `groups/${core.url.encodePathParam(id)}/roles`,
+ ),
+ method: "POST",
+ headers: _headers,
+ contentType: "application/json",
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
+ requestType: "json",
+ body: request,
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
+ abortSignal: requestOptions?.abortSignal,
+ fetchFn: this._options?.fetch,
+ logging: this._options.logging,
+ });
+ if (_response.ok) {
+ return { data: undefined, rawResponse: _response.rawResponse };
+ }
+
+ if (_response.error.reason === "status-code") {
+ switch (_response.error.statusCode) {
+ case 400:
+ throw new Management.BadRequestError(_response.error.body as unknown, _response.rawResponse);
+ case 401:
+ throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse);
+ case 403:
+ throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse);
+ case 404:
+ throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse);
+ case 429:
+ throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse);
+ default:
+ throw new errors.ManagementError({
+ statusCode: _response.error.statusCode,
+ body: _response.error.body,
+ rawResponse: _response.rawResponse,
+ });
+ }
+ }
+
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/groups/{id}/roles");
+ }
+
+ /**
+ * Unassign one or more roles from a specified group.
+ *
+ * @param {string} id - Unique identifier for the group (service-generated).
+ * @param {Management.DeleteGroupRolesRequestContent} request
+ * @param {RolesClient.RequestOptions} requestOptions - Request-specific configuration.
+ *
+ * @throws {@link Management.BadRequestError}
+ * @throws {@link Management.UnauthorizedError}
+ * @throws {@link Management.ForbiddenError}
+ * @throws {@link Management.TooManyRequestsError}
+ *
+ * @example
+ * await client.groups.roles.delete("id", {
+ * roles: ["roles"]
+ * })
+ */
+ public delete(
+ id: string,
+ request: Management.DeleteGroupRolesRequestContent,
+ requestOptions?: RolesClient.RequestOptions,
+ ): core.HttpResponsePromise {
+ return core.HttpResponsePromise.fromPromise(this.__delete(id, request, requestOptions));
+ }
+
+ private async __delete(
+ id: string,
+ request: Management.DeleteGroupRolesRequestContent,
+ requestOptions?: RolesClient.RequestOptions,
+ ): Promise> {
+ const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();
+ let _headers: core.Fetcher.Args["headers"] = mergeHeaders(
+ _authRequest.headers,
+ this._options?.headers,
+ requestOptions?.headers,
+ );
+ const _response = await (this._options.fetcher ?? core.fetcher)({
+ url: core.url.join(
+ (await core.Supplier.get(this._options.baseUrl)) ??
+ (await core.Supplier.get(this._options.environment)) ??
+ environments.ManagementEnvironment.Default,
+ `groups/${core.url.encodePathParam(id)}/roles`,
+ ),
+ method: "DELETE",
+ headers: _headers,
+ contentType: "application/json",
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
+ requestType: "json",
+ body: request,
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
+ abortSignal: requestOptions?.abortSignal,
+ fetchFn: this._options?.fetch,
+ logging: this._options.logging,
+ });
+ if (_response.ok) {
+ return { data: undefined, rawResponse: _response.rawResponse };
+ }
+
+ if (_response.error.reason === "status-code") {
+ switch (_response.error.statusCode) {
+ case 400:
+ throw new Management.BadRequestError(_response.error.body as unknown, _response.rawResponse);
+ case 401:
+ throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse);
+ case 403:
+ throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse);
+ case 429:
+ throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse);
+ default:
+ throw new errors.ManagementError({
+ statusCode: _response.error.statusCode,
+ body: _response.error.body,
+ rawResponse: _response.rawResponse,
+ });
+ }
+ }
+
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/groups/{id}/roles");
+ }
+}
diff --git a/src/management/api/resources/groups/resources/roles/client/index.ts b/src/management/api/resources/groups/resources/roles/client/index.ts
new file mode 100644
index 0000000000..cb0ff5c3b5
--- /dev/null
+++ b/src/management/api/resources/groups/resources/roles/client/index.ts
@@ -0,0 +1 @@
+export {};
diff --git a/src/management/api/resources/groups/resources/roles/index.ts b/src/management/api/resources/groups/resources/roles/index.ts
new file mode 100644
index 0000000000..914b8c3c72
--- /dev/null
+++ b/src/management/api/resources/groups/resources/roles/index.ts
@@ -0,0 +1 @@
+export * from "./client/index.js";
diff --git a/src/management/api/resources/guardian/resources/enrollments/client/Client.ts b/src/management/api/resources/guardian/resources/enrollments/client/Client.ts
index bc5e48bc7c..76dd00256d 100644
--- a/src/management/api/resources/guardian/resources/enrollments/client/Client.ts
+++ b/src/management/api/resources/guardian/resources/enrollments/client/Client.ts
@@ -23,10 +23,7 @@ export class EnrollmentsClient {
}
/**
- * 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.
+ * Create a [multi-factor authentication (MFA) enrollment ticket](https://auth0.com/docs/secure/multi-factor-authentication/auth0-guardian/create-custom-enrollment-tickets), 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.
*
* @param {Management.CreateGuardianEnrollmentTicketRequestContent} request
* @param {EnrollmentsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -180,7 +177,7 @@ export class EnrollmentsClient {
}
/**
- * 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.
+ * 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](https://auth0.com/docs/secure/multi-factor-authentication/reset-user-mfa).
*
* @param {string} id - ID of the enrollment to be deleted.
* @param {EnrollmentsClient.RequestOptions} requestOptions - Request-specific configuration.
diff --git a/src/management/api/resources/guardian/resources/factors/resources/pushNotification/client/Client.ts b/src/management/api/resources/guardian/resources/factors/resources/pushNotification/client/Client.ts
index c0e6110eae..7bad087b68 100644
--- a/src/management/api/resources/guardian/resources/factors/resources/pushNotification/client/Client.ts
+++ b/src/management/api/resources/guardian/resources/factors/resources/pushNotification/client/Client.ts
@@ -587,7 +587,7 @@ export class PushNotificationClient {
}
/**
- * 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.
+ * 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](https://auth0.com/docs/secure/multi-factor-authentication/multi-factor-authentication-factors/configure-push-notifications-for-mfa).
*
* @param {PushNotificationClient.RequestOptions} requestOptions - Request-specific configuration.
*
@@ -662,7 +662,7 @@ export class PushNotificationClient {
}
/**
- * Configure the AWS SNS push notification provider configuration (subscription required).
+ * Configure the [AWS SNS push notification provider configuration](https://auth0.com/docs/multifactor-authentication/developer/sns-configuration) (subscription required).
*
* @param {Management.SetGuardianFactorsProviderPushNotificationSnsRequestContent} request
* @param {PushNotificationClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -743,7 +743,7 @@ export class PushNotificationClient {
}
/**
- * Configure the AWS SNS push notification provider configuration (subscription required).
+ * Configure the [AWS SNS push notification provider configuration](https://auth0.com/docs/multifactor-authentication/developer/sns-configuration) (subscription required).
*
* @param {Management.UpdateGuardianFactorsProviderPushNotificationSnsRequestContent} request
* @param {PushNotificationClient.RequestOptions} requestOptions - Request-specific configuration.
diff --git a/src/management/api/resources/guardian/resources/policies/client/Client.ts b/src/management/api/resources/guardian/resources/policies/client/Client.ts
index a43a2c2a97..e58e7c5e2b 100644
--- a/src/management/api/resources/guardian/resources/policies/client/Client.ts
+++ b/src/management/api/resources/guardian/resources/policies/client/Client.ts
@@ -23,15 +23,14 @@ export class PoliciesClient {
}
/**
- * Retrieve the multi-factor authentication (MFA) policies configured for your tenant.
+ * Retrieve the [multi-factor authentication (MFA) policies](https://auth0.com/docs/secure/multi-factor-authentication/enable-mfa) 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.
+ * - `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](https://auth0.com/docs/secure/multi-factor-authentication/adaptive-mfa). Adaptive MFA requires an add-on for the Enterprise plan; review [Auth0 Pricing](https://auth0.com/pricing) for more details.
*
* @param {PoliciesClient.RequestOptions} requestOptions - Request-specific configuration.
*
@@ -101,15 +100,14 @@ export class PoliciesClient {
}
/**
- * Set multi-factor authentication (MFA) policies for your tenant.
+ * Set [multi-factor authentication (MFA) policies](https://auth0.com/docs/secure/multi-factor-authentication/enable-mfa) 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.
+ * - `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](https://auth0.com/docs/secure/multi-factor-authentication/adaptive-mfa). Adaptive MFA requires an add-on for the Enterprise plan; review [Auth0 Pricing](https://auth0.com/pricing) for more details.
*
* @param {Management.SetGuardianPoliciesRequestContent} request
* @param {PoliciesClient.RequestOptions} requestOptions - Request-specific configuration.
diff --git a/src/management/api/resources/hooks/client/Client.ts b/src/management/api/resources/hooks/client/Client.ts
index 8245183f3c..20a9d96d7d 100644
--- a/src/management/api/resources/hooks/client/Client.ts
+++ b/src/management/api/resources/hooks/client/Client.ts
@@ -29,7 +29,7 @@ export class HooksClient {
}
/**
- * Retrieve all hooks. Accepts a list of fields to include or exclude in the result.
+ * Retrieve all [hooks](https://auth0.com/docs/hooks). Accepts a list of fields to include or exclude in the result.
*
* @param {Management.ListHooksRequestParameters} request
* @param {HooksClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -236,7 +236,7 @@ export class HooksClient {
}
/**
- * Retrieve a hook by its ID. Accepts a list of fields to include in the result.
+ * Retrieve [a hook](https://auth0.com/docs/hooks) by its ID. Accepts a list of fields to include in the result.
*
* @param {string} id - ID of the hook to retrieve.
* @param {Management.GetHookRequestParameters} request
diff --git a/src/management/api/resources/index.ts b/src/management/api/resources/index.ts
index 49c914cf74..069d447bbd 100644
--- a/src/management/api/resources/index.ts
+++ b/src/management/api/resources/index.ts
@@ -25,6 +25,7 @@ export * as logStreams from "./logStreams/index.js";
export * as networkAcls from "./networkAcls/index.js";
export * as organizations from "./organizations/index.js";
export * as prompts from "./prompts/index.js";
+export * as rateLimitPolicies from "./rateLimitPolicies/index.js";
export * as refreshTokens from "./refreshTokens/index.js";
export * as resourceServers from "./resourceServers/index.js";
export * as riskAssessments from "./riskAssessments/index.js";
diff --git a/src/management/api/resources/jobs/resources/verificationEmail/client/Client.ts b/src/management/api/resources/jobs/resources/verificationEmail/client/Client.ts
index 044eee41d8..c6393010ca 100644
--- a/src/management/api/resources/jobs/resources/verificationEmail/client/Client.ts
+++ b/src/management/api/resources/jobs/resources/verificationEmail/client/Client.ts
@@ -23,7 +23,7 @@ export class VerificationEmailClient {
}
/**
- * Send an email to the specified user that asks them to click a link to verify their email address.
+ * Send an email to the specified user that asks them to click a link to [verify their email address](https://auth0.com/docs/email/custom#verification-email).
*
* Note: You must have the `Status` toggle enabled for the verification email template for the email to be sent.
*
diff --git a/src/management/api/resources/logs/client/Client.ts b/src/management/api/resources/logs/client/Client.ts
index 5be328c6f4..9bb564623f 100644
--- a/src/management/api/resources/logs/client/Client.ts
+++ b/src/management/api/resources/logs/client/Client.ts
@@ -25,33 +25,30 @@ export class LogsClient {
/**
* 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").
+ * 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.
+ * For more information on all possible event types, their respective acronyms, and descriptions, see [Log Event Type Codes](https://auth0.com/docs/logs/log-event-type-codes).
*
- * To set custom search criteria, use the following parameters:
+ * **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
- *
+ * - **q:** Search Criteria using [Query String Syntax](https://auth0.com/docs/logs/log-search-query-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](https://auth0.com/docs/product-lifecycle/deprecations-and-migrations/migrate-to-tenant-log-search-v3#pagination)
*
- * For more information on the list of fields that can be used in fields and sort, see Searchable Fields.
+ * For more information on the list of fields that can be used in `fields` and `sort`, see [Searchable Fields](https://auth0.com/docs/logs/log-search-query-syntax#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.
+ * Auth0 [limits the number of logs](https://auth0.com/docs/logs/retrieve-log-events-using-mgmt-api#limitations) 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](https://auth0.com/docs/logs/retrieve-log-events-using-mgmt-api#retrieve-logs-by-checkpoint).
*
- * 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.
- *
+ * **To search from a checkpoint log ID, use the following parameters:**
*
- * 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.
+ * - **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.
*
* @param {Management.ListLogsRequestParameters} request
* @param {LogsClient.RequestOptions} requestOptions - Request-specific configuration.
diff --git a/src/management/api/resources/organizations/client/Client.ts b/src/management/api/resources/organizations/client/Client.ts
index b174b63cc7..beb785c0ce 100644
--- a/src/management/api/resources/organizations/client/Client.ts
+++ b/src/management/api/resources/organizations/client/Client.ts
@@ -12,6 +12,7 @@ import { ClientGrantsClient } from "../resources/clientGrants/client/Client.js";
import { ConnectionsClient } from "../resources/connections/client/Client.js";
import { DiscoveryDomainsClient } from "../resources/discoveryDomains/client/Client.js";
import { EnabledConnectionsClient } from "../resources/enabledConnections/client/Client.js";
+import { GroupsClient } from "../resources/groups/client/Client.js";
import { InvitationsClient } from "../resources/invitations/client/Client.js";
import { MembersClient } from "../resources/members/client/Client.js";
@@ -29,6 +30,7 @@ export class OrganizationsClient {
protected _enabledConnections: EnabledConnectionsClient | undefined;
protected _invitations: InvitationsClient | undefined;
protected _members: MembersClient | undefined;
+ protected _groups: GroupsClient | undefined;
constructor(options: OrganizationsClient.Options) {
this._options = normalizeClientOptionsWithAuth(options);
@@ -58,26 +60,28 @@ export class OrganizationsClient {
return (this._members ??= new MembersClient(this._options));
}
+ public get groups(): GroupsClient {
+ return (this._groups ??= new GroupsClient(this._options));
+ }
+
/**
* 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
- *
+ *
+ * - Offset pagination
+ * - Checkpoint pagination
*
* Checkpoint pagination must be used if you need to retrieve more than 1000 organizations.
*
- * Checkpoint Pagination
+ * **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.
+ * - `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.
*
* @param {Management.ListOrganizationsRequestParameters} request
* @param {OrganizationsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -184,7 +188,7 @@ export class OrganizationsClient {
}
/**
- * Create a new Organization within your tenant. To learn more about Organization settings, behavior, and configuration options, review Create Your First Organization.
+ * Create a new Organization within your tenant. To learn more about Organization settings, behavior, and configuration options, review [Create Your First Organization](https://auth0.com/docs/manage-users/organizations/create-first-organization).
*
* @param {Management.CreateOrganizationRequestContent} request
* @param {OrganizationsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -422,7 +426,7 @@ export class OrganizationsClient {
/**
* 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.
+ * **Note**: Members are automatically disassociated from an Organization when it is deleted. However, this action does **not** delete these users from your tenant.
*
* @param {string} id - Organization identifier.
* @param {OrganizationsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -495,7 +499,7 @@ export class OrganizationsClient {
}
/**
- * Update the details of a specific Organization, such as name and display name, branding options, and metadata.
+ * Update the details of a specific [Organization](https://auth0.com/docs/manage-users/organizations/configure-organizations/create-organizations), such as name and display name, branding options, and metadata.
*
* @param {string} id - ID of the organization to update.
* @param {Management.UpdateOrganizationRequestContent} request
diff --git a/src/management/api/resources/organizations/resources/discoveryDomains/client/Client.ts b/src/management/api/resources/organizations/resources/discoveryDomains/client/Client.ts
index 994e970db0..0e55a76498 100644
--- a/src/management/api/resources/organizations/resources/discoveryDomains/client/Client.ts
+++ b/src/management/api/resources/organizations/resources/discoveryDomains/client/Client.ts
@@ -496,7 +496,7 @@ export class DiscoveryDomainsClient {
}
/**
- * Update the verification status and/or use_for_organization_discovery for an organization discovery domain. The status field must be either pending or verified. The use_for_organization_discovery field can be true or false (default: true).
+ * Update the verification status and/or use_for_organization_discovery for an organization discovery domain. The `status` field must be either `pending` or `verified`. The `use_for_organization_discovery` field can be `true` or `false` (default: `true`).
*
* @param {string} id - ID of the organization.
* @param {string} discovery_domain_id - ID of the discovery domain to update.
diff --git a/src/management/api/resources/organizations/resources/enabledConnections/client/Client.ts b/src/management/api/resources/organizations/resources/enabledConnections/client/Client.ts
index 8c4fa5fd80..fb0e3fe238 100644
--- a/src/management/api/resources/organizations/resources/enabledConnections/client/Client.ts
+++ b/src/management/api/resources/organizations/resources/enabledConnections/client/Client.ts
@@ -149,7 +149,7 @@ export class EnabledConnectionsClient {
/**
* 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.
+ * [Connections](https://auth0.com/docs/authenticate/identity-providers) represent the relationship between Auth0 and a source of users. Available types of connections include database, enterprise, and social.
*
* @param {string} id - Organization identifier.
* @param {Management.AddOrganizationConnectionRequestContent} request
@@ -321,7 +321,7 @@ export class EnabledConnectionsClient {
/**
* 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.
+ * **Note**: This action does not remove the connection from your tenant.
*
* @param {string} id - Organization identifier.
* @param {string} connectionId - Connection identifier.
diff --git a/src/management/api/resources/organizations/resources/groups/client/Client.ts b/src/management/api/resources/organizations/resources/groups/client/Client.ts
new file mode 100644
index 0000000000..9975a5af08
--- /dev/null
+++ b/src/management/api/resources/organizations/resources/groups/client/Client.ts
@@ -0,0 +1,142 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js";
+import { normalizeClientOptionsWithAuth, type NormalizedClientOptionsWithAuth } from "../../../../../../BaseClient.js";
+import * as core from "../../../../../../core/index.js";
+import { mergeHeaders } from "../../../../../../core/headers.js";
+import * as environments from "../../../../../../environments.js";
+import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js";
+import * as errors from "../../../../../../errors/index.js";
+import * as Management from "../../../../../index.js";
+import { RolesClient } from "../resources/roles/client/Client.js";
+
+export declare namespace GroupsClient {
+ export type Options = BaseClientOptions;
+
+ export interface RequestOptions extends BaseRequestOptions {}
+}
+
+export class GroupsClient {
+ protected readonly _options: NormalizedClientOptionsWithAuth;
+ protected _roles: RolesClient | undefined;
+
+ constructor(options: GroupsClient.Options) {
+ this._options = normalizeClientOptionsWithAuth(options);
+ }
+
+ public get roles(): RolesClient {
+ return (this._roles ??= new RolesClient(this._options));
+ }
+
+ /**
+ * Lists the groups that are assigned to the specified organization.
+ *
+ * @param {string} organization_id - ID of the organization
+ * @param {Management.ListOrganizationGroupsRequestParameters} request
+ * @param {GroupsClient.RequestOptions} requestOptions - Request-specific configuration.
+ *
+ * @throws {@link Management.BadRequestError}
+ * @throws {@link Management.UnauthorizedError}
+ * @throws {@link Management.ForbiddenError}
+ * @throws {@link Management.TooManyRequestsError}
+ *
+ * @example
+ * await client.organizations.groups.list("organization_id", {
+ * from: "from",
+ * take: 1
+ * })
+ */
+ public async list(
+ organization_id: string,
+ request: Management.ListOrganizationGroupsRequestParameters = {},
+ requestOptions?: GroupsClient.RequestOptions,
+ ): Promise> {
+ const list = core.HttpResponsePromise.interceptFunction(
+ async (
+ request: Management.ListOrganizationGroupsRequestParameters,
+ ): Promise> => {
+ const { from: from_, take = 50 } = request;
+ const _queryParams: Record = {
+ from: from_,
+ take,
+ };
+ const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();
+ let _headers: core.Fetcher.Args["headers"] = mergeHeaders(
+ _authRequest.headers,
+ this._options?.headers,
+ requestOptions?.headers,
+ );
+ const _response = await (this._options.fetcher ?? core.fetcher)({
+ url: core.url.join(
+ (await core.Supplier.get(this._options.baseUrl)) ??
+ (await core.Supplier.get(this._options.environment)) ??
+ environments.ManagementEnvironment.Default,
+ `organizations/${core.url.encodePathParam(organization_id)}/groups`,
+ ),
+ method: "GET",
+ headers: _headers,
+ queryString: core.url
+ .queryBuilder()
+ .addMany(_queryParams)
+ .mergeAdditional(requestOptions?.queryParams)
+ .build(),
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
+ abortSignal: requestOptions?.abortSignal,
+ fetchFn: this._options?.fetch,
+ logging: this._options.logging,
+ });
+ if (_response.ok) {
+ return {
+ data: _response.body as Management.ListOrganizationGroupsResponseContent,
+ rawResponse: _response.rawResponse,
+ };
+ }
+ if (_response.error.reason === "status-code") {
+ switch (_response.error.statusCode) {
+ case 400:
+ throw new Management.BadRequestError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ case 401:
+ throw new Management.UnauthorizedError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ case 403:
+ throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse);
+ case 429:
+ throw new Management.TooManyRequestsError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ default:
+ throw new errors.ManagementError({
+ statusCode: _response.error.statusCode,
+ body: _response.error.body,
+ rawResponse: _response.rawResponse,
+ });
+ }
+ }
+ return handleNonStatusCodeError(
+ _response.error,
+ _response.rawResponse,
+ "GET",
+ "/organizations/{organization_id}/groups",
+ );
+ },
+ );
+ const dataWithRawResponse = await list(request).withRawResponse();
+ return new core.Page({
+ response: dataWithRawResponse.data,
+ rawResponse: dataWithRawResponse.rawResponse,
+ hasNextPage: (response) =>
+ response?.next != null && !(typeof response?.next === "string" && response?.next === ""),
+ getItems: (response) => response?.groups ?? [],
+ loadPage: (response) => {
+ return list(core.setObjectProperty(request, "from", response?.next));
+ },
+ });
+ }
+}
diff --git a/src/management/api/resources/organizations/resources/groups/client/index.ts b/src/management/api/resources/organizations/resources/groups/client/index.ts
new file mode 100644
index 0000000000..cb0ff5c3b5
--- /dev/null
+++ b/src/management/api/resources/organizations/resources/groups/client/index.ts
@@ -0,0 +1 @@
+export {};
diff --git a/src/management/api/resources/organizations/resources/groups/index.ts b/src/management/api/resources/organizations/resources/groups/index.ts
new file mode 100644
index 0000000000..9eb1192dcc
--- /dev/null
+++ b/src/management/api/resources/organizations/resources/groups/index.ts
@@ -0,0 +1,2 @@
+export * from "./client/index.js";
+export * from "./resources/index.js";
diff --git a/src/management/api/resources/organizations/resources/groups/resources/index.ts b/src/management/api/resources/organizations/resources/groups/resources/index.ts
new file mode 100644
index 0000000000..b36e075187
--- /dev/null
+++ b/src/management/api/resources/organizations/resources/groups/resources/index.ts
@@ -0,0 +1 @@
+export * as roles from "./roles/index.js";
diff --git a/src/management/api/resources/organizations/resources/groups/resources/roles/client/Client.ts b/src/management/api/resources/organizations/resources/groups/resources/roles/client/Client.ts
new file mode 100644
index 0000000000..ffd61251e0
--- /dev/null
+++ b/src/management/api/resources/organizations/resources/groups/resources/roles/client/Client.ts
@@ -0,0 +1,322 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../../../BaseClient.js";
+import {
+ normalizeClientOptionsWithAuth,
+ type NormalizedClientOptionsWithAuth,
+} from "../../../../../../../../BaseClient.js";
+import * as core from "../../../../../../../../core/index.js";
+import { mergeHeaders } from "../../../../../../../../core/headers.js";
+import * as environments from "../../../../../../../../environments.js";
+import { handleNonStatusCodeError } from "../../../../../../../../errors/handleNonStatusCodeError.js";
+import * as errors from "../../../../../../../../errors/index.js";
+import * as Management from "../../../../../../../index.js";
+
+export declare namespace RolesClient {
+ export type Options = BaseClientOptions;
+
+ export interface RequestOptions extends BaseRequestOptions {}
+}
+
+export class RolesClient {
+ protected readonly _options: NormalizedClientOptionsWithAuth;
+
+ constructor(options: RolesClient.Options) {
+ this._options = normalizeClientOptionsWithAuth(options);
+ }
+
+ /**
+ * Lists the roles assigned to the specified group in the context of an organization.
+ *
+ * @param {string} organization_id - ID of the organization
+ * @param {string} group_id - ID of the group
+ * @param {Management.ListOrganizationGroupRolesRequestParameters} request
+ * @param {RolesClient.RequestOptions} requestOptions - Request-specific configuration.
+ *
+ * @throws {@link Management.BadRequestError}
+ * @throws {@link Management.UnauthorizedError}
+ * @throws {@link Management.ForbiddenError}
+ * @throws {@link Management.TooManyRequestsError}
+ *
+ * @example
+ * await client.organizations.groups.roles.list("organization_id", "group_id", {
+ * from: "from",
+ * take: 1
+ * })
+ */
+ public async list(
+ organization_id: string,
+ group_id: string,
+ request: Management.ListOrganizationGroupRolesRequestParameters = {},
+ requestOptions?: RolesClient.RequestOptions,
+ ): Promise> {
+ const list = core.HttpResponsePromise.interceptFunction(
+ async (
+ request: Management.ListOrganizationGroupRolesRequestParameters,
+ ): Promise> => {
+ const { from: from_, take = 50 } = request;
+ const _queryParams: Record = {
+ from: from_,
+ take,
+ };
+ const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();
+ let _headers: core.Fetcher.Args["headers"] = mergeHeaders(
+ _authRequest.headers,
+ this._options?.headers,
+ requestOptions?.headers,
+ );
+ const _response = await (this._options.fetcher ?? core.fetcher)({
+ url: core.url.join(
+ (await core.Supplier.get(this._options.baseUrl)) ??
+ (await core.Supplier.get(this._options.environment)) ??
+ environments.ManagementEnvironment.Default,
+ `organizations/${core.url.encodePathParam(organization_id)}/groups/${core.url.encodePathParam(group_id)}/roles`,
+ ),
+ method: "GET",
+ headers: _headers,
+ queryString: core.url
+ .queryBuilder()
+ .addMany(_queryParams)
+ .mergeAdditional(requestOptions?.queryParams)
+ .build(),
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
+ abortSignal: requestOptions?.abortSignal,
+ fetchFn: this._options?.fetch,
+ logging: this._options.logging,
+ });
+ if (_response.ok) {
+ return {
+ data: _response.body as Management.ListOrganizationGroupRolesResponseContent,
+ rawResponse: _response.rawResponse,
+ };
+ }
+ if (_response.error.reason === "status-code") {
+ switch (_response.error.statusCode) {
+ case 400:
+ throw new Management.BadRequestError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ case 401:
+ throw new Management.UnauthorizedError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ case 403:
+ throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse);
+ case 429:
+ throw new Management.TooManyRequestsError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ default:
+ throw new errors.ManagementError({
+ statusCode: _response.error.statusCode,
+ body: _response.error.body,
+ rawResponse: _response.rawResponse,
+ });
+ }
+ }
+ return handleNonStatusCodeError(
+ _response.error,
+ _response.rawResponse,
+ "GET",
+ "/organizations/{organization_id}/groups/{group_id}/roles",
+ );
+ },
+ );
+ const dataWithRawResponse = await list(request).withRawResponse();
+ return new core.Page({
+ response: dataWithRawResponse.data,
+ rawResponse: dataWithRawResponse.rawResponse,
+ hasNextPage: (response) =>
+ response?.next != null && !(typeof response?.next === "string" && response?.next === ""),
+ getItems: (response) => response?.roles ?? [],
+ loadPage: (response) => {
+ return list(core.setObjectProperty(request, "from", response?.next));
+ },
+ });
+ }
+
+ /**
+ * Assign one or more roles to a specified group in the context of an organization.
+ *
+ * @param {string} organization_id - ID of the organization
+ * @param {string} group_id - ID of the group
+ * @param {Management.CreateOrganizationGroupRolesRequestContent} request
+ * @param {RolesClient.RequestOptions} requestOptions - Request-specific configuration.
+ *
+ * @throws {@link Management.BadRequestError}
+ * @throws {@link Management.UnauthorizedError}
+ * @throws {@link Management.ForbiddenError}
+ * @throws {@link Management.ConflictError}
+ * @throws {@link Management.TooManyRequestsError}
+ *
+ * @example
+ * await client.organizations.groups.roles.create("organization_id", "group_id", {
+ * roles: ["roles"]
+ * })
+ */
+ public create(
+ organization_id: string,
+ group_id: string,
+ request: Management.CreateOrganizationGroupRolesRequestContent,
+ requestOptions?: RolesClient.RequestOptions,
+ ): core.HttpResponsePromise {
+ return core.HttpResponsePromise.fromPromise(this.__create(organization_id, group_id, request, requestOptions));
+ }
+
+ private async __create(
+ organization_id: string,
+ group_id: string,
+ request: Management.CreateOrganizationGroupRolesRequestContent,
+ requestOptions?: RolesClient.RequestOptions,
+ ): Promise> {
+ const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();
+ let _headers: core.Fetcher.Args["headers"] = mergeHeaders(
+ _authRequest.headers,
+ this._options?.headers,
+ requestOptions?.headers,
+ );
+ const _response = await (this._options.fetcher ?? core.fetcher)({
+ url: core.url.join(
+ (await core.Supplier.get(this._options.baseUrl)) ??
+ (await core.Supplier.get(this._options.environment)) ??
+ environments.ManagementEnvironment.Default,
+ `organizations/${core.url.encodePathParam(organization_id)}/groups/${core.url.encodePathParam(group_id)}/roles`,
+ ),
+ method: "POST",
+ headers: _headers,
+ contentType: "application/json",
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
+ requestType: "json",
+ body: request,
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
+ abortSignal: requestOptions?.abortSignal,
+ fetchFn: this._options?.fetch,
+ logging: this._options.logging,
+ });
+ if (_response.ok) {
+ return { data: undefined, rawResponse: _response.rawResponse };
+ }
+
+ if (_response.error.reason === "status-code") {
+ switch (_response.error.statusCode) {
+ case 400:
+ throw new Management.BadRequestError(_response.error.body as unknown, _response.rawResponse);
+ case 401:
+ throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse);
+ case 403:
+ throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse);
+ case 409:
+ throw new Management.ConflictError(_response.error.body as unknown, _response.rawResponse);
+ case 429:
+ throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse);
+ default:
+ throw new errors.ManagementError({
+ statusCode: _response.error.statusCode,
+ body: _response.error.body,
+ rawResponse: _response.rawResponse,
+ });
+ }
+ }
+
+ return handleNonStatusCodeError(
+ _response.error,
+ _response.rawResponse,
+ "POST",
+ "/organizations/{organization_id}/groups/{group_id}/roles",
+ );
+ }
+
+ /**
+ * Unassign one or more roles from a specified group in the context of an organization.
+ *
+ * @param {string} organization_id - ID of the organization
+ * @param {string} group_id - ID of the group
+ * @param {Management.DeleteOrganizationGroupRolesRequestContent} request
+ * @param {RolesClient.RequestOptions} requestOptions - Request-specific configuration.
+ *
+ * @throws {@link Management.BadRequestError}
+ * @throws {@link Management.UnauthorizedError}
+ * @throws {@link Management.ForbiddenError}
+ * @throws {@link Management.TooManyRequestsError}
+ *
+ * @example
+ * await client.organizations.groups.roles.delete("organization_id", "group_id", {
+ * roles: ["roles"]
+ * })
+ */
+ public delete(
+ organization_id: string,
+ group_id: string,
+ request: Management.DeleteOrganizationGroupRolesRequestContent,
+ requestOptions?: RolesClient.RequestOptions,
+ ): core.HttpResponsePromise {
+ return core.HttpResponsePromise.fromPromise(this.__delete(organization_id, group_id, request, requestOptions));
+ }
+
+ private async __delete(
+ organization_id: string,
+ group_id: string,
+ request: Management.DeleteOrganizationGroupRolesRequestContent,
+ requestOptions?: RolesClient.RequestOptions,
+ ): Promise> {
+ const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();
+ let _headers: core.Fetcher.Args["headers"] = mergeHeaders(
+ _authRequest.headers,
+ this._options?.headers,
+ requestOptions?.headers,
+ );
+ const _response = await (this._options.fetcher ?? core.fetcher)({
+ url: core.url.join(
+ (await core.Supplier.get(this._options.baseUrl)) ??
+ (await core.Supplier.get(this._options.environment)) ??
+ environments.ManagementEnvironment.Default,
+ `organizations/${core.url.encodePathParam(organization_id)}/groups/${core.url.encodePathParam(group_id)}/roles`,
+ ),
+ method: "DELETE",
+ headers: _headers,
+ contentType: "application/json",
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
+ requestType: "json",
+ body: request,
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
+ abortSignal: requestOptions?.abortSignal,
+ fetchFn: this._options?.fetch,
+ logging: this._options.logging,
+ });
+ if (_response.ok) {
+ return { data: undefined, rawResponse: _response.rawResponse };
+ }
+
+ if (_response.error.reason === "status-code") {
+ switch (_response.error.statusCode) {
+ case 400:
+ throw new Management.BadRequestError(_response.error.body as unknown, _response.rawResponse);
+ case 401:
+ throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse);
+ case 403:
+ throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse);
+ case 429:
+ throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse);
+ default:
+ throw new errors.ManagementError({
+ statusCode: _response.error.statusCode,
+ body: _response.error.body,
+ rawResponse: _response.rawResponse,
+ });
+ }
+ }
+
+ return handleNonStatusCodeError(
+ _response.error,
+ _response.rawResponse,
+ "DELETE",
+ "/organizations/{organization_id}/groups/{group_id}/roles",
+ );
+ }
+}
diff --git a/src/management/api/resources/organizations/resources/groups/resources/roles/client/index.ts b/src/management/api/resources/organizations/resources/groups/resources/roles/client/index.ts
new file mode 100644
index 0000000000..cb0ff5c3b5
--- /dev/null
+++ b/src/management/api/resources/organizations/resources/groups/resources/roles/client/index.ts
@@ -0,0 +1 @@
+export {};
diff --git a/src/management/api/resources/organizations/resources/groups/resources/roles/index.ts b/src/management/api/resources/organizations/resources/groups/resources/roles/index.ts
new file mode 100644
index 0000000000..914b8c3c72
--- /dev/null
+++ b/src/management/api/resources/organizations/resources/groups/resources/roles/index.ts
@@ -0,0 +1 @@
+export * from "./client/index.js";
diff --git a/src/management/api/resources/organizations/resources/index.ts b/src/management/api/resources/organizations/resources/index.ts
index 407dd5cecb..8776dc947c 100644
--- a/src/management/api/resources/organizations/resources/index.ts
+++ b/src/management/api/resources/organizations/resources/index.ts
@@ -2,5 +2,6 @@ export * as clientGrants from "./clientGrants/index.js";
export * as connections from "./connections/index.js";
export * as discoveryDomains from "./discoveryDomains/index.js";
export * as enabledConnections from "./enabledConnections/index.js";
+export * as groups from "./groups/index.js";
export * as invitations from "./invitations/index.js";
export * as members from "./members/index.js";
diff --git a/src/management/api/resources/organizations/resources/invitations/client/Client.ts b/src/management/api/resources/organizations/resources/invitations/client/Client.ts
index e2fce1e6db..82912a7138 100644
--- a/src/management/api/resources/organizations/resources/invitations/client/Client.ts
+++ b/src/management/api/resources/organizations/resources/invitations/client/Client.ts
@@ -23,7 +23,7 @@ export class InvitationsClient {
}
/**
- * 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.
+ * 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](https://auth0.com/docs/manage-users/organizations/configure-organizations/invite-members).
*
* @param {string} id - Organization identifier.
* @param {Management.ListOrganizationInvitationsRequestParameters} request
@@ -162,7 +162,7 @@ export class InvitationsClient {
}
/**
- * 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.
+ * 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](https://auth0.com/docs/manage-users/organizations/configure-organizations/invite-members).
*
* @param {string} id - Organization identifier.
* @param {Management.CreateOrganizationInvitationRequestContent} request
diff --git a/src/management/api/resources/organizations/resources/members/client/Client.ts b/src/management/api/resources/organizations/resources/members/client/Client.ts
index 8ee22c397a..a33c20410c 100644
--- a/src/management/api/resources/organizations/resources/members/client/Client.ts
+++ b/src/management/api/resources/organizations/resources/members/client/Client.ts
@@ -8,6 +8,7 @@ import * as environments from "../../../../../../environments.js";
import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js";
import * as errors from "../../../../../../errors/index.js";
import * as Management from "../../../../../index.js";
+import { EffectiveRolesClient } from "../resources/effectiveRoles/client/Client.js";
import { RolesClient } from "../resources/roles/client/Client.js";
export declare namespace MembersClient {
@@ -18,12 +19,17 @@ export declare namespace MembersClient {
export class MembersClient {
protected readonly _options: NormalizedClientOptionsWithAuth;
+ protected _effectiveRoles: EffectiveRolesClient | undefined;
protected _roles: RolesClient | undefined;
constructor(options: MembersClient.Options) {
this._options = normalizeClientOptionsWithAuth(options);
}
+ public get effectiveRoles(): EffectiveRolesClient {
+ return (this._effectiveRoles ??= new EffectiveRolesClient(this._options));
+ }
+
public get roles(): RolesClient {
return (this._roles ??= new RolesClient(this._options));
}
@@ -32,14 +38,8 @@ export class MembersClient {
* 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.
- *
- *
+ * - 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:
*
@@ -48,9 +48,9 @@ export class MembersClient {
*
* Checkpoint pagination must be used if you need to retrieve more than 1000 organization members.
*
- * Checkpoint Pagination
+ * **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.
+ * 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.
*
* @param {string} id - Organization identifier.
* @param {Management.ListOrganizationMembersRequestParameters} request
@@ -168,9 +168,9 @@ export class MembersClient {
}
/**
- * Set one or more existing users as members of a specific Organization.
+ * Set one or more existing users as members of a specific [Organization](https://auth0.com/docs/manage-users/organizations).
*
- * 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.
+ * 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](https://auth0.com/docs/manage-users/organizations/configure-organizations/invite-members), manually create them through the Auth0 Dashboard, or use the Management API.
*
* @param {string} id - Organization identifier.
* @param {Management.CreateOrganizationMemberRequestContent} request
diff --git a/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/client/Client.ts b/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/client/Client.ts
new file mode 100644
index 0000000000..a65f01d550
--- /dev/null
+++ b/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/client/Client.ts
@@ -0,0 +1,155 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../../../BaseClient.js";
+import {
+ normalizeClientOptionsWithAuth,
+ type NormalizedClientOptionsWithAuth,
+} from "../../../../../../../../BaseClient.js";
+import * as core from "../../../../../../../../core/index.js";
+import { mergeHeaders } from "../../../../../../../../core/headers.js";
+import * as environments from "../../../../../../../../environments.js";
+import { handleNonStatusCodeError } from "../../../../../../../../errors/handleNonStatusCodeError.js";
+import * as errors from "../../../../../../../../errors/index.js";
+import * as Management from "../../../../../../../index.js";
+import { SourcesClient } from "../resources/sources/client/Client.js";
+
+export declare namespace EffectiveRolesClient {
+ export type Options = BaseClientOptions;
+
+ export interface RequestOptions extends BaseRequestOptions {}
+}
+
+export class EffectiveRolesClient {
+ protected readonly _options: NormalizedClientOptionsWithAuth;
+ protected _sources: SourcesClient | undefined;
+
+ constructor(options: EffectiveRolesClient.Options) {
+ this._options = normalizeClientOptionsWithAuth(options);
+ }
+
+ public get sources(): SourcesClient {
+ return (this._sources ??= new SourcesClient(this._options));
+ }
+
+ /**
+ * Lists the roles assigned to an organization member directly or through group membership.
+ *
+ * @param {string} id - Organization identifier.
+ * @param {string} user_id - ID of the user to list effective roles for.
+ * @param {Management.ListOrganizationMemberEffectiveRolesRequestParameters} request
+ * @param {EffectiveRolesClient.RequestOptions} requestOptions - Request-specific configuration.
+ *
+ * @throws {@link Management.BadRequestError}
+ * @throws {@link Management.UnauthorizedError}
+ * @throws {@link Management.ForbiddenError}
+ * @throws {@link Management.TooManyRequestsError}
+ *
+ * @example
+ * await client.organizations.members.effectiveRoles.list("id", "user_id", {
+ * from: "from",
+ * take: 1
+ * })
+ */
+ public async list(
+ id: string,
+ user_id: string,
+ request: Management.ListOrganizationMemberEffectiveRolesRequestParameters = {},
+ requestOptions?: EffectiveRolesClient.RequestOptions,
+ ): Promise<
+ core.Page<
+ Management.OrganizationMemberEffectiveRole,
+ Management.ListOrganizationMemberEffectiveRolesResponseContent
+ >
+ > {
+ const list = core.HttpResponsePromise.interceptFunction(
+ async (
+ request: Management.ListOrganizationMemberEffectiveRolesRequestParameters,
+ ): Promise> => {
+ const { from: from_, take = 50 } = request;
+ const _queryParams: Record = {
+ from: from_,
+ take,
+ };
+ const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();
+ let _headers: core.Fetcher.Args["headers"] = mergeHeaders(
+ _authRequest.headers,
+ this._options?.headers,
+ requestOptions?.headers,
+ );
+ const _response = await (this._options.fetcher ?? core.fetcher)({
+ url: core.url.join(
+ (await core.Supplier.get(this._options.baseUrl)) ??
+ (await core.Supplier.get(this._options.environment)) ??
+ environments.ManagementEnvironment.Default,
+ `organizations/${core.url.encodePathParam(id)}/members/${core.url.encodePathParam(user_id)}/effective-roles`,
+ ),
+ method: "GET",
+ headers: _headers,
+ queryString: core.url
+ .queryBuilder()
+ .addMany(_queryParams)
+ .mergeAdditional(requestOptions?.queryParams)
+ .build(),
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
+ abortSignal: requestOptions?.abortSignal,
+ fetchFn: this._options?.fetch,
+ logging: this._options.logging,
+ });
+ if (_response.ok) {
+ return {
+ data: _response.body as Management.ListOrganizationMemberEffectiveRolesResponseContent,
+ rawResponse: _response.rawResponse,
+ };
+ }
+ if (_response.error.reason === "status-code") {
+ switch (_response.error.statusCode) {
+ case 400:
+ throw new Management.BadRequestError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ case 401:
+ throw new Management.UnauthorizedError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ case 403:
+ throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse);
+ case 429:
+ throw new Management.TooManyRequestsError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ default:
+ throw new errors.ManagementError({
+ statusCode: _response.error.statusCode,
+ body: _response.error.body,
+ rawResponse: _response.rawResponse,
+ });
+ }
+ }
+ return handleNonStatusCodeError(
+ _response.error,
+ _response.rawResponse,
+ "GET",
+ "/organizations/{id}/members/{user_id}/effective-roles",
+ );
+ },
+ );
+ const dataWithRawResponse = await list(request).withRawResponse();
+ return new core.Page<
+ Management.OrganizationMemberEffectiveRole,
+ Management.ListOrganizationMemberEffectiveRolesResponseContent
+ >({
+ response: dataWithRawResponse.data,
+ rawResponse: dataWithRawResponse.rawResponse,
+ hasNextPage: (response) =>
+ response?.next != null && !(typeof response?.next === "string" && response?.next === ""),
+ getItems: (response) => response?.roles ?? [],
+ loadPage: (response) => {
+ return list(core.setObjectProperty(request, "from", response?.next));
+ },
+ });
+ }
+}
diff --git a/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/client/index.ts b/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/client/index.ts
new file mode 100644
index 0000000000..cb0ff5c3b5
--- /dev/null
+++ b/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/client/index.ts
@@ -0,0 +1 @@
+export {};
diff --git a/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/index.ts b/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/index.ts
new file mode 100644
index 0000000000..9eb1192dcc
--- /dev/null
+++ b/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/index.ts
@@ -0,0 +1,2 @@
+export * from "./client/index.js";
+export * from "./resources/index.js";
diff --git a/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/resources/index.ts b/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/resources/index.ts
new file mode 100644
index 0000000000..88c5bca7c7
--- /dev/null
+++ b/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/resources/index.ts
@@ -0,0 +1 @@
+export * as sources from "./sources/index.js";
diff --git a/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/resources/sources/client/Client.ts b/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/resources/sources/client/Client.ts
new file mode 100644
index 0000000000..d57500c940
--- /dev/null
+++ b/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/resources/sources/client/Client.ts
@@ -0,0 +1,27 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type { BaseClientOptions } from "../../../../../../../../../../BaseClient.js";
+import {
+ normalizeClientOptionsWithAuth,
+ type NormalizedClientOptionsWithAuth,
+} from "../../../../../../../../../../BaseClient.js";
+import * as core from "../../../../../../../../../../core/index.js";
+import * as environments from "../../../../../../../../../../environments.js";
+import { GroupsClient } from "../resources/groups/client/Client.js";
+
+export declare namespace SourcesClient {
+ export type Options = BaseClientOptions;
+}
+
+export class SourcesClient {
+ protected readonly _options: NormalizedClientOptionsWithAuth;
+ protected _groups: GroupsClient | undefined;
+
+ constructor(options: SourcesClient.Options) {
+ this._options = normalizeClientOptionsWithAuth(options);
+ }
+
+ public get groups(): GroupsClient {
+ return (this._groups ??= new GroupsClient(this._options));
+ }
+}
diff --git a/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/resources/sources/client/index.ts b/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/resources/sources/client/index.ts
new file mode 100644
index 0000000000..cb0ff5c3b5
--- /dev/null
+++ b/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/resources/sources/client/index.ts
@@ -0,0 +1 @@
+export {};
diff --git a/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/resources/sources/index.ts b/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/resources/sources/index.ts
new file mode 100644
index 0000000000..9eb1192dcc
--- /dev/null
+++ b/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/resources/sources/index.ts
@@ -0,0 +1,2 @@
+export * from "./client/index.js";
+export * from "./resources/index.js";
diff --git a/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/resources/sources/resources/groups/client/Client.ts b/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/resources/sources/resources/groups/client/Client.ts
new file mode 100644
index 0000000000..3f4a0054e0
--- /dev/null
+++ b/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/resources/sources/resources/groups/client/Client.ts
@@ -0,0 +1,143 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../../../../../../../BaseClient.js";
+import {
+ normalizeClientOptionsWithAuth,
+ type NormalizedClientOptionsWithAuth,
+} from "../../../../../../../../../../../../BaseClient.js";
+import * as core from "../../../../../../../../../../../../core/index.js";
+import { mergeHeaders } from "../../../../../../../../../../../../core/headers.js";
+import * as environments from "../../../../../../../../../../../../environments.js";
+import { handleNonStatusCodeError } from "../../../../../../../../../../../../errors/handleNonStatusCodeError.js";
+import * as errors from "../../../../../../../../../../../../errors/index.js";
+import * as Management from "../../../../../../../../../../../index.js";
+
+export declare namespace GroupsClient {
+ export type Options = BaseClientOptions;
+
+ export interface RequestOptions extends BaseRequestOptions {}
+}
+
+export class GroupsClient {
+ protected readonly _options: NormalizedClientOptionsWithAuth;
+
+ constructor(options: GroupsClient.Options) {
+ this._options = normalizeClientOptionsWithAuth(options);
+ }
+
+ /**
+ * Lists the groups which grant the org member a given role.
+ *
+ * @param {string} id - Organization identifier.
+ * @param {string} user_id - ID of the user to list role source groups for.
+ * @param {Management.ListOrganizationMemberRoleSourceGroupsRequestParameters} request
+ * @param {GroupsClient.RequestOptions} requestOptions - Request-specific configuration.
+ *
+ * @throws {@link Management.BadRequestError}
+ * @throws {@link Management.UnauthorizedError}
+ * @throws {@link Management.ForbiddenError}
+ * @throws {@link Management.TooManyRequestsError}
+ *
+ * @example
+ * await client.organizations.members.effectiveRoles.sources.groups.list("id", "user_id", {
+ * from: "from",
+ * take: 1,
+ * role_id: "role_id"
+ * })
+ */
+ public async list(
+ id: string,
+ user_id: string,
+ request: Management.ListOrganizationMemberRoleSourceGroupsRequestParameters,
+ requestOptions?: GroupsClient.RequestOptions,
+ ): Promise> {
+ const list = core.HttpResponsePromise.interceptFunction(
+ async (
+ request: Management.ListOrganizationMemberRoleSourceGroupsRequestParameters,
+ ): Promise> => {
+ const { from: from_, take = 50, role_id: roleId } = request;
+ const _queryParams: Record = {
+ from: from_,
+ take,
+ role_id: roleId,
+ };
+ const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();
+ let _headers: core.Fetcher.Args["headers"] = mergeHeaders(
+ _authRequest.headers,
+ this._options?.headers,
+ requestOptions?.headers,
+ );
+ const _response = await (this._options.fetcher ?? core.fetcher)({
+ url: core.url.join(
+ (await core.Supplier.get(this._options.baseUrl)) ??
+ (await core.Supplier.get(this._options.environment)) ??
+ environments.ManagementEnvironment.Default,
+ `organizations/${core.url.encodePathParam(id)}/members/${core.url.encodePathParam(user_id)}/effective-roles/sources/groups`,
+ ),
+ method: "GET",
+ headers: _headers,
+ queryString: core.url
+ .queryBuilder()
+ .addMany(_queryParams)
+ .mergeAdditional(requestOptions?.queryParams)
+ .build(),
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
+ abortSignal: requestOptions?.abortSignal,
+ fetchFn: this._options?.fetch,
+ logging: this._options.logging,
+ });
+ if (_response.ok) {
+ return {
+ data: _response.body as Management.ListOrganizationMemberRoleSourceGroupsResponseContent,
+ rawResponse: _response.rawResponse,
+ };
+ }
+ if (_response.error.reason === "status-code") {
+ switch (_response.error.statusCode) {
+ case 400:
+ throw new Management.BadRequestError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ case 401:
+ throw new Management.UnauthorizedError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ case 403:
+ throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse);
+ case 429:
+ throw new Management.TooManyRequestsError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ default:
+ throw new errors.ManagementError({
+ statusCode: _response.error.statusCode,
+ body: _response.error.body,
+ rawResponse: _response.rawResponse,
+ });
+ }
+ }
+ return handleNonStatusCodeError(
+ _response.error,
+ _response.rawResponse,
+ "GET",
+ "/organizations/{id}/members/{user_id}/effective-roles/sources/groups",
+ );
+ },
+ );
+ const dataWithRawResponse = await list(request).withRawResponse();
+ return new core.Page({
+ response: dataWithRawResponse.data,
+ rawResponse: dataWithRawResponse.rawResponse,
+ hasNextPage: (response) =>
+ response?.next != null && !(typeof response?.next === "string" && response?.next === ""),
+ getItems: (response) => response?.groups ?? [],
+ loadPage: (response) => {
+ return list(core.setObjectProperty(request, "from", response?.next));
+ },
+ });
+ }
+}
diff --git a/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/resources/sources/resources/groups/client/index.ts b/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/resources/sources/resources/groups/client/index.ts
new file mode 100644
index 0000000000..cb0ff5c3b5
--- /dev/null
+++ b/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/resources/sources/resources/groups/client/index.ts
@@ -0,0 +1 @@
+export {};
diff --git a/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/resources/sources/resources/groups/index.ts b/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/resources/sources/resources/groups/index.ts
new file mode 100644
index 0000000000..914b8c3c72
--- /dev/null
+++ b/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/resources/sources/resources/groups/index.ts
@@ -0,0 +1 @@
+export * from "./client/index.js";
diff --git a/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/resources/sources/resources/index.ts b/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/resources/sources/resources/index.ts
new file mode 100644
index 0000000000..17605ee66b
--- /dev/null
+++ b/src/management/api/resources/organizations/resources/members/resources/effectiveRoles/resources/sources/resources/index.ts
@@ -0,0 +1 @@
+export * as groups from "./groups/index.js";
diff --git a/src/management/api/resources/organizations/resources/members/resources/index.ts b/src/management/api/resources/organizations/resources/members/resources/index.ts
index b36e075187..b5ceb16eb2 100644
--- a/src/management/api/resources/organizations/resources/members/resources/index.ts
+++ b/src/management/api/resources/organizations/resources/members/resources/index.ts
@@ -1 +1,2 @@
+export * as effectiveRoles from "./effectiveRoles/index.js";
export * as roles from "./roles/index.js";
diff --git a/src/management/api/resources/organizations/resources/members/resources/roles/client/Client.ts b/src/management/api/resources/organizations/resources/members/resources/roles/client/Client.ts
index ef668dc2c6..71786fec55 100644
--- a/src/management/api/resources/organizations/resources/members/resources/roles/client/Client.ts
+++ b/src/management/api/resources/organizations/resources/members/resources/roles/client/Client.ts
@@ -145,7 +145,7 @@ export class RolesClient {
}
/**
- * Assign one or more roles to a user to determine their access for a specific Organization.
+ * Assign one or more [roles](https://auth0.com/docs/manage-users/access-control/rbac) 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.
*
@@ -239,7 +239,7 @@ export class RolesClient {
}
/**
- * Remove one or more Organization-specific roles from a given user.
+ * Remove one or more Organization-specific [roles](https://auth0.com/docs/manage-users/access-control/rbac) 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.
*
diff --git a/src/management/api/resources/prompts/resources/rendering/client/Client.ts b/src/management/api/resources/prompts/resources/rendering/client/Client.ts
index 17ae792d65..a2d017f27f 100644
--- a/src/management/api/resources/prompts/resources/rendering/client/Client.ts
+++ b/src/management/api/resources/prompts/resources/rendering/client/Client.ts
@@ -159,7 +159,7 @@ export class RenderingClient {
}
/**
- * Learn more about configuring render settings for advanced customization.
+ * Learn more about [configuring render settings](https://auth0.com/docs/customize/login-pages/advanced-customizations/getting-started/configure-acul-screens) for advanced customization.
*
* @param {Management.BulkUpdateAculRequestContent} request
* @param {RenderingClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -333,7 +333,7 @@ export class RenderingClient {
}
/**
- * Learn more about configuring render settings for advanced customization.
+ * Learn more about [configuring render settings](https://auth0.com/docs/customize/login-pages/advanced-customizations/getting-started/configure-acul-screens) for advanced customization.
*
* @param {Management.PromptGroupNameEnum} prompt - Name of the prompt
* @param {Management.ScreenGroupNameEnum} screen - Name of the screen
diff --git a/src/management/api/resources/rateLimitPolicies/client/Client.ts b/src/management/api/resources/rateLimitPolicies/client/Client.ts
new file mode 100644
index 0000000000..dc0aa7ca54
--- /dev/null
+++ b/src/management/api/resources/rateLimitPolicies/client/Client.ts
@@ -0,0 +1,449 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js";
+import { normalizeClientOptionsWithAuth, type NormalizedClientOptionsWithAuth } from "../../../../BaseClient.js";
+import * as core from "../../../../core/index.js";
+import { mergeHeaders } from "../../../../core/headers.js";
+import * as environments from "../../../../environments.js";
+import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js";
+import * as errors from "../../../../errors/index.js";
+import * as Management from "../../../index.js";
+
+export declare namespace RateLimitPoliciesClient {
+ export type Options = BaseClientOptions;
+
+ export interface RequestOptions extends BaseRequestOptions {}
+}
+
+export class RateLimitPoliciesClient {
+ protected readonly _options: NormalizedClientOptionsWithAuth;
+
+ constructor(options: RateLimitPoliciesClient.Options) {
+ this._options = normalizeClientOptionsWithAuth(options);
+ }
+
+ /**
+ * @param {Management.ListRateLimitPoliciesRequestParameters} request
+ * @param {RateLimitPoliciesClient.RequestOptions} requestOptions - Request-specific configuration.
+ *
+ * @throws {@link Management.BadRequestError}
+ * @throws {@link Management.UnauthorizedError}
+ * @throws {@link Management.ForbiddenError}
+ * @throws {@link Management.TooManyRequestsError}
+ *
+ * @example
+ * await client.rateLimitPolicies.list({
+ * resource: "oauth_authentication_api",
+ * consumer: "client",
+ * consumer_selector: "consumer_selector",
+ * take: 1,
+ * from: "from"
+ * })
+ */
+ public async list(
+ request: Management.ListRateLimitPoliciesRequestParameters = {},
+ requestOptions?: RateLimitPoliciesClient.RequestOptions,
+ ): Promise> {
+ const list = core.HttpResponsePromise.interceptFunction(
+ async (
+ request: Management.ListRateLimitPoliciesRequestParameters,
+ ): Promise> => {
+ const { resource, consumer, consumer_selector: consumerSelector, take = 50, from: from_ } = request;
+ const _queryParams: Record = {
+ resource: resource !== undefined ? resource : undefined,
+ consumer: consumer !== undefined ? consumer : undefined,
+ consumer_selector: consumerSelector,
+ take,
+ from: from_,
+ };
+ const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();
+ let _headers: core.Fetcher.Args["headers"] = mergeHeaders(
+ _authRequest.headers,
+ this._options?.headers,
+ requestOptions?.headers,
+ );
+ const _response = await (this._options.fetcher ?? core.fetcher)({
+ url: core.url.join(
+ (await core.Supplier.get(this._options.baseUrl)) ??
+ (await core.Supplier.get(this._options.environment)) ??
+ environments.ManagementEnvironment.Default,
+ "rate-limit-policies",
+ ),
+ method: "GET",
+ headers: _headers,
+ queryString: core.url
+ .queryBuilder()
+ .addMany(_queryParams)
+ .mergeAdditional(requestOptions?.queryParams)
+ .build(),
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
+ abortSignal: requestOptions?.abortSignal,
+ fetchFn: this._options?.fetch,
+ logging: this._options.logging,
+ });
+ if (_response.ok) {
+ return {
+ data: _response.body as Management.ListRateLimitPoliciesPaginatedResponseContent,
+ rawResponse: _response.rawResponse,
+ };
+ }
+ if (_response.error.reason === "status-code") {
+ switch (_response.error.statusCode) {
+ case 400:
+ throw new Management.BadRequestError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ case 401:
+ throw new Management.UnauthorizedError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ case 403:
+ throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse);
+ case 429:
+ throw new Management.TooManyRequestsError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ default:
+ throw new errors.ManagementError({
+ statusCode: _response.error.statusCode,
+ body: _response.error.body,
+ rawResponse: _response.rawResponse,
+ });
+ }
+ }
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/rate-limit-policies");
+ },
+ );
+ const dataWithRawResponse = await list(request).withRawResponse();
+ return new core.Page({
+ response: dataWithRawResponse.data,
+ rawResponse: dataWithRawResponse.rawResponse,
+ hasNextPage: (response) =>
+ response?.next != null && !(typeof response?.next === "string" && response?.next === ""),
+ getItems: (response) => response?.rate_limit_policies ?? [],
+ loadPage: (response) => {
+ return list(core.setObjectProperty(request, "from", response?.next));
+ },
+ });
+ }
+
+ /**
+ * @param {Management.CreateRateLimitPolicyRequestContent} request
+ * @param {RateLimitPoliciesClient.RequestOptions} requestOptions - Request-specific configuration.
+ *
+ * @throws {@link Management.BadRequestError}
+ * @throws {@link Management.UnauthorizedError}
+ * @throws {@link Management.ForbiddenError}
+ * @throws {@link Management.ConflictError}
+ * @throws {@link Management.TooManyRequestsError}
+ *
+ * @example
+ * await client.rateLimitPolicies.create({
+ * resource: "oauth_authentication_api",
+ * consumer: "client",
+ * consumer_selector: "consumer_selector",
+ * configuration: {
+ * action: "allow"
+ * }
+ * })
+ */
+ public create(
+ request: Management.CreateRateLimitPolicyRequestContent,
+ requestOptions?: RateLimitPoliciesClient.RequestOptions,
+ ): core.HttpResponsePromise {
+ return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions));
+ }
+
+ private async __create(
+ request: Management.CreateRateLimitPolicyRequestContent,
+ requestOptions?: RateLimitPoliciesClient.RequestOptions,
+ ): Promise> {
+ const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();
+ let _headers: core.Fetcher.Args["headers"] = mergeHeaders(
+ _authRequest.headers,
+ this._options?.headers,
+ requestOptions?.headers,
+ );
+ const _response = await (this._options.fetcher ?? core.fetcher)({
+ url: core.url.join(
+ (await core.Supplier.get(this._options.baseUrl)) ??
+ (await core.Supplier.get(this._options.environment)) ??
+ environments.ManagementEnvironment.Default,
+ "rate-limit-policies",
+ ),
+ method: "POST",
+ headers: _headers,
+ contentType: "application/json",
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
+ requestType: "json",
+ body: request,
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
+ abortSignal: requestOptions?.abortSignal,
+ fetchFn: this._options?.fetch,
+ logging: this._options.logging,
+ });
+ if (_response.ok) {
+ return {
+ data: _response.body as Management.CreateRateLimitPolicyResponseContent,
+ rawResponse: _response.rawResponse,
+ };
+ }
+
+ if (_response.error.reason === "status-code") {
+ switch (_response.error.statusCode) {
+ case 400:
+ throw new Management.BadRequestError(_response.error.body as unknown, _response.rawResponse);
+ case 401:
+ throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse);
+ case 403:
+ throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse);
+ case 409:
+ throw new Management.ConflictError(_response.error.body as unknown, _response.rawResponse);
+ case 429:
+ throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse);
+ default:
+ throw new errors.ManagementError({
+ statusCode: _response.error.statusCode,
+ body: _response.error.body,
+ rawResponse: _response.rawResponse,
+ });
+ }
+ }
+
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/rate-limit-policies");
+ }
+
+ /**
+ * @param {string} id - Unique identifier for the Rate Limit Policy.
+ * @param {RateLimitPoliciesClient.RequestOptions} requestOptions - Request-specific configuration.
+ *
+ * @throws {@link Management.UnauthorizedError}
+ * @throws {@link Management.ForbiddenError}
+ * @throws {@link Management.NotFoundError}
+ * @throws {@link Management.TooManyRequestsError}
+ *
+ * @example
+ * await client.rateLimitPolicies.get("id")
+ */
+ public get(
+ id: string,
+ requestOptions?: RateLimitPoliciesClient.RequestOptions,
+ ): core.HttpResponsePromise {
+ return core.HttpResponsePromise.fromPromise(this.__get(id, requestOptions));
+ }
+
+ private async __get(
+ id: string,
+ requestOptions?: RateLimitPoliciesClient.RequestOptions,
+ ): Promise> {
+ const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();
+ let _headers: core.Fetcher.Args["headers"] = mergeHeaders(
+ _authRequest.headers,
+ this._options?.headers,
+ requestOptions?.headers,
+ );
+ const _response = await (this._options.fetcher ?? core.fetcher)({
+ url: core.url.join(
+ (await core.Supplier.get(this._options.baseUrl)) ??
+ (await core.Supplier.get(this._options.environment)) ??
+ environments.ManagementEnvironment.Default,
+ `rate-limit-policies/${core.url.encodePathParam(id)}`,
+ ),
+ method: "GET",
+ headers: _headers,
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
+ abortSignal: requestOptions?.abortSignal,
+ fetchFn: this._options?.fetch,
+ logging: this._options.logging,
+ });
+ if (_response.ok) {
+ return {
+ data: _response.body as Management.GetRateLimitPolicyResponseContent,
+ rawResponse: _response.rawResponse,
+ };
+ }
+
+ if (_response.error.reason === "status-code") {
+ switch (_response.error.statusCode) {
+ case 401:
+ throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse);
+ case 403:
+ throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse);
+ case 404:
+ throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse);
+ case 429:
+ throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse);
+ default:
+ throw new errors.ManagementError({
+ statusCode: _response.error.statusCode,
+ body: _response.error.body,
+ rawResponse: _response.rawResponse,
+ });
+ }
+ }
+
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/rate-limit-policies/{id}");
+ }
+
+ /**
+ * @param {string} id - Unique identifier for the Rate Limit Policy.
+ * @param {RateLimitPoliciesClient.RequestOptions} requestOptions - Request-specific configuration.
+ *
+ * @throws {@link Management.UnauthorizedError}
+ * @throws {@link Management.ForbiddenError}
+ * @throws {@link Management.NotFoundError}
+ * @throws {@link Management.TooManyRequestsError}
+ *
+ * @example
+ * await client.rateLimitPolicies.delete("id")
+ */
+ public delete(id: string, requestOptions?: RateLimitPoliciesClient.RequestOptions): core.HttpResponsePromise {
+ return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions));
+ }
+
+ private async __delete(
+ id: string,
+ requestOptions?: RateLimitPoliciesClient.RequestOptions,
+ ): Promise> {
+ const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();
+ let _headers: core.Fetcher.Args["headers"] = mergeHeaders(
+ _authRequest.headers,
+ this._options?.headers,
+ requestOptions?.headers,
+ );
+ const _response = await (this._options.fetcher ?? core.fetcher)({
+ url: core.url.join(
+ (await core.Supplier.get(this._options.baseUrl)) ??
+ (await core.Supplier.get(this._options.environment)) ??
+ environments.ManagementEnvironment.Default,
+ `rate-limit-policies/${core.url.encodePathParam(id)}`,
+ ),
+ method: "DELETE",
+ headers: _headers,
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
+ abortSignal: requestOptions?.abortSignal,
+ fetchFn: this._options?.fetch,
+ logging: this._options.logging,
+ });
+ if (_response.ok) {
+ return { data: undefined, rawResponse: _response.rawResponse };
+ }
+
+ if (_response.error.reason === "status-code") {
+ switch (_response.error.statusCode) {
+ case 401:
+ throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse);
+ case 403:
+ throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse);
+ case 404:
+ throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse);
+ case 429:
+ throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse);
+ default:
+ throw new errors.ManagementError({
+ statusCode: _response.error.statusCode,
+ body: _response.error.body,
+ rawResponse: _response.rawResponse,
+ });
+ }
+ }
+
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/rate-limit-policies/{id}");
+ }
+
+ /**
+ * @param {string} id - Unique identifier for the Rate Limit Policy.
+ * @param {Management.PatchRateLimitPolicyRequestContent} request
+ * @param {RateLimitPoliciesClient.RequestOptions} requestOptions - Request-specific configuration.
+ *
+ * @throws {@link Management.BadRequestError}
+ * @throws {@link Management.UnauthorizedError}
+ * @throws {@link Management.ForbiddenError}
+ * @throws {@link Management.NotFoundError}
+ * @throws {@link Management.TooManyRequestsError}
+ *
+ * @example
+ * await client.rateLimitPolicies.update("id", {
+ * configuration: {
+ * action: "allow"
+ * }
+ * })
+ */
+ public update(
+ id: string,
+ request: Management.PatchRateLimitPolicyRequestContent,
+ requestOptions?: RateLimitPoliciesClient.RequestOptions,
+ ): core.HttpResponsePromise {
+ return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions));
+ }
+
+ private async __update(
+ id: string,
+ request: Management.PatchRateLimitPolicyRequestContent,
+ requestOptions?: RateLimitPoliciesClient.RequestOptions,
+ ): Promise> {
+ const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();
+ let _headers: core.Fetcher.Args["headers"] = mergeHeaders(
+ _authRequest.headers,
+ this._options?.headers,
+ requestOptions?.headers,
+ );
+ const _response = await (this._options.fetcher ?? core.fetcher)({
+ url: core.url.join(
+ (await core.Supplier.get(this._options.baseUrl)) ??
+ (await core.Supplier.get(this._options.environment)) ??
+ environments.ManagementEnvironment.Default,
+ `rate-limit-policies/${core.url.encodePathParam(id)}`,
+ ),
+ method: "PATCH",
+ headers: _headers,
+ contentType: "application/json",
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
+ requestType: "json",
+ body: request,
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
+ abortSignal: requestOptions?.abortSignal,
+ fetchFn: this._options?.fetch,
+ logging: this._options.logging,
+ });
+ if (_response.ok) {
+ return {
+ data: _response.body as Management.UpdateRateLimitPolicyResponseContent,
+ rawResponse: _response.rawResponse,
+ };
+ }
+
+ if (_response.error.reason === "status-code") {
+ switch (_response.error.statusCode) {
+ case 400:
+ throw new Management.BadRequestError(_response.error.body as unknown, _response.rawResponse);
+ case 401:
+ throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse);
+ case 403:
+ throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse);
+ case 404:
+ throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse);
+ case 429:
+ throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse);
+ default:
+ throw new errors.ManagementError({
+ statusCode: _response.error.statusCode,
+ body: _response.error.body,
+ rawResponse: _response.rawResponse,
+ });
+ }
+ }
+
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "PATCH", "/rate-limit-policies/{id}");
+ }
+}
diff --git a/src/management/api/resources/rateLimitPolicies/client/index.ts b/src/management/api/resources/rateLimitPolicies/client/index.ts
new file mode 100644
index 0000000000..cb0ff5c3b5
--- /dev/null
+++ b/src/management/api/resources/rateLimitPolicies/client/index.ts
@@ -0,0 +1 @@
+export {};
diff --git a/src/management/api/resources/rateLimitPolicies/index.ts b/src/management/api/resources/rateLimitPolicies/index.ts
new file mode 100644
index 0000000000..914b8c3c72
--- /dev/null
+++ b/src/management/api/resources/rateLimitPolicies/index.ts
@@ -0,0 +1 @@
+export * from "./client/index.js";
diff --git a/src/management/api/resources/roles/client/Client.ts b/src/management/api/resources/roles/client/Client.ts
index 4a55d56802..7118b0b2b0 100644
--- a/src/management/api/resources/roles/client/Client.ts
+++ b/src/management/api/resources/roles/client/Client.ts
@@ -8,6 +8,7 @@ import * as environments from "../../../../environments.js";
import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js";
import * as errors from "../../../../errors/index.js";
import * as Management from "../../../index.js";
+import { GroupsClient } from "../resources/groups/client/Client.js";
import { PermissionsClient } from "../resources/permissions/client/Client.js";
import { UsersClient } from "../resources/users/client/Client.js";
@@ -19,6 +20,7 @@ export declare namespace RolesClient {
export class RolesClient {
protected readonly _options: NormalizedClientOptionsWithAuth;
+ protected _groups: GroupsClient | undefined;
protected _permissions: PermissionsClient | undefined;
protected _users: UsersClient | undefined;
@@ -26,6 +28,10 @@ export class RolesClient {
this._options = normalizeClientOptionsWithAuth(options);
}
+ public get groups(): GroupsClient {
+ return (this._groups ??= new GroupsClient(this._options));
+ }
+
public get permissions(): PermissionsClient {
return (this._permissions ??= new PermissionsClient(this._options));
}
@@ -37,7 +43,7 @@ export class RolesClient {
/**
* 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.
+ * **Note**: The returned list does not include standard roles available for tenant members, such as Admin or Support Access.
*
* @param {Management.ListRolesRequestParameters} request
* @param {RolesClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -152,9 +158,9 @@ export class RolesClient {
}
/**
- * Create a user role for Role-Based Access Control.
+ * Create a user role for [Role-Based Access Control](https://auth0.com/docs/manage-users/access-control/rbac).
*
- * 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.
+ * **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.
*
* @param {Management.CreateRoleRequestContent} request
* @param {RolesClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -235,7 +241,7 @@ export class RolesClient {
}
/**
- * Retrieve details about a specific user role specified by ID.
+ * Retrieve details about a specific [user role](https://auth0.com/docs/manage-users/access-control/rbac) specified by ID.
*
* @param {string} id - ID of the role to retrieve.
* @param {RolesClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -311,7 +317,7 @@ export class RolesClient {
}
/**
- * 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.
+ * Delete a specific [user role](https://auth0.com/docs/manage-users/access-control/rbac) from your tenant. Once deleted, it is removed from any user who was previously assigned that role. This action cannot be undone.
*
* @param {string} id - ID of the role to delete.
* @param {RolesClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -384,7 +390,7 @@ export class RolesClient {
}
/**
- * Modify the details of a specific user role specified by ID.
+ * Modify the details of a specific [user role](https://auth0.com/docs/manage-users/access-control/rbac) specified by ID.
*
* @param {string} id - ID of the role to update.
* @param {Management.UpdateRoleRequestContent} request
diff --git a/src/management/api/resources/roles/resources/groups/client/Client.ts b/src/management/api/resources/roles/resources/groups/client/Client.ts
new file mode 100644
index 0000000000..8f55d6c692
--- /dev/null
+++ b/src/management/api/resources/roles/resources/groups/client/Client.ts
@@ -0,0 +1,296 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js";
+import { normalizeClientOptionsWithAuth, type NormalizedClientOptionsWithAuth } from "../../../../../../BaseClient.js";
+import * as core from "../../../../../../core/index.js";
+import { mergeHeaders } from "../../../../../../core/headers.js";
+import * as environments from "../../../../../../environments.js";
+import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js";
+import * as errors from "../../../../../../errors/index.js";
+import * as Management from "../../../../../index.js";
+
+export declare namespace GroupsClient {
+ export type Options = BaseClientOptions;
+
+ export interface RequestOptions extends BaseRequestOptions {}
+}
+
+export class GroupsClient {
+ protected readonly _options: NormalizedClientOptionsWithAuth;
+
+ constructor(options: GroupsClient.Options) {
+ this._options = normalizeClientOptionsWithAuth(options);
+ }
+
+ /**
+ * Lists the groups to which the specified role is assigned.
+ *
+ * @param {string} id - Unique identifier for the role (service-generated).
+ * @param {Management.ListRoleGroupsParameters} request
+ * @param {GroupsClient.RequestOptions} requestOptions - Request-specific configuration.
+ *
+ * @throws {@link Management.BadRequestError}
+ * @throws {@link Management.UnauthorizedError}
+ * @throws {@link Management.ForbiddenError}
+ * @throws {@link Management.TooManyRequestsError}
+ *
+ * @example
+ * await client.roles.groups.get("id", {
+ * from: "from",
+ * take: 1
+ * })
+ */
+ public async get(
+ id: string,
+ request: Management.ListRoleGroupsParameters = {},
+ requestOptions?: GroupsClient.RequestOptions,
+ ): Promise> {
+ const list = core.HttpResponsePromise.interceptFunction(
+ async (
+ request: Management.ListRoleGroupsParameters,
+ ): Promise> => {
+ const { from: from_, take = 50 } = request;
+ const _queryParams: Record = {
+ from: from_,
+ take,
+ };
+ const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();
+ let _headers: core.Fetcher.Args["headers"] = mergeHeaders(
+ _authRequest.headers,
+ this._options?.headers,
+ requestOptions?.headers,
+ );
+ const _response = await (this._options.fetcher ?? core.fetcher)({
+ url: core.url.join(
+ (await core.Supplier.get(this._options.baseUrl)) ??
+ (await core.Supplier.get(this._options.environment)) ??
+ environments.ManagementEnvironment.Default,
+ `roles/${core.url.encodePathParam(id)}/groups`,
+ ),
+ method: "GET",
+ headers: _headers,
+ queryString: core.url
+ .queryBuilder()
+ .addMany(_queryParams)
+ .mergeAdditional(requestOptions?.queryParams)
+ .build(),
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
+ abortSignal: requestOptions?.abortSignal,
+ fetchFn: this._options?.fetch,
+ logging: this._options.logging,
+ });
+ if (_response.ok) {
+ return {
+ data: _response.body as Management.ListRoleGroupsResponseContent,
+ rawResponse: _response.rawResponse,
+ };
+ }
+ if (_response.error.reason === "status-code") {
+ switch (_response.error.statusCode) {
+ case 400:
+ throw new Management.BadRequestError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ case 401:
+ throw new Management.UnauthorizedError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ case 403:
+ throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse);
+ case 429:
+ throw new Management.TooManyRequestsError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ default:
+ throw new errors.ManagementError({
+ statusCode: _response.error.statusCode,
+ body: _response.error.body,
+ rawResponse: _response.rawResponse,
+ });
+ }
+ }
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/roles/{id}/groups");
+ },
+ );
+ const dataWithRawResponse = await list(request).withRawResponse();
+ return new core.Page({
+ response: dataWithRawResponse.data,
+ rawResponse: dataWithRawResponse.rawResponse,
+ hasNextPage: (response) =>
+ response?.next != null && !(typeof response?.next === "string" && response?.next === ""),
+ getItems: (response) => response?.groups ?? [],
+ loadPage: (response) => {
+ return list(core.setObjectProperty(request, "from", response?.next));
+ },
+ });
+ }
+
+ /**
+ * Assign one or more groups to a specified role.
+ *
+ * @param {string} id - Unique identifier for the role (service-generated).
+ * @param {Management.AssignRoleGroupsRequestContent} request
+ * @param {GroupsClient.RequestOptions} requestOptions - Request-specific configuration.
+ *
+ * @throws {@link Management.BadRequestError}
+ * @throws {@link Management.UnauthorizedError}
+ * @throws {@link Management.ForbiddenError}
+ * @throws {@link Management.NotFoundError}
+ * @throws {@link Management.TooManyRequestsError}
+ *
+ * @example
+ * await client.roles.groups.create("id", {
+ * groups: ["groups"]
+ * })
+ */
+ public create(
+ id: string,
+ request: Management.AssignRoleGroupsRequestContent,
+ requestOptions?: GroupsClient.RequestOptions,
+ ): core.HttpResponsePromise {
+ return core.HttpResponsePromise.fromPromise(this.__create(id, request, requestOptions));
+ }
+
+ private async __create(
+ id: string,
+ request: Management.AssignRoleGroupsRequestContent,
+ requestOptions?: GroupsClient.RequestOptions,
+ ): Promise> {
+ const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();
+ let _headers: core.Fetcher.Args["headers"] = mergeHeaders(
+ _authRequest.headers,
+ this._options?.headers,
+ requestOptions?.headers,
+ );
+ const _response = await (this._options.fetcher ?? core.fetcher)({
+ url: core.url.join(
+ (await core.Supplier.get(this._options.baseUrl)) ??
+ (await core.Supplier.get(this._options.environment)) ??
+ environments.ManagementEnvironment.Default,
+ `roles/${core.url.encodePathParam(id)}/groups`,
+ ),
+ method: "POST",
+ headers: _headers,
+ contentType: "application/json",
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
+ requestType: "json",
+ body: request,
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
+ abortSignal: requestOptions?.abortSignal,
+ fetchFn: this._options?.fetch,
+ logging: this._options.logging,
+ });
+ if (_response.ok) {
+ return { data: undefined, rawResponse: _response.rawResponse };
+ }
+
+ if (_response.error.reason === "status-code") {
+ switch (_response.error.statusCode) {
+ case 400:
+ throw new Management.BadRequestError(_response.error.body as unknown, _response.rawResponse);
+ case 401:
+ throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse);
+ case 403:
+ throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse);
+ case 404:
+ throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse);
+ case 429:
+ throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse);
+ default:
+ throw new errors.ManagementError({
+ statusCode: _response.error.statusCode,
+ body: _response.error.body,
+ rawResponse: _response.rawResponse,
+ });
+ }
+ }
+
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/roles/{id}/groups");
+ }
+
+ /**
+ * Unassign one or more groups from a specified role.
+ *
+ * @param {string} id - Unique identifier for the role (service-generated).
+ * @param {Management.DeleteRoleGroupsRequestContent} request
+ * @param {GroupsClient.RequestOptions} requestOptions - Request-specific configuration.
+ *
+ * @throws {@link Management.BadRequestError}
+ * @throws {@link Management.UnauthorizedError}
+ * @throws {@link Management.ForbiddenError}
+ * @throws {@link Management.TooManyRequestsError}
+ *
+ * @example
+ * await client.roles.groups.delete("id", {
+ * groups: ["groups"]
+ * })
+ */
+ public delete(
+ id: string,
+ request: Management.DeleteRoleGroupsRequestContent,
+ requestOptions?: GroupsClient.RequestOptions,
+ ): core.HttpResponsePromise {
+ return core.HttpResponsePromise.fromPromise(this.__delete(id, request, requestOptions));
+ }
+
+ private async __delete(
+ id: string,
+ request: Management.DeleteRoleGroupsRequestContent,
+ requestOptions?: GroupsClient.RequestOptions,
+ ): Promise> {
+ const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();
+ let _headers: core.Fetcher.Args["headers"] = mergeHeaders(
+ _authRequest.headers,
+ this._options?.headers,
+ requestOptions?.headers,
+ );
+ const _response = await (this._options.fetcher ?? core.fetcher)({
+ url: core.url.join(
+ (await core.Supplier.get(this._options.baseUrl)) ??
+ (await core.Supplier.get(this._options.environment)) ??
+ environments.ManagementEnvironment.Default,
+ `roles/${core.url.encodePathParam(id)}/groups`,
+ ),
+ method: "DELETE",
+ headers: _headers,
+ contentType: "application/json",
+ queryString: core.url.queryBuilder().mergeAdditional(requestOptions?.queryParams).build(),
+ requestType: "json",
+ body: request,
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
+ abortSignal: requestOptions?.abortSignal,
+ fetchFn: this._options?.fetch,
+ logging: this._options.logging,
+ });
+ if (_response.ok) {
+ return { data: undefined, rawResponse: _response.rawResponse };
+ }
+
+ if (_response.error.reason === "status-code") {
+ switch (_response.error.statusCode) {
+ case 400:
+ throw new Management.BadRequestError(_response.error.body as unknown, _response.rawResponse);
+ case 401:
+ throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse);
+ case 403:
+ throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse);
+ case 429:
+ throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse);
+ default:
+ throw new errors.ManagementError({
+ statusCode: _response.error.statusCode,
+ body: _response.error.body,
+ rawResponse: _response.rawResponse,
+ });
+ }
+ }
+
+ return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/roles/{id}/groups");
+ }
+}
diff --git a/src/management/api/resources/roles/resources/groups/client/index.ts b/src/management/api/resources/roles/resources/groups/client/index.ts
new file mode 100644
index 0000000000..cb0ff5c3b5
--- /dev/null
+++ b/src/management/api/resources/roles/resources/groups/client/index.ts
@@ -0,0 +1 @@
+export {};
diff --git a/src/management/api/resources/roles/resources/groups/index.ts b/src/management/api/resources/roles/resources/groups/index.ts
new file mode 100644
index 0000000000..914b8c3c72
--- /dev/null
+++ b/src/management/api/resources/roles/resources/groups/index.ts
@@ -0,0 +1 @@
+export * from "./client/index.js";
diff --git a/src/management/api/resources/roles/resources/index.ts b/src/management/api/resources/roles/resources/index.ts
index 60a0bccefd..383b96e2c8 100644
--- a/src/management/api/resources/roles/resources/index.ts
+++ b/src/management/api/resources/roles/resources/index.ts
@@ -1,2 +1,3 @@
+export * as groups from "./groups/index.js";
export * as permissions from "./permissions/index.js";
export * as users from "./users/index.js";
diff --git a/src/management/api/resources/roles/resources/permissions/client/Client.ts b/src/management/api/resources/roles/resources/permissions/client/Client.ts
index 3fd5128cb4..330d8da48a 100644
--- a/src/management/api/resources/roles/resources/permissions/client/Client.ts
+++ b/src/management/api/resources/roles/resources/permissions/client/Client.ts
@@ -146,7 +146,7 @@ export class PermissionsClient {
}
/**
- * Add one or more permissions to a specified user role.
+ * Add one or more [permissions](https://auth0.com/docs/manage-users/access-control/configure-core-rbac/manage-permissions) to a specified user role.
*
* @param {string} id - ID of the role to add permissions to.
* @param {Management.AddRolePermissionsRequestContent} request
@@ -230,7 +230,7 @@ export class PermissionsClient {
}
/**
- * Remove one or more permissions from a specified user role.
+ * Remove one or more [permissions](https://auth0.com/docs/manage-users/access-control/configure-core-rbac/manage-permissions) from a specified user role.
*
* @param {string} id - ID of the role to remove permissions from.
* @param {Management.DeleteRolePermissionsRequestContent} request
diff --git a/src/management/api/resources/roles/resources/users/client/Client.ts b/src/management/api/resources/roles/resources/users/client/Client.ts
index 35b0871dff..b14985c39e 100644
--- a/src/management/api/resources/roles/resources/users/client/Client.ts
+++ b/src/management/api/resources/roles/resources/users/client/Client.ts
@@ -23,25 +23,23 @@ export class UsersClient {
}
/**
- * Retrieve list of users associated with a specific role. For Dashboard instructions, review View Users Assigned to Roles.
+ * Retrieve list of users associated with a specific role. For Dashboard instructions, review [View Users Assigned to Roles](https://auth0.com/docs/manage-users/access-control/configure-core-rbac/roles/view-users-assigned-to-roles).
*
* This endpoint supports two types of pagination:
- *
- * - Offset pagination
- * - Checkpoint pagination
- *
+ *
+ * - Offset pagination
+ * - Checkpoint pagination
*
* Checkpoint pagination must be used if you need to retrieve more than 1000 organization members.
*
- * Checkpoint Pagination
+ * **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.
+ * - `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.
*
* @param {string} id - ID of the role to retrieve a list of users associated with.
* @param {Management.ListRoleUsersRequestParameters} request
@@ -151,9 +149,9 @@ export class UsersClient {
}
/**
- * Assign one or more users to an existing user role. To learn more, review Role-Based Access Control.
+ * Assign one or more users to an existing user role. To learn more, review [Role-Based Access Control](https://auth0.com/docs/manage-users/access-control/rbac).
*
- * Note: New roles cannot be created through this action.
+ * **Note**: New roles cannot be created through this action.
*
* @param {string} id - ID of the role to assign users to.
* @param {Management.AssignRoleUsersRequestContent} request
diff --git a/src/management/api/resources/rules/client/Client.ts b/src/management/api/resources/rules/client/Client.ts
index 3f3f3b7bab..5c773ba522 100644
--- a/src/management/api/resources/rules/client/Client.ts
+++ b/src/management/api/resources/rules/client/Client.ts
@@ -23,7 +23,7 @@ export class RulesClient {
}
/**
- * Retrieve a filtered list of rules. Accepts a list of fields to include or exclude.
+ * Retrieve a filtered list of [rules](https://auth0.com/docs/rules). Accepts a list of fields to include or exclude.
*
* @param {Management.ListRulesRequestParameters} request
* @param {RulesClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -147,9 +147,9 @@ export class RulesClient {
}
/**
- * Create a new rule.
+ * Create a [new rule](https://auth0.com/docs/rules#create-a-new-rule-using-the-management-api).
*
- * Note: Changing a rule's stage of execution from the default login_success can change the rule's function signature to have user omitted.
+ * Note: Changing a rule's stage of execution from the default `login_success` can change the rule's function signature to have user omitted.
*
* @param {Management.CreateRuleRequestContent} request
* @param {RulesClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -231,7 +231,7 @@ export class RulesClient {
}
/**
- * Retrieve rule details. Accepts a list of fields to include or exclude in the result.
+ * Retrieve [rule](https://auth0.com/docs/rules) details. Accepts a list of fields to include or exclude in the result.
*
* @param {string} id - ID of the rule to retrieve.
* @param {Management.GetRuleRequestParameters} request
diff --git a/src/management/api/resources/userAttributeProfiles/client/Client.ts b/src/management/api/resources/userAttributeProfiles/client/Client.ts
index 600f19609e..0c3398a4bd 100644
--- a/src/management/api/resources/userAttributeProfiles/client/Client.ts
+++ b/src/management/api/resources/userAttributeProfiles/client/Client.ts
@@ -138,7 +138,7 @@ export class UserAttributeProfilesClient {
}
/**
- * Create a User Attribute Profile
+ * Create a User Attribute Profile.
*
* @param {Management.CreateUserAttributeProfileRequestContent} request
* @param {UserAttributeProfilesClient.RequestOptions} requestOptions - Request-specific configuration.
diff --git a/src/management/api/resources/userBlocks/client/Client.ts b/src/management/api/resources/userBlocks/client/Client.ts
index cecdd8c2ee..98d062f9f1 100644
--- a/src/management/api/resources/userBlocks/client/Client.ts
+++ b/src/management/api/resources/userBlocks/client/Client.ts
@@ -23,7 +23,7 @@ export class UserBlocksClient {
}
/**
- * Retrieve details of all Brute-force Protection blocks for a user with the given identifier (username, phone number, or email).
+ * Retrieve details of all [Brute-force Protection](https://auth0.com/docs/secure/attack-protection/brute-force-protection) blocks for a user with the given identifier (username, phone number, or email).
*
* @param {Management.ListUserBlocksByIdentifierRequestParameters} request
* @param {UserBlocksClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -111,9 +111,9 @@ export class UserBlocksClient {
}
/**
- * Remove all Brute-force Protection blocks for the user with the given identifier (username, phone number, or email).
+ * Remove all [Brute-force Protection](https://auth0.com/docs/secure/attack-protection/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.
+ * Note: This endpoint does not unblock users that were [blocked by a tenant administrator](https://auth0.com/docs/user-profile#block-and-unblock-a-user).
*
* @param {Management.DeleteUserBlocksByIdentifierRequestParameters} request
* @param {UserBlocksClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -196,7 +196,7 @@ export class UserBlocksClient {
}
/**
- * Retrieve details of all Brute-force Protection blocks for the user with the given ID.
+ * Retrieve details of all [Brute-force Protection](https://auth0.com/docs/secure/attack-protection/brute-force-protection) blocks for the user with the given ID.
*
* @param {string} id - user_id of the user blocks to retrieve.
* @param {Management.ListUserBlocksRequestParameters} request
@@ -288,9 +288,9 @@ export class UserBlocksClient {
}
/**
- * Remove all Brute-force Protection blocks for the user with the given ID.
+ * Remove all [Brute-force Protection](https://auth0.com/docs/secure/attack-protection/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.
+ * Note: This endpoint does not unblock users that were [blocked by a tenant administrator](https://auth0.com/docs/user-profile#block-and-unblock-a-user).
*
* @param {string} id - The user_id of the user to update.
* @param {UserBlocksClient.RequestOptions} requestOptions - Request-specific configuration.
diff --git a/src/management/api/resources/users/client/Client.ts b/src/management/api/resources/users/client/Client.ts
index 10e8303ca0..065240330c 100644
--- a/src/management/api/resources/users/client/Client.ts
+++ b/src/management/api/resources/users/client/Client.ts
@@ -11,6 +11,8 @@ import * as Management from "../../../index.js";
import { AuthenticationMethodsClient } from "../resources/authenticationMethods/client/Client.js";
import { AuthenticatorsClient } from "../resources/authenticators/client/Client.js";
import { ConnectedAccountsClient } from "../resources/connectedAccounts/client/Client.js";
+import { EffectivePermissionsClient } from "../resources/effectivePermissions/client/Client.js";
+import { EffectiveRolesClient } from "../resources/effectiveRoles/client/Client.js";
import { EnrollmentsClient } from "../resources/enrollments/client/Client.js";
import { FederatedConnectionsTokensetsClient } from "../resources/federatedConnectionsTokensets/client/Client.js";
import { GroupsClient } from "../resources/groups/client/Client.js";
@@ -35,6 +37,8 @@ export class UsersClient {
protected _authenticationMethods: AuthenticationMethodsClient | undefined;
protected _authenticators: AuthenticatorsClient | undefined;
protected _connectedAccounts: ConnectedAccountsClient | undefined;
+ protected _effectivePermissions: EffectivePermissionsClient | undefined;
+ protected _effectiveRoles: EffectiveRolesClient | undefined;
protected _enrollments: EnrollmentsClient | undefined;
protected _federatedConnectionsTokensets: FederatedConnectionsTokensetsClient | undefined;
protected _groups: GroupsClient | undefined;
@@ -64,6 +68,14 @@ export class UsersClient {
return (this._connectedAccounts ??= new ConnectedAccountsClient(this._options));
}
+ public get effectivePermissions(): EffectivePermissionsClient {
+ return (this._effectivePermissions ??= new EffectivePermissionsClient(this._options));
+ }
+
+ public get effectiveRoles(): EffectiveRolesClient {
+ return (this._effectiveRoles ??= new EffectiveRolesClient(this._options));
+ }
+
public get enrollments(): EnrollmentsClient {
return (this._enrollments ??= new EnrollmentsClient(this._options));
}
@@ -119,14 +131,18 @@ export class UsersClient {
* - 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.
+ * The `q` query parameter can be used to get users that match the specified criteria [using query string syntax.](https://auth0.com/docs/users/search/v3/query-syntax)
+ *
+ * [Learn more about searching for users.](https://auth0.com/docs/users/search/v3)
+ *
+ * Read about [best practices](https://auth0.com/docs/users/search/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](https://auth0.com/docs/api/management/v2#!/Jobs/post_users_exports), or the [User Import / Export](https://auth0.com/docs/extensions/user-import-export) extension.
*
* @param {Management.ListUsersRequestParameters} request
* @param {UsersClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -265,9 +281,9 @@ export class UsersClient {
}
/**
- * Create a new user for a given database or passwordless connection.
+ * Create a new user for a given [database](https://auth0.com/docs/connections/database) or [passwordless](https://auth0.com/docs/connections/passwordless) connection.
*
- * Note: connection is required but other parameters such as email and password are dependent upon the type of connection.
+ * Note: `connection` is required but other parameters such as `email` and `password` are dependent upon the type of connection.
*
* @param {Management.CreateUserRequestContent} request
* @param {UsersClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -439,7 +455,7 @@ export class UsersClient {
}
/**
- * 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.
+ * 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](https://auth0.com/docs/manage-users/user-search/retrieve-users-with-get-users-endpoint).
*
* @param {string} id - ID of the user to retrieve.
* @param {Management.GetUserRequestParameters} request
@@ -530,7 +546,7 @@ export class UsersClient {
}
/**
- * Delete a user by user ID. This action cannot be undone. For Auth0 Dashboard instructions, see Delete Users.
+ * Delete a user by user ID. This action cannot be undone. For Auth0 Dashboard instructions, see [Delete Users](https://auth0.com/docs/manage-users/user-accounts/delete-users).
*
* @param {string} id - ID of the user to delete.
* @param {UsersClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -604,64 +620,84 @@ export class UsersClient {
*
* 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
- *
+ * - 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)
+ *
+ * - 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 } }
+ * ```json
+ * { "email_verified": true }
+ * ```
+ *
+ * **Updating a user metadata root property**
+ *
+ * Let's assume that our test user has the following `user_metadata`:
+ *
+ * ```json
+ * { "user_metadata" : { "profileCode": 1479 } }
+ * ```
*
- * To add the field addresses the body to send should be:
- * { "user_metadata" : { "addresses": {"work_address": "100 Industrial Way"} }}
+ * To add the field `addresses` the body to send should be:
*
- * The modified object ends up with the following user_metadata property:{
+ * ```json
+ * { "user_metadata" : { "addresses": {"work_address": "100 Industrial Way"} }}
+ * ```
+ *
+ * The modified object ends up with the following `user_metadata` property:
+ *
+ * ```json
+ * {
* "user_metadata": {
* "profileCode": 1479,
* "addresses": { "work_address": "100 Industrial Way" }
* }
- * }
+ * }
+ * ```
+ *
+ * **Updating an inner user metadata property**
*
- * 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:
- * {
+ * 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:
+ *
+ * ```json
+ * {
* "user_metadata": {
* "addresses": {
* "work_address": "100 Industrial Way",
* "home_address": "742 Evergreen Terrace"
* }
* }
- * }
+ * }
+ * ```
+ *
+ * The modified object ends up with the following `user_metadata` property:
*
- * The modified object ends up with the following user_metadata property:
- * {
+ * ```json
+ * {
* "user_metadata": {
* "profileCode": 1479,
* "addresses": {
@@ -669,7 +705,8 @@ export class UsersClient {
* "home_address": "742 Evergreen Terrace"
* }
* }
- * }
+ * }
+ * ```
*
* @param {string} id - ID of the user to update.
* @param {Management.UpdateUserRequestContent} request
@@ -751,7 +788,7 @@ export class UsersClient {
}
/**
- * 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.
+ * Remove an existing multi-factor authentication (MFA) [recovery code](https://auth0.com/docs/secure/multi-factor-authentication/reset-user-mfa) 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.
*
* @param {string} id - ID of the user to regenerate a multi-factor authentication recovery code for.
* @param {UsersClient.RequestOptions} requestOptions - Request-specific configuration.
diff --git a/src/management/api/resources/users/resources/authenticators/client/Client.ts b/src/management/api/resources/users/resources/authenticators/client/Client.ts
index dca89df5e3..7985543f8e 100644
--- a/src/management/api/resources/users/resources/authenticators/client/Client.ts
+++ b/src/management/api/resources/users/resources/authenticators/client/Client.ts
@@ -23,7 +23,7 @@ export class AuthenticatorsClient {
}
/**
- * 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.
+ * 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](https://auth0.com/docs/secure/multi-factor-authentication/manage-mfa-auth0-apis/manage-authentication-methods-with-management-api).
*
* @param {string} id - ID of the user to delete.
* @param {AuthenticatorsClient.RequestOptions} requestOptions - Request-specific configuration.
diff --git a/src/management/api/resources/users/resources/effectivePermissions/client/Client.ts b/src/management/api/resources/users/resources/effectivePermissions/client/Client.ts
new file mode 100644
index 0000000000..c459e8a3f2
--- /dev/null
+++ b/src/management/api/resources/users/resources/effectivePermissions/client/Client.ts
@@ -0,0 +1,155 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js";
+import { normalizeClientOptionsWithAuth, type NormalizedClientOptionsWithAuth } from "../../../../../../BaseClient.js";
+import * as core from "../../../../../../core/index.js";
+import { mergeHeaders } from "../../../../../../core/headers.js";
+import * as environments from "../../../../../../environments.js";
+import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js";
+import * as errors from "../../../../../../errors/index.js";
+import * as Management from "../../../../../index.js";
+import { SourcesClient } from "../resources/sources/client/Client.js";
+
+export declare namespace EffectivePermissionsClient {
+ export type Options = BaseClientOptions;
+
+ export interface RequestOptions extends BaseRequestOptions {}
+}
+
+export class EffectivePermissionsClient {
+ protected readonly _options: NormalizedClientOptionsWithAuth;
+ protected _sources: SourcesClient | undefined;
+
+ constructor(options: EffectivePermissionsClient.Options) {
+ this._options = normalizeClientOptionsWithAuth(options);
+ }
+
+ public get sources(): SourcesClient {
+ return (this._sources ??= new SourcesClient(this._options));
+ }
+
+ /**
+ * Returns the list of effective permissions for a user, taking into account permissions granted directly to the user, as well as those inherited through roles and group memberships.
+ *
+ * @param {string} id - ID of the user to retrieve the permissions for.
+ * @param {Management.ListUserEffectivePermissionsRequestParameters} request
+ * @param {EffectivePermissionsClient.RequestOptions} requestOptions - Request-specific configuration.
+ *
+ * @throws {@link Management.BadRequestError}
+ * @throws {@link Management.UnauthorizedError}
+ * @throws {@link Management.ForbiddenError}
+ * @throws {@link Management.NotFoundError}
+ * @throws {@link Management.TooManyRequestsError}
+ *
+ * @example
+ * await client.users.effectivePermissions.list("id", {
+ * from: "from",
+ * take: 1,
+ * resource_server_identifier: "resource_server_identifier"
+ * })
+ */
+ public async list(
+ id: string,
+ request: Management.ListUserEffectivePermissionsRequestParameters,
+ requestOptions?: EffectivePermissionsClient.RequestOptions,
+ ): Promise<
+ core.Page<
+ Management.UserEffectivePermissionResponseContent,
+ Management.ListUserEffectivePermissionsResponseContent
+ >
+ > {
+ const list = core.HttpResponsePromise.interceptFunction(
+ async (
+ request: Management.ListUserEffectivePermissionsRequestParameters,
+ ): Promise> => {
+ const { from: from_, take = 50, resource_server_identifier: resourceServerIdentifier } = request;
+ const _queryParams: Record = {
+ from: from_,
+ take,
+ resource_server_identifier: resourceServerIdentifier,
+ };
+ const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();
+ let _headers: core.Fetcher.Args["headers"] = mergeHeaders(
+ _authRequest.headers,
+ this._options?.headers,
+ requestOptions?.headers,
+ );
+ const _response = await (this._options.fetcher ?? core.fetcher)({
+ url: core.url.join(
+ (await core.Supplier.get(this._options.baseUrl)) ??
+ (await core.Supplier.get(this._options.environment)) ??
+ environments.ManagementEnvironment.Default,
+ `users/${core.url.encodePathParam(id)}/effective-permissions`,
+ ),
+ method: "GET",
+ headers: _headers,
+ queryString: core.url
+ .queryBuilder()
+ .addMany(_queryParams)
+ .mergeAdditional(requestOptions?.queryParams)
+ .build(),
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
+ abortSignal: requestOptions?.abortSignal,
+ fetchFn: this._options?.fetch,
+ logging: this._options.logging,
+ });
+ if (_response.ok) {
+ return {
+ data: _response.body as Management.ListUserEffectivePermissionsResponseContent,
+ rawResponse: _response.rawResponse,
+ };
+ }
+ if (_response.error.reason === "status-code") {
+ switch (_response.error.statusCode) {
+ case 400:
+ throw new Management.BadRequestError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ case 401:
+ throw new Management.UnauthorizedError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ case 403:
+ throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse);
+ case 404:
+ throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse);
+ case 429:
+ throw new Management.TooManyRequestsError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ default:
+ throw new errors.ManagementError({
+ statusCode: _response.error.statusCode,
+ body: _response.error.body,
+ rawResponse: _response.rawResponse,
+ });
+ }
+ }
+ return handleNonStatusCodeError(
+ _response.error,
+ _response.rawResponse,
+ "GET",
+ "/users/{id}/effective-permissions",
+ );
+ },
+ );
+ const dataWithRawResponse = await list(request).withRawResponse();
+ return new core.Page<
+ Management.UserEffectivePermissionResponseContent,
+ Management.ListUserEffectivePermissionsResponseContent
+ >({
+ response: dataWithRawResponse.data,
+ rawResponse: dataWithRawResponse.rawResponse,
+ hasNextPage: (response) =>
+ response?.next != null && !(typeof response?.next === "string" && response?.next === ""),
+ getItems: (response) => response?.permissions ?? [],
+ loadPage: (response) => {
+ return list(core.setObjectProperty(request, "from", response?.next));
+ },
+ });
+ }
+}
diff --git a/src/management/api/resources/users/resources/effectivePermissions/client/index.ts b/src/management/api/resources/users/resources/effectivePermissions/client/index.ts
new file mode 100644
index 0000000000..cb0ff5c3b5
--- /dev/null
+++ b/src/management/api/resources/users/resources/effectivePermissions/client/index.ts
@@ -0,0 +1 @@
+export {};
diff --git a/src/management/api/resources/users/resources/effectivePermissions/index.ts b/src/management/api/resources/users/resources/effectivePermissions/index.ts
new file mode 100644
index 0000000000..9eb1192dcc
--- /dev/null
+++ b/src/management/api/resources/users/resources/effectivePermissions/index.ts
@@ -0,0 +1,2 @@
+export * from "./client/index.js";
+export * from "./resources/index.js";
diff --git a/src/management/api/resources/users/resources/effectivePermissions/resources/index.ts b/src/management/api/resources/users/resources/effectivePermissions/resources/index.ts
new file mode 100644
index 0000000000..88c5bca7c7
--- /dev/null
+++ b/src/management/api/resources/users/resources/effectivePermissions/resources/index.ts
@@ -0,0 +1 @@
+export * as sources from "./sources/index.js";
diff --git a/src/management/api/resources/users/resources/effectivePermissions/resources/sources/client/Client.ts b/src/management/api/resources/users/resources/effectivePermissions/resources/sources/client/Client.ts
new file mode 100644
index 0000000000..2bd1147142
--- /dev/null
+++ b/src/management/api/resources/users/resources/effectivePermissions/resources/sources/client/Client.ts
@@ -0,0 +1,27 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type { BaseClientOptions } from "../../../../../../../../BaseClient.js";
+import {
+ normalizeClientOptionsWithAuth,
+ type NormalizedClientOptionsWithAuth,
+} from "../../../../../../../../BaseClient.js";
+import * as core from "../../../../../../../../core/index.js";
+import * as environments from "../../../../../../../../environments.js";
+import { RolesClient } from "../resources/roles/client/Client.js";
+
+export declare namespace SourcesClient {
+ export type Options = BaseClientOptions;
+}
+
+export class SourcesClient {
+ protected readonly _options: NormalizedClientOptionsWithAuth;
+ protected _roles: RolesClient | undefined;
+
+ constructor(options: SourcesClient.Options) {
+ this._options = normalizeClientOptionsWithAuth(options);
+ }
+
+ public get roles(): RolesClient {
+ return (this._roles ??= new RolesClient(this._options));
+ }
+}
diff --git a/src/management/api/resources/users/resources/effectivePermissions/resources/sources/client/index.ts b/src/management/api/resources/users/resources/effectivePermissions/resources/sources/client/index.ts
new file mode 100644
index 0000000000..cb0ff5c3b5
--- /dev/null
+++ b/src/management/api/resources/users/resources/effectivePermissions/resources/sources/client/index.ts
@@ -0,0 +1 @@
+export {};
diff --git a/src/management/api/resources/users/resources/effectivePermissions/resources/sources/index.ts b/src/management/api/resources/users/resources/effectivePermissions/resources/sources/index.ts
new file mode 100644
index 0000000000..9eb1192dcc
--- /dev/null
+++ b/src/management/api/resources/users/resources/effectivePermissions/resources/sources/index.ts
@@ -0,0 +1,2 @@
+export * from "./client/index.js";
+export * from "./resources/index.js";
diff --git a/src/management/api/resources/users/resources/effectivePermissions/resources/sources/resources/index.ts b/src/management/api/resources/users/resources/effectivePermissions/resources/sources/resources/index.ts
new file mode 100644
index 0000000000..b36e075187
--- /dev/null
+++ b/src/management/api/resources/users/resources/effectivePermissions/resources/sources/resources/index.ts
@@ -0,0 +1 @@
+export * as roles from "./roles/index.js";
diff --git a/src/management/api/resources/users/resources/effectivePermissions/resources/sources/resources/roles/client/Client.ts b/src/management/api/resources/users/resources/effectivePermissions/resources/sources/resources/roles/client/Client.ts
new file mode 100644
index 0000000000..00fbe424e4
--- /dev/null
+++ b/src/management/api/resources/users/resources/effectivePermissions/resources/sources/resources/roles/client/Client.ts
@@ -0,0 +1,159 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../../../../../BaseClient.js";
+import {
+ normalizeClientOptionsWithAuth,
+ type NormalizedClientOptionsWithAuth,
+} from "../../../../../../../../../../BaseClient.js";
+import * as core from "../../../../../../../../../../core/index.js";
+import { mergeHeaders } from "../../../../../../../../../../core/headers.js";
+import * as environments from "../../../../../../../../../../environments.js";
+import { handleNonStatusCodeError } from "../../../../../../../../../../errors/handleNonStatusCodeError.js";
+import * as errors from "../../../../../../../../../../errors/index.js";
+import * as Management from "../../../../../../../../../index.js";
+
+export declare namespace RolesClient {
+ export type Options = BaseClientOptions;
+
+ export interface RequestOptions extends BaseRequestOptions {}
+}
+
+export class RolesClient {
+ protected readonly _options: NormalizedClientOptionsWithAuth;
+
+ constructor(options: RolesClient.Options) {
+ this._options = normalizeClientOptionsWithAuth(options);
+ }
+
+ /**
+ * Lists the roles which grant the user a given permission, including roles assigned directly to the user and those inherited through group memberships.
+ *
+ * @param {string} id - ID of the user to retrieve the permissions for.
+ * @param {Management.ListUserEffectivePermissionRoleSourceRequestParameters} request
+ * @param {RolesClient.RequestOptions} requestOptions - Request-specific configuration.
+ *
+ * @throws {@link Management.BadRequestError}
+ * @throws {@link Management.UnauthorizedError}
+ * @throws {@link Management.ForbiddenError}
+ * @throws {@link Management.NotFoundError}
+ * @throws {@link Management.TooManyRequestsError}
+ *
+ * @example
+ * await client.users.effectivePermissions.sources.roles.list("id", {
+ * from: "from",
+ * take: 1,
+ * resource_server_identifier: "resource_server_identifier",
+ * permission_name: "permission_name"
+ * })
+ */
+ public async list(
+ id: string,
+ request: Management.ListUserEffectivePermissionRoleSourceRequestParameters,
+ requestOptions?: RolesClient.RequestOptions,
+ ): Promise<
+ core.Page<
+ Management.UserEffectivePermissionRoleSourceResponseContent,
+ Management.ListUserEffectivePermissionRoleSourcesResponseContent
+ >
+ > {
+ const list = core.HttpResponsePromise.interceptFunction(
+ async (
+ request: Management.ListUserEffectivePermissionRoleSourceRequestParameters,
+ ): Promise> => {
+ const {
+ from: from_,
+ take = 50,
+ resource_server_identifier: resourceServerIdentifier,
+ permission_name: permissionName,
+ } = request;
+ const _queryParams: Record = {
+ from: from_,
+ take,
+ resource_server_identifier: resourceServerIdentifier,
+ permission_name: permissionName,
+ };
+ const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();
+ let _headers: core.Fetcher.Args["headers"] = mergeHeaders(
+ _authRequest.headers,
+ this._options?.headers,
+ requestOptions?.headers,
+ );
+ const _response = await (this._options.fetcher ?? core.fetcher)({
+ url: core.url.join(
+ (await core.Supplier.get(this._options.baseUrl)) ??
+ (await core.Supplier.get(this._options.environment)) ??
+ environments.ManagementEnvironment.Default,
+ `users/${core.url.encodePathParam(id)}/effective-permissions/sources/effective-roles`,
+ ),
+ method: "GET",
+ headers: _headers,
+ queryString: core.url
+ .queryBuilder()
+ .addMany(_queryParams)
+ .mergeAdditional(requestOptions?.queryParams)
+ .build(),
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
+ abortSignal: requestOptions?.abortSignal,
+ fetchFn: this._options?.fetch,
+ logging: this._options.logging,
+ });
+ if (_response.ok) {
+ return {
+ data: _response.body as Management.ListUserEffectivePermissionRoleSourcesResponseContent,
+ rawResponse: _response.rawResponse,
+ };
+ }
+ if (_response.error.reason === "status-code") {
+ switch (_response.error.statusCode) {
+ case 400:
+ throw new Management.BadRequestError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ case 401:
+ throw new Management.UnauthorizedError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ case 403:
+ throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse);
+ case 404:
+ throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse);
+ case 429:
+ throw new Management.TooManyRequestsError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ default:
+ throw new errors.ManagementError({
+ statusCode: _response.error.statusCode,
+ body: _response.error.body,
+ rawResponse: _response.rawResponse,
+ });
+ }
+ }
+ return handleNonStatusCodeError(
+ _response.error,
+ _response.rawResponse,
+ "GET",
+ "/users/{id}/effective-permissions/sources/effective-roles",
+ );
+ },
+ );
+ const dataWithRawResponse = await list(request).withRawResponse();
+ return new core.Page<
+ Management.UserEffectivePermissionRoleSourceResponseContent,
+ Management.ListUserEffectivePermissionRoleSourcesResponseContent
+ >({
+ response: dataWithRawResponse.data,
+ rawResponse: dataWithRawResponse.rawResponse,
+ hasNextPage: (response) =>
+ response?.next != null && !(typeof response?.next === "string" && response?.next === ""),
+ getItems: (response) => response?.roles ?? [],
+ loadPage: (response) => {
+ return list(core.setObjectProperty(request, "from", response?.next));
+ },
+ });
+ }
+}
diff --git a/src/management/api/resources/users/resources/effectivePermissions/resources/sources/resources/roles/client/index.ts b/src/management/api/resources/users/resources/effectivePermissions/resources/sources/resources/roles/client/index.ts
new file mode 100644
index 0000000000..cb0ff5c3b5
--- /dev/null
+++ b/src/management/api/resources/users/resources/effectivePermissions/resources/sources/resources/roles/client/index.ts
@@ -0,0 +1 @@
+export {};
diff --git a/src/management/api/resources/users/resources/effectivePermissions/resources/sources/resources/roles/index.ts b/src/management/api/resources/users/resources/effectivePermissions/resources/sources/resources/roles/index.ts
new file mode 100644
index 0000000000..914b8c3c72
--- /dev/null
+++ b/src/management/api/resources/users/resources/effectivePermissions/resources/sources/resources/roles/index.ts
@@ -0,0 +1 @@
+export * from "./client/index.js";
diff --git a/src/management/api/resources/users/resources/effectiveRoles/client/Client.ts b/src/management/api/resources/users/resources/effectiveRoles/client/Client.ts
new file mode 100644
index 0000000000..807e1a0b07
--- /dev/null
+++ b/src/management/api/resources/users/resources/effectiveRoles/client/Client.ts
@@ -0,0 +1,142 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js";
+import { normalizeClientOptionsWithAuth, type NormalizedClientOptionsWithAuth } from "../../../../../../BaseClient.js";
+import * as core from "../../../../../../core/index.js";
+import { mergeHeaders } from "../../../../../../core/headers.js";
+import * as environments from "../../../../../../environments.js";
+import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js";
+import * as errors from "../../../../../../errors/index.js";
+import * as Management from "../../../../../index.js";
+import { SourcesClient } from "../resources/sources/client/Client.js";
+
+export declare namespace EffectiveRolesClient {
+ export type Options = BaseClientOptions;
+
+ export interface RequestOptions extends BaseRequestOptions {}
+}
+
+export class EffectiveRolesClient {
+ protected readonly _options: NormalizedClientOptionsWithAuth;
+ protected _sources: SourcesClient | undefined;
+
+ constructor(options: EffectiveRolesClient.Options) {
+ this._options = normalizeClientOptionsWithAuth(options);
+ }
+
+ public get sources(): SourcesClient {
+ return (this._sources ??= new SourcesClient(this._options));
+ }
+
+ /**
+ * Retrieve detailed list of effective roles for a user, including roles assigned directly and through group memberships.
+ *
+ * @param {string} id - ID of the user to list effective roles for.
+ * @param {Management.ListUserEffectiveRolesRequestParameters} request
+ * @param {EffectiveRolesClient.RequestOptions} requestOptions - Request-specific configuration.
+ *
+ * @throws {@link Management.BadRequestError}
+ * @throws {@link Management.UnauthorizedError}
+ * @throws {@link Management.ForbiddenError}
+ * @throws {@link Management.TooManyRequestsError}
+ *
+ * @example
+ * await client.users.effectiveRoles.list("id", {
+ * from: "from",
+ * take: 1
+ * })
+ */
+ public async list(
+ id: string,
+ request: Management.ListUserEffectiveRolesRequestParameters = {},
+ requestOptions?: EffectiveRolesClient.RequestOptions,
+ ): Promise> {
+ const list = core.HttpResponsePromise.interceptFunction(
+ async (
+ request: Management.ListUserEffectiveRolesRequestParameters,
+ ): Promise> => {
+ const { from: from_, take = 50 } = request;
+ const _queryParams: Record = {
+ from: from_,
+ take,
+ };
+ const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();
+ let _headers: core.Fetcher.Args["headers"] = mergeHeaders(
+ _authRequest.headers,
+ this._options?.headers,
+ requestOptions?.headers,
+ );
+ const _response = await (this._options.fetcher ?? core.fetcher)({
+ url: core.url.join(
+ (await core.Supplier.get(this._options.baseUrl)) ??
+ (await core.Supplier.get(this._options.environment)) ??
+ environments.ManagementEnvironment.Default,
+ `users/${core.url.encodePathParam(id)}/effective-roles`,
+ ),
+ method: "GET",
+ headers: _headers,
+ queryString: core.url
+ .queryBuilder()
+ .addMany(_queryParams)
+ .mergeAdditional(requestOptions?.queryParams)
+ .build(),
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
+ abortSignal: requestOptions?.abortSignal,
+ fetchFn: this._options?.fetch,
+ logging: this._options.logging,
+ });
+ if (_response.ok) {
+ return {
+ data: _response.body as Management.ListUserEffectiveRolesResponseContent,
+ rawResponse: _response.rawResponse,
+ };
+ }
+ if (_response.error.reason === "status-code") {
+ switch (_response.error.statusCode) {
+ case 400:
+ throw new Management.BadRequestError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ case 401:
+ throw new Management.UnauthorizedError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ case 403:
+ throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse);
+ case 429:
+ throw new Management.TooManyRequestsError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ default:
+ throw new errors.ManagementError({
+ statusCode: _response.error.statusCode,
+ body: _response.error.body,
+ rawResponse: _response.rawResponse,
+ });
+ }
+ }
+ return handleNonStatusCodeError(
+ _response.error,
+ _response.rawResponse,
+ "GET",
+ "/users/{id}/effective-roles",
+ );
+ },
+ );
+ const dataWithRawResponse = await list(request).withRawResponse();
+ return new core.Page({
+ response: dataWithRawResponse.data,
+ rawResponse: dataWithRawResponse.rawResponse,
+ hasNextPage: (response) =>
+ response?.next != null && !(typeof response?.next === "string" && response?.next === ""),
+ getItems: (response) => response?.roles ?? [],
+ loadPage: (response) => {
+ return list(core.setObjectProperty(request, "from", response?.next));
+ },
+ });
+ }
+}
diff --git a/src/management/api/resources/users/resources/effectiveRoles/client/index.ts b/src/management/api/resources/users/resources/effectiveRoles/client/index.ts
new file mode 100644
index 0000000000..cb0ff5c3b5
--- /dev/null
+++ b/src/management/api/resources/users/resources/effectiveRoles/client/index.ts
@@ -0,0 +1 @@
+export {};
diff --git a/src/management/api/resources/users/resources/effectiveRoles/index.ts b/src/management/api/resources/users/resources/effectiveRoles/index.ts
new file mode 100644
index 0000000000..9eb1192dcc
--- /dev/null
+++ b/src/management/api/resources/users/resources/effectiveRoles/index.ts
@@ -0,0 +1,2 @@
+export * from "./client/index.js";
+export * from "./resources/index.js";
diff --git a/src/management/api/resources/users/resources/effectiveRoles/resources/index.ts b/src/management/api/resources/users/resources/effectiveRoles/resources/index.ts
new file mode 100644
index 0000000000..88c5bca7c7
--- /dev/null
+++ b/src/management/api/resources/users/resources/effectiveRoles/resources/index.ts
@@ -0,0 +1 @@
+export * as sources from "./sources/index.js";
diff --git a/src/management/api/resources/users/resources/effectiveRoles/resources/sources/client/Client.ts b/src/management/api/resources/users/resources/effectiveRoles/resources/sources/client/Client.ts
new file mode 100644
index 0000000000..756e336bec
--- /dev/null
+++ b/src/management/api/resources/users/resources/effectiveRoles/resources/sources/client/Client.ts
@@ -0,0 +1,27 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type { BaseClientOptions } from "../../../../../../../../BaseClient.js";
+import {
+ normalizeClientOptionsWithAuth,
+ type NormalizedClientOptionsWithAuth,
+} from "../../../../../../../../BaseClient.js";
+import * as core from "../../../../../../../../core/index.js";
+import * as environments from "../../../../../../../../environments.js";
+import { GroupsClient } from "../resources/groups/client/Client.js";
+
+export declare namespace SourcesClient {
+ export type Options = BaseClientOptions;
+}
+
+export class SourcesClient {
+ protected readonly _options: NormalizedClientOptionsWithAuth;
+ protected _groups: GroupsClient | undefined;
+
+ constructor(options: SourcesClient.Options) {
+ this._options = normalizeClientOptionsWithAuth(options);
+ }
+
+ public get groups(): GroupsClient {
+ return (this._groups ??= new GroupsClient(this._options));
+ }
+}
diff --git a/src/management/api/resources/users/resources/effectiveRoles/resources/sources/client/index.ts b/src/management/api/resources/users/resources/effectiveRoles/resources/sources/client/index.ts
new file mode 100644
index 0000000000..cb0ff5c3b5
--- /dev/null
+++ b/src/management/api/resources/users/resources/effectiveRoles/resources/sources/client/index.ts
@@ -0,0 +1 @@
+export {};
diff --git a/src/management/api/resources/users/resources/effectiveRoles/resources/sources/index.ts b/src/management/api/resources/users/resources/effectiveRoles/resources/sources/index.ts
new file mode 100644
index 0000000000..9eb1192dcc
--- /dev/null
+++ b/src/management/api/resources/users/resources/effectiveRoles/resources/sources/index.ts
@@ -0,0 +1,2 @@
+export * from "./client/index.js";
+export * from "./resources/index.js";
diff --git a/src/management/api/resources/users/resources/effectiveRoles/resources/sources/resources/groups/client/Client.ts b/src/management/api/resources/users/resources/effectiveRoles/resources/sources/resources/groups/client/Client.ts
new file mode 100644
index 0000000000..75c53fc10c
--- /dev/null
+++ b/src/management/api/resources/users/resources/effectiveRoles/resources/sources/resources/groups/client/Client.ts
@@ -0,0 +1,141 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../../../../../BaseClient.js";
+import {
+ normalizeClientOptionsWithAuth,
+ type NormalizedClientOptionsWithAuth,
+} from "../../../../../../../../../../BaseClient.js";
+import * as core from "../../../../../../../../../../core/index.js";
+import { mergeHeaders } from "../../../../../../../../../../core/headers.js";
+import * as environments from "../../../../../../../../../../environments.js";
+import { handleNonStatusCodeError } from "../../../../../../../../../../errors/handleNonStatusCodeError.js";
+import * as errors from "../../../../../../../../../../errors/index.js";
+import * as Management from "../../../../../../../../../index.js";
+
+export declare namespace GroupsClient {
+ export type Options = BaseClientOptions;
+
+ export interface RequestOptions extends BaseRequestOptions {}
+}
+
+export class GroupsClient {
+ protected readonly _options: NormalizedClientOptionsWithAuth;
+
+ constructor(options: GroupsClient.Options) {
+ this._options = normalizeClientOptionsWithAuth(options);
+ }
+
+ /**
+ * Lists the groups that grant a user a specific role.
+ *
+ * @param {string} id - ID of the user to list role source groups for.
+ * @param {Management.ListUserRoleSourceGroupsRequestParameters} request
+ * @param {GroupsClient.RequestOptions} requestOptions - Request-specific configuration.
+ *
+ * @throws {@link Management.BadRequestError}
+ * @throws {@link Management.UnauthorizedError}
+ * @throws {@link Management.ForbiddenError}
+ * @throws {@link Management.TooManyRequestsError}
+ *
+ * @example
+ * await client.users.effectiveRoles.sources.groups.list("id", {
+ * role_id: "role_id",
+ * from: "from",
+ * take: 1
+ * })
+ */
+ public async list(
+ id: string,
+ request: Management.ListUserRoleSourceGroupsRequestParameters,
+ requestOptions?: GroupsClient.RequestOptions,
+ ): Promise> {
+ const list = core.HttpResponsePromise.interceptFunction(
+ async (
+ request: Management.ListUserRoleSourceGroupsRequestParameters,
+ ): Promise> => {
+ const { role_id: roleId, from: from_, take = 50 } = request;
+ const _queryParams: Record = {
+ role_id: roleId,
+ from: from_,
+ take,
+ };
+ const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest();
+ let _headers: core.Fetcher.Args["headers"] = mergeHeaders(
+ _authRequest.headers,
+ this._options?.headers,
+ requestOptions?.headers,
+ );
+ const _response = await (this._options.fetcher ?? core.fetcher)({
+ url: core.url.join(
+ (await core.Supplier.get(this._options.baseUrl)) ??
+ (await core.Supplier.get(this._options.environment)) ??
+ environments.ManagementEnvironment.Default,
+ `users/${core.url.encodePathParam(id)}/effective-roles/sources/groups`,
+ ),
+ method: "GET",
+ headers: _headers,
+ queryString: core.url
+ .queryBuilder()
+ .addMany(_queryParams)
+ .mergeAdditional(requestOptions?.queryParams)
+ .build(),
+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
+ maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
+ abortSignal: requestOptions?.abortSignal,
+ fetchFn: this._options?.fetch,
+ logging: this._options.logging,
+ });
+ if (_response.ok) {
+ return {
+ data: _response.body as Management.ListUserRoleSourceGroupsResponseContent,
+ rawResponse: _response.rawResponse,
+ };
+ }
+ if (_response.error.reason === "status-code") {
+ switch (_response.error.statusCode) {
+ case 400:
+ throw new Management.BadRequestError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ case 401:
+ throw new Management.UnauthorizedError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ case 403:
+ throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse);
+ case 429:
+ throw new Management.TooManyRequestsError(
+ _response.error.body as unknown,
+ _response.rawResponse,
+ );
+ default:
+ throw new errors.ManagementError({
+ statusCode: _response.error.statusCode,
+ body: _response.error.body,
+ rawResponse: _response.rawResponse,
+ });
+ }
+ }
+ return handleNonStatusCodeError(
+ _response.error,
+ _response.rawResponse,
+ "GET",
+ "/users/{id}/effective-roles/sources/groups",
+ );
+ },
+ );
+ const dataWithRawResponse = await list(request).withRawResponse();
+ return new core.Page({
+ response: dataWithRawResponse.data,
+ rawResponse: dataWithRawResponse.rawResponse,
+ hasNextPage: (response) =>
+ response?.next != null && !(typeof response?.next === "string" && response?.next === ""),
+ getItems: (response) => response?.groups ?? [],
+ loadPage: (response) => {
+ return list(core.setObjectProperty(request, "from", response?.next));
+ },
+ });
+ }
+}
diff --git a/src/management/api/resources/users/resources/effectiveRoles/resources/sources/resources/groups/client/index.ts b/src/management/api/resources/users/resources/effectiveRoles/resources/sources/resources/groups/client/index.ts
new file mode 100644
index 0000000000..cb0ff5c3b5
--- /dev/null
+++ b/src/management/api/resources/users/resources/effectiveRoles/resources/sources/resources/groups/client/index.ts
@@ -0,0 +1 @@
+export {};
diff --git a/src/management/api/resources/users/resources/effectiveRoles/resources/sources/resources/groups/index.ts b/src/management/api/resources/users/resources/effectiveRoles/resources/sources/resources/groups/index.ts
new file mode 100644
index 0000000000..914b8c3c72
--- /dev/null
+++ b/src/management/api/resources/users/resources/effectiveRoles/resources/sources/resources/groups/index.ts
@@ -0,0 +1 @@
+export * from "./client/index.js";
diff --git a/src/management/api/resources/users/resources/effectiveRoles/resources/sources/resources/index.ts b/src/management/api/resources/users/resources/effectiveRoles/resources/sources/resources/index.ts
new file mode 100644
index 0000000000..17605ee66b
--- /dev/null
+++ b/src/management/api/resources/users/resources/effectiveRoles/resources/sources/resources/index.ts
@@ -0,0 +1 @@
+export * as groups from "./groups/index.js";
diff --git a/src/management/api/resources/users/resources/enrollments/client/Client.ts b/src/management/api/resources/users/resources/enrollments/client/Client.ts
index 103466ed67..75e4238edf 100644
--- a/src/management/api/resources/users/resources/enrollments/client/Client.ts
+++ b/src/management/api/resources/users/resources/enrollments/client/Client.ts
@@ -23,7 +23,7 @@ export class EnrollmentsClient {
}
/**
- * Retrieve the first multi-factor authentication enrollment that a specific user has confirmed.
+ * Retrieve the first [multi-factor authentication](https://auth0.com/docs/secure/multi-factor-authentication/multi-factor-authentication-factors) enrollment that a specific user has confirmed.
*
* @param {string} id - ID of the user to list enrollments for.
* @param {EnrollmentsClient.RequestOptions} requestOptions - Request-specific configuration.
diff --git a/src/management/api/resources/users/resources/identities/client/Client.ts b/src/management/api/resources/users/resources/identities/client/Client.ts
index f9bf3fe39a..d48a64f674 100644
--- a/src/management/api/resources/users/resources/identities/client/Client.ts
+++ b/src/management/api/resources/users/resources/identities/client/Client.ts
@@ -27,30 +27,31 @@ export class IdentitiesClient {
*
* 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.
- *
- *
+ * - With the authenticated primary account's JWT in the Authorization header, which has the `update:current_user_identities` scope:
+ *
+ * ```http
+ * 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:
+ *
+ * ```http
+ * 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.
*
* @param {string} id - ID of the primary user account to link a second user account to.
* @param {Management.LinkUserIdentityRequestContent} request
@@ -134,7 +135,7 @@ export class IdentitiesClient {
/**
* 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.
+ * 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](https://auth0.com/docs/manage-users/user-accounts/user-account-linking/unlink-user-accounts).
*
* @param {string} id - ID of the primary user account.
* @param {Management.UserIdentityProviderEnum} provider - Identity provider name of the secondary linked account (e.g. `google-oauth2`).
diff --git a/src/management/api/resources/users/resources/index.ts b/src/management/api/resources/users/resources/index.ts
index b9845025b5..56f5012720 100644
--- a/src/management/api/resources/users/resources/index.ts
+++ b/src/management/api/resources/users/resources/index.ts
@@ -1,6 +1,8 @@
export * as authenticationMethods from "./authenticationMethods/index.js";
export * as authenticators from "./authenticators/index.js";
export * as connectedAccounts from "./connectedAccounts/index.js";
+export * as effectivePermissions from "./effectivePermissions/index.js";
+export * as effectiveRoles from "./effectiveRoles/index.js";
export * as enrollments from "./enrollments/index.js";
export * as federatedConnectionsTokensets from "./federatedConnectionsTokensets/index.js";
export * as groups from "./groups/index.js";
diff --git a/src/management/api/resources/users/resources/multifactor/client/Client.ts b/src/management/api/resources/users/resources/multifactor/client/Client.ts
index c3306b9694..2f6268ad2b 100644
--- a/src/management/api/resources/users/resources/multifactor/client/Client.ts
+++ b/src/management/api/resources/users/resources/multifactor/client/Client.ts
@@ -23,7 +23,7 @@ export class MultifactorClient {
}
/**
- * Invalidate all remembered browsers across all authentication factors for a user.
+ * Invalidate all remembered browsers across all [authentication factors](https://auth0.com/docs/multifactor-authentication) for a user.
*
* @param {string} id - ID of the user to invalidate all remembered browsers and authentication factors for.
* @param {MultifactorClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -98,7 +98,7 @@ export class MultifactorClient {
}
/**
- * Remove a multifactor authentication configuration from a user's account. This forces the user to manually reconfigure the multi-factor provider.
+ * Remove a [multifactor](https://auth0.com/docs/multifactor-authentication) authentication configuration from a user's account. This forces the user to manually reconfigure the multi-factor provider.
*
* @param {string} id - ID of the user to remove a multifactor configuration from.
* @param {Management.UserMultifactorProviderEnum} provider - The multi-factor provider. Supported values 'duo' or 'google-authenticator'
diff --git a/src/management/api/resources/users/resources/organizations/client/Client.ts b/src/management/api/resources/users/resources/organizations/client/Client.ts
index 7c5fc32714..60d2b7dfd0 100644
--- a/src/management/api/resources/users/resources/organizations/client/Client.ts
+++ b/src/management/api/resources/users/resources/organizations/client/Client.ts
@@ -23,7 +23,7 @@ export class OrganizationsClient {
}
/**
- * Retrieve list of the specified user's current Organization memberships. User must be specified by user ID. For more information, review Auth0 Organizations.
+ * Retrieve list of the specified user's current Organization memberships. User must be specified by user ID. For more information, review [Auth0 Organizations](https://auth0.com/docs/manage-users/organizations).
*
* @param {string} id - ID of the user to retrieve the organizations for.
* @param {Management.ListUserOrganizationsRequestParameters} request
diff --git a/src/management/api/resources/users/resources/roles/client/Client.ts b/src/management/api/resources/users/resources/roles/client/Client.ts
index caf8686bd5..c52eb3c195 100644
--- a/src/management/api/resources/users/resources/roles/client/Client.ts
+++ b/src/management/api/resources/users/resources/roles/client/Client.ts
@@ -25,7 +25,7 @@ export class RolesClient {
/**
* 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.
+ * **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](https://auth0.com/docs/api/management/v2/organizations/get-organization-member-roles).
*
* @param {string} id - ID of the user to list roles for.
* @param {Management.ListUserRolesRequestParameters} request
@@ -138,9 +138,9 @@ export class RolesClient {
}
/**
- * Assign one or more existing user roles to a user. For more information, review Role-Based Access Control.
+ * Assign one or more existing user roles to a user. For more information, review [Role-Based Access Control](https://auth0.com/docs/manage-users/access-control/rbac).
*
- * 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.
+ * **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](https://auth0.com/docs/api/management/v2/organizations/post-organization-member-roles).
*
* @param {string} id - ID of the user to associate roles with.
* @param {Management.AssignUserRolesRequestContent} request
@@ -223,7 +223,7 @@ export class RolesClient {
/**
* 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.
+ * **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](https://auth0.com/docs/api/management/v2/organizations/delete-organization-member-roles).
*
* @param {string} id - ID of the user to remove roles from.
* @param {Management.DeleteUserRolesRequestContent} request
diff --git a/src/management/api/types/types.ts b/src/management/api/types/types.ts
index 41aa53b690..8c4580c01f 100644
--- a/src/management/api/types/types.ts
+++ b/src/management/api/types/types.ts
@@ -300,6 +300,15 @@ export const OauthScope = {
/**
* Read Group Members */
ReadGroupMembers: "read:group_members",
+ /**
+ * Create Group Roles */
+ CreateGroupRoles: "create:group_roles",
+ /**
+ * Read Group Roles */
+ ReadGroupRoles: "read:group_roles",
+ /**
+ * Delete Group Roles */
+ DeleteGroupRoles: "delete:group_roles",
/**
* Read Groups */
ReadGroups: "read:groups",
@@ -402,6 +411,18 @@ export const OauthScope = {
/**
* Delete Organization Discovery Domains */
DeleteOrganizationDiscoveryDomains: "delete:organization_discovery_domains",
+ /**
+ * Create Organization Group Roles */
+ CreateOrganizationGroupRoles: "create:organization_group_roles",
+ /**
+ * Read Organization Group Roles */
+ ReadOrganizationGroupRoles: "read:organization_group_roles",
+ /**
+ * Delete Organization Group Roles */
+ DeleteOrganizationGroupRoles: "delete:organization_group_roles",
+ /**
+ * Read Organization Groups */
+ ReadOrganizationGroups: "read:organization_groups",
/**
* Create Organization Invitations */
CreateOrganizationInvitations: "create:organization_invitations",
@@ -411,6 +432,12 @@ export const OauthScope = {
/**
* Delete Organization Invitations */
DeleteOrganizationInvitations: "delete:organization_invitations",
+ /**
+ * Read Organization Member Effective Roles */
+ ReadOrganizationMemberEffectiveRoles: "read:organization_member_effective_roles",
+ /**
+ * Read Organization Member Role Source Groups */
+ ReadOrganizationMemberRoleSourceGroups: "read:organization_member_role_source_groups",
/**
* Create Organization Member Roles */
CreateOrganizationMemberRoles: "create:organization_member_roles",
@@ -474,6 +501,18 @@ export const OauthScope = {
/**
* Update Prompts */
UpdatePrompts: "update:prompts",
+ /**
+ * Create Rate Limit Policies */
+ CreateRateLimitPolicies: "create:rate_limit_policies",
+ /**
+ * Read Rate Limit Policies */
+ ReadRateLimitPolicies: "read:rate_limit_policies",
+ /**
+ * Update Rate Limit Policies */
+ UpdateRateLimitPolicies: "update:rate_limit_policies",
+ /**
+ * Delete Rate Limit Policies */
+ DeleteRateLimitPolicies: "delete:rate_limit_policies",
/**
* Read Refresh Tokens */
ReadRefreshTokens: "read:refresh_tokens",
@@ -633,9 +672,21 @@ export const OauthScope = {
/**
* Delete User Attribute Profiles */
DeleteUserAttributeProfiles: "delete:user_attribute_profiles",
+ /**
+ * Read User Effective Permissions */
+ ReadUserEffectivePermissions: "read:user_effective_permissions",
+ /**
+ * Read User Effective Roles */
+ ReadUserEffectiveRoles: "read:user_effective_roles",
/**
* Read User Idp Tokens */
ReadUserIdpTokens: "read:user_idp_tokens",
+ /**
+ * Read User Permission Source Roles */
+ ReadUserPermissionSourceRoles: "read:user_permission_source_roles",
+ /**
+ * Read User Role Source Groups */
+ ReadUserRoleSourceGroups: "read:user_role_source_groups",
/**
* Create User Tickets */
CreateUserTickets: "create:user_tickets",
@@ -1547,16 +1598,16 @@ export type BrandingLoginDisplayEnum = (typeof BrandingLoginDisplayEnum)[keyof t
/**
* Page Background Color or Gradient.
- * Property contains either null to unset, a solid color as a string value #FFFFFF, or a gradient as an object.
+ * Property contains either `null` to unset, a solid color as a string value `#FFFFFF`, or a gradient as an object.
*
- *
+ * ```js
* {
* type: 'linear-gradient',
* start: '#FFFFFF',
* end: '#000000',
* angle_deg: 35
* }
- *
+ * ```
*/
export type BrandingPageBackground = (string | null) | undefined | (Record | null) | undefined;
@@ -2719,9 +2770,10 @@ export const ClientExternalMetadataCreatedByEnum = {
export type ClientExternalMetadataCreatedByEnum =
(typeof ClientExternalMetadataCreatedByEnum)[keyof typeof ClientExternalMetadataCreatedByEnum];
-/** Indicates the type of external metadata used to register the client. This field is omitted for regular clients. The value cimd identifies clients registered via a Client ID Metadata Document. */
+/** Indicates the type of external metadata used to register the client. This field is omitted for regular clients. The value cimd identifies clients registered via a Client ID Metadata Document. The value dcr identifies clients registered via Dynamic Client Registration. */
export const ClientExternalMetadataTypeEnum = {
Cimd: "cimd",
+ Dcr: "dcr",
} as const;
export type ClientExternalMetadataTypeEnum =
(typeof ClientExternalMetadataTypeEnum)[keyof typeof ClientExternalMetadataTypeEnum];
@@ -3372,7 +3424,7 @@ export type ConnectionAuthorizationEndpoint = string;
/**
* Base URL override for the Exact Online API endpoint used for OAuth2 authorization and API requests. Defaults to https://start.exactonline.nl.
*/
-export type ConnectionBaseUrlExact = Management.ConnectionHttpsUrlWithHttpFallback;
+export type ConnectionBaseUrlExact = string;
/**
* Enables Auth0's brute force protection to prevent credential stuffing attacks. When enabled, blocks suspicious login attempts from specific IP addresses after repeated failures.
@@ -3417,26 +3469,29 @@ export type ConnectionClientIdBitbucket = string;
export type ConnectionClientId = string;
/**
- * OAuth 2.0 client identifier obtained from Amazon Developer Console during Login with Amazon application registration. When not provided, Auth0 development keys are used for testing purposes.
+ * OAuth 2.0 client identifier issued by the identity provider during application registration. This value identifies your Auth0 connection to the identity provider.
*/
-export type ConnectionClientIdAmazon = Management.ConnectionClientId;
+export type ConnectionClientIdAmazon = string;
-export type ConnectionClientIdAzureAd = Management.ConnectionClientId;
+/**
+ * OAuth 2.0 client identifier issued by the identity provider during application registration. This value identifies your Auth0 connection to the identity provider.
+ */
+export type ConnectionClientIdAzureAd = string;
/**
- * OAuth2.0 client identifier for the Exact Online connection, obtained when registering your application in the Exact App Center.
+ * OAuth 2.0 client identifier issued by the identity provider during application registration. This value identifies your Auth0 connection to the identity provider.
*/
-export type ConnectionClientIdExact = Management.ConnectionClientId;
+export type ConnectionClientIdExact = string;
/**
- * Your Facebook App ID. You can find this in your [Facebook Developers Console](https://developers.facebook.com/apps) under the App Settings section.
+ * OAuth 2.0 client identifier issued by the identity provider during application registration. This value identifies your Auth0 connection to the identity provider.
*/
-export type ConnectionClientIdFacebook = Management.ConnectionClientId;
+export type ConnectionClientIdFacebook = string;
/**
- * Your Google OAuth 2.0 client ID. You can find this in your [Google Cloud Console](https://console.cloud.google.com/apis/credentials) under the OAuth 2.0 Client IDs section.
+ * OAuth 2.0 client identifier issued by the identity provider during application registration. This value identifies your Auth0 connection to the identity provider.
*/
-export type ConnectionClientIdGoogleApps = Management.ConnectionClientId;
+export type ConnectionClientIdGoogleApps = string;
/**
* Your Google OAuth 2.0 client ID. You can find this in your [Google Cloud Console](https://console.cloud.google.com/apis/credentials) under the OAuth 2.0 Client IDs section.
@@ -3454,18 +3509,24 @@ export type ConnectionClientIdLine = string;
export type ConnectionClientIdLinkedin = string;
/**
- * OAuth 1.0a client ID (consumer key) that identifies the client to the provider and is used to sign OAuth 1.0a requests.
+ * OAuth 2.0 client identifier issued by the identity provider during application registration. This value identifies your Auth0 connection to the identity provider.
*/
-export type ConnectionClientIdOAuth1 = Management.ConnectionClientId;
+export type ConnectionClientIdOAuth1 = string;
-export type ConnectionClientIdOAuth2 = Management.ConnectionClientId;
+/**
+ * OAuth 2.0 client identifier issued by the identity provider during application registration. This value identifies your Auth0 connection to the identity provider.
+ */
+export type ConnectionClientIdOAuth2 = string;
-export type ConnectionClientIdOidc = Management.ConnectionClientId;
+/**
+ * OAuth 2.0 client identifier issued by the identity provider during application registration. This value identifies your Auth0 connection to the identity provider.
+ */
+export type ConnectionClientIdOidc = string;
/**
- * OAuth 2.0 client identifier issued by PayPal during application registration. This value identifies your Auth0 connection to PayPal. Leave empty to use Auth0 Dev Keys.
+ * OAuth 2.0 client identifier issued by the identity provider during application registration. This value identifies your Auth0 connection to the identity provider.
*/
-export type ConnectionClientIdPaypal = Management.ConnectionClientId;
+export type ConnectionClientIdPaypal = string;
/**
* The OAuth 2.0 client identifier
@@ -3488,31 +3549,34 @@ export type ConnectionClientProtocolSaml = Management.ConnectionOptionsIdpInitia
export type ConnectionClientSecret = string;
/**
- * OAuth 2.0 client secret obtained from Amazon Developer Console during Login with Amazon application registration. Used to authenticate your application when exchanging authorization codes for tokens.
+ * OAuth 2.0 client secret issued by the identity provider during application registration. Used to authenticate your Auth0 connection when exchanging authorization codes for tokens. May be null for public clients.
*/
-export type ConnectionClientSecretAmazon = Management.ConnectionClientSecret;
+export type ConnectionClientSecretAmazon = string;
/**
* The client secret (application password) from your Azure AD app registration. Used to authenticate your application when exchanging authorization codes for tokens.
*/
export type ConnectionClientSecretAzureAd = string;
-export type ConnectionClientSecretBitbucket = Management.ConnectionClientSecret;
+/**
+ * OAuth 2.0 client secret issued by the identity provider during application registration. Used to authenticate your Auth0 connection when exchanging authorization codes for tokens. May be null for public clients.
+ */
+export type ConnectionClientSecretBitbucket = string;
/**
- * OAuth2.0 client secret for the Exact Online connection, obtained when registering your application in the Exact App Center.
+ * OAuth 2.0 client secret issued by the identity provider during application registration. Used to authenticate your Auth0 connection when exchanging authorization codes for tokens. May be null for public clients.
*/
-export type ConnectionClientSecretExact = Management.ConnectionClientSecret;
+export type ConnectionClientSecretExact = string;
/**
- * Your Facebook App Secret. You can find this in your [Facebook Developers Console](https://developers.facebook.com/apps) under the App Settings section.
+ * OAuth 2.0 client secret issued by the identity provider during application registration. Used to authenticate your Auth0 connection when exchanging authorization codes for tokens. May be null for public clients.
*/
-export type ConnectionClientSecretFacebook = Management.ConnectionClientSecret;
+export type ConnectionClientSecretFacebook = string;
/**
- * Your Google OAuth 2.0 client secret. You can find this in your [Google Cloud Console](https://console.cloud.google.com/apis/credentials) under the OAuth 2.0 Client IDs section.
+ * OAuth 2.0 client secret issued by the identity provider during application registration. Used to authenticate your Auth0 connection when exchanging authorization codes for tokens. May be null for public clients.
*/
-export type ConnectionClientSecretGoogleApps = Management.ConnectionClientSecret;
+export type ConnectionClientSecretGoogleApps = string;
/**
* Your Google OAuth 2.0 client secret. You can find this in your [Google Cloud Console](https://console.cloud.google.com/apis/credentials) under the OAuth 2.0 Client IDs section.
@@ -3530,25 +3594,34 @@ export type ConnectionClientSecretLine = string;
export type ConnectionClientSecretLinkedin = string;
/**
- * OAuth 1.0a client secret paired with the consumer key to sign request-token and access-token requests for this connection. Treat as a sensitive credential and supply the exact secret issued by the upstream provider.
+ * OAuth 2.0 client secret issued by the identity provider during application registration. Used to authenticate your Auth0 connection when exchanging authorization codes for tokens. May be null for public clients.
*/
-export type ConnectionClientSecretOAuth1 = Management.ConnectionClientSecret;
+export type ConnectionClientSecretOAuth1 = string;
-export type ConnectionClientSecretOAuth2 = Management.ConnectionClientSecret;
+/**
+ * OAuth 2.0 client secret issued by the identity provider during application registration. Used to authenticate your Auth0 connection when exchanging authorization codes for tokens. May be null for public clients.
+ */
+export type ConnectionClientSecretOAuth2 = string;
-export type ConnectionClientSecretOidc = Management.ConnectionClientSecret;
+/**
+ * OAuth 2.0 client secret issued by the identity provider during application registration. Used to authenticate your Auth0 connection when exchanging authorization codes for tokens. May be null for public clients.
+ */
+export type ConnectionClientSecretOidc = string;
/**
- * OAuth 2.0 client secret issued by PayPal during application registration. Leave empty to use Auth0 Dev Keys.
+ * OAuth 2.0 client secret issued by the identity provider during application registration. Used to authenticate your Auth0 connection when exchanging authorization codes for tokens. May be null for public clients.
*/
-export type ConnectionClientSecretPaypal = Management.ConnectionClientSecret;
+export type ConnectionClientSecretPaypal = string;
/**
* The OAuth 2.0 client secret
*/
export type ConnectionClientSecretSalesforce = string;
-export type ConnectionClientSecretWindowsLive = Management.ConnectionClientSecret;
+/**
+ * OAuth 2.0 client secret issued by the identity provider during application registration. Used to authenticate your Auth0 connection when exchanging authorization codes for tokens. May be null for public clients.
+ */
+export type ConnectionClientSecretWindowsLive = string;
export interface ConnectionCommon {
display_name?: Management.ConnectionDisplayName | undefined;
@@ -3724,6 +3797,8 @@ export type ConnectionDomainOkta = string;
/** Algorithm used for DPoP proof JWT signing. */
export const ConnectionDpopSigningAlgEnum = {
Es256: "ES256",
+ Es384: "ES384",
+ Es512: "ES512",
Ed25519: "Ed25519",
} as const;
export type ConnectionDpopSigningAlgEnum =
@@ -4032,9 +4107,9 @@ export type ConnectionHandleLoginFromSocialGoogleApps = boolean;
export type ConnectionHttpsUrlWithHttpFallback = string;
-export type ConnectionHttpsUrlWithHttpFallback2048 = Management.ConnectionHttpsUrlWithHttpFallback;
+export type ConnectionHttpsUrlWithHttpFallback2048 = string;
-export type ConnectionHttpsUrlWithHttpFallback255 = Management.ConnectionHttpsUrlWithHttpFallback;
+export type ConnectionHttpsUrlWithHttpFallback255 = string;
/**
* https url of the icon to be shown
@@ -4209,9 +4284,15 @@ export type ConnectionIpsAd = string[];
*/
export type ConnectionIsDomainConnection = boolean;
-export type ConnectionIssuer = Management.ConnectionHttpsUrlWithHttpFallback255;
+/**
+ * The identity provider's unique issuer identifier URL (e.g., https://accounts.google.com). Must match the 'iss' claim in ID tokens from the identity provider.
+ */
+export type ConnectionIssuer = string;
-export type ConnectionJwksUri = Management.ConnectionHttpsUrlWithHttpFallback255;
+/**
+ * URL of the identity provider's JSON Web Key Set (JWKS) endpoint containing public keys for signature verification. Auth0 retrieves these keys to validate ID token signatures.
+ */
+export type ConnectionJwksUri = string;
export interface ConnectionKey {
/** The key id of the signing key */
@@ -4318,9 +4399,15 @@ export type ConnectionNamePrefixTemplate = string;
*/
export type ConnectionNonPersistentAttrs = string[];
-export type ConnectionOpPolicyUri = Management.ConnectionHttpsUrlWithHttpFallback255;
+/**
+ * URL that the OpenID Provider provides to the person registering the Client to read about the OPs requirements on how the Relying Party can use the data provided by the OP. The registration process SHOULD display this URL to the person registering the Client if it is given.
+ */
+export type ConnectionOpPolicyUri = string;
-export type ConnectionOpTosUri = Management.ConnectionHttpsUrlWithHttpFallback255;
+/**
+ * URL that the OpenID Provider provides to the person registering the Client to read about OpenID Providers terms of service. The registration process SHOULD display this URL to the person registering the Client if it is given.
+ */
+export type ConnectionOpTosUri = string;
/**
* In order to return options in the response, the `read:connections_options` scope must be present
@@ -5871,7 +5958,7 @@ export type ConnectionPingFederateBaseUrl = Management.ConnectionPingFederateBas
/**
* PingFederate base URL constrained to HTTP/HTTPS with length bounds
*/
-export type ConnectionPingFederateBaseUrlPingFederate = Management.ConnectionHttpsUrlWithHttpFallback;
+export type ConnectionPingFederateBaseUrlPingFederate = string;
export interface ConnectionProfile {
id?: Management.ConnectionProfileId | undefined;
@@ -6029,6 +6116,7 @@ export interface ConnectionPropertiesOptions {
password_options?: Management.ConnectionPasswordOptions | undefined;
assertion_decryption_settings?: Management.ConnectionAssertionDecryptionSettings | undefined;
id_token_signed_response_algs?: ((Management.ConnectionIdTokenSignedResponseAlgs | undefined) | null) | undefined;
+ dpop_signing_alg?: Management.ConnectionDpopSigningAlgEnum | undefined;
token_endpoint_auth_method?: (Management.ConnectionTokenEndpointAuthMethodEnum | null) | undefined;
token_endpoint_auth_signing_alg?: (Management.ConnectionTokenEndpointAuthSigningAlgEnum | null) | undefined;
token_endpoint_jwtca_aud_format?: Management.ConnectionTokenEndpointJwtcaAudFormatEnumOidc | undefined;
@@ -6089,7 +6177,10 @@ export type ConnectionRealms = string[];
*/
export type ConnectionRecipientUrlSaml = Management.ConnectionHttpsUrlWithHttpFallback255;
-export type ConnectionRegistrationEndpoint = Management.ConnectionHttpsUrlWithHttpFallback255;
+/**
+ * URL of the OPs Dynamic Client Registration Endpoint. RECOMMENDED but not REQUIRED. https://openid.net/specs/openid-connect-discovery-1_0.html#OpenID.Registration
+ */
+export type ConnectionRegistrationEndpoint = string;
/**
* JSON array containing a list of the JWE encryption algorithms (alg values) supported by the OP for Request Objects. These algorithms are used both when the Request Object is passed by value and when it is passed by reference.
@@ -7153,7 +7244,10 @@ export interface ConnectionScriptsOAuth2 {
*/
export type ConnectionSendBackChannelNonce = boolean;
-export type ConnectionServiceDocumentation = Management.ConnectionHttpsUrlWithHttpFallback255;
+/**
+ * URL of a page containing human-readable information that developers might want or need to know when using the OpenID Provider. In particular, if the OpenID Provider does not support Dynamic Client Registration, then information on how to register Clients needs to be provided in this documentation.
+ */
+export type ConnectionServiceDocumentation = string;
/** When using an external IdP, this flag determines whether 'name', 'given_name', 'family_name', 'nickname', and 'picture' attributes are updated. In addition, it also determines whether the user is created when user doesnt exist previously. Possible values are 'on_each_login' (default value, it configures the connection to automatically create the user if necessary and update the root attributes from the external IdP with each user login. When this setting is used, root attributes cannot be independently updated), 'on_first_login' (configures the connection to create the user and set the root attributes on first login only, allowing them to be independently updated thereafter), and 'never_on_login' (configures the connection not to create the user and not to set the root attributes from the external IdP, allowing them to be independently updated). */
export const ConnectionSetUserRootAttributesEnum = {
@@ -7367,7 +7461,10 @@ export type ConnectionTenantDomainAzureAdOne = string;
*/
export type ConnectionTenantDomainGoogleApps = Management.ConnectionTenantDomain;
-export type ConnectionTenantDomainSaml = Management.ConnectionTenantDomain;
+/**
+ * For SAML connections, the tenant domain used to construct the login endpoint URL. Can be a string for single-tenant or an array of strings for multi-tenant validation.
+ */
+export type ConnectionTenantDomainSaml = string;
/**
* The Azure AD tenant ID as a UUID. The unique identifier for your Azure AD organization. Must be a valid 36-character UUID.
@@ -7389,7 +7486,10 @@ export type ConnectionThumbprintsAd = Management.ConnectionSha1Thumbprint[];
*/
export type ConnectionThumbprintsSaml = Management.ConnectionSha1Thumbprint[];
-export type ConnectionTokenEndpoint = Management.ConnectionHttpsUrlWithHttpFallback255;
+/**
+ * URL of the identity provider's OAuth 2.0 token endpoint where authorization codes are exchanged for access tokens. Must be a valid HTTPS URL. Required for authorization code flow but optional for implicit flow.
+ */
+export type ConnectionTokenEndpoint = string;
/** Authentication method used at the identity provider's token endpoint. 'client_secret_post' sends credentials in the request body; 'private_key_jwt' uses a signed JWT assertion for enhanced security. */
export const ConnectionTokenEndpointAuthMethodEnum = {
@@ -7580,7 +7680,10 @@ export type ConnectionUserinfoEncryptionAlgValuesSupported = string[];
*/
export type ConnectionUserinfoEncryptionEncValuesSupported = string[];
-export type ConnectionUserinfoEndpoint = Management.ConnectionHttpsUrlWithHttpFallback255;
+/**
+ * Optional URL of the identity provider's UserInfo endpoint. When configured with attribute mapping, Auth0 calls this endpoint to retrieve additional user profile claims using the access token.
+ */
+export type ConnectionUserinfoEndpoint = string;
/**
* JSON array containing a list of the JWS [JWS] signing algorithms (alg values) [JWA] supported by the UserInfo Endpoint to encode the Claims in a JWT [JWT]. The value none MAY be included.
@@ -9728,6 +9831,20 @@ export interface CreatePublicKeyDeviceCredentialResponseContent {
[key: string]: any;
}
+export interface CreateRateLimitPolicyResponseContent {
+ /** Unique identifier for the Rate Limit Policy. */
+ id: string;
+ resource: Management.RateLimitPolicyResourceEnum;
+ consumer: Management.RateLimitPolicyConsumerEnum;
+ /** Identifier or category within the consumer to which the policy applies. Supported values: `client_id:` to target a specific client by ID, `client_id:` to target a CIMD client by URI, `cimd_clients` to target all CIMD clients, `third_party_clients` to target all third-party clients, or `default` to apply the policy to any consumer identifier not otherwise explicitly targeted. */
+ consumer_selector: string;
+ configuration: Management.RateLimitPolicyConfiguration;
+ /** The date and time when the rate limit policy was created. */
+ created_at?: string | undefined;
+ /** The date and time when the rate limit policy was last updated. */
+ updated_at?: string | undefined;
+}
+
export interface CreateResourceServerResponseContent {
/** ID of the API (resource server). */
id?: string | undefined;
@@ -9952,9 +10069,11 @@ export interface CreateUserResponseContent {
nickname?: string | undefined;
/** List of multi-factor authentication providers with which this user has enrolled. */
multifactor?: string[] | undefined;
+ multifactor_last_modified?: Management.UserDateSchema | undefined;
/** Last IP address from which this user logged in. */
last_ip?: string | undefined;
last_login?: Management.UserDateSchema | undefined;
+ last_password_reset?: Management.UserDateSchema | undefined;
/** Total number of logins this user has performed. */
logins_count?: number | undefined;
/** Whether this user was blocked by an administrator (true) or is not (false). */
@@ -14758,6 +14877,21 @@ export interface ExpressConfigurationOrNull {
export interface ExtensibilityEmailProviderCredentials {}
+/**
+ * Configure FedCM login settings for New Universal Login
+ */
+export interface FedCmLogin {
+ google?: Management.FedCmLoginGoogle | undefined;
+}
+
+/**
+ * Google FedCM configuration for this client
+ */
+export interface FedCmLoginGoogle {
+ /** When true, shows the Google FedCM prompt on New Universal Login for this client */
+ is_enabled?: boolean | undefined;
+}
+
export interface FederatedConnectionTokenSet {
id?: string | undefined;
connection?: string | undefined;
@@ -19348,6 +19482,20 @@ export interface GetPhoneTemplateResponseContent {
disabled: boolean;
}
+export interface GetRateLimitPolicyResponseContent {
+ /** Unique identifier for the Rate Limit Policy. */
+ id: string;
+ resource: Management.RateLimitPolicyResourceEnum;
+ consumer: Management.RateLimitPolicyConsumerEnum;
+ /** Identifier or category within the consumer to which the policy applies. Supported values: `client_id:` to target a specific client by ID, `client_id:` to target a CIMD client by URI, `cimd_clients` to target all CIMD clients, `third_party_clients` to target all third-party clients, or `default` to apply the policy to any consumer identifier not otherwise explicitly targeted. */
+ consumer_selector: string;
+ configuration: Management.RateLimitPolicyConfiguration;
+ /** The date and time when the rate limit policy was created. */
+ created_at?: string | undefined;
+ /** The date and time when the rate limit policy was last updated. */
+ updated_at?: string | undefined;
+}
+
export interface GetRefreshTokenResponseContent {
/** The ID of the refresh token */
id?: string | undefined;
@@ -19643,6 +19791,7 @@ export interface GetTenantSettingsResponseContent {
dynamic_client_registration_security_mode?:
| Management.TenantSettingsDynamicClientRegistrationSecurityMode
| undefined;
+ country_codes?: Management.TenantSettingsCountryCodesResponse | undefined;
}
export interface GetTokenExchangeProfileResponseContent {
@@ -19769,9 +19918,11 @@ export interface GetUserResponseContent {
nickname?: string | undefined;
/** List of multi-factor authentication providers with which this user has enrolled. */
multifactor?: string[] | undefined;
+ multifactor_last_modified?: Management.UserDateSchema | undefined;
/** Last IP address from which this user logged in. */
last_ip?: string | undefined;
last_login?: Management.UserDateSchema | undefined;
+ last_password_reset?: Management.UserDateSchema | undefined;
/** Total number of logins this user has performed. */
logins_count?: number | undefined;
/** Whether this user was blocked by an administrator (true) or is not (false). */
@@ -20381,6 +20532,12 @@ export interface ListFormsOffsetPaginatedResponseContent {
forms?: Management.FormSummary[] | undefined;
}
+export interface ListGroupRolesResponseContent {
+ roles: Management.Role[];
+ /** A cursor to be used as the "from" query parameter for the next page of results. */
+ next?: string | undefined;
+}
+
export interface ListGroupsPaginatedResponseContent {
groups: Management.Group[];
/** A cursor to be used as the "from" query parameter for the next page of results. */
@@ -20440,12 +20597,36 @@ export interface ListOrganizationDiscoveryDomainsResponseContent {
domains: Management.OrganizationDiscoveryDomain[];
}
+export interface ListOrganizationGroupRolesResponseContent {
+ roles: Management.Role[];
+ /** A cursor to be used as the "from" query parameter for the next page of results. */
+ next?: string | undefined;
+}
+
+export interface ListOrganizationGroupsResponseContent {
+ groups: Management.Group[];
+ /** A cursor to be used as the "from" query parameter for the next page of results. */
+ next?: string | undefined;
+}
+
export interface ListOrganizationInvitationsOffsetPaginatedResponseContent {
start?: number | undefined;
limit?: number | undefined;
invitations?: Management.OrganizationInvitation[] | undefined;
}
+export interface ListOrganizationMemberEffectiveRolesResponseContent {
+ roles: Management.OrganizationMemberEffectiveRole[];
+ /** Cursor for the next page of results */
+ next?: string | undefined;
+}
+
+export interface ListOrganizationMemberRoleSourceGroupsResponseContent {
+ groups: Management.Group[];
+ /** A cursor to be used as the "from" query parameter for the next page of results. */
+ next?: string | undefined;
+}
+
export interface ListOrganizationMemberRolesOffsetPaginatedResponseContent {
start?: number | undefined;
limit?: number | undefined;
@@ -20469,6 +20650,12 @@ export interface ListPhoneTemplatesResponseContent {
templates?: Management.PhoneTemplate[] | undefined;
}
+export interface ListRateLimitPoliciesPaginatedResponseContent {
+ rate_limit_policies?: Management.RateLimitPolicy[] | undefined;
+ /** A cursor to be used as the "from" query parameter for the next page of results. */
+ next?: string | undefined;
+}
+
export interface ListRefreshTokensPaginatedResponseContent {
tokens?: Management.RefreshTokenResponseContent[] | undefined;
/** A cursor to be used as the "from" query parameter for the next page of results. */
@@ -20484,6 +20671,12 @@ export interface ListResourceServerOffsetPaginatedResponseContent {
resource_servers?: Management.ResourceServer[] | undefined;
}
+export interface ListRoleGroupsResponseContent {
+ groups: Management.Group[];
+ /** A cursor to be used as the "from" query parameter for the next page of results. */
+ next?: string | undefined;
+}
+
export interface ListRolePermissionsOffsetPaginatedResponseContent {
start?: number | undefined;
limit?: number | undefined;
@@ -20579,6 +20772,26 @@ export interface ListUserConnectedAccountsResponseContent {
next?: string | undefined;
}
+export interface ListUserEffectivePermissionRoleSourcesResponseContent {
+ /** Roles with the specified permission assigned to the user, both directly and via groups. */
+ roles: Management.UserEffectivePermissionRoleSourceResponseContent[];
+ /** A cursor to be used as the "from" query parameter for the next page of results. */
+ next?: string | undefined;
+}
+
+export interface ListUserEffectivePermissionsResponseContent {
+ /** List of permissions assigned to the user. */
+ permissions: Management.UserEffectivePermissionResponseContent[];
+ /** A cursor to be used as the "from" query parameter for the next page of results. */
+ next?: string | undefined;
+}
+
+export interface ListUserEffectiveRolesResponseContent {
+ roles: Management.UserEffectiveRole[];
+ /** Cursor for the next page of results */
+ next?: string | undefined;
+}
+
export interface ListUserGrantsOffsetPaginatedResponseContent {
start?: number | undefined;
limit?: number | undefined;
@@ -20600,6 +20813,12 @@ export interface ListUserPermissionsOffsetPaginatedResponseContent {
permissions?: Management.UserPermissionSchema[] | undefined;
}
+export interface ListUserRoleSourceGroupsResponseContent {
+ groups: Management.Group[];
+ /** A cursor to be used as the "from" query parameter for the next page of results. */
+ next?: string | undefined;
+}
+
export interface ListUserRolesOffsetPaginatedResponseContent {
start?: number | undefined;
limit?: number | undefined;
@@ -21548,6 +21767,24 @@ export interface OrganizationMember {
roles?: Management.OrganizationMemberRole[] | undefined;
}
+export interface OrganizationMemberEffectiveRole {
+ /** Role ID */
+ id: string;
+ /** Role name */
+ name: string;
+ /** Role description */
+ description: string;
+ /** Sources of the role assignment (direct or through group membership) */
+ sources: Management.OrganizationMemberEffectiveRoleSource[];
+}
+
+export const OrganizationMemberEffectiveRoleSource = {
+ Direct: "direct",
+ Groups: "groups",
+} as const;
+export type OrganizationMemberEffectiveRoleSource =
+ (typeof OrganizationMemberEffectiveRoleSource)[keyof typeof OrganizationMemberEffectiveRoleSource];
+
export interface OrganizationMemberRole {
/** ID for this role. */
id?: string | undefined;
@@ -21659,6 +21896,20 @@ export interface PatchClientCredentialResponseContent {
[key: string]: any;
}
+export type PatchRateLimitPolicyConfigurationRequestContent =
+ | {
+ action: "allow";
+ }
+ | {
+ action: "block" | "log";
+ limit: number;
+ }
+ | {
+ action: "redirect";
+ limit: number;
+ redirect_uri: string;
+ };
+
export interface PatchSupplementalSignalsResponseContent {
/** Indicates if incoming Akamai Headers should be processed */
akamai_enabled?: boolean | undefined;
@@ -22021,6 +22272,51 @@ export const PublicKeyCredentialTypeEnum = {
export type PublicKeyCredentialTypeEnum =
(typeof PublicKeyCredentialTypeEnum)[keyof typeof PublicKeyCredentialTypeEnum];
+export interface RateLimitPolicy {
+ /** Unique identifier for the Rate Limit Policy. */
+ id: string;
+ resource: Management.RateLimitPolicyResourceEnum;
+ consumer: Management.RateLimitPolicyConsumerEnum;
+ /** Identifier or category within the consumer to which the policy applies. Supported values: `client_id:` to target a specific client by ID, `client_id:` to target a CIMD client by URI, `cimd_clients` to target all CIMD clients, `third_party_clients` to target all third-party clients, or `default` to apply the policy to any consumer identifier not otherwise explicitly targeted. */
+ consumer_selector: string;
+ configuration: Management.RateLimitPolicyConfiguration;
+ /** The date and time when the rate limit policy was created. */
+ created_at?: string | undefined;
+ /** The date and time when the rate limit policy was last updated. */
+ updated_at?: string | undefined;
+}
+
+/**
+ * The configuration of the rate limit policy.
+ */
+export type RateLimitPolicyConfiguration =
+ | {
+ action: "allow";
+ }
+ | {
+ action: "block" | "log";
+ limit: number;
+ }
+ | {
+ action: "redirect";
+ limit: number;
+ redirect_uri: string;
+ };
+
+/** The consumer to which the rate limit policy applies. */
+export const RateLimitPolicyConsumerEnum = {
+ Client: "client",
+} as const;
+export type RateLimitPolicyConsumerEnum =
+ (typeof RateLimitPolicyConsumerEnum)[keyof typeof RateLimitPolicyConsumerEnum];
+
+/** The API protected by the Rate Limit Policy. */
+export const RateLimitPolicyResourceEnum = {
+ OauthAuthenticationApi: "oauth_authentication_api",
+} as const;
+export type RateLimitPolicyResourceEnum =
+ (typeof RateLimitPolicyResourceEnum)[keyof typeof RateLimitPolicyResourceEnum];
+
export type RefreshTokenDate =
/**
* The date and time when the refresh token was created */
@@ -23434,6 +23730,40 @@ export interface TenantOidcLogoutSettings {
rp_logout_end_session_endpoint_discovery?: boolean | undefined;
}
+/**
+ * Phone country code configuration for identifier input.
+ */
+export interface TenantSettingsCountryCodes {
+ /** Array of ISO 3166-1 alpha-2 country codes. */
+ list?: string[] | undefined;
+ mode?: Management.TenantSettingsCountryCodesMode | undefined;
+}
+
+/** Whether the list is an allowlist or denylist. */
+export const TenantSettingsCountryCodesMode = {
+ Allow: "allow",
+ Deny: "deny",
+} as const;
+export type TenantSettingsCountryCodesMode =
+ (typeof TenantSettingsCountryCodesMode)[keyof typeof TenantSettingsCountryCodesMode];
+
+/** Whether the list is an allowlist or denylist. */
+export const TenantSettingsCountryCodesModeResponse = {
+ Allow: "allow",
+ Deny: "deny",
+} as const;
+export type TenantSettingsCountryCodesModeResponse =
+ (typeof TenantSettingsCountryCodesModeResponse)[keyof typeof TenantSettingsCountryCodesModeResponse];
+
+/**
+ * Phone country code configuration for identifier input.
+ */
+export interface TenantSettingsCountryCodesResponse {
+ /** Array of ISO 3166-1 alpha-2 country codes. */
+ list?: string[] | undefined;
+ mode?: Management.TenantSettingsCountryCodesModeResponse | undefined;
+}
+
/**
* Device Flow configuration
*/
@@ -23933,16 +24263,16 @@ export type UpdateBrandingLoginDisplayEnum =
/**
* Page Background Color or Gradient.
- * Property contains either null to unset, a solid color as a string value #FFFFFF, or a gradient as an object.
+ * Property contains either `null` to unset, a solid color as a string value `#FFFFFF`, or a gradient as an object.
*
- *
+ * ```js
* {
* type: 'linear-gradient',
* start: '#FFFFFF',
* end: '#000000',
* angle_deg: 35
* }
- *
+ * ```
*/
export type UpdateBrandingPageBackground = (string | null) | undefined | (Record | null) | undefined;
@@ -24215,6 +24545,7 @@ export interface UpdateConnectionOptions {
password_options?: Management.ConnectionPasswordOptions | undefined;
assertion_decryption_settings?: Management.ConnectionAssertionDecryptionSettings | undefined;
id_token_signed_response_algs?: ((Management.ConnectionIdTokenSignedResponseAlgs | undefined) | null) | undefined;
+ dpop_signing_alg?: Management.ConnectionDpopSigningAlgEnum | undefined;
token_endpoint_auth_method?: (Management.ConnectionTokenEndpointAuthMethodEnum | null) | undefined;
token_endpoint_auth_signing_alg?: (Management.ConnectionTokenEndpointAuthSigningAlgEnum | null) | undefined;
token_endpoint_jwtca_aud_format?: Management.ConnectionTokenEndpointJwtcaAudFormatEnumOidc | undefined;
@@ -24992,6 +25323,20 @@ export interface UpdatePhoneTemplateResponseContent {
disabled: boolean;
}
+export interface UpdateRateLimitPolicyResponseContent {
+ /** Unique identifier for the Rate Limit Policy. */
+ id: string;
+ resource: Management.RateLimitPolicyResourceEnum;
+ consumer: Management.RateLimitPolicyConsumerEnum;
+ /** Identifier or category within the consumer to which the policy applies. Supported values: `client_id:` to target a specific client by ID, `client_id:` to target a CIMD client by URI, `cimd_clients` to target all CIMD clients, `third_party_clients` to target all third-party clients, or `default` to apply the policy to any consumer identifier not otherwise explicitly targeted. */
+ consumer_selector: string;
+ configuration: Management.RateLimitPolicyConfiguration;
+ /** The date and time when the rate limit policy was created. */
+ created_at?: string | undefined;
+ /** The date and time when the rate limit policy was last updated. */
+ updated_at?: string | undefined;
+}
+
export interface UpdateRefreshTokenResponseContent {
/** The ID of the refresh token */
id?: string | undefined;
@@ -25238,6 +25583,7 @@ export interface UpdateTenantSettingsResponseContent {
dynamic_client_registration_security_mode?:
| Management.TenantSettingsDynamicClientRegistrationSecurityMode
| undefined;
+ country_codes?: Management.TenantSettingsCountryCodesResponse | undefined;
}
export interface UpdateTokenQuota {
@@ -25315,9 +25661,11 @@ export interface UpdateUserResponseContent {
nickname?: string | undefined;
/** List of multi-factor authentication providers with which this user has enrolled. */
multifactor?: string[] | undefined;
+ multifactor_last_modified?: Management.UserDateSchema | undefined;
/** Last IP address from which this user logged in. */
last_ip?: string | undefined;
last_login?: Management.UserDateSchema | undefined;
+ last_password_reset?: Management.UserDateSchema | undefined;
/** Total number of logins this user has performed. */
logins_count?: number | undefined;
/** Whether this user was blocked by an administrator (true) or is not (false). */
@@ -25587,6 +25935,63 @@ export type UserDateSchema =
* Date and time when this user was created (ISO_8601 format). */
| Record;
+export interface UserEffectivePermissionResponseContent {
+ /** Resource server (API) identifier that this permission is for. */
+ resource_server_identifier?: string | undefined;
+ /** Name of this permission. */
+ permission_name?: string | undefined;
+ /** Resource server (API) name this permission is for. */
+ resource_server_name?: string | undefined;
+ /** Description of this permission. */
+ description?: string | undefined;
+ /** List of sources where this permission is coming from. */
+ sources?: Management.UserEffectivePermissionSourceEnum[] | undefined;
+}
+
+/** The source type of a user effective permission roles. */
+export const UserEffectivePermissionRoleSourceEnum = {
+ Direct: "direct",
+ Groups: "groups",
+} as const;
+export type UserEffectivePermissionRoleSourceEnum =
+ (typeof UserEffectivePermissionRoleSourceEnum)[keyof typeof UserEffectivePermissionRoleSourceEnum];
+
+export interface UserEffectivePermissionRoleSourceResponseContent {
+ /** ID for this role. */
+ id?: string | undefined;
+ /** Name of this role. */
+ name?: string | undefined;
+ /** Description of this role. */
+ description?: string | undefined;
+ /** List of sources where this role is coming from. */
+ sources?: Management.UserEffectivePermissionRoleSourceEnum[] | undefined;
+}
+
+/** The source type of a user effective permission. */
+export const UserEffectivePermissionSourceEnum = {
+ Direct: "direct",
+ Roles: "roles",
+} as const;
+export type UserEffectivePermissionSourceEnum =
+ (typeof UserEffectivePermissionSourceEnum)[keyof typeof UserEffectivePermissionSourceEnum];
+
+export interface UserEffectiveRole {
+ /** Role ID */
+ id: string;
+ /** Role name */
+ name: string;
+ /** Role description */
+ description: string;
+ /** Sources of the role assignment (direct or through group membership) */
+ sources: Management.UserEffectiveRoleSource[];
+}
+
+export const UserEffectiveRoleSource = {
+ Direct: "direct",
+ Groups: "groups",
+} as const;
+export type UserEffectiveRoleSource = (typeof UserEffectiveRoleSource)[keyof typeof UserEffectiveRoleSource];
+
/** Authentication method for this enrollment. Can be `authenticator`, `guardian`, `sms`, `webauthn-roaming`, or `webauthn-platform`. */
export const UserEnrollmentAuthMethodEnum = {
Authenticator: "authenticator",
@@ -25808,9 +26213,11 @@ export interface UserResponseSchema {
nickname?: string | undefined;
/** List of multi-factor authentication providers with which this user has enrolled. */
multifactor?: string[] | undefined;
+ multifactor_last_modified?: Management.UserDateSchema | undefined;
/** Last IP address from which this user logged in. */
last_ip?: string | undefined;
last_login?: Management.UserDateSchema | undefined;
+ last_password_reset?: Management.UserDateSchema | undefined;
/** Total number of logins this user has performed. */
logins_count?: number | undefined;
/** Whether this user was blocked by an administrator (true) or is not (false). */
diff --git a/src/management/core/auth/AuthProvider.ts b/src/management/core/auth/AuthProvider.ts
index 895a50ff30..c9478669fb 100644
--- a/src/management/core/auth/AuthProvider.ts
+++ b/src/management/core/auth/AuthProvider.ts
@@ -4,3 +4,12 @@ import type { AuthRequest } from "./AuthRequest.js";
export interface AuthProvider {
getAuthRequest(arg?: { endpointMetadata?: EndpointMetadata }): Promise;
}
+
+export function isAuthProvider(value: unknown): value is AuthProvider {
+ return (
+ typeof value === "object" &&
+ value !== null &&
+ "getAuthRequest" in value &&
+ typeof value.getAuthRequest === "function"
+ );
+}
diff --git a/src/management/core/auth/index.ts b/src/management/core/auth/index.ts
index 2215b22770..77effd090d 100644
--- a/src/management/core/auth/index.ts
+++ b/src/management/core/auth/index.ts
@@ -1,4 +1,4 @@
-export type { AuthProvider } from "./AuthProvider.js";
+export { type AuthProvider, isAuthProvider } from "./AuthProvider.js";
export type { AuthRequest } from "./AuthRequest.js";
export { BasicAuth } from "./BasicAuth.js";
export { BearerToken } from "./BearerToken.js";
diff --git a/src/management/core/fetcher/requestWithRetries.ts b/src/management/core/fetcher/requestWithRetries.ts
index 1f689688c4..5e66b9330e 100644
--- a/src/management/core/fetcher/requestWithRetries.ts
+++ b/src/management/core/fetcher/requestWithRetries.ts
@@ -3,6 +3,10 @@ const MAX_RETRY_DELAY = 60000; // in milliseconds
const DEFAULT_MAX_RETRIES = 2;
const JITTER_FACTOR = 0.2; // 20% random jitter
+function isRetryableStatusCode(statusCode: number): boolean {
+ return [408, 429].includes(statusCode) || statusCode >= 500;
+}
+
function addPositiveJitter(delay: number): number {
const jitterMultiplier = 1 + Math.random() * JITTER_FACTOR;
return delay * jitterMultiplier;
@@ -51,7 +55,7 @@ export async function requestWithRetries(
let response: Response = await requestFn();
for (let i = 0; i < maxRetries; ++i) {
- if ([408, 429].includes(response.status) || response.status >= 500) {
+ if (isRetryableStatusCode(response.status)) {
const delay = getRetryDelayFromHeaders(response, i);
await new Promise((resolve) => setTimeout(resolve, delay));
diff --git a/src/management/tests/unit/fetcher/makePassthroughRequest.test.ts b/src/management/tests/unit/fetcher/makePassthroughRequest.test.ts
index 92a1ed0331..48278ac2a5 100644
--- a/src/management/tests/unit/fetcher/makePassthroughRequest.test.ts
+++ b/src/management/tests/unit/fetcher/makePassthroughRequest.test.ts
@@ -245,7 +245,7 @@ describe("makePassthroughRequest", () => {
});
it("should use requestOptions maxRetries over client maxRetries", async () => {
- mockFetch.mockResolvedValue(new Response("", { status: 500 }));
+ mockFetch.mockResolvedValue(new Response("", { status: 502 }));
jest.spyOn(global, "setTimeout").mockImplementation((callback: (args: void) => void) => {
process.nextTick(callback);
return null as any;
diff --git a/src/management/tests/unit/fetcher/requestWithRetries.test.ts b/src/management/tests/unit/fetcher/requestWithRetries.test.ts
index 7e5de66d30..78bf9a4673 100644
--- a/src/management/tests/unit/fetcher/requestWithRetries.test.ts
+++ b/src/management/tests/unit/fetcher/requestWithRetries.test.ts
@@ -20,13 +20,13 @@ describe("requestWithRetries", () => {
jest.clearAllTimers();
});
- it("should retry on retryable status codes", async () => {
+ it("should retry on retryable status codes (legacy mode)", async () => {
setTimeoutSpy = jest.spyOn(global, "setTimeout").mockImplementation((callback: (args: void) => void) => {
process.nextTick(callback);
return null as any;
});
- const retryableStatuses = [408, 429, 500, 502];
+ const retryableStatuses = [408, 429, 500, 501, 502, 503, 504, 505];
let callCount = 0;
mockFetch.mockImplementation(async () => {
@@ -44,6 +44,24 @@ describe("requestWithRetries", () => {
expect(response.status).toBe(200);
});
+ it("should retry on 500 Internal Server Error in legacy mode", async () => {
+ setTimeoutSpy = jest.spyOn(global, "setTimeout").mockImplementation((callback: (args: void) => void) => {
+ process.nextTick(callback);
+ return null as any;
+ });
+
+ mockFetch
+ .mockResolvedValueOnce(new Response("", { status: 500 }))
+ .mockResolvedValueOnce(new Response("", { status: 200 }));
+
+ const responsePromise = requestWithRetries(() => mockFetch(), 3);
+ await jest.runAllTimersAsync();
+ const response = await responsePromise;
+
+ expect(mockFetch).toHaveBeenCalledTimes(2);
+ expect(response.status).toBe(200);
+ });
+
it("should respect maxRetries limit", async () => {
setTimeoutSpy = jest.spyOn(global, "setTimeout").mockImplementation((callback: (args: void) => void) => {
process.nextTick(callback);
@@ -51,14 +69,48 @@ describe("requestWithRetries", () => {
});
const maxRetries = 2;
- mockFetch.mockResolvedValue(new Response("", { status: 500 }));
+ mockFetch.mockResolvedValue(new Response("", { status: 503 }));
const responsePromise = requestWithRetries(() => mockFetch(), maxRetries);
await jest.runAllTimersAsync();
const response = await responsePromise;
expect(mockFetch).toHaveBeenCalledTimes(maxRetries + 1);
- expect(response.status).toBe(500);
+ expect(response.status).toBe(503);
+ });
+
+ it("should retry on status 599 (upper boundary of retryable 5xx in legacy mode)", async () => {
+ setTimeoutSpy = jest.spyOn(global, "setTimeout").mockImplementation((callback: (args: void) => void) => {
+ process.nextTick(callback);
+ return null as any;
+ });
+
+ mockFetch
+ .mockResolvedValueOnce(new Response("", { status: 599 }))
+ .mockResolvedValueOnce(new Response("", { status: 200 }));
+
+ const responsePromise = requestWithRetries(() => mockFetch(), 3);
+ await jest.runAllTimersAsync();
+ const response = await responsePromise;
+
+ expect(mockFetch).toHaveBeenCalledTimes(2);
+ expect(response.status).toBe(200);
+ });
+
+ it("should not retry on non-retryable client error (400)", async () => {
+ setTimeoutSpy = jest.spyOn(global, "setTimeout").mockImplementation((callback: (args: void) => void) => {
+ process.nextTick(callback);
+ return null as any;
+ });
+
+ mockFetch.mockResolvedValueOnce(new Response("", { status: 400 }));
+
+ const responsePromise = requestWithRetries(() => mockFetch(), 3);
+ await jest.runAllTimersAsync();
+ const response = await responsePromise;
+
+ expect(mockFetch).toHaveBeenCalledTimes(1);
+ expect(response.status).toBe(400);
});
it("should not retry on success status codes", async () => {
@@ -150,7 +202,7 @@ describe("requestWithRetries", () => {
return null as any;
});
- mockFetch.mockResolvedValue(new Response("", { status: 500 }));
+ mockFetch.mockResolvedValue(new Response("", { status: 502 }));
const maxRetries = 3;
const expectedDelays = [1000, 2000, 4000];
@@ -174,8 +226,8 @@ describe("requestWithRetries", () => {
});
mockFetch
- .mockResolvedValueOnce(new Response("", { status: 500 }))
- .mockResolvedValueOnce(new Response("", { status: 500 }))
+ .mockResolvedValueOnce(new Response("", { status: 502 }))
+ .mockResolvedValueOnce(new Response("", { status: 502 }))
.mockResolvedValueOnce(new Response("", { status: 200 }))
.mockResolvedValueOnce(new Response("", { status: 200 }));
diff --git a/src/management/tests/wire/groups/roles.test.ts b/src/management/tests/wire/groups/roles.test.ts
new file mode 100644
index 0000000000..59287e3c68
--- /dev/null
+++ b/src/management/tests/wire/groups/roles.test.ts
@@ -0,0 +1,309 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import * as Management from "../../../api/index";
+import { ManagementClient } from "../../../Client";
+import { mockServerPool } from "../../mock-server/MockServerPool";
+
+describe("RolesClient", () => {
+ test("list (1)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { roles: [{ id: "id", name: "name", description: "description" }], next: "next" };
+
+ server
+ .mockEndpoint({ once: false })
+ .get("/groups/id/roles")
+ .respondWith()
+ .statusCode(200)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ const expected = rawResponseBody;
+ const page = await client.groups.roles.list("id", {
+ from: "from",
+ take: 1,
+ });
+
+ expect(expected.roles).toEqual(page.data);
+ expect(page.hasNextPage()).toBe(true);
+ const nextPage = await page.getNextPage();
+ expect(expected.roles).toEqual(nextPage.data);
+ });
+
+ test("list (2)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server.mockEndpoint().get("/groups/id/roles").respondWith().statusCode(400).jsonBody(rawResponseBody).build();
+
+ await expect(async () => {
+ return await client.groups.roles.list("id");
+ }).rejects.toThrow(Management.BadRequestError);
+ });
+
+ test("list (3)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server.mockEndpoint().get("/groups/id/roles").respondWith().statusCode(401).jsonBody(rawResponseBody).build();
+
+ await expect(async () => {
+ return await client.groups.roles.list("id");
+ }).rejects.toThrow(Management.UnauthorizedError);
+ });
+
+ test("list (4)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server.mockEndpoint().get("/groups/id/roles").respondWith().statusCode(403).jsonBody(rawResponseBody).build();
+
+ await expect(async () => {
+ return await client.groups.roles.list("id");
+ }).rejects.toThrow(Management.ForbiddenError);
+ });
+
+ test("list (5)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server.mockEndpoint().get("/groups/id/roles").respondWith().statusCode(429).jsonBody(rawResponseBody).build();
+
+ await expect(async () => {
+ return await client.groups.roles.list("id");
+ }).rejects.toThrow(Management.TooManyRequestsError);
+ });
+
+ test("create (1)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { roles: ["roles"] };
+
+ server.mockEndpoint().post("/groups/id/roles").jsonBody(rawRequestBody).respondWith().statusCode(200).build();
+
+ const response = await client.groups.roles.create("id", {
+ roles: ["roles"],
+ });
+ expect(response).toEqual(undefined);
+ });
+
+ test("create (2)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { roles: ["roles", "roles"] };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .post("/groups/id/roles")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(400)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.groups.roles.create("id", {
+ roles: ["roles", "roles"],
+ });
+ }).rejects.toThrow(Management.BadRequestError);
+ });
+
+ test("create (3)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { roles: ["roles", "roles"] };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .post("/groups/id/roles")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(401)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.groups.roles.create("id", {
+ roles: ["roles", "roles"],
+ });
+ }).rejects.toThrow(Management.UnauthorizedError);
+ });
+
+ test("create (4)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { roles: ["roles", "roles"] };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .post("/groups/id/roles")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(403)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.groups.roles.create("id", {
+ roles: ["roles", "roles"],
+ });
+ }).rejects.toThrow(Management.ForbiddenError);
+ });
+
+ test("create (5)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { roles: ["roles", "roles"] };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .post("/groups/id/roles")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(404)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.groups.roles.create("id", {
+ roles: ["roles", "roles"],
+ });
+ }).rejects.toThrow(Management.NotFoundError);
+ });
+
+ test("create (6)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { roles: ["roles", "roles"] };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .post("/groups/id/roles")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(429)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.groups.roles.create("id", {
+ roles: ["roles", "roles"],
+ });
+ }).rejects.toThrow(Management.TooManyRequestsError);
+ });
+
+ test("delete (1)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { roles: ["roles"] };
+
+ server.mockEndpoint().delete("/groups/id/roles").jsonBody(rawRequestBody).respondWith().statusCode(200).build();
+
+ const response = await client.groups.roles.delete("id", {
+ roles: ["roles"],
+ });
+ expect(response).toEqual(undefined);
+ });
+
+ test("delete (2)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { roles: ["roles", "roles"] };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .delete("/groups/id/roles")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(400)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.groups.roles.delete("id", {
+ roles: ["roles", "roles"],
+ });
+ }).rejects.toThrow(Management.BadRequestError);
+ });
+
+ test("delete (3)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { roles: ["roles", "roles"] };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .delete("/groups/id/roles")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(401)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.groups.roles.delete("id", {
+ roles: ["roles", "roles"],
+ });
+ }).rejects.toThrow(Management.UnauthorizedError);
+ });
+
+ test("delete (4)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { roles: ["roles", "roles"] };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .delete("/groups/id/roles")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(403)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.groups.roles.delete("id", {
+ roles: ["roles", "roles"],
+ });
+ }).rejects.toThrow(Management.ForbiddenError);
+ });
+
+ test("delete (5)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { roles: ["roles", "roles"] };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .delete("/groups/id/roles")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(429)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.groups.roles.delete("id", {
+ roles: ["roles", "roles"],
+ });
+ }).rejects.toThrow(Management.TooManyRequestsError);
+ });
+});
diff --git a/src/management/tests/wire/organizations/groups.test.ts b/src/management/tests/wire/organizations/groups.test.ts
new file mode 100644
index 0000000000..16eadb09a4
--- /dev/null
+++ b/src/management/tests/wire/organizations/groups.test.ts
@@ -0,0 +1,122 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import * as Management from "../../../api/index";
+import { ManagementClient } from "../../../Client";
+import { mockServerPool } from "../../mock-server/MockServerPool";
+
+describe("GroupsClient", () => {
+ test("list (1)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = {
+ groups: [
+ {
+ id: "id",
+ name: "name",
+ external_id: "external_id",
+ connection_id: "connection_id",
+ tenant_name: "tenant_name",
+ created_at: "2024-01-15T09:30:00Z",
+ updated_at: "2024-01-15T09:30:00Z",
+ },
+ ],
+ next: "next",
+ };
+
+ server
+ .mockEndpoint({ once: false })
+ .get("/organizations/organization_id/groups")
+ .respondWith()
+ .statusCode(200)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ const expected = rawResponseBody;
+ const page = await client.organizations.groups.list("organization_id", {
+ from: "from",
+ take: 1,
+ });
+
+ expect(expected.groups).toEqual(page.data);
+ expect(page.hasNextPage()).toBe(true);
+ const nextPage = await page.getNextPage();
+ expect(expected.groups).toEqual(nextPage.data);
+ });
+
+ test("list (2)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/organizations/organization_id/groups")
+ .respondWith()
+ .statusCode(400)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.organizations.groups.list("organization_id");
+ }).rejects.toThrow(Management.BadRequestError);
+ });
+
+ test("list (3)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/organizations/organization_id/groups")
+ .respondWith()
+ .statusCode(401)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.organizations.groups.list("organization_id");
+ }).rejects.toThrow(Management.UnauthorizedError);
+ });
+
+ test("list (4)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/organizations/organization_id/groups")
+ .respondWith()
+ .statusCode(403)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.organizations.groups.list("organization_id");
+ }).rejects.toThrow(Management.ForbiddenError);
+ });
+
+ test("list (5)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/organizations/organization_id/groups")
+ .respondWith()
+ .statusCode(429)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.organizations.groups.list("organization_id");
+ }).rejects.toThrow(Management.TooManyRequestsError);
+ });
+});
diff --git a/src/management/tests/wire/organizations/groups/roles.test.ts b/src/management/tests/wire/organizations/groups/roles.test.ts
new file mode 100644
index 0000000000..2aa0af07a3
--- /dev/null
+++ b/src/management/tests/wire/organizations/groups/roles.test.ts
@@ -0,0 +1,345 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import * as Management from "../../../../api/index";
+import { ManagementClient } from "../../../../Client";
+import { mockServerPool } from "../../../mock-server/MockServerPool";
+
+describe("RolesClient", () => {
+ test("list (1)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { roles: [{ id: "id", name: "name", description: "description" }], next: "next" };
+
+ server
+ .mockEndpoint({ once: false })
+ .get("/organizations/organization_id/groups/group_id/roles")
+ .respondWith()
+ .statusCode(200)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ const expected = rawResponseBody;
+ const page = await client.organizations.groups.roles.list("organization_id", "group_id", {
+ from: "from",
+ take: 1,
+ });
+
+ expect(expected.roles).toEqual(page.data);
+ expect(page.hasNextPage()).toBe(true);
+ const nextPage = await page.getNextPage();
+ expect(expected.roles).toEqual(nextPage.data);
+ });
+
+ test("list (2)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/organizations/organization_id/groups/group_id/roles")
+ .respondWith()
+ .statusCode(400)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.organizations.groups.roles.list("organization_id", "group_id");
+ }).rejects.toThrow(Management.BadRequestError);
+ });
+
+ test("list (3)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/organizations/organization_id/groups/group_id/roles")
+ .respondWith()
+ .statusCode(401)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.organizations.groups.roles.list("organization_id", "group_id");
+ }).rejects.toThrow(Management.UnauthorizedError);
+ });
+
+ test("list (4)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/organizations/organization_id/groups/group_id/roles")
+ .respondWith()
+ .statusCode(403)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.organizations.groups.roles.list("organization_id", "group_id");
+ }).rejects.toThrow(Management.ForbiddenError);
+ });
+
+ test("list (5)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/organizations/organization_id/groups/group_id/roles")
+ .respondWith()
+ .statusCode(429)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.organizations.groups.roles.list("organization_id", "group_id");
+ }).rejects.toThrow(Management.TooManyRequestsError);
+ });
+
+ test("create (1)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { roles: ["roles"] };
+
+ server
+ .mockEndpoint()
+ .post("/organizations/organization_id/groups/group_id/roles")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(200)
+ .build();
+
+ const response = await client.organizations.groups.roles.create("organization_id", "group_id", {
+ roles: ["roles"],
+ });
+ expect(response).toEqual(undefined);
+ });
+
+ test("create (2)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { roles: ["roles", "roles"] };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .post("/organizations/organization_id/groups/group_id/roles")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(400)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.organizations.groups.roles.create("organization_id", "group_id", {
+ roles: ["roles", "roles"],
+ });
+ }).rejects.toThrow(Management.BadRequestError);
+ });
+
+ test("create (3)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { roles: ["roles", "roles"] };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .post("/organizations/organization_id/groups/group_id/roles")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(401)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.organizations.groups.roles.create("organization_id", "group_id", {
+ roles: ["roles", "roles"],
+ });
+ }).rejects.toThrow(Management.UnauthorizedError);
+ });
+
+ test("create (4)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { roles: ["roles", "roles"] };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .post("/organizations/organization_id/groups/group_id/roles")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(403)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.organizations.groups.roles.create("organization_id", "group_id", {
+ roles: ["roles", "roles"],
+ });
+ }).rejects.toThrow(Management.ForbiddenError);
+ });
+
+ test("create (5)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { roles: ["roles", "roles"] };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .post("/organizations/organization_id/groups/group_id/roles")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(409)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.organizations.groups.roles.create("organization_id", "group_id", {
+ roles: ["roles", "roles"],
+ });
+ }).rejects.toThrow(Management.ConflictError);
+ });
+
+ test("create (6)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { roles: ["roles", "roles"] };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .post("/organizations/organization_id/groups/group_id/roles")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(429)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.organizations.groups.roles.create("organization_id", "group_id", {
+ roles: ["roles", "roles"],
+ });
+ }).rejects.toThrow(Management.TooManyRequestsError);
+ });
+
+ test("delete (1)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { roles: ["roles"] };
+
+ server
+ .mockEndpoint()
+ .delete("/organizations/organization_id/groups/group_id/roles")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(200)
+ .build();
+
+ const response = await client.organizations.groups.roles.delete("organization_id", "group_id", {
+ roles: ["roles"],
+ });
+ expect(response).toEqual(undefined);
+ });
+
+ test("delete (2)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { roles: ["roles", "roles"] };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .delete("/organizations/organization_id/groups/group_id/roles")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(400)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.organizations.groups.roles.delete("organization_id", "group_id", {
+ roles: ["roles", "roles"],
+ });
+ }).rejects.toThrow(Management.BadRequestError);
+ });
+
+ test("delete (3)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { roles: ["roles", "roles"] };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .delete("/organizations/organization_id/groups/group_id/roles")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(401)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.organizations.groups.roles.delete("organization_id", "group_id", {
+ roles: ["roles", "roles"],
+ });
+ }).rejects.toThrow(Management.UnauthorizedError);
+ });
+
+ test("delete (4)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { roles: ["roles", "roles"] };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .delete("/organizations/organization_id/groups/group_id/roles")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(403)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.organizations.groups.roles.delete("organization_id", "group_id", {
+ roles: ["roles", "roles"],
+ });
+ }).rejects.toThrow(Management.ForbiddenError);
+ });
+
+ test("delete (5)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { roles: ["roles", "roles"] };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .delete("/organizations/organization_id/groups/group_id/roles")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(429)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.organizations.groups.roles.delete("organization_id", "group_id", {
+ roles: ["roles", "roles"],
+ });
+ }).rejects.toThrow(Management.TooManyRequestsError);
+ });
+});
diff --git a/src/management/tests/wire/organizations/members/effectiveRoles.test.ts b/src/management/tests/wire/organizations/members/effectiveRoles.test.ts
new file mode 100644
index 0000000000..9c5555f26f
--- /dev/null
+++ b/src/management/tests/wire/organizations/members/effectiveRoles.test.ts
@@ -0,0 +1,112 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import * as Management from "../../../../api/index";
+import { ManagementClient } from "../../../../Client";
+import { mockServerPool } from "../../../mock-server/MockServerPool";
+
+describe("EffectiveRolesClient", () => {
+ test("list (1)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = {
+ roles: [{ id: "id", name: "name", description: "description", sources: ["direct"] }],
+ next: "next",
+ };
+
+ server
+ .mockEndpoint({ once: false })
+ .get("/organizations/id/members/user_id/effective-roles")
+ .respondWith()
+ .statusCode(200)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ const expected = rawResponseBody;
+ const page = await client.organizations.members.effectiveRoles.list("id", "user_id", {
+ from: "from",
+ take: 1,
+ });
+
+ expect(expected.roles).toEqual(page.data);
+ expect(page.hasNextPage()).toBe(true);
+ const nextPage = await page.getNextPage();
+ expect(expected.roles).toEqual(nextPage.data);
+ });
+
+ test("list (2)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/organizations/id/members/user_id/effective-roles")
+ .respondWith()
+ .statusCode(400)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.organizations.members.effectiveRoles.list("id", "user_id");
+ }).rejects.toThrow(Management.BadRequestError);
+ });
+
+ test("list (3)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/organizations/id/members/user_id/effective-roles")
+ .respondWith()
+ .statusCode(401)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.organizations.members.effectiveRoles.list("id", "user_id");
+ }).rejects.toThrow(Management.UnauthorizedError);
+ });
+
+ test("list (4)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/organizations/id/members/user_id/effective-roles")
+ .respondWith()
+ .statusCode(403)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.organizations.members.effectiveRoles.list("id", "user_id");
+ }).rejects.toThrow(Management.ForbiddenError);
+ });
+
+ test("list (5)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/organizations/id/members/user_id/effective-roles")
+ .respondWith()
+ .statusCode(429)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.organizations.members.effectiveRoles.list("id", "user_id");
+ }).rejects.toThrow(Management.TooManyRequestsError);
+ });
+});
diff --git a/src/management/tests/wire/organizations/members/effectiveRoles/sources/groups.test.ts b/src/management/tests/wire/organizations/members/effectiveRoles/sources/groups.test.ts
new file mode 100644
index 0000000000..72d017780a
--- /dev/null
+++ b/src/management/tests/wire/organizations/members/effectiveRoles/sources/groups.test.ts
@@ -0,0 +1,131 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import * as Management from "../../../../../../api/index";
+import { ManagementClient } from "../../../../../../Client";
+import { mockServerPool } from "../../../../../mock-server/MockServerPool";
+
+describe("GroupsClient", () => {
+ test("list (1)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = {
+ groups: [
+ {
+ id: "id",
+ name: "name",
+ external_id: "external_id",
+ connection_id: "connection_id",
+ tenant_name: "tenant_name",
+ created_at: "2024-01-15T09:30:00Z",
+ updated_at: "2024-01-15T09:30:00Z",
+ },
+ ],
+ next: "next",
+ };
+
+ server
+ .mockEndpoint({ once: false })
+ .get("/organizations/id/members/user_id/effective-roles/sources/groups")
+ .respondWith()
+ .statusCode(200)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ const expected = rawResponseBody;
+ const page = await client.organizations.members.effectiveRoles.sources.groups.list("id", "user_id", {
+ from: "from",
+ take: 1,
+ role_id: "role_id",
+ });
+
+ expect(expected.groups).toEqual(page.data);
+ expect(page.hasNextPage()).toBe(true);
+ const nextPage = await page.getNextPage();
+ expect(expected.groups).toEqual(nextPage.data);
+ });
+
+ test("list (2)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/organizations/id/members/user_id/effective-roles/sources/groups")
+ .respondWith()
+ .statusCode(400)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.organizations.members.effectiveRoles.sources.groups.list("id", "user_id", {
+ role_id: "role_id",
+ });
+ }).rejects.toThrow(Management.BadRequestError);
+ });
+
+ test("list (3)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/organizations/id/members/user_id/effective-roles/sources/groups")
+ .respondWith()
+ .statusCode(401)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.organizations.members.effectiveRoles.sources.groups.list("id", "user_id", {
+ role_id: "role_id",
+ });
+ }).rejects.toThrow(Management.UnauthorizedError);
+ });
+
+ test("list (4)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/organizations/id/members/user_id/effective-roles/sources/groups")
+ .respondWith()
+ .statusCode(403)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.organizations.members.effectiveRoles.sources.groups.list("id", "user_id", {
+ role_id: "role_id",
+ });
+ }).rejects.toThrow(Management.ForbiddenError);
+ });
+
+ test("list (5)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/organizations/id/members/user_id/effective-roles/sources/groups")
+ .respondWith()
+ .statusCode(429)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.organizations.members.effectiveRoles.sources.groups.list("id", "user_id", {
+ role_id: "role_id",
+ });
+ }).rejects.toThrow(Management.TooManyRequestsError);
+ });
+});
diff --git a/src/management/tests/wire/rateLimitPolicies.test.ts b/src/management/tests/wire/rateLimitPolicies.test.ts
new file mode 100644
index 0000000000..b3108173d3
--- /dev/null
+++ b/src/management/tests/wire/rateLimitPolicies.test.ts
@@ -0,0 +1,663 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import * as Management from "../../api/index";
+import { ManagementClient } from "../../Client";
+import { mockServerPool } from "../mock-server/MockServerPool";
+
+describe("RateLimitPoliciesClient", () => {
+ test("list (1)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = {
+ rate_limit_policies: [
+ {
+ id: "id",
+ resource: "oauth_authentication_api",
+ consumer: "client",
+ consumer_selector: "consumer_selector",
+ configuration: { action: "allow" },
+ created_at: "2024-01-15T09:30:00Z",
+ updated_at: "2024-01-15T09:30:00Z",
+ },
+ ],
+ next: "next",
+ };
+
+ server
+ .mockEndpoint({ once: false })
+ .get("/rate-limit-policies")
+ .respondWith()
+ .statusCode(200)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ const expected = rawResponseBody;
+ const page = await client.rateLimitPolicies.list({
+ resource: "oauth_authentication_api",
+ consumer: "client",
+ consumer_selector: "consumer_selector",
+ take: 1,
+ from: "from",
+ });
+
+ expect(expected.rate_limit_policies).toEqual(page.data);
+ expect(page.hasNextPage()).toBe(true);
+ const nextPage = await page.getNextPage();
+ expect(expected.rate_limit_policies).toEqual(nextPage.data);
+ });
+
+ test("list (2)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/rate-limit-policies")
+ .respondWith()
+ .statusCode(400)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.rateLimitPolicies.list();
+ }).rejects.toThrow(Management.BadRequestError);
+ });
+
+ test("list (3)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/rate-limit-policies")
+ .respondWith()
+ .statusCode(401)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.rateLimitPolicies.list();
+ }).rejects.toThrow(Management.UnauthorizedError);
+ });
+
+ test("list (4)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/rate-limit-policies")
+ .respondWith()
+ .statusCode(403)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.rateLimitPolicies.list();
+ }).rejects.toThrow(Management.ForbiddenError);
+ });
+
+ test("list (5)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/rate-limit-policies")
+ .respondWith()
+ .statusCode(429)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.rateLimitPolicies.list();
+ }).rejects.toThrow(Management.TooManyRequestsError);
+ });
+
+ test("create (1)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = {
+ resource: "oauth_authentication_api",
+ consumer: "client",
+ consumer_selector: "consumer_selector",
+ configuration: { action: "allow" },
+ };
+ const rawResponseBody = {
+ id: "id",
+ resource: "oauth_authentication_api",
+ consumer: "client",
+ consumer_selector: "consumer_selector",
+ configuration: { action: "allow" },
+ created_at: "2024-01-15T09:30:00Z",
+ updated_at: "2024-01-15T09:30:00Z",
+ };
+
+ server
+ .mockEndpoint()
+ .post("/rate-limit-policies")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(200)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ const response = await client.rateLimitPolicies.create({
+ resource: "oauth_authentication_api",
+ consumer: "client",
+ consumer_selector: "consumer_selector",
+ configuration: {
+ action: "allow",
+ },
+ });
+ expect(response).toEqual(rawResponseBody);
+ });
+
+ test("create (2)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = {
+ resource: "oauth_authentication_api",
+ consumer: "client",
+ consumer_selector: "consumer_selector",
+ configuration: { action: "allow" },
+ };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .post("/rate-limit-policies")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(400)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.rateLimitPolicies.create({
+ resource: "oauth_authentication_api",
+ consumer: "client",
+ consumer_selector: "consumer_selector",
+ configuration: {
+ action: "allow",
+ },
+ });
+ }).rejects.toThrow(Management.BadRequestError);
+ });
+
+ test("create (3)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = {
+ resource: "oauth_authentication_api",
+ consumer: "client",
+ consumer_selector: "consumer_selector",
+ configuration: { action: "allow" },
+ };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .post("/rate-limit-policies")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(401)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.rateLimitPolicies.create({
+ resource: "oauth_authentication_api",
+ consumer: "client",
+ consumer_selector: "consumer_selector",
+ configuration: {
+ action: "allow",
+ },
+ });
+ }).rejects.toThrow(Management.UnauthorizedError);
+ });
+
+ test("create (4)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = {
+ resource: "oauth_authentication_api",
+ consumer: "client",
+ consumer_selector: "consumer_selector",
+ configuration: { action: "allow" },
+ };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .post("/rate-limit-policies")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(403)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.rateLimitPolicies.create({
+ resource: "oauth_authentication_api",
+ consumer: "client",
+ consumer_selector: "consumer_selector",
+ configuration: {
+ action: "allow",
+ },
+ });
+ }).rejects.toThrow(Management.ForbiddenError);
+ });
+
+ test("create (5)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = {
+ resource: "oauth_authentication_api",
+ consumer: "client",
+ consumer_selector: "consumer_selector",
+ configuration: { action: "allow" },
+ };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .post("/rate-limit-policies")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(409)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.rateLimitPolicies.create({
+ resource: "oauth_authentication_api",
+ consumer: "client",
+ consumer_selector: "consumer_selector",
+ configuration: {
+ action: "allow",
+ },
+ });
+ }).rejects.toThrow(Management.ConflictError);
+ });
+
+ test("create (6)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = {
+ resource: "oauth_authentication_api",
+ consumer: "client",
+ consumer_selector: "consumer_selector",
+ configuration: { action: "allow" },
+ };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .post("/rate-limit-policies")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(429)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.rateLimitPolicies.create({
+ resource: "oauth_authentication_api",
+ consumer: "client",
+ consumer_selector: "consumer_selector",
+ configuration: {
+ action: "allow",
+ },
+ });
+ }).rejects.toThrow(Management.TooManyRequestsError);
+ });
+
+ test("get (1)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = {
+ id: "id",
+ resource: "oauth_authentication_api",
+ consumer: "client",
+ consumer_selector: "consumer_selector",
+ configuration: { action: "allow" },
+ created_at: "2024-01-15T09:30:00Z",
+ updated_at: "2024-01-15T09:30:00Z",
+ };
+
+ server
+ .mockEndpoint()
+ .get("/rate-limit-policies/id")
+ .respondWith()
+ .statusCode(200)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ const response = await client.rateLimitPolicies.get("id");
+ expect(response).toEqual(rawResponseBody);
+ });
+
+ test("get (2)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/rate-limit-policies/id")
+ .respondWith()
+ .statusCode(401)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.rateLimitPolicies.get("id");
+ }).rejects.toThrow(Management.UnauthorizedError);
+ });
+
+ test("get (3)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/rate-limit-policies/id")
+ .respondWith()
+ .statusCode(403)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.rateLimitPolicies.get("id");
+ }).rejects.toThrow(Management.ForbiddenError);
+ });
+
+ test("get (4)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/rate-limit-policies/id")
+ .respondWith()
+ .statusCode(404)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.rateLimitPolicies.get("id");
+ }).rejects.toThrow(Management.NotFoundError);
+ });
+
+ test("get (5)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/rate-limit-policies/id")
+ .respondWith()
+ .statusCode(429)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.rateLimitPolicies.get("id");
+ }).rejects.toThrow(Management.TooManyRequestsError);
+ });
+
+ test("delete (1)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ server.mockEndpoint().delete("/rate-limit-policies/id").respondWith().statusCode(200).build();
+
+ const response = await client.rateLimitPolicies.delete("id");
+ expect(response).toEqual(undefined);
+ });
+
+ test("delete (2)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .delete("/rate-limit-policies/id")
+ .respondWith()
+ .statusCode(401)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.rateLimitPolicies.delete("id");
+ }).rejects.toThrow(Management.UnauthorizedError);
+ });
+
+ test("delete (3)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .delete("/rate-limit-policies/id")
+ .respondWith()
+ .statusCode(403)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.rateLimitPolicies.delete("id");
+ }).rejects.toThrow(Management.ForbiddenError);
+ });
+
+ test("delete (4)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .delete("/rate-limit-policies/id")
+ .respondWith()
+ .statusCode(404)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.rateLimitPolicies.delete("id");
+ }).rejects.toThrow(Management.NotFoundError);
+ });
+
+ test("delete (5)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .delete("/rate-limit-policies/id")
+ .respondWith()
+ .statusCode(429)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.rateLimitPolicies.delete("id");
+ }).rejects.toThrow(Management.TooManyRequestsError);
+ });
+
+ test("update (1)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { configuration: { action: "allow" } };
+ const rawResponseBody = {
+ id: "id",
+ resource: "oauth_authentication_api",
+ consumer: "client",
+ consumer_selector: "consumer_selector",
+ configuration: { action: "allow" },
+ created_at: "2024-01-15T09:30:00Z",
+ updated_at: "2024-01-15T09:30:00Z",
+ };
+
+ server
+ .mockEndpoint()
+ .patch("/rate-limit-policies/id")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(200)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ const response = await client.rateLimitPolicies.update("id", {
+ configuration: {
+ action: "allow",
+ },
+ });
+ expect(response).toEqual(rawResponseBody);
+ });
+
+ test("update (2)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { configuration: { action: "allow" } };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .patch("/rate-limit-policies/id")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(400)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.rateLimitPolicies.update("id", {
+ configuration: {
+ action: "allow",
+ },
+ });
+ }).rejects.toThrow(Management.BadRequestError);
+ });
+
+ test("update (3)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { configuration: { action: "allow" } };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .patch("/rate-limit-policies/id")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(401)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.rateLimitPolicies.update("id", {
+ configuration: {
+ action: "allow",
+ },
+ });
+ }).rejects.toThrow(Management.UnauthorizedError);
+ });
+
+ test("update (4)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { configuration: { action: "allow" } };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .patch("/rate-limit-policies/id")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(403)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.rateLimitPolicies.update("id", {
+ configuration: {
+ action: "allow",
+ },
+ });
+ }).rejects.toThrow(Management.ForbiddenError);
+ });
+
+ test("update (5)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { configuration: { action: "allow" } };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .patch("/rate-limit-policies/id")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(404)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.rateLimitPolicies.update("id", {
+ configuration: {
+ action: "allow",
+ },
+ });
+ }).rejects.toThrow(Management.NotFoundError);
+ });
+
+ test("update (6)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { configuration: { action: "allow" } };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .patch("/rate-limit-policies/id")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(429)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.rateLimitPolicies.update("id", {
+ configuration: {
+ action: "allow",
+ },
+ });
+ }).rejects.toThrow(Management.TooManyRequestsError);
+ });
+});
diff --git a/src/management/tests/wire/roles/groups.test.ts b/src/management/tests/wire/roles/groups.test.ts
new file mode 100644
index 0000000000..d0b772a1d9
--- /dev/null
+++ b/src/management/tests/wire/roles/groups.test.ts
@@ -0,0 +1,322 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import * as Management from "../../../api/index";
+import { ManagementClient } from "../../../Client";
+import { mockServerPool } from "../../mock-server/MockServerPool";
+
+describe("GroupsClient", () => {
+ test("get (1)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = {
+ groups: [
+ {
+ id: "id",
+ name: "name",
+ external_id: "external_id",
+ connection_id: "connection_id",
+ tenant_name: "tenant_name",
+ created_at: "2024-01-15T09:30:00Z",
+ updated_at: "2024-01-15T09:30:00Z",
+ },
+ ],
+ next: "next",
+ };
+
+ server
+ .mockEndpoint({ once: false })
+ .get("/roles/id/groups")
+ .respondWith()
+ .statusCode(200)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ const expected = rawResponseBody;
+ const page = await client.roles.groups.get("id", {
+ from: "from",
+ take: 1,
+ });
+
+ expect(expected.groups).toEqual(page.data);
+ expect(page.hasNextPage()).toBe(true);
+ const nextPage = await page.getNextPage();
+ expect(expected.groups).toEqual(nextPage.data);
+ });
+
+ test("get (2)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server.mockEndpoint().get("/roles/id/groups").respondWith().statusCode(400).jsonBody(rawResponseBody).build();
+
+ await expect(async () => {
+ return await client.roles.groups.get("id");
+ }).rejects.toThrow(Management.BadRequestError);
+ });
+
+ test("get (3)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server.mockEndpoint().get("/roles/id/groups").respondWith().statusCode(401).jsonBody(rawResponseBody).build();
+
+ await expect(async () => {
+ return await client.roles.groups.get("id");
+ }).rejects.toThrow(Management.UnauthorizedError);
+ });
+
+ test("get (4)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server.mockEndpoint().get("/roles/id/groups").respondWith().statusCode(403).jsonBody(rawResponseBody).build();
+
+ await expect(async () => {
+ return await client.roles.groups.get("id");
+ }).rejects.toThrow(Management.ForbiddenError);
+ });
+
+ test("get (5)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server.mockEndpoint().get("/roles/id/groups").respondWith().statusCode(429).jsonBody(rawResponseBody).build();
+
+ await expect(async () => {
+ return await client.roles.groups.get("id");
+ }).rejects.toThrow(Management.TooManyRequestsError);
+ });
+
+ test("create (1)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { groups: ["groups"] };
+
+ server.mockEndpoint().post("/roles/id/groups").jsonBody(rawRequestBody).respondWith().statusCode(200).build();
+
+ const response = await client.roles.groups.create("id", {
+ groups: ["groups"],
+ });
+ expect(response).toEqual(undefined);
+ });
+
+ test("create (2)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { groups: ["groups", "groups"] };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .post("/roles/id/groups")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(400)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.roles.groups.create("id", {
+ groups: ["groups", "groups"],
+ });
+ }).rejects.toThrow(Management.BadRequestError);
+ });
+
+ test("create (3)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { groups: ["groups", "groups"] };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .post("/roles/id/groups")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(401)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.roles.groups.create("id", {
+ groups: ["groups", "groups"],
+ });
+ }).rejects.toThrow(Management.UnauthorizedError);
+ });
+
+ test("create (4)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { groups: ["groups", "groups"] };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .post("/roles/id/groups")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(403)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.roles.groups.create("id", {
+ groups: ["groups", "groups"],
+ });
+ }).rejects.toThrow(Management.ForbiddenError);
+ });
+
+ test("create (5)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { groups: ["groups", "groups"] };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .post("/roles/id/groups")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(404)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.roles.groups.create("id", {
+ groups: ["groups", "groups"],
+ });
+ }).rejects.toThrow(Management.NotFoundError);
+ });
+
+ test("create (6)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { groups: ["groups", "groups"] };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .post("/roles/id/groups")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(429)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.roles.groups.create("id", {
+ groups: ["groups", "groups"],
+ });
+ }).rejects.toThrow(Management.TooManyRequestsError);
+ });
+
+ test("delete (1)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { groups: ["groups"] };
+
+ server.mockEndpoint().delete("/roles/id/groups").jsonBody(rawRequestBody).respondWith().statusCode(200).build();
+
+ const response = await client.roles.groups.delete("id", {
+ groups: ["groups"],
+ });
+ expect(response).toEqual(undefined);
+ });
+
+ test("delete (2)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { groups: ["groups", "groups"] };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .delete("/roles/id/groups")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(400)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.roles.groups.delete("id", {
+ groups: ["groups", "groups"],
+ });
+ }).rejects.toThrow(Management.BadRequestError);
+ });
+
+ test("delete (3)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { groups: ["groups", "groups"] };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .delete("/roles/id/groups")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(401)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.roles.groups.delete("id", {
+ groups: ["groups", "groups"],
+ });
+ }).rejects.toThrow(Management.UnauthorizedError);
+ });
+
+ test("delete (4)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { groups: ["groups", "groups"] };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .delete("/roles/id/groups")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(403)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.roles.groups.delete("id", {
+ groups: ["groups", "groups"],
+ });
+ }).rejects.toThrow(Management.ForbiddenError);
+ });
+
+ test("delete (5)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+ const rawRequestBody = { groups: ["groups", "groups"] };
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .delete("/roles/id/groups")
+ .jsonBody(rawRequestBody)
+ .respondWith()
+ .statusCode(429)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.roles.groups.delete("id", {
+ groups: ["groups", "groups"],
+ });
+ }).rejects.toThrow(Management.TooManyRequestsError);
+ });
+});
diff --git a/src/management/tests/wire/tenants/settings.test.ts b/src/management/tests/wire/tenants/settings.test.ts
index 1688a63954..bfd66a5675 100644
--- a/src/management/tests/wire/tenants/settings.test.ts
+++ b/src/management/tests/wire/tenants/settings.test.ts
@@ -77,6 +77,7 @@ describe("SettingsClient", () => {
phone_consolidated_experience: true,
enable_ai_guide: true,
dynamic_client_registration_security_mode: "strict",
+ country_codes: { list: ["list"], mode: "allow" },
};
server.mockEndpoint().get("/tenants/settings").respondWith().statusCode(200).jsonBody(rawResponseBody).build();
@@ -212,6 +213,7 @@ describe("SettingsClient", () => {
phone_consolidated_experience: true,
enable_ai_guide: true,
dynamic_client_registration_security_mode: "strict",
+ country_codes: { list: ["list"], mode: "allow" },
};
server
diff --git a/src/management/tests/wire/users.test.ts b/src/management/tests/wire/users.test.ts
index 16bb954499..ab986d8ca2 100644
--- a/src/management/tests/wire/users.test.ts
+++ b/src/management/tests/wire/users.test.ts
@@ -31,8 +31,10 @@ describe("UsersClient", () => {
name: "name",
nickname: "nickname",
multifactor: ["multifactor"],
+ multifactor_last_modified: "multifactor_last_modified",
last_ip: "last_ip",
last_login: "last_login",
+ last_password_reset: "last_password_reset",
logins_count: 1,
blocked: true,
given_name: "given_name",
@@ -194,8 +196,10 @@ describe("UsersClient", () => {
name: "name",
nickname: "nickname",
multifactor: ["multifactor"],
+ multifactor_last_modified: "multifactor_last_modified",
last_ip: "last_ip",
last_login: "last_login",
+ last_password_reset: "last_password_reset",
logins_count: 1,
blocked: true,
given_name: "given_name",
@@ -348,8 +352,10 @@ describe("UsersClient", () => {
name: "name",
nickname: "nickname",
multifactor: ["multifactor"],
+ multifactor_last_modified: "multifactor_last_modified",
last_ip: "last_ip",
last_login: "last_login",
+ last_password_reset: "last_password_reset",
logins_count: 1,
blocked: true,
given_name: "given_name",
@@ -457,8 +463,10 @@ describe("UsersClient", () => {
name: "name",
nickname: "nickname",
multifactor: ["multifactor"],
+ multifactor_last_modified: "multifactor_last_modified",
last_ip: "last_ip",
last_login: "last_login",
+ last_password_reset: "last_password_reset",
logins_count: 1,
blocked: true,
given_name: "given_name",
@@ -631,8 +639,10 @@ describe("UsersClient", () => {
name: "name",
nickname: "nickname",
multifactor: ["multifactor"],
+ multifactor_last_modified: "multifactor_last_modified",
last_ip: "last_ip",
last_login: "last_login",
+ last_password_reset: "last_password_reset",
logins_count: 1,
blocked: true,
given_name: "given_name",
diff --git a/src/management/tests/wire/users/effectivePermissions.test.ts b/src/management/tests/wire/users/effectivePermissions.test.ts
new file mode 100644
index 0000000000..1f88b65012
--- /dev/null
+++ b/src/management/tests/wire/users/effectivePermissions.test.ts
@@ -0,0 +1,150 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import * as Management from "../../../api/index";
+import { ManagementClient } from "../../../Client";
+import { mockServerPool } from "../../mock-server/MockServerPool";
+
+describe("EffectivePermissionsClient", () => {
+ test("list (1)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = {
+ permissions: [
+ {
+ resource_server_identifier: "resource_server_identifier",
+ permission_name: "permission_name",
+ resource_server_name: "resource_server_name",
+ description: "description",
+ sources: ["direct"],
+ },
+ ],
+ next: "next",
+ };
+
+ server
+ .mockEndpoint({ once: false })
+ .get("/users/id/effective-permissions")
+ .respondWith()
+ .statusCode(200)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ const expected = rawResponseBody;
+ const page = await client.users.effectivePermissions.list("id", {
+ from: "from",
+ take: 1,
+ resource_server_identifier: "resource_server_identifier",
+ });
+
+ expect(expected.permissions).toEqual(page.data);
+ expect(page.hasNextPage()).toBe(true);
+ const nextPage = await page.getNextPage();
+ expect(expected.permissions).toEqual(nextPage.data);
+ });
+
+ test("list (2)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/users/id/effective-permissions")
+ .respondWith()
+ .statusCode(400)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.users.effectivePermissions.list("id", {
+ resource_server_identifier: "x",
+ });
+ }).rejects.toThrow(Management.BadRequestError);
+ });
+
+ test("list (3)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/users/id/effective-permissions")
+ .respondWith()
+ .statusCode(401)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.users.effectivePermissions.list("id", {
+ resource_server_identifier: "x",
+ });
+ }).rejects.toThrow(Management.UnauthorizedError);
+ });
+
+ test("list (4)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/users/id/effective-permissions")
+ .respondWith()
+ .statusCode(403)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.users.effectivePermissions.list("id", {
+ resource_server_identifier: "x",
+ });
+ }).rejects.toThrow(Management.ForbiddenError);
+ });
+
+ test("list (5)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/users/id/effective-permissions")
+ .respondWith()
+ .statusCode(404)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.users.effectivePermissions.list("id", {
+ resource_server_identifier: "x",
+ });
+ }).rejects.toThrow(Management.NotFoundError);
+ });
+
+ test("list (6)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/users/id/effective-permissions")
+ .respondWith()
+ .statusCode(429)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.users.effectivePermissions.list("id", {
+ resource_server_identifier: "x",
+ });
+ }).rejects.toThrow(Management.TooManyRequestsError);
+ });
+});
diff --git a/src/management/tests/wire/users/effectivePermissions/sources/roles.test.ts b/src/management/tests/wire/users/effectivePermissions/sources/roles.test.ts
new file mode 100644
index 0000000000..a66a06c236
--- /dev/null
+++ b/src/management/tests/wire/users/effectivePermissions/sources/roles.test.ts
@@ -0,0 +1,148 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import * as Management from "../../../../../api/index";
+import { ManagementClient } from "../../../../../Client";
+import { mockServerPool } from "../../../../mock-server/MockServerPool";
+
+describe("RolesClient", () => {
+ test("list (1)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = {
+ roles: [{ id: "id", name: "name", description: "description", sources: ["direct"] }],
+ next: "next",
+ };
+
+ server
+ .mockEndpoint({ once: false })
+ .get("/users/id/effective-permissions/sources/effective-roles")
+ .respondWith()
+ .statusCode(200)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ const expected = rawResponseBody;
+ const page = await client.users.effectivePermissions.sources.roles.list("id", {
+ from: "from",
+ take: 1,
+ resource_server_identifier: "resource_server_identifier",
+ permission_name: "permission_name",
+ });
+
+ expect(expected.roles).toEqual(page.data);
+ expect(page.hasNextPage()).toBe(true);
+ const nextPage = await page.getNextPage();
+ expect(expected.roles).toEqual(nextPage.data);
+ });
+
+ test("list (2)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/users/id/effective-permissions/sources/effective-roles")
+ .respondWith()
+ .statusCode(400)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.users.effectivePermissions.sources.roles.list("id", {
+ resource_server_identifier: "x",
+ permission_name: "x",
+ });
+ }).rejects.toThrow(Management.BadRequestError);
+ });
+
+ test("list (3)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/users/id/effective-permissions/sources/effective-roles")
+ .respondWith()
+ .statusCode(401)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.users.effectivePermissions.sources.roles.list("id", {
+ resource_server_identifier: "x",
+ permission_name: "x",
+ });
+ }).rejects.toThrow(Management.UnauthorizedError);
+ });
+
+ test("list (4)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/users/id/effective-permissions/sources/effective-roles")
+ .respondWith()
+ .statusCode(403)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.users.effectivePermissions.sources.roles.list("id", {
+ resource_server_identifier: "x",
+ permission_name: "x",
+ });
+ }).rejects.toThrow(Management.ForbiddenError);
+ });
+
+ test("list (5)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/users/id/effective-permissions/sources/effective-roles")
+ .respondWith()
+ .statusCode(404)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.users.effectivePermissions.sources.roles.list("id", {
+ resource_server_identifier: "x",
+ permission_name: "x",
+ });
+ }).rejects.toThrow(Management.NotFoundError);
+ });
+
+ test("list (6)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/users/id/effective-permissions/sources/effective-roles")
+ .respondWith()
+ .statusCode(429)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.users.effectivePermissions.sources.roles.list("id", {
+ resource_server_identifier: "x",
+ permission_name: "x",
+ });
+ }).rejects.toThrow(Management.TooManyRequestsError);
+ });
+});
diff --git a/src/management/tests/wire/users/effectiveRoles.test.ts b/src/management/tests/wire/users/effectiveRoles.test.ts
new file mode 100644
index 0000000000..529a9e5917
--- /dev/null
+++ b/src/management/tests/wire/users/effectiveRoles.test.ts
@@ -0,0 +1,112 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import * as Management from "../../../api/index";
+import { ManagementClient } from "../../../Client";
+import { mockServerPool } from "../../mock-server/MockServerPool";
+
+describe("EffectiveRolesClient", () => {
+ test("list (1)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = {
+ roles: [{ id: "id", name: "name", description: "description", sources: ["direct"] }],
+ next: "next",
+ };
+
+ server
+ .mockEndpoint({ once: false })
+ .get("/users/id/effective-roles")
+ .respondWith()
+ .statusCode(200)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ const expected = rawResponseBody;
+ const page = await client.users.effectiveRoles.list("id", {
+ from: "from",
+ take: 1,
+ });
+
+ expect(expected.roles).toEqual(page.data);
+ expect(page.hasNextPage()).toBe(true);
+ const nextPage = await page.getNextPage();
+ expect(expected.roles).toEqual(nextPage.data);
+ });
+
+ test("list (2)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/users/id/effective-roles")
+ .respondWith()
+ .statusCode(400)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.users.effectiveRoles.list("id");
+ }).rejects.toThrow(Management.BadRequestError);
+ });
+
+ test("list (3)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/users/id/effective-roles")
+ .respondWith()
+ .statusCode(401)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.users.effectiveRoles.list("id");
+ }).rejects.toThrow(Management.UnauthorizedError);
+ });
+
+ test("list (4)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/users/id/effective-roles")
+ .respondWith()
+ .statusCode(403)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.users.effectiveRoles.list("id");
+ }).rejects.toThrow(Management.ForbiddenError);
+ });
+
+ test("list (5)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/users/id/effective-roles")
+ .respondWith()
+ .statusCode(429)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.users.effectiveRoles.list("id");
+ }).rejects.toThrow(Management.TooManyRequestsError);
+ });
+});
diff --git a/src/management/tests/wire/users/effectiveRoles/sources/groups.test.ts b/src/management/tests/wire/users/effectiveRoles/sources/groups.test.ts
new file mode 100644
index 0000000000..b38e11479b
--- /dev/null
+++ b/src/management/tests/wire/users/effectiveRoles/sources/groups.test.ts
@@ -0,0 +1,131 @@
+// This file was auto-generated by Fern from our API Definition.
+
+import * as Management from "../../../../../api/index";
+import { ManagementClient } from "../../../../../Client";
+import { mockServerPool } from "../../../../mock-server/MockServerPool";
+
+describe("GroupsClient", () => {
+ test("list (1)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = {
+ groups: [
+ {
+ id: "id",
+ name: "name",
+ external_id: "external_id",
+ connection_id: "connection_id",
+ tenant_name: "tenant_name",
+ created_at: "2024-01-15T09:30:00Z",
+ updated_at: "2024-01-15T09:30:00Z",
+ },
+ ],
+ next: "next",
+ };
+
+ server
+ .mockEndpoint({ once: false })
+ .get("/users/id/effective-roles/sources/groups")
+ .respondWith()
+ .statusCode(200)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ const expected = rawResponseBody;
+ const page = await client.users.effectiveRoles.sources.groups.list("id", {
+ role_id: "role_id",
+ from: "from",
+ take: 1,
+ });
+
+ expect(expected.groups).toEqual(page.data);
+ expect(page.hasNextPage()).toBe(true);
+ const nextPage = await page.getNextPage();
+ expect(expected.groups).toEqual(nextPage.data);
+ });
+
+ test("list (2)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/users/id/effective-roles/sources/groups")
+ .respondWith()
+ .statusCode(400)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.users.effectiveRoles.sources.groups.list("id", {
+ role_id: "role_id",
+ });
+ }).rejects.toThrow(Management.BadRequestError);
+ });
+
+ test("list (3)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/users/id/effective-roles/sources/groups")
+ .respondWith()
+ .statusCode(401)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.users.effectiveRoles.sources.groups.list("id", {
+ role_id: "role_id",
+ });
+ }).rejects.toThrow(Management.UnauthorizedError);
+ });
+
+ test("list (4)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/users/id/effective-roles/sources/groups")
+ .respondWith()
+ .statusCode(403)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.users.effectiveRoles.sources.groups.list("id", {
+ role_id: "role_id",
+ });
+ }).rejects.toThrow(Management.ForbiddenError);
+ });
+
+ test("list (5)", async () => {
+ const server = mockServerPool.createServer();
+ const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl });
+
+ const rawResponseBody = { key: "value" };
+
+ server
+ .mockEndpoint()
+ .get("/users/id/effective-roles/sources/groups")
+ .respondWith()
+ .statusCode(429)
+ .jsonBody(rawResponseBody)
+ .build();
+
+ await expect(async () => {
+ return await client.users.effectiveRoles.sources.groups.list("id", {
+ role_id: "role_id",
+ });
+ }).rejects.toThrow(Management.TooManyRequestsError);
+ });
+});
diff --git a/yarn.lock b/yarn.lock
index 36b43abfaa..5337761b50 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,34 +2,34 @@
# yarn lockfile v1
-"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.28.6", "@babel/code-frame@^7.29.0":
- version "7.29.0"
- resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.29.0.tgz#7cd7a59f15b3cc0dcd803038f7792712a7d0b15c"
- integrity sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.29.7":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.29.7.tgz#f2fbbfea87c44a21590ec515b778b2c26d8866e7"
+ integrity sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==
dependencies:
- "@babel/helper-validator-identifier" "^7.28.5"
+ "@babel/helper-validator-identifier" "^7.29.7"
js-tokens "^4.0.0"
picocolors "^1.1.1"
-"@babel/compat-data@^7.28.6":
- version "7.29.3"
- resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.29.3.tgz#e3f5347f0589596c91d227ccb6a541d37fb1307b"
- integrity sha512-LIVqM46zQWZhj17qA8wb4nW/ixr2y1Nw+r1etiAWgRM6U1IqP+LNhL1yg440jYZR72jCWcWbLWzIosH+uP1fqg==
+"@babel/compat-data@^7.29.7":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.29.7.tgz#6f0237f0f36d2e51c0570a636faed9d2d0efe629"
+ integrity sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==
"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9":
- version "7.29.0"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.29.0.tgz#5286ad785df7f79d656e88ce86e650d16ca5f322"
- integrity sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==
- dependencies:
- "@babel/code-frame" "^7.29.0"
- "@babel/generator" "^7.29.0"
- "@babel/helper-compilation-targets" "^7.28.6"
- "@babel/helper-module-transforms" "^7.28.6"
- "@babel/helpers" "^7.28.6"
- "@babel/parser" "^7.29.0"
- "@babel/template" "^7.28.6"
- "@babel/traverse" "^7.29.0"
- "@babel/types" "^7.29.0"
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.29.7.tgz#80c10b17248082968b57a857b91640971f2070f7"
+ integrity sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==
+ dependencies:
+ "@babel/code-frame" "^7.29.7"
+ "@babel/generator" "^7.29.7"
+ "@babel/helper-compilation-targets" "^7.29.7"
+ "@babel/helper-module-transforms" "^7.29.7"
+ "@babel/helpers" "^7.29.7"
+ "@babel/parser" "^7.29.7"
+ "@babel/template" "^7.29.7"
+ "@babel/traverse" "^7.29.7"
+ "@babel/types" "^7.29.7"
"@jridgewell/remapping" "^2.3.5"
convert-source-map "^2.0.0"
debug "^4.1.0"
@@ -37,84 +37,84 @@
json5 "^2.2.3"
semver "^6.3.1"
-"@babel/generator@^7.29.0", "@babel/generator@^7.7.2":
- version "7.29.1"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.29.1.tgz#d09876290111abbb00ef962a7b83a5307fba0d50"
- integrity sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==
+"@babel/generator@^7.29.7", "@babel/generator@^7.7.2":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.29.7.tgz#cca0b8827e6bcf3ba176788e7f3b180ad6db2fa3"
+ integrity sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==
dependencies:
- "@babel/parser" "^7.29.0"
- "@babel/types" "^7.29.0"
+ "@babel/parser" "^7.29.7"
+ "@babel/types" "^7.29.7"
"@jridgewell/gen-mapping" "^0.3.12"
"@jridgewell/trace-mapping" "^0.3.28"
jsesc "^3.0.2"
-"@babel/helper-compilation-targets@^7.28.6":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz#32c4a3f41f12ed1532179b108a4d746e105c2b25"
- integrity sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==
+"@babel/helper-compilation-targets@^7.29.7":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz#7a1def704302401c47f64fa85589e974ae217042"
+ integrity sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==
dependencies:
- "@babel/compat-data" "^7.28.6"
- "@babel/helper-validator-option" "^7.27.1"
+ "@babel/compat-data" "^7.29.7"
+ "@babel/helper-validator-option" "^7.29.7"
browserslist "^4.24.0"
lru-cache "^5.1.1"
semver "^6.3.1"
-"@babel/helper-globals@^7.28.0":
- version "7.28.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz#b9430df2aa4e17bc28665eadeae8aa1d985e6674"
- integrity sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==
+"@babel/helper-globals@^7.29.7":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.29.7.tgz#f04a96fbd8473241b1079243f5b3f03a3010ab7b"
+ integrity sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==
-"@babel/helper-module-imports@^7.28.6":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz#60632cbd6ffb70b22823187201116762a03e2d5c"
- integrity sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==
+"@babel/helper-module-imports@^7.29.7":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz#ef25048a518e828d7393fac5882ddd73921d7396"
+ integrity sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==
dependencies:
- "@babel/traverse" "^7.28.6"
- "@babel/types" "^7.28.6"
+ "@babel/traverse" "^7.29.7"
+ "@babel/types" "^7.29.7"
-"@babel/helper-module-transforms@^7.28.6":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz#9312d9d9e56edc35aeb6e95c25d4106b50b9eb1e"
- integrity sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==
+"@babel/helper-module-transforms@^7.29.7":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz#b062747a5997ba138637201328bbff77960574ae"
+ integrity sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==
dependencies:
- "@babel/helper-module-imports" "^7.28.6"
- "@babel/helper-validator-identifier" "^7.28.5"
- "@babel/traverse" "^7.28.6"
+ "@babel/helper-module-imports" "^7.29.7"
+ "@babel/helper-validator-identifier" "^7.29.7"
+ "@babel/traverse" "^7.29.7"
-"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.28.6", "@babel/helper-plugin-utils@^7.8.0":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz#6f13ea251b68c8532e985fd532f28741a8af9ac8"
- integrity sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==
+"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.29.7", "@babel/helper-plugin-utils@^7.8.0":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz#c0a0766f1a13617d8a17407d7ab8f9d486225ea4"
+ integrity sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==
-"@babel/helper-string-parser@^7.27.1":
- version "7.27.1"
- resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687"
- integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==
+"@babel/helper-string-parser@^7.29.7":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz#7f0871d99824d23137d60f86fcf6130fd5a1b51f"
+ integrity sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==
-"@babel/helper-validator-identifier@^7.28.5":
- version "7.28.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4"
- integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==
+"@babel/helper-validator-identifier@^7.29.7":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz#bd87084ced0c796ec46bda492de6e83d29e89fc2"
+ integrity sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==
-"@babel/helper-validator-option@^7.27.1":
- version "7.27.1"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz#fa52f5b1e7db1ab049445b421c4471303897702f"
- integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==
+"@babel/helper-validator-option@^7.29.7":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz#cf315be940213b354eb4abcc0bd01ebe3f73bc2a"
+ integrity sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==
-"@babel/helpers@^7.28.6":
- version "7.29.2"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.29.2.tgz#9cfbccb02b8e229892c0b07038052cc1a8709c49"
- integrity sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==
+"@babel/helpers@^7.29.7":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.29.7.tgz#45abfde7548997e34376c3e69feb475cffb4a607"
+ integrity sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==
dependencies:
- "@babel/template" "^7.28.6"
- "@babel/types" "^7.29.0"
+ "@babel/template" "^7.29.7"
+ "@babel/types" "^7.29.7"
-"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.28.6", "@babel/parser@^7.29.0":
- version "7.29.3"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.3.tgz#116f70a77958307fceac27747573032f8a62f88e"
- integrity sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==
+"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.29.7":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.7.tgz#837b87387cbf5ec5530cb634b3c622f68edb9334"
+ integrity sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==
dependencies:
- "@babel/types" "^7.29.0"
+ "@babel/types" "^7.29.7"
"@babel/plugin-syntax-async-generators@^7.8.4":
version "7.8.4"
@@ -145,11 +145,11 @@
"@babel/helper-plugin-utils" "^7.14.5"
"@babel/plugin-syntax-import-attributes@^7.24.7":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz#b71d5914665f60124e133696f17cd7669062c503"
- integrity sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.29.7.tgz#6115264516e95ead0f35a41710906612e447f605"
+ integrity sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==
dependencies:
- "@babel/helper-plugin-utils" "^7.28.6"
+ "@babel/helper-plugin-utils" "^7.29.7"
"@babel/plugin-syntax-import-meta@^7.10.4":
version "7.10.4"
@@ -166,11 +166,11 @@
"@babel/helper-plugin-utils" "^7.8.0"
"@babel/plugin-syntax-jsx@^7.7.2":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz#f8ca28bbd84883b5fea0e447c635b81ba73997ee"
- integrity sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz#622c16f9ad63782fe6e83dadc7e40330744b7f1e"
+ integrity sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==
dependencies:
- "@babel/helper-plugin-utils" "^7.28.6"
+ "@babel/helper-plugin-utils" "^7.29.7"
"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
version "7.10.4"
@@ -229,41 +229,41 @@
"@babel/helper-plugin-utils" "^7.14.5"
"@babel/plugin-syntax-typescript@^7.7.2":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz#c7b2ddf1d0a811145b1de800d1abd146af92e3a2"
- integrity sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==
- dependencies:
- "@babel/helper-plugin-utils" "^7.28.6"
-
-"@babel/template@^7.28.6", "@babel/template@^7.3.3":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.28.6.tgz#0e7e56ecedb78aeef66ce7972b082fce76a23e57"
- integrity sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==
- dependencies:
- "@babel/code-frame" "^7.28.6"
- "@babel/parser" "^7.28.6"
- "@babel/types" "^7.28.6"
-
-"@babel/traverse@^7.28.6", "@babel/traverse@^7.29.0":
- version "7.29.0"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.29.0.tgz#f323d05001440253eead3c9c858adbe00b90310a"
- integrity sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==
- dependencies:
- "@babel/code-frame" "^7.29.0"
- "@babel/generator" "^7.29.0"
- "@babel/helper-globals" "^7.28.0"
- "@babel/parser" "^7.29.0"
- "@babel/template" "^7.28.6"
- "@babel/types" "^7.29.0"
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.29.7.tgz#7c29388932313ed58413a0343048d75d92fb5b24"
+ integrity sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.29.7"
+
+"@babel/template@^7.29.7", "@babel/template@^7.3.3":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.29.7.tgz#4d9d4004f645cdd304de958c725162784ecac700"
+ integrity sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==
+ dependencies:
+ "@babel/code-frame" "^7.29.7"
+ "@babel/parser" "^7.29.7"
+ "@babel/types" "^7.29.7"
+
+"@babel/traverse@^7.29.7":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.29.7.tgz#c47b07a41b95da0907d026b5dd894d98de7d2f2d"
+ integrity sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==
+ dependencies:
+ "@babel/code-frame" "^7.29.7"
+ "@babel/generator" "^7.29.7"
+ "@babel/helper-globals" "^7.29.7"
+ "@babel/parser" "^7.29.7"
+ "@babel/template" "^7.29.7"
+ "@babel/types" "^7.29.7"
debug "^4.3.1"
-"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.28.2", "@babel/types@^7.28.6", "@babel/types@^7.29.0", "@babel/types@^7.3.3":
- version "7.29.0"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.0.tgz#9f5b1e838c446e72cf3cd4b918152b8c605e37c7"
- integrity sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==
+"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.28.2", "@babel/types@^7.29.7", "@babel/types@^7.3.3":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.7.tgz#8005e31d82712ee7adaef6e23c63b71a62770a92"
+ integrity sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==
dependencies:
- "@babel/helper-string-parser" "^7.27.1"
- "@babel/helper-validator-identifier" "^7.28.5"
+ "@babel/helper-string-parser" "^7.29.7"
+ "@babel/helper-validator-identifier" "^7.29.7"
"@bcoe/v8-coverage@^0.2.3":
version "0.2.3"
@@ -830,23 +830,7 @@
resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.6.0.tgz#eac397f28bf1d6ae0ae081363eca2f425bedf0d5"
integrity sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==
-"@types/eslint-scope@^3.7.7":
- version "3.7.7"
- resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5"
- integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==
- dependencies:
- "@types/eslint" "*"
- "@types/estree" "*"
-
-"@types/eslint@*":
- version "9.6.1"
- resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.1.tgz#d5795ad732ce81715f27f75da913004a56751584"
- integrity sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==
- dependencies:
- "@types/estree" "*"
- "@types/json-schema" "*"
-
-"@types/estree@*", "@types/estree@^1.0.6", "@types/estree@^1.0.8":
+"@types/estree@^1.0.6", "@types/estree@^1.0.8":
version "1.0.9"
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.9.tgz#cf3f0e876d7bee15a93ab925b82bf570a3904a24"
integrity sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==
@@ -901,24 +885,24 @@
"@types/tough-cookie" "*"
parse5 "^7.0.0"
-"@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.9":
+"@types/json-schema@^7.0.15", "@types/json-schema@^7.0.9":
version "7.0.15"
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
"@types/node@*":
- version "25.7.0"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-25.7.0.tgz#7498f82e90dbdce7c34b75aaaa256c498a0ebe6c"
- integrity sha512-z+pdZyxE+RTQE9AcboAZCb4otwcrvgHD+GlBpPgn0emDVt0ohrTMhAwlr2Wd9nZ+nihhYFxO2pThz3C5qSu2Eg==
+ version "25.9.1"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-25.9.1.tgz#3bda556db500ae4319c08e7fc9ab94f19013ba0b"
+ integrity sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==
dependencies:
- undici-types "~7.21.0"
+ undici-types ">=7.24.0 <7.24.7"
-"@types/node@^18.19.70":
- version "18.19.130"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.130.tgz#da4c6324793a79defb7a62cba3947ec5add00d59"
- integrity sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==
+"@types/node@^20.0.0":
+ version "20.19.41"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.19.41.tgz#bb266a1e0aaa2f4537d14ae8ebf238dd9ca73ce6"
+ integrity sha512-ECymXOukMnOoVkC2bb1Vc/w/836DXncOg5m8Xj1RH7xSHZJWNYY6Zh7EH477vcnD5egKNNfy2RpNOmuChhFPgQ==
dependencies:
- undici-types "~5.26.4"
+ undici-types "~6.21.0"
"@types/stack-utils@^2.0.0":
version "2.0.3"
@@ -953,99 +937,99 @@
"@types/yargs-parser" "*"
"@typescript-eslint/eslint-plugin@^8.38.0":
- version "8.59.3"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.59.3.tgz#5d6da7e7b236b46452fa00d3904bb6f59615bfde"
- integrity sha512-PwFvSKsXGShKGW6n5bZOhGHEcCZXM8HofLK9fNsEwZXzFRjoY+XT1Vsf1zgyXdwTr0ZYz1/2tkZ0DBTT9jZjhw==
+ version "8.60.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.60.0.tgz#8fc1e0a950c43270eaf0212dc060f7edaa42f9cf"
+ integrity sha512-QYb/sa74/s7OKMbACMjrYnGspj9Hs5YI5aaffSL65UfeBUzVzBJfVo3oWSpbzPurvm7yaCCo2Lk7lVj610HqKw==
dependencies:
"@eslint-community/regexpp" "^4.12.2"
- "@typescript-eslint/scope-manager" "8.59.3"
- "@typescript-eslint/type-utils" "8.59.3"
- "@typescript-eslint/utils" "8.59.3"
- "@typescript-eslint/visitor-keys" "8.59.3"
+ "@typescript-eslint/scope-manager" "8.60.0"
+ "@typescript-eslint/type-utils" "8.60.0"
+ "@typescript-eslint/utils" "8.60.0"
+ "@typescript-eslint/visitor-keys" "8.60.0"
ignore "^7.0.5"
natural-compare "^1.4.0"
ts-api-utils "^2.5.0"
"@typescript-eslint/parser@^8.38.0":
- version "8.59.3"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.59.3.tgz#f46cbc70ae0a25119ef94eac9ecd46714788e1a1"
- integrity sha512-HPwA+hVkfcriajbNvTmZv4VRauibay+cWArYUYq7u7W7PmGShMxbPxLvrwDme55a6d5alG3nrYfhyJ/G28XlLg==
- dependencies:
- "@typescript-eslint/scope-manager" "8.59.3"
- "@typescript-eslint/types" "8.59.3"
- "@typescript-eslint/typescript-estree" "8.59.3"
- "@typescript-eslint/visitor-keys" "8.59.3"
+ version "8.60.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.60.0.tgz#38d611b8e658cb10850d4975e8a175a222fbcd6a"
+ integrity sha512-fcqpj/MyK4sxDPcbe7STNPbpQL4RLZOPWuaTmwZYuc+hJKzRf58yRxfhqGpc6PIq9ZyfSBpfHgmUHmHs0KwHwg==
+ dependencies:
+ "@typescript-eslint/scope-manager" "8.60.0"
+ "@typescript-eslint/types" "8.60.0"
+ "@typescript-eslint/typescript-estree" "8.60.0"
+ "@typescript-eslint/visitor-keys" "8.60.0"
debug "^4.4.3"
-"@typescript-eslint/project-service@8.59.3":
- version "8.59.3"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.59.3.tgz#1be5ae152aad987a156c9a1a9b4256e75cfbbe0c"
- integrity sha512-ECiUWa/KYRGDFUqTNehaRgzDshnJfkTABJxVemHk4ko22gcr0ukloKjWvyQ64g8YCV/UI47kN1dbmjf/GaQYng==
+"@typescript-eslint/project-service@8.60.0":
+ version "8.60.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.60.0.tgz#b82ab12e64d005d0c7163d1240c432381f1bde0f"
+ integrity sha512-aZu74NNKJeUWqCjDddzdiKaS82dgYgV/vmf+Ui3ZdZejmgfXR/q+pRumgobnQ2cCJTgGTWp4ypiwsuofFubavg==
dependencies:
- "@typescript-eslint/tsconfig-utils" "^8.59.3"
- "@typescript-eslint/types" "^8.59.3"
+ "@typescript-eslint/tsconfig-utils" "^8.60.0"
+ "@typescript-eslint/types" "^8.60.0"
debug "^4.4.3"
-"@typescript-eslint/scope-manager@8.59.3":
- version "8.59.3"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.59.3.tgz#91a60f66803fe9dae0696fbab2451f5723f119d2"
- integrity sha512-t2LvZnoEfzKtnPjgeEu41xw5gxq9mQVfYy4OoZ4Vlt0sk3JwxmhCca/AR7DwOiHrjWgjAj6as4AhRLKSDfvZIA==
+"@typescript-eslint/scope-manager@8.60.0":
+ version "8.60.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.60.0.tgz#7617a4617c043fe235dcf066f9a40f106cfd2fd5"
+ integrity sha512-pFzqhllJMs+jghLQWzV00ds39xLzuyqPSev5pd8f4Ir0rtKR3ZLUB4/4dhjOFighWb9larvtfJvqL+4yKDI3Xw==
dependencies:
- "@typescript-eslint/types" "8.59.3"
- "@typescript-eslint/visitor-keys" "8.59.3"
+ "@typescript-eslint/types" "8.60.0"
+ "@typescript-eslint/visitor-keys" "8.60.0"
-"@typescript-eslint/tsconfig-utils@8.59.3", "@typescript-eslint/tsconfig-utils@^8.59.3":
- version "8.59.3"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.59.3.tgz#88ca9036b42ccdd1e630cfdafd2e042c2ca6a835"
- integrity sha512-PcIJHjmaREXLgIAIzLnSY9VucEzz8FKXsRgFa1DmdGCK/5tJpW03TKJF01Q6VZd1lLdz2sIKPWaDUZN9dp//dw==
+"@typescript-eslint/tsconfig-utils@8.60.0", "@typescript-eslint/tsconfig-utils@^8.60.0":
+ version "8.60.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.60.0.tgz#3af78c48956227a407dea9626b8db8ca53f130d2"
+ integrity sha512-BZPR3RGYlAXnly6ymAxfkVn5rCbZzQNou0rxv3GfWZ8cTQp+hhVd73khbGLAd8k1TlAPLISH337M+tAgAnaJDQ==
-"@typescript-eslint/type-utils@8.59.3":
- version "8.59.3"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.59.3.tgz#421fb2448bdfeb301d134a01cd02503f67fd8192"
- integrity sha512-g71d8QD8UaiHGvrJwyIS1hCX5r63w6Jll+4VEYhEAHXTDIqX1JgxhTAbEHtKntL9kuc4jRo7/GWw5xfCepSccQ==
+"@typescript-eslint/type-utils@8.60.0":
+ version "8.60.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.60.0.tgz#6971a61bc4f3a1b2df45dcc14e26a43a88a4cb6a"
+ integrity sha512-SX46wEUtitCpq7AN38HkUU/+zvUpdKf7ephtWAFgckH8O7PQIyL5gvrhQgBLuEYgLfuKWOVvWVskMbuFHAz5xg==
dependencies:
- "@typescript-eslint/types" "8.59.3"
- "@typescript-eslint/typescript-estree" "8.59.3"
- "@typescript-eslint/utils" "8.59.3"
+ "@typescript-eslint/types" "8.60.0"
+ "@typescript-eslint/typescript-estree" "8.60.0"
+ "@typescript-eslint/utils" "8.60.0"
debug "^4.4.3"
ts-api-utils "^2.5.0"
-"@typescript-eslint/types@8.59.3", "@typescript-eslint/types@^8.59.3":
- version "8.59.3"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.59.3.tgz#b7ca539c5e302fdde9a7cadb73caed107ef8f2cd"
- integrity sha512-ePFoH0g4ludssdRFqqDxQePCxU4WQyRa9+XVwjm7yLn0FKhMeoetC+qBEEI1Eyb1pGSDveTIT09Bvw2WhlGayg==
+"@typescript-eslint/types@8.60.0", "@typescript-eslint/types@^8.60.0":
+ version "8.60.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.60.0.tgz#e77ad768e933263b1960b2fe79de75fe1cc6e7db"
+ integrity sha512-AsE7x2XaAK+CVbeih0Fvbn+r1qHxtpLDJ3XUuFcIinT318T90yHMJC+Zgv+jUuDjQQd06HKwxnDu6sz1IcTilA==
-"@typescript-eslint/typescript-estree@8.59.3":
- version "8.59.3"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.59.3.tgz#e6bb1408e00b47e431427a40268db4e86cb121ab"
- integrity sha512-CbRjVRAf7Lr9Kr8RopKcbY45p2VfmmHrm0ygOCYFi7oU8q19m0Fs/6iHS7kNOmwpp+ob07ZVcAqlxUod9lYdmg==
+"@typescript-eslint/typescript-estree@8.60.0":
+ version "8.60.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.60.0.tgz#c102196a44414481190041c99eea1d854e66001b"
+ integrity sha512-3AcZNBGMClm6CXDyo8kYvVGT/sx29sS0oBsIb9oZI2gunA4Vm2M3YHzRLPvsUBBsl+yB5FPtltq7gGH0iTlp9g==
dependencies:
- "@typescript-eslint/project-service" "8.59.3"
- "@typescript-eslint/tsconfig-utils" "8.59.3"
- "@typescript-eslint/types" "8.59.3"
- "@typescript-eslint/visitor-keys" "8.59.3"
+ "@typescript-eslint/project-service" "8.60.0"
+ "@typescript-eslint/tsconfig-utils" "8.60.0"
+ "@typescript-eslint/types" "8.60.0"
+ "@typescript-eslint/visitor-keys" "8.60.0"
debug "^4.4.3"
minimatch "^10.2.2"
semver "^7.7.3"
tinyglobby "^0.2.15"
ts-api-utils "^2.5.0"
-"@typescript-eslint/utils@8.59.3":
- version "8.59.3"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.59.3.tgz#f693f979deb4dc3994de03ff8b23976d625c36c5"
- integrity sha512-JAvT14goBzRzzzZyqq3P9BLArIxTtQURUtFgQ/V7FO+eU+Gg6ES+5ymOPP1wRxXcxAYeivCk4uS3jCKWI1K8Zg==
+"@typescript-eslint/utils@8.60.0":
+ version "8.60.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.60.0.tgz#6110cddaef87606ae4ca6f8bf81bb5949fc8e098"
+ integrity sha512-HtXuPfrHTyBDkameWpl+vJb1Uevu2tznAyahM1Oc4AENidCLTPiZDWIo4GfcxNdC/RcfGcadzzkqbRG87dUrQA==
dependencies:
"@eslint-community/eslint-utils" "^4.9.1"
- "@typescript-eslint/scope-manager" "8.59.3"
- "@typescript-eslint/types" "8.59.3"
- "@typescript-eslint/typescript-estree" "8.59.3"
+ "@typescript-eslint/scope-manager" "8.60.0"
+ "@typescript-eslint/types" "8.60.0"
+ "@typescript-eslint/typescript-estree" "8.60.0"
-"@typescript-eslint/visitor-keys@8.59.3":
- version "8.59.3"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.59.3.tgz#820843b1b5ca4290009cf189382abcf6fe00dfa6"
- integrity sha512-f1UQF7ggd42YiwI5wGrRaPsa+P0CINBlrkLPmGfpq/u/I/oVtecoEIfFR9ag/oa1sLOsRNZ6xehf6qMZhQGBDg==
+"@typescript-eslint/visitor-keys@8.60.0":
+ version "8.60.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.60.0.tgz#f2c41eedd3d7b03b808369fb2e3fb40a93783ec2"
+ integrity sha512-9WI52t8ZGLVGrPMBet25yAftqY/n95+zmoUUtJBBQTKDSKUu7OsPTroT2op7U9JatkoRccL0YkWDNMFfC4Sjxg==
dependencies:
- "@typescript-eslint/types" "8.59.3"
+ "@typescript-eslint/types" "8.60.0"
eslint-visitor-keys "^5.0.0"
"@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1":
@@ -1321,14 +1305,14 @@ asynckit@^0.4.0:
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
-"auth0-legacy@npm:auth0@^4.27.0":
- version "4.37.0"
- resolved "https://registry.yarnpkg.com/auth0/-/auth0-4.37.0.tgz#828d91d254926579e0fff5b6c060988c5631436f"
- integrity sha512-+TqJRxh4QvbD4TQIYx1ak2vanykQkG/nIZLuR6o8LoQj425gjVG3tFuUbbOeh/nCpP1rnvU0CCV1ChZHYXLU/A==
+"auth0-legacy@npm:auth0@^4.37.1":
+ version "4.37.1"
+ resolved "https://registry.yarnpkg.com/auth0/-/auth0-4.37.1.tgz#988f737360f0bfe0699c22b3deda7f74424beb78"
+ integrity sha512-o9ca0P+hHSUbiwOSFW+DS2GmCA5c6T6E1UJZhWcgKmjAI2Aid16wLzY4/y+XNFb7Im1rM+wQc5YkkNZuTy5FOw==
dependencies:
jose "^4.13.2"
undici-types "^6.15.0"
- uuid "^9.0.0"
+ uuid "11.1.1"
babel-jest@^29.7.0:
version "29.7.0"
@@ -1404,14 +1388,14 @@ balanced-match@^4.0.2:
integrity sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==
baseline-browser-mapping@^2.10.12:
- version "2.10.29"
- resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.29.tgz#47bdc13027af28d341f367a4f35a07ce872e27b4"
- integrity sha512-Asa2krT+XTPZINCS+2QcyS8WTkObE77RwkydwF7h6DmnKqbvlalz93m/dnphUyCa6SWSP51VgtEUf2FN+gelFQ==
+ version "2.10.32"
+ resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.32.tgz#b6b553a4285fdd606327a617de36a5351e3aaa64"
+ integrity sha512-wbPvpyjJPC0zdfdKXxqEL3Ea+bOMD/87X4lftiJkkaBiuG6ALQy1SLmEd7BSmVCuwCQsBrCamgBoLyfFDD1EPg==
brace-expansion@^1.1.7:
- version "1.1.14"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.14.tgz#d9de602370d91347cd9ddad1224d4fd701eb348b"
- integrity sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==
+ version "1.1.15"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.15.tgz#a6d90d54067236e5f42570a3b7378d594d9b7738"
+ integrity sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==
dependencies:
balanced-match "^1.0.0"
concat-map "0.0.1"
@@ -1484,9 +1468,9 @@ camelcase@^6.2.0:
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
caniuse-lite@^1.0.30001782:
- version "1.0.30001792"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001792.tgz#ca8bb9be244835a335e2018272ce7223691873c5"
- integrity sha512-hVLMUZFgR4JJ6ACt1uEESvQN1/dBVqPAKY0hgrV70eN3391K6juAfTjKZLKvOMsx8PxA7gsY1/tLMMTcfFLLpw==
+ version "1.0.30001793"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001793.tgz#238887ddf5fcfc8c36d872394d0a78a517312a72"
+ integrity sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA==
chalk@^4.0.0, chalk@^4.1.0:
version "4.1.2"
@@ -1711,9 +1695,9 @@ dunder-proto@^1.0.1:
gopd "^1.2.0"
electron-to-chromium@^1.5.328:
- version "1.5.353"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.353.tgz#01e8a8e25a0bf13e631106045f177d0568ca91c2"
- integrity sha512-kOrWphBi8TOZyiJZqsgqIle0lw+tzmnQK83pV9dZUd01Nm2POECSyFQMAuarzZdYqQW7FH9RaYOuaRo3h+bQ3w==
+ version "1.5.362"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.362.tgz#0696661e1e8ea46248e82f62f0a0bfe1aac2ce76"
+ integrity sha512-PUY2DrLvkjkUuWqq+KPL2iWshrJsZOcIojzRQ7eXFacc9dWga7MGMJAa15VbiejSZB1PAXaRLAiKgruHP8LB1w==
emittery@^0.13.1:
version "0.13.1"
@@ -1730,10 +1714,10 @@ emoji-regex@^8.0.0:
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
-enhanced-resolve@^5.0.0, enhanced-resolve@^5.20.0:
- version "5.21.3"
- resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.21.3.tgz#fa7fed23679e9169dfb705b8e201924421c4414a"
- integrity sha512-QyL119InA+XXEkNLNTPCXPugSvOfhwv0JOlGNzvxs0hZaiHLNvXSpudUWsOlsXGWJh8G6ckCScEkVHfX3kw/2Q==
+enhanced-resolve@^5.0.0, enhanced-resolve@^5.22.0:
+ version "5.22.0"
+ resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.22.0.tgz#43c5caad657c6fce58fc6142e5ca6fa8528ed460"
+ integrity sha512-xYcDWrpELkFzz9SpZ3PlI6Eu6eD93Yf0WLDRxikGhWJ3MAir2SNZTIVCVZqZ/NUyx8AdMc2gT9C0gPiw18kG+A==
dependencies:
graceful-fs "^4.2.4"
tapable "^2.3.3"
@@ -1770,15 +1754,15 @@ es-errors@^1.3.0:
resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
-es-module-lexer@^2.0.0:
+es-module-lexer@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-2.1.0.tgz#1dfcbb5ea3bbfb63f28e1fc3676c3676d1c9624c"
integrity sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==
es-object-atoms@^1.0.0, es-object-atoms@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1"
- integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.2.tgz#a2d0b373205724dfa525d23b0c3e1b1ca582c99b"
+ integrity sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==
dependencies:
es-errors "^1.3.0"
@@ -2943,10 +2927,10 @@ lines-and-columns@^1.1.6:
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
-linkify-it@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-5.0.0.tgz#9ef238bfa6dc70bd8e7f9572b52d369af569b421"
- integrity sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==
+linkify-it@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-5.0.1.tgz#10c4cecbb5c6828eabf81d3c801adc4a542dfb55"
+ integrity sha512-wVoTjP4Q6R0NW5hiZkVJaFZPWgtXfoGF+6LucL3/FtiNjmcHhYjEr5f1Kqjirc1nBW07J/ZuRFumqr2oqccEWg==
dependencies:
uc.micro "^2.0.0"
@@ -2974,7 +2958,7 @@ listr2@^9.0.5:
rfdc "^1.4.1"
wrap-ansi "^9.0.0"
-loader-runner@^4.3.1:
+loader-runner@^4.3.2:
version "4.3.2"
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.2.tgz#9913d3a15971f8f635915e601fb5c9d495d918e9"
integrity sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==
@@ -3046,13 +3030,13 @@ makeerror@1.0.12:
tmpl "1.0.5"
markdown-it@^14.1.1:
- version "14.1.1"
- resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-14.1.1.tgz#856f90b66fc39ae70affd25c1b18b581d7deee1f"
- integrity sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==
+ version "14.2.0"
+ resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-14.2.0.tgz#06d48d9035e77d5b1c85adb315482fc8240289ef"
+ integrity sha512-1TGiQiJVRQ3NPmZH6sx5Cfnmg6GQm9jvC1ch4TK511NjSJvjzKLzn5pPfZRNZkRPZP0HqCioSndqH8v2nRaWVQ==
dependencies:
argparse "^2.0.1"
entities "^4.4.0"
- linkify-it "^5.0.0"
+ linkify-it "^5.0.1"
mdurl "^2.0.0"
punycode.js "^2.3.1"
uc.micro "^2.1.0"
@@ -3191,9 +3175,9 @@ node-int64@^0.4.0:
integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==
node-releases@^2.0.36:
- version "2.0.38"
- resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.38.tgz#791569b9e4424a044e12c3abfad418ed83ce9947"
- integrity sha512-3qT/88Y3FbH/Kx4szpQQ4HzUbVrHPKTLVpVocKiLfoYvw9XSGOX2FmD2d6DrXbVYyAQTF2HeF6My8jmzx7/CRw==
+ version "2.0.46"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.46.tgz#d188a129a83f5e03a101aacb58f260f2ee8faaa1"
+ integrity sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==
normalize-path@^3.0.0:
version "3.0.0"
@@ -3411,9 +3395,9 @@ psl@^1.1.33:
punycode "^2.3.1"
publint@^0.3.12:
- version "0.3.20"
- resolved "https://registry.yarnpkg.com/publint/-/publint-0.3.20.tgz#c3f6382f0ffa7c86c36d88c028063fc96fb472c8"
- integrity sha512-UWqFYP7VBVCe9l/leEEGJrDs6Am4K4KapLmLi5qbt+9fA+Ny38ghdW+bw1nYfVqCK8/3kgsxjjhFjTYqYYRpyw==
+ version "0.3.21"
+ resolved "https://registry.yarnpkg.com/publint/-/publint-0.3.21.tgz#91e1425f638e2128343d5543f77551915d57409a"
+ integrity sha512-OqejcnMV6E9zel2oCrUOJEiiFkGiAAni0A6ibfQNh1k9Gu5z4F+Yso8lllam7AzmV6Do0vp7u3UpZNRBwuXaHQ==
dependencies:
"@publint/pack" "^0.1.4"
package-manager-detector "^1.6.0"
@@ -3544,10 +3528,10 @@ semver@^6.3.0, semver@^6.3.1:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
-semver@^7.3.4, semver@^7.5.3, semver@^7.5.4, semver@^7.7.3, semver@^7.7.4:
- version "7.8.0"
- resolved "https://registry.yarnpkg.com/semver/-/semver-7.8.0.tgz#ed0661039fcbcda2ce71f01fa6adbefaa77040df"
- integrity sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==
+semver@^7.3.4, semver@^7.5.3, semver@^7.5.4, semver@^7.7.3, semver@^7.8.0:
+ version "7.8.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.8.1.tgz#bf4970b5e70fda0686363cc18bfe8805d5ed957e"
+ integrity sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==
shebang-command@^2.0.0:
version "2.0.0"
@@ -3749,7 +3733,7 @@ tapable@^2.3.0, tapable@^2.3.3:
resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.3.3.tgz#5da7c9992c46038221267985ab28421a8879f160"
integrity sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==
-terser-webpack-plugin@^5.3.17:
+terser-webpack-plugin@^5.5.0:
version "5.6.0"
resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.6.0.tgz#8e7caad248183ab9e91ff08a83b0fc9f0439c3c3"
integrity sha512-Eum+5ajkaOhf5KbM26osvv21kLD7BaGqQ1UA4Ami4arYwylmGUQTgHFpHDdmJod1q4QXa66p0to/FBKID+J1vA==
@@ -3760,9 +3744,9 @@ terser-webpack-plugin@^5.3.17:
terser "^5.31.1"
terser@^5.31.1:
- version "5.47.1"
- resolved "https://registry.yarnpkg.com/terser/-/terser-5.47.1.tgz#99b298e51bc41214304847de1429ec92fd1f7648"
- integrity sha512-tPbLXTI6ohPASb/1YViL428oEHu6/qv1OxqYnfaonVCFHqx4+wCd95pHrQWsL5X4pl90CTyW9piSAsS2L0VoMw==
+ version "5.48.0"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-5.48.0.tgz#8b391171cfbb7ac4a88f9f04ba1cfabc54f643db"
+ integrity sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q==
dependencies:
"@jridgewell/source-map" "^0.3.3"
acorn "^8.15.0"
@@ -3779,9 +3763,9 @@ test-exclude@^6.0.0:
minimatch "^3.0.4"
tinyexec@^1.0.4:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-1.1.2.tgz#11feef204b706d4668ca4013db29f3bd64f5c4dc"
- integrity sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA==
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-1.2.2.tgz#b66edf362dcad61174bc9ce4f3ee279e2448a721"
+ integrity sha512-M/Q0B2cp4K7kynaT/vnED1j8TlLY+Pp7C6Wl2bl/7u/F0mUVwdyOpwomQb8JpYLitHUssAJRmLZdMCGsrx7i+g==
tinyglobby@^0.2.15:
version "0.2.16"
@@ -3791,17 +3775,17 @@ tinyglobby@^0.2.15:
fdir "^6.5.0"
picomatch "^4.0.4"
-tldts-core@^7.0.30:
- version "7.0.30"
- resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-7.0.30.tgz#c495dba27778f2220bea94f3f6399005c7aca61c"
- integrity sha512-uiHN8PIB1VmWyS98eZYja4xzlYqeFZVjb4OuYlJQnZAuJhMw4PbKQOKgHKhBdJR3FE/t5mUQ1Kd80++B+qhD1Q==
+tldts-core@^7.4.0:
+ version "7.4.0"
+ resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-7.4.0.tgz#a169874d111f2b56f8bcaba1971de312feb586b8"
+ integrity sha512-/mb9kRld+x1sIMXxWNOAp5m6C+D4GrAORWlJkOJ5dElvxdN1eutz/o7qHLp9gFvDF4Y3/L2xeScoxz6AbEo8rQ==
tldts@^7.0.5:
- version "7.0.30"
- resolved "https://registry.yarnpkg.com/tldts/-/tldts-7.0.30.tgz#497cea8d610953222f9dcb3ceb07c7207efcd816"
- integrity sha512-ELrFxuqsDdHUwoh0XxDbxuLD3Wnz49Z57IFvTtvWy1hJdcMZjXLIuonjilCiWHlT2GbE4Wlv1wKVTzDFnXH1aw==
+ version "7.4.0"
+ resolved "https://registry.yarnpkg.com/tldts/-/tldts-7.4.0.tgz#b9debfc700271b6979217a1452da0cc69ca6e6ff"
+ integrity sha512-yHBe+zVfzNZ3QfTPW/Z6KK1G2t340gFjMHqI/4KKSt/abzYydzuCnpqdaF5gCCABby+9Yfbj59oR5F2Fd5CBzg==
dependencies:
- tldts-core "^7.0.30"
+ tldts-core "^7.4.0"
tmpl@1.0.5:
version "1.0.5"
@@ -3845,9 +3829,9 @@ ts-api-utils@^2.5.0:
integrity sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==
ts-jest@^29.3.4:
- version "29.4.9"
- resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.4.9.tgz#47dc33d0f5c36bddcedd16afefae285e0b049d2d"
- integrity sha512-LTb9496gYPMCqjeDLdPrKuXtncudeV1yRZnF4Wo5l3SFi0RYEnYRNgMrFIdg+FHvfzjCyQk1cLncWVqiSX+EvQ==
+ version "29.4.11"
+ resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.4.11.tgz#42f5de21c37ccc01a580253afae6955abbf4d0b3"
+ integrity sha512-IrFl7l9AuB/qrNw5quqvAv/hmKMb8dhWOH4jQOGo0Oq8tCeo1O86/iTFG1FaRimgUkF13l4PcepO8ATFT6Ns4g==
dependencies:
bs-logger "^0.2.6"
fast-json-stable-stringify "^2.1.0"
@@ -3855,7 +3839,7 @@ ts-jest@^29.3.4:
json5 "^2.2.3"
lodash.memoize "^4.1.2"
make-error "^1.3.6"
- semver "^7.7.4"
+ semver "^7.8.0"
type-fest "^4.41.0"
yargs-parser "^21.1.1"
@@ -3923,25 +3907,25 @@ uglify-js@^3.1.4:
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.19.3.tgz#82315e9bbc6f2b25888858acd1fff8441035b77f"
integrity sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==
-undici-types@^6.15.0:
- version "6.25.0"
- resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.25.0.tgz#c877d2a67eaae8e588ac93e4f31fa25d16975df9"
- integrity sha512-vOw74RVVYFtnooUkZPxsY1GuuNNupSrCcANIAaDekpZ/Dp1sBuLLl5n2UCKpzxgmOwD66S4Jj24MrhmcDG+0vw==
+"undici-types@>=7.24.0 <7.24.7":
+ version "7.24.6"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.24.6.tgz#61275b485d7fd4e9d269c7cf04ec2873c9cc0f91"
+ integrity sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==
-undici-types@~5.26.4:
- version "5.26.5"
- resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
- integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
+undici-types@^6.15.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.26.0.tgz#8d1e5746a8bf2fc76d009d917ec79a246be1b308"
+ integrity sha512-anbjel3h0aEs7QuwKb3qbvApZmBE4lD0xonwP/6fOHvOj/1D3wmBWula2MOjOV2RRPOLnE9istBSlA+mqVhzMA==
-undici-types@~7.21.0:
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.21.0.tgz#433f7dd1b5daa9ab4dacb721a5e11a8de51eadda"
- integrity sha512-w9IMgQrz4O0YN1LtB7K5P63vhlIOvC7opSmouCJ+ZywlPAlO9gIkJ+otk6LvGpAs2wg4econaCz3TvQ9xPoyuQ==
+undici-types@~6.21.0:
+ version "6.21.0"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb"
+ integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==
undici@^7.12.0:
- version "7.25.0"
- resolved "https://registry.yarnpkg.com/undici/-/undici-7.25.0.tgz#7d72fc429a0421769ca2966fd07cac875c85b781"
- integrity sha512-xXnp4kTyor2Zq+J1FfPI6Eq3ew5h6Vl0F/8d9XU5zZQf1tX9s2Su1/3PiMmUANFULpmksxkClamIZcaUqryHsQ==
+ version "7.26.0"
+ resolved "https://registry.yarnpkg.com/undici/-/undici-7.26.0.tgz#d413a2b5752e3e71e003bb268dec32b9a0ad0ce7"
+ integrity sha512-3O9Tf67pGhgOv9jM35AbhkXAKi13f3oy3aE4CSgr+TckGeY+/iu97ZXN+J7DpHPzLbVApFd1IFhcnBjREYXYcg==
universalify@^0.2.0:
version "0.2.0"
@@ -3971,16 +3955,11 @@ url-parse@^1.5.3:
querystringify "^2.1.1"
requires-port "^1.0.0"
-uuid@^11.1.1:
+uuid@11.1.1, uuid@^11.1.1:
version "11.1.1"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-11.1.1.tgz#f6d81d2e1c65d00762e5e29b16c5d2d995e208ad"
integrity sha512-vIYxrBCC/N/K+Js3qSN88go7kIfNPssr/hHCesKCQNAjmgvYS2oqr69kIufEG+O4+PfezOH4EbIeHCfFov8ZgQ==
-uuid@^9.0.0:
- version "9.0.1"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30"
- integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==
-
v8-to-istanbul@^9.0.1:
version "9.3.0"
resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz#b9572abfa62bd556c16d75fdebc1a411d5ff3175"
@@ -4017,17 +3996,16 @@ webidl-conversions@^7.0.0:
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a"
integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==
-webpack-sources@^3.3.4:
- version "3.4.1"
- resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.4.1.tgz#009d110999ebd9fb3a6fa8d32eec6f84d940e65d"
- integrity sha512-eACpxRN02yaawnt+uUNIF7Qje6A9zArxBbcAJjK1PK3S9Ycg5jIuJ8pW4q8EMnwNZCEGltcjkRx1QzOxOkKD8A==
+webpack-sources@^3.5.0:
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.5.0.tgz#87bf7f5801a4e985b1f1c92b64b9620a02f76d08"
+ integrity sha512-HPuy+uuoTCaaoEoI1LQ3JN9+vrPBvEesnnX1jADHy728cHSMlq4wUc4afYqahq2B1mhQVZxCXOkNTnXltr+2vQ==
webpack@^5.105.4:
- version "5.106.2"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.106.2.tgz#ca8174b4fd80f055cc5a45fcc5577d6db76c8ac5"
- integrity sha512-wGN3qcrBQIFmQ/c0AiOAQBvrZ5lmY8vbbMv4Mxfgzqd/B6+9pXtLo73WuS1dSGXM5QYY3hZnIbvx+K1xxe6FyA==
+ version "5.107.2"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.107.2.tgz#dea14dcb177b46b29de15f952f7303691ee2b596"
+ integrity sha512-v7RhXaJbpMlV0D7hC7lb2EbnxkoeUqf9qhKr6lozx3Q48pmFrqqNRmZFUEGmi7pSwm6fCQ2H1IjvCkHqdpVdjQ==
dependencies:
- "@types/eslint-scope" "^3.7.7"
"@types/estree" "^1.0.8"
"@types/json-schema" "^7.0.15"
"@webassemblyjs/ast" "^1.14.1"
@@ -4037,20 +4015,20 @@ webpack@^5.105.4:
acorn-import-phases "^1.0.3"
browserslist "^4.28.1"
chrome-trace-event "^1.0.2"
- enhanced-resolve "^5.20.0"
- es-module-lexer "^2.0.0"
+ enhanced-resolve "^5.22.0"
+ es-module-lexer "^2.1.0"
eslint-scope "5.1.1"
events "^3.2.0"
glob-to-regexp "^0.4.1"
graceful-fs "^4.2.11"
- loader-runner "^4.3.1"
+ loader-runner "^4.3.2"
mime-db "^1.54.0"
neo-async "^2.6.2"
schema-utils "^4.3.3"
tapable "^2.3.0"
- terser-webpack-plugin "^5.3.17"
+ terser-webpack-plugin "^5.5.0"
watchpack "^2.5.1"
- webpack-sources "^3.3.4"
+ webpack-sources "^3.5.0"
whatwg-encoding@^2.0.0:
version "2.0.0"
@@ -4130,9 +4108,9 @@ write-file-atomic@^4.0.2:
signal-exit "^3.0.7"
ws@^8.11.0:
- version "8.20.0"
- resolved "https://registry.yarnpkg.com/ws/-/ws-8.20.0.tgz#4cd9532358eba60bc863aad1623dfb045a4d4af8"
- integrity sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==
+ version "8.21.0"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.0.tgz#012e413fc07429945121b0c153158c4343086951"
+ integrity sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==
xml-name-validator@^4.0.0:
version "4.0.0"