diff --git a/.fern/replay.lock b/.fern/replay.lock index 3c9b19be..85380d02 100644 --- a/.fern/replay.lock +++ b/.fern/replay.lock @@ -12,5 +12,212 @@ generations: cli_version: unknown generator_versions: fernapi/fern-python-sdk: 5.26.0 -current_generation: ca6941ebe04b306e94f3315865d5fd06e3b2f233 -patches: [] + - commit_sha: a3eace9354ccf8d76cc4439d44363b0a08e6f1d7 + tree_hash: 8346a548a76aec81e3452ef7d1d86eb1df4866c9 + timestamp: 2026-11-04T03:51:04.113Z + cli_version: unknown + generator_versions: + fernapi/fern-python-sdk: 5.26.0 +current_generation: a3eace9354ccf8d76cc4439d44363b0a08e6f1d7 +patches: + - id: patch-3bac717a + content_hash: sha256:f4ad3ba43b0430fa3dfb54bfcf588cb697efe8185eb30350f9955849f831083f + original_commit: 3bac717acae703868197afb75fc26d296957a4fd + original_message: Restore Auth0 telemetry headers and keep UPGRADING.md (#900) + original_author: Kunal Dawar <35455566+developerkunal@users.noreply.github.com> + base_generation: a3eace9354ccf8d76cc4439d44363b0a08e6f1d7 + files: + - src/auth0/management/core/client_wrapper.py + patch_content: | + diff --git a/src/auth0/management/core/client_wrapper.py b/src/auth0/management/core/client_wrapper.py + index abce2c81..fd991f52 100644 + --- a/src/auth0/management/core/client_wrapper.py + +++ b/src/auth0/management/core/client_wrapper.py + @@ -1,6 +1,11 @@ + # This file was auto-generated by Fern from our API Definition. + +# Modified by Auth0 to use Auth0 telemetry format with dynamic versioning + + +import base64 + +import platform + +import sys + import typing + +from json import dumps + + import httpx + from .http_client import AsyncHttpClient, HttpClient + @@ -30,7 +35,18 @@ class BaseClientWrapper: + self._logging = logging + + def get_headers(self) -> typing.Dict[str, str]: + + py_version = platform.python_version() + + version = sys.modules["auth0"].__version__ + + + + auth0_client = dumps({ + + "name": "auth0-python", + + "version": version, + + "env": {"python": py_version} + + }).encode("utf-8") + + + headers: typing.Dict[str, str] = { + + "User-Agent": f"Python/{py_version}", + + "Auth0-Client": base64.b64encode(auth0_client).decode(), + **(self.get_custom_headers() or {}), + } + headers["Authorization"] = f"Bearer {self._get_token()}" + theirs_snapshot: + src/auth0/management/core/client_wrapper.py: | + # This file was auto-generated by Fern from our API Definition. + # Modified by Auth0 to use Auth0 telemetry format with dynamic versioning + + import base64 + import platform + import sys + import typing + from json import dumps + + import httpx + from .http_client import AsyncHttpClient, HttpClient + from .logging import LogConfig, Logger + + + class BaseClientWrapper: + def __init__( + self, + *, + token: typing.Union[str, typing.Callable[[], str]], + headers: typing.Optional[typing.Dict[str, str]] = None, + base_url: str, + timeout: typing.Optional[float] = None, + max_retries: int = 2, + stream_reconnection_enabled: typing.Optional[bool] = None, + max_stream_reconnection_attempts: typing.Optional[int] = None, + logging: typing.Optional[typing.Union[LogConfig, Logger]] = None, + ): + self._token = token + self._headers = headers + self._base_url = base_url + self._timeout = timeout + self._max_retries = max_retries + self._stream_reconnection_enabled = stream_reconnection_enabled + self._max_stream_reconnection_attempts = max_stream_reconnection_attempts + self._logging = logging + + def get_headers(self) -> typing.Dict[str, str]: + py_version = platform.python_version() + version = sys.modules["auth0"].__version__ + + auth0_client = dumps({ + "name": "auth0-python", + "version": version, + "env": {"python": py_version} + }).encode("utf-8") + + headers: typing.Dict[str, str] = { + "User-Agent": f"Python/{py_version}", + "Auth0-Client": base64.b64encode(auth0_client).decode(), + **(self.get_custom_headers() or {}), + } + headers["Authorization"] = f"Bearer {self._get_token()}" + return headers + + def _get_token(self) -> str: + if isinstance(self._token, str): + return self._token + else: + return self._token() + + def get_custom_headers(self) -> typing.Optional[typing.Dict[str, str]]: + return self._headers + + def get_base_url(self) -> str: + return self._base_url + + def get_timeout(self) -> typing.Optional[float]: + return self._timeout + + def get_max_retries(self) -> int: + return self._max_retries + + def get_stream_reconnection_enabled(self) -> bool: + return self._stream_reconnection_enabled if self._stream_reconnection_enabled is not None else True + + def get_max_stream_reconnection_attempts(self) -> typing.Optional[int]: + return self._max_stream_reconnection_attempts + + + class SyncClientWrapper(BaseClientWrapper): + def __init__( + self, + *, + token: typing.Union[str, typing.Callable[[], str]], + headers: typing.Optional[typing.Dict[str, str]] = None, + base_url: str, + timeout: typing.Optional[float] = None, + max_retries: int = 2, + stream_reconnection_enabled: typing.Optional[bool] = None, + max_stream_reconnection_attempts: typing.Optional[int] = None, + logging: typing.Optional[typing.Union[LogConfig, Logger]] = None, + httpx_client: httpx.Client, + ): + super().__init__( + token=token, + headers=headers, + base_url=base_url, + timeout=timeout, + max_retries=max_retries, + stream_reconnection_enabled=stream_reconnection_enabled, + max_stream_reconnection_attempts=max_stream_reconnection_attempts, + logging=logging, + ) + self.httpx_client = HttpClient( + httpx_client=httpx_client, + base_headers=self.get_headers, + base_timeout=self.get_timeout, + base_url=self.get_base_url, + base_max_retries=self.get_max_retries(), + logging_config=self._logging, + ) + + + class AsyncClientWrapper(BaseClientWrapper): + def __init__( + self, + *, + token: typing.Union[str, typing.Callable[[], str]], + headers: typing.Optional[typing.Dict[str, str]] = None, + base_url: str, + timeout: typing.Optional[float] = None, + max_retries: int = 2, + stream_reconnection_enabled: typing.Optional[bool] = None, + max_stream_reconnection_attempts: typing.Optional[int] = None, + logging: typing.Optional[typing.Union[LogConfig, Logger]] = None, + async_token: typing.Optional[typing.Callable[[], typing.Awaitable[str]]] = None, + httpx_client: httpx.AsyncClient, + ): + super().__init__( + token=token, + headers=headers, + base_url=base_url, + timeout=timeout, + max_retries=max_retries, + stream_reconnection_enabled=stream_reconnection_enabled, + max_stream_reconnection_attempts=max_stream_reconnection_attempts, + logging=logging, + ) + self._async_token = async_token + self.httpx_client = AsyncHttpClient( + httpx_client=httpx_client, + base_headers=self.get_headers, + base_timeout=self.get_timeout, + base_url=self.get_base_url, + base_max_retries=self.get_max_retries(), + async_base_headers=self.async_get_headers, + logging_config=self._logging, + ) + + async def async_get_headers(self) -> typing.Dict[str, str]: + headers = self.get_headers() + if self._async_token is not None: + token = await self._async_token() + headers["Authorization"] = f"Bearer {token}" + return headers diff --git a/reference.md b/reference.md index 252b9e40..1420c39e 100644 --- a/reference.md +++ b/reference.md @@ -2435,6 +2435,7 @@ client.clients.list( is_first_party=True, app_type="app_type", external_client_id="external_client_id", + agent_id="agent_id", q="q", ) @@ -2524,6 +2525,14 @@ client.clients.list(
+**agent_id:** `typing.Optional[str]` — Optional filter by the agent associated with the client.
Additional Restrictions:
+ +
+
+ +
+
+ **q:** `typing.Optional[str]` — Advanced Query in Lucene syntax.
Permitted Queries:
Additional Restrictions:
Note: Recent updates may not be immediately reflected in query results
@@ -3086,6 +3095,14 @@ See https://auth0.com/docs/secure/security-guidance/measures-against-app-imperso
+**agent_id:** `typing.Optional[str]` — ID of the agent to associate with this client. + +
+
+ +
+
+ **oidc_support:** `typing.Optional[ClientOidcSupportPost]`
@@ -4136,6 +4153,14 @@ See https://auth0.com/docs/secure/security-guidance/measures-against-app-imperso
+**agent_id:** `typing.Optional[str]` — ID of the agent to associate with this client, or null to remove the association. + +
+
+ +
+
+ **oidc_support:** `typing.Optional[ClientOidcSupportPatch]`
@@ -12259,25 +12284,11 @@ client.organizations.update(
-## Prompts -
client.prompts.get_settings() -> GetSettingsResponseContent -
-
- -#### 📝 Description - +## Portals +
client.portals.list() -> ListPortalsResponseContent
-
-
- -Retrieve details of the Universal Login configuration of your tenant. This includes the Identifier First Authentication and WebAuthn with Device Biometrics for MFA features. -
-
-
-
- #### 🔌 Usage
@@ -12295,7 +12306,7 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.prompts.get_settings() +client.portals.list() ```
@@ -12323,24 +12334,10 @@ client.prompts.get_settings()
-
client.prompts.update_settings(...) -> UpdateSettingsResponseContent -
-
- -#### 📝 Description - +
client.portals.create(...) -> Portal
-
-
- -Update the Universal Login configuration of your tenant. This includes the Identifier First Authentication and WebAuthn with Device Biometrics for MFA features. -
-
-
-
- #### 🔌 Usage
@@ -12350,7 +12347,7 @@ Update the Universal Login configuration of your tenant. This includes the ```python -from auth0.management import Auth0 +from auth0.management import Auth0, PortalClientSecretPostRequest from auth0.management.environment import Auth0Environment client = Auth0( @@ -12358,7 +12355,15 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.prompts.update_settings() +client.portals.create( + slug="slug", + name="name", + client=PortalClientSecretPostRequest( + token_endpoint_auth_method="client_secret_post", + client_id="client_id", + client_secret="client_secret", + ), +) ```
@@ -12374,7 +12379,7 @@ client.prompts.update_settings()
-**universal_login_experience:** `typing.Optional[UniversalLoginExperienceEnum]` +**slug:** `PortalSlug`
@@ -12382,7 +12387,7 @@ client.prompts.update_settings()
-**identifier_first:** `typing.Optional[bool]` — Whether identifier first is enabled or not +**name:** `PortalName`
@@ -12390,7 +12395,31 @@ client.prompts.update_settings()
-**webauthn_platform_first_factor:** `typing.Optional[bool]` — Use WebAuthn with Device Biometrics as the first authentication factor +**client:** `PortalClientSecretPostRequest` + +
+
+ +
+
+ +**navigation:** `typing.Optional[PortalNavigation]` + +
+
+ +
+
+ +**pages:** `typing.Optional[PortalPagesByType]` + +
+
+ +
+
+ +**custom_code:** `typing.Optional[PortalCustomCode]`
@@ -12410,8 +12439,7 @@ client.prompts.update_settings()
-## RateLimitPolicies -
client.rate_limit_policies.list(...) -> ListRateLimitPoliciesPaginatedResponseContent +
client.portals.get(...) -> Portal
@@ -12432,12 +12460,8 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.rate_limit_policies.list( - resource="oauth_authentication_api", - consumer="client", - consumer_selector="consumer_selector", - take=1, - from_="from", +client.portals.get( + id="id", ) ``` @@ -12454,7 +12478,7 @@ client.rate_limit_policies.list(
-**resource:** `typing.Optional[RateLimitPolicyResourceEnum]` — The API protected by the Rate Limit Policy. +**id:** `PortalId`
@@ -12462,31 +12486,58 @@ client.rate_limit_policies.list(
-**consumer:** `typing.Optional[RateLimitPolicyConsumerEnum]` — The consumer to which the rate limit policy applies. +**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
+
+
-
-
-**consumer_selector:** `typing.Optional[str]` — 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. -
+
+
client.portals.delete(...)
-**take:** `typing.Optional[int]` — Number of results per page. Defaults to 50. - +#### 🔌 Usage + +
+
+ +
+
+ +```python +from auth0.management import Auth0 +from auth0.management.environment import Auth0Environment + +client = Auth0( + token="", + environment=Auth0Environment.DEFAULT, +) + +client.portals.delete( + id="id", +) + +```
+
+
+ +#### ⚙️ Parameters
-**from:** `typing.Optional[str]` — Cursor for pagination. +
+
+ +**id:** `PortalId`
@@ -12506,7 +12557,7 @@ client.rate_limit_policies.list(
-
client.rate_limit_policies.create(...) -> CreateRateLimitPolicyResponseContent +
client.portals.update(...) -> Portal
@@ -12519,7 +12570,7 @@ client.rate_limit_policies.list(
```python -from auth0.management import Auth0, RateLimitPolicyConfigurationZero +from auth0.management import Auth0 from auth0.management.environment import Auth0Environment client = Auth0( @@ -12527,13 +12578,8 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.rate_limit_policies.create( - resource="oauth_authentication_api", - consumer="client", - consumer_selector="consumer_selector", - configuration=RateLimitPolicyConfigurationZero( - action="allow", - ), +client.portals.update( + id="id", ) ``` @@ -12550,7 +12596,7 @@ client.rate_limit_policies.create(
-**resource:** `RateLimitPolicyResourceEnum` +**id:** `PortalId`
@@ -12558,7 +12604,7 @@ client.rate_limit_policies.create(
-**consumer:** `RateLimitPolicyConsumerEnum` +**slug:** `typing.Optional[PortalSlug]`
@@ -12566,7 +12612,7 @@ client.rate_limit_policies.create(
-**consumer_selector:** `str` — 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. +**name:** `typing.Optional[PortalName]`
@@ -12574,7 +12620,31 @@ client.rate_limit_policies.create(
-**configuration:** `RateLimitPolicyConfiguration` +**client:** `typing.Optional[PortalClientSecretPostRequest]` + +
+
+ +
+
+ +**navigation:** `typing.Optional[PortalNavigationNullable]` + +
+
+ +
+
+ +**pages:** `typing.Optional[PortalPagesByTypeNullable]` + +
+
+ +
+
+ +**custom_code:** `typing.Optional[PortalCustomCodeNullable]`
@@ -12594,10 +12664,25 @@ client.rate_limit_policies.create(
-
client.rate_limit_policies.get(...) -> GetRateLimitPolicyResponseContent +## Prompts +
client.prompts.get_settings() -> GetSettingsResponseContent +
+
+ +#### 📝 Description +
+
+
+ +Retrieve details of the Universal Login configuration of your tenant. This includes the Identifier First Authentication and WebAuthn with Device Biometrics for MFA features. +
+
+
+
+ #### 🔌 Usage
@@ -12615,9 +12700,7 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.rate_limit_policies.get( - id="id", -) +client.prompts.get_settings() ```
@@ -12633,14 +12716,6 @@ client.rate_limit_policies.get(
-**id:** `str` — Unique identifier for the Rate Limit Policy. - -
-
- -
-
- **request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
@@ -12653,10 +12728,24 @@ client.rate_limit_policies.get(
-
client.rate_limit_policies.delete(...) +
client.prompts.update_settings(...) -> UpdateSettingsResponseContent +
+
+ +#### 📝 Description +
+
+
+ +Update the Universal Login configuration of your tenant. This includes the Identifier First Authentication and WebAuthn with Device Biometrics for MFA features. +
+
+
+
+ #### 🔌 Usage
@@ -12674,9 +12763,7 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.rate_limit_policies.delete( - id="id", -) +client.prompts.update_settings() ```
@@ -12692,7 +12779,23 @@ client.rate_limit_policies.delete(
-**id:** `str` — Unique identifier for the Rate Limit Policy. +**universal_login_experience:** `typing.Optional[UniversalLoginExperienceEnum]` + +
+
+ +
+
+ +**identifier_first:** `typing.Optional[bool]` — Whether identifier first is enabled or not + +
+
+ +
+
+ +**webauthn_platform_first_factor:** `typing.Optional[bool]` — Use WebAuthn with Device Biometrics as the first authentication factor
@@ -12712,7 +12815,8 @@ client.rate_limit_policies.delete(
-
client.rate_limit_policies.update(...) -> UpdateRateLimitPolicyResponseContent +## RateLimitPolicies +
client.rate_limit_policies.list(...) -> ListRateLimitPoliciesPaginatedResponseContent
@@ -12725,7 +12829,7 @@ client.rate_limit_policies.delete(
```python -from auth0.management import Auth0, PatchRateLimitPolicyConfigurationRequestContentZero +from auth0.management import Auth0 from auth0.management.environment import Auth0Environment client = Auth0( @@ -12733,11 +12837,12 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.rate_limit_policies.update( - id="id", - configuration=PatchRateLimitPolicyConfigurationRequestContentZero( - action="allow", - ), +client.rate_limit_policies.list( + resource="oauth_authentication_api", + consumer="client", + consumer_selector="consumer_selector", + take=1, + from_="from", ) ``` @@ -12754,7 +12859,7 @@ client.rate_limit_policies.update(
-**id:** `str` — Unique identifier for the Rate Limit Policy. +**resource:** `typing.Optional[RateLimitPolicyResourceEnum]` — The API protected by the Rate Limit Policy.
@@ -12762,7 +12867,7 @@ client.rate_limit_policies.update(
-**configuration:** `PatchRateLimitPolicyConfigurationRequestContent` +**consumer:** `typing.Optional[RateLimitPolicyConsumerEnum]` — The consumer to which the rate limit policy applies.
@@ -12770,7 +12875,307 @@ client.rate_limit_policies.update(
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. +**consumer_selector:** `typing.Optional[str]` — 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. + +
+
+ +
+
+ +**take:** `typing.Optional[int]` — Number of results per page. Defaults to 50. + +
+
+ +
+
+ +**from:** `typing.Optional[str]` — Cursor for pagination. + +
+
+ +
+
+ +**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. + +
+
+
+
+ + + +
+ + +
client.rate_limit_policies.create(...) -> CreateRateLimitPolicyResponseContent +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```python +from auth0.management import Auth0, RateLimitPolicyConfigurationZero +from auth0.management.environment import Auth0Environment + +client = Auth0( + token="", + environment=Auth0Environment.DEFAULT, +) + +client.rate_limit_policies.create( + resource="oauth_authentication_api", + consumer="client", + consumer_selector="consumer_selector", + configuration=RateLimitPolicyConfigurationZero( + action="allow", + ), +) + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**resource:** `RateLimitPolicyResourceEnum` + +
+
+ +
+
+ +**consumer:** `RateLimitPolicyConsumerEnum` + +
+
+ +
+
+ +**consumer_selector:** `str` — 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. + +
+
+ +
+
+ +**configuration:** `RateLimitPolicyConfiguration` + +
+
+ +
+
+ +**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. + +
+
+
+
+ + +
+
+
+ +
client.rate_limit_policies.get(...) -> GetRateLimitPolicyResponseContent +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```python +from auth0.management import Auth0 +from auth0.management.environment import Auth0Environment + +client = Auth0( + token="", + environment=Auth0Environment.DEFAULT, +) + +client.rate_limit_policies.get( + id="id", +) + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**id:** `str` — Unique identifier for the Rate Limit Policy. + +
+
+ +
+
+ +**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. + +
+
+
+
+ + +
+
+
+ +
client.rate_limit_policies.delete(...) +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```python +from auth0.management import Auth0 +from auth0.management.environment import Auth0Environment + +client = Auth0( + token="", + environment=Auth0Environment.DEFAULT, +) + +client.rate_limit_policies.delete( + id="id", +) + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**id:** `str` — Unique identifier for the Rate Limit Policy. + +
+
+ +
+
+ +**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. + +
+
+
+
+ + +
+
+
+ +
client.rate_limit_policies.update(...) -> UpdateRateLimitPolicyResponseContent +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```python +from auth0.management import Auth0, PatchRateLimitPolicyConfigurationRequestContentZero +from auth0.management.environment import Auth0Environment + +client = Auth0( + token="", + environment=Auth0Environment.DEFAULT, +) + +client.rate_limit_policies.update( + id="id", + configuration=PatchRateLimitPolicyConfigurationRequestContentZero( + action="allow", + ), +) + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**id:** `str` — Unique identifier for the Rate Limit Policy. + +
+
+ +
+
+ +**configuration:** `PatchRateLimitPolicyConfigurationRequestContent` + +
+
+ +
+
+ +**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
@@ -13556,6 +13961,22 @@ client.resource_servers.create(
+**agent_subject_claims:** `typing.Optional[ResourceServerAgentSubjectClaimsSchemaEnum]` + +
+
+ +
+
+ +**type:** `typing.Optional[ResourceServerTypeEnum]` + +
+
+ +
+
+ **request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
@@ -14074,6 +14495,22 @@ client.resource_servers.update(
+**agent_subject_claims:** `typing.Optional[ResourceServerAgentSubjectClaimsSchemaEnum]` + +
+
+ +
+
+ +**type:** `typing.Optional[ResourceServerTypeEnum]` + +
+
+ +
+
+ **request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
@@ -18831,7 +19268,7 @@ client.users.update(
-
client.users.regenerate_recovery_code(...) -> RegenerateUsersRecoveryCodeResponseContent +
client.users.list_consent_signing_keys(...) -> ListUserConsentSigningKeysResponseContent
@@ -18843,7 +19280,7 @@ client.users.update(
-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. +Retrieve all consent signing keys registered for a user. Returns an empty `keys` array when the user has no keys registered.
@@ -18866,7 +19303,7 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.users.regenerate_recovery_code( +client.users.list_consent_signing_keys( id="id", ) @@ -18884,7 +19321,7 @@ client.users.regenerate_recovery_code(
-**id:** `str` — ID of the user to regenerate a multi-factor authentication recovery code for. +**id:** `str` — The ID of the user.
@@ -18904,7 +19341,7 @@ client.users.regenerate_recovery_code(
-
client.users.revoke_access(...) +
client.users.get_consent_signing_key(...) -> ConsentSigningKey
@@ -18916,7 +19353,7 @@ client.users.regenerate_recovery_code(
-Revokes selected resources related to a user (sessions, refresh tokens, ...). +Retrieve a single consent signing key for a user by its key identifier (kid). Returns 404 if the key does not exist.
@@ -18939,8 +19376,9 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.users.revoke_access( +client.users.get_consent_signing_key( id="id", + kid="kid", ) ``` @@ -18951,113 +19389,13 @@ client.users.revoke_access( #### ⚙️ Parameters -
-
- -
-
- -**id:** `str` — ID of the user. - -
-
- -
-
- -**session_id:** `typing.Optional[str]` — ID of the session to revoke. - -
-
- -
-
- -**preserve_refresh_tokens:** `typing.Optional[bool]` — Whether to preserve the refresh tokens associated with the session. - -
-
- -
-
- -**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. - -
-
-
-
- - - -
-
- -## Actions Versions -
client.actions.versions.list(...) -> ListActionVersionsPaginatedResponseContent -
-
- -#### 📝 Description - -
-
- -
-
- -Retrieve all of an action's versions. An action version is created whenever an action is deployed. An action version is immutable, once created. -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```python -from auth0.management import Auth0 -from auth0.management.environment import Auth0Environment - -client = Auth0( - token="", - environment=Auth0Environment.DEFAULT, -) - -client.actions.versions.list( - action_id="actionId", - page=1, - per_page=1, -) - -``` -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**action_id:** `str` — The ID of the action. - -
-
+
+
-**page:** `typing.Optional[int]` — Use this field to request a specific page of the list results. +**id:** `str` — The ID of the user.
@@ -19065,7 +19403,7 @@ client.actions.versions.list(
-**per_page:** `typing.Optional[int]` — This field specify the maximum number of results to be returned by the server. 20 by default +**kid:** `str` — The key identifier of the consent signing key.
@@ -19085,7 +19423,7 @@ client.actions.versions.list(
-
client.actions.versions.get(...) -> GetActionVersionResponseContent +
client.users.delete_consent_signing_key(...)
@@ -19097,7 +19435,7 @@ client.actions.versions.list(
-Retrieve a specific version of an action. An action version is created whenever an action is deployed. An action version is immutable, once created. +Remove a single consent signing key for a user by its key identifier (kid). The operation is idempotent and returns 204 whether or not the key existed.
@@ -19120,9 +19458,9 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.actions.versions.get( - action_id="actionId", +client.users.delete_consent_signing_key( id="id", + kid="kid", ) ``` @@ -19139,7 +19477,7 @@ client.actions.versions.get(
-**action_id:** `str` — The ID of the action. +**id:** `str` — The ID of the user.
@@ -19147,7 +19485,7 @@ client.actions.versions.get(
-**id:** `str` — The ID of the action version. +**kid:** `str` — The key identifier of the consent signing key.
@@ -19167,7 +19505,7 @@ client.actions.versions.get(
-
client.actions.versions.deploy(...) -> DeployActionVersionResponseContent +
client.users.regenerate_recovery_code(...) -> RegenerateUsersRecoveryCodeResponseContent
@@ -19179,7 +19517,7 @@ client.actions.versions.get(
-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. +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.
@@ -19194,7 +19532,7 @@ Performs the equivalent of a roll-back of an action to an earlier, specified ver
```python -from auth0.management import Auth0, DeployActionVersionRequestContent +from auth0.management import Auth0 from auth0.management.environment import Auth0Environment client = Auth0( @@ -19202,10 +19540,8 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.actions.versions.deploy( - action_id="actionId", +client.users.regenerate_recovery_code( id="id", - request=DeployActionVersionRequestContent(), ) ``` @@ -19222,23 +19558,7 @@ client.actions.versions.deploy(
-**action_id:** `str` — The ID of an action. - -
-
- -
-
- -**id:** `str` — The ID of an action version. - -
-
- -
-
- -**request:** `typing.Optional[DeployActionVersionRequestContent]` +**id:** `str` — ID of the user to regenerate a multi-factor authentication recovery code for.
@@ -19258,8 +19578,7 @@ client.actions.versions.deploy(
-## Actions Executions -
client.actions.executions.get(...) -> GetActionExecutionResponseContent +
client.users.revoke_access(...)
@@ -19271,7 +19590,7 @@ client.actions.versions.deploy(
-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. +Revokes selected resources related to a user (sessions, refresh tokens, ...).
@@ -19294,7 +19613,7 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.actions.executions.get( +client.users.revoke_access( id="id", ) @@ -19312,7 +19631,23 @@ client.actions.executions.get(
-**id:** `str` — The ID of the execution to retrieve. +**id:** `str` — ID of the user. + +
+
+ +
+
+ +**session_id:** `typing.Optional[str]` — ID of the session to revoke. + +
+
+ +
+
+ +**preserve_refresh_tokens:** `typing.Optional[bool]` — Whether to preserve the refresh tokens associated with the session.
@@ -19332,8 +19667,8 @@ client.actions.executions.get(
-## Actions Modules -
client.actions.modules.list(...) -> GetActionModulesResponseContent +## Actions Versions +
client.actions.versions.list(...) -> ListActionVersionsPaginatedResponseContent
@@ -19345,7 +19680,7 @@ client.actions.executions.get(
-Retrieve a paginated list of all Actions Modules with optional filtering and totals. +Retrieve all of an action's versions. An action version is created whenever an action is deployed. An action version is immutable, once created.
@@ -19368,7 +19703,8 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.actions.modules.list( +client.actions.versions.list( + action_id="actionId", page=1, per_page=1, ) @@ -19387,7 +19723,7 @@ client.actions.modules.list(
-**page:** `typing.Optional[int]` — Page index of the results to return. First page is 0. +**action_id:** `str` — The ID of the action.
@@ -19395,7 +19731,15 @@ client.actions.modules.list(
-**per_page:** `typing.Optional[int]` — Number of results per page. Paging is disabled if parameter not sent. +**page:** `typing.Optional[int]` — Use this field to request a specific page of the list results. + +
+
+ +
+
+ +**per_page:** `typing.Optional[int]` — This field specify the maximum number of results to be returned by the server. 20 by default
@@ -19415,7 +19759,7 @@ client.actions.modules.list(
-
client.actions.modules.create(...) -> CreateActionModuleResponseContent +
client.actions.versions.get(...) -> GetActionVersionResponseContent
@@ -19427,7 +19771,7 @@ client.actions.modules.list(
-Create a new Actions Module for reusable code across actions. +Retrieve a specific version of an action. An action version is created whenever an action is deployed. An action version is immutable, once created.
@@ -19450,9 +19794,9 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.actions.modules.create( - name="name", - code="code", +client.actions.versions.get( + action_id="actionId", + id="id", ) ``` @@ -19469,39 +19813,7 @@ client.actions.modules.create(
-**name:** `str` — The name of the action module. - -
-
- -
-
- -**code:** `str` — The source code of the action module. - -
-
- -
-
- -**secrets:** `typing.Optional[typing.List[ActionModuleSecretRequest]]` — The secrets to associate with the action module. - -
-
- -
-
- -**dependencies:** `typing.Optional[typing.List[ActionModuleDependencyRequest]]` — The npm dependencies of the action module. - -
-
- -
-
- -**api_version:** `typing.Optional[str]` — The API version of the module. +**action_id:** `str` — The ID of the action.
@@ -19509,7 +19821,7 @@ client.actions.modules.create(
-**publish:** `typing.Optional[bool]` — Whether to publish the module immediately after creation. +**id:** `str` — The ID of the action version.
@@ -19529,7 +19841,7 @@ client.actions.modules.create(
-
client.actions.modules.get(...) -> GetActionModuleResponseContent +
client.actions.versions.deploy(...) -> DeployActionVersionResponseContent
@@ -19541,7 +19853,7 @@ client.actions.modules.create(
-Retrieve details of a specific Actions Module by its unique identifier. +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.
@@ -19556,7 +19868,7 @@ Retrieve details of a specific Actions Module by its unique identifier.
```python -from auth0.management import Auth0 +from auth0.management import Auth0, DeployActionVersionRequestContent from auth0.management.environment import Auth0Environment client = Auth0( @@ -19564,8 +19876,10 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.actions.modules.get( +client.actions.versions.deploy( + action_id="actionId", id="id", + request=DeployActionVersionRequestContent(), ) ``` @@ -19582,7 +19896,23 @@ client.actions.modules.get(
-**id:** `str` — The ID of the action module to retrieve. +**action_id:** `str` — The ID of an action. + +
+
+ +
+
+ +**id:** `str` — The ID of an action version. + +
+
+ +
+
+ +**request:** `typing.Optional[DeployActionVersionRequestContent]`
@@ -19602,7 +19932,8 @@ client.actions.modules.get(
-
client.actions.modules.delete(...) +## Actions Executions +
client.actions.executions.get(...) -> GetActionExecutionResponseContent
@@ -19614,7 +19945,7 @@ client.actions.modules.get(
-Permanently delete an Actions Module. This will fail if the module is still in use by any actions. +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.
@@ -19637,7 +19968,7 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.actions.modules.delete( +client.actions.executions.get( id="id", ) @@ -19655,7 +19986,7 @@ client.actions.modules.delete(
-**id:** `str` — The ID of the Actions Module to delete. +**id:** `str` — The ID of the execution to retrieve.
@@ -19675,7 +20006,8 @@ client.actions.modules.delete(
-
client.actions.modules.update(...) -> UpdateActionModuleResponseContent +## Actions Modules +
client.actions.modules.list(...) -> GetActionModulesResponseContent
@@ -19687,7 +20019,7 @@ client.actions.modules.delete(
-Update properties of an existing Actions Module, such as code, dependencies, or secrets. +Retrieve a paginated list of all Actions Modules with optional filtering and totals.
@@ -19710,8 +20042,9 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.actions.modules.update( - id="id", +client.actions.modules.list( + page=1, + per_page=1, ) ``` @@ -19728,23 +20061,7 @@ client.actions.modules.update(
-**id:** `str` — The ID of the action module to update. - -
-
- -
-
- -**code:** `typing.Optional[str]` — The source code of the action module. - -
-
- -
-
- -**secrets:** `typing.Optional[typing.List[ActionModuleSecretRequest]]` — The secrets to associate with the action module. +**page:** `typing.Optional[int]` — Page index of the results to return. First page is 0.
@@ -19752,7 +20069,7 @@ client.actions.modules.update(
-**dependencies:** `typing.Optional[typing.List[ActionModuleDependencyRequest]]` — The npm dependencies of the action module. +**per_page:** `typing.Optional[int]` — Number of results per page. Paging is disabled if parameter not sent.
@@ -19772,7 +20089,7 @@ client.actions.modules.update(
-
client.actions.modules.list_actions(...) -> GetActionModuleActionsResponseContent +
client.actions.modules.create(...) -> CreateActionModuleResponseContent
@@ -19784,7 +20101,7 @@ client.actions.modules.update(
-Lists all actions that are using a specific Actions Module, showing which deployed action versions reference this Actions Module. +Create a new Actions Module for reusable code across actions.
@@ -19807,10 +20124,9 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.actions.modules.list_actions( - id="id", - page=1, - per_page=1, +client.actions.modules.create( + name="name", + code="code", ) ``` @@ -19827,7 +20143,7 @@ client.actions.modules.list_actions(
-**id:** `str` — The unique ID of the module. +**name:** `str` — The name of the action module.
@@ -19835,7 +20151,7 @@ client.actions.modules.list_actions(
-**page:** `typing.Optional[int]` — Page index of the results to return. First page is 0. +**code:** `str` — The source code of the action module.
@@ -19843,7 +20159,31 @@ client.actions.modules.list_actions(
-**per_page:** `typing.Optional[int]` — Number of results per page. +**secrets:** `typing.Optional[typing.List[ActionModuleSecretRequest]]` — The secrets to associate with the action module. + +
+
+ +
+
+ +**dependencies:** `typing.Optional[typing.List[ActionModuleDependencyRequest]]` — The npm dependencies of the action module. + +
+
+ +
+
+ +**api_version:** `typing.Optional[str]` — The API version of the module. + +
+
+ +
+
+ +**publish:** `typing.Optional[bool]` — Whether to publish the module immediately after creation.
@@ -19863,7 +20203,7 @@ client.actions.modules.list_actions(
-
client.actions.modules.rollback(...) -> RollbackActionModuleResponseContent +
client.actions.modules.get(...) -> GetActionModuleResponseContent
@@ -19875,7 +20215,7 @@ client.actions.modules.list_actions(
-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. +Retrieve details of a specific Actions Module by its unique identifier.
@@ -19898,9 +20238,8 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.actions.modules.rollback( +client.actions.modules.get( id="id", - module_version_id="module_version_id", ) ``` @@ -19911,21 +20250,13 @@ client.actions.modules.rollback( #### ⚙️ Parameters -
-
- -
-
- -**id:** `str` — The unique ID of the module to roll back. - -
-
+
+
-**module_version_id:** `str` — The unique ID of the module version to roll back to. +**id:** `str` — The ID of the action module to retrieve.
@@ -19945,8 +20276,7 @@ client.actions.modules.rollback(
-## Actions Triggers -
client.actions.triggers.list() -> ListActionTriggersResponseContent +
client.actions.modules.delete(...)
@@ -19958,7 +20288,7 @@ client.actions.modules.rollback(
-Retrieve the set of triggers currently available within actions. A trigger is an extensibility point to which actions can be bound. +Permanently delete an Actions Module. This will fail if the module is still in use by any actions.
@@ -19981,7 +20311,9 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.actions.triggers.list() +client.actions.modules.delete( + id="id", +) ``` @@ -19997,6 +20329,14 @@ client.actions.triggers.list()
+**id:** `str` — The ID of the Actions Module to delete. + +
+
+ +
+
+ **request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
@@ -20009,8 +20349,7 @@ client.actions.triggers.list()
-## Actions Modules Versions -
client.actions.modules.versions.list(...) -> GetActionModuleVersionsResponseContent +
client.actions.modules.update(...) -> UpdateActionModuleResponseContent
@@ -20022,7 +20361,7 @@ client.actions.triggers.list()
-List all published versions of a specific Actions Module. +Update properties of an existing Actions Module, such as code, dependencies, or secrets.
@@ -20045,10 +20384,8 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.actions.modules.versions.list( +client.actions.modules.update( id="id", - page=1, - per_page=1, ) ``` @@ -20065,7 +20402,7 @@ client.actions.modules.versions.list(
-**id:** `str` — The unique ID of the module. +**id:** `str` — The ID of the action module to update.
@@ -20073,7 +20410,7 @@ client.actions.modules.versions.list(
-**page:** `typing.Optional[int]` — Use this field to request a specific page of the list results. +**code:** `typing.Optional[str]` — The source code of the action module.
@@ -20081,7 +20418,15 @@ client.actions.modules.versions.list(
-**per_page:** `typing.Optional[int]` — The maximum number of results to be returned by the server in a single response. 20 by default. +**secrets:** `typing.Optional[typing.List[ActionModuleSecretRequest]]` — The secrets to associate with the action module. + +
+
+ +
+
+ +**dependencies:** `typing.Optional[typing.List[ActionModuleDependencyRequest]]` — The npm dependencies of the action module.
@@ -20101,7 +20446,7 @@ client.actions.modules.versions.list(
-
client.actions.modules.versions.create(...) -> CreateActionModuleVersionResponseContent +
client.actions.modules.list_actions(...) -> GetActionModuleActionsResponseContent
@@ -20113,7 +20458,7 @@ client.actions.modules.versions.list(
-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. +Lists all actions that are using a specific Actions Module, showing which deployed action versions reference this Actions Module.
@@ -20136,8 +20481,10 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.actions.modules.versions.create( +client.actions.modules.list_actions( id="id", + page=1, + per_page=1, ) ``` @@ -20154,7 +20501,23 @@ client.actions.modules.versions.create(
-**id:** `str` — The ID of the action module to create a version for. +**id:** `str` — The unique ID of the module. + +
+
+ +
+
+ +**page:** `typing.Optional[int]` — Page index of the results to return. First page is 0. + +
+
+ +
+
+ +**per_page:** `typing.Optional[int]` — Number of results per page.
@@ -20174,7 +20537,7 @@ client.actions.modules.versions.create(
-
client.actions.modules.versions.get(...) -> GetActionModuleVersionResponseContent +
client.actions.modules.rollback(...) -> RollbackActionModuleResponseContent
@@ -20186,7 +20549,7 @@ client.actions.modules.versions.create(
-Retrieve the details of a specific, immutable version of an Actions Module. +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.
@@ -20209,9 +20572,9 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.actions.modules.versions.get( +client.actions.modules.rollback( id="id", - version_id="versionId", + module_version_id="module_version_id", ) ``` @@ -20228,7 +20591,7 @@ client.actions.modules.versions.get(
-**id:** `str` — The unique ID of the module. +**id:** `str` — The unique ID of the module to roll back.
@@ -20236,7 +20599,7 @@ client.actions.modules.versions.get(
-**version_id:** `str` — The unique ID of the module version to retrieve. +**module_version_id:** `str` — The unique ID of the module version to roll back to.
@@ -20256,8 +20619,8 @@ client.actions.modules.versions.get(
-## Actions Triggers Bindings -
client.actions.triggers.bindings.list(...) -> ListActionBindingsPaginatedResponseContent +## Actions Triggers +
client.actions.triggers.list() -> ListActionTriggersResponseContent
@@ -20269,7 +20632,7 @@ client.actions.modules.versions.get(
-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. +Retrieve the set of triggers currently available within actions. A trigger is an extensibility point to which actions can be bound.
@@ -20292,11 +20655,7 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.actions.triggers.bindings.list( - trigger_id="post-login", - page=1, - per_page=1, -) +client.actions.triggers.list() ``` @@ -20312,30 +20671,6 @@ client.actions.triggers.bindings.list(
-**trigger_id:** `ActionTriggerTypeEnum` — An actions extensibility point. - -
-
- -
-
- -**page:** `typing.Optional[int]` — Use this field to request a specific page of the list results. - -
-
- -
-
- -**per_page:** `typing.Optional[int]` — The maximum number of results to be returned in a single request. 20 by default - -
-
- -
-
- **request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
@@ -20348,7 +20683,8 @@ client.actions.triggers.bindings.list(
-
client.actions.triggers.bindings.update_many(...) -> UpdateActionBindingsResponseContent +## Actions Modules Versions +
client.actions.modules.versions.list(...) -> GetActionModuleVersionsResponseContent
@@ -20360,7 +20696,7 @@ client.actions.triggers.bindings.list(
-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. +List all published versions of a specific Actions Module.
@@ -20383,8 +20719,10 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.actions.triggers.bindings.update_many( - trigger_id="post-login", +client.actions.modules.versions.list( + id="id", + page=1, + per_page=1, ) ``` @@ -20401,7 +20739,7 @@ client.actions.triggers.bindings.update_many(
-**trigger_id:** `ActionTriggerTypeEnum` — An actions extensibility point. +**id:** `str` — The unique ID of the module.
@@ -20409,7 +20747,15 @@ client.actions.triggers.bindings.update_many(
-**bindings:** `typing.Optional[typing.List[ActionBindingWithRef]]` — The actions that will be bound to this trigger. The order in which they are included will be the order in which they are executed. +**page:** `typing.Optional[int]` — Use this field to request a specific page of the list results. + +
+
+ +
+
+ +**per_page:** `typing.Optional[int]` — The maximum number of results to be returned by the server in a single response. 20 by default.
@@ -20429,8 +20775,7 @@ client.actions.triggers.bindings.update_many(
-## Anomaly Blocks -
client.anomaly.blocks.check_ip(...) +
client.actions.modules.versions.create(...) -> CreateActionModuleVersionResponseContent
@@ -20442,7 +20787,7 @@ client.actions.triggers.bindings.update_many(
-Check if the given IP address is blocked via the Suspicious IP Throttling due to multiple suspicious attempts. +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.
@@ -20465,7 +20810,7 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.anomaly.blocks.check_ip( +client.actions.modules.versions.create( id="id", ) @@ -20483,7 +20828,7 @@ client.anomaly.blocks.check_ip(
-**id:** `AnomalyIpFormat` — IP address to check. +**id:** `str` — The ID of the action module to create a version for.
@@ -20503,7 +20848,7 @@ client.anomaly.blocks.check_ip(
-
client.anomaly.blocks.unblock_ip(...) +
client.actions.modules.versions.get(...) -> GetActionModuleVersionResponseContent
@@ -20515,7 +20860,7 @@ client.anomaly.blocks.check_ip(
-Remove a block imposed by Suspicious IP Throttling for the given IP address. +Retrieve the details of a specific, immutable version of an Actions Module.
@@ -20538,8 +20883,9 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.anomaly.blocks.unblock_ip( +client.actions.modules.versions.get( id="id", + version_id="versionId", ) ``` @@ -20556,7 +20902,15 @@ client.anomaly.blocks.unblock_ip(
-**id:** `AnomalyIpFormat` — IP address to unblock. +**id:** `str` — The unique ID of the module. + +
+
+ +
+
+ +**version_id:** `str` — The unique ID of the module version to retrieve.
@@ -20576,8 +20930,8 @@ client.anomaly.blocks.unblock_ip(
-## AttackProtection BotDetection -
client.attack_protection.bot_detection.get() -> GetBotDetectionSettingsResponseContent +## Actions Triggers Bindings +
client.actions.triggers.bindings.list(...) -> ListActionBindingsPaginatedResponseContent
@@ -20589,7 +20943,7 @@ client.anomaly.blocks.unblock_ip(
-Get the Bot 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.
@@ -20612,7 +20966,11 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.attack_protection.bot_detection.get() +client.actions.triggers.bindings.list( + trigger_id="post-login", + page=1, + per_page=1, +) ``` @@ -20628,6 +20986,30 @@ client.attack_protection.bot_detection.get()
+**trigger_id:** `ActionTriggerTypeEnum` — An actions extensibility point. + +
+
+ +
+
+ +**page:** `typing.Optional[int]` — Use this field to request a specific page of the list results. + +
+
+ +
+
+ +**per_page:** `typing.Optional[int]` — The maximum number of results to be returned in a single request. 20 by default + +
+
+ +
+
+ **request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
@@ -20640,7 +21022,7 @@ client.attack_protection.bot_detection.get()
-
client.attack_protection.bot_detection.update(...) -> UpdateBotDetectionSettingsResponseContent +
client.actions.triggers.bindings.update_many(...) -> UpdateActionBindingsResponseContent
@@ -20652,7 +21034,7 @@ client.attack_protection.bot_detection.get()
-Update the Bot 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.
@@ -20675,7 +21057,9 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.attack_protection.bot_detection.update() +client.actions.triggers.bindings.update_many( + trigger_id="post-login", +) ``` @@ -20691,39 +21075,7 @@ client.attack_protection.bot_detection.update()
-**bot_detection_level:** `typing.Optional[BotDetectionLevelEnum]` - -
-
- -
-
- -**challenge_password_policy:** `typing.Optional[BotDetectionChallengePolicyPasswordFlowEnum]` - -
-
- -
-
- -**challenge_passwordless_policy:** `typing.Optional[BotDetectionChallengePolicyPasswordlessFlowEnum]` - -
-
- -
-
- -**challenge_password_reset_policy:** `typing.Optional[BotDetectionChallengePolicyPasswordResetFlowEnum]` - -
-
- -
-
- -**allowlist:** `typing.Optional[BotDetectionAllowlist]` +**trigger_id:** `ActionTriggerTypeEnum` — An actions extensibility point.
@@ -20731,7 +21083,7 @@ client.attack_protection.bot_detection.update()
-**monitoring_mode_enabled:** `typing.Optional[BotDetectionMonitoringModeEnabled]` +**bindings:** `typing.Optional[typing.List[ActionBindingWithRef]]` — The actions that will be bound to this trigger. The order in which they are included will be the order in which they are executed.
@@ -20751,8 +21103,8 @@ client.attack_protection.bot_detection.update()
-## AttackProtection BreachedPasswordDetection -
client.attack_protection.breached_password_detection.get() -> GetBreachedPasswordDetectionSettingsResponseContent +## Anomaly Blocks +
client.anomaly.blocks.check_ip(...)
@@ -20764,7 +21116,7 @@ client.attack_protection.bot_detection.update()
-Retrieve details of the Breached Password Detection configuration of your tenant. +Check if the given IP address is blocked via the Suspicious IP Throttling due to multiple suspicious attempts.
@@ -20787,8 +21139,10 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.attack_protection.breached_password_detection.get() - +client.anomaly.blocks.check_ip( + id="id", +) + ```
@@ -20803,6 +21157,14 @@ client.attack_protection.breached_password_detection.get()
+**id:** `AnomalyIpFormat` — IP address to check. + +
+
+ +
+
+ **request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
@@ -20815,7 +21177,7 @@ client.attack_protection.breached_password_detection.get()
-
client.attack_protection.breached_password_detection.update(...) -> UpdateBreachedPasswordDetectionSettingsResponseContent +
client.anomaly.blocks.unblock_ip(...)
@@ -20827,7 +21189,7 @@ client.attack_protection.breached_password_detection.get()
-Update details of the Breached Password Detection configuration of your tenant. +Remove a block imposed by Suspicious IP Throttling for the given IP address.
@@ -20850,7 +21212,9 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.attack_protection.breached_password_detection.update() +client.anomaly.blocks.unblock_ip( + id="id", +) ``` @@ -20866,45 +21230,7 @@ client.attack_protection.breached_password_detection.update()
-**enabled:** `typing.Optional[bool]` — Whether or not breached password detection is active. - -
-
- -
-
- -**shields:** `typing.Optional[typing.List[BreachedPasswordDetectionShieldsEnum]]` - -Action to take when a breached password is detected during a login. - Possible values: block, user_notification, admin_notification. - -
-
- -
-
- -**admin_notification_frequency:** `typing.Optional[typing.List[BreachedPasswordDetectionAdminNotificationFrequencyEnum]]` - -When "admin_notification" is enabled, determines how often email notifications are sent. - Possible values: immediately, daily, weekly, monthly. - -
-
- -
-
- -**method:** `typing.Optional[BreachedPasswordDetectionMethodEnum]` - -
-
- -
-
- -**stage:** `typing.Optional[BreachedPasswordDetectionStage]` +**id:** `AnomalyIpFormat` — IP address to unblock.
@@ -20924,8 +21250,8 @@ When "admin_notification" is enabled, determines how often email notifications a
-## AttackProtection BruteForceProtection -
client.attack_protection.brute_force_protection.get() -> GetBruteForceSettingsResponseContent +## AttackProtection BotDetection +
client.attack_protection.bot_detection.get() -> GetBotDetectionSettingsResponseContent
@@ -20937,7 +21263,7 @@ When "admin_notification" is enabled, determines how often email notifications a
-Retrieve details of the Brute-force Protection configuration of your tenant. +Get the Bot Detection configuration of your tenant.
@@ -20960,7 +21286,7 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.attack_protection.brute_force_protection.get() +client.attack_protection.bot_detection.get() ``` @@ -20988,7 +21314,7 @@ client.attack_protection.brute_force_protection.get()
-
client.attack_protection.brute_force_protection.update(...) -> UpdateBruteForceSettingsResponseContent +
client.attack_protection.bot_detection.update(...) -> UpdateBotDetectionSettingsResponseContent
@@ -21000,7 +21326,7 @@ client.attack_protection.brute_force_protection.get()
-Update the Brute-force Protection configuration of your tenant. +Update the Bot Detection configuration of your tenant.
@@ -21023,7 +21349,7 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.attack_protection.brute_force_protection.update() +client.attack_protection.bot_detection.update() ``` @@ -21039,7 +21365,7 @@ client.attack_protection.brute_force_protection.update()
-**enabled:** `typing.Optional[bool]` — Whether or not brute force attack protections are active. +**bot_detection_level:** `typing.Optional[BotDetectionLevelEnum]`
@@ -21047,10 +21373,7 @@ client.attack_protection.brute_force_protection.update()
-**shields:** `typing.Optional[typing.List[BruteForceProtectionShieldsEnum]]` - -Action to take when a brute force protection threshold is violated. - Possible values: block, user_notification. +**challenge_password_policy:** `typing.Optional[BotDetectionChallengePolicyPasswordFlowEnum]`
@@ -21058,7 +21381,7 @@ Action to take when a brute force protection threshold is violated.
-**allowlist:** `typing.Optional[typing.List[str]]` — List of trusted IP addresses that will not have attack protection enforced against them. +**challenge_passwordless_policy:** `typing.Optional[BotDetectionChallengePolicyPasswordlessFlowEnum]`
@@ -21066,7 +21389,7 @@ Action to take when a brute force protection threshold is violated.
-**mode:** `typing.Optional[BruteForceProtectionModeEnum]` +**challenge_password_reset_policy:** `typing.Optional[BotDetectionChallengePolicyPasswordResetFlowEnum]`
@@ -21074,7 +21397,7 @@ Action to take when a brute force protection threshold is violated.
-**max_attempts:** `typing.Optional[int]` — Maximum number of unsuccessful attempts. +**allowlist:** `typing.Optional[BotDetectionAllowlist]`
@@ -21082,7 +21405,7 @@ Action to take when a brute force protection threshold is violated.
-**form_submission_mode:** `typing.Optional[BruteForceProtectionFormSubmissionModeEnum]` +**monitoring_mode_enabled:** `typing.Optional[BotDetectionMonitoringModeEnabled]`
@@ -21102,8 +21425,8 @@ Action to take when a brute force protection threshold is violated.
-## AttackProtection Captcha -
client.attack_protection.captcha.get() -> GetAttackProtectionCaptchaResponseContent +## AttackProtection BreachedPasswordDetection +
client.attack_protection.breached_password_detection.get() -> GetBreachedPasswordDetectionSettingsResponseContent
@@ -21115,7 +21438,7 @@ Action to take when a brute force protection threshold is violated.
-Get the CAPTCHA configuration for your client. +Retrieve details of the Breached Password Detection configuration of your tenant.
@@ -21138,7 +21461,7 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.attack_protection.captcha.get() +client.attack_protection.breached_password_detection.get() ``` @@ -21166,7 +21489,7 @@ client.attack_protection.captcha.get()
-
client.attack_protection.captcha.update(...) -> UpdateAttackProtectionCaptchaResponseContent +
client.attack_protection.breached_password_detection.update(...) -> UpdateBreachedPasswordDetectionSettingsResponseContent
@@ -21178,7 +21501,7 @@ client.attack_protection.captcha.get()
-Update existing CAPTCHA configuration for your client. +Update details of the Breached Password Detection configuration of your tenant.
@@ -21201,7 +21524,7 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.attack_protection.captcha.update() +client.attack_protection.breached_password_detection.update() ``` @@ -21217,15 +21540,7 @@ client.attack_protection.captcha.update()
-**active_provider_id:** `typing.Optional[AttackProtectionCaptchaProviderId]` - -
-
- -
-
- -**arkose:** `typing.Optional[AttackProtectionUpdateCaptchaArkose]` +**enabled:** `typing.Optional[bool]` — Whether or not breached password detection is active.
@@ -21233,15 +21548,10 @@ client.attack_protection.captcha.update()
-**auth_challenge:** `typing.Optional[AttackProtectionCaptchaAuthChallengeRequest]` - -
-
- -
-
+**shields:** `typing.Optional[typing.List[BreachedPasswordDetectionShieldsEnum]]` -**hcaptcha:** `typing.Optional[AttackProtectionUpdateCaptchaHcaptcha]` +Action to take when a breached password is detected during a login. + Possible values: block, user_notification, admin_notification.
@@ -21249,15 +21559,10 @@ client.attack_protection.captcha.update()
-**friendly_captcha:** `typing.Optional[AttackProtectionUpdateCaptchaFriendlyCaptcha]` - -
-
- -
-
+**admin_notification_frequency:** `typing.Optional[typing.List[BreachedPasswordDetectionAdminNotificationFrequencyEnum]]` -**recaptcha_enterprise:** `typing.Optional[AttackProtectionUpdateCaptchaRecaptchaEnterprise]` +When "admin_notification" is enabled, determines how often email notifications are sent. + Possible values: immediately, daily, weekly, monthly.
@@ -21265,7 +21570,7 @@ client.attack_protection.captcha.update()
-**recaptcha_v_2:** `typing.Optional[AttackProtectionUpdateCaptchaRecaptchaV2]` +**method:** `typing.Optional[BreachedPasswordDetectionMethodEnum]`
@@ -21273,7 +21578,7 @@ client.attack_protection.captcha.update()
-**simple_captcha:** `typing.Optional[AttackProtectionCaptchaSimpleCaptchaResponseContent]` +**stage:** `typing.Optional[BreachedPasswordDetectionStage]`
@@ -21293,8 +21598,8 @@ client.attack_protection.captcha.update()
-## AttackProtection CaptchaPolicies -
client.attack_protection.captcha_policies.list() -> ListAttackProtectionCaptchaPoliciesResponseContent +## AttackProtection BruteForceProtection +
client.attack_protection.brute_force_protection.get() -> GetBruteForceSettingsResponseContent
@@ -21306,7 +21611,7 @@ client.attack_protection.captcha.update()
-Retrieve all CAPTCHA attack protection policies for the tenant, sorted by priority ascending. +Retrieve details of the Brute-force Protection configuration of your tenant.
@@ -21329,7 +21634,7 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.attack_protection.captcha_policies.list() +client.attack_protection.brute_force_protection.get() ``` @@ -21357,7 +21662,7 @@ client.attack_protection.captcha_policies.list()
-
client.attack_protection.captcha_policies.create(...) -> AttackProtectionCaptchaPolicy +
client.attack_protection.brute_force_protection.update(...) -> UpdateBruteForceSettingsResponseContent
@@ -21369,7 +21674,7 @@ client.attack_protection.captcha_policies.list()
-Create a new CAPTCHA attack protection policy for the tenant. The maximum number of policies per tenant is determined by the tenant's subscription. +Update the Brute-force Protection configuration of your tenant.
@@ -21384,7 +21689,7 @@ Create a new CAPTCHA attack protection policy for the tenant. The maximum number
```python -from auth0.management import Auth0, AttackProtectionCaptchaPolicyMatch, AttackProtectionCaptchaPolicyActionInput +from auth0.management import Auth0 from auth0.management.environment import Auth0Environment client = Auth0( @@ -21392,12 +21697,7 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.attack_protection.captcha_policies.create( - name="name", - priority=1, - match=AttackProtectionCaptchaPolicyMatch(), - action=AttackProtectionCaptchaPolicyActionInput(), -) +client.attack_protection.brute_force_protection.update() ```
@@ -21413,7 +21713,18 @@ client.attack_protection.captcha_policies.create(
-**name:** `str` — Human-readable policy name. +**enabled:** `typing.Optional[bool]` — Whether or not brute force attack protections are active. + +
+
+ +
+
+ +**shields:** `typing.Optional[typing.List[BruteForceProtectionShieldsEnum]]` + +Action to take when a brute force protection threshold is violated. + Possible values: block, user_notification.
@@ -21421,7 +21732,7 @@ client.attack_protection.captcha_policies.create(
-**priority:** `int` — Conflict resolution order. Lower number takes higher precedence. Must be unique per tenant. +**allowlist:** `typing.Optional[typing.List[str]]` — List of trusted IP addresses that will not have attack protection enforced against them.
@@ -21429,7 +21740,7 @@ client.attack_protection.captcha_policies.create(
-**match:** `AttackProtectionCaptchaPolicyMatch` +**mode:** `typing.Optional[BruteForceProtectionModeEnum]`
@@ -21437,7 +21748,7 @@ client.attack_protection.captcha_policies.create(
-**action:** `AttackProtectionCaptchaPolicyActionInput` +**form_submission_mode:** `typing.Optional[BruteForceProtectionFormSubmissionModeEnum]`
@@ -21445,7 +21756,7 @@ client.attack_protection.captcha_policies.create(
-**description:** `typing.Optional[str]` — Description of the attack protection policy. +**max_attempts:** `typing.Optional[int]` — Maximum number of unsuccessful attempts.
@@ -21465,7 +21776,8 @@ client.attack_protection.captcha_policies.create(
-
client.attack_protection.captcha_policies.get(...) -> AttackProtectionCaptchaPolicy +## AttackProtection Captcha +
client.attack_protection.captcha.get() -> GetAttackProtectionCaptchaResponseContent
@@ -21477,7 +21789,7 @@ client.attack_protection.captcha_policies.create(
-Retrieve a single CAPTCHA attack protection policy for the tenant by ID. +Get the CAPTCHA configuration for your client.
@@ -21500,9 +21812,7 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.attack_protection.captcha_policies.get( - id="id", -) +client.attack_protection.captcha.get() ``` @@ -21518,14 +21828,6 @@ client.attack_protection.captcha_policies.get(
-**id:** `str` — ID of the CAPTCHA attack protection policy. - -
-
- -
-
- **request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
@@ -21538,7 +21840,7 @@ client.attack_protection.captcha_policies.get(
-
client.attack_protection.captcha_policies.delete(...) +
client.attack_protection.captcha.update(...) -> UpdateAttackProtectionCaptchaResponseContent
@@ -21550,7 +21852,7 @@ client.attack_protection.captcha_policies.get(
-Delete a CAPTCHA attack protection policy for the tenant. +Update existing CAPTCHA configuration for your client.
@@ -21573,9 +21875,7 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.attack_protection.captcha_policies.delete( - id="id", -) +client.attack_protection.captcha.update() ``` @@ -21591,7 +21891,7 @@ client.attack_protection.captcha_policies.delete(
-**id:** `str` — ID of the CAPTCHA attack protection policy. +**active_provider_id:** `typing.Optional[AttackProtectionCaptchaProviderId]`
@@ -21599,72 +21899,15 @@ client.attack_protection.captcha_policies.delete(
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. +**arkose:** `typing.Optional[AttackProtectionUpdateCaptchaArkose]`
- -
- - - -
- - -
client.attack_protection.captcha_policies.update(...) -> AttackProtectionCaptchaPolicy -
-
- -#### 📝 Description - -
-
- -
-
- -Partially update a CAPTCHA attack protection policy. Only the provided fields are modified. A provided match or action replaces the stored value in full rather than merging with it; within action, a provider secret or API key that is omitted from a provided provider block keeps its stored value. -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```python -from auth0.management import Auth0 -from auth0.management.environment import Auth0Environment - -client = Auth0( - token="", - environment=Auth0Environment.DEFAULT, -) - -client.attack_protection.captcha_policies.update( - id="id", -) - -``` -
-
-
-
- -#### ⚙️ Parameters
-
-
- -**id:** `str` — ID of the CAPTCHA attack protection policy. +**auth_challenge:** `typing.Optional[AttackProtectionCaptchaAuthChallengeRequest]`
@@ -21672,7 +21915,7 @@ client.attack_protection.captcha_policies.update(
-**name:** `typing.Optional[str]` — Human-readable policy name. +**hcaptcha:** `typing.Optional[AttackProtectionUpdateCaptchaHcaptcha]`
@@ -21680,7 +21923,7 @@ client.attack_protection.captcha_policies.update(
-**description:** `typing.Optional[str]` — Description of the policy's purpose. +**friendly_captcha:** `typing.Optional[AttackProtectionUpdateCaptchaFriendlyCaptcha]`
@@ -21688,7 +21931,7 @@ client.attack_protection.captcha_policies.update(
-**priority:** `typing.Optional[int]` — Conflict resolution order. Lower number takes higher precedence. Must be unique per tenant. +**recaptcha_enterprise:** `typing.Optional[AttackProtectionUpdateCaptchaRecaptchaEnterprise]`
@@ -21696,7 +21939,7 @@ client.attack_protection.captcha_policies.update(
-**match:** `typing.Optional[AttackProtectionCaptchaPolicyMatch]` +**recaptcha_v_2:** `typing.Optional[AttackProtectionUpdateCaptchaRecaptchaV2]`
@@ -21704,7 +21947,7 @@ client.attack_protection.captcha_policies.update(
-**action:** `typing.Optional[AttackProtectionCaptchaPolicyActionInput]` +**simple_captcha:** `typing.Optional[AttackProtectionCaptchaSimpleCaptchaResponseContent]`
@@ -26008,7 +26251,7 @@ client.connections.clients.update(
-Gets the connection keys for the Okta or OIDC connection strategy. +Gets the connection keys for the Okta, OIDC, or SAML (samlp) connection strategy.
@@ -26081,7 +26324,7 @@ client.connections.keys.get(
-Provision initial connection keys for Okta or OIDC connection strategies. This endpoint allows you to create keys before configuring the connection to use Private Key JWT authentication, enabling zero-downtime transitions. +Provision initial connection keys for Okta, OIDC, or SAML (samlp) connection strategies. This endpoint allows you to create keys before configuring the connection to use Private Key JWT authentication, enabling zero-downtime transitions.
@@ -26163,7 +26406,7 @@ client.connections.keys.create(
-Rotates the connection keys for the Okta or OIDC connection strategies. +Rotates the connection keys for the Okta, OIDC, or SAML (samlp) connection strategies.
@@ -27532,6 +27775,7 @@ client.experimentation.experiments.create( name="name", feature_flag_id="feature_flag_id", authentication_flow="authentication", + allocation_strategy="percentage", ) ``` @@ -27572,7 +27816,7 @@ client.experimentation.experiments.create(
-**description:** `typing.Optional[str]` — A description of the experiment +**allocation_strategy:** `AllocationStrategyEnum` — The traffic allocation strategy for this experiment
@@ -27580,7 +27824,7 @@ client.experimentation.experiments.create(
-**default_config:** `typing.Optional[DefaultConfigEnum]` — Applies only to Auth0-managed flags. Controls where non-overridden config keys resolve from: 'tenant' inherits the tenant's live config so the experiment overlays only its changes, 'flag' uses the flag's frozen defaults for a complete config. Optional; defaults to 'tenant' when omitted. Rejected for customer-defined flags. +**description:** `typing.Optional[str]` — A description of the experiment
@@ -27588,7 +27832,7 @@ client.experimentation.experiments.create(
-**allocation_strategy:** `typing.Optional[AllocationStrategyEnum]` — The traffic allocation strategy for this experiment +**default_config:** `typing.Optional[DefaultConfigEnum]` — Applies only to Auth0-managed flags. Controls where non-overridden config keys resolve from: 'tenant' inherits the tenant's live config so the experiment overlays only its changes, 'flag' uses the flag's frozen defaults for a complete config. Optional; defaults to 'tenant' when omitted. Rejected for customer-defined flags.
@@ -28536,6 +28780,7 @@ client.experimentation.segments.list( from_="from", take=1, type="auth0", + status="active", ) ``` @@ -28576,6 +28821,14 @@ client.experimentation.segments.list(
+**status:** `typing.Optional[SegmentStatusEnum]` — Filter by status. Exact match. + +
+
+ +
+
+ **request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
diff --git a/src/auth0/management/__init__.py b/src/auth0/management/__init__.py index 0a3ef6c2..702023b1 100644 --- a/src/auth0/management/__init__.py +++ b/src/auth0/management/__init__.py @@ -77,10 +77,6 @@ AttackProtectionCaptchaAuthChallengeResponseContent, AttackProtectionCaptchaFriendlyCaptchaResponseContent, AttackProtectionCaptchaHcaptchaResponseContent, - AttackProtectionCaptchaPolicy, - AttackProtectionCaptchaPolicyAction, - AttackProtectionCaptchaPolicyActionInput, - AttackProtectionCaptchaPolicyMatch, AttackProtectionCaptchaProviderId, AttackProtectionCaptchaRecaptchaEnterpriseResponseContent, AttackProtectionCaptchaRecaptchaV2ResponseContent, @@ -147,19 +143,6 @@ BruteForceProtectionModeEnum, BruteForceProtectionShieldsEnum, BulkUpdateAculResponseContent, - CaptchaActiveProviderEnum, - CaptchaPolicyActionArkose, - CaptchaPolicyActionArkoseInput, - CaptchaPolicyActionAuthChallenge, - CaptchaPolicyActionFriendlyCaptcha, - CaptchaPolicyActionFriendlyCaptchaInput, - CaptchaPolicyActionHcaptcha, - CaptchaPolicyActionHcaptchaInput, - CaptchaPolicyActionRecaptchaEnterprise, - CaptchaPolicyActionRecaptchaEnterpriseInput, - CaptchaPolicyActionRecaptchaV2, - CaptchaPolicyActionRecaptchaV2Input, - CaptchaPolicyActionSimpleCaptcha, CertificateSubjectDnCredential, CertificateSubjectDnCredentialTypeEnum, ChangePasswordTicketIdentity, @@ -256,6 +239,7 @@ ClientOidcBackchannelLogoutInitiatorsModeEnum, ClientOidcBackchannelLogoutSessionMetadata, ClientOidcBackchannelLogoutSettings, + ClientOidcSupport, ClientOidcSupportAllowedScopesEnum, ClientOidcSupportPatch, ClientOidcSupportPost, @@ -269,6 +253,9 @@ ClientProfileApplyPolicyExternalMetadataCreatedByEnum, ClientProfileApplyPolicyExternalMetadataTypeEnum, ClientProfileClientConfiguration, + ClientProfileClientConfigurationOidcSupport, + ClientProfileClientConfigurationOidcSupportAllowedScopesEnum, + ClientProfileClientConfigurationOidcSupportDefaultValue, ClientProfileClientConfigurationOrganizationDiscoveryMethodEnum, ClientProfileClientConfigurationOrganizationDiscoveryMethods, ClientProfileClientConfigurationOrganizationRequireBehavior, @@ -361,6 +348,7 @@ ConnectionClientIdOidc, ConnectionClientIdPaypal, ConnectionClientIdSalesforce, + ConnectionClientIdSamlxaaRequestingApp, ConnectionClientIdWindowsLive, ConnectionClientProtocolSaml, ConnectionClientSecret, @@ -378,6 +366,7 @@ ConnectionClientSecretOidc, ConnectionClientSecretPaypal, ConnectionClientSecretSalesforce, + ConnectionClientSecretSamlxaaRequestingApp, ConnectionClientSecretWindowsLive, ConnectionCommon, ConnectionCommunityBaseUrlSalesforce, @@ -570,6 +559,8 @@ ConnectionOptionsWordpress, ConnectionOptionsYahoo, ConnectionOptionsYandex, + ConnectionOtpChannelSettings, + ConnectionOtpSettings, ConnectionPasskeyAuthenticationMethod, ConnectionPasskeyChallengeUiEnum, ConnectionPasskeyOptions, @@ -850,6 +841,7 @@ ConnectionsDiscoveryUrl, ConnectionsMetadata, ConnectionsOidcMetadata, + ConsentSigningKey, ContentSecurityPolicyConfig, CreateActionModuleResponseContent, CreateActionModuleVersionResponseContent, @@ -1939,6 +1931,10 @@ EventStreamCloudEventContextRequest, EventStreamCloudEventContextRequestGeo, EventStreamCloudEventContextTenant, + EventStreamCloudEventContextTransaction, + EventStreamCloudEventContextTransactionProtocolEnum, + EventStreamCloudEventContextTransactionResponseModeEnum, + EventStreamCloudEventContextTransactionResponseTypeItemEnum, EventStreamCloudEventData, EventStreamCloudEventErrorCodeEnum, EventStreamCloudEventErrorDetail, @@ -3282,6 +3278,8 @@ IntegrationRequiredParamOption, IntegrationRequiredParamTypeEnum, IntegrationSemVer, + InternalServerErrorBody, + InternalServerErrorBodyError, JobFileFormatEnum, LinkedClientConfiguration, ListActionBindingsPaginatedResponseContent, @@ -3291,7 +3289,6 @@ ListAculsOffsetPaginatedResponseContent, ListAculsResponseContentItem, ListAgentsResponseContent, - ListAttackProtectionCaptchaPoliciesResponseContent, ListBrandingPhoneProvidersResponseContent, ListClientConnectionsResponseContent, ListClientGrantOrganizationsPaginatedResponseContent, @@ -3336,6 +3333,7 @@ ListOrganizationRoleMembersResponseContent, ListOrganizationsPaginatedResponseContent, ListPhoneTemplatesResponseContent, + ListPortalsResponseContent, ListRateLimitPoliciesPaginatedResponseContent, ListRefreshTokensPaginatedResponseContent, ListResourceServerOffsetPaginatedResponseContent, @@ -3356,6 +3354,7 @@ ListUserBlocksByIdentifierResponseContent, ListUserBlocksResponseContent, ListUserConnectedAccountsResponseContent, + ListUserConsentSigningKeysResponseContent, ListUserEffectivePermissionRoleSourcesResponseContent, ListUserEffectivePermissionsResponseContent, ListUserEffectiveRolesResponseContent, @@ -3480,6 +3479,54 @@ OrganizationSortFieldEnum, OrganizationThirdPartyClientAccessEnum, OrganizationUsageEnum, + PageComponent, + PageComponentAuth0Form, + PageComponentAuth0FormConfig, + PageComponentAuth0MediaImage, + PageComponentAuth0MediaImageConfig, + PageComponentAuth0MyAccountMfaManagement, + PageComponentAuth0MyAccountMfaManagementConfig, + PageComponentAuth0MyAccountPasskeyManagement, + PageComponentAuth0MyAccountPasskeyManagementConfig, + PageComponentAuth0MyOrganizationDetailsEdit, + PageComponentAuth0MyOrganizationDetailsEditConfig, + PageComponentAuth0MyOrganizationDomainTable, + PageComponentAuth0MyOrganizationDomainTableConfig, + PageComponentAuth0MyOrganizationMemberManagement, + PageComponentAuth0MyOrganizationMemberManagementConfig, + PageComponentAuth0StructureSection, + PageComponentAuth0StructureSectionConfig, + PageComponentAuth0StructureSectionVariantEnum, + PageComponentAuth0StructureSeparator, + PageComponentAuth0StructureSeparatorConfig, + PageComponentAuth0StructureSeparatorVariantEnum, + PageComponentAuth0TypographyHeading, + PageComponentAuth0TypographyHeadingConfig, + PageComponentAuth0TypographyRichText, + PageComponentAuth0TypographyRichTextConfig, + PageComponentNoChildren, + PageComponentNoChildren_PageComponentAuth0Form, + PageComponentNoChildren_PageComponentAuth0MediaImage, + PageComponentNoChildren_PageComponentAuth0MyAccountMfaManagement, + PageComponentNoChildren_PageComponentAuth0MyAccountPasskeyManagement, + PageComponentNoChildren_PageComponentAuth0MyOrganizationDetailsEdit, + PageComponentNoChildren_PageComponentAuth0MyOrganizationDomainTable, + PageComponentNoChildren_PageComponentAuth0MyOrganizationMemberManagement, + PageComponentNoChildren_PageComponentAuth0StructureSeparator, + PageComponentNoChildren_PageComponentAuth0TypographyHeading, + PageComponentNoChildren_PageComponentAuth0TypographyRichText, + PageComponent_PageComponentAuth0Form, + PageComponent_PageComponentAuth0MediaImage, + PageComponent_PageComponentAuth0MyAccountMfaManagement, + PageComponent_PageComponentAuth0MyAccountPasskeyManagement, + PageComponent_PageComponentAuth0MyOrganizationDetailsEdit, + PageComponent_PageComponentAuth0MyOrganizationDomainTable, + PageComponent_PageComponentAuth0MyOrganizationMemberManagement, + PageComponent_PageComponentAuth0StructureSection, + PageComponent_PageComponentAuth0StructureSeparator, + PageComponent_PageComponentAuth0TypographyHeading, + PageComponent_PageComponentAuth0TypographyRichText, + PageSlug, PartialGroupsEnum, PartialPhoneTemplateContent, PasswordCharacterTypeEnum, @@ -3513,6 +3560,24 @@ PhoneTemplateBody, PhoneTemplateContent, PhoneTemplateNotificationTypeEnum, + Portal, + PortalClientSecretPost, + PortalClientSecretPostRequest, + PortalClientSecretPostRequestTokenEndpointAuthMethod, + PortalClientSecretPostTokenEndpointAuthMethod, + PortalCustomCode, + PortalCustomCodeNullable, + PortalDateTime, + PortalId, + PortalName, + PortalNavigation, + PortalNavigationNullable, + PortalPage, + PortalPagesByType, + PortalPagesByTypeNullable, + PortalSlug, + PortalSummary, + Position, PostClientCredentialResponseContent, PostConnectionKeysAlgEnum, PostConnectionKeysRequestContent, @@ -3553,6 +3618,8 @@ ResourceServerAccessTokenClaimsMapping, ResourceServerAccessTokenCustomClaimsMapping, ResourceServerAccessTokenCustomClaimsMappingRule, + ResourceServerAgentSubjectClaimsResponseEnum, + ResourceServerAgentSubjectClaimsSchemaEnum, ResourceServerAuthorizationPolicy, ResourceServerConsentPolicyEnum, ResourceServerProofOfPossession, @@ -3574,6 +3641,7 @@ ResourceServerTokenEncryptionAlgorithmEnum, ResourceServerTokenEncryptionFormatEnum, ResourceServerTokenEncryptionKey, + ResourceServerTypeEnum, ResourceServerVerificationKeyPemCertificate, RevokedSigningKeysResponseContent, Role, @@ -3679,6 +3747,20 @@ SetUserAuthenticationMethods, SetUserAuthenticationMethodsRequestContent, SetsCustomTextsByLanguageRequestContent, + Sidebar, + SidebarComponent, + SidebarComponentAuth0ExternalLink, + SidebarComponentAuth0ExternalLinkConfig, + SidebarComponentAuth0ExternalLinkV2, + SidebarComponentAuth0ExternalLinkV2Config, + SidebarComponentAuth0InternalLink, + SidebarComponentAuth0InternalLinkConfig, + SidebarComponentAuth0InternalLinkV2, + SidebarComponentAuth0InternalLinkV2Config, + SidebarComponent_SidebarComponentAuth0ExternalLink, + SidebarComponent_SidebarComponentAuth0ExternalLinkV2, + SidebarComponent_SidebarComponentAuth0InternalLink, + SidebarComponent_SidebarComponentAuth0InternalLinkV2, SigningAlgorithmEnum, SigningKeys, SigningKeysDate, @@ -3978,6 +4060,7 @@ logs, network_acls, organizations, + portals, prompts, rate_limit_policies, refresh_tokens, @@ -4080,10 +4163,6 @@ "AttackProtectionCaptchaAuthChallengeResponseContent": ".types", "AttackProtectionCaptchaFriendlyCaptchaResponseContent": ".types", "AttackProtectionCaptchaHcaptchaResponseContent": ".types", - "AttackProtectionCaptchaPolicy": ".types", - "AttackProtectionCaptchaPolicyAction": ".types", - "AttackProtectionCaptchaPolicyActionInput": ".types", - "AttackProtectionCaptchaPolicyMatch": ".types", "AttackProtectionCaptchaProviderId": ".types", "AttackProtectionCaptchaRecaptchaEnterpriseResponseContent": ".types", "AttackProtectionCaptchaRecaptchaV2ResponseContent": ".types", @@ -4153,19 +4232,6 @@ "BruteForceProtectionModeEnum": ".types", "BruteForceProtectionShieldsEnum": ".types", "BulkUpdateAculResponseContent": ".types", - "CaptchaActiveProviderEnum": ".types", - "CaptchaPolicyActionArkose": ".types", - "CaptchaPolicyActionArkoseInput": ".types", - "CaptchaPolicyActionAuthChallenge": ".types", - "CaptchaPolicyActionFriendlyCaptcha": ".types", - "CaptchaPolicyActionFriendlyCaptchaInput": ".types", - "CaptchaPolicyActionHcaptcha": ".types", - "CaptchaPolicyActionHcaptchaInput": ".types", - "CaptchaPolicyActionRecaptchaEnterprise": ".types", - "CaptchaPolicyActionRecaptchaEnterpriseInput": ".types", - "CaptchaPolicyActionRecaptchaV2": ".types", - "CaptchaPolicyActionRecaptchaV2Input": ".types", - "CaptchaPolicyActionSimpleCaptcha": ".types", "CertificateSubjectDnCredential": ".types", "CertificateSubjectDnCredentialTypeEnum": ".types", "ChangePasswordTicketIdentity": ".types", @@ -4262,6 +4328,7 @@ "ClientOidcBackchannelLogoutInitiatorsModeEnum": ".types", "ClientOidcBackchannelLogoutSessionMetadata": ".types", "ClientOidcBackchannelLogoutSettings": ".types", + "ClientOidcSupport": ".types", "ClientOidcSupportAllowedScopesEnum": ".types", "ClientOidcSupportPatch": ".types", "ClientOidcSupportPost": ".types", @@ -4275,6 +4342,9 @@ "ClientProfileApplyPolicyExternalMetadataCreatedByEnum": ".types", "ClientProfileApplyPolicyExternalMetadataTypeEnum": ".types", "ClientProfileClientConfiguration": ".types", + "ClientProfileClientConfigurationOidcSupport": ".types", + "ClientProfileClientConfigurationOidcSupportAllowedScopesEnum": ".types", + "ClientProfileClientConfigurationOidcSupportDefaultValue": ".types", "ClientProfileClientConfigurationOrganizationDiscoveryMethodEnum": ".types", "ClientProfileClientConfigurationOrganizationDiscoveryMethods": ".types", "ClientProfileClientConfigurationOrganizationRequireBehavior": ".types", @@ -4368,6 +4438,7 @@ "ConnectionClientIdOidc": ".types", "ConnectionClientIdPaypal": ".types", "ConnectionClientIdSalesforce": ".types", + "ConnectionClientIdSamlxaaRequestingApp": ".types", "ConnectionClientIdWindowsLive": ".types", "ConnectionClientProtocolSaml": ".types", "ConnectionClientSecret": ".types", @@ -4385,6 +4456,7 @@ "ConnectionClientSecretOidc": ".types", "ConnectionClientSecretPaypal": ".types", "ConnectionClientSecretSalesforce": ".types", + "ConnectionClientSecretSamlxaaRequestingApp": ".types", "ConnectionClientSecretWindowsLive": ".types", "ConnectionCommon": ".types", "ConnectionCommunityBaseUrlSalesforce": ".types", @@ -4577,6 +4649,8 @@ "ConnectionOptionsWordpress": ".types", "ConnectionOptionsYahoo": ".types", "ConnectionOptionsYandex": ".types", + "ConnectionOtpChannelSettings": ".types", + "ConnectionOtpSettings": ".types", "ConnectionPasskeyAuthenticationMethod": ".types", "ConnectionPasskeyChallengeUiEnum": ".types", "ConnectionPasskeyOptions": ".types", @@ -4857,6 +4931,7 @@ "ConnectionsDiscoveryUrl": ".types", "ConnectionsMetadata": ".types", "ConnectionsOidcMetadata": ".types", + "ConsentSigningKey": ".types", "ContentSecurityPolicyConfig": ".types", "ContentTooLargeError": ".errors", "CreateActionModuleResponseContent": ".types", @@ -5950,6 +6025,10 @@ "EventStreamCloudEventContextRequest": ".types", "EventStreamCloudEventContextRequestGeo": ".types", "EventStreamCloudEventContextTenant": ".types", + "EventStreamCloudEventContextTransaction": ".types", + "EventStreamCloudEventContextTransactionProtocolEnum": ".types", + "EventStreamCloudEventContextTransactionResponseModeEnum": ".types", + "EventStreamCloudEventContextTransactionResponseTypeItemEnum": ".types", "EventStreamCloudEventData": ".types", "EventStreamCloudEventErrorCodeEnum": ".types", "EventStreamCloudEventErrorDetail": ".types", @@ -7298,6 +7377,8 @@ "IntegrationRequiredParamTypeEnum": ".types", "IntegrationSemVer": ".types", "InternalServerError": ".errors", + "InternalServerErrorBody": ".types", + "InternalServerErrorBodyError": ".types", "JobFileFormatEnum": ".types", "LinkedClientConfiguration": ".types", "ListActionBindingsPaginatedResponseContent": ".types", @@ -7307,7 +7388,6 @@ "ListAculsOffsetPaginatedResponseContent": ".types", "ListAculsResponseContentItem": ".types", "ListAgentsResponseContent": ".types", - "ListAttackProtectionCaptchaPoliciesResponseContent": ".types", "ListBrandingPhoneProvidersResponseContent": ".types", "ListClientConnectionsResponseContent": ".types", "ListClientGrantOrganizationsPaginatedResponseContent": ".types", @@ -7352,6 +7432,7 @@ "ListOrganizationRoleMembersResponseContent": ".types", "ListOrganizationsPaginatedResponseContent": ".types", "ListPhoneTemplatesResponseContent": ".types", + "ListPortalsResponseContent": ".types", "ListRateLimitPoliciesPaginatedResponseContent": ".types", "ListRefreshTokensPaginatedResponseContent": ".types", "ListResourceServerOffsetPaginatedResponseContent": ".types", @@ -7372,6 +7453,7 @@ "ListUserBlocksByIdentifierResponseContent": ".types", "ListUserBlocksResponseContent": ".types", "ListUserConnectedAccountsResponseContent": ".types", + "ListUserConsentSigningKeysResponseContent": ".types", "ListUserEffectivePermissionRoleSourcesResponseContent": ".types", "ListUserEffectivePermissionsResponseContent": ".types", "ListUserEffectiveRolesResponseContent": ".types", @@ -7498,6 +7580,54 @@ "OrganizationSortFieldEnum": ".types", "OrganizationThirdPartyClientAccessEnum": ".types", "OrganizationUsageEnum": ".types", + "PageComponent": ".types", + "PageComponentAuth0Form": ".types", + "PageComponentAuth0FormConfig": ".types", + "PageComponentAuth0MediaImage": ".types", + "PageComponentAuth0MediaImageConfig": ".types", + "PageComponentAuth0MyAccountMfaManagement": ".types", + "PageComponentAuth0MyAccountMfaManagementConfig": ".types", + "PageComponentAuth0MyAccountPasskeyManagement": ".types", + "PageComponentAuth0MyAccountPasskeyManagementConfig": ".types", + "PageComponentAuth0MyOrganizationDetailsEdit": ".types", + "PageComponentAuth0MyOrganizationDetailsEditConfig": ".types", + "PageComponentAuth0MyOrganizationDomainTable": ".types", + "PageComponentAuth0MyOrganizationDomainTableConfig": ".types", + "PageComponentAuth0MyOrganizationMemberManagement": ".types", + "PageComponentAuth0MyOrganizationMemberManagementConfig": ".types", + "PageComponentAuth0StructureSection": ".types", + "PageComponentAuth0StructureSectionConfig": ".types", + "PageComponentAuth0StructureSectionVariantEnum": ".types", + "PageComponentAuth0StructureSeparator": ".types", + "PageComponentAuth0StructureSeparatorConfig": ".types", + "PageComponentAuth0StructureSeparatorVariantEnum": ".types", + "PageComponentAuth0TypographyHeading": ".types", + "PageComponentAuth0TypographyHeadingConfig": ".types", + "PageComponentAuth0TypographyRichText": ".types", + "PageComponentAuth0TypographyRichTextConfig": ".types", + "PageComponentNoChildren": ".types", + "PageComponentNoChildren_PageComponentAuth0Form": ".types", + "PageComponentNoChildren_PageComponentAuth0MediaImage": ".types", + "PageComponentNoChildren_PageComponentAuth0MyAccountMfaManagement": ".types", + "PageComponentNoChildren_PageComponentAuth0MyAccountPasskeyManagement": ".types", + "PageComponentNoChildren_PageComponentAuth0MyOrganizationDetailsEdit": ".types", + "PageComponentNoChildren_PageComponentAuth0MyOrganizationDomainTable": ".types", + "PageComponentNoChildren_PageComponentAuth0MyOrganizationMemberManagement": ".types", + "PageComponentNoChildren_PageComponentAuth0StructureSeparator": ".types", + "PageComponentNoChildren_PageComponentAuth0TypographyHeading": ".types", + "PageComponentNoChildren_PageComponentAuth0TypographyRichText": ".types", + "PageComponent_PageComponentAuth0Form": ".types", + "PageComponent_PageComponentAuth0MediaImage": ".types", + "PageComponent_PageComponentAuth0MyAccountMfaManagement": ".types", + "PageComponent_PageComponentAuth0MyAccountPasskeyManagement": ".types", + "PageComponent_PageComponentAuth0MyOrganizationDetailsEdit": ".types", + "PageComponent_PageComponentAuth0MyOrganizationDomainTable": ".types", + "PageComponent_PageComponentAuth0MyOrganizationMemberManagement": ".types", + "PageComponent_PageComponentAuth0StructureSection": ".types", + "PageComponent_PageComponentAuth0StructureSeparator": ".types", + "PageComponent_PageComponentAuth0TypographyHeading": ".types", + "PageComponent_PageComponentAuth0TypographyRichText": ".types", + "PageSlug": ".types", "PartialGroupsEnum": ".types", "PartialPhoneTemplateContent": ".types", "PasswordCharacterTypeEnum": ".types", @@ -7532,6 +7662,24 @@ "PhoneTemplateBody": ".types", "PhoneTemplateContent": ".types", "PhoneTemplateNotificationTypeEnum": ".types", + "Portal": ".types", + "PortalClientSecretPost": ".types", + "PortalClientSecretPostRequest": ".types", + "PortalClientSecretPostRequestTokenEndpointAuthMethod": ".types", + "PortalClientSecretPostTokenEndpointAuthMethod": ".types", + "PortalCustomCode": ".types", + "PortalCustomCodeNullable": ".types", + "PortalDateTime": ".types", + "PortalId": ".types", + "PortalName": ".types", + "PortalNavigation": ".types", + "PortalNavigationNullable": ".types", + "PortalPage": ".types", + "PortalPagesByType": ".types", + "PortalPagesByTypeNullable": ".types", + "PortalSlug": ".types", + "PortalSummary": ".types", + "Position": ".types", "PostClientCredentialResponseContent": ".types", "PostConnectionKeysAlgEnum": ".types", "PostConnectionKeysRequestContent": ".types", @@ -7573,6 +7721,8 @@ "ResourceServerAccessTokenClaimsMapping": ".types", "ResourceServerAccessTokenCustomClaimsMapping": ".types", "ResourceServerAccessTokenCustomClaimsMappingRule": ".types", + "ResourceServerAgentSubjectClaimsResponseEnum": ".types", + "ResourceServerAgentSubjectClaimsSchemaEnum": ".types", "ResourceServerAuthorizationPolicy": ".types", "ResourceServerConsentPolicyEnum": ".types", "ResourceServerProofOfPossession": ".types", @@ -7594,6 +7744,7 @@ "ResourceServerTokenEncryptionAlgorithmEnum": ".types", "ResourceServerTokenEncryptionFormatEnum": ".types", "ResourceServerTokenEncryptionKey": ".types", + "ResourceServerTypeEnum": ".types", "ResourceServerVerificationKeyPemCertificate": ".types", "RevokedSigningKeysResponseContent": ".types", "Role": ".types", @@ -7700,6 +7851,20 @@ "SetUserAuthenticationMethods": ".types", "SetUserAuthenticationMethodsRequestContent": ".types", "SetsCustomTextsByLanguageRequestContent": ".types", + "Sidebar": ".types", + "SidebarComponent": ".types", + "SidebarComponentAuth0ExternalLink": ".types", + "SidebarComponentAuth0ExternalLinkConfig": ".types", + "SidebarComponentAuth0ExternalLinkV2": ".types", + "SidebarComponentAuth0ExternalLinkV2Config": ".types", + "SidebarComponentAuth0InternalLink": ".types", + "SidebarComponentAuth0InternalLinkConfig": ".types", + "SidebarComponentAuth0InternalLinkV2": ".types", + "SidebarComponentAuth0InternalLinkV2Config": ".types", + "SidebarComponent_SidebarComponentAuth0ExternalLink": ".types", + "SidebarComponent_SidebarComponentAuth0ExternalLinkV2": ".types", + "SidebarComponent_SidebarComponentAuth0InternalLink": ".types", + "SidebarComponent_SidebarComponentAuth0InternalLinkV2": ".types", "SigningAlgorithmEnum": ".types", "SigningKeys": ".types", "SigningKeysDate": ".types", @@ -7986,6 +8151,7 @@ "logs": ".logs", "network_acls": ".network_acls", "organizations": ".organizations", + "portals": ".portals", "prompts": ".prompts", "rate_limit_policies": ".rate_limit_policies", "refresh_tokens": ".refresh_tokens", @@ -8104,10 +8270,6 @@ def __dir__(): "AttackProtectionCaptchaAuthChallengeResponseContent", "AttackProtectionCaptchaFriendlyCaptchaResponseContent", "AttackProtectionCaptchaHcaptchaResponseContent", - "AttackProtectionCaptchaPolicy", - "AttackProtectionCaptchaPolicyAction", - "AttackProtectionCaptchaPolicyActionInput", - "AttackProtectionCaptchaPolicyMatch", "AttackProtectionCaptchaProviderId", "AttackProtectionCaptchaRecaptchaEnterpriseResponseContent", "AttackProtectionCaptchaRecaptchaV2ResponseContent", @@ -8177,19 +8339,6 @@ def __dir__(): "BruteForceProtectionModeEnum", "BruteForceProtectionShieldsEnum", "BulkUpdateAculResponseContent", - "CaptchaActiveProviderEnum", - "CaptchaPolicyActionArkose", - "CaptchaPolicyActionArkoseInput", - "CaptchaPolicyActionAuthChallenge", - "CaptchaPolicyActionFriendlyCaptcha", - "CaptchaPolicyActionFriendlyCaptchaInput", - "CaptchaPolicyActionHcaptcha", - "CaptchaPolicyActionHcaptchaInput", - "CaptchaPolicyActionRecaptchaEnterprise", - "CaptchaPolicyActionRecaptchaEnterpriseInput", - "CaptchaPolicyActionRecaptchaV2", - "CaptchaPolicyActionRecaptchaV2Input", - "CaptchaPolicyActionSimpleCaptcha", "CertificateSubjectDnCredential", "CertificateSubjectDnCredentialTypeEnum", "ChangePasswordTicketIdentity", @@ -8286,6 +8435,7 @@ def __dir__(): "ClientOidcBackchannelLogoutInitiatorsModeEnum", "ClientOidcBackchannelLogoutSessionMetadata", "ClientOidcBackchannelLogoutSettings", + "ClientOidcSupport", "ClientOidcSupportAllowedScopesEnum", "ClientOidcSupportPatch", "ClientOidcSupportPost", @@ -8299,6 +8449,9 @@ def __dir__(): "ClientProfileApplyPolicyExternalMetadataCreatedByEnum", "ClientProfileApplyPolicyExternalMetadataTypeEnum", "ClientProfileClientConfiguration", + "ClientProfileClientConfigurationOidcSupport", + "ClientProfileClientConfigurationOidcSupportAllowedScopesEnum", + "ClientProfileClientConfigurationOidcSupportDefaultValue", "ClientProfileClientConfigurationOrganizationDiscoveryMethodEnum", "ClientProfileClientConfigurationOrganizationDiscoveryMethods", "ClientProfileClientConfigurationOrganizationRequireBehavior", @@ -8392,6 +8545,7 @@ def __dir__(): "ConnectionClientIdOidc", "ConnectionClientIdPaypal", "ConnectionClientIdSalesforce", + "ConnectionClientIdSamlxaaRequestingApp", "ConnectionClientIdWindowsLive", "ConnectionClientProtocolSaml", "ConnectionClientSecret", @@ -8409,6 +8563,7 @@ def __dir__(): "ConnectionClientSecretOidc", "ConnectionClientSecretPaypal", "ConnectionClientSecretSalesforce", + "ConnectionClientSecretSamlxaaRequestingApp", "ConnectionClientSecretWindowsLive", "ConnectionCommon", "ConnectionCommunityBaseUrlSalesforce", @@ -8601,6 +8756,8 @@ def __dir__(): "ConnectionOptionsWordpress", "ConnectionOptionsYahoo", "ConnectionOptionsYandex", + "ConnectionOtpChannelSettings", + "ConnectionOtpSettings", "ConnectionPasskeyAuthenticationMethod", "ConnectionPasskeyChallengeUiEnum", "ConnectionPasskeyOptions", @@ -8881,6 +9038,7 @@ def __dir__(): "ConnectionsDiscoveryUrl", "ConnectionsMetadata", "ConnectionsOidcMetadata", + "ConsentSigningKey", "ContentSecurityPolicyConfig", "ContentTooLargeError", "CreateActionModuleResponseContent", @@ -9974,6 +10132,10 @@ def __dir__(): "EventStreamCloudEventContextRequest", "EventStreamCloudEventContextRequestGeo", "EventStreamCloudEventContextTenant", + "EventStreamCloudEventContextTransaction", + "EventStreamCloudEventContextTransactionProtocolEnum", + "EventStreamCloudEventContextTransactionResponseModeEnum", + "EventStreamCloudEventContextTransactionResponseTypeItemEnum", "EventStreamCloudEventData", "EventStreamCloudEventErrorCodeEnum", "EventStreamCloudEventErrorDetail", @@ -11322,6 +11484,8 @@ def __dir__(): "IntegrationRequiredParamTypeEnum", "IntegrationSemVer", "InternalServerError", + "InternalServerErrorBody", + "InternalServerErrorBodyError", "JobFileFormatEnum", "LinkedClientConfiguration", "ListActionBindingsPaginatedResponseContent", @@ -11331,7 +11495,6 @@ def __dir__(): "ListAculsOffsetPaginatedResponseContent", "ListAculsResponseContentItem", "ListAgentsResponseContent", - "ListAttackProtectionCaptchaPoliciesResponseContent", "ListBrandingPhoneProvidersResponseContent", "ListClientConnectionsResponseContent", "ListClientGrantOrganizationsPaginatedResponseContent", @@ -11376,6 +11539,7 @@ def __dir__(): "ListOrganizationRoleMembersResponseContent", "ListOrganizationsPaginatedResponseContent", "ListPhoneTemplatesResponseContent", + "ListPortalsResponseContent", "ListRateLimitPoliciesPaginatedResponseContent", "ListRefreshTokensPaginatedResponseContent", "ListResourceServerOffsetPaginatedResponseContent", @@ -11396,6 +11560,7 @@ def __dir__(): "ListUserBlocksByIdentifierResponseContent", "ListUserBlocksResponseContent", "ListUserConnectedAccountsResponseContent", + "ListUserConsentSigningKeysResponseContent", "ListUserEffectivePermissionRoleSourcesResponseContent", "ListUserEffectivePermissionsResponseContent", "ListUserEffectiveRolesResponseContent", @@ -11522,6 +11687,54 @@ def __dir__(): "OrganizationSortFieldEnum", "OrganizationThirdPartyClientAccessEnum", "OrganizationUsageEnum", + "PageComponent", + "PageComponentAuth0Form", + "PageComponentAuth0FormConfig", + "PageComponentAuth0MediaImage", + "PageComponentAuth0MediaImageConfig", + "PageComponentAuth0MyAccountMfaManagement", + "PageComponentAuth0MyAccountMfaManagementConfig", + "PageComponentAuth0MyAccountPasskeyManagement", + "PageComponentAuth0MyAccountPasskeyManagementConfig", + "PageComponentAuth0MyOrganizationDetailsEdit", + "PageComponentAuth0MyOrganizationDetailsEditConfig", + "PageComponentAuth0MyOrganizationDomainTable", + "PageComponentAuth0MyOrganizationDomainTableConfig", + "PageComponentAuth0MyOrganizationMemberManagement", + "PageComponentAuth0MyOrganizationMemberManagementConfig", + "PageComponentAuth0StructureSection", + "PageComponentAuth0StructureSectionConfig", + "PageComponentAuth0StructureSectionVariantEnum", + "PageComponentAuth0StructureSeparator", + "PageComponentAuth0StructureSeparatorConfig", + "PageComponentAuth0StructureSeparatorVariantEnum", + "PageComponentAuth0TypographyHeading", + "PageComponentAuth0TypographyHeadingConfig", + "PageComponentAuth0TypographyRichText", + "PageComponentAuth0TypographyRichTextConfig", + "PageComponentNoChildren", + "PageComponentNoChildren_PageComponentAuth0Form", + "PageComponentNoChildren_PageComponentAuth0MediaImage", + "PageComponentNoChildren_PageComponentAuth0MyAccountMfaManagement", + "PageComponentNoChildren_PageComponentAuth0MyAccountPasskeyManagement", + "PageComponentNoChildren_PageComponentAuth0MyOrganizationDetailsEdit", + "PageComponentNoChildren_PageComponentAuth0MyOrganizationDomainTable", + "PageComponentNoChildren_PageComponentAuth0MyOrganizationMemberManagement", + "PageComponentNoChildren_PageComponentAuth0StructureSeparator", + "PageComponentNoChildren_PageComponentAuth0TypographyHeading", + "PageComponentNoChildren_PageComponentAuth0TypographyRichText", + "PageComponent_PageComponentAuth0Form", + "PageComponent_PageComponentAuth0MediaImage", + "PageComponent_PageComponentAuth0MyAccountMfaManagement", + "PageComponent_PageComponentAuth0MyAccountPasskeyManagement", + "PageComponent_PageComponentAuth0MyOrganizationDetailsEdit", + "PageComponent_PageComponentAuth0MyOrganizationDomainTable", + "PageComponent_PageComponentAuth0MyOrganizationMemberManagement", + "PageComponent_PageComponentAuth0StructureSection", + "PageComponent_PageComponentAuth0StructureSeparator", + "PageComponent_PageComponentAuth0TypographyHeading", + "PageComponent_PageComponentAuth0TypographyRichText", + "PageSlug", "PartialGroupsEnum", "PartialPhoneTemplateContent", "PasswordCharacterTypeEnum", @@ -11556,6 +11769,24 @@ def __dir__(): "PhoneTemplateBody", "PhoneTemplateContent", "PhoneTemplateNotificationTypeEnum", + "Portal", + "PortalClientSecretPost", + "PortalClientSecretPostRequest", + "PortalClientSecretPostRequestTokenEndpointAuthMethod", + "PortalClientSecretPostTokenEndpointAuthMethod", + "PortalCustomCode", + "PortalCustomCodeNullable", + "PortalDateTime", + "PortalId", + "PortalName", + "PortalNavigation", + "PortalNavigationNullable", + "PortalPage", + "PortalPagesByType", + "PortalPagesByTypeNullable", + "PortalSlug", + "PortalSummary", + "Position", "PostClientCredentialResponseContent", "PostConnectionKeysAlgEnum", "PostConnectionKeysRequestContent", @@ -11597,6 +11828,8 @@ def __dir__(): "ResourceServerAccessTokenClaimsMapping", "ResourceServerAccessTokenCustomClaimsMapping", "ResourceServerAccessTokenCustomClaimsMappingRule", + "ResourceServerAgentSubjectClaimsResponseEnum", + "ResourceServerAgentSubjectClaimsSchemaEnum", "ResourceServerAuthorizationPolicy", "ResourceServerConsentPolicyEnum", "ResourceServerProofOfPossession", @@ -11618,6 +11851,7 @@ def __dir__(): "ResourceServerTokenEncryptionAlgorithmEnum", "ResourceServerTokenEncryptionFormatEnum", "ResourceServerTokenEncryptionKey", + "ResourceServerTypeEnum", "ResourceServerVerificationKeyPemCertificate", "RevokedSigningKeysResponseContent", "Role", @@ -11724,6 +11958,20 @@ def __dir__(): "SetUserAuthenticationMethods", "SetUserAuthenticationMethodsRequestContent", "SetsCustomTextsByLanguageRequestContent", + "Sidebar", + "SidebarComponent", + "SidebarComponentAuth0ExternalLink", + "SidebarComponentAuth0ExternalLinkConfig", + "SidebarComponentAuth0ExternalLinkV2", + "SidebarComponentAuth0ExternalLinkV2Config", + "SidebarComponentAuth0InternalLink", + "SidebarComponentAuth0InternalLinkConfig", + "SidebarComponentAuth0InternalLinkV2", + "SidebarComponentAuth0InternalLinkV2Config", + "SidebarComponent_SidebarComponentAuth0ExternalLink", + "SidebarComponent_SidebarComponentAuth0ExternalLinkV2", + "SidebarComponent_SidebarComponentAuth0InternalLink", + "SidebarComponent_SidebarComponentAuth0InternalLinkV2", "SigningAlgorithmEnum", "SigningKeys", "SigningKeysDate", @@ -12010,6 +12258,7 @@ def __dir__(): "logs", "network_acls", "organizations", + "portals", "prompts", "rate_limit_policies", "refresh_tokens", diff --git a/src/auth0/management/attack_protection/__init__.py b/src/auth0/management/attack_protection/__init__.py index c87777b0..0a209309 100644 --- a/src/auth0/management/attack_protection/__init__.py +++ b/src/auth0/management/attack_protection/__init__.py @@ -11,7 +11,6 @@ breached_password_detection, brute_force_protection, captcha, - captcha_policies, phone_provider_protection, suspicious_ip_throttling, ) @@ -20,7 +19,6 @@ "breached_password_detection": ".breached_password_detection", "brute_force_protection": ".brute_force_protection", "captcha": ".captcha", - "captcha_policies": ".captcha_policies", "phone_provider_protection": ".phone_provider_protection", "suspicious_ip_throttling": ".suspicious_ip_throttling", } @@ -52,7 +50,6 @@ def __dir__(): "breached_password_detection", "brute_force_protection", "captcha", - "captcha_policies", "phone_provider_protection", "suspicious_ip_throttling", ] diff --git a/src/auth0/management/attack_protection/brute_force_protection/client.py b/src/auth0/management/attack_protection/brute_force_protection/client.py index 9542acf7..a23617d3 100644 --- a/src/auth0/management/attack_protection/brute_force_protection/client.py +++ b/src/auth0/management/attack_protection/brute_force_protection/client.py @@ -63,8 +63,8 @@ def update( shields: typing.Optional[typing.Sequence[BruteForceProtectionShieldsEnum]] = OMIT, allowlist: typing.Optional[typing.Sequence[str]] = OMIT, mode: typing.Optional[BruteForceProtectionModeEnum] = OMIT, - max_attempts: typing.Optional[int] = OMIT, form_submission_mode: typing.Optional[BruteForceProtectionFormSubmissionModeEnum] = OMIT, + max_attempts: typing.Optional[int] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> UpdateBruteForceSettingsResponseContent: """ @@ -84,11 +84,11 @@ def update( mode : typing.Optional[BruteForceProtectionModeEnum] + form_submission_mode : typing.Optional[BruteForceProtectionFormSubmissionModeEnum] + max_attempts : typing.Optional[int] Maximum number of unsuccessful attempts. - form_submission_mode : typing.Optional[BruteForceProtectionFormSubmissionModeEnum] - request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -111,8 +111,8 @@ def update( shields=shields, allowlist=allowlist, mode=mode, - max_attempts=max_attempts, form_submission_mode=form_submission_mode, + max_attempts=max_attempts, request_options=request_options, ) return _response.data @@ -176,8 +176,8 @@ async def update( shields: typing.Optional[typing.Sequence[BruteForceProtectionShieldsEnum]] = OMIT, allowlist: typing.Optional[typing.Sequence[str]] = OMIT, mode: typing.Optional[BruteForceProtectionModeEnum] = OMIT, - max_attempts: typing.Optional[int] = OMIT, form_submission_mode: typing.Optional[BruteForceProtectionFormSubmissionModeEnum] = OMIT, + max_attempts: typing.Optional[int] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> UpdateBruteForceSettingsResponseContent: """ @@ -197,11 +197,11 @@ async def update( mode : typing.Optional[BruteForceProtectionModeEnum] + form_submission_mode : typing.Optional[BruteForceProtectionFormSubmissionModeEnum] + max_attempts : typing.Optional[int] Maximum number of unsuccessful attempts. - form_submission_mode : typing.Optional[BruteForceProtectionFormSubmissionModeEnum] - request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -232,8 +232,8 @@ async def main() -> None: shields=shields, allowlist=allowlist, mode=mode, - max_attempts=max_attempts, form_submission_mode=form_submission_mode, + max_attempts=max_attempts, request_options=request_options, ) return _response.data diff --git a/src/auth0/management/attack_protection/brute_force_protection/raw_client.py b/src/auth0/management/attack_protection/brute_force_protection/raw_client.py index c974d5ba..a3c074b4 100644 --- a/src/auth0/management/attack_protection/brute_force_protection/raw_client.py +++ b/src/auth0/management/attack_protection/brute_force_protection/raw_client.py @@ -108,8 +108,8 @@ def update( shields: typing.Optional[typing.Sequence[BruteForceProtectionShieldsEnum]] = OMIT, allowlist: typing.Optional[typing.Sequence[str]] = OMIT, mode: typing.Optional[BruteForceProtectionModeEnum] = OMIT, - max_attempts: typing.Optional[int] = OMIT, form_submission_mode: typing.Optional[BruteForceProtectionFormSubmissionModeEnum] = OMIT, + max_attempts: typing.Optional[int] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[UpdateBruteForceSettingsResponseContent]: """ @@ -129,11 +129,11 @@ def update( mode : typing.Optional[BruteForceProtectionModeEnum] + form_submission_mode : typing.Optional[BruteForceProtectionFormSubmissionModeEnum] + max_attempts : typing.Optional[int] Maximum number of unsuccessful attempts. - form_submission_mode : typing.Optional[BruteForceProtectionFormSubmissionModeEnum] - request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -150,8 +150,8 @@ def update( "shields": shields, "allowlist": allowlist, "mode": mode, - "max_attempts": max_attempts, "form_submission_mode": form_submission_mode, + "max_attempts": max_attempts, }, headers={ "content-type": "application/json", @@ -307,8 +307,8 @@ async def update( shields: typing.Optional[typing.Sequence[BruteForceProtectionShieldsEnum]] = OMIT, allowlist: typing.Optional[typing.Sequence[str]] = OMIT, mode: typing.Optional[BruteForceProtectionModeEnum] = OMIT, - max_attempts: typing.Optional[int] = OMIT, form_submission_mode: typing.Optional[BruteForceProtectionFormSubmissionModeEnum] = OMIT, + max_attempts: typing.Optional[int] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[UpdateBruteForceSettingsResponseContent]: """ @@ -328,11 +328,11 @@ async def update( mode : typing.Optional[BruteForceProtectionModeEnum] + form_submission_mode : typing.Optional[BruteForceProtectionFormSubmissionModeEnum] + max_attempts : typing.Optional[int] Maximum number of unsuccessful attempts. - form_submission_mode : typing.Optional[BruteForceProtectionFormSubmissionModeEnum] - request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -349,8 +349,8 @@ async def update( "shields": shields, "allowlist": allowlist, "mode": mode, - "max_attempts": max_attempts, "form_submission_mode": form_submission_mode, + "max_attempts": max_attempts, }, headers={ "content-type": "application/json", diff --git a/src/auth0/management/attack_protection/captcha_policies/client.py b/src/auth0/management/attack_protection/captcha_policies/client.py deleted file mode 100644 index 3b37e7fa..00000000 --- a/src/auth0/management/attack_protection/captcha_policies/client.py +++ /dev/null @@ -1,520 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from ...core.request_options import RequestOptions -from ...types.attack_protection_captcha_policy import AttackProtectionCaptchaPolicy -from ...types.attack_protection_captcha_policy_action_input import AttackProtectionCaptchaPolicyActionInput -from ...types.attack_protection_captcha_policy_match import AttackProtectionCaptchaPolicyMatch -from ...types.list_attack_protection_captcha_policies_response_content import ( - ListAttackProtectionCaptchaPoliciesResponseContent, -) -from .raw_client import AsyncRawCaptchaPoliciesClient, RawCaptchaPoliciesClient - -# this is used as the default value for optional parameters -OMIT = typing.cast(typing.Any, ...) - - -class CaptchaPoliciesClient: - def __init__(self, *, client_wrapper: SyncClientWrapper): - self._raw_client = RawCaptchaPoliciesClient(client_wrapper=client_wrapper) - - @property - def with_raw_response(self) -> RawCaptchaPoliciesClient: - """ - Retrieves a raw implementation of this client that returns raw responses. - - Returns - ------- - RawCaptchaPoliciesClient - """ - return self._raw_client - - def list( - self, *, request_options: typing.Optional[RequestOptions] = None - ) -> ListAttackProtectionCaptchaPoliciesResponseContent: - """ - Retrieve all CAPTCHA attack protection policies for the tenant, sorted by priority ascending. - - Parameters - ---------- - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - ListAttackProtectionCaptchaPoliciesResponseContent - The tenant's CAPTCHA attack protection policies were successfully retrieved. - - Examples - -------- - from auth0 import Auth0 - - client = Auth0( - token="YOUR_TOKEN", - ) - client.attack_protection.captcha_policies.list() - """ - _response = self._raw_client.list(request_options=request_options) - return _response.data - - def create( - self, - *, - name: str, - priority: int, - match: AttackProtectionCaptchaPolicyMatch, - action: AttackProtectionCaptchaPolicyActionInput, - description: typing.Optional[str] = OMIT, - request_options: typing.Optional[RequestOptions] = None, - ) -> AttackProtectionCaptchaPolicy: - """ - Create a new CAPTCHA attack protection policy for the tenant. The maximum number of policies per tenant is determined by the tenant's subscription. - - Parameters - ---------- - name : str - Human-readable policy name. - - priority : int - Conflict resolution order. Lower number takes higher precedence. Must be unique per tenant. - - match : AttackProtectionCaptchaPolicyMatch - - action : AttackProtectionCaptchaPolicyActionInput - - description : typing.Optional[str] - Description of the attack protection policy. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - AttackProtectionCaptchaPolicy - The CAPTCHA attack protection policy was successfully created. - - Examples - -------- - from auth0 import ( - AttackProtectionCaptchaPolicyActionInput, - AttackProtectionCaptchaPolicyMatch, - Auth0, - ) - - client = Auth0( - token="YOUR_TOKEN", - ) - client.attack_protection.captcha_policies.create( - name="name", - priority=1, - match=AttackProtectionCaptchaPolicyMatch(), - action=AttackProtectionCaptchaPolicyActionInput(), - ) - """ - _response = self._raw_client.create( - name=name, - priority=priority, - match=match, - action=action, - description=description, - request_options=request_options, - ) - return _response.data - - def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> AttackProtectionCaptchaPolicy: - """ - Retrieve a single CAPTCHA attack protection policy for the tenant by ID. - - Parameters - ---------- - id : str - ID of the CAPTCHA attack protection policy. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - AttackProtectionCaptchaPolicy - The CAPTCHA attack protection policy was successfully retrieved. - - Examples - -------- - from auth0 import Auth0 - - client = Auth0( - token="YOUR_TOKEN", - ) - client.attack_protection.captcha_policies.get( - id="id", - ) - """ - _response = self._raw_client.get(id, request_options=request_options) - return _response.data - - def delete(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> None: - """ - Delete a CAPTCHA attack protection policy for the tenant. - - Parameters - ---------- - id : str - ID of the CAPTCHA attack protection policy. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - None - - Examples - -------- - from auth0 import Auth0 - - client = Auth0( - token="YOUR_TOKEN", - ) - client.attack_protection.captcha_policies.delete( - id="id", - ) - """ - _response = self._raw_client.delete(id, request_options=request_options) - return _response.data - - def update( - self, - id: str, - *, - name: typing.Optional[str] = OMIT, - description: typing.Optional[str] = OMIT, - priority: typing.Optional[int] = OMIT, - match: typing.Optional[AttackProtectionCaptchaPolicyMatch] = OMIT, - action: typing.Optional[AttackProtectionCaptchaPolicyActionInput] = OMIT, - request_options: typing.Optional[RequestOptions] = None, - ) -> AttackProtectionCaptchaPolicy: - """ - Partially update a CAPTCHA attack protection policy. Only the provided fields are modified. A provided match or action replaces the stored value in full rather than merging with it; within action, a provider secret or API key that is omitted from a provided provider block keeps its stored value. - - Parameters - ---------- - id : str - ID of the CAPTCHA attack protection policy. - - name : typing.Optional[str] - Human-readable policy name. - - description : typing.Optional[str] - Description of the policy's purpose. - - priority : typing.Optional[int] - Conflict resolution order. Lower number takes higher precedence. Must be unique per tenant. - - match : typing.Optional[AttackProtectionCaptchaPolicyMatch] - - action : typing.Optional[AttackProtectionCaptchaPolicyActionInput] - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - AttackProtectionCaptchaPolicy - The CAPTCHA attack protection policy was successfully updated. - - Examples - -------- - from auth0 import Auth0 - - client = Auth0( - token="YOUR_TOKEN", - ) - client.attack_protection.captcha_policies.update( - id="id", - ) - """ - _response = self._raw_client.update( - id, - name=name, - description=description, - priority=priority, - match=match, - action=action, - request_options=request_options, - ) - return _response.data - - -class AsyncCaptchaPoliciesClient: - def __init__(self, *, client_wrapper: AsyncClientWrapper): - self._raw_client = AsyncRawCaptchaPoliciesClient(client_wrapper=client_wrapper) - - @property - def with_raw_response(self) -> AsyncRawCaptchaPoliciesClient: - """ - Retrieves a raw implementation of this client that returns raw responses. - - Returns - ------- - AsyncRawCaptchaPoliciesClient - """ - return self._raw_client - - async def list( - self, *, request_options: typing.Optional[RequestOptions] = None - ) -> ListAttackProtectionCaptchaPoliciesResponseContent: - """ - Retrieve all CAPTCHA attack protection policies for the tenant, sorted by priority ascending. - - Parameters - ---------- - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - ListAttackProtectionCaptchaPoliciesResponseContent - The tenant's CAPTCHA attack protection policies were successfully retrieved. - - Examples - -------- - import asyncio - - from auth0 import AsyncAuth0 - - client = AsyncAuth0( - token="YOUR_TOKEN", - ) - - - async def main() -> None: - await client.attack_protection.captcha_policies.list() - - - asyncio.run(main()) - """ - _response = await self._raw_client.list(request_options=request_options) - return _response.data - - async def create( - self, - *, - name: str, - priority: int, - match: AttackProtectionCaptchaPolicyMatch, - action: AttackProtectionCaptchaPolicyActionInput, - description: typing.Optional[str] = OMIT, - request_options: typing.Optional[RequestOptions] = None, - ) -> AttackProtectionCaptchaPolicy: - """ - Create a new CAPTCHA attack protection policy for the tenant. The maximum number of policies per tenant is determined by the tenant's subscription. - - Parameters - ---------- - name : str - Human-readable policy name. - - priority : int - Conflict resolution order. Lower number takes higher precedence. Must be unique per tenant. - - match : AttackProtectionCaptchaPolicyMatch - - action : AttackProtectionCaptchaPolicyActionInput - - description : typing.Optional[str] - Description of the attack protection policy. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - AttackProtectionCaptchaPolicy - The CAPTCHA attack protection policy was successfully created. - - Examples - -------- - import asyncio - - from auth0 import ( - AsyncAuth0, - AttackProtectionCaptchaPolicyActionInput, - AttackProtectionCaptchaPolicyMatch, - ) - - client = AsyncAuth0( - token="YOUR_TOKEN", - ) - - - async def main() -> None: - await client.attack_protection.captcha_policies.create( - name="name", - priority=1, - match=AttackProtectionCaptchaPolicyMatch(), - action=AttackProtectionCaptchaPolicyActionInput(), - ) - - - asyncio.run(main()) - """ - _response = await self._raw_client.create( - name=name, - priority=priority, - match=match, - action=action, - description=description, - request_options=request_options, - ) - return _response.data - - async def get( - self, id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> AttackProtectionCaptchaPolicy: - """ - Retrieve a single CAPTCHA attack protection policy for the tenant by ID. - - Parameters - ---------- - id : str - ID of the CAPTCHA attack protection policy. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - AttackProtectionCaptchaPolicy - The CAPTCHA attack protection policy was successfully retrieved. - - Examples - -------- - import asyncio - - from auth0 import AsyncAuth0 - - client = AsyncAuth0( - token="YOUR_TOKEN", - ) - - - async def main() -> None: - await client.attack_protection.captcha_policies.get( - id="id", - ) - - - asyncio.run(main()) - """ - _response = await self._raw_client.get(id, request_options=request_options) - return _response.data - - async def delete(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> None: - """ - Delete a CAPTCHA attack protection policy for the tenant. - - Parameters - ---------- - id : str - ID of the CAPTCHA attack protection policy. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - None - - Examples - -------- - import asyncio - - from auth0 import AsyncAuth0 - - client = AsyncAuth0( - token="YOUR_TOKEN", - ) - - - async def main() -> None: - await client.attack_protection.captcha_policies.delete( - id="id", - ) - - - asyncio.run(main()) - """ - _response = await self._raw_client.delete(id, request_options=request_options) - return _response.data - - async def update( - self, - id: str, - *, - name: typing.Optional[str] = OMIT, - description: typing.Optional[str] = OMIT, - priority: typing.Optional[int] = OMIT, - match: typing.Optional[AttackProtectionCaptchaPolicyMatch] = OMIT, - action: typing.Optional[AttackProtectionCaptchaPolicyActionInput] = OMIT, - request_options: typing.Optional[RequestOptions] = None, - ) -> AttackProtectionCaptchaPolicy: - """ - Partially update a CAPTCHA attack protection policy. Only the provided fields are modified. A provided match or action replaces the stored value in full rather than merging with it; within action, a provider secret or API key that is omitted from a provided provider block keeps its stored value. - - Parameters - ---------- - id : str - ID of the CAPTCHA attack protection policy. - - name : typing.Optional[str] - Human-readable policy name. - - description : typing.Optional[str] - Description of the policy's purpose. - - priority : typing.Optional[int] - Conflict resolution order. Lower number takes higher precedence. Must be unique per tenant. - - match : typing.Optional[AttackProtectionCaptchaPolicyMatch] - - action : typing.Optional[AttackProtectionCaptchaPolicyActionInput] - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - AttackProtectionCaptchaPolicy - The CAPTCHA attack protection policy was successfully updated. - - Examples - -------- - import asyncio - - from auth0 import AsyncAuth0 - - client = AsyncAuth0( - token="YOUR_TOKEN", - ) - - - async def main() -> None: - await client.attack_protection.captcha_policies.update( - id="id", - ) - - - asyncio.run(main()) - """ - _response = await self._raw_client.update( - id, - name=name, - description=description, - priority=priority, - match=match, - action=action, - request_options=request_options, - ) - return _response.data diff --git a/src/auth0/management/attack_protection/client.py b/src/auth0/management/attack_protection/client.py index 7b8d2d96..a2f3cc95 100644 --- a/src/auth0/management/attack_protection/client.py +++ b/src/auth0/management/attack_protection/client.py @@ -15,7 +15,6 @@ ) from .brute_force_protection.client import AsyncBruteForceProtectionClient, BruteForceProtectionClient from .captcha.client import AsyncCaptchaClient, CaptchaClient - from .captcha_policies.client import AsyncCaptchaPoliciesClient, CaptchaPoliciesClient from .phone_provider_protection.client import AsyncPhoneProviderProtectionClient, PhoneProviderProtectionClient from .suspicious_ip_throttling.client import AsyncSuspiciousIpThrottlingClient, SuspiciousIpThrottlingClient @@ -28,7 +27,6 @@ def __init__(self, *, client_wrapper: SyncClientWrapper): self._breached_password_detection: typing.Optional[BreachedPasswordDetectionClient] = None self._brute_force_protection: typing.Optional[BruteForceProtectionClient] = None self._captcha: typing.Optional[CaptchaClient] = None - self._captcha_policies: typing.Optional[CaptchaPoliciesClient] = None self._phone_provider_protection: typing.Optional[PhoneProviderProtectionClient] = None self._suspicious_ip_throttling: typing.Optional[SuspiciousIpThrottlingClient] = None @@ -75,14 +73,6 @@ def captcha(self): self._captcha = CaptchaClient(client_wrapper=self._client_wrapper) return self._captcha - @property - def captcha_policies(self): - if self._captcha_policies is None: - from .captcha_policies.client import CaptchaPoliciesClient # noqa: E402 - - self._captcha_policies = CaptchaPoliciesClient(client_wrapper=self._client_wrapper) - return self._captcha_policies - @property def phone_provider_protection(self): if self._phone_provider_protection is None: @@ -108,7 +98,6 @@ def __init__(self, *, client_wrapper: AsyncClientWrapper): self._breached_password_detection: typing.Optional[AsyncBreachedPasswordDetectionClient] = None self._brute_force_protection: typing.Optional[AsyncBruteForceProtectionClient] = None self._captcha: typing.Optional[AsyncCaptchaClient] = None - self._captcha_policies: typing.Optional[AsyncCaptchaPoliciesClient] = None self._phone_provider_protection: typing.Optional[AsyncPhoneProviderProtectionClient] = None self._suspicious_ip_throttling: typing.Optional[AsyncSuspiciousIpThrottlingClient] = None @@ -157,14 +146,6 @@ def captcha(self): self._captcha = AsyncCaptchaClient(client_wrapper=self._client_wrapper) return self._captcha - @property - def captcha_policies(self): - if self._captcha_policies is None: - from .captcha_policies.client import AsyncCaptchaPoliciesClient # noqa: E402 - - self._captcha_policies = AsyncCaptchaPoliciesClient(client_wrapper=self._client_wrapper) - return self._captcha_policies - @property def phone_provider_protection(self): if self._phone_provider_protection is None: diff --git a/src/auth0/management/client.py b/src/auth0/management/client.py index 99a08a77..f8ac86aa 100644 --- a/src/auth0/management/client.py +++ b/src/auth0/management/client.py @@ -38,6 +38,7 @@ from .logs.client import AsyncLogsClient, LogsClient from .network_acls.client import AsyncNetworkAclsClient, NetworkAclsClient from .organizations.client import AsyncOrganizationsClient, OrganizationsClient + from .portals.client import AsyncPortalsClient, PortalsClient from .prompts.client import AsyncPromptsClient, PromptsClient from .rate_limit_policies.client import AsyncRateLimitPoliciesClient, RateLimitPoliciesClient from .refresh_tokens.client import AsyncRefreshTokensClient, RefreshTokensClient @@ -180,6 +181,7 @@ def __init__( self._logs: typing.Optional[LogsClient] = None self._network_acls: typing.Optional[NetworkAclsClient] = None self._organizations: typing.Optional[OrganizationsClient] = None + self._portals: typing.Optional[PortalsClient] = None self._prompts: typing.Optional[PromptsClient] = None self._rate_limit_policies: typing.Optional[RateLimitPoliciesClient] = None self._refresh_tokens: typing.Optional[RefreshTokensClient] = None @@ -397,6 +399,14 @@ def organizations(self): self._organizations = OrganizationsClient(client_wrapper=self._client_wrapper) return self._organizations + @property + def portals(self): + if self._portals is None: + from .portals.client import PortalsClient # noqa: E402 + + self._portals = PortalsClient(client_wrapper=self._client_wrapper) + return self._portals + @property def prompts(self): if self._prompts is None: @@ -731,6 +741,7 @@ def __init__( self._logs: typing.Optional[AsyncLogsClient] = None self._network_acls: typing.Optional[AsyncNetworkAclsClient] = None self._organizations: typing.Optional[AsyncOrganizationsClient] = None + self._portals: typing.Optional[AsyncPortalsClient] = None self._prompts: typing.Optional[AsyncPromptsClient] = None self._rate_limit_policies: typing.Optional[AsyncRateLimitPoliciesClient] = None self._refresh_tokens: typing.Optional[AsyncRefreshTokensClient] = None @@ -948,6 +959,14 @@ def organizations(self): self._organizations = AsyncOrganizationsClient(client_wrapper=self._client_wrapper) return self._organizations + @property + def portals(self): + if self._portals is None: + from .portals.client import AsyncPortalsClient # noqa: E402 + + self._portals = AsyncPortalsClient(client_wrapper=self._client_wrapper) + return self._portals + @property def prompts(self): if self._prompts is None: diff --git a/src/auth0/management/clients/client.py b/src/auth0/management/clients/client.py index 0f2e60f8..844c93e9 100644 --- a/src/auth0/management/clients/client.py +++ b/src/auth0/management/clients/client.py @@ -114,6 +114,7 @@ def list( is_first_party: typing.Optional[bool] = None, app_type: typing.Optional[str] = None, external_client_id: typing.Optional[str] = None, + agent_id: typing.Optional[str] = None, q: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None, ) -> SyncPager[Client, ListClientsOffsetPaginatedResponseContent]: @@ -173,6 +174,9 @@ def list( external_client_id : typing.Optional[str] Optional filter by the Client ID Metadata Document URI for CIMD-registered clients. + agent_id : typing.Optional[str] + Optional filter by the agent associated with the client.
Additional Restrictions:
  • Cannot be used in combination with other filters
  • Only fields, include_fields, page, per_page, and include_totals are supported alongside it
  • Checkpoint pagination (from, take) is not supported
+ q : typing.Optional[str] Advanced Query in Lucene syntax.
Permitted Queries:
  • client_grant.organization_id:{organization_id}
  • client_grant.allow_any_organization:true
Additional Restrictions:
  • Cannot be used in combination with other filters
  • Requires use of the from and take paging parameters (checkpoint paginatinon)
  • Reduced rate limits apply. See Rate Limit Configurations
Note: Recent updates may not be immediately reflected in query results @@ -201,6 +205,7 @@ def list( is_first_party=True, app_type="app_type", external_client_id="external_client_id", + agent_id="agent_id", q="q", ) for item in response: @@ -219,6 +224,7 @@ def list( is_first_party=is_first_party, app_type=app_type, external_client_id=external_client_id, + agent_id=agent_id, q=q, request_options=request_options, ) @@ -289,6 +295,7 @@ def create( async_approval_notification_channels: typing.Optional[ ClientAsyncApprovalNotificationsChannelsApiPostConfiguration ] = OMIT, + agent_id: typing.Optional[str] = OMIT, oidc_support: typing.Optional[ClientOidcSupportPost] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> CreateClientResponseContent: @@ -459,6 +466,9 @@ def create( async_approval_notification_channels : typing.Optional[ClientAsyncApprovalNotificationsChannelsApiPostConfiguration] + agent_id : typing.Optional[str] + ID of the agent to associate with this client. + oidc_support : typing.Optional[ClientOidcSupportPost] request_options : typing.Optional[RequestOptions] @@ -540,6 +550,7 @@ def create( b_2_b_integration_configuration=b_2_b_integration_configuration, my_organization_configuration=my_organization_configuration, async_approval_notification_channels=async_approval_notification_channels, + agent_id=agent_id, oidc_support=oidc_support, request_options=request_options, ) @@ -887,6 +898,7 @@ def update( ] = OMIT, third_party_security_mode: typing.Optional[ClientThirdPartySecurityModeEnum] = OMIT, redirection_policy: typing.Optional[ClientRedirectionPolicyEnum] = OMIT, + agent_id: typing.Optional[str] = OMIT, oidc_support: typing.Optional[ClientOidcSupportPatch] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> UpdateClientResponseContent: @@ -1057,6 +1069,9 @@ def update( redirection_policy : typing.Optional[ClientRedirectionPolicyEnum] + agent_id : typing.Optional[str] + ID of the agent to associate with this client, or null to remove the association. + oidc_support : typing.Optional[ClientOidcSupportPatch] request_options : typing.Optional[RequestOptions] @@ -1139,6 +1154,7 @@ def update( async_approval_notification_channels=async_approval_notification_channels, third_party_security_mode=third_party_security_mode, redirection_policy=redirection_policy, + agent_id=agent_id, oidc_support=oidc_support, request_options=request_options, ) @@ -1228,6 +1244,7 @@ async def list( is_first_party: typing.Optional[bool] = None, app_type: typing.Optional[str] = None, external_client_id: typing.Optional[str] = None, + agent_id: typing.Optional[str] = None, q: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncPager[Client, ListClientsOffsetPaginatedResponseContent]: @@ -1287,6 +1304,9 @@ async def list( external_client_id : typing.Optional[str] Optional filter by the Client ID Metadata Document URI for CIMD-registered clients. + agent_id : typing.Optional[str] + Optional filter by the agent associated with the client.
Additional Restrictions:
  • Cannot be used in combination with other filters
  • Only fields, include_fields, page, per_page, and include_totals are supported alongside it
  • Checkpoint pagination (from, take) is not supported
+ q : typing.Optional[str] Advanced Query in Lucene syntax.
Permitted Queries:
  • client_grant.organization_id:{organization_id}
  • client_grant.allow_any_organization:true
Additional Restrictions:
  • Cannot be used in combination with other filters
  • Requires use of the from and take paging parameters (checkpoint paginatinon)
  • Reduced rate limits apply. See Rate Limit Configurations
Note: Recent updates may not be immediately reflected in query results @@ -1320,6 +1340,7 @@ async def main() -> None: is_first_party=True, app_type="app_type", external_client_id="external_client_id", + agent_id="agent_id", q="q", ) async for item in response: @@ -1342,6 +1363,7 @@ async def main() -> None: is_first_party=is_first_party, app_type=app_type, external_client_id=external_client_id, + agent_id=agent_id, q=q, request_options=request_options, ) @@ -1412,6 +1434,7 @@ async def create( async_approval_notification_channels: typing.Optional[ ClientAsyncApprovalNotificationsChannelsApiPostConfiguration ] = OMIT, + agent_id: typing.Optional[str] = OMIT, oidc_support: typing.Optional[ClientOidcSupportPost] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> CreateClientResponseContent: @@ -1582,6 +1605,9 @@ async def create( async_approval_notification_channels : typing.Optional[ClientAsyncApprovalNotificationsChannelsApiPostConfiguration] + agent_id : typing.Optional[str] + ID of the agent to associate with this client. + oidc_support : typing.Optional[ClientOidcSupportPost] request_options : typing.Optional[RequestOptions] @@ -1671,6 +1697,7 @@ async def main() -> None: b_2_b_integration_configuration=b_2_b_integration_configuration, my_organization_configuration=my_organization_configuration, async_approval_notification_channels=async_approval_notification_channels, + agent_id=agent_id, oidc_support=oidc_support, request_options=request_options, ) @@ -2059,6 +2086,7 @@ async def update( ] = OMIT, third_party_security_mode: typing.Optional[ClientThirdPartySecurityModeEnum] = OMIT, redirection_policy: typing.Optional[ClientRedirectionPolicyEnum] = OMIT, + agent_id: typing.Optional[str] = OMIT, oidc_support: typing.Optional[ClientOidcSupportPatch] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> UpdateClientResponseContent: @@ -2229,6 +2257,9 @@ async def update( redirection_policy : typing.Optional[ClientRedirectionPolicyEnum] + agent_id : typing.Optional[str] + ID of the agent to associate with this client, or null to remove the association. + oidc_support : typing.Optional[ClientOidcSupportPatch] request_options : typing.Optional[RequestOptions] @@ -2319,6 +2350,7 @@ async def main() -> None: async_approval_notification_channels=async_approval_notification_channels, third_party_security_mode=third_party_security_mode, redirection_policy=redirection_policy, + agent_id=agent_id, oidc_support=oidc_support, request_options=request_options, ) diff --git a/src/auth0/management/clients/raw_client.py b/src/auth0/management/clients/raw_client.py index 949ba67a..abad5053 100644 --- a/src/auth0/management/clients/raw_client.py +++ b/src/auth0/management/clients/raw_client.py @@ -110,6 +110,7 @@ def list( is_first_party: typing.Optional[bool] = None, app_type: typing.Optional[str] = None, external_client_id: typing.Optional[str] = None, + agent_id: typing.Optional[str] = None, q: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None, ) -> SyncPager[Client, ListClientsOffsetPaginatedResponseContent]: @@ -169,6 +170,9 @@ def list( external_client_id : typing.Optional[str] Optional filter by the Client ID Metadata Document URI for CIMD-registered clients. + agent_id : typing.Optional[str] + Optional filter by the agent associated with the client.
Additional Restrictions:
  • Cannot be used in combination with other filters
  • Only fields, include_fields, page, per_page, and include_totals are supported alongside it
  • Checkpoint pagination (from, take) is not supported
+ q : typing.Optional[str] Advanced Query in Lucene syntax.
Permitted Queries:
  • client_grant.organization_id:{organization_id}
  • client_grant.allow_any_organization:true
Additional Restrictions:
  • Cannot be used in combination with other filters
  • Requires use of the from and take paging parameters (checkpoint paginatinon)
  • Reduced rate limits apply. See Rate Limit Configurations
Note: Recent updates may not be immediately reflected in query results @@ -195,6 +199,7 @@ def list( "is_first_party": is_first_party, "app_type": app_type, "external_client_id": external_client_id, + "agent_id": agent_id, "q": q, }, request_options=request_options, @@ -220,6 +225,7 @@ def list( is_first_party=is_first_party, app_type=app_type, external_client_id=external_client_id, + agent_id=agent_id, q=q, request_options=request_options, ) @@ -343,6 +349,7 @@ def create( async_approval_notification_channels: typing.Optional[ ClientAsyncApprovalNotificationsChannelsApiPostConfiguration ] = OMIT, + agent_id: typing.Optional[str] = OMIT, oidc_support: typing.Optional[ClientOidcSupportPost] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[CreateClientResponseContent]: @@ -513,6 +520,9 @@ def create( async_approval_notification_channels : typing.Optional[ClientAsyncApprovalNotificationsChannelsApiPostConfiguration] + agent_id : typing.Optional[str] + ID of the agent to associate with this client. + oidc_support : typing.Optional[ClientOidcSupportPost] request_options : typing.Optional[RequestOptions] @@ -642,6 +652,7 @@ def create( direction="write", ), "async_approval_notification_channels": async_approval_notification_channels, + "agent_id": agent_id, "oidc_support": convert_and_respect_annotation_metadata( object_=oidc_support, annotation=ClientOidcSupportPost, direction="write" ), @@ -1432,6 +1443,7 @@ def update( ] = OMIT, third_party_security_mode: typing.Optional[ClientThirdPartySecurityModeEnum] = OMIT, redirection_policy: typing.Optional[ClientRedirectionPolicyEnum] = OMIT, + agent_id: typing.Optional[str] = OMIT, oidc_support: typing.Optional[ClientOidcSupportPatch] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[UpdateClientResponseContent]: @@ -1602,6 +1614,9 @@ def update( redirection_policy : typing.Optional[ClientRedirectionPolicyEnum] + agent_id : typing.Optional[str] + ID of the agent to associate with this client, or null to remove the association. + oidc_support : typing.Optional[ClientOidcSupportPatch] request_options : typing.Optional[RequestOptions] @@ -1737,6 +1752,7 @@ def update( "async_approval_notification_channels": async_approval_notification_channels, "third_party_security_mode": third_party_security_mode, "redirection_policy": redirection_policy, + "agent_id": agent_id, "oidc_support": convert_and_respect_annotation_metadata( object_=oidc_support, annotation=typing.Optional[ClientOidcSupportPatch], direction="write" ), @@ -1940,6 +1956,7 @@ async def list( is_first_party: typing.Optional[bool] = None, app_type: typing.Optional[str] = None, external_client_id: typing.Optional[str] = None, + agent_id: typing.Optional[str] = None, q: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncPager[Client, ListClientsOffsetPaginatedResponseContent]: @@ -1999,6 +2016,9 @@ async def list( external_client_id : typing.Optional[str] Optional filter by the Client ID Metadata Document URI for CIMD-registered clients. + agent_id : typing.Optional[str] + Optional filter by the agent associated with the client.
Additional Restrictions:
  • Cannot be used in combination with other filters
  • Only fields, include_fields, page, per_page, and include_totals are supported alongside it
  • Checkpoint pagination (from, take) is not supported
+ q : typing.Optional[str] Advanced Query in Lucene syntax.
Permitted Queries:
  • client_grant.organization_id:{organization_id}
  • client_grant.allow_any_organization:true
Additional Restrictions:
  • Cannot be used in combination with other filters
  • Requires use of the from and take paging parameters (checkpoint paginatinon)
  • Reduced rate limits apply. See Rate Limit Configurations
Note: Recent updates may not be immediately reflected in query results @@ -2025,6 +2045,7 @@ async def list( "is_first_party": is_first_party, "app_type": app_type, "external_client_id": external_client_id, + "agent_id": agent_id, "q": q, }, request_options=request_options, @@ -2052,6 +2073,7 @@ async def _get_next(): is_first_party=is_first_party, app_type=app_type, external_client_id=external_client_id, + agent_id=agent_id, q=q, request_options=request_options, ) @@ -2176,6 +2198,7 @@ async def create( async_approval_notification_channels: typing.Optional[ ClientAsyncApprovalNotificationsChannelsApiPostConfiguration ] = OMIT, + agent_id: typing.Optional[str] = OMIT, oidc_support: typing.Optional[ClientOidcSupportPost] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[CreateClientResponseContent]: @@ -2346,6 +2369,9 @@ async def create( async_approval_notification_channels : typing.Optional[ClientAsyncApprovalNotificationsChannelsApiPostConfiguration] + agent_id : typing.Optional[str] + ID of the agent to associate with this client. + oidc_support : typing.Optional[ClientOidcSupportPost] request_options : typing.Optional[RequestOptions] @@ -2475,6 +2501,7 @@ async def create( direction="write", ), "async_approval_notification_channels": async_approval_notification_channels, + "agent_id": agent_id, "oidc_support": convert_and_respect_annotation_metadata( object_=oidc_support, annotation=ClientOidcSupportPost, direction="write" ), @@ -3270,6 +3297,7 @@ async def update( ] = OMIT, third_party_security_mode: typing.Optional[ClientThirdPartySecurityModeEnum] = OMIT, redirection_policy: typing.Optional[ClientRedirectionPolicyEnum] = OMIT, + agent_id: typing.Optional[str] = OMIT, oidc_support: typing.Optional[ClientOidcSupportPatch] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[UpdateClientResponseContent]: @@ -3440,6 +3468,9 @@ async def update( redirection_policy : typing.Optional[ClientRedirectionPolicyEnum] + agent_id : typing.Optional[str] + ID of the agent to associate with this client, or null to remove the association. + oidc_support : typing.Optional[ClientOidcSupportPatch] request_options : typing.Optional[RequestOptions] @@ -3575,6 +3606,7 @@ async def update( "async_approval_notification_channels": async_approval_notification_channels, "third_party_security_mode": third_party_security_mode, "redirection_policy": redirection_policy, + "agent_id": agent_id, "oidc_support": convert_and_respect_annotation_metadata( object_=oidc_support, annotation=typing.Optional[ClientOidcSupportPatch], direction="write" ), diff --git a/src/auth0/management/connections/keys/client.py b/src/auth0/management/connections/keys/client.py index 48da760b..5621b9e3 100644 --- a/src/auth0/management/connections/keys/client.py +++ b/src/auth0/management/connections/keys/client.py @@ -32,7 +32,7 @@ def with_raw_response(self) -> RawKeysClient: def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> typing.List[ConnectionKey]: """ - Gets the connection keys for the Okta or OIDC connection strategy. + Gets the connection keys for the Okta, OIDC, or SAML (samlp) connection strategy. Parameters ---------- @@ -69,7 +69,7 @@ def create( request_options: typing.Optional[RequestOptions] = None, ) -> PostConnectionsKeysResponseContent: """ - Provision initial connection keys for Okta or OIDC connection strategies. This endpoint allows you to create keys before configuring the connection to use Private Key JWT authentication, enabling zero-downtime transitions. + Provision initial connection keys for Okta, OIDC, or SAML (samlp) connection strategies. This endpoint allows you to create keys before configuring the connection to use Private Key JWT authentication, enabling zero-downtime transitions. Parameters ---------- @@ -109,7 +109,7 @@ def rotate( request_options: typing.Optional[RequestOptions] = None, ) -> RotateConnectionsKeysResponseContent: """ - Rotates the connection keys for the Okta or OIDC connection strategies. + Rotates the connection keys for the Okta, OIDC, or SAML (samlp) connection strategies. Parameters ---------- @@ -161,7 +161,7 @@ async def get( self, id: str, *, request_options: typing.Optional[RequestOptions] = None ) -> typing.List[ConnectionKey]: """ - Gets the connection keys for the Okta or OIDC connection strategy. + Gets the connection keys for the Okta, OIDC, or SAML (samlp) connection strategy. Parameters ---------- @@ -206,7 +206,7 @@ async def create( request_options: typing.Optional[RequestOptions] = None, ) -> PostConnectionsKeysResponseContent: """ - Provision initial connection keys for Okta or OIDC connection strategies. This endpoint allows you to create keys before configuring the connection to use Private Key JWT authentication, enabling zero-downtime transitions. + Provision initial connection keys for Okta, OIDC, or SAML (samlp) connection strategies. This endpoint allows you to create keys before configuring the connection to use Private Key JWT authentication, enabling zero-downtime transitions. Parameters ---------- @@ -254,7 +254,7 @@ async def rotate( request_options: typing.Optional[RequestOptions] = None, ) -> RotateConnectionsKeysResponseContent: """ - Rotates the connection keys for the Okta or OIDC connection strategies. + Rotates the connection keys for the Okta, OIDC, or SAML (samlp) connection strategies. Parameters ---------- diff --git a/src/auth0/management/connections/keys/raw_client.py b/src/auth0/management/connections/keys/raw_client.py index 5bedc967..b9f1c89c 100644 --- a/src/auth0/management/connections/keys/raw_client.py +++ b/src/auth0/management/connections/keys/raw_client.py @@ -36,7 +36,7 @@ def get( self, id: str, *, request_options: typing.Optional[RequestOptions] = None ) -> HttpResponse[typing.List[ConnectionKey]]: """ - Gets the connection keys for the Okta or OIDC connection strategy. + Gets the connection keys for the Okta, OIDC, or SAML (samlp) connection strategy. Parameters ---------- @@ -138,7 +138,7 @@ def create( request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[PostConnectionsKeysResponseContent]: """ - Provision initial connection keys for Okta or OIDC connection strategies. This endpoint allows you to create keys before configuring the connection to use Private Key JWT authentication, enabling zero-downtime transitions. + Provision initial connection keys for Okta, OIDC, or SAML (samlp) connection strategies. This endpoint allows you to create keys before configuring the connection to use Private Key JWT authentication, enabling zero-downtime transitions. Parameters ---------- @@ -257,7 +257,7 @@ def rotate( request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[RotateConnectionsKeysResponseContent]: """ - Rotates the connection keys for the Okta or OIDC connection strategies. + Rotates the connection keys for the Okta, OIDC, or SAML (samlp) connection strategies. Parameters ---------- @@ -366,7 +366,7 @@ async def get( self, id: str, *, request_options: typing.Optional[RequestOptions] = None ) -> AsyncHttpResponse[typing.List[ConnectionKey]]: """ - Gets the connection keys for the Okta or OIDC connection strategy. + Gets the connection keys for the Okta, OIDC, or SAML (samlp) connection strategy. Parameters ---------- @@ -468,7 +468,7 @@ async def create( request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[PostConnectionsKeysResponseContent]: """ - Provision initial connection keys for Okta or OIDC connection strategies. This endpoint allows you to create keys before configuring the connection to use Private Key JWT authentication, enabling zero-downtime transitions. + Provision initial connection keys for Okta, OIDC, or SAML (samlp) connection strategies. This endpoint allows you to create keys before configuring the connection to use Private Key JWT authentication, enabling zero-downtime transitions. Parameters ---------- @@ -587,7 +587,7 @@ async def rotate( request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[RotateConnectionsKeysResponseContent]: """ - Rotates the connection keys for the Okta or OIDC connection strategies. + Rotates the connection keys for the Okta, OIDC, or SAML (samlp) connection strategies. Parameters ---------- diff --git a/src/auth0/management/experimentation/experiments/client.py b/src/auth0/management/experimentation/experiments/client.py index 9f1ab1a3..a4c44ccf 100644 --- a/src/auth0/management/experimentation/experiments/client.py +++ b/src/auth0/management/experimentation/experiments/client.py @@ -112,9 +112,9 @@ def create( name: str, feature_flag_id: str, authentication_flow: AuthenticationFlowEnum, + allocation_strategy: AllocationStrategyEnum, description: typing.Optional[str] = OMIT, default_config: typing.Optional[DefaultConfigEnum] = OMIT, - allocation_strategy: typing.Optional[AllocationStrategyEnum] = OMIT, allocations: typing.Optional[typing.Sequence[AllocationRequestItem]] = OMIT, levels: typing.Optional[typing.Sequence[int]] = OMIT, request_options: typing.Optional[RequestOptions] = None, @@ -132,15 +132,15 @@ def create( authentication_flow : AuthenticationFlowEnum + allocation_strategy : AllocationStrategyEnum + The traffic allocation strategy for this experiment + description : typing.Optional[str] A description of the experiment default_config : typing.Optional[DefaultConfigEnum] Applies only to Auth0-managed flags. Controls where non-overridden config keys resolve from: 'tenant' inherits the tenant's live config so the experiment overlays only its changes, 'flag' uses the flag's frozen defaults for a complete config. Optional; defaults to 'tenant' when omitted. Rejected for customer-defined flags. - allocation_strategy : typing.Optional[AllocationStrategyEnum] - The traffic allocation strategy for this experiment - allocations : typing.Optional[typing.Sequence[AllocationRequestItem]] Traffic allocations mapping variations to weights or segments @@ -166,15 +166,16 @@ def create( name="name", feature_flag_id="feature_flag_id", authentication_flow="authentication", + allocation_strategy="percentage", ) """ _response = self._raw_client.create( name=name, feature_flag_id=feature_flag_id, authentication_flow=authentication_flow, + allocation_strategy=allocation_strategy, description=description, default_config=default_config, - allocation_strategy=allocation_strategy, allocations=allocations, levels=levels, request_options=request_options, @@ -483,9 +484,9 @@ async def create( name: str, feature_flag_id: str, authentication_flow: AuthenticationFlowEnum, + allocation_strategy: AllocationStrategyEnum, description: typing.Optional[str] = OMIT, default_config: typing.Optional[DefaultConfigEnum] = OMIT, - allocation_strategy: typing.Optional[AllocationStrategyEnum] = OMIT, allocations: typing.Optional[typing.Sequence[AllocationRequestItem]] = OMIT, levels: typing.Optional[typing.Sequence[int]] = OMIT, request_options: typing.Optional[RequestOptions] = None, @@ -503,15 +504,15 @@ async def create( authentication_flow : AuthenticationFlowEnum + allocation_strategy : AllocationStrategyEnum + The traffic allocation strategy for this experiment + description : typing.Optional[str] A description of the experiment default_config : typing.Optional[DefaultConfigEnum] Applies only to Auth0-managed flags. Controls where non-overridden config keys resolve from: 'tenant' inherits the tenant's live config so the experiment overlays only its changes, 'flag' uses the flag's frozen defaults for a complete config. Optional; defaults to 'tenant' when omitted. Rejected for customer-defined flags. - allocation_strategy : typing.Optional[AllocationStrategyEnum] - The traffic allocation strategy for this experiment - allocations : typing.Optional[typing.Sequence[AllocationRequestItem]] Traffic allocations mapping variations to weights or segments @@ -542,6 +543,7 @@ async def main() -> None: name="name", feature_flag_id="feature_flag_id", authentication_flow="authentication", + allocation_strategy="percentage", ) @@ -551,9 +553,9 @@ async def main() -> None: name=name, feature_flag_id=feature_flag_id, authentication_flow=authentication_flow, + allocation_strategy=allocation_strategy, description=description, default_config=default_config, - allocation_strategy=allocation_strategy, allocations=allocations, levels=levels, request_options=request_options, diff --git a/src/auth0/management/experimentation/experiments/raw_client.py b/src/auth0/management/experimentation/experiments/raw_client.py index f512ef5b..69bc5ed5 100644 --- a/src/auth0/management/experimentation/experiments/raw_client.py +++ b/src/auth0/management/experimentation/experiments/raw_client.py @@ -172,9 +172,9 @@ def create( name: str, feature_flag_id: str, authentication_flow: AuthenticationFlowEnum, + allocation_strategy: AllocationStrategyEnum, description: typing.Optional[str] = OMIT, default_config: typing.Optional[DefaultConfigEnum] = OMIT, - allocation_strategy: typing.Optional[AllocationStrategyEnum] = OMIT, allocations: typing.Optional[typing.Sequence[AllocationRequestItem]] = OMIT, levels: typing.Optional[typing.Sequence[int]] = OMIT, request_options: typing.Optional[RequestOptions] = None, @@ -192,15 +192,15 @@ def create( authentication_flow : AuthenticationFlowEnum + allocation_strategy : AllocationStrategyEnum + The traffic allocation strategy for this experiment + description : typing.Optional[str] A description of the experiment default_config : typing.Optional[DefaultConfigEnum] Applies only to Auth0-managed flags. Controls where non-overridden config keys resolve from: 'tenant' inherits the tenant's live config so the experiment overlays only its changes, 'flag' uses the flag's frozen defaults for a complete config. Optional; defaults to 'tenant' when omitted. Rejected for customer-defined flags. - allocation_strategy : typing.Optional[AllocationStrategyEnum] - The traffic allocation strategy for this experiment - allocations : typing.Optional[typing.Sequence[AllocationRequestItem]] Traffic allocations mapping variations to weights or segments @@ -994,9 +994,9 @@ async def create( name: str, feature_flag_id: str, authentication_flow: AuthenticationFlowEnum, + allocation_strategy: AllocationStrategyEnum, description: typing.Optional[str] = OMIT, default_config: typing.Optional[DefaultConfigEnum] = OMIT, - allocation_strategy: typing.Optional[AllocationStrategyEnum] = OMIT, allocations: typing.Optional[typing.Sequence[AllocationRequestItem]] = OMIT, levels: typing.Optional[typing.Sequence[int]] = OMIT, request_options: typing.Optional[RequestOptions] = None, @@ -1014,15 +1014,15 @@ async def create( authentication_flow : AuthenticationFlowEnum + allocation_strategy : AllocationStrategyEnum + The traffic allocation strategy for this experiment + description : typing.Optional[str] A description of the experiment default_config : typing.Optional[DefaultConfigEnum] Applies only to Auth0-managed flags. Controls where non-overridden config keys resolve from: 'tenant' inherits the tenant's live config so the experiment overlays only its changes, 'flag' uses the flag's frozen defaults for a complete config. Optional; defaults to 'tenant' when omitted. Rejected for customer-defined flags. - allocation_strategy : typing.Optional[AllocationStrategyEnum] - The traffic allocation strategy for this experiment - allocations : typing.Optional[typing.Sequence[AllocationRequestItem]] Traffic allocations mapping variations to weights or segments diff --git a/src/auth0/management/experimentation/segments/client.py b/src/auth0/management/experimentation/segments/client.py index c32ebec7..f6c0322f 100644 --- a/src/auth0/management/experimentation/segments/client.py +++ b/src/auth0/management/experimentation/segments/client.py @@ -40,6 +40,7 @@ def list( from_: typing.Optional[str] = None, take: typing.Optional[int] = 50, type: typing.Optional[SegmentTypeFilterEnum] = None, + status: typing.Optional[SegmentStatusEnum] = None, request_options: typing.Optional[RequestOptions] = None, ) -> SyncPager[Segment, ListSegmentsResponseContent]: """ @@ -56,6 +57,9 @@ def list( type : typing.Optional[SegmentTypeFilterEnum] Filter by type. Exact match. + status : typing.Optional[SegmentStatusEnum] + Filter by status. Exact match. + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -75,6 +79,7 @@ def list( from_="from", take=1, type="auth0", + status="active", ) for item in response: yield item @@ -82,7 +87,7 @@ def list( for page in response.iter_pages(): yield page """ - return self._raw_client.list(from_=from_, take=take, type=type, request_options=request_options) + return self._raw_client.list(from_=from_, take=take, type=type, status=status, request_options=request_options) def create( self, @@ -268,6 +273,7 @@ async def list( from_: typing.Optional[str] = None, take: typing.Optional[int] = 50, type: typing.Optional[SegmentTypeFilterEnum] = None, + status: typing.Optional[SegmentStatusEnum] = None, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncPager[Segment, ListSegmentsResponseContent]: """ @@ -284,6 +290,9 @@ async def list( type : typing.Optional[SegmentTypeFilterEnum] Filter by type. Exact match. + status : typing.Optional[SegmentStatusEnum] + Filter by status. Exact match. + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -308,6 +317,7 @@ async def main() -> None: from_="from", take=1, type="auth0", + status="active", ) async for item in response: yield item @@ -319,7 +329,9 @@ async def main() -> None: asyncio.run(main()) """ - return await self._raw_client.list(from_=from_, take=take, type=type, request_options=request_options) + return await self._raw_client.list( + from_=from_, take=take, type=type, status=status, request_options=request_options + ) async def create( self, diff --git a/src/auth0/management/experimentation/segments/raw_client.py b/src/auth0/management/experimentation/segments/raw_client.py index 30281d9f..de00a841 100644 --- a/src/auth0/management/experimentation/segments/raw_client.py +++ b/src/auth0/management/experimentation/segments/raw_client.py @@ -43,6 +43,7 @@ def list( from_: typing.Optional[str] = None, take: typing.Optional[int] = 50, type: typing.Optional[SegmentTypeFilterEnum] = None, + status: typing.Optional[SegmentStatusEnum] = None, request_options: typing.Optional[RequestOptions] = None, ) -> SyncPager[Segment, ListSegmentsResponseContent]: """ @@ -59,6 +60,9 @@ def list( type : typing.Optional[SegmentTypeFilterEnum] Filter by type. Exact match. + status : typing.Optional[SegmentStatusEnum] + Filter by status. Exact match. + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -74,6 +78,7 @@ def list( "from": from_, "take": take, "type": type, + "status": status, }, request_options=request_options, ) @@ -93,6 +98,7 @@ def list( from_=_parsed_next, take=take, type=type, + status=status, request_options=request_options, ) return SyncPager(has_next=_has_next, items=_items, get_next=_get_next, response=_parsed_response) @@ -595,6 +601,7 @@ async def list( from_: typing.Optional[str] = None, take: typing.Optional[int] = 50, type: typing.Optional[SegmentTypeFilterEnum] = None, + status: typing.Optional[SegmentStatusEnum] = None, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncPager[Segment, ListSegmentsResponseContent]: """ @@ -611,6 +618,9 @@ async def list( type : typing.Optional[SegmentTypeFilterEnum] Filter by type. Exact match. + status : typing.Optional[SegmentStatusEnum] + Filter by status. Exact match. + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -626,6 +636,7 @@ async def list( "from": from_, "take": take, "type": type, + "status": status, }, request_options=request_options, ) @@ -647,6 +658,7 @@ async def _get_next(): from_=_parsed_next, take=take, type=type, + status=status, request_options=request_options, ) diff --git a/src/auth0/management/management_client.py b/src/auth0/management/management_client.py index 82c5cd1c..09b5bb2b 100644 --- a/src/auth0/management/management_client.py +++ b/src/auth0/management/management_client.py @@ -9,10 +9,9 @@ from json import dumps from typing import TYPE_CHECKING, Any, Callable, Dict, List, Optional, Union -from .core.request_options import RequestOptions - import httpx from .client import AsyncAuth0, Auth0 +from .core.request_options import RequestOptions from .token_provider import TokenProvider CUSTOM_DOMAIN_HEADER = "Auth0-Custom-Domain" @@ -65,7 +64,7 @@ def CustomDomainHeader(domain: str) -> RequestOptions: if TYPE_CHECKING: from .actions.client import ActionsClient, AsyncActionsClient - from .agents.client import AsyncAgentsClient, AgentsClient + from .agents.client import AgentsClient, AsyncAgentsClient from .anomaly.client import AnomalyClient, AsyncAnomalyClient from .attack_protection.client import AsyncAttackProtectionClient, AttackProtectionClient from .branding.client import AsyncBrandingClient, BrandingClient @@ -92,6 +91,7 @@ def CustomDomainHeader(domain: str) -> RequestOptions: from .logs.client import AsyncLogsClient, LogsClient from .network_acls.client import AsyncNetworkAclsClient, NetworkAclsClient from .organizations.client import AsyncOrganizationsClient, OrganizationsClient + from .portals.client import AsyncPortalsClient, PortalsClient from .prompts.client import AsyncPromptsClient, PromptsClient from .rate_limit_policies.client import AsyncRateLimitPoliciesClient, RateLimitPoliciesClient from .refresh_tokens.client import AsyncRefreshTokensClient, RefreshTokensClient @@ -342,6 +342,10 @@ def network_acls(self) -> "NetworkAclsClient": def organizations(self) -> "OrganizationsClient": return self._api.organizations + @property + def portals(self) -> "PortalsClient": + return self._api.portals + @property def prompts(self) -> "PromptsClient": return self._api.prompts @@ -654,6 +658,10 @@ def network_acls(self) -> "AsyncNetworkAclsClient": def organizations(self) -> "AsyncOrganizationsClient": return self._api.organizations + @property + def portals(self) -> "AsyncPortalsClient": + return self._api.portals + @property def prompts(self) -> "AsyncPromptsClient": return self._api.prompts diff --git a/src/auth0/management/attack_protection/captcha_policies/__init__.py b/src/auth0/management/portals/__init__.py similarity index 100% rename from src/auth0/management/attack_protection/captcha_policies/__init__.py rename to src/auth0/management/portals/__init__.py diff --git a/src/auth0/management/portals/client.py b/src/auth0/management/portals/client.py new file mode 100644 index 00000000..eca9afbc --- /dev/null +++ b/src/auth0/management/portals/client.py @@ -0,0 +1,496 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper +from ..core.request_options import RequestOptions +from ..types.list_portals_response_content import ListPortalsResponseContent +from ..types.portal import Portal +from ..types.portal_client_secret_post_request import PortalClientSecretPostRequest +from ..types.portal_custom_code import PortalCustomCode +from ..types.portal_custom_code_nullable import PortalCustomCodeNullable +from ..types.portal_id import PortalId +from ..types.portal_name import PortalName +from ..types.portal_navigation import PortalNavigation +from ..types.portal_navigation_nullable import PortalNavigationNullable +from ..types.portal_pages_by_type import PortalPagesByType +from ..types.portal_pages_by_type_nullable import PortalPagesByTypeNullable +from ..types.portal_slug import PortalSlug +from .raw_client import AsyncRawPortalsClient, RawPortalsClient + +# this is used as the default value for optional parameters +OMIT = typing.cast(typing.Any, ...) + + +class PortalsClient: + def __init__(self, *, client_wrapper: SyncClientWrapper): + self._raw_client = RawPortalsClient(client_wrapper=client_wrapper) + + @property + def with_raw_response(self) -> RawPortalsClient: + """ + Retrieves a raw implementation of this client that returns raw responses. + + Returns + ------- + RawPortalsClient + """ + return self._raw_client + + def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> ListPortalsResponseContent: + """ + Parameters + ---------- + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + ListPortalsResponseContent + All portals were successfully retrieved. + + Examples + -------- + from auth0 import Auth0 + + client = Auth0( + token="YOUR_TOKEN", + ) + client.portals.list() + """ + _response = self._raw_client.list(request_options=request_options) + return _response.data + + def create( + self, + *, + slug: PortalSlug, + name: PortalName, + client: PortalClientSecretPostRequest, + navigation: typing.Optional[PortalNavigation] = OMIT, + pages: typing.Optional[PortalPagesByType] = OMIT, + custom_code: typing.Optional[PortalCustomCode] = OMIT, + request_options: typing.Optional[RequestOptions] = None, + ) -> Portal: + """ + Parameters + ---------- + slug : PortalSlug + + name : PortalName + + client : PortalClientSecretPostRequest + + navigation : typing.Optional[PortalNavigation] + + pages : typing.Optional[PortalPagesByType] + + custom_code : typing.Optional[PortalCustomCode] + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + Portal + The portal was successfully created. + + Examples + -------- + from auth0 import Auth0, PortalClientSecretPostRequest + + client = Auth0( + token="YOUR_TOKEN", + ) + client.portals.create( + slug="slug", + name="name", + client=PortalClientSecretPostRequest( + token_endpoint_auth_method="client_secret_post", + client_id="client_id", + client_secret="client_secret", + ), + ) + """ + _response = self._raw_client.create( + slug=slug, + name=name, + client=client, + navigation=navigation, + pages=pages, + custom_code=custom_code, + request_options=request_options, + ) + return _response.data + + def get(self, id: PortalId, *, request_options: typing.Optional[RequestOptions] = None) -> Portal: + """ + Parameters + ---------- + id : PortalId + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + Portal + The portal was successfully retrieved. + + Examples + -------- + from auth0 import Auth0 + + client = Auth0( + token="YOUR_TOKEN", + ) + client.portals.get( + id="id", + ) + """ + _response = self._raw_client.get(id, request_options=request_options) + return _response.data + + def delete(self, id: PortalId, *, request_options: typing.Optional[RequestOptions] = None) -> None: + """ + Parameters + ---------- + id : PortalId + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + None + + Examples + -------- + from auth0 import Auth0 + + client = Auth0( + token="YOUR_TOKEN", + ) + client.portals.delete( + id="id", + ) + """ + _response = self._raw_client.delete(id, request_options=request_options) + return _response.data + + def update( + self, + id: PortalId, + *, + slug: typing.Optional[PortalSlug] = OMIT, + name: typing.Optional[PortalName] = OMIT, + client: typing.Optional[PortalClientSecretPostRequest] = OMIT, + navigation: typing.Optional[PortalNavigationNullable] = OMIT, + pages: typing.Optional[PortalPagesByTypeNullable] = OMIT, + custom_code: typing.Optional[PortalCustomCodeNullable] = OMIT, + request_options: typing.Optional[RequestOptions] = None, + ) -> Portal: + """ + Parameters + ---------- + id : PortalId + + slug : typing.Optional[PortalSlug] + + name : typing.Optional[PortalName] + + client : typing.Optional[PortalClientSecretPostRequest] + + navigation : typing.Optional[PortalNavigationNullable] + + pages : typing.Optional[PortalPagesByTypeNullable] + + custom_code : typing.Optional[PortalCustomCodeNullable] + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + Portal + The portal was successfully updated. + + Examples + -------- + from auth0 import Auth0 + + client = Auth0( + token="YOUR_TOKEN", + ) + client.portals.update( + id="id", + ) + """ + _response = self._raw_client.update( + id, + slug=slug, + name=name, + client=client, + navigation=navigation, + pages=pages, + custom_code=custom_code, + request_options=request_options, + ) + return _response.data + + +class AsyncPortalsClient: + def __init__(self, *, client_wrapper: AsyncClientWrapper): + self._raw_client = AsyncRawPortalsClient(client_wrapper=client_wrapper) + + @property + def with_raw_response(self) -> AsyncRawPortalsClient: + """ + Retrieves a raw implementation of this client that returns raw responses. + + Returns + ------- + AsyncRawPortalsClient + """ + return self._raw_client + + async def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> ListPortalsResponseContent: + """ + Parameters + ---------- + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + ListPortalsResponseContent + All portals were successfully retrieved. + + Examples + -------- + import asyncio + + from auth0 import AsyncAuth0 + + client = AsyncAuth0( + token="YOUR_TOKEN", + ) + + + async def main() -> None: + await client.portals.list() + + + asyncio.run(main()) + """ + _response = await self._raw_client.list(request_options=request_options) + return _response.data + + async def create( + self, + *, + slug: PortalSlug, + name: PortalName, + client: PortalClientSecretPostRequest, + navigation: typing.Optional[PortalNavigation] = OMIT, + pages: typing.Optional[PortalPagesByType] = OMIT, + custom_code: typing.Optional[PortalCustomCode] = OMIT, + request_options: typing.Optional[RequestOptions] = None, + ) -> Portal: + """ + Parameters + ---------- + slug : PortalSlug + + name : PortalName + + client : PortalClientSecretPostRequest + + navigation : typing.Optional[PortalNavigation] + + pages : typing.Optional[PortalPagesByType] + + custom_code : typing.Optional[PortalCustomCode] + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + Portal + The portal was successfully created. + + Examples + -------- + import asyncio + + from auth0 import AsyncAuth0, PortalClientSecretPostRequest + + client = AsyncAuth0( + token="YOUR_TOKEN", + ) + + + async def main() -> None: + await client.portals.create( + slug="slug", + name="name", + client=PortalClientSecretPostRequest( + token_endpoint_auth_method="client_secret_post", + client_id="client_id", + client_secret="client_secret", + ), + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.create( + slug=slug, + name=name, + client=client, + navigation=navigation, + pages=pages, + custom_code=custom_code, + request_options=request_options, + ) + return _response.data + + async def get(self, id: PortalId, *, request_options: typing.Optional[RequestOptions] = None) -> Portal: + """ + Parameters + ---------- + id : PortalId + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + Portal + The portal was successfully retrieved. + + Examples + -------- + import asyncio + + from auth0 import AsyncAuth0 + + client = AsyncAuth0( + token="YOUR_TOKEN", + ) + + + async def main() -> None: + await client.portals.get( + id="id", + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.get(id, request_options=request_options) + return _response.data + + async def delete(self, id: PortalId, *, request_options: typing.Optional[RequestOptions] = None) -> None: + """ + Parameters + ---------- + id : PortalId + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + None + + Examples + -------- + import asyncio + + from auth0 import AsyncAuth0 + + client = AsyncAuth0( + token="YOUR_TOKEN", + ) + + + async def main() -> None: + await client.portals.delete( + id="id", + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.delete(id, request_options=request_options) + return _response.data + + async def update( + self, + id: PortalId, + *, + slug: typing.Optional[PortalSlug] = OMIT, + name: typing.Optional[PortalName] = OMIT, + client: typing.Optional[PortalClientSecretPostRequest] = OMIT, + navigation: typing.Optional[PortalNavigationNullable] = OMIT, + pages: typing.Optional[PortalPagesByTypeNullable] = OMIT, + custom_code: typing.Optional[PortalCustomCodeNullable] = OMIT, + request_options: typing.Optional[RequestOptions] = None, + ) -> Portal: + """ + Parameters + ---------- + id : PortalId + + slug : typing.Optional[PortalSlug] + + name : typing.Optional[PortalName] + + client : typing.Optional[PortalClientSecretPostRequest] + + navigation : typing.Optional[PortalNavigationNullable] + + pages : typing.Optional[PortalPagesByTypeNullable] + + custom_code : typing.Optional[PortalCustomCodeNullable] + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + Portal + The portal was successfully updated. + + Examples + -------- + import asyncio + + from auth0 import AsyncAuth0 + + client = AsyncAuth0( + token="YOUR_TOKEN", + ) + + + async def main() -> None: + await client.portals.update( + id="id", + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.update( + id, + slug=slug, + name=name, + client=client, + navigation=navigation, + pages=pages, + custom_code=custom_code, + request_options=request_options, + ) + return _response.data diff --git a/src/auth0/management/attack_protection/captcha_policies/raw_client.py b/src/auth0/management/portals/raw_client.py similarity index 73% rename from src/auth0/management/attack_protection/captcha_policies/raw_client.py rename to src/auth0/management/portals/raw_client.py index 49b58ab9..562f2f54 100644 --- a/src/auth0/management/attack_protection/captcha_policies/raw_client.py +++ b/src/auth0/management/portals/raw_client.py @@ -3,42 +3,47 @@ import typing from json.decoder import JSONDecodeError -from ...core.api_error import ApiError -from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from ...core.http_response import AsyncHttpResponse, HttpResponse -from ...core.jsonable_encoder import quote_path_param -from ...core.parse_error import ParsingError -from ...core.pydantic_utilities import parse_obj_as -from ...core.request_options import RequestOptions -from ...core.serialization import convert_and_respect_annotation_metadata -from ...errors.bad_request_error import BadRequestError -from ...errors.conflict_error import ConflictError -from ...errors.forbidden_error import ForbiddenError -from ...errors.not_found_error import NotFoundError -from ...errors.too_many_requests_error import TooManyRequestsError -from ...errors.unauthorized_error import UnauthorizedError -from ...types.attack_protection_captcha_policy import AttackProtectionCaptchaPolicy -from ...types.attack_protection_captcha_policy_action_input import AttackProtectionCaptchaPolicyActionInput -from ...types.attack_protection_captcha_policy_match import AttackProtectionCaptchaPolicyMatch -from ...types.list_attack_protection_captcha_policies_response_content import ( - ListAttackProtectionCaptchaPoliciesResponseContent, -) +from ..core.api_error import ApiError +from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper +from ..core.http_response import AsyncHttpResponse, HttpResponse +from ..core.jsonable_encoder import quote_path_param +from ..core.parse_error import ParsingError +from ..core.pydantic_utilities import parse_obj_as +from ..core.request_options import RequestOptions +from ..core.serialization import convert_and_respect_annotation_metadata +from ..errors.bad_request_error import BadRequestError +from ..errors.conflict_error import ConflictError +from ..errors.forbidden_error import ForbiddenError +from ..errors.internal_server_error import InternalServerError +from ..errors.not_found_error import NotFoundError +from ..errors.too_many_requests_error import TooManyRequestsError +from ..errors.unauthorized_error import UnauthorizedError +from ..types.list_portals_response_content import ListPortalsResponseContent +from ..types.portal import Portal +from ..types.portal_client_secret_post_request import PortalClientSecretPostRequest +from ..types.portal_custom_code import PortalCustomCode +from ..types.portal_custom_code_nullable import PortalCustomCodeNullable +from ..types.portal_id import PortalId +from ..types.portal_name import PortalName +from ..types.portal_navigation import PortalNavigation +from ..types.portal_navigation_nullable import PortalNavigationNullable +from ..types.portal_pages_by_type import PortalPagesByType +from ..types.portal_pages_by_type_nullable import PortalPagesByTypeNullable +from ..types.portal_slug import PortalSlug from pydantic import ValidationError # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) -class RawCaptchaPoliciesClient: +class RawPortalsClient: def __init__(self, *, client_wrapper: SyncClientWrapper): self._client_wrapper = client_wrapper def list( self, *, request_options: typing.Optional[RequestOptions] = None - ) -> HttpResponse[ListAttackProtectionCaptchaPoliciesResponseContent]: + ) -> HttpResponse[ListPortalsResponseContent]: """ - Retrieve all CAPTCHA attack protection policies for the tenant, sorted by priority ascending. - Parameters ---------- request_options : typing.Optional[RequestOptions] @@ -46,26 +51,26 @@ def list( Returns ------- - HttpResponse[ListAttackProtectionCaptchaPoliciesResponseContent] - The tenant's CAPTCHA attack protection policies were successfully retrieved. + HttpResponse[ListPortalsResponseContent] + All portals were successfully retrieved. """ _response = self._client_wrapper.httpx_client.request( - "attack-protection/captcha/policies", + "portals", method="GET", request_options=request_options, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - ListAttackProtectionCaptchaPoliciesResponseContent, + ListPortalsResponseContent, parse_obj_as( - type_=ListAttackProtectionCaptchaPoliciesResponseContent, # type: ignore + type_=ListPortalsResponseContent, # type: ignore object_=_response.json(), ), ) return HttpResponse(response=_response, data=_data) - if _response.status_code == 400: - raise BadRequestError( + if _response.status_code == 401: + raise UnauthorizedError( headers=dict(_response.headers), body=typing.cast( typing.Any, @@ -75,8 +80,8 @@ def list( ), ), ) - if _response.status_code == 401: - raise UnauthorizedError( + if _response.status_code == 403: + raise ForbiddenError( headers=dict(_response.headers), body=typing.cast( typing.Any, @@ -86,8 +91,8 @@ def list( ), ), ) - if _response.status_code == 403: - raise ForbiddenError( + if _response.status_code == 404: + raise NotFoundError( headers=dict(_response.headers), body=typing.cast( typing.Any, @@ -97,8 +102,8 @@ def list( ), ), ) - if _response.status_code == 404: - raise NotFoundError( + if _response.status_code == 429: + raise TooManyRequestsError( headers=dict(_response.headers), body=typing.cast( typing.Any, @@ -108,8 +113,8 @@ def list( ), ), ) - if _response.status_code == 429: - raise TooManyRequestsError( + if _response.status_code == 500: + raise InternalServerError( headers=dict(_response.headers), body=typing.cast( typing.Any, @@ -131,51 +136,54 @@ def list( def create( self, *, - name: str, - priority: int, - match: AttackProtectionCaptchaPolicyMatch, - action: AttackProtectionCaptchaPolicyActionInput, - description: typing.Optional[str] = OMIT, + slug: PortalSlug, + name: PortalName, + client: PortalClientSecretPostRequest, + navigation: typing.Optional[PortalNavigation] = OMIT, + pages: typing.Optional[PortalPagesByType] = OMIT, + custom_code: typing.Optional[PortalCustomCode] = OMIT, request_options: typing.Optional[RequestOptions] = None, - ) -> HttpResponse[AttackProtectionCaptchaPolicy]: + ) -> HttpResponse[Portal]: """ - Create a new CAPTCHA attack protection policy for the tenant. The maximum number of policies per tenant is determined by the tenant's subscription. - Parameters ---------- - name : str - Human-readable policy name. + slug : PortalSlug + + name : PortalName - priority : int - Conflict resolution order. Lower number takes higher precedence. Must be unique per tenant. + client : PortalClientSecretPostRequest - match : AttackProtectionCaptchaPolicyMatch + navigation : typing.Optional[PortalNavigation] - action : AttackProtectionCaptchaPolicyActionInput + pages : typing.Optional[PortalPagesByType] - description : typing.Optional[str] - Description of the attack protection policy. + custom_code : typing.Optional[PortalCustomCode] request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - HttpResponse[AttackProtectionCaptchaPolicy] - The CAPTCHA attack protection policy was successfully created. + HttpResponse[Portal] + The portal was successfully created. """ _response = self._client_wrapper.httpx_client.request( - "attack-protection/captcha/policies", + "portals", method="POST", json={ + "slug": slug, "name": name, - "description": description, - "priority": priority, - "match": convert_and_respect_annotation_metadata( - object_=match, annotation=AttackProtectionCaptchaPolicyMatch, direction="write" + "client": convert_and_respect_annotation_metadata( + object_=client, annotation=PortalClientSecretPostRequest, direction="write" ), - "action": convert_and_respect_annotation_metadata( - object_=action, annotation=AttackProtectionCaptchaPolicyActionInput, direction="write" + "navigation": convert_and_respect_annotation_metadata( + object_=navigation, annotation=PortalNavigation, direction="write" + ), + "pages": convert_and_respect_annotation_metadata( + object_=pages, annotation=PortalPagesByType, direction="write" + ), + "custom_code": convert_and_respect_annotation_metadata( + object_=custom_code, annotation=PortalCustomCode, direction="write" ), }, headers={ @@ -187,9 +195,9 @@ def create( try: if 200 <= _response.status_code < 300: _data = typing.cast( - AttackProtectionCaptchaPolicy, + Portal, parse_obj_as( - type_=AttackProtectionCaptchaPolicy, # type: ignore + type_=Portal, # type: ignore object_=_response.json(), ), ) @@ -260,6 +268,17 @@ def create( ), ), ) + if _response.status_code == 500: + raise InternalServerError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) @@ -269,36 +288,31 @@ def create( ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) - def get( - self, id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> HttpResponse[AttackProtectionCaptchaPolicy]: + def get(self, id: PortalId, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[Portal]: """ - Retrieve a single CAPTCHA attack protection policy for the tenant by ID. - Parameters ---------- - id : str - ID of the CAPTCHA attack protection policy. + id : PortalId request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - HttpResponse[AttackProtectionCaptchaPolicy] - The CAPTCHA attack protection policy was successfully retrieved. + HttpResponse[Portal] + The portal was successfully retrieved. """ _response = self._client_wrapper.httpx_client.request( - f"attack-protection/captcha/policies/{quote_path_param(id)}", + f"portals/{quote_path_param(id)}", method="GET", request_options=request_options, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - AttackProtectionCaptchaPolicy, + Portal, parse_obj_as( - type_=AttackProtectionCaptchaPolicy, # type: ignore + type_=Portal, # type: ignore object_=_response.json(), ), ) @@ -358,6 +372,17 @@ def get( ), ), ) + if _response.status_code == 500: + raise InternalServerError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) @@ -367,14 +392,11 @@ def get( ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) - def delete(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[None]: + def delete(self, id: PortalId, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[None]: """ - Delete a CAPTCHA attack protection policy for the tenant. - Parameters ---------- - id : str - ID of the CAPTCHA attack protection policy. + id : PortalId request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -384,7 +406,7 @@ def delete(self, id: str, *, request_options: typing.Optional[RequestOptions] = HttpResponse[None] """ _response = self._client_wrapper.httpx_client.request( - f"attack-protection/captcha/policies/{quote_path_param(id)}", + f"portals/{quote_path_param(id)}", method="DELETE", request_options=request_options, ) @@ -446,6 +468,17 @@ def delete(self, id: str, *, request_options: typing.Optional[RequestOptions] = ), ), ) + if _response.status_code == 500: + raise InternalServerError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) @@ -457,56 +490,58 @@ def delete(self, id: str, *, request_options: typing.Optional[RequestOptions] = def update( self, - id: str, + id: PortalId, *, - name: typing.Optional[str] = OMIT, - description: typing.Optional[str] = OMIT, - priority: typing.Optional[int] = OMIT, - match: typing.Optional[AttackProtectionCaptchaPolicyMatch] = OMIT, - action: typing.Optional[AttackProtectionCaptchaPolicyActionInput] = OMIT, + slug: typing.Optional[PortalSlug] = OMIT, + name: typing.Optional[PortalName] = OMIT, + client: typing.Optional[PortalClientSecretPostRequest] = OMIT, + navigation: typing.Optional[PortalNavigationNullable] = OMIT, + pages: typing.Optional[PortalPagesByTypeNullable] = OMIT, + custom_code: typing.Optional[PortalCustomCodeNullable] = OMIT, request_options: typing.Optional[RequestOptions] = None, - ) -> HttpResponse[AttackProtectionCaptchaPolicy]: + ) -> HttpResponse[Portal]: """ - Partially update a CAPTCHA attack protection policy. Only the provided fields are modified. A provided match or action replaces the stored value in full rather than merging with it; within action, a provider secret or API key that is omitted from a provided provider block keeps its stored value. - Parameters ---------- - id : str - ID of the CAPTCHA attack protection policy. + id : PortalId - name : typing.Optional[str] - Human-readable policy name. + slug : typing.Optional[PortalSlug] - description : typing.Optional[str] - Description of the policy's purpose. + name : typing.Optional[PortalName] - priority : typing.Optional[int] - Conflict resolution order. Lower number takes higher precedence. Must be unique per tenant. + client : typing.Optional[PortalClientSecretPostRequest] - match : typing.Optional[AttackProtectionCaptchaPolicyMatch] + navigation : typing.Optional[PortalNavigationNullable] - action : typing.Optional[AttackProtectionCaptchaPolicyActionInput] + pages : typing.Optional[PortalPagesByTypeNullable] + + custom_code : typing.Optional[PortalCustomCodeNullable] request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - HttpResponse[AttackProtectionCaptchaPolicy] - The CAPTCHA attack protection policy was successfully updated. + HttpResponse[Portal] + The portal was successfully updated. """ _response = self._client_wrapper.httpx_client.request( - f"attack-protection/captcha/policies/{quote_path_param(id)}", + f"portals/{quote_path_param(id)}", method="PATCH", json={ + "slug": slug, "name": name, - "description": description, - "priority": priority, - "match": convert_and_respect_annotation_metadata( - object_=match, annotation=AttackProtectionCaptchaPolicyMatch, direction="write" + "client": convert_and_respect_annotation_metadata( + object_=client, annotation=PortalClientSecretPostRequest, direction="write" + ), + "navigation": convert_and_respect_annotation_metadata( + object_=navigation, annotation=typing.Optional[PortalNavigationNullable], direction="write" ), - "action": convert_and_respect_annotation_metadata( - object_=action, annotation=AttackProtectionCaptchaPolicyActionInput, direction="write" + "pages": convert_and_respect_annotation_metadata( + object_=pages, annotation=typing.Optional[PortalPagesByTypeNullable], direction="write" + ), + "custom_code": convert_and_respect_annotation_metadata( + object_=custom_code, annotation=typing.Optional[PortalCustomCodeNullable], direction="write" ), }, headers={ @@ -518,9 +553,9 @@ def update( try: if 200 <= _response.status_code < 300: _data = typing.cast( - AttackProtectionCaptchaPolicy, + Portal, parse_obj_as( - type_=AttackProtectionCaptchaPolicy, # type: ignore + type_=Portal, # type: ignore object_=_response.json(), ), ) @@ -591,6 +626,17 @@ def update( ), ), ) + if _response.status_code == 500: + raise InternalServerError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) @@ -601,16 +647,14 @@ def update( raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) -class AsyncRawCaptchaPoliciesClient: +class AsyncRawPortalsClient: def __init__(self, *, client_wrapper: AsyncClientWrapper): self._client_wrapper = client_wrapper async def list( self, *, request_options: typing.Optional[RequestOptions] = None - ) -> AsyncHttpResponse[ListAttackProtectionCaptchaPoliciesResponseContent]: + ) -> AsyncHttpResponse[ListPortalsResponseContent]: """ - Retrieve all CAPTCHA attack protection policies for the tenant, sorted by priority ascending. - Parameters ---------- request_options : typing.Optional[RequestOptions] @@ -618,26 +662,26 @@ async def list( Returns ------- - AsyncHttpResponse[ListAttackProtectionCaptchaPoliciesResponseContent] - The tenant's CAPTCHA attack protection policies were successfully retrieved. + AsyncHttpResponse[ListPortalsResponseContent] + All portals were successfully retrieved. """ _response = await self._client_wrapper.httpx_client.request( - "attack-protection/captcha/policies", + "portals", method="GET", request_options=request_options, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - ListAttackProtectionCaptchaPoliciesResponseContent, + ListPortalsResponseContent, parse_obj_as( - type_=ListAttackProtectionCaptchaPoliciesResponseContent, # type: ignore + type_=ListPortalsResponseContent, # type: ignore object_=_response.json(), ), ) return AsyncHttpResponse(response=_response, data=_data) - if _response.status_code == 400: - raise BadRequestError( + if _response.status_code == 401: + raise UnauthorizedError( headers=dict(_response.headers), body=typing.cast( typing.Any, @@ -647,8 +691,8 @@ async def list( ), ), ) - if _response.status_code == 401: - raise UnauthorizedError( + if _response.status_code == 403: + raise ForbiddenError( headers=dict(_response.headers), body=typing.cast( typing.Any, @@ -658,8 +702,8 @@ async def list( ), ), ) - if _response.status_code == 403: - raise ForbiddenError( + if _response.status_code == 404: + raise NotFoundError( headers=dict(_response.headers), body=typing.cast( typing.Any, @@ -669,8 +713,8 @@ async def list( ), ), ) - if _response.status_code == 404: - raise NotFoundError( + if _response.status_code == 429: + raise TooManyRequestsError( headers=dict(_response.headers), body=typing.cast( typing.Any, @@ -680,8 +724,8 @@ async def list( ), ), ) - if _response.status_code == 429: - raise TooManyRequestsError( + if _response.status_code == 500: + raise InternalServerError( headers=dict(_response.headers), body=typing.cast( typing.Any, @@ -703,51 +747,54 @@ async def list( async def create( self, *, - name: str, - priority: int, - match: AttackProtectionCaptchaPolicyMatch, - action: AttackProtectionCaptchaPolicyActionInput, - description: typing.Optional[str] = OMIT, + slug: PortalSlug, + name: PortalName, + client: PortalClientSecretPostRequest, + navigation: typing.Optional[PortalNavigation] = OMIT, + pages: typing.Optional[PortalPagesByType] = OMIT, + custom_code: typing.Optional[PortalCustomCode] = OMIT, request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[AttackProtectionCaptchaPolicy]: + ) -> AsyncHttpResponse[Portal]: """ - Create a new CAPTCHA attack protection policy for the tenant. The maximum number of policies per tenant is determined by the tenant's subscription. - Parameters ---------- - name : str - Human-readable policy name. + slug : PortalSlug + + name : PortalName - priority : int - Conflict resolution order. Lower number takes higher precedence. Must be unique per tenant. + client : PortalClientSecretPostRequest - match : AttackProtectionCaptchaPolicyMatch + navigation : typing.Optional[PortalNavigation] - action : AttackProtectionCaptchaPolicyActionInput + pages : typing.Optional[PortalPagesByType] - description : typing.Optional[str] - Description of the attack protection policy. + custom_code : typing.Optional[PortalCustomCode] request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[AttackProtectionCaptchaPolicy] - The CAPTCHA attack protection policy was successfully created. + AsyncHttpResponse[Portal] + The portal was successfully created. """ _response = await self._client_wrapper.httpx_client.request( - "attack-protection/captcha/policies", + "portals", method="POST", json={ + "slug": slug, "name": name, - "description": description, - "priority": priority, - "match": convert_and_respect_annotation_metadata( - object_=match, annotation=AttackProtectionCaptchaPolicyMatch, direction="write" + "client": convert_and_respect_annotation_metadata( + object_=client, annotation=PortalClientSecretPostRequest, direction="write" ), - "action": convert_and_respect_annotation_metadata( - object_=action, annotation=AttackProtectionCaptchaPolicyActionInput, direction="write" + "navigation": convert_and_respect_annotation_metadata( + object_=navigation, annotation=PortalNavigation, direction="write" + ), + "pages": convert_and_respect_annotation_metadata( + object_=pages, annotation=PortalPagesByType, direction="write" + ), + "custom_code": convert_and_respect_annotation_metadata( + object_=custom_code, annotation=PortalCustomCode, direction="write" ), }, headers={ @@ -759,9 +806,9 @@ async def create( try: if 200 <= _response.status_code < 300: _data = typing.cast( - AttackProtectionCaptchaPolicy, + Portal, parse_obj_as( - type_=AttackProtectionCaptchaPolicy, # type: ignore + type_=Portal, # type: ignore object_=_response.json(), ), ) @@ -832,6 +879,17 @@ async def create( ), ), ) + if _response.status_code == 500: + raise InternalServerError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) @@ -842,35 +900,32 @@ async def create( raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def get( - self, id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> AsyncHttpResponse[AttackProtectionCaptchaPolicy]: + self, id: PortalId, *, request_options: typing.Optional[RequestOptions] = None + ) -> AsyncHttpResponse[Portal]: """ - Retrieve a single CAPTCHA attack protection policy for the tenant by ID. - Parameters ---------- - id : str - ID of the CAPTCHA attack protection policy. + id : PortalId request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[AttackProtectionCaptchaPolicy] - The CAPTCHA attack protection policy was successfully retrieved. + AsyncHttpResponse[Portal] + The portal was successfully retrieved. """ _response = await self._client_wrapper.httpx_client.request( - f"attack-protection/captcha/policies/{quote_path_param(id)}", + f"portals/{quote_path_param(id)}", method="GET", request_options=request_options, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - AttackProtectionCaptchaPolicy, + Portal, parse_obj_as( - type_=AttackProtectionCaptchaPolicy, # type: ignore + type_=Portal, # type: ignore object_=_response.json(), ), ) @@ -930,6 +985,17 @@ async def get( ), ), ) + if _response.status_code == 500: + raise InternalServerError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) @@ -940,15 +1006,12 @@ async def get( raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def delete( - self, id: str, *, request_options: typing.Optional[RequestOptions] = None + self, id: PortalId, *, request_options: typing.Optional[RequestOptions] = None ) -> AsyncHttpResponse[None]: """ - Delete a CAPTCHA attack protection policy for the tenant. - Parameters ---------- - id : str - ID of the CAPTCHA attack protection policy. + id : PortalId request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -958,7 +1021,7 @@ async def delete( AsyncHttpResponse[None] """ _response = await self._client_wrapper.httpx_client.request( - f"attack-protection/captcha/policies/{quote_path_param(id)}", + f"portals/{quote_path_param(id)}", method="DELETE", request_options=request_options, ) @@ -1020,6 +1083,17 @@ async def delete( ), ), ) + if _response.status_code == 500: + raise InternalServerError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) @@ -1031,56 +1105,58 @@ async def delete( async def update( self, - id: str, + id: PortalId, *, - name: typing.Optional[str] = OMIT, - description: typing.Optional[str] = OMIT, - priority: typing.Optional[int] = OMIT, - match: typing.Optional[AttackProtectionCaptchaPolicyMatch] = OMIT, - action: typing.Optional[AttackProtectionCaptchaPolicyActionInput] = OMIT, + slug: typing.Optional[PortalSlug] = OMIT, + name: typing.Optional[PortalName] = OMIT, + client: typing.Optional[PortalClientSecretPostRequest] = OMIT, + navigation: typing.Optional[PortalNavigationNullable] = OMIT, + pages: typing.Optional[PortalPagesByTypeNullable] = OMIT, + custom_code: typing.Optional[PortalCustomCodeNullable] = OMIT, request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[AttackProtectionCaptchaPolicy]: + ) -> AsyncHttpResponse[Portal]: """ - Partially update a CAPTCHA attack protection policy. Only the provided fields are modified. A provided match or action replaces the stored value in full rather than merging with it; within action, a provider secret or API key that is omitted from a provided provider block keeps its stored value. - Parameters ---------- - id : str - ID of the CAPTCHA attack protection policy. + id : PortalId - name : typing.Optional[str] - Human-readable policy name. + slug : typing.Optional[PortalSlug] - description : typing.Optional[str] - Description of the policy's purpose. + name : typing.Optional[PortalName] - priority : typing.Optional[int] - Conflict resolution order. Lower number takes higher precedence. Must be unique per tenant. + client : typing.Optional[PortalClientSecretPostRequest] - match : typing.Optional[AttackProtectionCaptchaPolicyMatch] + navigation : typing.Optional[PortalNavigationNullable] - action : typing.Optional[AttackProtectionCaptchaPolicyActionInput] + pages : typing.Optional[PortalPagesByTypeNullable] + + custom_code : typing.Optional[PortalCustomCodeNullable] request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[AttackProtectionCaptchaPolicy] - The CAPTCHA attack protection policy was successfully updated. + AsyncHttpResponse[Portal] + The portal was successfully updated. """ _response = await self._client_wrapper.httpx_client.request( - f"attack-protection/captcha/policies/{quote_path_param(id)}", + f"portals/{quote_path_param(id)}", method="PATCH", json={ + "slug": slug, "name": name, - "description": description, - "priority": priority, - "match": convert_and_respect_annotation_metadata( - object_=match, annotation=AttackProtectionCaptchaPolicyMatch, direction="write" + "client": convert_and_respect_annotation_metadata( + object_=client, annotation=PortalClientSecretPostRequest, direction="write" + ), + "navigation": convert_and_respect_annotation_metadata( + object_=navigation, annotation=typing.Optional[PortalNavigationNullable], direction="write" ), - "action": convert_and_respect_annotation_metadata( - object_=action, annotation=AttackProtectionCaptchaPolicyActionInput, direction="write" + "pages": convert_and_respect_annotation_metadata( + object_=pages, annotation=typing.Optional[PortalPagesByTypeNullable], direction="write" + ), + "custom_code": convert_and_respect_annotation_metadata( + object_=custom_code, annotation=typing.Optional[PortalCustomCodeNullable], direction="write" ), }, headers={ @@ -1092,9 +1168,9 @@ async def update( try: if 200 <= _response.status_code < 300: _data = typing.cast( - AttackProtectionCaptchaPolicy, + Portal, parse_obj_as( - type_=AttackProtectionCaptchaPolicy, # type: ignore + type_=Portal, # type: ignore object_=_response.json(), ), ) @@ -1165,6 +1241,17 @@ async def update( ), ), ) + if _response.status_code == 500: + raise InternalServerError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) diff --git a/src/auth0/management/resource_servers/client.py b/src/auth0/management/resource_servers/client.py index 9eecbf68..cf325c2f 100644 --- a/src/auth0/management/resource_servers/client.py +++ b/src/auth0/management/resource_servers/client.py @@ -12,6 +12,7 @@ ) from ..types.resource_server import ResourceServer from ..types.resource_server_access_token import ResourceServerAccessToken +from ..types.resource_server_agent_subject_claims_schema_enum import ResourceServerAgentSubjectClaimsSchemaEnum from ..types.resource_server_authorization_policy import ResourceServerAuthorizationPolicy from ..types.resource_server_consent_policy_enum import ResourceServerConsentPolicyEnum from ..types.resource_server_proof_of_possession import ResourceServerProofOfPossession @@ -21,6 +22,7 @@ from ..types.resource_server_subject_type_authorization import ResourceServerSubjectTypeAuthorization from ..types.resource_server_token_dialect_schema_enum import ResourceServerTokenDialectSchemaEnum from ..types.resource_server_token_encryption import ResourceServerTokenEncryption +from ..types.resource_server_type_enum import ResourceServerTypeEnum from ..types.search_parser_enum import SearchParserEnum from ..types.search_resource_servers_response_content import SearchResourceServersResponseContent from ..types.signing_algorithm_enum import SigningAlgorithmEnum @@ -137,6 +139,8 @@ def create( proof_of_possession: typing.Optional[ResourceServerProofOfPossession] = OMIT, subject_type_authorization: typing.Optional[ResourceServerSubjectTypeAuthorization] = OMIT, authorization_policy: typing.Optional[ResourceServerAuthorizationPolicy] = OMIT, + agent_subject_claims: typing.Optional[ResourceServerAgentSubjectClaimsSchemaEnum] = OMIT, + type: typing.Optional[ResourceServerTypeEnum] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> CreateResourceServerResponseContent: """ @@ -198,6 +202,10 @@ def create( authorization_policy : typing.Optional[ResourceServerAuthorizationPolicy] + agent_subject_claims : typing.Optional[ResourceServerAgentSubjectClaimsSchemaEnum] + + type : typing.Optional[ResourceServerTypeEnum] + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -239,6 +247,8 @@ def create( proof_of_possession=proof_of_possession, subject_type_authorization=subject_type_authorization, authorization_policy=authorization_policy, + agent_subject_claims=agent_subject_claims, + type=type, request_options=request_options, ) return _response.data @@ -420,6 +430,8 @@ def update( proof_of_possession: typing.Optional[ResourceServerProofOfPossession] = OMIT, subject_type_authorization: typing.Optional[ResourceServerSubjectTypeAuthorization] = OMIT, authorization_policy: typing.Optional[ResourceServerAuthorizationPolicy] = OMIT, + agent_subject_claims: typing.Optional[ResourceServerAgentSubjectClaimsSchemaEnum] = OMIT, + type: typing.Optional[ResourceServerTypeEnum] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> UpdateResourceServerResponseContent: """ @@ -481,6 +493,10 @@ def update( authorization_policy : typing.Optional[ResourceServerAuthorizationPolicy] + agent_subject_claims : typing.Optional[ResourceServerAgentSubjectClaimsSchemaEnum] + + type : typing.Optional[ResourceServerTypeEnum] + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -522,6 +538,8 @@ def update( proof_of_possession=proof_of_possession, subject_type_authorization=subject_type_authorization, authorization_policy=authorization_policy, + agent_subject_claims=agent_subject_claims, + type=type, request_options=request_options, ) return _response.data @@ -642,6 +660,8 @@ async def create( proof_of_possession: typing.Optional[ResourceServerProofOfPossession] = OMIT, subject_type_authorization: typing.Optional[ResourceServerSubjectTypeAuthorization] = OMIT, authorization_policy: typing.Optional[ResourceServerAuthorizationPolicy] = OMIT, + agent_subject_claims: typing.Optional[ResourceServerAgentSubjectClaimsSchemaEnum] = OMIT, + type: typing.Optional[ResourceServerTypeEnum] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> CreateResourceServerResponseContent: """ @@ -703,6 +723,10 @@ async def create( authorization_policy : typing.Optional[ResourceServerAuthorizationPolicy] + agent_subject_claims : typing.Optional[ResourceServerAgentSubjectClaimsSchemaEnum] + + type : typing.Optional[ResourceServerTypeEnum] + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -752,6 +776,8 @@ async def main() -> None: proof_of_possession=proof_of_possession, subject_type_authorization=subject_type_authorization, authorization_policy=authorization_policy, + agent_subject_claims=agent_subject_claims, + type=type, request_options=request_options, ) return _response.data @@ -958,6 +984,8 @@ async def update( proof_of_possession: typing.Optional[ResourceServerProofOfPossession] = OMIT, subject_type_authorization: typing.Optional[ResourceServerSubjectTypeAuthorization] = OMIT, authorization_policy: typing.Optional[ResourceServerAuthorizationPolicy] = OMIT, + agent_subject_claims: typing.Optional[ResourceServerAgentSubjectClaimsSchemaEnum] = OMIT, + type: typing.Optional[ResourceServerTypeEnum] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> UpdateResourceServerResponseContent: """ @@ -1019,6 +1047,10 @@ async def update( authorization_policy : typing.Optional[ResourceServerAuthorizationPolicy] + agent_subject_claims : typing.Optional[ResourceServerAgentSubjectClaimsSchemaEnum] + + type : typing.Optional[ResourceServerTypeEnum] + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -1068,6 +1100,8 @@ async def main() -> None: proof_of_possession=proof_of_possession, subject_type_authorization=subject_type_authorization, authorization_policy=authorization_policy, + agent_subject_claims=agent_subject_claims, + type=type, request_options=request_options, ) return _response.data diff --git a/src/auth0/management/resource_servers/raw_client.py b/src/auth0/management/resource_servers/raw_client.py index 8efc5715..c4bdf0a8 100644 --- a/src/auth0/management/resource_servers/raw_client.py +++ b/src/auth0/management/resource_servers/raw_client.py @@ -27,6 +27,7 @@ ) from ..types.resource_server import ResourceServer from ..types.resource_server_access_token import ResourceServerAccessToken +from ..types.resource_server_agent_subject_claims_schema_enum import ResourceServerAgentSubjectClaimsSchemaEnum from ..types.resource_server_authorization_policy import ResourceServerAuthorizationPolicy from ..types.resource_server_consent_policy_enum import ResourceServerConsentPolicyEnum from ..types.resource_server_proof_of_possession import ResourceServerProofOfPossession @@ -36,6 +37,7 @@ from ..types.resource_server_subject_type_authorization import ResourceServerSubjectTypeAuthorization from ..types.resource_server_token_dialect_schema_enum import ResourceServerTokenDialectSchemaEnum from ..types.resource_server_token_encryption import ResourceServerTokenEncryption +from ..types.resource_server_type_enum import ResourceServerTypeEnum from ..types.search_parser_enum import SearchParserEnum from ..types.search_resource_servers_response_content import SearchResourceServersResponseContent from ..types.signing_algorithm_enum import SigningAlgorithmEnum @@ -199,6 +201,8 @@ def create( proof_of_possession: typing.Optional[ResourceServerProofOfPossession] = OMIT, subject_type_authorization: typing.Optional[ResourceServerSubjectTypeAuthorization] = OMIT, authorization_policy: typing.Optional[ResourceServerAuthorizationPolicy] = OMIT, + agent_subject_claims: typing.Optional[ResourceServerAgentSubjectClaimsSchemaEnum] = OMIT, + type: typing.Optional[ResourceServerTypeEnum] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[CreateResourceServerResponseContent]: """ @@ -260,6 +264,10 @@ def create( authorization_policy : typing.Optional[ResourceServerAuthorizationPolicy] + agent_subject_claims : typing.Optional[ResourceServerAgentSubjectClaimsSchemaEnum] + + type : typing.Optional[ResourceServerTypeEnum] + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -313,6 +321,8 @@ def create( annotation=typing.Optional[ResourceServerAuthorizationPolicy], direction="write", ), + "agent_subject_claims": agent_subject_claims, + "type": type, }, headers={ "content-type": "application/json", @@ -775,6 +785,8 @@ def update( proof_of_possession: typing.Optional[ResourceServerProofOfPossession] = OMIT, subject_type_authorization: typing.Optional[ResourceServerSubjectTypeAuthorization] = OMIT, authorization_policy: typing.Optional[ResourceServerAuthorizationPolicy] = OMIT, + agent_subject_claims: typing.Optional[ResourceServerAgentSubjectClaimsSchemaEnum] = OMIT, + type: typing.Optional[ResourceServerTypeEnum] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[UpdateResourceServerResponseContent]: """ @@ -836,6 +848,10 @@ def update( authorization_policy : typing.Optional[ResourceServerAuthorizationPolicy] + agent_subject_claims : typing.Optional[ResourceServerAgentSubjectClaimsSchemaEnum] + + type : typing.Optional[ResourceServerTypeEnum] + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -888,6 +904,8 @@ def update( annotation=typing.Optional[ResourceServerAuthorizationPolicy], direction="write", ), + "agent_subject_claims": agent_subject_claims, + "type": type, }, headers={ "content-type": "application/json", @@ -1126,6 +1144,8 @@ async def create( proof_of_possession: typing.Optional[ResourceServerProofOfPossession] = OMIT, subject_type_authorization: typing.Optional[ResourceServerSubjectTypeAuthorization] = OMIT, authorization_policy: typing.Optional[ResourceServerAuthorizationPolicy] = OMIT, + agent_subject_claims: typing.Optional[ResourceServerAgentSubjectClaimsSchemaEnum] = OMIT, + type: typing.Optional[ResourceServerTypeEnum] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[CreateResourceServerResponseContent]: """ @@ -1187,6 +1207,10 @@ async def create( authorization_policy : typing.Optional[ResourceServerAuthorizationPolicy] + agent_subject_claims : typing.Optional[ResourceServerAgentSubjectClaimsSchemaEnum] + + type : typing.Optional[ResourceServerTypeEnum] + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -1240,6 +1264,8 @@ async def create( annotation=typing.Optional[ResourceServerAuthorizationPolicy], direction="write", ), + "agent_subject_claims": agent_subject_claims, + "type": type, }, headers={ "content-type": "application/json", @@ -1707,6 +1733,8 @@ async def update( proof_of_possession: typing.Optional[ResourceServerProofOfPossession] = OMIT, subject_type_authorization: typing.Optional[ResourceServerSubjectTypeAuthorization] = OMIT, authorization_policy: typing.Optional[ResourceServerAuthorizationPolicy] = OMIT, + agent_subject_claims: typing.Optional[ResourceServerAgentSubjectClaimsSchemaEnum] = OMIT, + type: typing.Optional[ResourceServerTypeEnum] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[UpdateResourceServerResponseContent]: """ @@ -1768,6 +1796,10 @@ async def update( authorization_policy : typing.Optional[ResourceServerAuthorizationPolicy] + agent_subject_claims : typing.Optional[ResourceServerAgentSubjectClaimsSchemaEnum] + + type : typing.Optional[ResourceServerTypeEnum] + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -1820,6 +1852,8 @@ async def update( annotation=typing.Optional[ResourceServerAuthorizationPolicy], direction="write", ), + "agent_subject_claims": agent_subject_claims, + "type": type, }, headers={ "content-type": "application/json", diff --git a/src/auth0/management/types/__init__.py b/src/auth0/management/types/__init__.py index b1f90043..879a7ea4 100644 --- a/src/auth0/management/types/__init__.py +++ b/src/auth0/management/types/__init__.py @@ -80,10 +80,6 @@ AttackProtectionCaptchaFriendlyCaptchaResponseContent, ) from .attack_protection_captcha_hcaptcha_response_content import AttackProtectionCaptchaHcaptchaResponseContent - from .attack_protection_captcha_policy import AttackProtectionCaptchaPolicy - from .attack_protection_captcha_policy_action import AttackProtectionCaptchaPolicyAction - from .attack_protection_captcha_policy_action_input import AttackProtectionCaptchaPolicyActionInput - from .attack_protection_captcha_policy_match import AttackProtectionCaptchaPolicyMatch from .attack_protection_captcha_provider_id import AttackProtectionCaptchaProviderId from .attack_protection_captcha_recaptcha_enterprise_response_content import ( AttackProtectionCaptchaRecaptchaEnterpriseResponseContent, @@ -168,19 +164,6 @@ from .brute_force_protection_mode_enum import BruteForceProtectionModeEnum from .brute_force_protection_shields_enum import BruteForceProtectionShieldsEnum from .bulk_update_acul_response_content import BulkUpdateAculResponseContent - from .captcha_active_provider_enum import CaptchaActiveProviderEnum - from .captcha_policy_action_arkose import CaptchaPolicyActionArkose - from .captcha_policy_action_arkose_input import CaptchaPolicyActionArkoseInput - from .captcha_policy_action_auth_challenge import CaptchaPolicyActionAuthChallenge - from .captcha_policy_action_friendly_captcha import CaptchaPolicyActionFriendlyCaptcha - from .captcha_policy_action_friendly_captcha_input import CaptchaPolicyActionFriendlyCaptchaInput - from .captcha_policy_action_hcaptcha import CaptchaPolicyActionHcaptcha - from .captcha_policy_action_hcaptcha_input import CaptchaPolicyActionHcaptchaInput - from .captcha_policy_action_recaptcha_enterprise import CaptchaPolicyActionRecaptchaEnterprise - from .captcha_policy_action_recaptcha_enterprise_input import CaptchaPolicyActionRecaptchaEnterpriseInput - from .captcha_policy_action_recaptcha_v_2 import CaptchaPolicyActionRecaptchaV2 - from .captcha_policy_action_recaptcha_v_2_input import CaptchaPolicyActionRecaptchaV2Input - from .captcha_policy_action_simple_captcha import CaptchaPolicyActionSimpleCaptcha from .certificate_subject_dn_credential import CertificateSubjectDnCredential from .certificate_subject_dn_credential_type_enum import CertificateSubjectDnCredentialTypeEnum from .change_password_ticket_identity import ChangePasswordTicketIdentity @@ -303,6 +286,7 @@ from .client_oidc_backchannel_logout_initiators_mode_enum import ClientOidcBackchannelLogoutInitiatorsModeEnum from .client_oidc_backchannel_logout_session_metadata import ClientOidcBackchannelLogoutSessionMetadata from .client_oidc_backchannel_logout_settings import ClientOidcBackchannelLogoutSettings + from .client_oidc_support import ClientOidcSupport from .client_oidc_support_allowed_scopes_enum import ClientOidcSupportAllowedScopesEnum from .client_oidc_support_patch import ClientOidcSupportPatch from .client_oidc_support_post import ClientOidcSupportPost @@ -320,6 +304,13 @@ ClientProfileApplyPolicyExternalMetadataTypeEnum, ) from .client_profile_client_configuration import ClientProfileClientConfiguration + from .client_profile_client_configuration_oidc_support import ClientProfileClientConfigurationOidcSupport + from .client_profile_client_configuration_oidc_support_allowed_scopes_enum import ( + ClientProfileClientConfigurationOidcSupportAllowedScopesEnum, + ) + from .client_profile_client_configuration_oidc_support_default_value import ( + ClientProfileClientConfigurationOidcSupportDefaultValue, + ) from .client_profile_client_configuration_organization_discovery_method_enum import ( ClientProfileClientConfigurationOrganizationDiscoveryMethodEnum, ) @@ -432,6 +423,7 @@ from .connection_client_id_oidc import ConnectionClientIdOidc from .connection_client_id_paypal import ConnectionClientIdPaypal from .connection_client_id_salesforce import ConnectionClientIdSalesforce + from .connection_client_id_samlxaa_requesting_app import ConnectionClientIdSamlxaaRequestingApp from .connection_client_id_windows_live import ConnectionClientIdWindowsLive from .connection_client_protocol_saml import ConnectionClientProtocolSaml from .connection_client_secret import ConnectionClientSecret @@ -449,6 +441,7 @@ from .connection_client_secret_oidc import ConnectionClientSecretOidc from .connection_client_secret_paypal import ConnectionClientSecretPaypal from .connection_client_secret_salesforce import ConnectionClientSecretSalesforce + from .connection_client_secret_samlxaa_requesting_app import ConnectionClientSecretSamlxaaRequestingApp from .connection_client_secret_windows_live import ConnectionClientSecretWindowsLive from .connection_common import ConnectionCommon from .connection_community_base_url_salesforce import ConnectionCommunityBaseUrlSalesforce @@ -643,6 +636,8 @@ from .connection_options_wordpress import ConnectionOptionsWordpress from .connection_options_yahoo import ConnectionOptionsYahoo from .connection_options_yandex import ConnectionOptionsYandex + from .connection_otp_channel_settings import ConnectionOtpChannelSettings + from .connection_otp_settings import ConnectionOtpSettings from .connection_passkey_authentication_method import ConnectionPasskeyAuthenticationMethod from .connection_passkey_challenge_ui_enum import ConnectionPasskeyChallengeUiEnum from .connection_passkey_options import ConnectionPasskeyOptions @@ -955,6 +950,7 @@ from .connections_discovery_url import ConnectionsDiscoveryUrl from .connections_metadata import ConnectionsMetadata from .connections_oidc_metadata import ConnectionsOidcMetadata + from .consent_signing_key import ConsentSigningKey from .content_security_policy_config import ContentSecurityPolicyConfig from .create_action_module_response_content import CreateActionModuleResponseContent from .create_action_module_version_response_content import CreateActionModuleVersionResponseContent @@ -3470,6 +3466,16 @@ from .event_stream_cloud_event_context_request import EventStreamCloudEventContextRequest from .event_stream_cloud_event_context_request_geo import EventStreamCloudEventContextRequestGeo from .event_stream_cloud_event_context_tenant import EventStreamCloudEventContextTenant + from .event_stream_cloud_event_context_transaction import EventStreamCloudEventContextTransaction + from .event_stream_cloud_event_context_transaction_protocol_enum import ( + EventStreamCloudEventContextTransactionProtocolEnum, + ) + from .event_stream_cloud_event_context_transaction_response_mode_enum import ( + EventStreamCloudEventContextTransactionResponseModeEnum, + ) + from .event_stream_cloud_event_context_transaction_response_type_item_enum import ( + EventStreamCloudEventContextTransactionResponseTypeItemEnum, + ) from .event_stream_cloud_event_data import EventStreamCloudEventData from .event_stream_cloud_event_error_code_enum import EventStreamCloudEventErrorCodeEnum from .event_stream_cloud_event_error_detail import EventStreamCloudEventErrorDetail @@ -5733,6 +5739,8 @@ from .integration_required_param_option import IntegrationRequiredParamOption from .integration_required_param_type_enum import IntegrationRequiredParamTypeEnum from .integration_sem_ver import IntegrationSemVer + from .internal_server_error_body import InternalServerErrorBody + from .internal_server_error_body_error import InternalServerErrorBodyError from .job_file_format_enum import JobFileFormatEnum from .linked_client_configuration import LinkedClientConfiguration from .list_action_bindings_paginated_response_content import ListActionBindingsPaginatedResponseContent @@ -5742,9 +5750,6 @@ from .list_aculs_offset_paginated_response_content import ListAculsOffsetPaginatedResponseContent from .list_aculs_response_content_item import ListAculsResponseContentItem from .list_agents_response_content import ListAgentsResponseContent - from .list_attack_protection_captcha_policies_response_content import ( - ListAttackProtectionCaptchaPoliciesResponseContent, - ) from .list_branding_phone_providers_response_content import ListBrandingPhoneProvidersResponseContent from .list_client_connections_response_content import ListClientConnectionsResponseContent from .list_client_grant_organizations_paginated_response_content import ( @@ -5811,6 +5816,7 @@ from .list_organization_role_members_response_content import ListOrganizationRoleMembersResponseContent from .list_organizations_paginated_response_content import ListOrganizationsPaginatedResponseContent from .list_phone_templates_response_content import ListPhoneTemplatesResponseContent + from .list_portals_response_content import ListPortalsResponseContent from .list_rate_limit_policies_paginated_response_content import ListRateLimitPoliciesPaginatedResponseContent from .list_refresh_tokens_paginated_response_content import ListRefreshTokensPaginatedResponseContent from .list_resource_server_offset_paginated_response_content import ListResourceServerOffsetPaginatedResponseContent @@ -5837,6 +5843,7 @@ from .list_user_blocks_by_identifier_response_content import ListUserBlocksByIdentifierResponseContent from .list_user_blocks_response_content import ListUserBlocksResponseContent from .list_user_connected_accounts_response_content import ListUserConnectedAccountsResponseContent + from .list_user_consent_signing_keys_response_content import ListUserConsentSigningKeysResponseContent from .list_user_effective_permission_role_sources_response_content import ( ListUserEffectivePermissionRoleSourcesResponseContent, ) @@ -5969,6 +5976,68 @@ from .organization_sort_field_enum import OrganizationSortFieldEnum from .organization_third_party_client_access_enum import OrganizationThirdPartyClientAccessEnum from .organization_usage_enum import OrganizationUsageEnum + from .page_component import ( + PageComponent, + PageComponent_PageComponentAuth0Form, + PageComponent_PageComponentAuth0MediaImage, + PageComponent_PageComponentAuth0MyAccountMfaManagement, + PageComponent_PageComponentAuth0MyAccountPasskeyManagement, + PageComponent_PageComponentAuth0MyOrganizationDetailsEdit, + PageComponent_PageComponentAuth0MyOrganizationDomainTable, + PageComponent_PageComponentAuth0MyOrganizationMemberManagement, + PageComponent_PageComponentAuth0StructureSection, + PageComponent_PageComponentAuth0StructureSeparator, + PageComponent_PageComponentAuth0TypographyHeading, + PageComponent_PageComponentAuth0TypographyRichText, + ) + from .page_component_auth_0_form import PageComponentAuth0Form + from .page_component_auth_0_form_config import PageComponentAuth0FormConfig + from .page_component_auth_0_media_image import PageComponentAuth0MediaImage + from .page_component_auth_0_media_image_config import PageComponentAuth0MediaImageConfig + from .page_component_auth_0_my_account_mfa_management import PageComponentAuth0MyAccountMfaManagement + from .page_component_auth_0_my_account_mfa_management_config import PageComponentAuth0MyAccountMfaManagementConfig + from .page_component_auth_0_my_account_passkey_management import PageComponentAuth0MyAccountPasskeyManagement + from .page_component_auth_0_my_account_passkey_management_config import ( + PageComponentAuth0MyAccountPasskeyManagementConfig, + ) + from .page_component_auth_0_my_organization_details_edit import PageComponentAuth0MyOrganizationDetailsEdit + from .page_component_auth_0_my_organization_details_edit_config import ( + PageComponentAuth0MyOrganizationDetailsEditConfig, + ) + from .page_component_auth_0_my_organization_domain_table import PageComponentAuth0MyOrganizationDomainTable + from .page_component_auth_0_my_organization_domain_table_config import ( + PageComponentAuth0MyOrganizationDomainTableConfig, + ) + from .page_component_auth_0_my_organization_member_management import ( + PageComponentAuth0MyOrganizationMemberManagement, + ) + from .page_component_auth_0_my_organization_member_management_config import ( + PageComponentAuth0MyOrganizationMemberManagementConfig, + ) + from .page_component_auth_0_structure_section import PageComponentAuth0StructureSection + from .page_component_auth_0_structure_section_config import PageComponentAuth0StructureSectionConfig + from .page_component_auth_0_structure_section_variant_enum import PageComponentAuth0StructureSectionVariantEnum + from .page_component_auth_0_structure_separator import PageComponentAuth0StructureSeparator + from .page_component_auth_0_structure_separator_config import PageComponentAuth0StructureSeparatorConfig + from .page_component_auth_0_structure_separator_variant_enum import PageComponentAuth0StructureSeparatorVariantEnum + from .page_component_auth_0_typography_heading import PageComponentAuth0TypographyHeading + from .page_component_auth_0_typography_heading_config import PageComponentAuth0TypographyHeadingConfig + from .page_component_auth_0_typography_rich_text import PageComponentAuth0TypographyRichText + from .page_component_auth_0_typography_rich_text_config import PageComponentAuth0TypographyRichTextConfig + from .page_component_no_children import ( + PageComponentNoChildren, + PageComponentNoChildren_PageComponentAuth0Form, + PageComponentNoChildren_PageComponentAuth0MediaImage, + PageComponentNoChildren_PageComponentAuth0MyAccountMfaManagement, + PageComponentNoChildren_PageComponentAuth0MyAccountPasskeyManagement, + PageComponentNoChildren_PageComponentAuth0MyOrganizationDetailsEdit, + PageComponentNoChildren_PageComponentAuth0MyOrganizationDomainTable, + PageComponentNoChildren_PageComponentAuth0MyOrganizationMemberManagement, + PageComponentNoChildren_PageComponentAuth0StructureSeparator, + PageComponentNoChildren_PageComponentAuth0TypographyHeading, + PageComponentNoChildren_PageComponentAuth0TypographyRichText, + ) + from .page_slug import PageSlug from .partial_groups_enum import PartialGroupsEnum from .partial_phone_template_content import PartialPhoneTemplateContent from .password_character_type_enum import PasswordCharacterTypeEnum @@ -6014,6 +6083,26 @@ from .phone_template_body import PhoneTemplateBody from .phone_template_content import PhoneTemplateContent from .phone_template_notification_type_enum import PhoneTemplateNotificationTypeEnum + from .portal import Portal + from .portal_client_secret_post import PortalClientSecretPost + from .portal_client_secret_post_request import PortalClientSecretPostRequest + from .portal_client_secret_post_request_token_endpoint_auth_method import ( + PortalClientSecretPostRequestTokenEndpointAuthMethod, + ) + from .portal_client_secret_post_token_endpoint_auth_method import PortalClientSecretPostTokenEndpointAuthMethod + from .portal_custom_code import PortalCustomCode + from .portal_custom_code_nullable import PortalCustomCodeNullable + from .portal_date_time import PortalDateTime + from .portal_id import PortalId + from .portal_name import PortalName + from .portal_navigation import PortalNavigation + from .portal_navigation_nullable import PortalNavigationNullable + from .portal_page import PortalPage + from .portal_pages_by_type import PortalPagesByType + from .portal_pages_by_type_nullable import PortalPagesByTypeNullable + from .portal_slug import PortalSlug + from .portal_summary import PortalSummary + from .position import Position from .post_client_credential_response_content import PostClientCredentialResponseContent from .post_connection_keys_alg_enum import PostConnectionKeysAlgEnum from .post_connection_keys_request_content import PostConnectionKeysRequestContent @@ -6056,6 +6145,8 @@ from .resource_server_access_token_custom_claims_mapping_rule import ( ResourceServerAccessTokenCustomClaimsMappingRule, ) + from .resource_server_agent_subject_claims_response_enum import ResourceServerAgentSubjectClaimsResponseEnum + from .resource_server_agent_subject_claims_schema_enum import ResourceServerAgentSubjectClaimsSchemaEnum from .resource_server_authorization_policy import ResourceServerAuthorizationPolicy from .resource_server_consent_policy_enum import ResourceServerConsentPolicyEnum from .resource_server_proof_of_possession import ResourceServerProofOfPossession @@ -6085,6 +6176,7 @@ from .resource_server_token_encryption_algorithm_enum import ResourceServerTokenEncryptionAlgorithmEnum from .resource_server_token_encryption_format_enum import ResourceServerTokenEncryptionFormatEnum from .resource_server_token_encryption_key import ResourceServerTokenEncryptionKey + from .resource_server_type_enum import ResourceServerTypeEnum from .resource_server_verification_key_pem_certificate import ResourceServerVerificationKeyPemCertificate from .revoked_signing_keys_response_content import RevokedSigningKeysResponseContent from .role import Role @@ -6214,6 +6306,22 @@ from .set_user_authentication_methods import SetUserAuthenticationMethods from .set_user_authentication_methods_request_content import SetUserAuthenticationMethodsRequestContent from .sets_custom_texts_by_language_request_content import SetsCustomTextsByLanguageRequestContent + from .sidebar import Sidebar + from .sidebar_component import ( + SidebarComponent, + SidebarComponent_SidebarComponentAuth0ExternalLink, + SidebarComponent_SidebarComponentAuth0ExternalLinkV2, + SidebarComponent_SidebarComponentAuth0InternalLink, + SidebarComponent_SidebarComponentAuth0InternalLinkV2, + ) + from .sidebar_component_auth_0_external_link import SidebarComponentAuth0ExternalLink + from .sidebar_component_auth_0_external_link_config import SidebarComponentAuth0ExternalLinkConfig + from .sidebar_component_auth_0_external_link_v_2 import SidebarComponentAuth0ExternalLinkV2 + from .sidebar_component_auth_0_external_link_v_2_config import SidebarComponentAuth0ExternalLinkV2Config + from .sidebar_component_auth_0_internal_link import SidebarComponentAuth0InternalLink + from .sidebar_component_auth_0_internal_link_config import SidebarComponentAuth0InternalLinkConfig + from .sidebar_component_auth_0_internal_link_v_2 import SidebarComponentAuth0InternalLinkV2 + from .sidebar_component_auth_0_internal_link_v_2_config import SidebarComponentAuth0InternalLinkV2Config from .signing_algorithm_enum import SigningAlgorithmEnum from .signing_keys import SigningKeys from .signing_keys_date import SigningKeysDate @@ -6568,10 +6676,6 @@ "AttackProtectionCaptchaAuthChallengeResponseContent": ".attack_protection_captcha_auth_challenge_response_content", "AttackProtectionCaptchaFriendlyCaptchaResponseContent": ".attack_protection_captcha_friendly_captcha_response_content", "AttackProtectionCaptchaHcaptchaResponseContent": ".attack_protection_captcha_hcaptcha_response_content", - "AttackProtectionCaptchaPolicy": ".attack_protection_captcha_policy", - "AttackProtectionCaptchaPolicyAction": ".attack_protection_captcha_policy_action", - "AttackProtectionCaptchaPolicyActionInput": ".attack_protection_captcha_policy_action_input", - "AttackProtectionCaptchaPolicyMatch": ".attack_protection_captcha_policy_match", "AttackProtectionCaptchaProviderId": ".attack_protection_captcha_provider_id", "AttackProtectionCaptchaRecaptchaEnterpriseResponseContent": ".attack_protection_captcha_recaptcha_enterprise_response_content", "AttackProtectionCaptchaRecaptchaV2ResponseContent": ".attack_protection_captcha_recaptcha_v_2_response_content", @@ -6638,19 +6742,6 @@ "BruteForceProtectionModeEnum": ".brute_force_protection_mode_enum", "BruteForceProtectionShieldsEnum": ".brute_force_protection_shields_enum", "BulkUpdateAculResponseContent": ".bulk_update_acul_response_content", - "CaptchaActiveProviderEnum": ".captcha_active_provider_enum", - "CaptchaPolicyActionArkose": ".captcha_policy_action_arkose", - "CaptchaPolicyActionArkoseInput": ".captcha_policy_action_arkose_input", - "CaptchaPolicyActionAuthChallenge": ".captcha_policy_action_auth_challenge", - "CaptchaPolicyActionFriendlyCaptcha": ".captcha_policy_action_friendly_captcha", - "CaptchaPolicyActionFriendlyCaptchaInput": ".captcha_policy_action_friendly_captcha_input", - "CaptchaPolicyActionHcaptcha": ".captcha_policy_action_hcaptcha", - "CaptchaPolicyActionHcaptchaInput": ".captcha_policy_action_hcaptcha_input", - "CaptchaPolicyActionRecaptchaEnterprise": ".captcha_policy_action_recaptcha_enterprise", - "CaptchaPolicyActionRecaptchaEnterpriseInput": ".captcha_policy_action_recaptcha_enterprise_input", - "CaptchaPolicyActionRecaptchaV2": ".captcha_policy_action_recaptcha_v_2", - "CaptchaPolicyActionRecaptchaV2Input": ".captcha_policy_action_recaptcha_v_2_input", - "CaptchaPolicyActionSimpleCaptcha": ".captcha_policy_action_simple_captcha", "CertificateSubjectDnCredential": ".certificate_subject_dn_credential", "CertificateSubjectDnCredentialTypeEnum": ".certificate_subject_dn_credential_type_enum", "ChangePasswordTicketIdentity": ".change_password_ticket_identity", @@ -6747,6 +6838,7 @@ "ClientOidcBackchannelLogoutInitiatorsModeEnum": ".client_oidc_backchannel_logout_initiators_mode_enum", "ClientOidcBackchannelLogoutSessionMetadata": ".client_oidc_backchannel_logout_session_metadata", "ClientOidcBackchannelLogoutSettings": ".client_oidc_backchannel_logout_settings", + "ClientOidcSupport": ".client_oidc_support", "ClientOidcSupportAllowedScopesEnum": ".client_oidc_support_allowed_scopes_enum", "ClientOidcSupportPatch": ".client_oidc_support_patch", "ClientOidcSupportPost": ".client_oidc_support_post", @@ -6760,6 +6852,9 @@ "ClientProfileApplyPolicyExternalMetadataCreatedByEnum": ".client_profile_apply_policy_external_metadata_created_by_enum", "ClientProfileApplyPolicyExternalMetadataTypeEnum": ".client_profile_apply_policy_external_metadata_type_enum", "ClientProfileClientConfiguration": ".client_profile_client_configuration", + "ClientProfileClientConfigurationOidcSupport": ".client_profile_client_configuration_oidc_support", + "ClientProfileClientConfigurationOidcSupportAllowedScopesEnum": ".client_profile_client_configuration_oidc_support_allowed_scopes_enum", + "ClientProfileClientConfigurationOidcSupportDefaultValue": ".client_profile_client_configuration_oidc_support_default_value", "ClientProfileClientConfigurationOrganizationDiscoveryMethodEnum": ".client_profile_client_configuration_organization_discovery_method_enum", "ClientProfileClientConfigurationOrganizationDiscoveryMethods": ".client_profile_client_configuration_organization_discovery_methods", "ClientProfileClientConfigurationOrganizationRequireBehavior": ".client_profile_client_configuration_organization_require_behavior", @@ -6852,6 +6947,7 @@ "ConnectionClientIdOidc": ".connection_client_id_oidc", "ConnectionClientIdPaypal": ".connection_client_id_paypal", "ConnectionClientIdSalesforce": ".connection_client_id_salesforce", + "ConnectionClientIdSamlxaaRequestingApp": ".connection_client_id_samlxaa_requesting_app", "ConnectionClientIdWindowsLive": ".connection_client_id_windows_live", "ConnectionClientProtocolSaml": ".connection_client_protocol_saml", "ConnectionClientSecret": ".connection_client_secret", @@ -6869,6 +6965,7 @@ "ConnectionClientSecretOidc": ".connection_client_secret_oidc", "ConnectionClientSecretPaypal": ".connection_client_secret_paypal", "ConnectionClientSecretSalesforce": ".connection_client_secret_salesforce", + "ConnectionClientSecretSamlxaaRequestingApp": ".connection_client_secret_samlxaa_requesting_app", "ConnectionClientSecretWindowsLive": ".connection_client_secret_windows_live", "ConnectionCommon": ".connection_common", "ConnectionCommunityBaseUrlSalesforce": ".connection_community_base_url_salesforce", @@ -7061,6 +7158,8 @@ "ConnectionOptionsWordpress": ".connection_options_wordpress", "ConnectionOptionsYahoo": ".connection_options_yahoo", "ConnectionOptionsYandex": ".connection_options_yandex", + "ConnectionOtpChannelSettings": ".connection_otp_channel_settings", + "ConnectionOtpSettings": ".connection_otp_settings", "ConnectionPasskeyAuthenticationMethod": ".connection_passkey_authentication_method", "ConnectionPasskeyChallengeUiEnum": ".connection_passkey_challenge_ui_enum", "ConnectionPasskeyOptions": ".connection_passkey_options", @@ -7341,6 +7440,7 @@ "ConnectionsDiscoveryUrl": ".connections_discovery_url", "ConnectionsMetadata": ".connections_metadata", "ConnectionsOidcMetadata": ".connections_oidc_metadata", + "ConsentSigningKey": ".consent_signing_key", "ContentSecurityPolicyConfig": ".content_security_policy_config", "CreateActionModuleResponseContent": ".create_action_module_response_content", "CreateActionModuleVersionResponseContent": ".create_action_module_version_response_content", @@ -8430,6 +8530,10 @@ "EventStreamCloudEventContextRequest": ".event_stream_cloud_event_context_request", "EventStreamCloudEventContextRequestGeo": ".event_stream_cloud_event_context_request_geo", "EventStreamCloudEventContextTenant": ".event_stream_cloud_event_context_tenant", + "EventStreamCloudEventContextTransaction": ".event_stream_cloud_event_context_transaction", + "EventStreamCloudEventContextTransactionProtocolEnum": ".event_stream_cloud_event_context_transaction_protocol_enum", + "EventStreamCloudEventContextTransactionResponseModeEnum": ".event_stream_cloud_event_context_transaction_response_mode_enum", + "EventStreamCloudEventContextTransactionResponseTypeItemEnum": ".event_stream_cloud_event_context_transaction_response_type_item_enum", "EventStreamCloudEventData": ".event_stream_cloud_event_data", "EventStreamCloudEventErrorCodeEnum": ".event_stream_cloud_event_error_code_enum", "EventStreamCloudEventErrorDetail": ".event_stream_cloud_event_error_detail", @@ -9773,6 +9877,8 @@ "IntegrationRequiredParamOption": ".integration_required_param_option", "IntegrationRequiredParamTypeEnum": ".integration_required_param_type_enum", "IntegrationSemVer": ".integration_sem_ver", + "InternalServerErrorBody": ".internal_server_error_body", + "InternalServerErrorBodyError": ".internal_server_error_body_error", "JobFileFormatEnum": ".job_file_format_enum", "LinkedClientConfiguration": ".linked_client_configuration", "ListActionBindingsPaginatedResponseContent": ".list_action_bindings_paginated_response_content", @@ -9782,7 +9888,6 @@ "ListAculsOffsetPaginatedResponseContent": ".list_aculs_offset_paginated_response_content", "ListAculsResponseContentItem": ".list_aculs_response_content_item", "ListAgentsResponseContent": ".list_agents_response_content", - "ListAttackProtectionCaptchaPoliciesResponseContent": ".list_attack_protection_captcha_policies_response_content", "ListBrandingPhoneProvidersResponseContent": ".list_branding_phone_providers_response_content", "ListClientConnectionsResponseContent": ".list_client_connections_response_content", "ListClientGrantOrganizationsPaginatedResponseContent": ".list_client_grant_organizations_paginated_response_content", @@ -9827,6 +9932,7 @@ "ListOrganizationRoleMembersResponseContent": ".list_organization_role_members_response_content", "ListOrganizationsPaginatedResponseContent": ".list_organizations_paginated_response_content", "ListPhoneTemplatesResponseContent": ".list_phone_templates_response_content", + "ListPortalsResponseContent": ".list_portals_response_content", "ListRateLimitPoliciesPaginatedResponseContent": ".list_rate_limit_policies_paginated_response_content", "ListRefreshTokensPaginatedResponseContent": ".list_refresh_tokens_paginated_response_content", "ListResourceServerOffsetPaginatedResponseContent": ".list_resource_server_offset_paginated_response_content", @@ -9847,6 +9953,7 @@ "ListUserBlocksByIdentifierResponseContent": ".list_user_blocks_by_identifier_response_content", "ListUserBlocksResponseContent": ".list_user_blocks_response_content", "ListUserConnectedAccountsResponseContent": ".list_user_connected_accounts_response_content", + "ListUserConsentSigningKeysResponseContent": ".list_user_consent_signing_keys_response_content", "ListUserEffectivePermissionRoleSourcesResponseContent": ".list_user_effective_permission_role_sources_response_content", "ListUserEffectivePermissionsResponseContent": ".list_user_effective_permissions_response_content", "ListUserEffectiveRolesResponseContent": ".list_user_effective_roles_response_content", @@ -9971,6 +10078,54 @@ "OrganizationSortFieldEnum": ".organization_sort_field_enum", "OrganizationThirdPartyClientAccessEnum": ".organization_third_party_client_access_enum", "OrganizationUsageEnum": ".organization_usage_enum", + "PageComponent": ".page_component", + "PageComponentAuth0Form": ".page_component_auth_0_form", + "PageComponentAuth0FormConfig": ".page_component_auth_0_form_config", + "PageComponentAuth0MediaImage": ".page_component_auth_0_media_image", + "PageComponentAuth0MediaImageConfig": ".page_component_auth_0_media_image_config", + "PageComponentAuth0MyAccountMfaManagement": ".page_component_auth_0_my_account_mfa_management", + "PageComponentAuth0MyAccountMfaManagementConfig": ".page_component_auth_0_my_account_mfa_management_config", + "PageComponentAuth0MyAccountPasskeyManagement": ".page_component_auth_0_my_account_passkey_management", + "PageComponentAuth0MyAccountPasskeyManagementConfig": ".page_component_auth_0_my_account_passkey_management_config", + "PageComponentAuth0MyOrganizationDetailsEdit": ".page_component_auth_0_my_organization_details_edit", + "PageComponentAuth0MyOrganizationDetailsEditConfig": ".page_component_auth_0_my_organization_details_edit_config", + "PageComponentAuth0MyOrganizationDomainTable": ".page_component_auth_0_my_organization_domain_table", + "PageComponentAuth0MyOrganizationDomainTableConfig": ".page_component_auth_0_my_organization_domain_table_config", + "PageComponentAuth0MyOrganizationMemberManagement": ".page_component_auth_0_my_organization_member_management", + "PageComponentAuth0MyOrganizationMemberManagementConfig": ".page_component_auth_0_my_organization_member_management_config", + "PageComponentAuth0StructureSection": ".page_component_auth_0_structure_section", + "PageComponentAuth0StructureSectionConfig": ".page_component_auth_0_structure_section_config", + "PageComponentAuth0StructureSectionVariantEnum": ".page_component_auth_0_structure_section_variant_enum", + "PageComponentAuth0StructureSeparator": ".page_component_auth_0_structure_separator", + "PageComponentAuth0StructureSeparatorConfig": ".page_component_auth_0_structure_separator_config", + "PageComponentAuth0StructureSeparatorVariantEnum": ".page_component_auth_0_structure_separator_variant_enum", + "PageComponentAuth0TypographyHeading": ".page_component_auth_0_typography_heading", + "PageComponentAuth0TypographyHeadingConfig": ".page_component_auth_0_typography_heading_config", + "PageComponentAuth0TypographyRichText": ".page_component_auth_0_typography_rich_text", + "PageComponentAuth0TypographyRichTextConfig": ".page_component_auth_0_typography_rich_text_config", + "PageComponentNoChildren": ".page_component_no_children", + "PageComponentNoChildren_PageComponentAuth0Form": ".page_component_no_children", + "PageComponentNoChildren_PageComponentAuth0MediaImage": ".page_component_no_children", + "PageComponentNoChildren_PageComponentAuth0MyAccountMfaManagement": ".page_component_no_children", + "PageComponentNoChildren_PageComponentAuth0MyAccountPasskeyManagement": ".page_component_no_children", + "PageComponentNoChildren_PageComponentAuth0MyOrganizationDetailsEdit": ".page_component_no_children", + "PageComponentNoChildren_PageComponentAuth0MyOrganizationDomainTable": ".page_component_no_children", + "PageComponentNoChildren_PageComponentAuth0MyOrganizationMemberManagement": ".page_component_no_children", + "PageComponentNoChildren_PageComponentAuth0StructureSeparator": ".page_component_no_children", + "PageComponentNoChildren_PageComponentAuth0TypographyHeading": ".page_component_no_children", + "PageComponentNoChildren_PageComponentAuth0TypographyRichText": ".page_component_no_children", + "PageComponent_PageComponentAuth0Form": ".page_component", + "PageComponent_PageComponentAuth0MediaImage": ".page_component", + "PageComponent_PageComponentAuth0MyAccountMfaManagement": ".page_component", + "PageComponent_PageComponentAuth0MyAccountPasskeyManagement": ".page_component", + "PageComponent_PageComponentAuth0MyOrganizationDetailsEdit": ".page_component", + "PageComponent_PageComponentAuth0MyOrganizationDomainTable": ".page_component", + "PageComponent_PageComponentAuth0MyOrganizationMemberManagement": ".page_component", + "PageComponent_PageComponentAuth0StructureSection": ".page_component", + "PageComponent_PageComponentAuth0StructureSeparator": ".page_component", + "PageComponent_PageComponentAuth0TypographyHeading": ".page_component", + "PageComponent_PageComponentAuth0TypographyRichText": ".page_component", + "PageSlug": ".page_slug", "PartialGroupsEnum": ".partial_groups_enum", "PartialPhoneTemplateContent": ".partial_phone_template_content", "PasswordCharacterTypeEnum": ".password_character_type_enum", @@ -10004,6 +10159,24 @@ "PhoneTemplateBody": ".phone_template_body", "PhoneTemplateContent": ".phone_template_content", "PhoneTemplateNotificationTypeEnum": ".phone_template_notification_type_enum", + "Portal": ".portal", + "PortalClientSecretPost": ".portal_client_secret_post", + "PortalClientSecretPostRequest": ".portal_client_secret_post_request", + "PortalClientSecretPostRequestTokenEndpointAuthMethod": ".portal_client_secret_post_request_token_endpoint_auth_method", + "PortalClientSecretPostTokenEndpointAuthMethod": ".portal_client_secret_post_token_endpoint_auth_method", + "PortalCustomCode": ".portal_custom_code", + "PortalCustomCodeNullable": ".portal_custom_code_nullable", + "PortalDateTime": ".portal_date_time", + "PortalId": ".portal_id", + "PortalName": ".portal_name", + "PortalNavigation": ".portal_navigation", + "PortalNavigationNullable": ".portal_navigation_nullable", + "PortalPage": ".portal_page", + "PortalPagesByType": ".portal_pages_by_type", + "PortalPagesByTypeNullable": ".portal_pages_by_type_nullable", + "PortalSlug": ".portal_slug", + "PortalSummary": ".portal_summary", + "Position": ".position", "PostClientCredentialResponseContent": ".post_client_credential_response_content", "PostConnectionKeysAlgEnum": ".post_connection_keys_alg_enum", "PostConnectionKeysRequestContent": ".post_connection_keys_request_content", @@ -10044,6 +10217,8 @@ "ResourceServerAccessTokenClaimsMapping": ".resource_server_access_token_claims_mapping", "ResourceServerAccessTokenCustomClaimsMapping": ".resource_server_access_token_custom_claims_mapping", "ResourceServerAccessTokenCustomClaimsMappingRule": ".resource_server_access_token_custom_claims_mapping_rule", + "ResourceServerAgentSubjectClaimsResponseEnum": ".resource_server_agent_subject_claims_response_enum", + "ResourceServerAgentSubjectClaimsSchemaEnum": ".resource_server_agent_subject_claims_schema_enum", "ResourceServerAuthorizationPolicy": ".resource_server_authorization_policy", "ResourceServerConsentPolicyEnum": ".resource_server_consent_policy_enum", "ResourceServerProofOfPossession": ".resource_server_proof_of_possession", @@ -10065,6 +10240,7 @@ "ResourceServerTokenEncryptionAlgorithmEnum": ".resource_server_token_encryption_algorithm_enum", "ResourceServerTokenEncryptionFormatEnum": ".resource_server_token_encryption_format_enum", "ResourceServerTokenEncryptionKey": ".resource_server_token_encryption_key", + "ResourceServerTypeEnum": ".resource_server_type_enum", "ResourceServerVerificationKeyPemCertificate": ".resource_server_verification_key_pem_certificate", "RevokedSigningKeysResponseContent": ".revoked_signing_keys_response_content", "Role": ".role", @@ -10170,6 +10346,20 @@ "SetUserAuthenticationMethods": ".set_user_authentication_methods", "SetUserAuthenticationMethodsRequestContent": ".set_user_authentication_methods_request_content", "SetsCustomTextsByLanguageRequestContent": ".sets_custom_texts_by_language_request_content", + "Sidebar": ".sidebar", + "SidebarComponent": ".sidebar_component", + "SidebarComponentAuth0ExternalLink": ".sidebar_component_auth_0_external_link", + "SidebarComponentAuth0ExternalLinkConfig": ".sidebar_component_auth_0_external_link_config", + "SidebarComponentAuth0ExternalLinkV2": ".sidebar_component_auth_0_external_link_v_2", + "SidebarComponentAuth0ExternalLinkV2Config": ".sidebar_component_auth_0_external_link_v_2_config", + "SidebarComponentAuth0InternalLink": ".sidebar_component_auth_0_internal_link", + "SidebarComponentAuth0InternalLinkConfig": ".sidebar_component_auth_0_internal_link_config", + "SidebarComponentAuth0InternalLinkV2": ".sidebar_component_auth_0_internal_link_v_2", + "SidebarComponentAuth0InternalLinkV2Config": ".sidebar_component_auth_0_internal_link_v_2_config", + "SidebarComponent_SidebarComponentAuth0ExternalLink": ".sidebar_component", + "SidebarComponent_SidebarComponentAuth0ExternalLinkV2": ".sidebar_component", + "SidebarComponent_SidebarComponentAuth0InternalLink": ".sidebar_component", + "SidebarComponent_SidebarComponentAuth0InternalLinkV2": ".sidebar_component", "SigningAlgorithmEnum": ".signing_algorithm_enum", "SigningKeys": ".signing_keys", "SigningKeysDate": ".signing_keys_date", @@ -10518,10 +10708,6 @@ def __dir__(): "AttackProtectionCaptchaAuthChallengeResponseContent", "AttackProtectionCaptchaFriendlyCaptchaResponseContent", "AttackProtectionCaptchaHcaptchaResponseContent", - "AttackProtectionCaptchaPolicy", - "AttackProtectionCaptchaPolicyAction", - "AttackProtectionCaptchaPolicyActionInput", - "AttackProtectionCaptchaPolicyMatch", "AttackProtectionCaptchaProviderId", "AttackProtectionCaptchaRecaptchaEnterpriseResponseContent", "AttackProtectionCaptchaRecaptchaV2ResponseContent", @@ -10588,19 +10774,6 @@ def __dir__(): "BruteForceProtectionModeEnum", "BruteForceProtectionShieldsEnum", "BulkUpdateAculResponseContent", - "CaptchaActiveProviderEnum", - "CaptchaPolicyActionArkose", - "CaptchaPolicyActionArkoseInput", - "CaptchaPolicyActionAuthChallenge", - "CaptchaPolicyActionFriendlyCaptcha", - "CaptchaPolicyActionFriendlyCaptchaInput", - "CaptchaPolicyActionHcaptcha", - "CaptchaPolicyActionHcaptchaInput", - "CaptchaPolicyActionRecaptchaEnterprise", - "CaptchaPolicyActionRecaptchaEnterpriseInput", - "CaptchaPolicyActionRecaptchaV2", - "CaptchaPolicyActionRecaptchaV2Input", - "CaptchaPolicyActionSimpleCaptcha", "CertificateSubjectDnCredential", "CertificateSubjectDnCredentialTypeEnum", "ChangePasswordTicketIdentity", @@ -10697,6 +10870,7 @@ def __dir__(): "ClientOidcBackchannelLogoutInitiatorsModeEnum", "ClientOidcBackchannelLogoutSessionMetadata", "ClientOidcBackchannelLogoutSettings", + "ClientOidcSupport", "ClientOidcSupportAllowedScopesEnum", "ClientOidcSupportPatch", "ClientOidcSupportPost", @@ -10710,6 +10884,9 @@ def __dir__(): "ClientProfileApplyPolicyExternalMetadataCreatedByEnum", "ClientProfileApplyPolicyExternalMetadataTypeEnum", "ClientProfileClientConfiguration", + "ClientProfileClientConfigurationOidcSupport", + "ClientProfileClientConfigurationOidcSupportAllowedScopesEnum", + "ClientProfileClientConfigurationOidcSupportDefaultValue", "ClientProfileClientConfigurationOrganizationDiscoveryMethodEnum", "ClientProfileClientConfigurationOrganizationDiscoveryMethods", "ClientProfileClientConfigurationOrganizationRequireBehavior", @@ -10802,6 +10979,7 @@ def __dir__(): "ConnectionClientIdOidc", "ConnectionClientIdPaypal", "ConnectionClientIdSalesforce", + "ConnectionClientIdSamlxaaRequestingApp", "ConnectionClientIdWindowsLive", "ConnectionClientProtocolSaml", "ConnectionClientSecret", @@ -10819,6 +10997,7 @@ def __dir__(): "ConnectionClientSecretOidc", "ConnectionClientSecretPaypal", "ConnectionClientSecretSalesforce", + "ConnectionClientSecretSamlxaaRequestingApp", "ConnectionClientSecretWindowsLive", "ConnectionCommon", "ConnectionCommunityBaseUrlSalesforce", @@ -11011,6 +11190,8 @@ def __dir__(): "ConnectionOptionsWordpress", "ConnectionOptionsYahoo", "ConnectionOptionsYandex", + "ConnectionOtpChannelSettings", + "ConnectionOtpSettings", "ConnectionPasskeyAuthenticationMethod", "ConnectionPasskeyChallengeUiEnum", "ConnectionPasskeyOptions", @@ -11291,6 +11472,7 @@ def __dir__(): "ConnectionsDiscoveryUrl", "ConnectionsMetadata", "ConnectionsOidcMetadata", + "ConsentSigningKey", "ContentSecurityPolicyConfig", "CreateActionModuleResponseContent", "CreateActionModuleVersionResponseContent", @@ -12380,6 +12562,10 @@ def __dir__(): "EventStreamCloudEventContextRequest", "EventStreamCloudEventContextRequestGeo", "EventStreamCloudEventContextTenant", + "EventStreamCloudEventContextTransaction", + "EventStreamCloudEventContextTransactionProtocolEnum", + "EventStreamCloudEventContextTransactionResponseModeEnum", + "EventStreamCloudEventContextTransactionResponseTypeItemEnum", "EventStreamCloudEventData", "EventStreamCloudEventErrorCodeEnum", "EventStreamCloudEventErrorDetail", @@ -13723,6 +13909,8 @@ def __dir__(): "IntegrationRequiredParamOption", "IntegrationRequiredParamTypeEnum", "IntegrationSemVer", + "InternalServerErrorBody", + "InternalServerErrorBodyError", "JobFileFormatEnum", "LinkedClientConfiguration", "ListActionBindingsPaginatedResponseContent", @@ -13732,7 +13920,6 @@ def __dir__(): "ListAculsOffsetPaginatedResponseContent", "ListAculsResponseContentItem", "ListAgentsResponseContent", - "ListAttackProtectionCaptchaPoliciesResponseContent", "ListBrandingPhoneProvidersResponseContent", "ListClientConnectionsResponseContent", "ListClientGrantOrganizationsPaginatedResponseContent", @@ -13777,6 +13964,7 @@ def __dir__(): "ListOrganizationRoleMembersResponseContent", "ListOrganizationsPaginatedResponseContent", "ListPhoneTemplatesResponseContent", + "ListPortalsResponseContent", "ListRateLimitPoliciesPaginatedResponseContent", "ListRefreshTokensPaginatedResponseContent", "ListResourceServerOffsetPaginatedResponseContent", @@ -13797,6 +13985,7 @@ def __dir__(): "ListUserBlocksByIdentifierResponseContent", "ListUserBlocksResponseContent", "ListUserConnectedAccountsResponseContent", + "ListUserConsentSigningKeysResponseContent", "ListUserEffectivePermissionRoleSourcesResponseContent", "ListUserEffectivePermissionsResponseContent", "ListUserEffectiveRolesResponseContent", @@ -13921,6 +14110,54 @@ def __dir__(): "OrganizationSortFieldEnum", "OrganizationThirdPartyClientAccessEnum", "OrganizationUsageEnum", + "PageComponent", + "PageComponentAuth0Form", + "PageComponentAuth0FormConfig", + "PageComponentAuth0MediaImage", + "PageComponentAuth0MediaImageConfig", + "PageComponentAuth0MyAccountMfaManagement", + "PageComponentAuth0MyAccountMfaManagementConfig", + "PageComponentAuth0MyAccountPasskeyManagement", + "PageComponentAuth0MyAccountPasskeyManagementConfig", + "PageComponentAuth0MyOrganizationDetailsEdit", + "PageComponentAuth0MyOrganizationDetailsEditConfig", + "PageComponentAuth0MyOrganizationDomainTable", + "PageComponentAuth0MyOrganizationDomainTableConfig", + "PageComponentAuth0MyOrganizationMemberManagement", + "PageComponentAuth0MyOrganizationMemberManagementConfig", + "PageComponentAuth0StructureSection", + "PageComponentAuth0StructureSectionConfig", + "PageComponentAuth0StructureSectionVariantEnum", + "PageComponentAuth0StructureSeparator", + "PageComponentAuth0StructureSeparatorConfig", + "PageComponentAuth0StructureSeparatorVariantEnum", + "PageComponentAuth0TypographyHeading", + "PageComponentAuth0TypographyHeadingConfig", + "PageComponentAuth0TypographyRichText", + "PageComponentAuth0TypographyRichTextConfig", + "PageComponentNoChildren", + "PageComponentNoChildren_PageComponentAuth0Form", + "PageComponentNoChildren_PageComponentAuth0MediaImage", + "PageComponentNoChildren_PageComponentAuth0MyAccountMfaManagement", + "PageComponentNoChildren_PageComponentAuth0MyAccountPasskeyManagement", + "PageComponentNoChildren_PageComponentAuth0MyOrganizationDetailsEdit", + "PageComponentNoChildren_PageComponentAuth0MyOrganizationDomainTable", + "PageComponentNoChildren_PageComponentAuth0MyOrganizationMemberManagement", + "PageComponentNoChildren_PageComponentAuth0StructureSeparator", + "PageComponentNoChildren_PageComponentAuth0TypographyHeading", + "PageComponentNoChildren_PageComponentAuth0TypographyRichText", + "PageComponent_PageComponentAuth0Form", + "PageComponent_PageComponentAuth0MediaImage", + "PageComponent_PageComponentAuth0MyAccountMfaManagement", + "PageComponent_PageComponentAuth0MyAccountPasskeyManagement", + "PageComponent_PageComponentAuth0MyOrganizationDetailsEdit", + "PageComponent_PageComponentAuth0MyOrganizationDomainTable", + "PageComponent_PageComponentAuth0MyOrganizationMemberManagement", + "PageComponent_PageComponentAuth0StructureSection", + "PageComponent_PageComponentAuth0StructureSeparator", + "PageComponent_PageComponentAuth0TypographyHeading", + "PageComponent_PageComponentAuth0TypographyRichText", + "PageSlug", "PartialGroupsEnum", "PartialPhoneTemplateContent", "PasswordCharacterTypeEnum", @@ -13954,6 +14191,24 @@ def __dir__(): "PhoneTemplateBody", "PhoneTemplateContent", "PhoneTemplateNotificationTypeEnum", + "Portal", + "PortalClientSecretPost", + "PortalClientSecretPostRequest", + "PortalClientSecretPostRequestTokenEndpointAuthMethod", + "PortalClientSecretPostTokenEndpointAuthMethod", + "PortalCustomCode", + "PortalCustomCodeNullable", + "PortalDateTime", + "PortalId", + "PortalName", + "PortalNavigation", + "PortalNavigationNullable", + "PortalPage", + "PortalPagesByType", + "PortalPagesByTypeNullable", + "PortalSlug", + "PortalSummary", + "Position", "PostClientCredentialResponseContent", "PostConnectionKeysAlgEnum", "PostConnectionKeysRequestContent", @@ -13994,6 +14249,8 @@ def __dir__(): "ResourceServerAccessTokenClaimsMapping", "ResourceServerAccessTokenCustomClaimsMapping", "ResourceServerAccessTokenCustomClaimsMappingRule", + "ResourceServerAgentSubjectClaimsResponseEnum", + "ResourceServerAgentSubjectClaimsSchemaEnum", "ResourceServerAuthorizationPolicy", "ResourceServerConsentPolicyEnum", "ResourceServerProofOfPossession", @@ -14015,6 +14272,7 @@ def __dir__(): "ResourceServerTokenEncryptionAlgorithmEnum", "ResourceServerTokenEncryptionFormatEnum", "ResourceServerTokenEncryptionKey", + "ResourceServerTypeEnum", "ResourceServerVerificationKeyPemCertificate", "RevokedSigningKeysResponseContent", "Role", @@ -14120,6 +14378,20 @@ def __dir__(): "SetUserAuthenticationMethods", "SetUserAuthenticationMethodsRequestContent", "SetsCustomTextsByLanguageRequestContent", + "Sidebar", + "SidebarComponent", + "SidebarComponentAuth0ExternalLink", + "SidebarComponentAuth0ExternalLinkConfig", + "SidebarComponentAuth0ExternalLinkV2", + "SidebarComponentAuth0ExternalLinkV2Config", + "SidebarComponentAuth0InternalLink", + "SidebarComponentAuth0InternalLinkConfig", + "SidebarComponentAuth0InternalLinkV2", + "SidebarComponentAuth0InternalLinkV2Config", + "SidebarComponent_SidebarComponentAuth0ExternalLink", + "SidebarComponent_SidebarComponentAuth0ExternalLinkV2", + "SidebarComponent_SidebarComponentAuth0InternalLink", + "SidebarComponent_SidebarComponentAuth0InternalLinkV2", "SigningAlgorithmEnum", "SigningKeys", "SigningKeysDate", diff --git a/src/auth0/management/types/attack_protection_captcha_policy.py b/src/auth0/management/types/attack_protection_captcha_policy.py deleted file mode 100644 index 8b772eed..00000000 --- a/src/auth0/management/types/attack_protection_captcha_policy.py +++ /dev/null @@ -1,56 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import datetime as dt -import typing - -import pydantic -from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .attack_protection_captcha_policy_action import AttackProtectionCaptchaPolicyAction -from .attack_protection_captcha_policy_match import AttackProtectionCaptchaPolicyMatch - - -class AttackProtectionCaptchaPolicy(UniversalBaseModel): - """ - An attack protection policy override for CAPTCHA. - """ - - id: str = pydantic.Field() - """ - System-generated identifier for the policy. - """ - - name: str = pydantic.Field() - """ - Human-readable policy name. - """ - - description: typing.Optional[str] = pydantic.Field(default=None) - """ - Description of the policy's purpose. - """ - - priority: int = pydantic.Field() - """ - Conflict resolution order. Lower number takes higher precedence. - """ - - match: AttackProtectionCaptchaPolicyMatch - action: AttackProtectionCaptchaPolicyAction - created_at: dt.datetime = pydantic.Field() - """ - ISO 8601 timestamp when the policy was created. - """ - - updated_at: dt.datetime = pydantic.Field() - """ - ISO 8601 timestamp when the policy was last updated. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/attack_protection_captcha_policy_action.py b/src/auth0/management/types/attack_protection_captcha_policy_action.py deleted file mode 100644 index 0a34effc..00000000 --- a/src/auth0/management/types/attack_protection_captcha_policy_action.py +++ /dev/null @@ -1,44 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -import typing_extensions -from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from ..core.serialization import FieldMetadata -from .captcha_active_provider_enum import CaptchaActiveProviderEnum -from .captcha_policy_action_arkose import CaptchaPolicyActionArkose -from .captcha_policy_action_auth_challenge import CaptchaPolicyActionAuthChallenge -from .captcha_policy_action_friendly_captcha import CaptchaPolicyActionFriendlyCaptcha -from .captcha_policy_action_hcaptcha import CaptchaPolicyActionHcaptcha -from .captcha_policy_action_recaptcha_enterprise import CaptchaPolicyActionRecaptchaEnterprise -from .captcha_policy_action_recaptcha_v_2 import CaptchaPolicyActionRecaptchaV2 -from .captcha_policy_action_simple_captcha import CaptchaPolicyActionSimpleCaptcha - - -class AttackProtectionCaptchaPolicyAction(UniversalBaseModel): - """ - CAPTCHA configuration override stored for this policy. - """ - - active_provider_id: typing.Optional[CaptchaActiveProviderEnum] = None - simple_captcha: typing.Optional[CaptchaPolicyActionSimpleCaptcha] = None - auth_challenge: typing.Optional[CaptchaPolicyActionAuthChallenge] = None - recaptcha_v_2: typing_extensions.Annotated[ - typing.Optional[CaptchaPolicyActionRecaptchaV2], - FieldMetadata(alias="recaptcha_v2"), - pydantic.Field(alias="recaptcha_v2"), - ] = None - recaptcha_enterprise: typing.Optional[CaptchaPolicyActionRecaptchaEnterprise] = None - hcaptcha: typing.Optional[CaptchaPolicyActionHcaptcha] = None - friendly_captcha: typing.Optional[CaptchaPolicyActionFriendlyCaptcha] = None - arkose: typing.Optional[CaptchaPolicyActionArkose] = None - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/attack_protection_captcha_policy_action_input.py b/src/auth0/management/types/attack_protection_captcha_policy_action_input.py deleted file mode 100644 index 393f0d64..00000000 --- a/src/auth0/management/types/attack_protection_captcha_policy_action_input.py +++ /dev/null @@ -1,44 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -import typing_extensions -from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from ..core.serialization import FieldMetadata -from .captcha_active_provider_enum import CaptchaActiveProviderEnum -from .captcha_policy_action_arkose_input import CaptchaPolicyActionArkoseInput -from .captcha_policy_action_auth_challenge import CaptchaPolicyActionAuthChallenge -from .captcha_policy_action_friendly_captcha_input import CaptchaPolicyActionFriendlyCaptchaInput -from .captcha_policy_action_hcaptcha_input import CaptchaPolicyActionHcaptchaInput -from .captcha_policy_action_recaptcha_enterprise_input import CaptchaPolicyActionRecaptchaEnterpriseInput -from .captcha_policy_action_recaptcha_v_2_input import CaptchaPolicyActionRecaptchaV2Input -from .captcha_policy_action_simple_captcha import CaptchaPolicyActionSimpleCaptcha - - -class AttackProtectionCaptchaPolicyActionInput(UniversalBaseModel): - """ - CAPTCHA configuration override for this policy. - """ - - active_provider_id: typing.Optional[CaptchaActiveProviderEnum] = None - simple_captcha: typing.Optional[CaptchaPolicyActionSimpleCaptcha] = None - auth_challenge: typing.Optional[CaptchaPolicyActionAuthChallenge] = None - recaptcha_v_2: typing_extensions.Annotated[ - typing.Optional[CaptchaPolicyActionRecaptchaV2Input], - FieldMetadata(alias="recaptcha_v2"), - pydantic.Field(alias="recaptcha_v2"), - ] = None - recaptcha_enterprise: typing.Optional[CaptchaPolicyActionRecaptchaEnterpriseInput] = None - hcaptcha: typing.Optional[CaptchaPolicyActionHcaptchaInput] = None - friendly_captcha: typing.Optional[CaptchaPolicyActionFriendlyCaptchaInput] = None - arkose: typing.Optional[CaptchaPolicyActionArkoseInput] = None - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/attack_protection_captcha_policy_match.py b/src/auth0/management/types/attack_protection_captcha_policy_match.py deleted file mode 100644 index 06023e04..00000000 --- a/src/auth0/management/types/attack_protection_captcha_policy_match.py +++ /dev/null @@ -1,37 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -import typing_extensions -from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from ..core.serialization import FieldMetadata - - -class AttackProtectionCaptchaPolicyMatch(UniversalBaseModel): - """ - Traffic matching criteria for the policy. Exactly one of auth0_managed or geo_country_codes must be specified. - """ - - auth_0_managed: typing_extensions.Annotated[ - typing.Optional[typing.List[str]], - FieldMetadata(alias="auth0_managed"), - pydantic.Field(alias="auth0_managed", description="Match by Auth0-managed traffic identifiers."), - ] = None - """ - Match by Auth0-managed traffic identifiers. - """ - - geo_country_codes: typing.Optional[typing.List[str]] = pydantic.Field(default=None) - """ - Match by ISO 3166-1 alpha-2 country codes. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/captcha_active_provider_enum.py b/src/auth0/management/types/captcha_active_provider_enum.py deleted file mode 100644 index 3d166297..00000000 --- a/src/auth0/management/types/captcha_active_provider_enum.py +++ /dev/null @@ -1,16 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -CaptchaActiveProviderEnum = typing.Union[ - typing.Literal[ - "simple_captcha", - "auth_challenge", - "recaptcha_v2", - "recaptcha_enterprise", - "hcaptcha", - "friendly_captcha", - "arkose", - ], - typing.Any, -] diff --git a/src/auth0/management/types/captcha_policy_action_arkose.py b/src/auth0/management/types/captcha_policy_action_arkose.py deleted file mode 100644 index 1953ae18..00000000 --- a/src/auth0/management/types/captcha_policy_action_arkose.py +++ /dev/null @@ -1,41 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class CaptchaPolicyActionArkose(UniversalBaseModel): - """ - Arkose Labs provider configuration. - """ - - site_key: typing.Optional[str] = pydantic.Field(default=None) - """ - The Arkose Labs site key. - """ - - client_subdomain: typing.Optional[str] = pydantic.Field(default=None) - """ - The Arkose Labs client subdomain. - """ - - verify_subdomain: typing.Optional[str] = pydantic.Field(default=None) - """ - The Arkose Labs verify subdomain. - """ - - fail_open: typing.Optional[bool] = pydantic.Field(default=None) - """ - Whether to allow access when Arkose Labs is unavailable. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/captcha_policy_action_arkose_input.py b/src/auth0/management/types/captcha_policy_action_arkose_input.py deleted file mode 100644 index 13e18d5d..00000000 --- a/src/auth0/management/types/captcha_policy_action_arkose_input.py +++ /dev/null @@ -1,46 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class CaptchaPolicyActionArkoseInput(UniversalBaseModel): - """ - Arkose Labs provider configuration. - """ - - site_key: typing.Optional[str] = pydantic.Field(default=None) - """ - The Arkose Labs site key. - """ - - secret: typing.Optional[str] = pydantic.Field(default=None) - """ - The Arkose Labs private key. Encrypted at rest. - """ - - client_subdomain: typing.Optional[str] = pydantic.Field(default=None) - """ - The Arkose Labs client subdomain. - """ - - verify_subdomain: typing.Optional[str] = pydantic.Field(default=None) - """ - The Arkose Labs verify subdomain. - """ - - fail_open: typing.Optional[bool] = pydantic.Field(default=None) - """ - Whether to allow access when Arkose Labs is unavailable. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/captcha_policy_action_recaptcha_enterprise_input.py b/src/auth0/management/types/captcha_policy_action_recaptcha_enterprise_input.py deleted file mode 100644 index 0cc9b210..00000000 --- a/src/auth0/management/types/captcha_policy_action_recaptcha_enterprise_input.py +++ /dev/null @@ -1,36 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class CaptchaPolicyActionRecaptchaEnterpriseInput(UniversalBaseModel): - """ - reCAPTCHA Enterprise provider configuration. - """ - - site_key: typing.Optional[str] = pydantic.Field(default=None) - """ - The reCAPTCHA Enterprise site key. - """ - - project_id: typing.Optional[str] = pydantic.Field(default=None) - """ - The Google Cloud project ID. - """ - - api_key: typing.Optional[str] = pydantic.Field(default=None) - """ - The reCAPTCHA Enterprise API key. Encrypted at rest. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/client.py b/src/auth0/management/types/client.py index 1e420ddd..d244dae9 100644 --- a/src/auth0/management/types/client.py +++ b/src/auth0/management/types/client.py @@ -27,6 +27,7 @@ from .client_mobile import ClientMobile from .client_my_organization_response_configuration import ClientMyOrganizationResponseConfiguration from .client_oidc_backchannel_logout_settings import ClientOidcBackchannelLogoutSettings +from .client_oidc_support import ClientOidcSupport from .client_organization_discovery_enum import ClientOrganizationDiscoveryEnum from .client_organization_require_behavior_enum import ClientOrganizationRequireBehaviorEnum from .client_organization_usage_enum import ClientOrganizationUsageEnum @@ -258,6 +259,7 @@ class Client(UniversalBaseModel): None ) third_party_security_mode: typing.Optional[ClientThirdPartySecurityModeEnum] = None + oidc_support: typing.Optional[ClientOidcSupport] = None redirection_policy: typing.Optional[ClientRedirectionPolicyEnum] = None resource_server_identifier: typing.Optional[str] = pydantic.Field(default=None) """ @@ -270,6 +272,11 @@ class Client(UniversalBaseModel): external_metadata_type: typing.Optional[ClientExternalMetadataTypeEnum] = None external_metadata_created_by: typing.Optional[ClientExternalMetadataCreatedByEnum] = None external_metadata_status: typing.Optional[ClientExternalMetadataStatusEnum] = None + agent_id: typing.Optional[str] = pydantic.Field(default=None) + """ + ID of the agent associated with this client. + """ + external_client_id: typing.Optional[str] = pydantic.Field(default=None) """ An alternate client identifier to be used during authorization flows. Only supports CIMD-based client identifiers. diff --git a/src/auth0/management/types/client_oidc_support.py b/src/auth0/management/types/client_oidc_support.py new file mode 100644 index 00000000..5a0009a4 --- /dev/null +++ b/src/auth0/management/types/client_oidc_support.py @@ -0,0 +1,26 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .client_oidc_support_allowed_scopes_enum import ClientOidcSupportAllowedScopesEnum + + +class ClientOidcSupport(UniversalBaseModel): + """ + OIDC support configuration for this client. + """ + + is_allowed: typing.Optional[bool] = None + allow_all_scopes: typing.Optional[bool] = None + allowed_scopes: typing.Optional[typing.List[ClientOidcSupportAllowedScopesEnum]] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/client_profile_client_configuration.py b/src/auth0/management/types/client_profile_client_configuration.py index 285823d9..b0a51e4d 100644 --- a/src/auth0/management/types/client_profile_client_configuration.py +++ b/src/auth0/management/types/client_profile_client_configuration.py @@ -4,6 +4,7 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .client_profile_client_configuration_oidc_support import ClientProfileClientConfigurationOidcSupport from .client_profile_client_configuration_organization_discovery_methods import ( ClientProfileClientConfigurationOrganizationDiscoveryMethods, ) @@ -27,6 +28,7 @@ class ClientProfileClientConfiguration(UniversalBaseModel): organization_require_behavior: typing.Optional[ClientProfileClientConfigurationOrganizationRequireBehavior] = None organization_discovery_methods: typing.Optional[ClientProfileClientConfigurationOrganizationDiscoveryMethods] = None require_proof_of_possession: typing.Optional[ClientProfileClientConfigurationRequireProofOfPossession] = None + oidc_support: typing.Optional[ClientProfileClientConfigurationOidcSupport] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/auth0/management/types/client_profile_client_configuration_oidc_support.py b/src/auth0/management/types/client_profile_client_configuration_oidc_support.py new file mode 100644 index 00000000..c34c84f5 --- /dev/null +++ b/src/auth0/management/types/client_profile_client_configuration_oidc_support.py @@ -0,0 +1,26 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .client_profile_client_configuration_oidc_support_default_value import ( + ClientProfileClientConfigurationOidcSupportDefaultValue, +) + + +class ClientProfileClientConfigurationOidcSupport(UniversalBaseModel): + """ + Default OIDC support applied to matched clients. + """ + + default_value: ClientProfileClientConfigurationOidcSupportDefaultValue + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/client_profile_client_configuration_oidc_support_allowed_scopes_enum.py b/src/auth0/management/types/client_profile_client_configuration_oidc_support_allowed_scopes_enum.py new file mode 100644 index 00000000..8ed41079 --- /dev/null +++ b/src/auth0/management/types/client_profile_client_configuration_oidc_support_allowed_scopes_enum.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +ClientProfileClientConfigurationOidcSupportAllowedScopesEnum = typing.Union[ + typing.Literal["profile", "email", "address", "phone"], typing.Any +] diff --git a/src/auth0/management/types/client_profile_client_configuration_oidc_support_default_value.py b/src/auth0/management/types/client_profile_client_configuration_oidc_support_default_value.py new file mode 100644 index 00000000..6fae76dc --- /dev/null +++ b/src/auth0/management/types/client_profile_client_configuration_oidc_support_default_value.py @@ -0,0 +1,41 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .client_profile_client_configuration_oidc_support_allowed_scopes_enum import ( + ClientProfileClientConfigurationOidcSupportAllowedScopesEnum, +) + + +class ClientProfileClientConfigurationOidcSupportDefaultValue(UniversalBaseModel): + """ + OIDC support settings applied to matched clients. + """ + + is_allowed: bool = pydantic.Field() + """ + Whether matched clients may use OIDC. + """ + + allow_all_scopes: typing.Optional[bool] = pydantic.Field(default=None) + """ + Whether matched clients may request all optional OIDC scopes. Cannot be combined with allowed_scopes. + """ + + allowed_scopes: typing.Optional[typing.List[ClientProfileClientConfigurationOidcSupportAllowedScopesEnum]] = ( + pydantic.Field(default=None) + ) + """ + Optional OIDC scopes that matched clients may request. + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/client_search_response.py b/src/auth0/management/types/client_search_response.py index 892d794e..ad0a7be4 100644 --- a/src/auth0/management/types/client_search_response.py +++ b/src/auth0/management/types/client_search_response.py @@ -25,6 +25,7 @@ from .client_mobile import ClientMobile from .client_my_organization_response_configuration import ClientMyOrganizationResponseConfiguration from .client_oidc_backchannel_logout_settings import ClientOidcBackchannelLogoutSettings +from .client_oidc_support import ClientOidcSupport from .client_organization_discovery_enum import ClientOrganizationDiscoveryEnum from .client_organization_require_behavior_enum import ClientOrganizationRequireBehaviorEnum from .client_organization_usage_enum import ClientOrganizationUsageEnum @@ -247,6 +248,7 @@ class ClientSearchResponse(UniversalBaseModel): None ) third_party_security_mode: typing.Optional[ClientThirdPartySecurityModeEnum] = None + oidc_support: typing.Optional[ClientOidcSupport] = None redirection_policy: typing.Optional[ClientRedirectionPolicyEnum] = None resource_server_identifier: typing.Optional[str] = pydantic.Field(default=None) """ @@ -259,6 +261,11 @@ class ClientSearchResponse(UniversalBaseModel): external_metadata_type: typing.Optional[ClientExternalMetadataTypeEnum] = None external_metadata_created_by: typing.Optional[ClientExternalMetadataCreatedByEnum] = None external_metadata_status: typing.Optional[ClientExternalMetadataStatusEnum] = None + agent_id: typing.Optional[str] = pydantic.Field(default=None) + """ + ID of the agent associated with this client. + """ + external_client_id: typing.Optional[str] = pydantic.Field(default=None) """ An alternate client identifier to be used during authorization flows. Only supports CIMD-based client identifiers. diff --git a/src/auth0/management/types/connection_client_id_samlxaa_requesting_app.py b/src/auth0/management/types/connection_client_id_samlxaa_requesting_app.py new file mode 100644 index 00000000..411b30bd --- /dev/null +++ b/src/auth0/management/types/connection_client_id_samlxaa_requesting_app.py @@ -0,0 +1,8 @@ +# This file was auto-generated by Fern from our API Definition. + +from .connection_client_id_oidc import ConnectionClientIdOidc + +ConnectionClientIdSamlxaaRequestingApp = ConnectionClientIdOidc +""" +OIDC client identifier issued by the identity provider during application registration. Used to authenticate your Auth0 connection when exchanging SAML Assertions for Refresh Tokens. +""" diff --git a/src/auth0/management/types/connection_client_secret_samlxaa_requesting_app.py b/src/auth0/management/types/connection_client_secret_samlxaa_requesting_app.py new file mode 100644 index 00000000..1009f144 --- /dev/null +++ b/src/auth0/management/types/connection_client_secret_samlxaa_requesting_app.py @@ -0,0 +1,6 @@ +# This file was auto-generated by Fern from our API Definition. + +ConnectionClientSecretSamlxaaRequestingApp = str +""" +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. +""" diff --git a/src/auth0/management/types/connection_options_auth_0.py b/src/auth0/management/types/connection_options_auth_0.py index 4f0c007d..8767ff42 100644 --- a/src/auth0/management/types/connection_options_auth_0.py +++ b/src/auth0/management/types/connection_options_auth_0.py @@ -19,6 +19,7 @@ from .connection_import_mode import ConnectionImportMode from .connection_mfa import ConnectionMfa from .connection_options_common import ConnectionOptionsCommon +from .connection_otp_settings import ConnectionOtpSettings from .connection_passkey_options import ConnectionPasskeyOptions from .connection_password_complexity_options import ConnectionPasswordComplexityOptions from .connection_password_dictionary_options import ConnectionPasswordDictionaryOptions @@ -55,6 +56,7 @@ class ConnectionOptionsAuth0(ConnectionOptionsCommon): ] = None import_mode: typing.Optional[ConnectionImportMode] = None mfa: typing.Optional[ConnectionMfa] = None + otp_settings: typing.Optional[ConnectionOtpSettings] = None passkey_options: typing.Optional[ConnectionPasskeyOptions] = None password_policy: typing_extensions.Annotated[ typing.Optional[ConnectionPasswordPolicyEnum], diff --git a/src/auth0/management/types/connection_options_saml.py b/src/auth0/management/types/connection_options_saml.py index 983df2ef..7b1d999d 100644 --- a/src/auth0/management/types/connection_options_saml.py +++ b/src/auth0/management/types/connection_options_saml.py @@ -6,6 +6,8 @@ import typing_extensions from ..core.pydantic_utilities import IS_PYDANTIC_V2 from ..core.serialization import FieldMetadata +from .connection_client_id_samlxaa_requesting_app import ConnectionClientIdSamlxaaRequestingApp +from .connection_client_secret_samlxaa_requesting_app import ConnectionClientSecretSamlxaaRequestingApp from .connection_debug_saml import ConnectionDebugSaml from .connection_destination_url_saml import ConnectionDestinationUrlSaml from .connection_discovery_url import ConnectionDiscoveryUrl @@ -23,6 +25,9 @@ from .connection_sign_out_endpoint_saml import ConnectionSignOutEndpointSaml from .connection_signing_cert_saml import ConnectionSigningCertSaml from .connection_signing_key_saml import ConnectionSigningKeySaml +from .connection_token_endpoint_auth_method_enum import ConnectionTokenEndpointAuthMethodEnum +from .connection_token_endpoint_auth_signing_alg_enum import ConnectionTokenEndpointAuthSigningAlgEnum +from .connection_token_endpoint_jwtca_aud_format_enum_oidc import ConnectionTokenEndpointJwtcaAudFormatEnumOidc from .connection_user_id_attribute_saml import ConnectionUserIdAttributeSaml @@ -31,6 +36,8 @@ class ConnectionOptionsSaml(ConnectionOptionsCommonSaml, ConnectionOptionsCommon Options for the 'samlp' connection """ + client_id: typing.Optional[ConnectionClientIdSamlxaaRequestingApp] = None + client_secret: typing.Optional[ConnectionClientSecretSamlxaaRequestingApp] = None debug: typing.Optional[ConnectionDebugSaml] = None deflate: typing.Optional[ConnectionOptionsDeflateSaml] = None destination_url: typing_extensions.Annotated[ @@ -88,6 +95,9 @@ class ConnectionOptionsSaml(ConnectionOptionsCommonSaml, ConnectionOptionsCommon FieldMetadata(alias="signOutEndpoint"), pydantic.Field(alias="signOutEndpoint"), ] = None + token_endpoint_auth_method: typing.Optional[ConnectionTokenEndpointAuthMethodEnum] = None + token_endpoint_auth_signing_alg: typing.Optional[ConnectionTokenEndpointAuthSigningAlgEnum] = None + token_endpoint_jwtca_aud_format: typing.Optional[ConnectionTokenEndpointJwtcaAudFormatEnumOidc] = None user_id_attribute: typing.Optional[ConnectionUserIdAttributeSaml] = None if IS_PYDANTIC_V2: diff --git a/src/auth0/management/types/connection_otp_channel_settings.py b/src/auth0/management/types/connection_otp_channel_settings.py new file mode 100644 index 00000000..591f10de --- /dev/null +++ b/src/auth0/management/types/connection_otp_channel_settings.py @@ -0,0 +1,31 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel + + +class ConnectionOtpChannelSettings(UniversalBaseModel): + """ + OTP settings for a delivery channel. + """ + + otp_length: typing.Optional[int] = pydantic.Field(default=None) + """ + Number of digits in the generated one-time password. + """ + + otp_expiry: typing.Optional[int] = pydantic.Field(default=None) + """ + Number of seconds before the one-time password expires. + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/connection_otp_settings.py b/src/auth0/management/types/connection_otp_settings.py new file mode 100644 index 00000000..613b8da5 --- /dev/null +++ b/src/auth0/management/types/connection_otp_settings.py @@ -0,0 +1,25 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .connection_otp_channel_settings import ConnectionOtpChannelSettings + + +class ConnectionOtpSettings(UniversalBaseModel): + """ + One-time password settings, configurable per delivery channel. + """ + + email: typing.Optional[ConnectionOtpChannelSettings] = None + phone: typing.Optional[ConnectionOtpChannelSettings] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/connection_properties_options.py b/src/auth0/management/types/connection_properties_options.py index 12bf209d..5af9a9bb 100644 --- a/src/auth0/management/types/connection_properties_options.py +++ b/src/auth0/management/types/connection_properties_options.py @@ -16,6 +16,7 @@ from .connection_id_token_session_expiry_supported import ConnectionIdTokenSessionExpirySupported from .connection_id_token_signed_response_algs import ConnectionIdTokenSignedResponseAlgs from .connection_identifier_precedence_enum import ConnectionIdentifierPrecedenceEnum +from .connection_otp_settings import ConnectionOtpSettings from .connection_passkey_options import ConnectionPasskeyOptions from .connection_password_complexity_options import ConnectionPasswordComplexityOptions from .connection_password_dictionary_options import ConnectionPasswordDictionaryOptions @@ -83,6 +84,7 @@ class ConnectionPropertiesOptions(UniversalBaseModel): FieldMetadata(alias="customScripts"), pydantic.Field(alias="customScripts"), ] = None + otp_settings: typing.Optional[ConnectionOtpSettings] = None authentication_methods: typing.Optional[ConnectionAuthenticationMethods] = None passkey_options: typing.Optional[ConnectionPasskeyOptions] = None password_policy: typing_extensions.Annotated[ diff --git a/src/auth0/management/types/connection_response_content_saml.py b/src/auth0/management/types/connection_response_content_saml.py index 294a5a08..914fef66 100644 --- a/src/auth0/management/types/connection_response_content_saml.py +++ b/src/auth0/management/types/connection_response_content_saml.py @@ -11,6 +11,7 @@ from .connection_response_common import ConnectionResponseCommon from .connection_response_content_saml_strategy import ConnectionResponseContentSamlStrategy from .connection_show_as_button import ConnectionShowAsButton +from .cross_app_access_requesting_app import CrossAppAccessRequestingApp class ConnectionResponseContentSaml(ConnectionPurposes, ConnectionResponseCommon): @@ -19,6 +20,7 @@ class ConnectionResponseContentSaml(ConnectionPurposes, ConnectionResponseCommon """ strategy: ConnectionResponseContentSamlStrategy + cross_app_access_requesting_app: typing.Optional[CrossAppAccessRequestingApp] = None cross_app_access_resource_app: typing.Optional[ConnectionCrossAppAccessResourceApp] = None options: typing.Optional[ConnectionOptionsSaml] = None provisioning_ticket_url: typing.Optional[ConnectionProvisioningTicketUrl] = None diff --git a/src/auth0/management/types/consent_signing_key.py b/src/auth0/management/types/consent_signing_key.py new file mode 100644 index 00000000..0e83131d --- /dev/null +++ b/src/auth0/management/types/consent_signing_key.py @@ -0,0 +1,38 @@ +# This file was auto-generated by Fern from our API Definition. + +import datetime as dt +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel + + +class ConsentSigningKey(UniversalBaseModel): + kid: str = pydantic.Field() + """ + The key identifier of the consent signing key. + """ + + device_identifier: str = pydantic.Field() + """ + A human-readable label for the device holding the corresponding private key. + """ + + created_at: dt.datetime = pydantic.Field() + """ + The ISO 8601 timestamp at which the key was registered. + """ + + expires_at: dt.datetime = pydantic.Field() + """ + The ISO 8601 timestamp at which the key expires and can no longer be used to verify consent decisions. + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/create_client_response_content.py b/src/auth0/management/types/create_client_response_content.py index 15f8291d..d94bcc85 100644 --- a/src/auth0/management/types/create_client_response_content.py +++ b/src/auth0/management/types/create_client_response_content.py @@ -27,6 +27,7 @@ from .client_mobile import ClientMobile from .client_my_organization_response_configuration import ClientMyOrganizationResponseConfiguration from .client_oidc_backchannel_logout_settings import ClientOidcBackchannelLogoutSettings +from .client_oidc_support import ClientOidcSupport from .client_organization_discovery_enum import ClientOrganizationDiscoveryEnum from .client_organization_require_behavior_enum import ClientOrganizationRequireBehaviorEnum from .client_organization_usage_enum import ClientOrganizationUsageEnum @@ -258,6 +259,7 @@ class CreateClientResponseContent(UniversalBaseModel): None ) third_party_security_mode: typing.Optional[ClientThirdPartySecurityModeEnum] = None + oidc_support: typing.Optional[ClientOidcSupport] = None redirection_policy: typing.Optional[ClientRedirectionPolicyEnum] = None resource_server_identifier: typing.Optional[str] = pydantic.Field(default=None) """ @@ -270,6 +272,11 @@ class CreateClientResponseContent(UniversalBaseModel): external_metadata_type: typing.Optional[ClientExternalMetadataTypeEnum] = None external_metadata_created_by: typing.Optional[ClientExternalMetadataCreatedByEnum] = None external_metadata_status: typing.Optional[ClientExternalMetadataStatusEnum] = None + agent_id: typing.Optional[str] = pydantic.Field(default=None) + """ + ID of the agent associated with this client. + """ + external_client_id: typing.Optional[str] = pydantic.Field(default=None) """ An alternate client identifier to be used during authorization flows. Only supports CIMD-based client identifiers. diff --git a/src/auth0/management/types/create_connection_request_content_saml.py b/src/auth0/management/types/create_connection_request_content_saml.py index bf2c40ae..ff1e3958 100644 --- a/src/auth0/management/types/create_connection_request_content_saml.py +++ b/src/auth0/management/types/create_connection_request_content_saml.py @@ -9,6 +9,7 @@ from .connection_show_as_button import ConnectionShowAsButton from .create_connection_common import CreateConnectionCommon from .create_connection_request_content_saml_strategy import CreateConnectionRequestContentSamlStrategy +from .cross_app_access_requesting_app import CrossAppAccessRequestingApp class CreateConnectionRequestContentSaml(CreateConnectionCommon): @@ -17,6 +18,7 @@ class CreateConnectionRequestContentSaml(CreateConnectionCommon): """ strategy: CreateConnectionRequestContentSamlStrategy + cross_app_access_requesting_app: typing.Optional[CrossAppAccessRequestingApp] = None cross_app_access_resource_app: typing.Optional[ConnectionCrossAppAccessResourceApp] = None options: typing.Optional[ConnectionOptionsSaml] = None show_as_button: typing.Optional[ConnectionShowAsButton] = None diff --git a/src/auth0/management/types/create_experiment_response_content.py b/src/auth0/management/types/create_experiment_response_content.py index 200f2ee9..ef0de3f1 100644 --- a/src/auth0/management/types/create_experiment_response_content.py +++ b/src/auth0/management/types/create_experiment_response_content.py @@ -20,7 +20,11 @@ class CreateExperimentResponseContent(UniversalBaseModel): authentication_flow: str allocation_strategy: AllocationStrategyEnum status: ExperimentStatusEnum - is_valid: bool + is_valid: bool = pydantic.Field() + """ + Whether the experiment is valid and ready to activate, as of its last update. It can lag changes made later to related entities. Call POST /experiments/{id}/validate for the current result. + """ + default_config: typing.Optional[DefaultConfigEnum] = None feature_flag_snapshot: typing.Optional[typing.Dict[str, typing.Any]] = None allocations: typing.List[AllocationItem] diff --git a/src/auth0/management/types/create_resource_server_response_content.py b/src/auth0/management/types/create_resource_server_response_content.py index 447c41c3..b9066934 100644 --- a/src/auth0/management/types/create_resource_server_response_content.py +++ b/src/auth0/management/types/create_resource_server_response_content.py @@ -5,6 +5,7 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from .resource_server_access_token import ResourceServerAccessToken +from .resource_server_agent_subject_claims_response_enum import ResourceServerAgentSubjectClaimsResponseEnum from .resource_server_authorization_policy import ResourceServerAuthorizationPolicy from .resource_server_consent_policy_enum import ResourceServerConsentPolicyEnum from .resource_server_proof_of_possession import ResourceServerProofOfPossession @@ -12,6 +13,7 @@ from .resource_server_subject_type_authorization import ResourceServerSubjectTypeAuthorization from .resource_server_token_dialect_response_enum import ResourceServerTokenDialectResponseEnum from .resource_server_token_encryption import ResourceServerTokenEncryption +from .resource_server_type_enum import ResourceServerTypeEnum from .signing_algorithm_enum import SigningAlgorithmEnum @@ -105,6 +107,9 @@ class CreateResourceServerResponseContent(UniversalBaseModel): The client ID of the client that this resource server is linked to """ + agent_subject_claims: typing.Optional[ResourceServerAgentSubjectClaimsResponseEnum] = None + type: typing.Optional[ResourceServerTypeEnum] = None + if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 else: diff --git a/src/auth0/management/types/event_stream_cloud_event_context.py b/src/auth0/management/types/event_stream_cloud_event_context.py index 532db5bd..3c065cfc 100644 --- a/src/auth0/management/types/event_stream_cloud_event_context.py +++ b/src/auth0/management/types/event_stream_cloud_event_context.py @@ -8,6 +8,7 @@ from .event_stream_cloud_event_context_connection import EventStreamCloudEventContextConnection from .event_stream_cloud_event_context_request import EventStreamCloudEventContextRequest from .event_stream_cloud_event_context_tenant import EventStreamCloudEventContextTenant +from .event_stream_cloud_event_context_transaction import EventStreamCloudEventContextTransaction class EventStreamCloudEventContext(UniversalBaseModel): @@ -23,6 +24,7 @@ class EventStreamCloudEventContext(UniversalBaseModel): connection: typing.Optional[EventStreamCloudEventContextConnection] = None request: typing.Optional[EventStreamCloudEventContextRequest] = None tenant: EventStreamCloudEventContextTenant + transaction: typing.Optional[EventStreamCloudEventContextTransaction] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/auth0/management/types/event_stream_cloud_event_context_transaction.py b/src/auth0/management/types/event_stream_cloud_event_context_transaction.py new file mode 100644 index 00000000..57f5ba29 --- /dev/null +++ b/src/auth0/management/types/event_stream_cloud_event_context_transaction.py @@ -0,0 +1,79 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .event_stream_cloud_event_context_transaction_protocol_enum import ( + EventStreamCloudEventContextTransactionProtocolEnum, +) +from .event_stream_cloud_event_context_transaction_response_mode_enum import ( + EventStreamCloudEventContextTransactionResponseModeEnum, +) +from .event_stream_cloud_event_context_transaction_response_type_item_enum import ( + EventStreamCloudEventContextTransactionResponseTypeItemEnum, +) + + +class EventStreamCloudEventContextTransaction(UniversalBaseModel): + """ + An auth transaction. + """ + + acr_values: typing.List[str] = pydantic.Field() + """ + acr_values in the request. + """ + + locale: str = pydantic.Field() + """ + The locale used for this transaction. + """ + + login_hint: typing.Optional[str] = pydantic.Field(default=None) + """ + Hint about the login identifier the user might use in this transaction. + """ + + prompt: typing.Optional[typing.List[str]] = pydantic.Field(default=None) + """ + Instructions indicating whether the user may be prompted for re-authentication and consent. + """ + + protocol: typing.Optional[EventStreamCloudEventContextTransactionProtocolEnum] = None + redirect_uri: typing.Optional[str] = pydantic.Field(default=None) + """ + The URL to which the client will be redirected when the transaction completes. + """ + + requested_scopes: typing.List[str] = pydantic.Field() + """ + The scopes requested. + """ + + response_mode: typing.Optional[EventStreamCloudEventContextTransactionResponseModeEnum] = None + response_type: typing.Optional[typing.List[EventStreamCloudEventContextTransactionResponseTypeItemEnum]] = ( + pydantic.Field(default=None) + ) + """ + The kind of credential issued by this transaction. + """ + + state: typing.Optional[str] = pydantic.Field(default=None) + """ + The OAuth state parameter for this transaction. + """ + + ui_locales: typing.List[str] = pydantic.Field() + """ + The ui_locales requested for this transaction. + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/event_stream_cloud_event_context_transaction_protocol_enum.py b/src/auth0/management/types/event_stream_cloud_event_context_transaction_protocol_enum.py new file mode 100644 index 00000000..009d6ed8 --- /dev/null +++ b/src/auth0/management/types/event_stream_cloud_event_context_transaction_protocol_enum.py @@ -0,0 +1,23 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +EventStreamCloudEventContextTransactionProtocolEnum = typing.Union[ + typing.Literal[ + "oidc-basic-profile", + "oidc-implicit-profile", + "oauth2-device-code", + "oauth2-resource-owner", + "oauth2-resource-owner-jwt-bearer", + "oauth2-password", + "oauth2-webauthn", + "oauth2-access-token", + "oauth2-refresh-token", + "oauth2-token-exchange", + "oidc-hybrid-profile", + "samlp", + "wsfed", + "wstrust-usernamemixed", + ], + typing.Any, +] diff --git a/src/auth0/management/types/event_stream_cloud_event_context_transaction_response_mode_enum.py b/src/auth0/management/types/event_stream_cloud_event_context_transaction_response_mode_enum.py new file mode 100644 index 00000000..2999557a --- /dev/null +++ b/src/auth0/management/types/event_stream_cloud_event_context_transaction_response_mode_enum.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +EventStreamCloudEventContextTransactionResponseModeEnum = typing.Union[ + typing.Literal["query", "fragment", "form_post", "web_message"], typing.Any +] diff --git a/src/auth0/management/types/event_stream_cloud_event_context_transaction_response_type_item_enum.py b/src/auth0/management/types/event_stream_cloud_event_context_transaction_response_type_item_enum.py new file mode 100644 index 00000000..a2fb4260 --- /dev/null +++ b/src/auth0/management/types/event_stream_cloud_event_context_transaction_response_type_item_enum.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +EventStreamCloudEventContextTransactionResponseTypeItemEnum = typing.Union[ + typing.Literal["code", "token", "id_token"], typing.Any +] diff --git a/src/auth0/management/types/experiment_list_item.py b/src/auth0/management/types/experiment_list_item.py index 1c4ba5fe..d77a6d5e 100644 --- a/src/auth0/management/types/experiment_list_item.py +++ b/src/auth0/management/types/experiment_list_item.py @@ -20,7 +20,11 @@ class ExperimentListItem(UniversalBaseModel): authentication_flow: str allocation_strategy: AllocationStrategyEnum status: ExperimentStatusEnum - is_valid: bool + is_valid: bool = pydantic.Field() + """ + Whether the experiment is valid and ready to activate, as of its last update. It can lag changes made later to related entities. Call POST /experiments/{id}/validate for the current result. + """ + default_config: typing.Optional[DefaultConfigEnum] = None feature_flag_snapshot: typing.Optional[typing.Dict[str, typing.Any]] = None allocations: typing.List[AllocationItem] diff --git a/src/auth0/management/types/get_brute_force_settings_response_content.py b/src/auth0/management/types/get_brute_force_settings_response_content.py index 2799d068..52f650a7 100644 --- a/src/auth0/management/types/get_brute_force_settings_response_content.py +++ b/src/auth0/management/types/get_brute_force_settings_response_content.py @@ -27,13 +27,12 @@ class GetBruteForceSettingsResponseContent(UniversalBaseModel): """ mode: typing.Optional[BruteForceProtectionModeEnum] = None + form_submission_mode: typing.Optional[BruteForceProtectionFormSubmissionModeEnum] = None max_attempts: typing.Optional[int] = pydantic.Field(default=None) """ Maximum number of unsuccessful attempts. """ - form_submission_mode: typing.Optional[BruteForceProtectionFormSubmissionModeEnum] = None - if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 else: diff --git a/src/auth0/management/types/get_client_response_content.py b/src/auth0/management/types/get_client_response_content.py index 41399951..1300094b 100644 --- a/src/auth0/management/types/get_client_response_content.py +++ b/src/auth0/management/types/get_client_response_content.py @@ -27,6 +27,7 @@ from .client_mobile import ClientMobile from .client_my_organization_response_configuration import ClientMyOrganizationResponseConfiguration from .client_oidc_backchannel_logout_settings import ClientOidcBackchannelLogoutSettings +from .client_oidc_support import ClientOidcSupport from .client_organization_discovery_enum import ClientOrganizationDiscoveryEnum from .client_organization_require_behavior_enum import ClientOrganizationRequireBehaviorEnum from .client_organization_usage_enum import ClientOrganizationUsageEnum @@ -258,6 +259,7 @@ class GetClientResponseContent(UniversalBaseModel): None ) third_party_security_mode: typing.Optional[ClientThirdPartySecurityModeEnum] = None + oidc_support: typing.Optional[ClientOidcSupport] = None redirection_policy: typing.Optional[ClientRedirectionPolicyEnum] = None resource_server_identifier: typing.Optional[str] = pydantic.Field(default=None) """ @@ -270,6 +272,11 @@ class GetClientResponseContent(UniversalBaseModel): external_metadata_type: typing.Optional[ClientExternalMetadataTypeEnum] = None external_metadata_created_by: typing.Optional[ClientExternalMetadataCreatedByEnum] = None external_metadata_status: typing.Optional[ClientExternalMetadataStatusEnum] = None + agent_id: typing.Optional[str] = pydantic.Field(default=None) + """ + ID of the agent associated with this client. + """ + external_client_id: typing.Optional[str] = pydantic.Field(default=None) """ An alternate client identifier to be used during authorization flows. Only supports CIMD-based client identifiers. diff --git a/src/auth0/management/types/get_experiment_response_content.py b/src/auth0/management/types/get_experiment_response_content.py index 5ea178c1..5411931d 100644 --- a/src/auth0/management/types/get_experiment_response_content.py +++ b/src/auth0/management/types/get_experiment_response_content.py @@ -20,7 +20,11 @@ class GetExperimentResponseContent(UniversalBaseModel): authentication_flow: str allocation_strategy: AllocationStrategyEnum status: ExperimentStatusEnum - is_valid: bool + is_valid: bool = pydantic.Field() + """ + Whether the experiment is valid and ready to activate, as of its last update. It can lag changes made later to related entities. Call POST /experiments/{id}/validate for the current result. + """ + default_config: typing.Optional[DefaultConfigEnum] = None feature_flag_snapshot: typing.Optional[typing.Dict[str, typing.Any]] = None allocations: typing.List[AllocationItem] diff --git a/src/auth0/management/types/get_resource_server_response_content.py b/src/auth0/management/types/get_resource_server_response_content.py index 0b60b730..c8aae3f9 100644 --- a/src/auth0/management/types/get_resource_server_response_content.py +++ b/src/auth0/management/types/get_resource_server_response_content.py @@ -5,6 +5,7 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from .resource_server_access_token import ResourceServerAccessToken +from .resource_server_agent_subject_claims_response_enum import ResourceServerAgentSubjectClaimsResponseEnum from .resource_server_authorization_policy import ResourceServerAuthorizationPolicy from .resource_server_consent_policy_enum import ResourceServerConsentPolicyEnum from .resource_server_proof_of_possession import ResourceServerProofOfPossession @@ -12,6 +13,7 @@ from .resource_server_subject_type_authorization import ResourceServerSubjectTypeAuthorization from .resource_server_token_dialect_response_enum import ResourceServerTokenDialectResponseEnum from .resource_server_token_encryption import ResourceServerTokenEncryption +from .resource_server_type_enum import ResourceServerTypeEnum from .signing_algorithm_enum import SigningAlgorithmEnum @@ -105,6 +107,9 @@ class GetResourceServerResponseContent(UniversalBaseModel): The client ID of the client that this resource server is linked to """ + agent_subject_claims: typing.Optional[ResourceServerAgentSubjectClaimsResponseEnum] = None + type: typing.Optional[ResourceServerTypeEnum] = None + if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 else: diff --git a/src/auth0/management/types/internal_server_error_body.py b/src/auth0/management/types/internal_server_error_body.py new file mode 100644 index 00000000..e403356b --- /dev/null +++ b/src/auth0/management/types/internal_server_error_body.py @@ -0,0 +1,24 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from ..core.serialization import FieldMetadata +from .internal_server_error_body_error import InternalServerErrorBodyError + + +class InternalServerErrorBody(UniversalBaseModel): + message: str + status_code: typing_extensions.Annotated[str, FieldMetadata(alias="statusCode"), pydantic.Field(alias="statusCode")] + error: InternalServerErrorBodyError + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/internal_server_error_body_error.py b/src/auth0/management/types/internal_server_error_body_error.py new file mode 100644 index 00000000..09403d7b --- /dev/null +++ b/src/auth0/management/types/internal_server_error_body_error.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +InternalServerErrorBodyError = typing.Union[typing.Literal["Internal Server Error"], typing.Any] diff --git a/src/auth0/management/types/list_attack_protection_captcha_policies_response_content.py b/src/auth0/management/types/list_attack_protection_captcha_policies_response_content.py deleted file mode 100644 index 17c79979..00000000 --- a/src/auth0/management/types/list_attack_protection_captcha_policies_response_content.py +++ /dev/null @@ -1,10 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -from .attack_protection_captcha_policy import AttackProtectionCaptchaPolicy - -ListAttackProtectionCaptchaPoliciesResponseContent = typing.List[AttackProtectionCaptchaPolicy] -""" -List of CAPTCHA attack protection policies for the tenant, sorted by priority ascending. -""" diff --git a/src/auth0/management/types/list_portals_response_content.py b/src/auth0/management/types/list_portals_response_content.py new file mode 100644 index 00000000..221c487b --- /dev/null +++ b/src/auth0/management/types/list_portals_response_content.py @@ -0,0 +1,20 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .portal_summary import PortalSummary + + +class ListPortalsResponseContent(UniversalBaseModel): + portals: typing.List[PortalSummary] + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/captcha_policy_action_recaptcha_v_2.py b/src/auth0/management/types/list_user_consent_signing_keys_response_content.py similarity index 67% rename from src/auth0/management/types/captcha_policy_action_recaptcha_v_2.py rename to src/auth0/management/types/list_user_consent_signing_keys_response_content.py index dc3d9d3d..c728dd67 100644 --- a/src/auth0/management/types/captcha_policy_action_recaptcha_v_2.py +++ b/src/auth0/management/types/list_user_consent_signing_keys_response_content.py @@ -4,16 +4,13 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .consent_signing_key import ConsentSigningKey -class CaptchaPolicyActionRecaptchaV2(UniversalBaseModel): +class ListUserConsentSigningKeysResponseContent(UniversalBaseModel): + keys: typing.List[ConsentSigningKey] = pydantic.Field() """ - reCAPTCHA v2 provider configuration. - """ - - site_key: typing.Optional[str] = pydantic.Field(default=None) - """ - The reCAPTCHA v2 site key. + The consent signing keys registered for the user. """ if IS_PYDANTIC_V2: diff --git a/src/auth0/management/types/oauth_scope.py b/src/auth0/management/types/oauth_scope.py index 904eb43b..288dd2f5 100644 --- a/src/auth0/management/types/oauth_scope.py +++ b/src/auth0/management/types/oauth_scope.py @@ -256,6 +256,10 @@ "read:organization_clients", "update:organization_clients", "delete:organization_clients", + "create:portals", + "read:portals", + "update:portals", + "delete:portals", "create:network_acl_keys", "read:network_acl_keys", "delete:network_acl_keys", diff --git a/src/auth0/management/types/page_component.py b/src/auth0/management/types/page_component.py new file mode 100644 index 00000000..1f739fda --- /dev/null +++ b/src/auth0/management/types/page_component.py @@ -0,0 +1,206 @@ +# This file was auto-generated by Fern from our API Definition. + +from __future__ import annotations + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .page_component_auth_0_form_config import PageComponentAuth0FormConfig +from .page_component_auth_0_media_image_config import PageComponentAuth0MediaImageConfig +from .page_component_auth_0_my_account_mfa_management_config import PageComponentAuth0MyAccountMfaManagementConfig +from .page_component_auth_0_my_account_passkey_management_config import ( + PageComponentAuth0MyAccountPasskeyManagementConfig, +) +from .page_component_auth_0_my_organization_details_edit_config import PageComponentAuth0MyOrganizationDetailsEditConfig +from .page_component_auth_0_my_organization_domain_table_config import PageComponentAuth0MyOrganizationDomainTableConfig +from .page_component_auth_0_my_organization_member_management_config import ( + PageComponentAuth0MyOrganizationMemberManagementConfig, +) +from .page_component_auth_0_structure_section_config import PageComponentAuth0StructureSectionConfig +from .page_component_auth_0_structure_separator_config import PageComponentAuth0StructureSeparatorConfig +from .page_component_auth_0_typography_heading_config import PageComponentAuth0TypographyHeadingConfig +from .page_component_auth_0_typography_rich_text_config import PageComponentAuth0TypographyRichTextConfig + + +class PageComponent_PageComponentAuth0Form(UniversalBaseModel): + type: typing.Literal["page:component:auth0:form"] = "page:component:auth0:form" + config: PageComponentAuth0FormConfig + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +class PageComponent_PageComponentAuth0TypographyHeading(UniversalBaseModel): + type: typing.Literal["page:component:auth0:typography:heading"] = "page:component:auth0:typography:heading" + config: PageComponentAuth0TypographyHeadingConfig + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +class PageComponent_PageComponentAuth0MediaImage(UniversalBaseModel): + type: typing.Literal["page:component:auth0:media:image"] = "page:component:auth0:media:image" + config: PageComponentAuth0MediaImageConfig + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +class PageComponent_PageComponentAuth0TypographyRichText(UniversalBaseModel): + type: typing.Literal["page:component:auth0:typography:rich_text"] = "page:component:auth0:typography:rich_text" + config: PageComponentAuth0TypographyRichTextConfig + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +class PageComponent_PageComponentAuth0StructureSection(UniversalBaseModel): + type: typing.Literal["page:component:auth0:structure:section"] = "page:component:auth0:structure:section" + config: PageComponentAuth0StructureSectionConfig + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +class PageComponent_PageComponentAuth0StructureSeparator(UniversalBaseModel): + type: typing.Literal["page:component:auth0:structure:separator"] = "page:component:auth0:structure:separator" + config: typing.Optional[PageComponentAuth0StructureSeparatorConfig] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +class PageComponent_PageComponentAuth0MyOrganizationDomainTable(UniversalBaseModel): + type: typing.Literal["page:component:auth0:my_organization:domain_table"] = ( + "page:component:auth0:my_organization:domain_table" + ) + config: typing.Optional[PageComponentAuth0MyOrganizationDomainTableConfig] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +class PageComponent_PageComponentAuth0MyOrganizationMemberManagement(UniversalBaseModel): + type: typing.Literal["page:component:auth0:my_organization:member_management"] = ( + "page:component:auth0:my_organization:member_management" + ) + config: typing.Optional[PageComponentAuth0MyOrganizationMemberManagementConfig] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +class PageComponent_PageComponentAuth0MyOrganizationDetailsEdit(UniversalBaseModel): + type: typing.Literal["page:component:auth0:my_organization:details_edit"] = ( + "page:component:auth0:my_organization:details_edit" + ) + config: typing.Optional[PageComponentAuth0MyOrganizationDetailsEditConfig] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +class PageComponent_PageComponentAuth0MyAccountPasskeyManagement(UniversalBaseModel): + type: typing.Literal["page:component:auth0:my_account:passkey_management"] = ( + "page:component:auth0:my_account:passkey_management" + ) + config: typing.Optional[PageComponentAuth0MyAccountPasskeyManagementConfig] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +class PageComponent_PageComponentAuth0MyAccountMfaManagement(UniversalBaseModel): + type: typing.Literal["page:component:auth0:my_account:mfa_management"] = ( + "page:component:auth0:my_account:mfa_management" + ) + config: typing.Optional[PageComponentAuth0MyAccountMfaManagementConfig] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +PageComponent = typing_extensions.Annotated[ + typing.Union[ + PageComponent_PageComponentAuth0Form, + PageComponent_PageComponentAuth0TypographyHeading, + PageComponent_PageComponentAuth0MediaImage, + PageComponent_PageComponentAuth0TypographyRichText, + PageComponent_PageComponentAuth0StructureSection, + PageComponent_PageComponentAuth0StructureSeparator, + PageComponent_PageComponentAuth0MyOrganizationDomainTable, + PageComponent_PageComponentAuth0MyOrganizationMemberManagement, + PageComponent_PageComponentAuth0MyOrganizationDetailsEdit, + PageComponent_PageComponentAuth0MyAccountPasskeyManagement, + PageComponent_PageComponentAuth0MyAccountMfaManagement, + ], + pydantic.Field(discriminator="type"), +] diff --git a/src/auth0/management/types/page_component_auth_0_form.py b/src/auth0/management/types/page_component_auth_0_form.py new file mode 100644 index 00000000..41f2c7d4 --- /dev/null +++ b/src/auth0/management/types/page_component_auth_0_form.py @@ -0,0 +1,20 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .page_component_auth_0_form_config import PageComponentAuth0FormConfig + + +class PageComponentAuth0Form(UniversalBaseModel): + config: PageComponentAuth0FormConfig + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/captcha_policy_action_friendly_captcha.py b/src/auth0/management/types/page_component_auth_0_form_config.py similarity index 66% rename from src/auth0/management/types/captcha_policy_action_friendly_captcha.py rename to src/auth0/management/types/page_component_auth_0_form_config.py index 4181e538..61b90487 100644 --- a/src/auth0/management/types/captcha_policy_action_friendly_captcha.py +++ b/src/auth0/management/types/page_component_auth_0_form_config.py @@ -6,14 +6,15 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -class CaptchaPolicyActionFriendlyCaptcha(UniversalBaseModel): +class PageComponentAuth0FormConfig(UniversalBaseModel): + form_id: str = pydantic.Field() """ - Friendly Captcha provider configuration. + The identifier of the form you want to render. """ - site_key: typing.Optional[str] = pydantic.Field(default=None) + completion_message: str = pydantic.Field() """ - The Friendly Captcha site key. + Toast message displayed after successful form submission. """ if IS_PYDANTIC_V2: diff --git a/src/auth0/management/types/page_component_auth_0_media_image.py b/src/auth0/management/types/page_component_auth_0_media_image.py new file mode 100644 index 00000000..4fdf0cc3 --- /dev/null +++ b/src/auth0/management/types/page_component_auth_0_media_image.py @@ -0,0 +1,20 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .page_component_auth_0_media_image_config import PageComponentAuth0MediaImageConfig + + +class PageComponentAuth0MediaImage(UniversalBaseModel): + config: PageComponentAuth0MediaImageConfig + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/page_component_auth_0_media_image_config.py b/src/auth0/management/types/page_component_auth_0_media_image_config.py new file mode 100644 index 00000000..6d21d887 --- /dev/null +++ b/src/auth0/management/types/page_component_auth_0_media_image_config.py @@ -0,0 +1,29 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .position import Position + + +class PageComponentAuth0MediaImageConfig(UniversalBaseModel): + src: str = pydantic.Field() + """ + URL of the image to display. + """ + + position: typing.Optional[Position] = None + height: typing.Optional[int] = pydantic.Field(default=None) + """ + Height of the image in pixels. Width scales automatically to preserve aspect ratio. + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/page_component_auth_0_my_account_mfa_management.py b/src/auth0/management/types/page_component_auth_0_my_account_mfa_management.py new file mode 100644 index 00000000..b9e11b09 --- /dev/null +++ b/src/auth0/management/types/page_component_auth_0_my_account_mfa_management.py @@ -0,0 +1,20 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .page_component_auth_0_my_account_mfa_management_config import PageComponentAuth0MyAccountMfaManagementConfig + + +class PageComponentAuth0MyAccountMfaManagement(UniversalBaseModel): + config: typing.Optional[PageComponentAuth0MyAccountMfaManagementConfig] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/page_component_auth_0_my_account_mfa_management_config.py b/src/auth0/management/types/page_component_auth_0_my_account_mfa_management_config.py new file mode 100644 index 00000000..70f877ac --- /dev/null +++ b/src/auth0/management/types/page_component_auth_0_my_account_mfa_management_config.py @@ -0,0 +1,17 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel + + +class PageComponentAuth0MyAccountMfaManagementConfig(UniversalBaseModel): + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/page_component_auth_0_my_account_passkey_management.py b/src/auth0/management/types/page_component_auth_0_my_account_passkey_management.py new file mode 100644 index 00000000..78cdb119 --- /dev/null +++ b/src/auth0/management/types/page_component_auth_0_my_account_passkey_management.py @@ -0,0 +1,22 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .page_component_auth_0_my_account_passkey_management_config import ( + PageComponentAuth0MyAccountPasskeyManagementConfig, +) + + +class PageComponentAuth0MyAccountPasskeyManagement(UniversalBaseModel): + config: typing.Optional[PageComponentAuth0MyAccountPasskeyManagementConfig] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/page_component_auth_0_my_account_passkey_management_config.py b/src/auth0/management/types/page_component_auth_0_my_account_passkey_management_config.py new file mode 100644 index 00000000..f27b3520 --- /dev/null +++ b/src/auth0/management/types/page_component_auth_0_my_account_passkey_management_config.py @@ -0,0 +1,17 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel + + +class PageComponentAuth0MyAccountPasskeyManagementConfig(UniversalBaseModel): + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/page_component_auth_0_my_organization_details_edit.py b/src/auth0/management/types/page_component_auth_0_my_organization_details_edit.py new file mode 100644 index 00000000..962cdd45 --- /dev/null +++ b/src/auth0/management/types/page_component_auth_0_my_organization_details_edit.py @@ -0,0 +1,20 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .page_component_auth_0_my_organization_details_edit_config import PageComponentAuth0MyOrganizationDetailsEditConfig + + +class PageComponentAuth0MyOrganizationDetailsEdit(UniversalBaseModel): + config: typing.Optional[PageComponentAuth0MyOrganizationDetailsEditConfig] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/page_component_auth_0_my_organization_details_edit_config.py b/src/auth0/management/types/page_component_auth_0_my_organization_details_edit_config.py new file mode 100644 index 00000000..0fbd7601 --- /dev/null +++ b/src/auth0/management/types/page_component_auth_0_my_organization_details_edit_config.py @@ -0,0 +1,17 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel + + +class PageComponentAuth0MyOrganizationDetailsEditConfig(UniversalBaseModel): + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/page_component_auth_0_my_organization_domain_table.py b/src/auth0/management/types/page_component_auth_0_my_organization_domain_table.py new file mode 100644 index 00000000..83240b3b --- /dev/null +++ b/src/auth0/management/types/page_component_auth_0_my_organization_domain_table.py @@ -0,0 +1,20 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .page_component_auth_0_my_organization_domain_table_config import PageComponentAuth0MyOrganizationDomainTableConfig + + +class PageComponentAuth0MyOrganizationDomainTable(UniversalBaseModel): + config: typing.Optional[PageComponentAuth0MyOrganizationDomainTableConfig] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/page_component_auth_0_my_organization_domain_table_config.py b/src/auth0/management/types/page_component_auth_0_my_organization_domain_table_config.py new file mode 100644 index 00000000..8f514a79 --- /dev/null +++ b/src/auth0/management/types/page_component_auth_0_my_organization_domain_table_config.py @@ -0,0 +1,17 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel + + +class PageComponentAuth0MyOrganizationDomainTableConfig(UniversalBaseModel): + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/page_component_auth_0_my_organization_member_management.py b/src/auth0/management/types/page_component_auth_0_my_organization_member_management.py new file mode 100644 index 00000000..5973fc09 --- /dev/null +++ b/src/auth0/management/types/page_component_auth_0_my_organization_member_management.py @@ -0,0 +1,22 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .page_component_auth_0_my_organization_member_management_config import ( + PageComponentAuth0MyOrganizationMemberManagementConfig, +) + + +class PageComponentAuth0MyOrganizationMemberManagement(UniversalBaseModel): + config: typing.Optional[PageComponentAuth0MyOrganizationMemberManagementConfig] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/page_component_auth_0_my_organization_member_management_config.py b/src/auth0/management/types/page_component_auth_0_my_organization_member_management_config.py new file mode 100644 index 00000000..f0e182b1 --- /dev/null +++ b/src/auth0/management/types/page_component_auth_0_my_organization_member_management_config.py @@ -0,0 +1,17 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel + + +class PageComponentAuth0MyOrganizationMemberManagementConfig(UniversalBaseModel): + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/page_component_auth_0_structure_section.py b/src/auth0/management/types/page_component_auth_0_structure_section.py new file mode 100644 index 00000000..c2d23a55 --- /dev/null +++ b/src/auth0/management/types/page_component_auth_0_structure_section.py @@ -0,0 +1,20 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .page_component_auth_0_structure_section_config import PageComponentAuth0StructureSectionConfig + + +class PageComponentAuth0StructureSection(UniversalBaseModel): + config: PageComponentAuth0StructureSectionConfig + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/page_component_auth_0_structure_section_config.py b/src/auth0/management/types/page_component_auth_0_structure_section_config.py new file mode 100644 index 00000000..262cdd12 --- /dev/null +++ b/src/auth0/management/types/page_component_auth_0_structure_section_config.py @@ -0,0 +1,35 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .page_component_auth_0_structure_section_variant_enum import PageComponentAuth0StructureSectionVariantEnum +from .page_component_no_children import PageComponentNoChildren + + +class PageComponentAuth0StructureSectionConfig(UniversalBaseModel): + title: typing.Optional[str] = pydantic.Field(default=None) + """ + Heading displayed at the top of the section. + """ + + description: typing.Optional[str] = pydantic.Field(default=None) + """ + Optional description displayed below the title. + """ + + variant: PageComponentAuth0StructureSectionVariantEnum + children: typing.List[PageComponentNoChildren] = pydantic.Field() + """ + Components to render inside the section. + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/page_component_auth_0_structure_section_variant_enum.py b/src/auth0/management/types/page_component_auth_0_structure_section_variant_enum.py new file mode 100644 index 00000000..41212b22 --- /dev/null +++ b/src/auth0/management/types/page_component_auth_0_structure_section_variant_enum.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +PageComponentAuth0StructureSectionVariantEnum = typing.Union[typing.Literal["card", "none"], typing.Any] diff --git a/src/auth0/management/types/page_component_auth_0_structure_separator.py b/src/auth0/management/types/page_component_auth_0_structure_separator.py new file mode 100644 index 00000000..5d94427b --- /dev/null +++ b/src/auth0/management/types/page_component_auth_0_structure_separator.py @@ -0,0 +1,20 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .page_component_auth_0_structure_separator_config import PageComponentAuth0StructureSeparatorConfig + + +class PageComponentAuth0StructureSeparator(UniversalBaseModel): + config: typing.Optional[PageComponentAuth0StructureSeparatorConfig] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/page_component_auth_0_structure_separator_config.py b/src/auth0/management/types/page_component_auth_0_structure_separator_config.py new file mode 100644 index 00000000..ea8d3c59 --- /dev/null +++ b/src/auth0/management/types/page_component_auth_0_structure_separator_config.py @@ -0,0 +1,24 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .page_component_auth_0_structure_separator_variant_enum import PageComponentAuth0StructureSeparatorVariantEnum + + +class PageComponentAuth0StructureSeparatorConfig(UniversalBaseModel): + variant: typing.Optional[PageComponentAuth0StructureSeparatorVariantEnum] = None + text: typing.Optional[str] = pydantic.Field(default=None) + """ + Optional label centered within the separator line (ignored when variant is "none"). + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/page_component_auth_0_structure_separator_variant_enum.py b/src/auth0/management/types/page_component_auth_0_structure_separator_variant_enum.py new file mode 100644 index 00000000..bbfe06b6 --- /dev/null +++ b/src/auth0/management/types/page_component_auth_0_structure_separator_variant_enum.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +PageComponentAuth0StructureSeparatorVariantEnum = typing.Union[typing.Literal["dashed", "none", "solid"], typing.Any] diff --git a/src/auth0/management/types/page_component_auth_0_typography_heading.py b/src/auth0/management/types/page_component_auth_0_typography_heading.py new file mode 100644 index 00000000..d6329d10 --- /dev/null +++ b/src/auth0/management/types/page_component_auth_0_typography_heading.py @@ -0,0 +1,20 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .page_component_auth_0_typography_heading_config import PageComponentAuth0TypographyHeadingConfig + + +class PageComponentAuth0TypographyHeading(UniversalBaseModel): + config: PageComponentAuth0TypographyHeadingConfig + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/page_component_auth_0_typography_heading_config.py b/src/auth0/management/types/page_component_auth_0_typography_heading_config.py new file mode 100644 index 00000000..89fcd0a6 --- /dev/null +++ b/src/auth0/management/types/page_component_auth_0_typography_heading_config.py @@ -0,0 +1,27 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel + + +class PageComponentAuth0TypographyHeadingConfig(UniversalBaseModel): + title: str = pydantic.Field() + """ + Heading displayed. + """ + + description: typing.Optional[str] = pydantic.Field(default=None) + """ + Optional description displayed below the title. Supports basic HTML formatting: links, bold, italic, and underline. + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/page_component_auth_0_typography_rich_text.py b/src/auth0/management/types/page_component_auth_0_typography_rich_text.py new file mode 100644 index 00000000..8595ea71 --- /dev/null +++ b/src/auth0/management/types/page_component_auth_0_typography_rich_text.py @@ -0,0 +1,20 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .page_component_auth_0_typography_rich_text_config import PageComponentAuth0TypographyRichTextConfig + + +class PageComponentAuth0TypographyRichText(UniversalBaseModel): + config: PageComponentAuth0TypographyRichTextConfig + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/captcha_policy_action_hcaptcha.py b/src/auth0/management/types/page_component_auth_0_typography_rich_text_config.py similarity index 69% rename from src/auth0/management/types/captcha_policy_action_hcaptcha.py rename to src/auth0/management/types/page_component_auth_0_typography_rich_text_config.py index 3b763446..cefce21f 100644 --- a/src/auth0/management/types/captcha_policy_action_hcaptcha.py +++ b/src/auth0/management/types/page_component_auth_0_typography_rich_text_config.py @@ -6,14 +6,10 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -class CaptchaPolicyActionHcaptcha(UniversalBaseModel): +class PageComponentAuth0TypographyRichTextConfig(UniversalBaseModel): + content: str = pydantic.Field() """ - hCaptcha provider configuration. - """ - - site_key: typing.Optional[str] = pydantic.Field(default=None) - """ - The hCaptcha site key. + HTML content to render. Supports headings, bold, italic, underline, links, text alignment, and lists. """ if IS_PYDANTIC_V2: diff --git a/src/auth0/management/types/page_component_no_children.py b/src/auth0/management/types/page_component_no_children.py new file mode 100644 index 00000000..0e2280fe --- /dev/null +++ b/src/auth0/management/types/page_component_no_children.py @@ -0,0 +1,190 @@ +# This file was auto-generated by Fern from our API Definition. + +from __future__ import annotations + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .page_component_auth_0_form_config import PageComponentAuth0FormConfig +from .page_component_auth_0_media_image_config import PageComponentAuth0MediaImageConfig +from .page_component_auth_0_my_account_mfa_management_config import PageComponentAuth0MyAccountMfaManagementConfig +from .page_component_auth_0_my_account_passkey_management_config import ( + PageComponentAuth0MyAccountPasskeyManagementConfig, +) +from .page_component_auth_0_my_organization_details_edit_config import PageComponentAuth0MyOrganizationDetailsEditConfig +from .page_component_auth_0_my_organization_domain_table_config import PageComponentAuth0MyOrganizationDomainTableConfig +from .page_component_auth_0_my_organization_member_management_config import ( + PageComponentAuth0MyOrganizationMemberManagementConfig, +) +from .page_component_auth_0_structure_separator_config import PageComponentAuth0StructureSeparatorConfig +from .page_component_auth_0_typography_heading_config import PageComponentAuth0TypographyHeadingConfig +from .page_component_auth_0_typography_rich_text_config import PageComponentAuth0TypographyRichTextConfig + + +class PageComponentNoChildren_PageComponentAuth0Form(UniversalBaseModel): + type: typing.Literal["page:component:auth0:form"] = "page:component:auth0:form" + config: PageComponentAuth0FormConfig + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +class PageComponentNoChildren_PageComponentAuth0TypographyHeading(UniversalBaseModel): + type: typing.Literal["page:component:auth0:typography:heading"] = "page:component:auth0:typography:heading" + config: PageComponentAuth0TypographyHeadingConfig + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +class PageComponentNoChildren_PageComponentAuth0MediaImage(UniversalBaseModel): + type: typing.Literal["page:component:auth0:media:image"] = "page:component:auth0:media:image" + config: PageComponentAuth0MediaImageConfig + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +class PageComponentNoChildren_PageComponentAuth0TypographyRichText(UniversalBaseModel): + type: typing.Literal["page:component:auth0:typography:rich_text"] = "page:component:auth0:typography:rich_text" + config: PageComponentAuth0TypographyRichTextConfig + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +class PageComponentNoChildren_PageComponentAuth0StructureSeparator(UniversalBaseModel): + type: typing.Literal["page:component:auth0:structure:separator"] = "page:component:auth0:structure:separator" + config: typing.Optional[PageComponentAuth0StructureSeparatorConfig] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +class PageComponentNoChildren_PageComponentAuth0MyOrganizationDomainTable(UniversalBaseModel): + type: typing.Literal["page:component:auth0:my_organization:domain_table"] = ( + "page:component:auth0:my_organization:domain_table" + ) + config: typing.Optional[PageComponentAuth0MyOrganizationDomainTableConfig] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +class PageComponentNoChildren_PageComponentAuth0MyOrganizationMemberManagement(UniversalBaseModel): + type: typing.Literal["page:component:auth0:my_organization:member_management"] = ( + "page:component:auth0:my_organization:member_management" + ) + config: typing.Optional[PageComponentAuth0MyOrganizationMemberManagementConfig] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +class PageComponentNoChildren_PageComponentAuth0MyOrganizationDetailsEdit(UniversalBaseModel): + type: typing.Literal["page:component:auth0:my_organization:details_edit"] = ( + "page:component:auth0:my_organization:details_edit" + ) + config: typing.Optional[PageComponentAuth0MyOrganizationDetailsEditConfig] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +class PageComponentNoChildren_PageComponentAuth0MyAccountPasskeyManagement(UniversalBaseModel): + type: typing.Literal["page:component:auth0:my_account:passkey_management"] = ( + "page:component:auth0:my_account:passkey_management" + ) + config: typing.Optional[PageComponentAuth0MyAccountPasskeyManagementConfig] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +class PageComponentNoChildren_PageComponentAuth0MyAccountMfaManagement(UniversalBaseModel): + type: typing.Literal["page:component:auth0:my_account:mfa_management"] = ( + "page:component:auth0:my_account:mfa_management" + ) + config: typing.Optional[PageComponentAuth0MyAccountMfaManagementConfig] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +PageComponentNoChildren = typing_extensions.Annotated[ + typing.Union[ + PageComponentNoChildren_PageComponentAuth0Form, + PageComponentNoChildren_PageComponentAuth0TypographyHeading, + PageComponentNoChildren_PageComponentAuth0MediaImage, + PageComponentNoChildren_PageComponentAuth0TypographyRichText, + PageComponentNoChildren_PageComponentAuth0StructureSeparator, + PageComponentNoChildren_PageComponentAuth0MyOrganizationDomainTable, + PageComponentNoChildren_PageComponentAuth0MyOrganizationMemberManagement, + PageComponentNoChildren_PageComponentAuth0MyOrganizationDetailsEdit, + PageComponentNoChildren_PageComponentAuth0MyAccountPasskeyManagement, + PageComponentNoChildren_PageComponentAuth0MyAccountMfaManagement, + ], + pydantic.Field(discriminator="type"), +] diff --git a/src/auth0/management/types/page_slug.py b/src/auth0/management/types/page_slug.py new file mode 100644 index 00000000..aed64965 --- /dev/null +++ b/src/auth0/management/types/page_slug.py @@ -0,0 +1,3 @@ +# This file was auto-generated by Fern from our API Definition. + +PageSlug = str diff --git a/src/auth0/management/types/portal.py b/src/auth0/management/types/portal.py new file mode 100644 index 00000000..b1d57730 --- /dev/null +++ b/src/auth0/management/types/portal.py @@ -0,0 +1,35 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .portal_client_secret_post import PortalClientSecretPost +from .portal_custom_code import PortalCustomCode +from .portal_date_time import PortalDateTime +from .portal_id import PortalId +from .portal_name import PortalName +from .portal_navigation import PortalNavigation +from .portal_pages_by_type import PortalPagesByType +from .portal_slug import PortalSlug + + +class Portal(UniversalBaseModel): + id: PortalId + name: PortalName + navigation: typing.Optional[PortalNavigation] = None + pages: typing.Optional[PortalPagesByType] = None + slug: PortalSlug + client: typing.Optional[PortalClientSecretPost] = None + custom_code: typing.Optional[PortalCustomCode] = None + created_at: PortalDateTime + updated_at: PortalDateTime + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/portal_client_secret_post.py b/src/auth0/management/types/portal_client_secret_post.py new file mode 100644 index 00000000..be3a9340 --- /dev/null +++ b/src/auth0/management/types/portal_client_secret_post.py @@ -0,0 +1,21 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .portal_client_secret_post_token_endpoint_auth_method import PortalClientSecretPostTokenEndpointAuthMethod + + +class PortalClientSecretPost(UniversalBaseModel): + token_endpoint_auth_method: PortalClientSecretPostTokenEndpointAuthMethod + client_id: str + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/portal_client_secret_post_request.py b/src/auth0/management/types/portal_client_secret_post_request.py new file mode 100644 index 00000000..d335c44a --- /dev/null +++ b/src/auth0/management/types/portal_client_secret_post_request.py @@ -0,0 +1,24 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .portal_client_secret_post_request_token_endpoint_auth_method import ( + PortalClientSecretPostRequestTokenEndpointAuthMethod, +) + + +class PortalClientSecretPostRequest(UniversalBaseModel): + token_endpoint_auth_method: PortalClientSecretPostRequestTokenEndpointAuthMethod + client_id: str + client_secret: str + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/portal_client_secret_post_request_token_endpoint_auth_method.py b/src/auth0/management/types/portal_client_secret_post_request_token_endpoint_auth_method.py new file mode 100644 index 00000000..7d82b712 --- /dev/null +++ b/src/auth0/management/types/portal_client_secret_post_request_token_endpoint_auth_method.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +PortalClientSecretPostRequestTokenEndpointAuthMethod = typing.Union[typing.Literal["client_secret_post"], typing.Any] diff --git a/src/auth0/management/types/portal_client_secret_post_token_endpoint_auth_method.py b/src/auth0/management/types/portal_client_secret_post_token_endpoint_auth_method.py new file mode 100644 index 00000000..55bd9fc4 --- /dev/null +++ b/src/auth0/management/types/portal_client_secret_post_token_endpoint_auth_method.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +PortalClientSecretPostTokenEndpointAuthMethod = typing.Union[typing.Literal["client_secret_post"], typing.Any] diff --git a/src/auth0/management/types/portal_custom_code.py b/src/auth0/management/types/portal_custom_code.py new file mode 100644 index 00000000..8fa5f7a0 --- /dev/null +++ b/src/auth0/management/types/portal_custom_code.py @@ -0,0 +1,22 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel + + +class PortalCustomCode(UniversalBaseModel): + head: typing.Optional[str] = pydantic.Field(default=None) + """ + Custom code injected into the of the portal. Only injected when the portal is accessed via a custom domain; it is not injected on canonical domains. + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/portal_custom_code_nullable.py b/src/auth0/management/types/portal_custom_code_nullable.py new file mode 100644 index 00000000..b8c34a1c --- /dev/null +++ b/src/auth0/management/types/portal_custom_code_nullable.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +from .portal_custom_code import PortalCustomCode + +PortalCustomCodeNullable = typing.Optional[PortalCustomCode] diff --git a/src/auth0/management/types/portal_date_time.py b/src/auth0/management/types/portal_date_time.py new file mode 100644 index 00000000..38400300 --- /dev/null +++ b/src/auth0/management/types/portal_date_time.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import datetime as dt + +PortalDateTime = dt.datetime diff --git a/src/auth0/management/types/portal_id.py b/src/auth0/management/types/portal_id.py new file mode 100644 index 00000000..28d8ab39 --- /dev/null +++ b/src/auth0/management/types/portal_id.py @@ -0,0 +1,3 @@ +# This file was auto-generated by Fern from our API Definition. + +PortalId = str diff --git a/src/auth0/management/types/portal_name.py b/src/auth0/management/types/portal_name.py new file mode 100644 index 00000000..4c7a1f2a --- /dev/null +++ b/src/auth0/management/types/portal_name.py @@ -0,0 +1,3 @@ +# This file was auto-generated by Fern from our API Definition. + +PortalName = str diff --git a/src/auth0/management/types/captcha_policy_action_simple_captcha.py b/src/auth0/management/types/portal_navigation.py similarity index 79% rename from src/auth0/management/types/captcha_policy_action_simple_captcha.py rename to src/auth0/management/types/portal_navigation.py index d730dc0d..beccb936 100644 --- a/src/auth0/management/types/captcha_policy_action_simple_captcha.py +++ b/src/auth0/management/types/portal_navigation.py @@ -4,12 +4,11 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .sidebar import Sidebar -class CaptchaPolicyActionSimpleCaptcha(UniversalBaseModel): - """ - Simple CAPTCHA provider configuration. - """ +class PortalNavigation(UniversalBaseModel): + sidebar: typing.Optional[Sidebar] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/auth0/management/types/portal_navigation_nullable.py b/src/auth0/management/types/portal_navigation_nullable.py new file mode 100644 index 00000000..4c5ffe37 --- /dev/null +++ b/src/auth0/management/types/portal_navigation_nullable.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +from .portal_navigation import PortalNavigation + +PortalNavigationNullable = typing.Optional[PortalNavigation] diff --git a/src/auth0/management/types/portal_page.py b/src/auth0/management/types/portal_page.py new file mode 100644 index 00000000..ee656fd4 --- /dev/null +++ b/src/auth0/management/types/portal_page.py @@ -0,0 +1,23 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .page_component import PageComponent +from .page_slug import PageSlug + + +class PortalPage(UniversalBaseModel): + title: str + slug: PageSlug + components: typing.Optional[typing.List[PageComponent]] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/portal_pages_by_type.py b/src/auth0/management/types/portal_pages_by_type.py new file mode 100644 index 00000000..512dbd7a --- /dev/null +++ b/src/auth0/management/types/portal_pages_by_type.py @@ -0,0 +1,22 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .page_slug import PageSlug +from .portal_page import PortalPage + + +class PortalPagesByType(UniversalBaseModel): + default: typing.Optional[PageSlug] = None + standard: typing.Optional[typing.List[PortalPage]] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/portal_pages_by_type_nullable.py b/src/auth0/management/types/portal_pages_by_type_nullable.py new file mode 100644 index 00000000..b8f123fd --- /dev/null +++ b/src/auth0/management/types/portal_pages_by_type_nullable.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +from .portal_pages_by_type import PortalPagesByType + +PortalPagesByTypeNullable = typing.Optional[PortalPagesByType] diff --git a/src/auth0/management/types/portal_slug.py b/src/auth0/management/types/portal_slug.py new file mode 100644 index 00000000..08a75501 --- /dev/null +++ b/src/auth0/management/types/portal_slug.py @@ -0,0 +1,3 @@ +# This file was auto-generated by Fern from our API Definition. + +PortalSlug = str diff --git a/src/auth0/management/types/portal_summary.py b/src/auth0/management/types/portal_summary.py new file mode 100644 index 00000000..4c9b98ee --- /dev/null +++ b/src/auth0/management/types/portal_summary.py @@ -0,0 +1,27 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .portal_date_time import PortalDateTime +from .portal_id import PortalId +from .portal_name import PortalName +from .portal_slug import PortalSlug + + +class PortalSummary(UniversalBaseModel): + id: PortalId + name: PortalName + slug: PortalSlug + created_at: PortalDateTime + updated_at: PortalDateTime + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/position.py b/src/auth0/management/types/position.py new file mode 100644 index 00000000..1a8a6743 --- /dev/null +++ b/src/auth0/management/types/position.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +Position = typing.Union[typing.Literal["left", "center", "right"], typing.Any] diff --git a/src/auth0/management/types/resource_server.py b/src/auth0/management/types/resource_server.py index b2b161aa..0dfdbf79 100644 --- a/src/auth0/management/types/resource_server.py +++ b/src/auth0/management/types/resource_server.py @@ -5,6 +5,7 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from .resource_server_access_token import ResourceServerAccessToken +from .resource_server_agent_subject_claims_response_enum import ResourceServerAgentSubjectClaimsResponseEnum from .resource_server_authorization_policy import ResourceServerAuthorizationPolicy from .resource_server_consent_policy_enum import ResourceServerConsentPolicyEnum from .resource_server_proof_of_possession import ResourceServerProofOfPossession @@ -12,6 +13,7 @@ from .resource_server_subject_type_authorization import ResourceServerSubjectTypeAuthorization from .resource_server_token_dialect_response_enum import ResourceServerTokenDialectResponseEnum from .resource_server_token_encryption import ResourceServerTokenEncryption +from .resource_server_type_enum import ResourceServerTypeEnum from .signing_algorithm_enum import SigningAlgorithmEnum @@ -105,6 +107,9 @@ class ResourceServer(UniversalBaseModel): The client ID of the client that this resource server is linked to """ + agent_subject_claims: typing.Optional[ResourceServerAgentSubjectClaimsResponseEnum] = None + type: typing.Optional[ResourceServerTypeEnum] = None + if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 else: diff --git a/src/auth0/management/types/resource_server_agent_subject_claims_response_enum.py b/src/auth0/management/types/resource_server_agent_subject_claims_response_enum.py new file mode 100644 index 00000000..57c205f2 --- /dev/null +++ b/src/auth0/management/types/resource_server_agent_subject_claims_response_enum.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +ResourceServerAgentSubjectClaimsResponseEnum = typing.Union[typing.Literal["off", "auth0-v1"], typing.Any] diff --git a/src/auth0/management/types/resource_server_agent_subject_claims_schema_enum.py b/src/auth0/management/types/resource_server_agent_subject_claims_schema_enum.py new file mode 100644 index 00000000..a2fc5d5c --- /dev/null +++ b/src/auth0/management/types/resource_server_agent_subject_claims_schema_enum.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +ResourceServerAgentSubjectClaimsSchemaEnum = typing.Union[typing.Literal["off", "auth0-v1"], typing.Any] diff --git a/src/auth0/management/types/resource_server_search_response.py b/src/auth0/management/types/resource_server_search_response.py index 2c9438fb..8f2df766 100644 --- a/src/auth0/management/types/resource_server_search_response.py +++ b/src/auth0/management/types/resource_server_search_response.py @@ -5,6 +5,7 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from .resource_server_access_token import ResourceServerAccessToken +from .resource_server_agent_subject_claims_response_enum import ResourceServerAgentSubjectClaimsResponseEnum from .resource_server_authorization_policy import ResourceServerAuthorizationPolicy from .resource_server_consent_policy_enum import ResourceServerConsentPolicyEnum from .resource_server_proof_of_possession import ResourceServerProofOfPossession @@ -12,6 +13,7 @@ from .resource_server_subject_type_authorization import ResourceServerSubjectTypeAuthorization from .resource_server_token_dialect_response_enum import ResourceServerTokenDialectResponseEnum from .resource_server_token_encryption import ResourceServerTokenEncryption +from .resource_server_type_enum import ResourceServerTypeEnum from .signing_algorithm_enum import SigningAlgorithmEnum @@ -100,6 +102,9 @@ class ResourceServerSearchResponse(UniversalBaseModel): The client ID of the client that this resource server is linked to """ + agent_subject_claims: typing.Optional[ResourceServerAgentSubjectClaimsResponseEnum] = None + type: typing.Optional[ResourceServerTypeEnum] = None + if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 else: diff --git a/src/auth0/management/types/resource_server_type_enum.py b/src/auth0/management/types/resource_server_type_enum.py new file mode 100644 index 00000000..6230602e --- /dev/null +++ b/src/auth0/management/types/resource_server_type_enum.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +ResourceServerTypeEnum = typing.Union[typing.Literal["universal_commerce_protocol_server"], typing.Any] diff --git a/src/auth0/management/types/rotate_client_secret_response_content.py b/src/auth0/management/types/rotate_client_secret_response_content.py index dc45bad3..0eae8414 100644 --- a/src/auth0/management/types/rotate_client_secret_response_content.py +++ b/src/auth0/management/types/rotate_client_secret_response_content.py @@ -27,6 +27,7 @@ from .client_mobile import ClientMobile from .client_my_organization_response_configuration import ClientMyOrganizationResponseConfiguration from .client_oidc_backchannel_logout_settings import ClientOidcBackchannelLogoutSettings +from .client_oidc_support import ClientOidcSupport from .client_organization_discovery_enum import ClientOrganizationDiscoveryEnum from .client_organization_require_behavior_enum import ClientOrganizationRequireBehaviorEnum from .client_organization_usage_enum import ClientOrganizationUsageEnum @@ -258,6 +259,7 @@ class RotateClientSecretResponseContent(UniversalBaseModel): None ) third_party_security_mode: typing.Optional[ClientThirdPartySecurityModeEnum] = None + oidc_support: typing.Optional[ClientOidcSupport] = None redirection_policy: typing.Optional[ClientRedirectionPolicyEnum] = None resource_server_identifier: typing.Optional[str] = pydantic.Field(default=None) """ @@ -270,6 +272,11 @@ class RotateClientSecretResponseContent(UniversalBaseModel): external_metadata_type: typing.Optional[ClientExternalMetadataTypeEnum] = None external_metadata_created_by: typing.Optional[ClientExternalMetadataCreatedByEnum] = None external_metadata_status: typing.Optional[ClientExternalMetadataStatusEnum] = None + agent_id: typing.Optional[str] = pydantic.Field(default=None) + """ + ID of the agent associated with this client. + """ + external_client_id: typing.Optional[str] = pydantic.Field(default=None) """ An alternate client identifier to be used during authorization flows. Only supports CIMD-based client identifiers. diff --git a/src/auth0/management/types/sidebar.py b/src/auth0/management/types/sidebar.py new file mode 100644 index 00000000..c7dcabbc --- /dev/null +++ b/src/auth0/management/types/sidebar.py @@ -0,0 +1,20 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .sidebar_component import SidebarComponent + + +class Sidebar(UniversalBaseModel): + components: typing.Optional[typing.List[SidebarComponent]] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/sidebar_component.py b/src/auth0/management/types/sidebar_component.py new file mode 100644 index 00000000..75cd97a9 --- /dev/null +++ b/src/auth0/management/types/sidebar_component.py @@ -0,0 +1,80 @@ +# This file was auto-generated by Fern from our API Definition. + +from __future__ import annotations + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .sidebar_component_auth_0_external_link_config import SidebarComponentAuth0ExternalLinkConfig +from .sidebar_component_auth_0_external_link_v_2_config import SidebarComponentAuth0ExternalLinkV2Config +from .sidebar_component_auth_0_internal_link_config import SidebarComponentAuth0InternalLinkConfig +from .sidebar_component_auth_0_internal_link_v_2_config import SidebarComponentAuth0InternalLinkV2Config + + +class SidebarComponent_SidebarComponentAuth0ExternalLink(UniversalBaseModel): + type: typing.Literal["sidebar:component:auth0:external_link"] = "sidebar:component:auth0:external_link" + config: SidebarComponentAuth0ExternalLinkConfig + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +class SidebarComponent_SidebarComponentAuth0InternalLink(UniversalBaseModel): + type: typing.Literal["sidebar:component:auth0:internal_link"] = "sidebar:component:auth0:internal_link" + config: SidebarComponentAuth0InternalLinkConfig + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +class SidebarComponent_SidebarComponentAuth0ExternalLinkV2(UniversalBaseModel): + type: typing.Literal["sidebar:component:auth0:external_link:v2"] = "sidebar:component:auth0:external_link:v2" + config: SidebarComponentAuth0ExternalLinkV2Config + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +class SidebarComponent_SidebarComponentAuth0InternalLinkV2(UniversalBaseModel): + type: typing.Literal["sidebar:component:auth0:internal_link:v2"] = "sidebar:component:auth0:internal_link:v2" + config: SidebarComponentAuth0InternalLinkV2Config + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow + + +SidebarComponent = typing_extensions.Annotated[ + typing.Union[ + SidebarComponent_SidebarComponentAuth0ExternalLink, + SidebarComponent_SidebarComponentAuth0InternalLink, + SidebarComponent_SidebarComponentAuth0ExternalLinkV2, + SidebarComponent_SidebarComponentAuth0InternalLinkV2, + ], + pydantic.Field(discriminator="type"), +] diff --git a/src/auth0/management/types/captcha_policy_action_auth_challenge.py b/src/auth0/management/types/sidebar_component_auth_0_external_link.py similarity index 62% rename from src/auth0/management/types/captcha_policy_action_auth_challenge.py rename to src/auth0/management/types/sidebar_component_auth_0_external_link.py index a4b6c4e0..6f53493a 100644 --- a/src/auth0/management/types/captcha_policy_action_auth_challenge.py +++ b/src/auth0/management/types/sidebar_component_auth_0_external_link.py @@ -4,17 +4,15 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .sidebar_component_auth_0_external_link_config import SidebarComponentAuth0ExternalLinkConfig -class CaptchaPolicyActionAuthChallenge(UniversalBaseModel): +class SidebarComponentAuth0ExternalLink(UniversalBaseModel): """ - Auth Challenge CAPTCHA provider configuration. + Deprecated. Use "sidebar:component:auth0:external_link:v2" instead. """ - fail_open: typing.Optional[bool] = pydantic.Field(default=None) - """ - Whether to allow access when the challenge provider is unavailable. - """ + config: SidebarComponentAuth0ExternalLinkConfig if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/auth0/management/types/captcha_policy_action_hcaptcha_input.py b/src/auth0/management/types/sidebar_component_auth_0_external_link_config.py similarity index 62% rename from src/auth0/management/types/captcha_policy_action_hcaptcha_input.py rename to src/auth0/management/types/sidebar_component_auth_0_external_link_config.py index 52666e5f..c71cc9a9 100644 --- a/src/auth0/management/types/captcha_policy_action_hcaptcha_input.py +++ b/src/auth0/management/types/sidebar_component_auth_0_external_link_config.py @@ -6,19 +6,20 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -class CaptchaPolicyActionHcaptchaInput(UniversalBaseModel): +class SidebarComponentAuth0ExternalLinkConfig(UniversalBaseModel): + label: str = pydantic.Field() """ - hCaptcha provider configuration. + Text shown for the link. """ - site_key: typing.Optional[str] = pydantic.Field(default=None) + url: str = pydantic.Field() """ - The hCaptcha site key. + External URL to navigate to. """ - secret: typing.Optional[str] = pydantic.Field(default=None) + icon: typing.Optional[str] = pydantic.Field(default=None) """ - The hCaptcha secret key. Encrypted at rest. + Name of the icon displayed next to the link label. """ if IS_PYDANTIC_V2: diff --git a/src/auth0/management/types/sidebar_component_auth_0_external_link_v_2.py b/src/auth0/management/types/sidebar_component_auth_0_external_link_v_2.py new file mode 100644 index 00000000..70201df5 --- /dev/null +++ b/src/auth0/management/types/sidebar_component_auth_0_external_link_v_2.py @@ -0,0 +1,20 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .sidebar_component_auth_0_external_link_v_2_config import SidebarComponentAuth0ExternalLinkV2Config + + +class SidebarComponentAuth0ExternalLinkV2(UniversalBaseModel): + config: SidebarComponentAuth0ExternalLinkV2Config + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/captcha_policy_action_recaptcha_v_2_input.py b/src/auth0/management/types/sidebar_component_auth_0_external_link_v_2_config.py similarity index 61% rename from src/auth0/management/types/captcha_policy_action_recaptcha_v_2_input.py rename to src/auth0/management/types/sidebar_component_auth_0_external_link_v_2_config.py index 9d38bf32..d11e4c86 100644 --- a/src/auth0/management/types/captcha_policy_action_recaptcha_v_2_input.py +++ b/src/auth0/management/types/sidebar_component_auth_0_external_link_v_2_config.py @@ -6,19 +6,20 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -class CaptchaPolicyActionRecaptchaV2Input(UniversalBaseModel): +class SidebarComponentAuth0ExternalLinkV2Config(UniversalBaseModel): + label: str = pydantic.Field() """ - reCAPTCHA v2 provider configuration. + Text shown for the link. """ - site_key: typing.Optional[str] = pydantic.Field(default=None) + href: str = pydantic.Field() """ - The reCAPTCHA v2 site key. + External URL to navigate to. """ - secret: typing.Optional[str] = pydantic.Field(default=None) + icon: typing.Optional[str] = pydantic.Field(default=None) """ - The reCAPTCHA v2 secret key. Encrypted at rest. + Name of the icon displayed next to the link label. """ if IS_PYDANTIC_V2: diff --git a/src/auth0/management/types/sidebar_component_auth_0_internal_link.py b/src/auth0/management/types/sidebar_component_auth_0_internal_link.py new file mode 100644 index 00000000..49d027ba --- /dev/null +++ b/src/auth0/management/types/sidebar_component_auth_0_internal_link.py @@ -0,0 +1,24 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .sidebar_component_auth_0_internal_link_config import SidebarComponentAuth0InternalLinkConfig + + +class SidebarComponentAuth0InternalLink(UniversalBaseModel): + """ + Deprecated. Use "sidebar:component:auth0:internal_link:v2" instead. + """ + + config: SidebarComponentAuth0InternalLinkConfig + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/captcha_policy_action_friendly_captcha_input.py b/src/auth0/management/types/sidebar_component_auth_0_internal_link_config.py similarity index 61% rename from src/auth0/management/types/captcha_policy_action_friendly_captcha_input.py rename to src/auth0/management/types/sidebar_component_auth_0_internal_link_config.py index fbb19958..8da90ff3 100644 --- a/src/auth0/management/types/captcha_policy_action_friendly_captcha_input.py +++ b/src/auth0/management/types/sidebar_component_auth_0_internal_link_config.py @@ -6,19 +6,20 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -class CaptchaPolicyActionFriendlyCaptchaInput(UniversalBaseModel): +class SidebarComponentAuth0InternalLinkConfig(UniversalBaseModel): + label: str = pydantic.Field() """ - Friendly Captcha provider configuration. + Text shown for the link. """ - site_key: typing.Optional[str] = pydantic.Field(default=None) + to: str = pydantic.Field() """ - The Friendly Captcha site key. + Slug of the internal portal page to navigate to. """ - secret: typing.Optional[str] = pydantic.Field(default=None) + icon: typing.Optional[str] = pydantic.Field(default=None) """ - The Friendly Captcha secret key. Encrypted at rest. + Name of the icon displayed next to the link label. """ if IS_PYDANTIC_V2: diff --git a/src/auth0/management/types/sidebar_component_auth_0_internal_link_v_2.py b/src/auth0/management/types/sidebar_component_auth_0_internal_link_v_2.py new file mode 100644 index 00000000..06c42a14 --- /dev/null +++ b/src/auth0/management/types/sidebar_component_auth_0_internal_link_v_2.py @@ -0,0 +1,20 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .sidebar_component_auth_0_internal_link_v_2_config import SidebarComponentAuth0InternalLinkV2Config + + +class SidebarComponentAuth0InternalLinkV2(UniversalBaseModel): + config: SidebarComponentAuth0InternalLinkV2Config + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/auth0/management/types/captcha_policy_action_recaptcha_enterprise.py b/src/auth0/management/types/sidebar_component_auth_0_internal_link_v_2_config.py similarity index 60% rename from src/auth0/management/types/captcha_policy_action_recaptcha_enterprise.py rename to src/auth0/management/types/sidebar_component_auth_0_internal_link_v_2_config.py index 30e1748e..e4f4a542 100644 --- a/src/auth0/management/types/captcha_policy_action_recaptcha_enterprise.py +++ b/src/auth0/management/types/sidebar_component_auth_0_internal_link_v_2_config.py @@ -6,19 +6,20 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -class CaptchaPolicyActionRecaptchaEnterprise(UniversalBaseModel): +class SidebarComponentAuth0InternalLinkV2Config(UniversalBaseModel): + label: str = pydantic.Field() """ - reCAPTCHA Enterprise provider configuration. + Text shown for the link. """ - site_key: typing.Optional[str] = pydantic.Field(default=None) + page_slug: str = pydantic.Field() """ - The reCAPTCHA Enterprise site key. + Slug of the internal portal page to navigate to. """ - project_id: typing.Optional[str] = pydantic.Field(default=None) + icon: typing.Optional[str] = pydantic.Field(default=None) """ - The Google Cloud project ID. + Name of the icon displayed next to the link label. """ if IS_PYDANTIC_V2: diff --git a/src/auth0/management/types/tenant_settings_flags.py b/src/auth0/management/types/tenant_settings_flags.py index 12d77eac..1d31ea2c 100644 --- a/src/auth0/management/types/tenant_settings_flags.py +++ b/src/auth0/management/types/tenant_settings_flags.py @@ -131,7 +131,7 @@ class TenantSettingsFlags(UniversalBaseModel): dashboard_insights_view: typing.Optional[bool] = pydantic.Field(default=None) """ - Enables new insights activity page view + Deprecated. This flag has no effect and is retained only for backward compatibility """ disable_fields_map_fix: typing.Optional[bool] = pydantic.Field(default=None) diff --git a/src/auth0/management/types/update_brute_force_settings_response_content.py b/src/auth0/management/types/update_brute_force_settings_response_content.py index e3f673f1..e01750f1 100644 --- a/src/auth0/management/types/update_brute_force_settings_response_content.py +++ b/src/auth0/management/types/update_brute_force_settings_response_content.py @@ -27,13 +27,12 @@ class UpdateBruteForceSettingsResponseContent(UniversalBaseModel): """ mode: typing.Optional[BruteForceProtectionModeEnum] = None + form_submission_mode: typing.Optional[BruteForceProtectionFormSubmissionModeEnum] = None max_attempts: typing.Optional[int] = pydantic.Field(default=None) """ Maximum number of unsuccessful attempts. """ - form_submission_mode: typing.Optional[BruteForceProtectionFormSubmissionModeEnum] = None - if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 else: diff --git a/src/auth0/management/types/update_client_response_content.py b/src/auth0/management/types/update_client_response_content.py index 304fd3aa..50d638a9 100644 --- a/src/auth0/management/types/update_client_response_content.py +++ b/src/auth0/management/types/update_client_response_content.py @@ -27,6 +27,7 @@ from .client_mobile import ClientMobile from .client_my_organization_response_configuration import ClientMyOrganizationResponseConfiguration from .client_oidc_backchannel_logout_settings import ClientOidcBackchannelLogoutSettings +from .client_oidc_support import ClientOidcSupport from .client_organization_discovery_enum import ClientOrganizationDiscoveryEnum from .client_organization_require_behavior_enum import ClientOrganizationRequireBehaviorEnum from .client_organization_usage_enum import ClientOrganizationUsageEnum @@ -258,6 +259,7 @@ class UpdateClientResponseContent(UniversalBaseModel): None ) third_party_security_mode: typing.Optional[ClientThirdPartySecurityModeEnum] = None + oidc_support: typing.Optional[ClientOidcSupport] = None redirection_policy: typing.Optional[ClientRedirectionPolicyEnum] = None resource_server_identifier: typing.Optional[str] = pydantic.Field(default=None) """ @@ -270,6 +272,11 @@ class UpdateClientResponseContent(UniversalBaseModel): external_metadata_type: typing.Optional[ClientExternalMetadataTypeEnum] = None external_metadata_created_by: typing.Optional[ClientExternalMetadataCreatedByEnum] = None external_metadata_status: typing.Optional[ClientExternalMetadataStatusEnum] = None + agent_id: typing.Optional[str] = pydantic.Field(default=None) + """ + ID of the agent associated with this client. + """ + external_client_id: typing.Optional[str] = pydantic.Field(default=None) """ An alternate client identifier to be used during authorization flows. Only supports CIMD-based client identifiers. diff --git a/src/auth0/management/types/update_connection_options.py b/src/auth0/management/types/update_connection_options.py index e5c4af5c..e725752c 100644 --- a/src/auth0/management/types/update_connection_options.py +++ b/src/auth0/management/types/update_connection_options.py @@ -16,6 +16,7 @@ from .connection_id_token_session_expiry_supported import ConnectionIdTokenSessionExpirySupported from .connection_id_token_signed_response_algs import ConnectionIdTokenSignedResponseAlgs from .connection_identifier_precedence_enum import ConnectionIdentifierPrecedenceEnum +from .connection_otp_settings import ConnectionOtpSettings from .connection_passkey_options import ConnectionPasskeyOptions from .connection_password_complexity_options import ConnectionPasswordComplexityOptions from .connection_password_dictionary_options import ConnectionPasswordDictionaryOptions @@ -83,6 +84,7 @@ class UpdateConnectionOptions(UniversalBaseModel): FieldMetadata(alias="customScripts"), pydantic.Field(alias="customScripts"), ] = None + otp_settings: typing.Optional[ConnectionOtpSettings] = None authentication_methods: typing.Optional[ConnectionAuthenticationMethods] = None passkey_options: typing.Optional[ConnectionPasskeyOptions] = None password_policy: typing_extensions.Annotated[ diff --git a/src/auth0/management/types/update_connection_request_content_saml.py b/src/auth0/management/types/update_connection_request_content_saml.py index 38b29532..8718562c 100644 --- a/src/auth0/management/types/update_connection_request_content_saml.py +++ b/src/auth0/management/types/update_connection_request_content_saml.py @@ -8,6 +8,7 @@ from .connection_cross_app_access_resource_app import ConnectionCrossAppAccessResourceApp from .connection_options_saml import ConnectionOptionsSaml from .connection_show_as_button import ConnectionShowAsButton +from .cross_app_access_requesting_app import CrossAppAccessRequestingApp class UpdateConnectionRequestContentSaml(ConnectionCommon): @@ -16,6 +17,7 @@ class UpdateConnectionRequestContentSaml(ConnectionCommon): """ options: typing.Optional[ConnectionOptionsSaml] = None + cross_app_access_requesting_app: typing.Optional[CrossAppAccessRequestingApp] = None cross_app_access_resource_app: typing.Optional[ConnectionCrossAppAccessResourceApp] = None show_as_button: typing.Optional[ConnectionShowAsButton] = None diff --git a/src/auth0/management/types/update_experiment_response_content.py b/src/auth0/management/types/update_experiment_response_content.py index 367e0fdf..2f25ab9c 100644 --- a/src/auth0/management/types/update_experiment_response_content.py +++ b/src/auth0/management/types/update_experiment_response_content.py @@ -20,7 +20,11 @@ class UpdateExperimentResponseContent(UniversalBaseModel): authentication_flow: str allocation_strategy: AllocationStrategyEnum status: ExperimentStatusEnum - is_valid: bool + is_valid: bool = pydantic.Field() + """ + Whether the experiment is valid and ready to activate, as of its last update. It can lag changes made later to related entities. Call POST /experiments/{id}/validate for the current result. + """ + default_config: typing.Optional[DefaultConfigEnum] = None feature_flag_snapshot: typing.Optional[typing.Dict[str, typing.Any]] = None allocations: typing.List[AllocationItem] diff --git a/src/auth0/management/types/update_resource_server_response_content.py b/src/auth0/management/types/update_resource_server_response_content.py index e60f14d0..720e9da9 100644 --- a/src/auth0/management/types/update_resource_server_response_content.py +++ b/src/auth0/management/types/update_resource_server_response_content.py @@ -5,6 +5,7 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from .resource_server_access_token import ResourceServerAccessToken +from .resource_server_agent_subject_claims_response_enum import ResourceServerAgentSubjectClaimsResponseEnum from .resource_server_authorization_policy import ResourceServerAuthorizationPolicy from .resource_server_consent_policy_enum import ResourceServerConsentPolicyEnum from .resource_server_proof_of_possession import ResourceServerProofOfPossession @@ -12,6 +13,7 @@ from .resource_server_subject_type_authorization import ResourceServerSubjectTypeAuthorization from .resource_server_token_dialect_response_enum import ResourceServerTokenDialectResponseEnum from .resource_server_token_encryption import ResourceServerTokenEncryption +from .resource_server_type_enum import ResourceServerTypeEnum from .signing_algorithm_enum import SigningAlgorithmEnum @@ -105,6 +107,9 @@ class UpdateResourceServerResponseContent(UniversalBaseModel): The client ID of the client that this resource server is linked to """ + agent_subject_claims: typing.Optional[ResourceServerAgentSubjectClaimsResponseEnum] = None + type: typing.Optional[ResourceServerTypeEnum] = None + if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 else: diff --git a/src/auth0/management/types/update_variation_overrides_map.py b/src/auth0/management/types/update_variation_overrides_map.py index d895e780..0e202ae3 100644 --- a/src/auth0/management/types/update_variation_overrides_map.py +++ b/src/auth0/management/types/update_variation_overrides_map.py @@ -2,7 +2,7 @@ import typing -UpdateVariationOverridesMap = typing.Dict[str, typing.Any] +UpdateVariationOverridesMap = typing.Optional[typing.Dict[str, typing.Any]] """ -Configuration overrides for this variation; keys must exist in the parent flag parameters. Empty {} is the baseline (control) variation that overrides nothing. +Top-level keys merge into the stored overrides. Set a key to `null` to remove it. Set `overrides` to `null` or `{}` to clear all. Keys must exist in the parent flag parameters. """ diff --git a/src/auth0/management/users/client.py b/src/auth0/management/users/client.py index 04a8a141..d87146b8 100644 --- a/src/auth0/management/users/client.py +++ b/src/auth0/management/users/client.py @@ -8,8 +8,10 @@ from ..core.pagination import AsyncPager, SyncPager from ..core.request_options import RequestOptions from ..types.app_metadata import AppMetadata +from ..types.consent_signing_key import ConsentSigningKey from ..types.create_user_response_content import CreateUserResponseContent from ..types.get_user_response_content import GetUserResponseContent +from ..types.list_user_consent_signing_keys_response_content import ListUserConsentSigningKeysResponseContent from ..types.list_users_offset_paginated_response_content import ListUsersOffsetPaginatedResponseContent from ..types.regenerate_users_recovery_code_response_content import RegenerateUsersRecoveryCodeResponseContent from ..types.search_engine_versions_enum import SearchEngineVersionsEnum @@ -651,6 +653,112 @@ def update( ) return _response.data + def list_consent_signing_keys( + self, id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> ListUserConsentSigningKeysResponseContent: + """ + Retrieve all consent signing keys registered for a user. Returns an empty `keys` array when the user has no keys registered. + + Parameters + ---------- + id : str + The ID of the user. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + ListUserConsentSigningKeysResponseContent + The user's consent signing keys were returned. + + Examples + -------- + from auth0 import Auth0 + + client = Auth0( + token="YOUR_TOKEN", + ) + client.users.list_consent_signing_keys( + id="id", + ) + """ + _response = self._raw_client.list_consent_signing_keys(id, request_options=request_options) + return _response.data + + def get_consent_signing_key( + self, id: str, kid: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> ConsentSigningKey: + """ + Retrieve a single consent signing key for a user by its key identifier (kid). Returns 404 if the key does not exist. + + Parameters + ---------- + id : str + The ID of the user. + + kid : str + The key identifier of the consent signing key. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + ConsentSigningKey + The consent signing key was returned. + + Examples + -------- + from auth0 import Auth0 + + client = Auth0( + token="YOUR_TOKEN", + ) + client.users.get_consent_signing_key( + id="id", + kid="kid", + ) + """ + _response = self._raw_client.get_consent_signing_key(id, kid, request_options=request_options) + return _response.data + + def delete_consent_signing_key( + self, id: str, kid: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> None: + """ + Remove a single consent signing key for a user by its key identifier (kid). The operation is idempotent and returns 204 whether or not the key existed. + + Parameters + ---------- + id : str + The ID of the user. + + kid : str + The key identifier of the consent signing key. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + None + + Examples + -------- + from auth0 import Auth0 + + client = Auth0( + token="YOUR_TOKEN", + ) + client.users.delete_consent_signing_key( + id="id", + kid="kid", + ) + """ + _response = self._raw_client.delete_consent_signing_key(id, kid, request_options=request_options) + return _response.data + def regenerate_recovery_code( self, id: str, *, request_options: typing.Optional[RequestOptions] = None ) -> RegenerateUsersRecoveryCodeResponseContent: @@ -1519,6 +1627,136 @@ async def main() -> None: ) return _response.data + async def list_consent_signing_keys( + self, id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> ListUserConsentSigningKeysResponseContent: + """ + Retrieve all consent signing keys registered for a user. Returns an empty `keys` array when the user has no keys registered. + + Parameters + ---------- + id : str + The ID of the user. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + ListUserConsentSigningKeysResponseContent + The user's consent signing keys were returned. + + Examples + -------- + import asyncio + + from auth0 import AsyncAuth0 + + client = AsyncAuth0( + token="YOUR_TOKEN", + ) + + + async def main() -> None: + await client.users.list_consent_signing_keys( + id="id", + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.list_consent_signing_keys(id, request_options=request_options) + return _response.data + + async def get_consent_signing_key( + self, id: str, kid: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> ConsentSigningKey: + """ + Retrieve a single consent signing key for a user by its key identifier (kid). Returns 404 if the key does not exist. + + Parameters + ---------- + id : str + The ID of the user. + + kid : str + The key identifier of the consent signing key. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + ConsentSigningKey + The consent signing key was returned. + + Examples + -------- + import asyncio + + from auth0 import AsyncAuth0 + + client = AsyncAuth0( + token="YOUR_TOKEN", + ) + + + async def main() -> None: + await client.users.get_consent_signing_key( + id="id", + kid="kid", + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.get_consent_signing_key(id, kid, request_options=request_options) + return _response.data + + async def delete_consent_signing_key( + self, id: str, kid: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> None: + """ + Remove a single consent signing key for a user by its key identifier (kid). The operation is idempotent and returns 204 whether or not the key existed. + + Parameters + ---------- + id : str + The ID of the user. + + kid : str + The key identifier of the consent signing key. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + None + + Examples + -------- + import asyncio + + from auth0 import AsyncAuth0 + + client = AsyncAuth0( + token="YOUR_TOKEN", + ) + + + async def main() -> None: + await client.users.delete_consent_signing_key( + id="id", + kid="kid", + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.delete_consent_signing_key(id, kid, request_options=request_options) + return _response.data + async def regenerate_recovery_code( self, id: str, *, request_options: typing.Optional[RequestOptions] = None ) -> RegenerateUsersRecoveryCodeResponseContent: diff --git a/src/auth0/management/users/raw_client.py b/src/auth0/management/users/raw_client.py index 972ef29f..23c34bf5 100644 --- a/src/auth0/management/users/raw_client.py +++ b/src/auth0/management/users/raw_client.py @@ -19,8 +19,10 @@ from ..errors.too_many_requests_error import TooManyRequestsError from ..errors.unauthorized_error import UnauthorizedError from ..types.app_metadata import AppMetadata +from ..types.consent_signing_key import ConsentSigningKey from ..types.create_user_response_content import CreateUserResponseContent from ..types.get_user_response_content import GetUserResponseContent +from ..types.list_user_consent_signing_keys_response_content import ListUserConsentSigningKeysResponseContent from ..types.list_users_offset_paginated_response_content import ListUsersOffsetPaginatedResponseContent from ..types.regenerate_users_recovery_code_response_content import RegenerateUsersRecoveryCodeResponseContent from ..types.search_engine_versions_enum import SearchEngineVersionsEnum @@ -990,6 +992,276 @@ def update( ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + def list_consent_signing_keys( + self, id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> HttpResponse[ListUserConsentSigningKeysResponseContent]: + """ + Retrieve all consent signing keys registered for a user. Returns an empty `keys` array when the user has no keys registered. + + Parameters + ---------- + id : str + The ID of the user. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[ListUserConsentSigningKeysResponseContent] + The user's consent signing keys were returned. + """ + _response = self._client_wrapper.httpx_client.request( + f"users/{quote_path_param(id)}/consent-signing-keys", + method="GET", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + ListUserConsentSigningKeysResponseContent, + parse_obj_as( + type_=ListUserConsentSigningKeysResponseContent, # type: ignore + object_=_response.json(), + ), + ) + return HttpResponse(response=_response, data=_data) + if _response.status_code == 400: + raise BadRequestError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 401: + raise UnauthorizedError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 403: + raise ForbiddenError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 429: + raise TooManyRequestsError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + def get_consent_signing_key( + self, id: str, kid: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> HttpResponse[ConsentSigningKey]: + """ + Retrieve a single consent signing key for a user by its key identifier (kid). Returns 404 if the key does not exist. + + Parameters + ---------- + id : str + The ID of the user. + + kid : str + The key identifier of the consent signing key. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[ConsentSigningKey] + The consent signing key was returned. + """ + _response = self._client_wrapper.httpx_client.request( + f"users/{quote_path_param(id)}/consent-signing-keys/{quote_path_param(kid)}", + method="GET", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + ConsentSigningKey, + parse_obj_as( + type_=ConsentSigningKey, # type: ignore + object_=_response.json(), + ), + ) + return HttpResponse(response=_response, data=_data) + if _response.status_code == 400: + raise BadRequestError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 401: + raise UnauthorizedError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 403: + raise ForbiddenError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 404: + raise NotFoundError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 429: + raise TooManyRequestsError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + def delete_consent_signing_key( + self, id: str, kid: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> HttpResponse[None]: + """ + Remove a single consent signing key for a user by its key identifier (kid). The operation is idempotent and returns 204 whether or not the key existed. + + Parameters + ---------- + id : str + The ID of the user. + + kid : str + The key identifier of the consent signing key. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[None] + """ + _response = self._client_wrapper.httpx_client.request( + f"users/{quote_path_param(id)}/consent-signing-keys/{quote_path_param(kid)}", + method="DELETE", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + return HttpResponse(response=_response, data=None) + if _response.status_code == 400: + raise BadRequestError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 401: + raise UnauthorizedError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 403: + raise ForbiddenError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 429: + raise TooManyRequestsError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + def regenerate_recovery_code( self, id: str, *, request_options: typing.Optional[RequestOptions] = None ) -> HttpResponse[RegenerateUsersRecoveryCodeResponseContent]: @@ -2138,6 +2410,276 @@ async def update( ) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + async def list_consent_signing_keys( + self, id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> AsyncHttpResponse[ListUserConsentSigningKeysResponseContent]: + """ + Retrieve all consent signing keys registered for a user. Returns an empty `keys` array when the user has no keys registered. + + Parameters + ---------- + id : str + The ID of the user. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[ListUserConsentSigningKeysResponseContent] + The user's consent signing keys were returned. + """ + _response = await self._client_wrapper.httpx_client.request( + f"users/{quote_path_param(id)}/consent-signing-keys", + method="GET", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + ListUserConsentSigningKeysResponseContent, + parse_obj_as( + type_=ListUserConsentSigningKeysResponseContent, # type: ignore + object_=_response.json(), + ), + ) + return AsyncHttpResponse(response=_response, data=_data) + if _response.status_code == 400: + raise BadRequestError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 401: + raise UnauthorizedError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 403: + raise ForbiddenError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 429: + raise TooManyRequestsError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + async def get_consent_signing_key( + self, id: str, kid: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> AsyncHttpResponse[ConsentSigningKey]: + """ + Retrieve a single consent signing key for a user by its key identifier (kid). Returns 404 if the key does not exist. + + Parameters + ---------- + id : str + The ID of the user. + + kid : str + The key identifier of the consent signing key. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[ConsentSigningKey] + The consent signing key was returned. + """ + _response = await self._client_wrapper.httpx_client.request( + f"users/{quote_path_param(id)}/consent-signing-keys/{quote_path_param(kid)}", + method="GET", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + ConsentSigningKey, + parse_obj_as( + type_=ConsentSigningKey, # type: ignore + object_=_response.json(), + ), + ) + return AsyncHttpResponse(response=_response, data=_data) + if _response.status_code == 400: + raise BadRequestError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 401: + raise UnauthorizedError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 403: + raise ForbiddenError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 404: + raise NotFoundError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 429: + raise TooManyRequestsError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + async def delete_consent_signing_key( + self, id: str, kid: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> AsyncHttpResponse[None]: + """ + Remove a single consent signing key for a user by its key identifier (kid). The operation is idempotent and returns 204 whether or not the key existed. + + Parameters + ---------- + id : str + The ID of the user. + + kid : str + The key identifier of the consent signing key. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[None] + """ + _response = await self._client_wrapper.httpx_client.request( + f"users/{quote_path_param(id)}/consent-signing-keys/{quote_path_param(kid)}", + method="DELETE", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + return AsyncHttpResponse(response=_response, data=None) + if _response.status_code == 400: + raise BadRequestError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 401: + raise UnauthorizedError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 403: + raise ForbiddenError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 429: + raise TooManyRequestsError( + headers=dict(_response.headers), + body=typing.cast( + typing.Any, + parse_obj_as( + type_=typing.Any, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + async def regenerate_recovery_code( self, id: str, *, request_options: typing.Optional[RequestOptions] = None ) -> AsyncHttpResponse[RegenerateUsersRecoveryCodeResponseContent]: diff --git a/tests/wire/test_attackProtection_captchaPolicies.py b/tests/wire/test_attackProtection_captchaPolicies.py deleted file mode 100644 index 5b5544b5..00000000 --- a/tests/wire/test_attackProtection_captchaPolicies.py +++ /dev/null @@ -1,54 +0,0 @@ -from .conftest import get_client, verify_request_count - -from auth0.management import AttackProtectionCaptchaPolicyActionInput, AttackProtectionCaptchaPolicyMatch - - -def test_attackProtection_captchaPolicies_list_() -> None: - """Test list endpoint with WireMock""" - test_id = "attack_protection.captcha_policies.list_.0" - client = get_client(test_id) - client.attack_protection.captcha_policies.list() - verify_request_count(test_id, "GET", "/attack-protection/captcha/policies", None, 1) - - -def test_attackProtection_captchaPolicies_create() -> None: - """Test create endpoint with WireMock""" - test_id = "attack_protection.captcha_policies.create.0" - client = get_client(test_id) - client.attack_protection.captcha_policies.create( - name="name", - priority=1, - match=AttackProtectionCaptchaPolicyMatch(), - action=AttackProtectionCaptchaPolicyActionInput(), - ) - verify_request_count(test_id, "POST", "/attack-protection/captcha/policies", None, 1) - - -def test_attackProtection_captchaPolicies_get() -> None: - """Test get endpoint with WireMock""" - test_id = "attack_protection.captcha_policies.get.0" - client = get_client(test_id) - client.attack_protection.captcha_policies.get( - id="id", - ) - verify_request_count(test_id, "GET", "/attack-protection/captcha/policies/id", None, 1) - - -def test_attackProtection_captchaPolicies_delete() -> None: - """Test delete endpoint with WireMock""" - test_id = "attack_protection.captcha_policies.delete.0" - client = get_client(test_id) - client.attack_protection.captcha_policies.delete( - id="id", - ) - verify_request_count(test_id, "DELETE", "/attack-protection/captcha/policies/id", None, 1) - - -def test_attackProtection_captchaPolicies_update() -> None: - """Test update endpoint with WireMock""" - test_id = "attack_protection.captcha_policies.update.0" - client = get_client(test_id) - client.attack_protection.captcha_policies.update( - id="id", - ) - verify_request_count(test_id, "PATCH", "/attack-protection/captcha/policies/id", None, 1) diff --git a/tests/wire/test_clients.py b/tests/wire/test_clients.py index d3b49c40..f7247791 100644 --- a/tests/wire/test_clients.py +++ b/tests/wire/test_clients.py @@ -15,6 +15,7 @@ def test_clients_list_() -> None: is_first_party=True, app_type="app_type", external_client_id="external_client_id", + agent_id="agent_id", q="q", ) verify_request_count( @@ -31,6 +32,7 @@ def test_clients_list_() -> None: "is_first_party": "true", "app_type": "app_type", "external_client_id": "external_client_id", + "agent_id": "agent_id", "q": "q", }, 1, diff --git a/tests/wire/test_experimentation_experiments.py b/tests/wire/test_experimentation_experiments.py index 2e422c96..9fb9a7c7 100644 --- a/tests/wire/test_experimentation_experiments.py +++ b/tests/wire/test_experimentation_experiments.py @@ -35,6 +35,7 @@ def test_experimentation_experiments_create() -> None: name="name", feature_flag_id="feature_flag_id", authentication_flow="authentication", + allocation_strategy="percentage", ) verify_request_count(test_id, "POST", "/experimentation/experiments", None, 1) diff --git a/tests/wire/test_experimentation_segments.py b/tests/wire/test_experimentation_segments.py index 4fbbdb65..62d15bc3 100644 --- a/tests/wire/test_experimentation_segments.py +++ b/tests/wire/test_experimentation_segments.py @@ -11,8 +11,15 @@ def test_experimentation_segments_list_() -> None: from_="from", take=1, type="auth0", + status="active", + ) + verify_request_count( + test_id, + "GET", + "/experimentation/segments", + {"from": "from", "take": "1", "type": "auth0", "status": "active"}, + 1, ) - verify_request_count(test_id, "GET", "/experimentation/segments", {"from": "from", "take": "1", "type": "auth0"}, 1) def test_experimentation_segments_create() -> None: diff --git a/tests/wire/test_portals.py b/tests/wire/test_portals.py new file mode 100644 index 00000000..c77b25aa --- /dev/null +++ b/tests/wire/test_portals.py @@ -0,0 +1,57 @@ +from .conftest import get_client, verify_request_count + +from auth0.management import PortalClientSecretPostRequest + + +def test_portals_list_() -> None: + """Test list endpoint with WireMock""" + test_id = "portals.list_.0" + client = get_client(test_id) + client.portals.list() + verify_request_count(test_id, "GET", "/portals", None, 1) + + +def test_portals_create() -> None: + """Test create endpoint with WireMock""" + test_id = "portals.create.0" + client = get_client(test_id) + client.portals.create( + slug="slug", + name="name", + client=PortalClientSecretPostRequest( + token_endpoint_auth_method="client_secret_post", + client_id="client_id", + client_secret="client_secret", + ), + ) + verify_request_count(test_id, "POST", "/portals", None, 1) + + +def test_portals_get() -> None: + """Test get endpoint with WireMock""" + test_id = "portals.get.0" + client = get_client(test_id) + client.portals.get( + id="id", + ) + verify_request_count(test_id, "GET", "/portals/id", None, 1) + + +def test_portals_delete() -> None: + """Test delete endpoint with WireMock""" + test_id = "portals.delete.0" + client = get_client(test_id) + client.portals.delete( + id="id", + ) + verify_request_count(test_id, "DELETE", "/portals/id", None, 1) + + +def test_portals_update() -> None: + """Test update endpoint with WireMock""" + test_id = "portals.update.0" + client = get_client(test_id) + client.portals.update( + id="id", + ) + verify_request_count(test_id, "PATCH", "/portals/id", None, 1) diff --git a/tests/wire/test_users.py b/tests/wire/test_users.py index 1c42f3e7..433188e6 100644 --- a/tests/wire/test_users.py +++ b/tests/wire/test_users.py @@ -93,6 +93,38 @@ def test_users_update() -> None: verify_request_count(test_id, "PATCH", "/users/id", None, 1) +def test_users_list_consent_signing_keys() -> None: + """Test listConsentSigningKeys endpoint with WireMock""" + test_id = "users.list_consent_signing_keys.0" + client = get_client(test_id) + client.users.list_consent_signing_keys( + id="id", + ) + verify_request_count(test_id, "GET", "/users/id/consent-signing-keys", None, 1) + + +def test_users_get_consent_signing_key() -> None: + """Test getConsentSigningKey endpoint with WireMock""" + test_id = "users.get_consent_signing_key.0" + client = get_client(test_id) + client.users.get_consent_signing_key( + id="id", + kid="kid", + ) + verify_request_count(test_id, "GET", "/users/id/consent-signing-keys/kid", None, 1) + + +def test_users_delete_consent_signing_key() -> None: + """Test deleteConsentSigningKey endpoint with WireMock""" + test_id = "users.delete_consent_signing_key.0" + client = get_client(test_id) + client.users.delete_consent_signing_key( + id="id", + kid="kid", + ) + verify_request_count(test_id, "DELETE", "/users/id/consent-signing-keys/kid", None, 1) + + def test_users_regenerate_recovery_code() -> None: """Test regenerateRecoveryCode endpoint with WireMock""" test_id = "users.regenerate_recovery_code.0" diff --git a/wiremock/wiremock-mappings.json b/wiremock/wiremock-mappings.json index bfc9967f..da4a9d5a 100644 --- a/wiremock/wiremock-mappings.json +++ b/wiremock/wiremock-mappings.json @@ -816,7 +816,7 @@ }, "response": { "status": 201, - "body": "{\n \"id\": \"id\",\n \"name\": \"name\",\n \"description\": \"description\",\n \"client_configuration\": {\n \"organization_usage\": {\n \"default_value\": \"deny\"\n },\n \"organization_require_behavior\": {\n \"default_value\": \"no_prompt\"\n },\n \"organization_discovery_methods\": {\n \"default_value\": [\n \"email\"\n ]\n },\n \"require_proof_of_possession\": {\n \"default_value\": true\n }\n },\n \"apply_policy\": {\n \"external_metadata_type\": \"cimd\",\n \"external_metadata_created_by\": \"client\"\n },\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\"\n}", + "body": "{\n \"id\": \"id\",\n \"name\": \"name\",\n \"description\": \"description\",\n \"client_configuration\": {\n \"organization_usage\": {\n \"default_value\": \"deny\"\n },\n \"organization_require_behavior\": {\n \"default_value\": \"no_prompt\"\n },\n \"organization_discovery_methods\": {\n \"default_value\": [\n \"email\"\n ]\n },\n \"require_proof_of_possession\": {\n \"default_value\": true\n },\n \"oidc_support\": {\n \"default_value\": {\n \"is_allowed\": true\n }\n }\n },\n \"apply_policy\": {\n \"external_metadata_type\": \"cimd\",\n \"external_metadata_created_by\": \"client\"\n },\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\"\n}", "headers": { "Content-Type": "application/json" } @@ -852,7 +852,7 @@ }, "response": { "status": 200, - "body": "{\n \"id\": \"id\",\n \"name\": \"name\",\n \"description\": \"description\",\n \"client_configuration\": {\n \"organization_usage\": {\n \"default_value\": \"deny\"\n },\n \"organization_require_behavior\": {\n \"default_value\": \"no_prompt\"\n },\n \"organization_discovery_methods\": {\n \"default_value\": [\n \"email\"\n ]\n },\n \"require_proof_of_possession\": {\n \"default_value\": true\n }\n },\n \"apply_policy\": {\n \"external_metadata_type\": \"cimd\",\n \"external_metadata_created_by\": \"client\"\n },\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\"\n}", + "body": "{\n \"id\": \"id\",\n \"name\": \"name\",\n \"description\": \"description\",\n \"client_configuration\": {\n \"organization_usage\": {\n \"default_value\": \"deny\"\n },\n \"organization_require_behavior\": {\n \"default_value\": \"no_prompt\"\n },\n \"organization_discovery_methods\": {\n \"default_value\": [\n \"email\"\n ]\n },\n \"require_proof_of_possession\": {\n \"default_value\": true\n },\n \"oidc_support\": {\n \"default_value\": {\n \"is_allowed\": true\n }\n }\n },\n \"apply_policy\": {\n \"external_metadata_type\": \"cimd\",\n \"external_metadata_created_by\": \"client\"\n },\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\"\n}", "headers": { "Content-Type": "application/json" } @@ -924,7 +924,7 @@ }, "response": { "status": 200, - "body": "{\n \"id\": \"id\",\n \"name\": \"name\",\n \"description\": \"description\",\n \"client_configuration\": {\n \"organization_usage\": {\n \"default_value\": \"deny\"\n },\n \"organization_require_behavior\": {\n \"default_value\": \"no_prompt\"\n },\n \"organization_discovery_methods\": {\n \"default_value\": [\n \"email\"\n ]\n },\n \"require_proof_of_possession\": {\n \"default_value\": true\n }\n },\n \"apply_policy\": {\n \"external_metadata_type\": \"cimd\",\n \"external_metadata_created_by\": \"client\"\n },\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\"\n}", + "body": "{\n \"id\": \"id\",\n \"name\": \"name\",\n \"description\": \"description\",\n \"client_configuration\": {\n \"organization_usage\": {\n \"default_value\": \"deny\"\n },\n \"organization_require_behavior\": {\n \"default_value\": \"no_prompt\"\n },\n \"organization_discovery_methods\": {\n \"default_value\": [\n \"email\"\n ]\n },\n \"require_proof_of_possession\": {\n \"default_value\": true\n },\n \"oidc_support\": {\n \"default_value\": {\n \"is_allowed\": true\n }\n }\n },\n \"apply_policy\": {\n \"external_metadata_type\": \"cimd\",\n \"external_metadata_created_by\": \"client\"\n },\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\"\n}", "headers": { "Content-Type": "application/json" } @@ -980,6 +980,9 @@ "external_client_id": { "equalTo": "external_client_id" }, + "agent_id": { + "equalTo": "agent_id" + }, "q": { "equalTo": "q" } @@ -987,7 +990,7 @@ }, "response": { "status": 200, - "body": "{\n \"start\": 1.1,\n \"limit\": 1.1,\n \"total\": 1.1,\n \"clients\": [\n {\n \"client_id\": \"client_id\",\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\",\n \"tenant\": \"tenant\",\n \"name\": \"name\",\n \"description\": \"description\",\n \"global\": true,\n \"client_secret\": \"client_secret\",\n \"app_type\": \"native\",\n \"logo_uri\": \"logo_uri\",\n \"is_first_party\": true,\n \"oidc_conformant\": true,\n \"callbacks\": [\n \"callbacks\"\n ],\n \"allowed_origins\": [\n \"allowed_origins\"\n ],\n \"web_origins\": [\n \"web_origins\"\n ],\n \"client_aliases\": [\n \"client_aliases\"\n ],\n \"allowed_clients\": [\n \"allowed_clients\"\n ],\n \"allowed_logout_urls\": [\n \"allowed_logout_urls\"\n ],\n \"grant_types\": [\n \"grant_types\"\n ],\n \"signing_keys\": [\n {}\n ],\n \"sso\": true,\n \"sso_disabled\": true,\n \"cross_origin_authentication\": true,\n \"cross_origin_loc\": \"cross_origin_loc\",\n \"custom_login_page_on\": true,\n \"custom_login_page\": \"custom_login_page\",\n \"custom_login_page_preview\": \"custom_login_page_preview\",\n \"form_template\": \"form_template\",\n \"token_endpoint_auth_method\": \"none\",\n \"is_token_endpoint_ip_header_trusted\": true,\n \"client_metadata\": {\n \"key\": \"value\"\n },\n \"initiate_login_uri\": \"initiate_login_uri\",\n \"refresh_token\": {\n \"rotation_type\": \"rotating\",\n \"expiration_type\": \"expiring\"\n },\n \"default_organization\": {\n \"organization_id\": \"organization_id\",\n \"flows\": [\n \"client_credentials\"\n ]\n },\n \"organization_usage\": \"deny\",\n \"organization_require_behavior\": \"no_prompt\",\n \"organization_discovery_methods\": [\n \"email\"\n ],\n \"require_pushed_authorization_requests\": true,\n \"require_proof_of_possession\": true,\n \"token_vault_privileged_access\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"compliance_level\": \"none\",\n \"skip_non_verifiable_callback_uri_confirmation_prompt\": true,\n \"par_request_expiry\": 1,\n \"token_quota\": {\n \"client_credentials\": {}\n },\n \"express_configuration\": {\n \"initiate_login_uri_template\": \"initiate_login_uri_template\",\n \"user_attribute_profile_id\": \"user_attribute_profile_id\",\n \"connection_profile_id\": \"connection_profile_id\",\n \"enable_client\": true,\n \"enable_organization\": true,\n \"okta_oin_client_id\": \"okta_oin_client_id\",\n \"admin_login_domain\": \"admin_login_domain\"\n },\n \"my_organization_configuration\": {\n \"allowed_strategies\": [\n \"pingfederate\"\n ],\n \"connection_deletion_behavior\": \"allow\"\n },\n \"identity_assertion_authorization_grant\": {\n \"active\": true\n },\n \"anonymous_sessions\": {\n \"active\": true\n },\n \"enforce_anon_session_transfer_network_binding\": \"ip\",\n \"third_party_security_mode\": \"strict\",\n \"redirection_policy\": \"allow_always\",\n \"resource_server_identifier\": \"resource_server_identifier\",\n \"async_approval_notification_channels\": [\n \"guardian-push\"\n ],\n \"external_metadata_type\": \"cimd\",\n \"external_metadata_created_by\": \"admin\",\n \"external_metadata_status\": \"available\",\n \"external_client_id\": \"external_client_id\",\n \"jwks_uri\": \"jwks_uri\"\n }\n ]\n}", + "body": "{\n \"start\": 1.1,\n \"limit\": 1.1,\n \"total\": 1.1,\n \"clients\": [\n {\n \"client_id\": \"client_id\",\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\",\n \"tenant\": \"tenant\",\n \"name\": \"name\",\n \"description\": \"description\",\n \"global\": true,\n \"client_secret\": \"client_secret\",\n \"app_type\": \"native\",\n \"logo_uri\": \"logo_uri\",\n \"is_first_party\": true,\n \"oidc_conformant\": true,\n \"callbacks\": [\n \"callbacks\"\n ],\n \"allowed_origins\": [\n \"allowed_origins\"\n ],\n \"web_origins\": [\n \"web_origins\"\n ],\n \"client_aliases\": [\n \"client_aliases\"\n ],\n \"allowed_clients\": [\n \"allowed_clients\"\n ],\n \"allowed_logout_urls\": [\n \"allowed_logout_urls\"\n ],\n \"grant_types\": [\n \"grant_types\"\n ],\n \"signing_keys\": [\n {}\n ],\n \"sso\": true,\n \"sso_disabled\": true,\n \"cross_origin_authentication\": true,\n \"cross_origin_loc\": \"cross_origin_loc\",\n \"custom_login_page_on\": true,\n \"custom_login_page\": \"custom_login_page\",\n \"custom_login_page_preview\": \"custom_login_page_preview\",\n \"form_template\": \"form_template\",\n \"token_endpoint_auth_method\": \"none\",\n \"is_token_endpoint_ip_header_trusted\": true,\n \"client_metadata\": {\n \"key\": \"value\"\n },\n \"initiate_login_uri\": \"initiate_login_uri\",\n \"refresh_token\": {\n \"rotation_type\": \"rotating\",\n \"expiration_type\": \"expiring\"\n },\n \"default_organization\": {\n \"organization_id\": \"organization_id\",\n \"flows\": [\n \"client_credentials\"\n ]\n },\n \"organization_usage\": \"deny\",\n \"organization_require_behavior\": \"no_prompt\",\n \"organization_discovery_methods\": [\n \"email\"\n ],\n \"require_pushed_authorization_requests\": true,\n \"require_proof_of_possession\": true,\n \"token_vault_privileged_access\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"compliance_level\": \"none\",\n \"skip_non_verifiable_callback_uri_confirmation_prompt\": true,\n \"par_request_expiry\": 1,\n \"token_quota\": {\n \"client_credentials\": {}\n },\n \"express_configuration\": {\n \"initiate_login_uri_template\": \"initiate_login_uri_template\",\n \"user_attribute_profile_id\": \"user_attribute_profile_id\",\n \"connection_profile_id\": \"connection_profile_id\",\n \"enable_client\": true,\n \"enable_organization\": true,\n \"okta_oin_client_id\": \"okta_oin_client_id\",\n \"admin_login_domain\": \"admin_login_domain\"\n },\n \"my_organization_configuration\": {\n \"allowed_strategies\": [\n \"pingfederate\"\n ],\n \"connection_deletion_behavior\": \"allow\"\n },\n \"identity_assertion_authorization_grant\": {\n \"active\": true\n },\n \"anonymous_sessions\": {\n \"active\": true\n },\n \"enforce_anon_session_transfer_network_binding\": \"ip\",\n \"third_party_security_mode\": \"strict\",\n \"redirection_policy\": \"allow_always\",\n \"resource_server_identifier\": \"resource_server_identifier\",\n \"async_approval_notification_channels\": [\n \"guardian-push\"\n ],\n \"external_metadata_type\": \"cimd\",\n \"external_metadata_created_by\": \"admin\",\n \"external_metadata_status\": \"available\",\n \"agent_id\": \"agent_id\",\n \"external_client_id\": \"external_client_id\",\n \"jwks_uri\": \"jwks_uri\"\n }\n ]\n}", "headers": { "Content-Type": "application/json" } @@ -1019,7 +1022,7 @@ }, "response": { "status": 201, - "body": "{\n \"client_id\": \"client_id\",\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\",\n \"tenant\": \"tenant\",\n \"name\": \"name\",\n \"description\": \"description\",\n \"global\": true,\n \"client_secret\": \"client_secret\",\n \"app_type\": \"native\",\n \"logo_uri\": \"logo_uri\",\n \"is_first_party\": true,\n \"oidc_conformant\": true,\n \"callbacks\": [\n \"callbacks\"\n ],\n \"allowed_origins\": [\n \"allowed_origins\"\n ],\n \"web_origins\": [\n \"web_origins\"\n ],\n \"client_aliases\": [\n \"client_aliases\"\n ],\n \"allowed_clients\": [\n \"allowed_clients\"\n ],\n \"allowed_logout_urls\": [\n \"allowed_logout_urls\"\n ],\n \"session_transfer\": {\n \"can_create_session_transfer_token\": true,\n \"enforce_cascade_revocation\": true,\n \"allowed_authentication_methods\": [\n \"cookie\"\n ],\n \"enforce_device_binding\": \"ip\",\n \"allow_refresh_token\": true,\n \"enforce_online_refresh_tokens\": true,\n \"delegation\": {\n \"allow_delegated_access\": true,\n \"enforce_device_binding\": \"ip\"\n }\n },\n \"oidc_logout\": {\n \"backchannel_logout_urls\": [\n \"backchannel_logout_urls\"\n ],\n \"backchannel_logout_initiators\": {\n \"mode\": \"custom\",\n \"selected_initiators\": [\n \"rp-logout\"\n ]\n },\n \"backchannel_logout_session_metadata\": {\n \"include\": true\n }\n },\n \"grant_types\": [\n \"grant_types\"\n ],\n \"jwt_configuration\": {\n \"lifetime_in_seconds\": 1,\n \"secret_encoded\": true,\n \"scopes\": {\n \"key\": \"value\"\n },\n \"alg\": \"HS256\"\n },\n \"signing_keys\": [\n {\n \"pkcs7\": \"pkcs7\",\n \"cert\": \"cert\",\n \"subject\": \"subject\"\n }\n ],\n \"encryption_key\": {\n \"pub\": \"pub\",\n \"cert\": \"cert\",\n \"subject\": \"subject\"\n },\n \"sso\": true,\n \"sso_disabled\": true,\n \"cross_origin_authentication\": true,\n \"cross_origin_loc\": \"cross_origin_loc\",\n \"custom_login_page_on\": true,\n \"custom_login_page\": \"custom_login_page\",\n \"custom_login_page_preview\": \"custom_login_page_preview\",\n \"form_template\": \"form_template\",\n \"addons\": {\n \"aws\": {\n \"principal\": \"principal\",\n \"role\": \"role\",\n \"lifetime_in_seconds\": 1\n },\n \"azure_blob\": {\n \"accountName\": \"accountName\",\n \"storageAccessKey\": \"storageAccessKey\",\n \"containerName\": \"containerName\",\n \"blobName\": \"blobName\",\n \"expiration\": 1,\n \"signedIdentifier\": \"signedIdentifier\",\n \"blob_read\": true,\n \"blob_write\": true,\n \"blob_delete\": true,\n \"container_read\": true,\n \"container_write\": true,\n \"container_delete\": true,\n \"container_list\": true\n },\n \"azure_sb\": {\n \"namespace\": \"namespace\",\n \"sasKeyName\": \"sasKeyName\",\n \"sasKey\": \"sasKey\",\n \"entityPath\": \"entityPath\",\n \"expiration\": 1\n },\n \"rms\": {\n \"url\": \"url\"\n },\n \"mscrm\": {\n \"url\": \"url\"\n },\n \"slack\": {\n \"team\": \"team\"\n },\n \"sentry\": {\n \"org_slug\": \"org_slug\",\n \"base_url\": \"base_url\"\n },\n \"box\": {\n \"key\": \"value\"\n },\n \"cloudbees\": {\n \"key\": \"value\"\n },\n \"concur\": {\n \"key\": \"value\"\n },\n \"dropbox\": {\n \"key\": \"value\"\n },\n \"echosign\": {\n \"domain\": \"domain\"\n },\n \"egnyte\": {\n \"domain\": \"domain\"\n },\n \"firebase\": {\n \"secret\": \"secret\",\n \"private_key_id\": \"private_key_id\",\n \"private_key\": \"private_key\",\n \"client_email\": \"client_email\",\n \"lifetime_in_seconds\": 1\n },\n \"newrelic\": {\n \"account\": \"account\"\n },\n \"office365\": {\n \"domain\": \"domain\",\n \"connection\": \"connection\"\n },\n \"salesforce\": {\n \"entity_id\": \"entity_id\"\n },\n \"salesforce_api\": {\n \"clientid\": \"clientid\",\n \"principal\": \"principal\",\n \"communityName\": \"communityName\",\n \"community_url_section\": \"community_url_section\"\n },\n \"salesforce_sandbox_api\": {\n \"clientid\": \"clientid\",\n \"principal\": \"principal\",\n \"communityName\": \"communityName\",\n \"community_url_section\": \"community_url_section\"\n },\n \"samlp\": {\n \"mappings\": {\n \"key\": \"value\"\n },\n \"audience\": \"audience\",\n \"recipient\": \"recipient\",\n \"createUpnClaim\": true,\n \"mapUnknownClaimsAsIs\": true,\n \"passthroughClaimsWithNoMapping\": true,\n \"mapIdentities\": true,\n \"signatureAlgorithm\": \"signatureAlgorithm\",\n \"digestAlgorithm\": \"digestAlgorithm\",\n \"issuer\": \"issuer\",\n \"destination\": \"destination\",\n \"lifetimeInSeconds\": 1,\n \"signResponse\": true,\n \"nameIdentifierFormat\": \"nameIdentifierFormat\",\n \"nameIdentifierProbes\": [\n \"nameIdentifierProbes\"\n ],\n \"authnContextClassRef\": \"authnContextClassRef\"\n },\n \"layer\": {\n \"providerId\": \"providerId\",\n \"keyId\": \"keyId\",\n \"privateKey\": \"privateKey\",\n \"principal\": \"principal\",\n \"expiration\": 1\n },\n \"sap_api\": {\n \"clientid\": \"clientid\",\n \"usernameAttribute\": \"usernameAttribute\",\n \"tokenEndpointUrl\": \"tokenEndpointUrl\",\n \"scope\": \"scope\",\n \"servicePassword\": \"servicePassword\",\n \"nameIdentifierFormat\": \"nameIdentifierFormat\"\n },\n \"sharepoint\": {\n \"url\": \"url\",\n \"external_url\": [\n \"external_url\"\n ]\n },\n \"springcm\": {\n \"acsurl\": \"acsurl\"\n },\n \"wams\": {\n \"masterkey\": \"masterkey\"\n },\n \"wsfed\": {\n \"key\": \"value\"\n },\n \"zendesk\": {\n \"accountName\": \"accountName\"\n },\n \"zoom\": {\n \"account\": \"account\"\n },\n \"sso_integration\": {\n \"name\": \"name\",\n \"version\": \"version\"\n }\n },\n \"token_endpoint_auth_method\": \"none\",\n \"is_token_endpoint_ip_header_trusted\": true,\n \"client_metadata\": {\n \"key\": \"value\"\n },\n \"mobile\": {\n \"android\": {\n \"app_package_name\": \"app_package_name\",\n \"sha256_cert_fingerprints\": [\n \"sha256_cert_fingerprints\"\n ]\n },\n \"ios\": {\n \"team_id\": \"team_id\",\n \"app_bundle_identifier\": \"app_bundle_identifier\"\n }\n },\n \"initiate_login_uri\": \"initiate_login_uri\",\n \"native_social_login\": {\n \"apple\": {\n \"enabled\": true\n },\n \"facebook\": {\n \"enabled\": true\n },\n \"google\": {\n \"enabled\": true\n }\n },\n \"fedcm_login\": {\n \"google\": {\n \"is_enabled\": true\n }\n },\n \"refresh_token\": {\n \"rotation_type\": \"rotating\",\n \"expiration_type\": \"expiring\",\n \"leeway\": 1,\n \"token_lifetime\": 1,\n \"infinite_token_lifetime\": true,\n \"idle_token_lifetime\": 1,\n \"infinite_idle_token_lifetime\": true,\n \"policies\": [\n {\n \"audience\": \"audience\",\n \"scope\": [\n \"scope\"\n ]\n }\n ]\n },\n \"default_organization\": {\n \"organization_id\": \"organization_id\",\n \"flows\": [\n \"client_credentials\"\n ]\n },\n \"organization_usage\": \"deny\",\n \"organization_require_behavior\": \"no_prompt\",\n \"organization_discovery_methods\": [\n \"email\"\n ],\n \"client_authentication_methods\": {\n \"private_key_jwt\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"tls_client_auth\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"self_signed_tls_client_auth\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n }\n },\n \"require_pushed_authorization_requests\": true,\n \"require_proof_of_possession\": true,\n \"signed_request_object\": {\n \"required\": true,\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"token_vault_privileged_access\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ],\n \"ip_allowlist\": [\n \"ip_allowlist\"\n ],\n \"grants\": [\n {\n \"connection\": \"connection\",\n \"scopes\": [\n \"scopes\"\n ]\n }\n ]\n },\n \"compliance_level\": \"none\",\n \"skip_non_verifiable_callback_uri_confirmation_prompt\": true,\n \"token_exchange\": {\n \"allow_any_profile_of_type\": [\n \"custom_authentication\"\n ]\n },\n \"par_request_expiry\": 1,\n \"token_quota\": {\n \"client_credentials\": {\n \"enforce\": true,\n \"per_day\": 1,\n \"per_hour\": 1\n }\n },\n \"express_configuration\": {\n \"initiate_login_uri_template\": \"initiate_login_uri_template\",\n \"user_attribute_profile_id\": \"user_attribute_profile_id\",\n \"connection_profile_id\": \"connection_profile_id\",\n \"enable_client\": true,\n \"enable_organization\": true,\n \"linked_clients\": [\n {\n \"client_id\": \"client_id\"\n }\n ],\n \"okta_oin_client_id\": \"okta_oin_client_id\",\n \"admin_login_domain\": \"admin_login_domain\",\n \"oin_submission_id\": \"oin_submission_id\"\n },\n \"b2b_integration_configuration\": {\n \"sso_profiles\": [\n \"sso_profiles\"\n ],\n \"integration_type\": \"custom_auth_server\"\n },\n \"my_organization_configuration\": {\n \"connection_profile_id\": \"connection_profile_id\",\n \"user_attribute_profile_id\": \"user_attribute_profile_id\",\n \"allowed_strategies\": [\n \"pingfederate\"\n ],\n \"third_party_client_access\": {\n \"default_value\": \"block\",\n \"allowed_values\": [\n \"allow\"\n ]\n },\n \"connection_deletion_behavior\": \"allow\",\n \"invitation_landing_client_id\": \"invitation_landing_client_id\",\n \"enforce_permission_ceiling\": true,\n \"enforce_self_assignment_restriction\": true\n },\n \"identity_assertion_authorization_grant\": {\n \"active\": true\n },\n \"anonymous_sessions\": {\n \"active\": true\n },\n \"enforce_anon_session_transfer_network_binding\": \"ip\",\n \"third_party_security_mode\": \"strict\",\n \"redirection_policy\": \"allow_always\",\n \"resource_server_identifier\": \"resource_server_identifier\",\n \"async_approval_notification_channels\": [\n \"guardian-push\"\n ],\n \"external_metadata_type\": \"cimd\",\n \"external_metadata_created_by\": \"admin\",\n \"external_metadata_status\": \"available\",\n \"external_client_id\": \"external_client_id\",\n \"jwks_uri\": \"jwks_uri\"\n}", + "body": "{\n \"client_id\": \"client_id\",\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\",\n \"tenant\": \"tenant\",\n \"name\": \"name\",\n \"description\": \"description\",\n \"global\": true,\n \"client_secret\": \"client_secret\",\n \"app_type\": \"native\",\n \"logo_uri\": \"logo_uri\",\n \"is_first_party\": true,\n \"oidc_conformant\": true,\n \"callbacks\": [\n \"callbacks\"\n ],\n \"allowed_origins\": [\n \"allowed_origins\"\n ],\n \"web_origins\": [\n \"web_origins\"\n ],\n \"client_aliases\": [\n \"client_aliases\"\n ],\n \"allowed_clients\": [\n \"allowed_clients\"\n ],\n \"allowed_logout_urls\": [\n \"allowed_logout_urls\"\n ],\n \"session_transfer\": {\n \"can_create_session_transfer_token\": true,\n \"enforce_cascade_revocation\": true,\n \"allowed_authentication_methods\": [\n \"cookie\"\n ],\n \"enforce_device_binding\": \"ip\",\n \"allow_refresh_token\": true,\n \"enforce_online_refresh_tokens\": true,\n \"delegation\": {\n \"allow_delegated_access\": true,\n \"enforce_device_binding\": \"ip\"\n }\n },\n \"oidc_logout\": {\n \"backchannel_logout_urls\": [\n \"backchannel_logout_urls\"\n ],\n \"backchannel_logout_initiators\": {\n \"mode\": \"custom\",\n \"selected_initiators\": [\n \"rp-logout\"\n ]\n },\n \"backchannel_logout_session_metadata\": {\n \"include\": true\n }\n },\n \"grant_types\": [\n \"grant_types\"\n ],\n \"jwt_configuration\": {\n \"lifetime_in_seconds\": 1,\n \"secret_encoded\": true,\n \"scopes\": {\n \"key\": \"value\"\n },\n \"alg\": \"HS256\"\n },\n \"signing_keys\": [\n {\n \"pkcs7\": \"pkcs7\",\n \"cert\": \"cert\",\n \"subject\": \"subject\"\n }\n ],\n \"encryption_key\": {\n \"pub\": \"pub\",\n \"cert\": \"cert\",\n \"subject\": \"subject\"\n },\n \"sso\": true,\n \"sso_disabled\": true,\n \"cross_origin_authentication\": true,\n \"cross_origin_loc\": \"cross_origin_loc\",\n \"custom_login_page_on\": true,\n \"custom_login_page\": \"custom_login_page\",\n \"custom_login_page_preview\": \"custom_login_page_preview\",\n \"form_template\": \"form_template\",\n \"addons\": {\n \"aws\": {\n \"principal\": \"principal\",\n \"role\": \"role\",\n \"lifetime_in_seconds\": 1\n },\n \"azure_blob\": {\n \"accountName\": \"accountName\",\n \"storageAccessKey\": \"storageAccessKey\",\n \"containerName\": \"containerName\",\n \"blobName\": \"blobName\",\n \"expiration\": 1,\n \"signedIdentifier\": \"signedIdentifier\",\n \"blob_read\": true,\n \"blob_write\": true,\n \"blob_delete\": true,\n \"container_read\": true,\n \"container_write\": true,\n \"container_delete\": true,\n \"container_list\": true\n },\n \"azure_sb\": {\n \"namespace\": \"namespace\",\n \"sasKeyName\": \"sasKeyName\",\n \"sasKey\": \"sasKey\",\n \"entityPath\": \"entityPath\",\n \"expiration\": 1\n },\n \"rms\": {\n \"url\": \"url\"\n },\n \"mscrm\": {\n \"url\": \"url\"\n },\n \"slack\": {\n \"team\": \"team\"\n },\n \"sentry\": {\n \"org_slug\": \"org_slug\",\n \"base_url\": \"base_url\"\n },\n \"box\": {\n \"key\": \"value\"\n },\n \"cloudbees\": {\n \"key\": \"value\"\n },\n \"concur\": {\n \"key\": \"value\"\n },\n \"dropbox\": {\n \"key\": \"value\"\n },\n \"echosign\": {\n \"domain\": \"domain\"\n },\n \"egnyte\": {\n \"domain\": \"domain\"\n },\n \"firebase\": {\n \"secret\": \"secret\",\n \"private_key_id\": \"private_key_id\",\n \"private_key\": \"private_key\",\n \"client_email\": \"client_email\",\n \"lifetime_in_seconds\": 1\n },\n \"newrelic\": {\n \"account\": \"account\"\n },\n \"office365\": {\n \"domain\": \"domain\",\n \"connection\": \"connection\"\n },\n \"salesforce\": {\n \"entity_id\": \"entity_id\"\n },\n \"salesforce_api\": {\n \"clientid\": \"clientid\",\n \"principal\": \"principal\",\n \"communityName\": \"communityName\",\n \"community_url_section\": \"community_url_section\"\n },\n \"salesforce_sandbox_api\": {\n \"clientid\": \"clientid\",\n \"principal\": \"principal\",\n \"communityName\": \"communityName\",\n \"community_url_section\": \"community_url_section\"\n },\n \"samlp\": {\n \"mappings\": {\n \"key\": \"value\"\n },\n \"audience\": \"audience\",\n \"recipient\": \"recipient\",\n \"createUpnClaim\": true,\n \"mapUnknownClaimsAsIs\": true,\n \"passthroughClaimsWithNoMapping\": true,\n \"mapIdentities\": true,\n \"signatureAlgorithm\": \"signatureAlgorithm\",\n \"digestAlgorithm\": \"digestAlgorithm\",\n \"issuer\": \"issuer\",\n \"destination\": \"destination\",\n \"lifetimeInSeconds\": 1,\n \"signResponse\": true,\n \"nameIdentifierFormat\": \"nameIdentifierFormat\",\n \"nameIdentifierProbes\": [\n \"nameIdentifierProbes\"\n ],\n \"authnContextClassRef\": \"authnContextClassRef\"\n },\n \"layer\": {\n \"providerId\": \"providerId\",\n \"keyId\": \"keyId\",\n \"privateKey\": \"privateKey\",\n \"principal\": \"principal\",\n \"expiration\": 1\n },\n \"sap_api\": {\n \"clientid\": \"clientid\",\n \"usernameAttribute\": \"usernameAttribute\",\n \"tokenEndpointUrl\": \"tokenEndpointUrl\",\n \"scope\": \"scope\",\n \"servicePassword\": \"servicePassword\",\n \"nameIdentifierFormat\": \"nameIdentifierFormat\"\n },\n \"sharepoint\": {\n \"url\": \"url\",\n \"external_url\": [\n \"external_url\"\n ]\n },\n \"springcm\": {\n \"acsurl\": \"acsurl\"\n },\n \"wams\": {\n \"masterkey\": \"masterkey\"\n },\n \"wsfed\": {\n \"key\": \"value\"\n },\n \"zendesk\": {\n \"accountName\": \"accountName\"\n },\n \"zoom\": {\n \"account\": \"account\"\n },\n \"sso_integration\": {\n \"name\": \"name\",\n \"version\": \"version\"\n }\n },\n \"token_endpoint_auth_method\": \"none\",\n \"is_token_endpoint_ip_header_trusted\": true,\n \"client_metadata\": {\n \"key\": \"value\"\n },\n \"mobile\": {\n \"android\": {\n \"app_package_name\": \"app_package_name\",\n \"sha256_cert_fingerprints\": [\n \"sha256_cert_fingerprints\"\n ]\n },\n \"ios\": {\n \"team_id\": \"team_id\",\n \"app_bundle_identifier\": \"app_bundle_identifier\"\n }\n },\n \"initiate_login_uri\": \"initiate_login_uri\",\n \"native_social_login\": {\n \"apple\": {\n \"enabled\": true\n },\n \"facebook\": {\n \"enabled\": true\n },\n \"google\": {\n \"enabled\": true\n }\n },\n \"fedcm_login\": {\n \"google\": {\n \"is_enabled\": true\n }\n },\n \"refresh_token\": {\n \"rotation_type\": \"rotating\",\n \"expiration_type\": \"expiring\",\n \"leeway\": 1,\n \"token_lifetime\": 1,\n \"infinite_token_lifetime\": true,\n \"idle_token_lifetime\": 1,\n \"infinite_idle_token_lifetime\": true,\n \"policies\": [\n {\n \"audience\": \"audience\",\n \"scope\": [\n \"scope\"\n ]\n }\n ]\n },\n \"default_organization\": {\n \"organization_id\": \"organization_id\",\n \"flows\": [\n \"client_credentials\"\n ]\n },\n \"organization_usage\": \"deny\",\n \"organization_require_behavior\": \"no_prompt\",\n \"organization_discovery_methods\": [\n \"email\"\n ],\n \"client_authentication_methods\": {\n \"private_key_jwt\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"tls_client_auth\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"self_signed_tls_client_auth\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n }\n },\n \"require_pushed_authorization_requests\": true,\n \"require_proof_of_possession\": true,\n \"signed_request_object\": {\n \"required\": true,\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"token_vault_privileged_access\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ],\n \"ip_allowlist\": [\n \"ip_allowlist\"\n ],\n \"grants\": [\n {\n \"connection\": \"connection\",\n \"scopes\": [\n \"scopes\"\n ]\n }\n ]\n },\n \"compliance_level\": \"none\",\n \"skip_non_verifiable_callback_uri_confirmation_prompt\": true,\n \"token_exchange\": {\n \"allow_any_profile_of_type\": [\n \"custom_authentication\"\n ]\n },\n \"par_request_expiry\": 1,\n \"token_quota\": {\n \"client_credentials\": {\n \"enforce\": true,\n \"per_day\": 1,\n \"per_hour\": 1\n }\n },\n \"express_configuration\": {\n \"initiate_login_uri_template\": \"initiate_login_uri_template\",\n \"user_attribute_profile_id\": \"user_attribute_profile_id\",\n \"connection_profile_id\": \"connection_profile_id\",\n \"enable_client\": true,\n \"enable_organization\": true,\n \"linked_clients\": [\n {\n \"client_id\": \"client_id\"\n }\n ],\n \"okta_oin_client_id\": \"okta_oin_client_id\",\n \"admin_login_domain\": \"admin_login_domain\",\n \"oin_submission_id\": \"oin_submission_id\"\n },\n \"b2b_integration_configuration\": {\n \"sso_profiles\": [\n \"sso_profiles\"\n ],\n \"integration_type\": \"custom_auth_server\"\n },\n \"my_organization_configuration\": {\n \"connection_profile_id\": \"connection_profile_id\",\n \"user_attribute_profile_id\": \"user_attribute_profile_id\",\n \"allowed_strategies\": [\n \"pingfederate\"\n ],\n \"third_party_client_access\": {\n \"default_value\": \"block\",\n \"allowed_values\": [\n \"allow\"\n ]\n },\n \"connection_deletion_behavior\": \"allow\",\n \"invitation_landing_client_id\": \"invitation_landing_client_id\",\n \"enforce_permission_ceiling\": true,\n \"enforce_self_assignment_restriction\": true\n },\n \"identity_assertion_authorization_grant\": {\n \"active\": true\n },\n \"anonymous_sessions\": {\n \"active\": true\n },\n \"enforce_anon_session_transfer_network_binding\": \"ip\",\n \"third_party_security_mode\": \"strict\",\n \"oidc_support\": {\n \"is_allowed\": true,\n \"allow_all_scopes\": true,\n \"allowed_scopes\": [\n \"profile\"\n ]\n },\n \"redirection_policy\": \"allow_always\",\n \"resource_server_identifier\": \"resource_server_identifier\",\n \"async_approval_notification_channels\": [\n \"guardian-push\"\n ],\n \"external_metadata_type\": \"cimd\",\n \"external_metadata_created_by\": \"admin\",\n \"external_metadata_status\": \"available\",\n \"agent_id\": \"agent_id\",\n \"external_client_id\": \"external_client_id\",\n \"jwks_uri\": \"jwks_uri\"\n}", "headers": { "Content-Type": "application/json" } @@ -1135,7 +1138,7 @@ }, "response": { "status": 200, - "body": "{\n \"clients\": [\n {\n \"client_id\": \"client_id\",\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\",\n \"tenant\": \"tenant\",\n \"name\": \"name\",\n \"description\": \"description\",\n \"global\": true,\n \"app_type\": \"native\",\n \"logo_uri\": \"logo_uri\",\n \"is_first_party\": true,\n \"oidc_conformant\": true,\n \"callbacks\": [\n \"callbacks\"\n ],\n \"allowed_origins\": [\n \"allowed_origins\"\n ],\n \"web_origins\": [\n \"web_origins\"\n ],\n \"client_aliases\": [\n \"client_aliases\"\n ],\n \"allowed_clients\": [\n \"allowed_clients\"\n ],\n \"allowed_logout_urls\": [\n \"allowed_logout_urls\"\n ],\n \"grant_types\": [\n \"grant_types\"\n ],\n \"sso\": true,\n \"sso_disabled\": true,\n \"cross_origin_authentication\": true,\n \"cross_origin_loc\": \"cross_origin_loc\",\n \"custom_login_page_on\": true,\n \"custom_login_page\": \"custom_login_page\",\n \"custom_login_page_preview\": \"custom_login_page_preview\",\n \"form_template\": \"form_template\",\n \"token_endpoint_auth_method\": \"none\",\n \"is_token_endpoint_ip_header_trusted\": true,\n \"client_metadata\": {\n \"key\": \"value\"\n },\n \"initiate_login_uri\": \"initiate_login_uri\",\n \"refresh_token\": {\n \"rotation_type\": \"rotating\",\n \"expiration_type\": \"expiring\"\n },\n \"default_organization\": {\n \"organization_id\": \"organization_id\",\n \"flows\": [\n \"client_credentials\"\n ]\n },\n \"organization_usage\": \"deny\",\n \"organization_require_behavior\": \"no_prompt\",\n \"organization_discovery_methods\": [\n \"email\"\n ],\n \"require_pushed_authorization_requests\": true,\n \"require_proof_of_possession\": true,\n \"token_vault_privileged_access\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"compliance_level\": \"none\",\n \"skip_non_verifiable_callback_uri_confirmation_prompt\": true,\n \"par_request_expiry\": 1,\n \"token_quota\": {\n \"client_credentials\": {}\n },\n \"express_configuration\": {\n \"initiate_login_uri_template\": \"initiate_login_uri_template\",\n \"user_attribute_profile_id\": \"user_attribute_profile_id\",\n \"connection_profile_id\": \"connection_profile_id\",\n \"enable_client\": true,\n \"enable_organization\": true,\n \"okta_oin_client_id\": \"okta_oin_client_id\",\n \"admin_login_domain\": \"admin_login_domain\"\n },\n \"my_organization_configuration\": {\n \"allowed_strategies\": [\n \"pingfederate\"\n ],\n \"connection_deletion_behavior\": \"allow\"\n },\n \"identity_assertion_authorization_grant\": {\n \"active\": true\n },\n \"anonymous_sessions\": {\n \"active\": true\n },\n \"enforce_anon_session_transfer_network_binding\": \"ip\",\n \"third_party_security_mode\": \"strict\",\n \"redirection_policy\": \"allow_always\",\n \"resource_server_identifier\": \"resource_server_identifier\",\n \"async_approval_notification_channels\": [\n \"guardian-push\"\n ],\n \"external_metadata_type\": \"cimd\",\n \"external_metadata_created_by\": \"admin\",\n \"external_metadata_status\": \"available\",\n \"external_client_id\": \"external_client_id\",\n \"jwks_uri\": \"jwks_uri\"\n }\n ],\n \"next\": \"next\"\n}", + "body": "{\n \"clients\": [\n {\n \"client_id\": \"client_id\",\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\",\n \"tenant\": \"tenant\",\n \"name\": \"name\",\n \"description\": \"description\",\n \"global\": true,\n \"app_type\": \"native\",\n \"logo_uri\": \"logo_uri\",\n \"is_first_party\": true,\n \"oidc_conformant\": true,\n \"callbacks\": [\n \"callbacks\"\n ],\n \"allowed_origins\": [\n \"allowed_origins\"\n ],\n \"web_origins\": [\n \"web_origins\"\n ],\n \"client_aliases\": [\n \"client_aliases\"\n ],\n \"allowed_clients\": [\n \"allowed_clients\"\n ],\n \"allowed_logout_urls\": [\n \"allowed_logout_urls\"\n ],\n \"grant_types\": [\n \"grant_types\"\n ],\n \"sso\": true,\n \"sso_disabled\": true,\n \"cross_origin_authentication\": true,\n \"cross_origin_loc\": \"cross_origin_loc\",\n \"custom_login_page_on\": true,\n \"custom_login_page\": \"custom_login_page\",\n \"custom_login_page_preview\": \"custom_login_page_preview\",\n \"form_template\": \"form_template\",\n \"token_endpoint_auth_method\": \"none\",\n \"is_token_endpoint_ip_header_trusted\": true,\n \"client_metadata\": {\n \"key\": \"value\"\n },\n \"initiate_login_uri\": \"initiate_login_uri\",\n \"refresh_token\": {\n \"rotation_type\": \"rotating\",\n \"expiration_type\": \"expiring\"\n },\n \"default_organization\": {\n \"organization_id\": \"organization_id\",\n \"flows\": [\n \"client_credentials\"\n ]\n },\n \"organization_usage\": \"deny\",\n \"organization_require_behavior\": \"no_prompt\",\n \"organization_discovery_methods\": [\n \"email\"\n ],\n \"require_pushed_authorization_requests\": true,\n \"require_proof_of_possession\": true,\n \"token_vault_privileged_access\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"compliance_level\": \"none\",\n \"skip_non_verifiable_callback_uri_confirmation_prompt\": true,\n \"par_request_expiry\": 1,\n \"token_quota\": {\n \"client_credentials\": {}\n },\n \"express_configuration\": {\n \"initiate_login_uri_template\": \"initiate_login_uri_template\",\n \"user_attribute_profile_id\": \"user_attribute_profile_id\",\n \"connection_profile_id\": \"connection_profile_id\",\n \"enable_client\": true,\n \"enable_organization\": true,\n \"okta_oin_client_id\": \"okta_oin_client_id\",\n \"admin_login_domain\": \"admin_login_domain\"\n },\n \"my_organization_configuration\": {\n \"allowed_strategies\": [\n \"pingfederate\"\n ],\n \"connection_deletion_behavior\": \"allow\"\n },\n \"identity_assertion_authorization_grant\": {\n \"active\": true\n },\n \"anonymous_sessions\": {\n \"active\": true\n },\n \"enforce_anon_session_transfer_network_binding\": \"ip\",\n \"third_party_security_mode\": \"strict\",\n \"redirection_policy\": \"allow_always\",\n \"resource_server_identifier\": \"resource_server_identifier\",\n \"async_approval_notification_channels\": [\n \"guardian-push\"\n ],\n \"external_metadata_type\": \"cimd\",\n \"external_metadata_created_by\": \"admin\",\n \"external_metadata_status\": \"available\",\n \"agent_id\": \"agent_id\",\n \"external_client_id\": \"external_client_id\",\n \"jwks_uri\": \"jwks_uri\"\n }\n ],\n \"next\": \"next\"\n}", "headers": { "Content-Type": "application/json" } @@ -1180,7 +1183,7 @@ }, "response": { "status": 200, - "body": "{\n \"client_id\": \"client_id\",\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\",\n \"tenant\": \"tenant\",\n \"name\": \"name\",\n \"description\": \"description\",\n \"global\": true,\n \"client_secret\": \"client_secret\",\n \"app_type\": \"native\",\n \"logo_uri\": \"logo_uri\",\n \"is_first_party\": true,\n \"oidc_conformant\": true,\n \"callbacks\": [\n \"callbacks\"\n ],\n \"allowed_origins\": [\n \"allowed_origins\"\n ],\n \"web_origins\": [\n \"web_origins\"\n ],\n \"client_aliases\": [\n \"client_aliases\"\n ],\n \"allowed_clients\": [\n \"allowed_clients\"\n ],\n \"allowed_logout_urls\": [\n \"allowed_logout_urls\"\n ],\n \"session_transfer\": {\n \"can_create_session_transfer_token\": true,\n \"enforce_cascade_revocation\": true,\n \"allowed_authentication_methods\": [\n \"cookie\"\n ],\n \"enforce_device_binding\": \"ip\",\n \"allow_refresh_token\": true,\n \"enforce_online_refresh_tokens\": true,\n \"delegation\": {\n \"allow_delegated_access\": true,\n \"enforce_device_binding\": \"ip\"\n }\n },\n \"oidc_logout\": {\n \"backchannel_logout_urls\": [\n \"backchannel_logout_urls\"\n ],\n \"backchannel_logout_initiators\": {\n \"mode\": \"custom\",\n \"selected_initiators\": [\n \"rp-logout\"\n ]\n },\n \"backchannel_logout_session_metadata\": {\n \"include\": true\n }\n },\n \"grant_types\": [\n \"grant_types\"\n ],\n \"jwt_configuration\": {\n \"lifetime_in_seconds\": 1,\n \"secret_encoded\": true,\n \"scopes\": {\n \"key\": \"value\"\n },\n \"alg\": \"HS256\"\n },\n \"signing_keys\": [\n {\n \"pkcs7\": \"pkcs7\",\n \"cert\": \"cert\",\n \"subject\": \"subject\"\n }\n ],\n \"encryption_key\": {\n \"pub\": \"pub\",\n \"cert\": \"cert\",\n \"subject\": \"subject\"\n },\n \"sso\": true,\n \"sso_disabled\": true,\n \"cross_origin_authentication\": true,\n \"cross_origin_loc\": \"cross_origin_loc\",\n \"custom_login_page_on\": true,\n \"custom_login_page\": \"custom_login_page\",\n \"custom_login_page_preview\": \"custom_login_page_preview\",\n \"form_template\": \"form_template\",\n \"addons\": {\n \"aws\": {\n \"principal\": \"principal\",\n \"role\": \"role\",\n \"lifetime_in_seconds\": 1\n },\n \"azure_blob\": {\n \"accountName\": \"accountName\",\n \"storageAccessKey\": \"storageAccessKey\",\n \"containerName\": \"containerName\",\n \"blobName\": \"blobName\",\n \"expiration\": 1,\n \"signedIdentifier\": \"signedIdentifier\",\n \"blob_read\": true,\n \"blob_write\": true,\n \"blob_delete\": true,\n \"container_read\": true,\n \"container_write\": true,\n \"container_delete\": true,\n \"container_list\": true\n },\n \"azure_sb\": {\n \"namespace\": \"namespace\",\n \"sasKeyName\": \"sasKeyName\",\n \"sasKey\": \"sasKey\",\n \"entityPath\": \"entityPath\",\n \"expiration\": 1\n },\n \"rms\": {\n \"url\": \"url\"\n },\n \"mscrm\": {\n \"url\": \"url\"\n },\n \"slack\": {\n \"team\": \"team\"\n },\n \"sentry\": {\n \"org_slug\": \"org_slug\",\n \"base_url\": \"base_url\"\n },\n \"box\": {\n \"key\": \"value\"\n },\n \"cloudbees\": {\n \"key\": \"value\"\n },\n \"concur\": {\n \"key\": \"value\"\n },\n \"dropbox\": {\n \"key\": \"value\"\n },\n \"echosign\": {\n \"domain\": \"domain\"\n },\n \"egnyte\": {\n \"domain\": \"domain\"\n },\n \"firebase\": {\n \"secret\": \"secret\",\n \"private_key_id\": \"private_key_id\",\n \"private_key\": \"private_key\",\n \"client_email\": \"client_email\",\n \"lifetime_in_seconds\": 1\n },\n \"newrelic\": {\n \"account\": \"account\"\n },\n \"office365\": {\n \"domain\": \"domain\",\n \"connection\": \"connection\"\n },\n \"salesforce\": {\n \"entity_id\": \"entity_id\"\n },\n \"salesforce_api\": {\n \"clientid\": \"clientid\",\n \"principal\": \"principal\",\n \"communityName\": \"communityName\",\n \"community_url_section\": \"community_url_section\"\n },\n \"salesforce_sandbox_api\": {\n \"clientid\": \"clientid\",\n \"principal\": \"principal\",\n \"communityName\": \"communityName\",\n \"community_url_section\": \"community_url_section\"\n },\n \"samlp\": {\n \"mappings\": {\n \"key\": \"value\"\n },\n \"audience\": \"audience\",\n \"recipient\": \"recipient\",\n \"createUpnClaim\": true,\n \"mapUnknownClaimsAsIs\": true,\n \"passthroughClaimsWithNoMapping\": true,\n \"mapIdentities\": true,\n \"signatureAlgorithm\": \"signatureAlgorithm\",\n \"digestAlgorithm\": \"digestAlgorithm\",\n \"issuer\": \"issuer\",\n \"destination\": \"destination\",\n \"lifetimeInSeconds\": 1,\n \"signResponse\": true,\n \"nameIdentifierFormat\": \"nameIdentifierFormat\",\n \"nameIdentifierProbes\": [\n \"nameIdentifierProbes\"\n ],\n \"authnContextClassRef\": \"authnContextClassRef\"\n },\n \"layer\": {\n \"providerId\": \"providerId\",\n \"keyId\": \"keyId\",\n \"privateKey\": \"privateKey\",\n \"principal\": \"principal\",\n \"expiration\": 1\n },\n \"sap_api\": {\n \"clientid\": \"clientid\",\n \"usernameAttribute\": \"usernameAttribute\",\n \"tokenEndpointUrl\": \"tokenEndpointUrl\",\n \"scope\": \"scope\",\n \"servicePassword\": \"servicePassword\",\n \"nameIdentifierFormat\": \"nameIdentifierFormat\"\n },\n \"sharepoint\": {\n \"url\": \"url\",\n \"external_url\": [\n \"external_url\"\n ]\n },\n \"springcm\": {\n \"acsurl\": \"acsurl\"\n },\n \"wams\": {\n \"masterkey\": \"masterkey\"\n },\n \"wsfed\": {\n \"key\": \"value\"\n },\n \"zendesk\": {\n \"accountName\": \"accountName\"\n },\n \"zoom\": {\n \"account\": \"account\"\n },\n \"sso_integration\": {\n \"name\": \"name\",\n \"version\": \"version\"\n }\n },\n \"token_endpoint_auth_method\": \"none\",\n \"is_token_endpoint_ip_header_trusted\": true,\n \"client_metadata\": {\n \"key\": \"value\"\n },\n \"mobile\": {\n \"android\": {\n \"app_package_name\": \"app_package_name\",\n \"sha256_cert_fingerprints\": [\n \"sha256_cert_fingerprints\"\n ]\n },\n \"ios\": {\n \"team_id\": \"team_id\",\n \"app_bundle_identifier\": \"app_bundle_identifier\"\n }\n },\n \"initiate_login_uri\": \"initiate_login_uri\",\n \"native_social_login\": {\n \"apple\": {\n \"enabled\": true\n },\n \"facebook\": {\n \"enabled\": true\n },\n \"google\": {\n \"enabled\": true\n }\n },\n \"fedcm_login\": {\n \"google\": {\n \"is_enabled\": true\n }\n },\n \"refresh_token\": {\n \"rotation_type\": \"rotating\",\n \"expiration_type\": \"expiring\",\n \"leeway\": 1,\n \"token_lifetime\": 1,\n \"infinite_token_lifetime\": true,\n \"idle_token_lifetime\": 1,\n \"infinite_idle_token_lifetime\": true,\n \"policies\": [\n {\n \"audience\": \"audience\",\n \"scope\": [\n \"scope\"\n ]\n }\n ]\n },\n \"default_organization\": {\n \"organization_id\": \"organization_id\",\n \"flows\": [\n \"client_credentials\"\n ]\n },\n \"organization_usage\": \"deny\",\n \"organization_require_behavior\": \"no_prompt\",\n \"organization_discovery_methods\": [\n \"email\"\n ],\n \"client_authentication_methods\": {\n \"private_key_jwt\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"tls_client_auth\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"self_signed_tls_client_auth\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n }\n },\n \"require_pushed_authorization_requests\": true,\n \"require_proof_of_possession\": true,\n \"signed_request_object\": {\n \"required\": true,\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"token_vault_privileged_access\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ],\n \"ip_allowlist\": [\n \"ip_allowlist\"\n ],\n \"grants\": [\n {\n \"connection\": \"connection\",\n \"scopes\": [\n \"scopes\"\n ]\n }\n ]\n },\n \"compliance_level\": \"none\",\n \"skip_non_verifiable_callback_uri_confirmation_prompt\": true,\n \"token_exchange\": {\n \"allow_any_profile_of_type\": [\n \"custom_authentication\"\n ]\n },\n \"par_request_expiry\": 1,\n \"token_quota\": {\n \"client_credentials\": {\n \"enforce\": true,\n \"per_day\": 1,\n \"per_hour\": 1\n }\n },\n \"express_configuration\": {\n \"initiate_login_uri_template\": \"initiate_login_uri_template\",\n \"user_attribute_profile_id\": \"user_attribute_profile_id\",\n \"connection_profile_id\": \"connection_profile_id\",\n \"enable_client\": true,\n \"enable_organization\": true,\n \"linked_clients\": [\n {\n \"client_id\": \"client_id\"\n }\n ],\n \"okta_oin_client_id\": \"okta_oin_client_id\",\n \"admin_login_domain\": \"admin_login_domain\",\n \"oin_submission_id\": \"oin_submission_id\"\n },\n \"b2b_integration_configuration\": {\n \"sso_profiles\": [\n \"sso_profiles\"\n ],\n \"integration_type\": \"custom_auth_server\"\n },\n \"my_organization_configuration\": {\n \"connection_profile_id\": \"connection_profile_id\",\n \"user_attribute_profile_id\": \"user_attribute_profile_id\",\n \"allowed_strategies\": [\n \"pingfederate\"\n ],\n \"third_party_client_access\": {\n \"default_value\": \"block\",\n \"allowed_values\": [\n \"allow\"\n ]\n },\n \"connection_deletion_behavior\": \"allow\",\n \"invitation_landing_client_id\": \"invitation_landing_client_id\",\n \"enforce_permission_ceiling\": true,\n \"enforce_self_assignment_restriction\": true\n },\n \"identity_assertion_authorization_grant\": {\n \"active\": true\n },\n \"anonymous_sessions\": {\n \"active\": true\n },\n \"enforce_anon_session_transfer_network_binding\": \"ip\",\n \"third_party_security_mode\": \"strict\",\n \"redirection_policy\": \"allow_always\",\n \"resource_server_identifier\": \"resource_server_identifier\",\n \"async_approval_notification_channels\": [\n \"guardian-push\"\n ],\n \"external_metadata_type\": \"cimd\",\n \"external_metadata_created_by\": \"admin\",\n \"external_metadata_status\": \"available\",\n \"external_client_id\": \"external_client_id\",\n \"jwks_uri\": \"jwks_uri\"\n}", + "body": "{\n \"client_id\": \"client_id\",\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\",\n \"tenant\": \"tenant\",\n \"name\": \"name\",\n \"description\": \"description\",\n \"global\": true,\n \"client_secret\": \"client_secret\",\n \"app_type\": \"native\",\n \"logo_uri\": \"logo_uri\",\n \"is_first_party\": true,\n \"oidc_conformant\": true,\n \"callbacks\": [\n \"callbacks\"\n ],\n \"allowed_origins\": [\n \"allowed_origins\"\n ],\n \"web_origins\": [\n \"web_origins\"\n ],\n \"client_aliases\": [\n \"client_aliases\"\n ],\n \"allowed_clients\": [\n \"allowed_clients\"\n ],\n \"allowed_logout_urls\": [\n \"allowed_logout_urls\"\n ],\n \"session_transfer\": {\n \"can_create_session_transfer_token\": true,\n \"enforce_cascade_revocation\": true,\n \"allowed_authentication_methods\": [\n \"cookie\"\n ],\n \"enforce_device_binding\": \"ip\",\n \"allow_refresh_token\": true,\n \"enforce_online_refresh_tokens\": true,\n \"delegation\": {\n \"allow_delegated_access\": true,\n \"enforce_device_binding\": \"ip\"\n }\n },\n \"oidc_logout\": {\n \"backchannel_logout_urls\": [\n \"backchannel_logout_urls\"\n ],\n \"backchannel_logout_initiators\": {\n \"mode\": \"custom\",\n \"selected_initiators\": [\n \"rp-logout\"\n ]\n },\n \"backchannel_logout_session_metadata\": {\n \"include\": true\n }\n },\n \"grant_types\": [\n \"grant_types\"\n ],\n \"jwt_configuration\": {\n \"lifetime_in_seconds\": 1,\n \"secret_encoded\": true,\n \"scopes\": {\n \"key\": \"value\"\n },\n \"alg\": \"HS256\"\n },\n \"signing_keys\": [\n {\n \"pkcs7\": \"pkcs7\",\n \"cert\": \"cert\",\n \"subject\": \"subject\"\n }\n ],\n \"encryption_key\": {\n \"pub\": \"pub\",\n \"cert\": \"cert\",\n \"subject\": \"subject\"\n },\n \"sso\": true,\n \"sso_disabled\": true,\n \"cross_origin_authentication\": true,\n \"cross_origin_loc\": \"cross_origin_loc\",\n \"custom_login_page_on\": true,\n \"custom_login_page\": \"custom_login_page\",\n \"custom_login_page_preview\": \"custom_login_page_preview\",\n \"form_template\": \"form_template\",\n \"addons\": {\n \"aws\": {\n \"principal\": \"principal\",\n \"role\": \"role\",\n \"lifetime_in_seconds\": 1\n },\n \"azure_blob\": {\n \"accountName\": \"accountName\",\n \"storageAccessKey\": \"storageAccessKey\",\n \"containerName\": \"containerName\",\n \"blobName\": \"blobName\",\n \"expiration\": 1,\n \"signedIdentifier\": \"signedIdentifier\",\n \"blob_read\": true,\n \"blob_write\": true,\n \"blob_delete\": true,\n \"container_read\": true,\n \"container_write\": true,\n \"container_delete\": true,\n \"container_list\": true\n },\n \"azure_sb\": {\n \"namespace\": \"namespace\",\n \"sasKeyName\": \"sasKeyName\",\n \"sasKey\": \"sasKey\",\n \"entityPath\": \"entityPath\",\n \"expiration\": 1\n },\n \"rms\": {\n \"url\": \"url\"\n },\n \"mscrm\": {\n \"url\": \"url\"\n },\n \"slack\": {\n \"team\": \"team\"\n },\n \"sentry\": {\n \"org_slug\": \"org_slug\",\n \"base_url\": \"base_url\"\n },\n \"box\": {\n \"key\": \"value\"\n },\n \"cloudbees\": {\n \"key\": \"value\"\n },\n \"concur\": {\n \"key\": \"value\"\n },\n \"dropbox\": {\n \"key\": \"value\"\n },\n \"echosign\": {\n \"domain\": \"domain\"\n },\n \"egnyte\": {\n \"domain\": \"domain\"\n },\n \"firebase\": {\n \"secret\": \"secret\",\n \"private_key_id\": \"private_key_id\",\n \"private_key\": \"private_key\",\n \"client_email\": \"client_email\",\n \"lifetime_in_seconds\": 1\n },\n \"newrelic\": {\n \"account\": \"account\"\n },\n \"office365\": {\n \"domain\": \"domain\",\n \"connection\": \"connection\"\n },\n \"salesforce\": {\n \"entity_id\": \"entity_id\"\n },\n \"salesforce_api\": {\n \"clientid\": \"clientid\",\n \"principal\": \"principal\",\n \"communityName\": \"communityName\",\n \"community_url_section\": \"community_url_section\"\n },\n \"salesforce_sandbox_api\": {\n \"clientid\": \"clientid\",\n \"principal\": \"principal\",\n \"communityName\": \"communityName\",\n \"community_url_section\": \"community_url_section\"\n },\n \"samlp\": {\n \"mappings\": {\n \"key\": \"value\"\n },\n \"audience\": \"audience\",\n \"recipient\": \"recipient\",\n \"createUpnClaim\": true,\n \"mapUnknownClaimsAsIs\": true,\n \"passthroughClaimsWithNoMapping\": true,\n \"mapIdentities\": true,\n \"signatureAlgorithm\": \"signatureAlgorithm\",\n \"digestAlgorithm\": \"digestAlgorithm\",\n \"issuer\": \"issuer\",\n \"destination\": \"destination\",\n \"lifetimeInSeconds\": 1,\n \"signResponse\": true,\n \"nameIdentifierFormat\": \"nameIdentifierFormat\",\n \"nameIdentifierProbes\": [\n \"nameIdentifierProbes\"\n ],\n \"authnContextClassRef\": \"authnContextClassRef\"\n },\n \"layer\": {\n \"providerId\": \"providerId\",\n \"keyId\": \"keyId\",\n \"privateKey\": \"privateKey\",\n \"principal\": \"principal\",\n \"expiration\": 1\n },\n \"sap_api\": {\n \"clientid\": \"clientid\",\n \"usernameAttribute\": \"usernameAttribute\",\n \"tokenEndpointUrl\": \"tokenEndpointUrl\",\n \"scope\": \"scope\",\n \"servicePassword\": \"servicePassword\",\n \"nameIdentifierFormat\": \"nameIdentifierFormat\"\n },\n \"sharepoint\": {\n \"url\": \"url\",\n \"external_url\": [\n \"external_url\"\n ]\n },\n \"springcm\": {\n \"acsurl\": \"acsurl\"\n },\n \"wams\": {\n \"masterkey\": \"masterkey\"\n },\n \"wsfed\": {\n \"key\": \"value\"\n },\n \"zendesk\": {\n \"accountName\": \"accountName\"\n },\n \"zoom\": {\n \"account\": \"account\"\n },\n \"sso_integration\": {\n \"name\": \"name\",\n \"version\": \"version\"\n }\n },\n \"token_endpoint_auth_method\": \"none\",\n \"is_token_endpoint_ip_header_trusted\": true,\n \"client_metadata\": {\n \"key\": \"value\"\n },\n \"mobile\": {\n \"android\": {\n \"app_package_name\": \"app_package_name\",\n \"sha256_cert_fingerprints\": [\n \"sha256_cert_fingerprints\"\n ]\n },\n \"ios\": {\n \"team_id\": \"team_id\",\n \"app_bundle_identifier\": \"app_bundle_identifier\"\n }\n },\n \"initiate_login_uri\": \"initiate_login_uri\",\n \"native_social_login\": {\n \"apple\": {\n \"enabled\": true\n },\n \"facebook\": {\n \"enabled\": true\n },\n \"google\": {\n \"enabled\": true\n }\n },\n \"fedcm_login\": {\n \"google\": {\n \"is_enabled\": true\n }\n },\n \"refresh_token\": {\n \"rotation_type\": \"rotating\",\n \"expiration_type\": \"expiring\",\n \"leeway\": 1,\n \"token_lifetime\": 1,\n \"infinite_token_lifetime\": true,\n \"idle_token_lifetime\": 1,\n \"infinite_idle_token_lifetime\": true,\n \"policies\": [\n {\n \"audience\": \"audience\",\n \"scope\": [\n \"scope\"\n ]\n }\n ]\n },\n \"default_organization\": {\n \"organization_id\": \"organization_id\",\n \"flows\": [\n \"client_credentials\"\n ]\n },\n \"organization_usage\": \"deny\",\n \"organization_require_behavior\": \"no_prompt\",\n \"organization_discovery_methods\": [\n \"email\"\n ],\n \"client_authentication_methods\": {\n \"private_key_jwt\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"tls_client_auth\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"self_signed_tls_client_auth\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n }\n },\n \"require_pushed_authorization_requests\": true,\n \"require_proof_of_possession\": true,\n \"signed_request_object\": {\n \"required\": true,\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"token_vault_privileged_access\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ],\n \"ip_allowlist\": [\n \"ip_allowlist\"\n ],\n \"grants\": [\n {\n \"connection\": \"connection\",\n \"scopes\": [\n \"scopes\"\n ]\n }\n ]\n },\n \"compliance_level\": \"none\",\n \"skip_non_verifiable_callback_uri_confirmation_prompt\": true,\n \"token_exchange\": {\n \"allow_any_profile_of_type\": [\n \"custom_authentication\"\n ]\n },\n \"par_request_expiry\": 1,\n \"token_quota\": {\n \"client_credentials\": {\n \"enforce\": true,\n \"per_day\": 1,\n \"per_hour\": 1\n }\n },\n \"express_configuration\": {\n \"initiate_login_uri_template\": \"initiate_login_uri_template\",\n \"user_attribute_profile_id\": \"user_attribute_profile_id\",\n \"connection_profile_id\": \"connection_profile_id\",\n \"enable_client\": true,\n \"enable_organization\": true,\n \"linked_clients\": [\n {\n \"client_id\": \"client_id\"\n }\n ],\n \"okta_oin_client_id\": \"okta_oin_client_id\",\n \"admin_login_domain\": \"admin_login_domain\",\n \"oin_submission_id\": \"oin_submission_id\"\n },\n \"b2b_integration_configuration\": {\n \"sso_profiles\": [\n \"sso_profiles\"\n ],\n \"integration_type\": \"custom_auth_server\"\n },\n \"my_organization_configuration\": {\n \"connection_profile_id\": \"connection_profile_id\",\n \"user_attribute_profile_id\": \"user_attribute_profile_id\",\n \"allowed_strategies\": [\n \"pingfederate\"\n ],\n \"third_party_client_access\": {\n \"default_value\": \"block\",\n \"allowed_values\": [\n \"allow\"\n ]\n },\n \"connection_deletion_behavior\": \"allow\",\n \"invitation_landing_client_id\": \"invitation_landing_client_id\",\n \"enforce_permission_ceiling\": true,\n \"enforce_self_assignment_restriction\": true\n },\n \"identity_assertion_authorization_grant\": {\n \"active\": true\n },\n \"anonymous_sessions\": {\n \"active\": true\n },\n \"enforce_anon_session_transfer_network_binding\": \"ip\",\n \"third_party_security_mode\": \"strict\",\n \"oidc_support\": {\n \"is_allowed\": true,\n \"allow_all_scopes\": true,\n \"allowed_scopes\": [\n \"profile\"\n ]\n },\n \"redirection_policy\": \"allow_always\",\n \"resource_server_identifier\": \"resource_server_identifier\",\n \"async_approval_notification_channels\": [\n \"guardian-push\"\n ],\n \"external_metadata_type\": \"cimd\",\n \"external_metadata_created_by\": \"admin\",\n \"external_metadata_status\": \"available\",\n \"agent_id\": \"agent_id\",\n \"external_client_id\": \"external_client_id\",\n \"jwks_uri\": \"jwks_uri\"\n}", "headers": { "Content-Type": "application/json" } @@ -1252,7 +1255,7 @@ }, "response": { "status": 200, - "body": "{\n \"client_id\": \"client_id\",\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\",\n \"tenant\": \"tenant\",\n \"name\": \"name\",\n \"description\": \"description\",\n \"global\": true,\n \"client_secret\": \"client_secret\",\n \"app_type\": \"native\",\n \"logo_uri\": \"logo_uri\",\n \"is_first_party\": true,\n \"oidc_conformant\": true,\n \"callbacks\": [\n \"callbacks\"\n ],\n \"allowed_origins\": [\n \"allowed_origins\"\n ],\n \"web_origins\": [\n \"web_origins\"\n ],\n \"client_aliases\": [\n \"client_aliases\"\n ],\n \"allowed_clients\": [\n \"allowed_clients\"\n ],\n \"allowed_logout_urls\": [\n \"allowed_logout_urls\"\n ],\n \"session_transfer\": {\n \"can_create_session_transfer_token\": true,\n \"enforce_cascade_revocation\": true,\n \"allowed_authentication_methods\": [\n \"cookie\"\n ],\n \"enforce_device_binding\": \"ip\",\n \"allow_refresh_token\": true,\n \"enforce_online_refresh_tokens\": true,\n \"delegation\": {\n \"allow_delegated_access\": true,\n \"enforce_device_binding\": \"ip\"\n }\n },\n \"oidc_logout\": {\n \"backchannel_logout_urls\": [\n \"backchannel_logout_urls\"\n ],\n \"backchannel_logout_initiators\": {\n \"mode\": \"custom\",\n \"selected_initiators\": [\n \"rp-logout\"\n ]\n },\n \"backchannel_logout_session_metadata\": {\n \"include\": true\n }\n },\n \"grant_types\": [\n \"grant_types\"\n ],\n \"jwt_configuration\": {\n \"lifetime_in_seconds\": 1,\n \"secret_encoded\": true,\n \"scopes\": {\n \"key\": \"value\"\n },\n \"alg\": \"HS256\"\n },\n \"signing_keys\": [\n {\n \"pkcs7\": \"pkcs7\",\n \"cert\": \"cert\",\n \"subject\": \"subject\"\n }\n ],\n \"encryption_key\": {\n \"pub\": \"pub\",\n \"cert\": \"cert\",\n \"subject\": \"subject\"\n },\n \"sso\": true,\n \"sso_disabled\": true,\n \"cross_origin_authentication\": true,\n \"cross_origin_loc\": \"cross_origin_loc\",\n \"custom_login_page_on\": true,\n \"custom_login_page\": \"custom_login_page\",\n \"custom_login_page_preview\": \"custom_login_page_preview\",\n \"form_template\": \"form_template\",\n \"addons\": {\n \"aws\": {\n \"principal\": \"principal\",\n \"role\": \"role\",\n \"lifetime_in_seconds\": 1\n },\n \"azure_blob\": {\n \"accountName\": \"accountName\",\n \"storageAccessKey\": \"storageAccessKey\",\n \"containerName\": \"containerName\",\n \"blobName\": \"blobName\",\n \"expiration\": 1,\n \"signedIdentifier\": \"signedIdentifier\",\n \"blob_read\": true,\n \"blob_write\": true,\n \"blob_delete\": true,\n \"container_read\": true,\n \"container_write\": true,\n \"container_delete\": true,\n \"container_list\": true\n },\n \"azure_sb\": {\n \"namespace\": \"namespace\",\n \"sasKeyName\": \"sasKeyName\",\n \"sasKey\": \"sasKey\",\n \"entityPath\": \"entityPath\",\n \"expiration\": 1\n },\n \"rms\": {\n \"url\": \"url\"\n },\n \"mscrm\": {\n \"url\": \"url\"\n },\n \"slack\": {\n \"team\": \"team\"\n },\n \"sentry\": {\n \"org_slug\": \"org_slug\",\n \"base_url\": \"base_url\"\n },\n \"box\": {\n \"key\": \"value\"\n },\n \"cloudbees\": {\n \"key\": \"value\"\n },\n \"concur\": {\n \"key\": \"value\"\n },\n \"dropbox\": {\n \"key\": \"value\"\n },\n \"echosign\": {\n \"domain\": \"domain\"\n },\n \"egnyte\": {\n \"domain\": \"domain\"\n },\n \"firebase\": {\n \"secret\": \"secret\",\n \"private_key_id\": \"private_key_id\",\n \"private_key\": \"private_key\",\n \"client_email\": \"client_email\",\n \"lifetime_in_seconds\": 1\n },\n \"newrelic\": {\n \"account\": \"account\"\n },\n \"office365\": {\n \"domain\": \"domain\",\n \"connection\": \"connection\"\n },\n \"salesforce\": {\n \"entity_id\": \"entity_id\"\n },\n \"salesforce_api\": {\n \"clientid\": \"clientid\",\n \"principal\": \"principal\",\n \"communityName\": \"communityName\",\n \"community_url_section\": \"community_url_section\"\n },\n \"salesforce_sandbox_api\": {\n \"clientid\": \"clientid\",\n \"principal\": \"principal\",\n \"communityName\": \"communityName\",\n \"community_url_section\": \"community_url_section\"\n },\n \"samlp\": {\n \"mappings\": {\n \"key\": \"value\"\n },\n \"audience\": \"audience\",\n \"recipient\": \"recipient\",\n \"createUpnClaim\": true,\n \"mapUnknownClaimsAsIs\": true,\n \"passthroughClaimsWithNoMapping\": true,\n \"mapIdentities\": true,\n \"signatureAlgorithm\": \"signatureAlgorithm\",\n \"digestAlgorithm\": \"digestAlgorithm\",\n \"issuer\": \"issuer\",\n \"destination\": \"destination\",\n \"lifetimeInSeconds\": 1,\n \"signResponse\": true,\n \"nameIdentifierFormat\": \"nameIdentifierFormat\",\n \"nameIdentifierProbes\": [\n \"nameIdentifierProbes\"\n ],\n \"authnContextClassRef\": \"authnContextClassRef\"\n },\n \"layer\": {\n \"providerId\": \"providerId\",\n \"keyId\": \"keyId\",\n \"privateKey\": \"privateKey\",\n \"principal\": \"principal\",\n \"expiration\": 1\n },\n \"sap_api\": {\n \"clientid\": \"clientid\",\n \"usernameAttribute\": \"usernameAttribute\",\n \"tokenEndpointUrl\": \"tokenEndpointUrl\",\n \"scope\": \"scope\",\n \"servicePassword\": \"servicePassword\",\n \"nameIdentifierFormat\": \"nameIdentifierFormat\"\n },\n \"sharepoint\": {\n \"url\": \"url\",\n \"external_url\": [\n \"external_url\"\n ]\n },\n \"springcm\": {\n \"acsurl\": \"acsurl\"\n },\n \"wams\": {\n \"masterkey\": \"masterkey\"\n },\n \"wsfed\": {\n \"key\": \"value\"\n },\n \"zendesk\": {\n \"accountName\": \"accountName\"\n },\n \"zoom\": {\n \"account\": \"account\"\n },\n \"sso_integration\": {\n \"name\": \"name\",\n \"version\": \"version\"\n }\n },\n \"token_endpoint_auth_method\": \"none\",\n \"is_token_endpoint_ip_header_trusted\": true,\n \"client_metadata\": {\n \"key\": \"value\"\n },\n \"mobile\": {\n \"android\": {\n \"app_package_name\": \"app_package_name\",\n \"sha256_cert_fingerprints\": [\n \"sha256_cert_fingerprints\"\n ]\n },\n \"ios\": {\n \"team_id\": \"team_id\",\n \"app_bundle_identifier\": \"app_bundle_identifier\"\n }\n },\n \"initiate_login_uri\": \"initiate_login_uri\",\n \"native_social_login\": {\n \"apple\": {\n \"enabled\": true\n },\n \"facebook\": {\n \"enabled\": true\n },\n \"google\": {\n \"enabled\": true\n }\n },\n \"fedcm_login\": {\n \"google\": {\n \"is_enabled\": true\n }\n },\n \"refresh_token\": {\n \"rotation_type\": \"rotating\",\n \"expiration_type\": \"expiring\",\n \"leeway\": 1,\n \"token_lifetime\": 1,\n \"infinite_token_lifetime\": true,\n \"idle_token_lifetime\": 1,\n \"infinite_idle_token_lifetime\": true,\n \"policies\": [\n {\n \"audience\": \"audience\",\n \"scope\": [\n \"scope\"\n ]\n }\n ]\n },\n \"default_organization\": {\n \"organization_id\": \"organization_id\",\n \"flows\": [\n \"client_credentials\"\n ]\n },\n \"organization_usage\": \"deny\",\n \"organization_require_behavior\": \"no_prompt\",\n \"organization_discovery_methods\": [\n \"email\"\n ],\n \"client_authentication_methods\": {\n \"private_key_jwt\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"tls_client_auth\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"self_signed_tls_client_auth\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n }\n },\n \"require_pushed_authorization_requests\": true,\n \"require_proof_of_possession\": true,\n \"signed_request_object\": {\n \"required\": true,\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"token_vault_privileged_access\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ],\n \"ip_allowlist\": [\n \"ip_allowlist\"\n ],\n \"grants\": [\n {\n \"connection\": \"connection\",\n \"scopes\": [\n \"scopes\"\n ]\n }\n ]\n },\n \"compliance_level\": \"none\",\n \"skip_non_verifiable_callback_uri_confirmation_prompt\": true,\n \"token_exchange\": {\n \"allow_any_profile_of_type\": [\n \"custom_authentication\"\n ]\n },\n \"par_request_expiry\": 1,\n \"token_quota\": {\n \"client_credentials\": {\n \"enforce\": true,\n \"per_day\": 1,\n \"per_hour\": 1\n }\n },\n \"express_configuration\": {\n \"initiate_login_uri_template\": \"initiate_login_uri_template\",\n \"user_attribute_profile_id\": \"user_attribute_profile_id\",\n \"connection_profile_id\": \"connection_profile_id\",\n \"enable_client\": true,\n \"enable_organization\": true,\n \"linked_clients\": [\n {\n \"client_id\": \"client_id\"\n }\n ],\n \"okta_oin_client_id\": \"okta_oin_client_id\",\n \"admin_login_domain\": \"admin_login_domain\",\n \"oin_submission_id\": \"oin_submission_id\"\n },\n \"b2b_integration_configuration\": {\n \"sso_profiles\": [\n \"sso_profiles\"\n ],\n \"integration_type\": \"custom_auth_server\"\n },\n \"my_organization_configuration\": {\n \"connection_profile_id\": \"connection_profile_id\",\n \"user_attribute_profile_id\": \"user_attribute_profile_id\",\n \"allowed_strategies\": [\n \"pingfederate\"\n ],\n \"third_party_client_access\": {\n \"default_value\": \"block\",\n \"allowed_values\": [\n \"allow\"\n ]\n },\n \"connection_deletion_behavior\": \"allow\",\n \"invitation_landing_client_id\": \"invitation_landing_client_id\",\n \"enforce_permission_ceiling\": true,\n \"enforce_self_assignment_restriction\": true\n },\n \"identity_assertion_authorization_grant\": {\n \"active\": true\n },\n \"anonymous_sessions\": {\n \"active\": true\n },\n \"enforce_anon_session_transfer_network_binding\": \"ip\",\n \"third_party_security_mode\": \"strict\",\n \"redirection_policy\": \"allow_always\",\n \"resource_server_identifier\": \"resource_server_identifier\",\n \"async_approval_notification_channels\": [\n \"guardian-push\"\n ],\n \"external_metadata_type\": \"cimd\",\n \"external_metadata_created_by\": \"admin\",\n \"external_metadata_status\": \"available\",\n \"external_client_id\": \"external_client_id\",\n \"jwks_uri\": \"jwks_uri\"\n}", + "body": "{\n \"client_id\": \"client_id\",\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\",\n \"tenant\": \"tenant\",\n \"name\": \"name\",\n \"description\": \"description\",\n \"global\": true,\n \"client_secret\": \"client_secret\",\n \"app_type\": \"native\",\n \"logo_uri\": \"logo_uri\",\n \"is_first_party\": true,\n \"oidc_conformant\": true,\n \"callbacks\": [\n \"callbacks\"\n ],\n \"allowed_origins\": [\n \"allowed_origins\"\n ],\n \"web_origins\": [\n \"web_origins\"\n ],\n \"client_aliases\": [\n \"client_aliases\"\n ],\n \"allowed_clients\": [\n \"allowed_clients\"\n ],\n \"allowed_logout_urls\": [\n \"allowed_logout_urls\"\n ],\n \"session_transfer\": {\n \"can_create_session_transfer_token\": true,\n \"enforce_cascade_revocation\": true,\n \"allowed_authentication_methods\": [\n \"cookie\"\n ],\n \"enforce_device_binding\": \"ip\",\n \"allow_refresh_token\": true,\n \"enforce_online_refresh_tokens\": true,\n \"delegation\": {\n \"allow_delegated_access\": true,\n \"enforce_device_binding\": \"ip\"\n }\n },\n \"oidc_logout\": {\n \"backchannel_logout_urls\": [\n \"backchannel_logout_urls\"\n ],\n \"backchannel_logout_initiators\": {\n \"mode\": \"custom\",\n \"selected_initiators\": [\n \"rp-logout\"\n ]\n },\n \"backchannel_logout_session_metadata\": {\n \"include\": true\n }\n },\n \"grant_types\": [\n \"grant_types\"\n ],\n \"jwt_configuration\": {\n \"lifetime_in_seconds\": 1,\n \"secret_encoded\": true,\n \"scopes\": {\n \"key\": \"value\"\n },\n \"alg\": \"HS256\"\n },\n \"signing_keys\": [\n {\n \"pkcs7\": \"pkcs7\",\n \"cert\": \"cert\",\n \"subject\": \"subject\"\n }\n ],\n \"encryption_key\": {\n \"pub\": \"pub\",\n \"cert\": \"cert\",\n \"subject\": \"subject\"\n },\n \"sso\": true,\n \"sso_disabled\": true,\n \"cross_origin_authentication\": true,\n \"cross_origin_loc\": \"cross_origin_loc\",\n \"custom_login_page_on\": true,\n \"custom_login_page\": \"custom_login_page\",\n \"custom_login_page_preview\": \"custom_login_page_preview\",\n \"form_template\": \"form_template\",\n \"addons\": {\n \"aws\": {\n \"principal\": \"principal\",\n \"role\": \"role\",\n \"lifetime_in_seconds\": 1\n },\n \"azure_blob\": {\n \"accountName\": \"accountName\",\n \"storageAccessKey\": \"storageAccessKey\",\n \"containerName\": \"containerName\",\n \"blobName\": \"blobName\",\n \"expiration\": 1,\n \"signedIdentifier\": \"signedIdentifier\",\n \"blob_read\": true,\n \"blob_write\": true,\n \"blob_delete\": true,\n \"container_read\": true,\n \"container_write\": true,\n \"container_delete\": true,\n \"container_list\": true\n },\n \"azure_sb\": {\n \"namespace\": \"namespace\",\n \"sasKeyName\": \"sasKeyName\",\n \"sasKey\": \"sasKey\",\n \"entityPath\": \"entityPath\",\n \"expiration\": 1\n },\n \"rms\": {\n \"url\": \"url\"\n },\n \"mscrm\": {\n \"url\": \"url\"\n },\n \"slack\": {\n \"team\": \"team\"\n },\n \"sentry\": {\n \"org_slug\": \"org_slug\",\n \"base_url\": \"base_url\"\n },\n \"box\": {\n \"key\": \"value\"\n },\n \"cloudbees\": {\n \"key\": \"value\"\n },\n \"concur\": {\n \"key\": \"value\"\n },\n \"dropbox\": {\n \"key\": \"value\"\n },\n \"echosign\": {\n \"domain\": \"domain\"\n },\n \"egnyte\": {\n \"domain\": \"domain\"\n },\n \"firebase\": {\n \"secret\": \"secret\",\n \"private_key_id\": \"private_key_id\",\n \"private_key\": \"private_key\",\n \"client_email\": \"client_email\",\n \"lifetime_in_seconds\": 1\n },\n \"newrelic\": {\n \"account\": \"account\"\n },\n \"office365\": {\n \"domain\": \"domain\",\n \"connection\": \"connection\"\n },\n \"salesforce\": {\n \"entity_id\": \"entity_id\"\n },\n \"salesforce_api\": {\n \"clientid\": \"clientid\",\n \"principal\": \"principal\",\n \"communityName\": \"communityName\",\n \"community_url_section\": \"community_url_section\"\n },\n \"salesforce_sandbox_api\": {\n \"clientid\": \"clientid\",\n \"principal\": \"principal\",\n \"communityName\": \"communityName\",\n \"community_url_section\": \"community_url_section\"\n },\n \"samlp\": {\n \"mappings\": {\n \"key\": \"value\"\n },\n \"audience\": \"audience\",\n \"recipient\": \"recipient\",\n \"createUpnClaim\": true,\n \"mapUnknownClaimsAsIs\": true,\n \"passthroughClaimsWithNoMapping\": true,\n \"mapIdentities\": true,\n \"signatureAlgorithm\": \"signatureAlgorithm\",\n \"digestAlgorithm\": \"digestAlgorithm\",\n \"issuer\": \"issuer\",\n \"destination\": \"destination\",\n \"lifetimeInSeconds\": 1,\n \"signResponse\": true,\n \"nameIdentifierFormat\": \"nameIdentifierFormat\",\n \"nameIdentifierProbes\": [\n \"nameIdentifierProbes\"\n ],\n \"authnContextClassRef\": \"authnContextClassRef\"\n },\n \"layer\": {\n \"providerId\": \"providerId\",\n \"keyId\": \"keyId\",\n \"privateKey\": \"privateKey\",\n \"principal\": \"principal\",\n \"expiration\": 1\n },\n \"sap_api\": {\n \"clientid\": \"clientid\",\n \"usernameAttribute\": \"usernameAttribute\",\n \"tokenEndpointUrl\": \"tokenEndpointUrl\",\n \"scope\": \"scope\",\n \"servicePassword\": \"servicePassword\",\n \"nameIdentifierFormat\": \"nameIdentifierFormat\"\n },\n \"sharepoint\": {\n \"url\": \"url\",\n \"external_url\": [\n \"external_url\"\n ]\n },\n \"springcm\": {\n \"acsurl\": \"acsurl\"\n },\n \"wams\": {\n \"masterkey\": \"masterkey\"\n },\n \"wsfed\": {\n \"key\": \"value\"\n },\n \"zendesk\": {\n \"accountName\": \"accountName\"\n },\n \"zoom\": {\n \"account\": \"account\"\n },\n \"sso_integration\": {\n \"name\": \"name\",\n \"version\": \"version\"\n }\n },\n \"token_endpoint_auth_method\": \"none\",\n \"is_token_endpoint_ip_header_trusted\": true,\n \"client_metadata\": {\n \"key\": \"value\"\n },\n \"mobile\": {\n \"android\": {\n \"app_package_name\": \"app_package_name\",\n \"sha256_cert_fingerprints\": [\n \"sha256_cert_fingerprints\"\n ]\n },\n \"ios\": {\n \"team_id\": \"team_id\",\n \"app_bundle_identifier\": \"app_bundle_identifier\"\n }\n },\n \"initiate_login_uri\": \"initiate_login_uri\",\n \"native_social_login\": {\n \"apple\": {\n \"enabled\": true\n },\n \"facebook\": {\n \"enabled\": true\n },\n \"google\": {\n \"enabled\": true\n }\n },\n \"fedcm_login\": {\n \"google\": {\n \"is_enabled\": true\n }\n },\n \"refresh_token\": {\n \"rotation_type\": \"rotating\",\n \"expiration_type\": \"expiring\",\n \"leeway\": 1,\n \"token_lifetime\": 1,\n \"infinite_token_lifetime\": true,\n \"idle_token_lifetime\": 1,\n \"infinite_idle_token_lifetime\": true,\n \"policies\": [\n {\n \"audience\": \"audience\",\n \"scope\": [\n \"scope\"\n ]\n }\n ]\n },\n \"default_organization\": {\n \"organization_id\": \"organization_id\",\n \"flows\": [\n \"client_credentials\"\n ]\n },\n \"organization_usage\": \"deny\",\n \"organization_require_behavior\": \"no_prompt\",\n \"organization_discovery_methods\": [\n \"email\"\n ],\n \"client_authentication_methods\": {\n \"private_key_jwt\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"tls_client_auth\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"self_signed_tls_client_auth\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n }\n },\n \"require_pushed_authorization_requests\": true,\n \"require_proof_of_possession\": true,\n \"signed_request_object\": {\n \"required\": true,\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"token_vault_privileged_access\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ],\n \"ip_allowlist\": [\n \"ip_allowlist\"\n ],\n \"grants\": [\n {\n \"connection\": \"connection\",\n \"scopes\": [\n \"scopes\"\n ]\n }\n ]\n },\n \"compliance_level\": \"none\",\n \"skip_non_verifiable_callback_uri_confirmation_prompt\": true,\n \"token_exchange\": {\n \"allow_any_profile_of_type\": [\n \"custom_authentication\"\n ]\n },\n \"par_request_expiry\": 1,\n \"token_quota\": {\n \"client_credentials\": {\n \"enforce\": true,\n \"per_day\": 1,\n \"per_hour\": 1\n }\n },\n \"express_configuration\": {\n \"initiate_login_uri_template\": \"initiate_login_uri_template\",\n \"user_attribute_profile_id\": \"user_attribute_profile_id\",\n \"connection_profile_id\": \"connection_profile_id\",\n \"enable_client\": true,\n \"enable_organization\": true,\n \"linked_clients\": [\n {\n \"client_id\": \"client_id\"\n }\n ],\n \"okta_oin_client_id\": \"okta_oin_client_id\",\n \"admin_login_domain\": \"admin_login_domain\",\n \"oin_submission_id\": \"oin_submission_id\"\n },\n \"b2b_integration_configuration\": {\n \"sso_profiles\": [\n \"sso_profiles\"\n ],\n \"integration_type\": \"custom_auth_server\"\n },\n \"my_organization_configuration\": {\n \"connection_profile_id\": \"connection_profile_id\",\n \"user_attribute_profile_id\": \"user_attribute_profile_id\",\n \"allowed_strategies\": [\n \"pingfederate\"\n ],\n \"third_party_client_access\": {\n \"default_value\": \"block\",\n \"allowed_values\": [\n \"allow\"\n ]\n },\n \"connection_deletion_behavior\": \"allow\",\n \"invitation_landing_client_id\": \"invitation_landing_client_id\",\n \"enforce_permission_ceiling\": true,\n \"enforce_self_assignment_restriction\": true\n },\n \"identity_assertion_authorization_grant\": {\n \"active\": true\n },\n \"anonymous_sessions\": {\n \"active\": true\n },\n \"enforce_anon_session_transfer_network_binding\": \"ip\",\n \"third_party_security_mode\": \"strict\",\n \"oidc_support\": {\n \"is_allowed\": true,\n \"allow_all_scopes\": true,\n \"allowed_scopes\": [\n \"profile\"\n ]\n },\n \"redirection_policy\": \"allow_always\",\n \"resource_server_identifier\": \"resource_server_identifier\",\n \"async_approval_notification_channels\": [\n \"guardian-push\"\n ],\n \"external_metadata_type\": \"cimd\",\n \"external_metadata_created_by\": \"admin\",\n \"external_metadata_status\": \"available\",\n \"agent_id\": \"agent_id\",\n \"external_client_id\": \"external_client_id\",\n \"jwks_uri\": \"jwks_uri\"\n}", "headers": { "Content-Type": "application/json" } @@ -1288,7 +1291,7 @@ }, "response": { "status": 200, - "body": "{\n \"client_id\": \"client_id\",\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\",\n \"tenant\": \"tenant\",\n \"name\": \"name\",\n \"description\": \"description\",\n \"global\": true,\n \"client_secret\": \"client_secret\",\n \"app_type\": \"native\",\n \"logo_uri\": \"logo_uri\",\n \"is_first_party\": true,\n \"oidc_conformant\": true,\n \"callbacks\": [\n \"callbacks\"\n ],\n \"allowed_origins\": [\n \"allowed_origins\"\n ],\n \"web_origins\": [\n \"web_origins\"\n ],\n \"client_aliases\": [\n \"client_aliases\"\n ],\n \"allowed_clients\": [\n \"allowed_clients\"\n ],\n \"allowed_logout_urls\": [\n \"allowed_logout_urls\"\n ],\n \"session_transfer\": {\n \"can_create_session_transfer_token\": true,\n \"enforce_cascade_revocation\": true,\n \"allowed_authentication_methods\": [\n \"cookie\"\n ],\n \"enforce_device_binding\": \"ip\",\n \"allow_refresh_token\": true,\n \"enforce_online_refresh_tokens\": true,\n \"delegation\": {\n \"allow_delegated_access\": true,\n \"enforce_device_binding\": \"ip\"\n }\n },\n \"oidc_logout\": {\n \"backchannel_logout_urls\": [\n \"backchannel_logout_urls\"\n ],\n \"backchannel_logout_initiators\": {\n \"mode\": \"custom\",\n \"selected_initiators\": [\n \"rp-logout\"\n ]\n },\n \"backchannel_logout_session_metadata\": {\n \"include\": true\n }\n },\n \"grant_types\": [\n \"grant_types\"\n ],\n \"jwt_configuration\": {\n \"lifetime_in_seconds\": 1,\n \"secret_encoded\": true,\n \"scopes\": {\n \"key\": \"value\"\n },\n \"alg\": \"HS256\"\n },\n \"signing_keys\": [\n {\n \"pkcs7\": \"pkcs7\",\n \"cert\": \"cert\",\n \"subject\": \"subject\"\n }\n ],\n \"encryption_key\": {\n \"pub\": \"pub\",\n \"cert\": \"cert\",\n \"subject\": \"subject\"\n },\n \"sso\": true,\n \"sso_disabled\": true,\n \"cross_origin_authentication\": true,\n \"cross_origin_loc\": \"cross_origin_loc\",\n \"custom_login_page_on\": true,\n \"custom_login_page\": \"custom_login_page\",\n \"custom_login_page_preview\": \"custom_login_page_preview\",\n \"form_template\": \"form_template\",\n \"addons\": {\n \"aws\": {\n \"principal\": \"principal\",\n \"role\": \"role\",\n \"lifetime_in_seconds\": 1\n },\n \"azure_blob\": {\n \"accountName\": \"accountName\",\n \"storageAccessKey\": \"storageAccessKey\",\n \"containerName\": \"containerName\",\n \"blobName\": \"blobName\",\n \"expiration\": 1,\n \"signedIdentifier\": \"signedIdentifier\",\n \"blob_read\": true,\n \"blob_write\": true,\n \"blob_delete\": true,\n \"container_read\": true,\n \"container_write\": true,\n \"container_delete\": true,\n \"container_list\": true\n },\n \"azure_sb\": {\n \"namespace\": \"namespace\",\n \"sasKeyName\": \"sasKeyName\",\n \"sasKey\": \"sasKey\",\n \"entityPath\": \"entityPath\",\n \"expiration\": 1\n },\n \"rms\": {\n \"url\": \"url\"\n },\n \"mscrm\": {\n \"url\": \"url\"\n },\n \"slack\": {\n \"team\": \"team\"\n },\n \"sentry\": {\n \"org_slug\": \"org_slug\",\n \"base_url\": \"base_url\"\n },\n \"box\": {\n \"key\": \"value\"\n },\n \"cloudbees\": {\n \"key\": \"value\"\n },\n \"concur\": {\n \"key\": \"value\"\n },\n \"dropbox\": {\n \"key\": \"value\"\n },\n \"echosign\": {\n \"domain\": \"domain\"\n },\n \"egnyte\": {\n \"domain\": \"domain\"\n },\n \"firebase\": {\n \"secret\": \"secret\",\n \"private_key_id\": \"private_key_id\",\n \"private_key\": \"private_key\",\n \"client_email\": \"client_email\",\n \"lifetime_in_seconds\": 1\n },\n \"newrelic\": {\n \"account\": \"account\"\n },\n \"office365\": {\n \"domain\": \"domain\",\n \"connection\": \"connection\"\n },\n \"salesforce\": {\n \"entity_id\": \"entity_id\"\n },\n \"salesforce_api\": {\n \"clientid\": \"clientid\",\n \"principal\": \"principal\",\n \"communityName\": \"communityName\",\n \"community_url_section\": \"community_url_section\"\n },\n \"salesforce_sandbox_api\": {\n \"clientid\": \"clientid\",\n \"principal\": \"principal\",\n \"communityName\": \"communityName\",\n \"community_url_section\": \"community_url_section\"\n },\n \"samlp\": {\n \"mappings\": {\n \"key\": \"value\"\n },\n \"audience\": \"audience\",\n \"recipient\": \"recipient\",\n \"createUpnClaim\": true,\n \"mapUnknownClaimsAsIs\": true,\n \"passthroughClaimsWithNoMapping\": true,\n \"mapIdentities\": true,\n \"signatureAlgorithm\": \"signatureAlgorithm\",\n \"digestAlgorithm\": \"digestAlgorithm\",\n \"issuer\": \"issuer\",\n \"destination\": \"destination\",\n \"lifetimeInSeconds\": 1,\n \"signResponse\": true,\n \"nameIdentifierFormat\": \"nameIdentifierFormat\",\n \"nameIdentifierProbes\": [\n \"nameIdentifierProbes\"\n ],\n \"authnContextClassRef\": \"authnContextClassRef\"\n },\n \"layer\": {\n \"providerId\": \"providerId\",\n \"keyId\": \"keyId\",\n \"privateKey\": \"privateKey\",\n \"principal\": \"principal\",\n \"expiration\": 1\n },\n \"sap_api\": {\n \"clientid\": \"clientid\",\n \"usernameAttribute\": \"usernameAttribute\",\n \"tokenEndpointUrl\": \"tokenEndpointUrl\",\n \"scope\": \"scope\",\n \"servicePassword\": \"servicePassword\",\n \"nameIdentifierFormat\": \"nameIdentifierFormat\"\n },\n \"sharepoint\": {\n \"url\": \"url\",\n \"external_url\": [\n \"external_url\"\n ]\n },\n \"springcm\": {\n \"acsurl\": \"acsurl\"\n },\n \"wams\": {\n \"masterkey\": \"masterkey\"\n },\n \"wsfed\": {\n \"key\": \"value\"\n },\n \"zendesk\": {\n \"accountName\": \"accountName\"\n },\n \"zoom\": {\n \"account\": \"account\"\n },\n \"sso_integration\": {\n \"name\": \"name\",\n \"version\": \"version\"\n }\n },\n \"token_endpoint_auth_method\": \"none\",\n \"is_token_endpoint_ip_header_trusted\": true,\n \"client_metadata\": {\n \"key\": \"value\"\n },\n \"mobile\": {\n \"android\": {\n \"app_package_name\": \"app_package_name\",\n \"sha256_cert_fingerprints\": [\n \"sha256_cert_fingerprints\"\n ]\n },\n \"ios\": {\n \"team_id\": \"team_id\",\n \"app_bundle_identifier\": \"app_bundle_identifier\"\n }\n },\n \"initiate_login_uri\": \"initiate_login_uri\",\n \"native_social_login\": {\n \"apple\": {\n \"enabled\": true\n },\n \"facebook\": {\n \"enabled\": true\n },\n \"google\": {\n \"enabled\": true\n }\n },\n \"fedcm_login\": {\n \"google\": {\n \"is_enabled\": true\n }\n },\n \"refresh_token\": {\n \"rotation_type\": \"rotating\",\n \"expiration_type\": \"expiring\",\n \"leeway\": 1,\n \"token_lifetime\": 1,\n \"infinite_token_lifetime\": true,\n \"idle_token_lifetime\": 1,\n \"infinite_idle_token_lifetime\": true,\n \"policies\": [\n {\n \"audience\": \"audience\",\n \"scope\": [\n \"scope\"\n ]\n }\n ]\n },\n \"default_organization\": {\n \"organization_id\": \"organization_id\",\n \"flows\": [\n \"client_credentials\"\n ]\n },\n \"organization_usage\": \"deny\",\n \"organization_require_behavior\": \"no_prompt\",\n \"organization_discovery_methods\": [\n \"email\"\n ],\n \"client_authentication_methods\": {\n \"private_key_jwt\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"tls_client_auth\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"self_signed_tls_client_auth\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n }\n },\n \"require_pushed_authorization_requests\": true,\n \"require_proof_of_possession\": true,\n \"signed_request_object\": {\n \"required\": true,\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"token_vault_privileged_access\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ],\n \"ip_allowlist\": [\n \"ip_allowlist\"\n ],\n \"grants\": [\n {\n \"connection\": \"connection\",\n \"scopes\": [\n \"scopes\"\n ]\n }\n ]\n },\n \"compliance_level\": \"none\",\n \"skip_non_verifiable_callback_uri_confirmation_prompt\": true,\n \"token_exchange\": {\n \"allow_any_profile_of_type\": [\n \"custom_authentication\"\n ]\n },\n \"par_request_expiry\": 1,\n \"token_quota\": {\n \"client_credentials\": {\n \"enforce\": true,\n \"per_day\": 1,\n \"per_hour\": 1\n }\n },\n \"express_configuration\": {\n \"initiate_login_uri_template\": \"initiate_login_uri_template\",\n \"user_attribute_profile_id\": \"user_attribute_profile_id\",\n \"connection_profile_id\": \"connection_profile_id\",\n \"enable_client\": true,\n \"enable_organization\": true,\n \"linked_clients\": [\n {\n \"client_id\": \"client_id\"\n }\n ],\n \"okta_oin_client_id\": \"okta_oin_client_id\",\n \"admin_login_domain\": \"admin_login_domain\",\n \"oin_submission_id\": \"oin_submission_id\"\n },\n \"b2b_integration_configuration\": {\n \"sso_profiles\": [\n \"sso_profiles\"\n ],\n \"integration_type\": \"custom_auth_server\"\n },\n \"my_organization_configuration\": {\n \"connection_profile_id\": \"connection_profile_id\",\n \"user_attribute_profile_id\": \"user_attribute_profile_id\",\n \"allowed_strategies\": [\n \"pingfederate\"\n ],\n \"third_party_client_access\": {\n \"default_value\": \"block\",\n \"allowed_values\": [\n \"allow\"\n ]\n },\n \"connection_deletion_behavior\": \"allow\",\n \"invitation_landing_client_id\": \"invitation_landing_client_id\",\n \"enforce_permission_ceiling\": true,\n \"enforce_self_assignment_restriction\": true\n },\n \"identity_assertion_authorization_grant\": {\n \"active\": true\n },\n \"anonymous_sessions\": {\n \"active\": true\n },\n \"enforce_anon_session_transfer_network_binding\": \"ip\",\n \"third_party_security_mode\": \"strict\",\n \"redirection_policy\": \"allow_always\",\n \"resource_server_identifier\": \"resource_server_identifier\",\n \"async_approval_notification_channels\": [\n \"guardian-push\"\n ],\n \"external_metadata_type\": \"cimd\",\n \"external_metadata_created_by\": \"admin\",\n \"external_metadata_status\": \"available\",\n \"external_client_id\": \"external_client_id\",\n \"jwks_uri\": \"jwks_uri\"\n}", + "body": "{\n \"client_id\": \"client_id\",\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\",\n \"tenant\": \"tenant\",\n \"name\": \"name\",\n \"description\": \"description\",\n \"global\": true,\n \"client_secret\": \"client_secret\",\n \"app_type\": \"native\",\n \"logo_uri\": \"logo_uri\",\n \"is_first_party\": true,\n \"oidc_conformant\": true,\n \"callbacks\": [\n \"callbacks\"\n ],\n \"allowed_origins\": [\n \"allowed_origins\"\n ],\n \"web_origins\": [\n \"web_origins\"\n ],\n \"client_aliases\": [\n \"client_aliases\"\n ],\n \"allowed_clients\": [\n \"allowed_clients\"\n ],\n \"allowed_logout_urls\": [\n \"allowed_logout_urls\"\n ],\n \"session_transfer\": {\n \"can_create_session_transfer_token\": true,\n \"enforce_cascade_revocation\": true,\n \"allowed_authentication_methods\": [\n \"cookie\"\n ],\n \"enforce_device_binding\": \"ip\",\n \"allow_refresh_token\": true,\n \"enforce_online_refresh_tokens\": true,\n \"delegation\": {\n \"allow_delegated_access\": true,\n \"enforce_device_binding\": \"ip\"\n }\n },\n \"oidc_logout\": {\n \"backchannel_logout_urls\": [\n \"backchannel_logout_urls\"\n ],\n \"backchannel_logout_initiators\": {\n \"mode\": \"custom\",\n \"selected_initiators\": [\n \"rp-logout\"\n ]\n },\n \"backchannel_logout_session_metadata\": {\n \"include\": true\n }\n },\n \"grant_types\": [\n \"grant_types\"\n ],\n \"jwt_configuration\": {\n \"lifetime_in_seconds\": 1,\n \"secret_encoded\": true,\n \"scopes\": {\n \"key\": \"value\"\n },\n \"alg\": \"HS256\"\n },\n \"signing_keys\": [\n {\n \"pkcs7\": \"pkcs7\",\n \"cert\": \"cert\",\n \"subject\": \"subject\"\n }\n ],\n \"encryption_key\": {\n \"pub\": \"pub\",\n \"cert\": \"cert\",\n \"subject\": \"subject\"\n },\n \"sso\": true,\n \"sso_disabled\": true,\n \"cross_origin_authentication\": true,\n \"cross_origin_loc\": \"cross_origin_loc\",\n \"custom_login_page_on\": true,\n \"custom_login_page\": \"custom_login_page\",\n \"custom_login_page_preview\": \"custom_login_page_preview\",\n \"form_template\": \"form_template\",\n \"addons\": {\n \"aws\": {\n \"principal\": \"principal\",\n \"role\": \"role\",\n \"lifetime_in_seconds\": 1\n },\n \"azure_blob\": {\n \"accountName\": \"accountName\",\n \"storageAccessKey\": \"storageAccessKey\",\n \"containerName\": \"containerName\",\n \"blobName\": \"blobName\",\n \"expiration\": 1,\n \"signedIdentifier\": \"signedIdentifier\",\n \"blob_read\": true,\n \"blob_write\": true,\n \"blob_delete\": true,\n \"container_read\": true,\n \"container_write\": true,\n \"container_delete\": true,\n \"container_list\": true\n },\n \"azure_sb\": {\n \"namespace\": \"namespace\",\n \"sasKeyName\": \"sasKeyName\",\n \"sasKey\": \"sasKey\",\n \"entityPath\": \"entityPath\",\n \"expiration\": 1\n },\n \"rms\": {\n \"url\": \"url\"\n },\n \"mscrm\": {\n \"url\": \"url\"\n },\n \"slack\": {\n \"team\": \"team\"\n },\n \"sentry\": {\n \"org_slug\": \"org_slug\",\n \"base_url\": \"base_url\"\n },\n \"box\": {\n \"key\": \"value\"\n },\n \"cloudbees\": {\n \"key\": \"value\"\n },\n \"concur\": {\n \"key\": \"value\"\n },\n \"dropbox\": {\n \"key\": \"value\"\n },\n \"echosign\": {\n \"domain\": \"domain\"\n },\n \"egnyte\": {\n \"domain\": \"domain\"\n },\n \"firebase\": {\n \"secret\": \"secret\",\n \"private_key_id\": \"private_key_id\",\n \"private_key\": \"private_key\",\n \"client_email\": \"client_email\",\n \"lifetime_in_seconds\": 1\n },\n \"newrelic\": {\n \"account\": \"account\"\n },\n \"office365\": {\n \"domain\": \"domain\",\n \"connection\": \"connection\"\n },\n \"salesforce\": {\n \"entity_id\": \"entity_id\"\n },\n \"salesforce_api\": {\n \"clientid\": \"clientid\",\n \"principal\": \"principal\",\n \"communityName\": \"communityName\",\n \"community_url_section\": \"community_url_section\"\n },\n \"salesforce_sandbox_api\": {\n \"clientid\": \"clientid\",\n \"principal\": \"principal\",\n \"communityName\": \"communityName\",\n \"community_url_section\": \"community_url_section\"\n },\n \"samlp\": {\n \"mappings\": {\n \"key\": \"value\"\n },\n \"audience\": \"audience\",\n \"recipient\": \"recipient\",\n \"createUpnClaim\": true,\n \"mapUnknownClaimsAsIs\": true,\n \"passthroughClaimsWithNoMapping\": true,\n \"mapIdentities\": true,\n \"signatureAlgorithm\": \"signatureAlgorithm\",\n \"digestAlgorithm\": \"digestAlgorithm\",\n \"issuer\": \"issuer\",\n \"destination\": \"destination\",\n \"lifetimeInSeconds\": 1,\n \"signResponse\": true,\n \"nameIdentifierFormat\": \"nameIdentifierFormat\",\n \"nameIdentifierProbes\": [\n \"nameIdentifierProbes\"\n ],\n \"authnContextClassRef\": \"authnContextClassRef\"\n },\n \"layer\": {\n \"providerId\": \"providerId\",\n \"keyId\": \"keyId\",\n \"privateKey\": \"privateKey\",\n \"principal\": \"principal\",\n \"expiration\": 1\n },\n \"sap_api\": {\n \"clientid\": \"clientid\",\n \"usernameAttribute\": \"usernameAttribute\",\n \"tokenEndpointUrl\": \"tokenEndpointUrl\",\n \"scope\": \"scope\",\n \"servicePassword\": \"servicePassword\",\n \"nameIdentifierFormat\": \"nameIdentifierFormat\"\n },\n \"sharepoint\": {\n \"url\": \"url\",\n \"external_url\": [\n \"external_url\"\n ]\n },\n \"springcm\": {\n \"acsurl\": \"acsurl\"\n },\n \"wams\": {\n \"masterkey\": \"masterkey\"\n },\n \"wsfed\": {\n \"key\": \"value\"\n },\n \"zendesk\": {\n \"accountName\": \"accountName\"\n },\n \"zoom\": {\n \"account\": \"account\"\n },\n \"sso_integration\": {\n \"name\": \"name\",\n \"version\": \"version\"\n }\n },\n \"token_endpoint_auth_method\": \"none\",\n \"is_token_endpoint_ip_header_trusted\": true,\n \"client_metadata\": {\n \"key\": \"value\"\n },\n \"mobile\": {\n \"android\": {\n \"app_package_name\": \"app_package_name\",\n \"sha256_cert_fingerprints\": [\n \"sha256_cert_fingerprints\"\n ]\n },\n \"ios\": {\n \"team_id\": \"team_id\",\n \"app_bundle_identifier\": \"app_bundle_identifier\"\n }\n },\n \"initiate_login_uri\": \"initiate_login_uri\",\n \"native_social_login\": {\n \"apple\": {\n \"enabled\": true\n },\n \"facebook\": {\n \"enabled\": true\n },\n \"google\": {\n \"enabled\": true\n }\n },\n \"fedcm_login\": {\n \"google\": {\n \"is_enabled\": true\n }\n },\n \"refresh_token\": {\n \"rotation_type\": \"rotating\",\n \"expiration_type\": \"expiring\",\n \"leeway\": 1,\n \"token_lifetime\": 1,\n \"infinite_token_lifetime\": true,\n \"idle_token_lifetime\": 1,\n \"infinite_idle_token_lifetime\": true,\n \"policies\": [\n {\n \"audience\": \"audience\",\n \"scope\": [\n \"scope\"\n ]\n }\n ]\n },\n \"default_organization\": {\n \"organization_id\": \"organization_id\",\n \"flows\": [\n \"client_credentials\"\n ]\n },\n \"organization_usage\": \"deny\",\n \"organization_require_behavior\": \"no_prompt\",\n \"organization_discovery_methods\": [\n \"email\"\n ],\n \"client_authentication_methods\": {\n \"private_key_jwt\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"tls_client_auth\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"self_signed_tls_client_auth\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n }\n },\n \"require_pushed_authorization_requests\": true,\n \"require_proof_of_possession\": true,\n \"signed_request_object\": {\n \"required\": true,\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ]\n },\n \"token_vault_privileged_access\": {\n \"credentials\": [\n {\n \"id\": \"id\"\n }\n ],\n \"ip_allowlist\": [\n \"ip_allowlist\"\n ],\n \"grants\": [\n {\n \"connection\": \"connection\",\n \"scopes\": [\n \"scopes\"\n ]\n }\n ]\n },\n \"compliance_level\": \"none\",\n \"skip_non_verifiable_callback_uri_confirmation_prompt\": true,\n \"token_exchange\": {\n \"allow_any_profile_of_type\": [\n \"custom_authentication\"\n ]\n },\n \"par_request_expiry\": 1,\n \"token_quota\": {\n \"client_credentials\": {\n \"enforce\": true,\n \"per_day\": 1,\n \"per_hour\": 1\n }\n },\n \"express_configuration\": {\n \"initiate_login_uri_template\": \"initiate_login_uri_template\",\n \"user_attribute_profile_id\": \"user_attribute_profile_id\",\n \"connection_profile_id\": \"connection_profile_id\",\n \"enable_client\": true,\n \"enable_organization\": true,\n \"linked_clients\": [\n {\n \"client_id\": \"client_id\"\n }\n ],\n \"okta_oin_client_id\": \"okta_oin_client_id\",\n \"admin_login_domain\": \"admin_login_domain\",\n \"oin_submission_id\": \"oin_submission_id\"\n },\n \"b2b_integration_configuration\": {\n \"sso_profiles\": [\n \"sso_profiles\"\n ],\n \"integration_type\": \"custom_auth_server\"\n },\n \"my_organization_configuration\": {\n \"connection_profile_id\": \"connection_profile_id\",\n \"user_attribute_profile_id\": \"user_attribute_profile_id\",\n \"allowed_strategies\": [\n \"pingfederate\"\n ],\n \"third_party_client_access\": {\n \"default_value\": \"block\",\n \"allowed_values\": [\n \"allow\"\n ]\n },\n \"connection_deletion_behavior\": \"allow\",\n \"invitation_landing_client_id\": \"invitation_landing_client_id\",\n \"enforce_permission_ceiling\": true,\n \"enforce_self_assignment_restriction\": true\n },\n \"identity_assertion_authorization_grant\": {\n \"active\": true\n },\n \"anonymous_sessions\": {\n \"active\": true\n },\n \"enforce_anon_session_transfer_network_binding\": \"ip\",\n \"third_party_security_mode\": \"strict\",\n \"oidc_support\": {\n \"is_allowed\": true,\n \"allow_all_scopes\": true,\n \"allowed_scopes\": [\n \"profile\"\n ]\n },\n \"redirection_policy\": \"allow_always\",\n \"resource_server_identifier\": \"resource_server_identifier\",\n \"async_approval_notification_channels\": [\n \"guardian-push\"\n ],\n \"external_metadata_type\": \"cimd\",\n \"external_metadata_created_by\": \"admin\",\n \"external_metadata_status\": \"available\",\n \"agent_id\": \"agent_id\",\n \"external_client_id\": \"external_client_id\",\n \"jwks_uri\": \"jwks_uri\"\n}", "headers": { "Content-Type": "application/json" } @@ -4344,6 +4347,177 @@ } } }, + { + "id": "4ddbe67a-e92f-41ef-a60a-225432ebeeec", + "name": "Retrieve all portals - default", + "request": { + "urlPathTemplate": "/portals", + "method": "GET", + "headers": { + "Authorization": { + "matches": "Bearer .+" + } + } + }, + "response": { + "status": 200, + "body": "{\n \"portals\": [\n {\n \"id\": \"id\",\n \"name\": \"name\",\n \"slug\": \"slug\",\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\"\n }\n ]\n}", + "headers": { + "Content-Type": "application/json" + } + }, + "uuid": "4ddbe67a-e92f-41ef-a60a-225432ebeeec", + "persistent": true, + "priority": 3, + "metadata": { + "mocklab": { + "created": { + "at": "2020-01-01T00:00:00.000Z", + "via": "SYSTEM" + } + } + }, + "postServeActions": [] + }, + { + "id": "df8690a5-5c50-48cd-a77a-783311cb9838", + "name": "Create a portal - default", + "request": { + "urlPathTemplate": "/portals", + "method": "POST", + "headers": { + "Authorization": { + "matches": "Bearer .+" + } + } + }, + "response": { + "status": 201, + "body": "{\n \"id\": \"id\",\n \"name\": \"name\",\n \"navigation\": {\n \"sidebar\": {\n \"components\": [\n {\n \"config\": {\n \"label\": \"label\",\n \"url\": \"url\"\n },\n \"type\": \"sidebar:component:auth0:external_link\"\n }\n ]\n }\n },\n \"pages\": {\n \"default\": \"default\",\n \"standard\": [\n {\n \"title\": \"title\",\n \"slug\": \"slug\"\n }\n ]\n },\n \"slug\": \"slug\",\n \"client\": {\n \"token_endpoint_auth_method\": \"client_secret_post\",\n \"client_id\": \"client_id\"\n },\n \"custom_code\": {\n \"head\": \"head\"\n },\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\"\n}", + "headers": { + "Content-Type": "application/json" + } + }, + "uuid": "df8690a5-5c50-48cd-a77a-783311cb9838", + "persistent": true, + "priority": 3, + "metadata": { + "mocklab": { + "created": { + "at": "2020-01-01T00:00:00.000Z", + "via": "SYSTEM" + } + } + } + }, + { + "id": "8811b138-cc96-4b85-b569-e52e2bbe3fa8", + "name": "Get a portal - default", + "request": { + "urlPathTemplate": "/portals/{id}", + "method": "GET", + "headers": { + "Authorization": { + "matches": "Bearer .+" + } + }, + "pathParameters": { + "id": { + "equalTo": "id" + } + } + }, + "response": { + "status": 200, + "body": "{\n \"id\": \"id\",\n \"name\": \"name\",\n \"navigation\": {\n \"sidebar\": {\n \"components\": [\n {\n \"config\": {\n \"label\": \"label\",\n \"url\": \"url\"\n },\n \"type\": \"sidebar:component:auth0:external_link\"\n }\n ]\n }\n },\n \"pages\": {\n \"default\": \"default\",\n \"standard\": [\n {\n \"title\": \"title\",\n \"slug\": \"slug\"\n }\n ]\n },\n \"slug\": \"slug\",\n \"client\": {\n \"token_endpoint_auth_method\": \"client_secret_post\",\n \"client_id\": \"client_id\"\n },\n \"custom_code\": {\n \"head\": \"head\"\n },\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\"\n}", + "headers": { + "Content-Type": "application/json" + } + }, + "uuid": "8811b138-cc96-4b85-b569-e52e2bbe3fa8", + "persistent": true, + "priority": 3, + "metadata": { + "mocklab": { + "created": { + "at": "2020-01-01T00:00:00.000Z", + "via": "SYSTEM" + } + } + } + }, + { + "id": "767fc5f8-1b0b-4219-b009-a2a630c22250", + "name": "Delete a portal - default", + "request": { + "urlPathTemplate": "/portals/{id}", + "method": "DELETE", + "headers": { + "Authorization": { + "matches": "Bearer .+" + } + }, + "pathParameters": { + "id": { + "equalTo": "id" + } + } + }, + "response": { + "status": 200, + "body": "\"\"", + "headers": { + "Content-Type": "application/json" + } + }, + "uuid": "767fc5f8-1b0b-4219-b009-a2a630c22250", + "persistent": true, + "priority": 3, + "metadata": { + "mocklab": { + "created": { + "at": "2020-01-01T00:00:00.000Z", + "via": "SYSTEM" + } + } + } + }, + { + "id": "db5492fb-a2c3-461b-8042-7148be3185aa", + "name": "Update a portal - default", + "request": { + "urlPathTemplate": "/portals/{id}", + "method": "PATCH", + "headers": { + "Authorization": { + "matches": "Bearer .+" + } + }, + "pathParameters": { + "id": { + "equalTo": "id" + } + } + }, + "response": { + "status": 200, + "body": "{\n \"id\": \"id\",\n \"name\": \"name\",\n \"navigation\": {\n \"sidebar\": {\n \"components\": [\n {\n \"config\": {\n \"label\": \"label\",\n \"url\": \"url\"\n },\n \"type\": \"sidebar:component:auth0:external_link\"\n }\n ]\n }\n },\n \"pages\": {\n \"default\": \"default\",\n \"standard\": [\n {\n \"title\": \"title\",\n \"slug\": \"slug\"\n }\n ]\n },\n \"slug\": \"slug\",\n \"client\": {\n \"token_endpoint_auth_method\": \"client_secret_post\",\n \"client_id\": \"client_id\"\n },\n \"custom_code\": {\n \"head\": \"head\"\n },\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\"\n}", + "headers": { + "Content-Type": "application/json" + } + }, + "uuid": "db5492fb-a2c3-461b-8042-7148be3185aa", + "persistent": true, + "priority": 3, + "metadata": { + "mocklab": { + "created": { + "at": "2020-01-01T00:00:00.000Z", + "via": "SYSTEM" + } + } + } + }, { "id": "a5b27e78-ff1e-480e-a2ff-cda4a7e2a15e", "name": "Get prompt settings - default", @@ -4821,7 +4995,7 @@ }, "response": { "status": 200, - "body": "{\n \"start\": 1.1,\n \"limit\": 1.1,\n \"total\": 1.1,\n \"resource_servers\": [\n {\n \"id\": \"id\",\n \"name\": \"name\",\n \"is_system\": true,\n \"identifier\": \"identifier\",\n \"scopes\": [\n {\n \"value\": \"value\"\n }\n ],\n \"signing_alg\": \"HS256\",\n \"signing_secret\": \"signing_secret\",\n \"allow_offline_access\": true,\n \"allow_online_access\": true,\n \"allow_online_access_with_ephemeral_sessions\": true,\n \"skip_consent_for_verifiable_first_party_clients\": true,\n \"token_lifetime\": 1,\n \"token_lifetime_for_web\": 1,\n \"enforce_policies\": true,\n \"token_lifetime_for_anonymous_access_tokens\": 1,\n \"token_dialect\": \"access_token\",\n \"token_encryption\": {\n \"format\": \"compact-nested-jwe\",\n \"encryption_key\": {\n \"alg\": \"RSA-OAEP-256\",\n \"pem\": \"pem\"\n }\n },\n \"consent_policy\": \"transactional-authorization-with-mfa\",\n \"require_consent_non_repudiation\": true,\n \"proof_of_possession\": {\n \"mechanism\": \"mtls\",\n \"required\": true\n },\n \"authorization_policy\": {\n \"policy_id\": \"policy_id\"\n },\n \"client_id\": \"client_id\"\n }\n ]\n}", + "body": "{\n \"start\": 1.1,\n \"limit\": 1.1,\n \"total\": 1.1,\n \"resource_servers\": [\n {\n \"id\": \"id\",\n \"name\": \"name\",\n \"is_system\": true,\n \"identifier\": \"identifier\",\n \"scopes\": [\n {\n \"value\": \"value\"\n }\n ],\n \"signing_alg\": \"HS256\",\n \"signing_secret\": \"signing_secret\",\n \"allow_offline_access\": true,\n \"allow_online_access\": true,\n \"allow_online_access_with_ephemeral_sessions\": true,\n \"skip_consent_for_verifiable_first_party_clients\": true,\n \"token_lifetime\": 1,\n \"token_lifetime_for_web\": 1,\n \"enforce_policies\": true,\n \"token_lifetime_for_anonymous_access_tokens\": 1,\n \"token_dialect\": \"access_token\",\n \"token_encryption\": {\n \"format\": \"compact-nested-jwe\",\n \"encryption_key\": {\n \"alg\": \"RSA-OAEP-256\",\n \"pem\": \"pem\"\n }\n },\n \"consent_policy\": \"transactional-authorization-with-mfa\",\n \"require_consent_non_repudiation\": true,\n \"proof_of_possession\": {\n \"mechanism\": \"mtls\",\n \"required\": true\n },\n \"authorization_policy\": {\n \"policy_id\": \"policy_id\"\n },\n \"client_id\": \"client_id\",\n \"agent_subject_claims\": \"off\",\n \"type\": \"universal_commerce_protocol_server\"\n }\n ]\n}", "headers": { "Content-Type": "application/json" } @@ -4853,7 +5027,7 @@ }, "response": { "status": 201, - "body": "{\n \"id\": \"id\",\n \"name\": \"name\",\n \"is_system\": true,\n \"identifier\": \"identifier\",\n \"scopes\": [\n {\n \"value\": \"value\",\n \"description\": \"description\"\n }\n ],\n \"signing_alg\": \"HS256\",\n \"signing_secret\": \"signing_secret\",\n \"allow_offline_access\": true,\n \"allow_online_access\": true,\n \"allow_online_access_with_ephemeral_sessions\": true,\n \"skip_consent_for_verifiable_first_party_clients\": true,\n \"token_lifetime\": 1,\n \"token_lifetime_for_web\": 1,\n \"enforce_policies\": true,\n \"token_lifetime_for_anonymous_access_tokens\": 1,\n \"token_dialect\": \"access_token\",\n \"access_token\": {\n \"claims_mapping\": {\n \"custom_claims\": [\n {\n \"name\": \"name\",\n \"expression\": \"expression\"\n }\n ]\n }\n },\n \"token_encryption\": {\n \"format\": \"compact-nested-jwe\",\n \"encryption_key\": {\n \"name\": \"name\",\n \"alg\": \"RSA-OAEP-256\",\n \"kid\": \"kid\",\n \"pem\": \"pem\"\n }\n },\n \"consent_policy\": \"transactional-authorization-with-mfa\",\n \"require_consent_non_repudiation\": true,\n \"authorization_details\": [\n {\n \"key\": \"value\"\n }\n ],\n \"proof_of_possession\": {\n \"mechanism\": \"mtls\",\n \"required\": true,\n \"required_for\": \"public_clients\"\n },\n \"subject_type_authorization\": {\n \"user\": {\n \"policy\": \"allow_all\"\n },\n \"client\": {\n \"policy\": \"deny_all\"\n },\n \"anonymous_user\": {\n \"policy\": \"deny_all\"\n }\n },\n \"authorization_policy\": {\n \"policy_id\": \"policy_id\"\n },\n \"client_id\": \"client_id\"\n}", + "body": "{\n \"id\": \"id\",\n \"name\": \"name\",\n \"is_system\": true,\n \"identifier\": \"identifier\",\n \"scopes\": [\n {\n \"value\": \"value\",\n \"description\": \"description\"\n }\n ],\n \"signing_alg\": \"HS256\",\n \"signing_secret\": \"signing_secret\",\n \"allow_offline_access\": true,\n \"allow_online_access\": true,\n \"allow_online_access_with_ephemeral_sessions\": true,\n \"skip_consent_for_verifiable_first_party_clients\": true,\n \"token_lifetime\": 1,\n \"token_lifetime_for_web\": 1,\n \"enforce_policies\": true,\n \"token_lifetime_for_anonymous_access_tokens\": 1,\n \"token_dialect\": \"access_token\",\n \"access_token\": {\n \"claims_mapping\": {\n \"custom_claims\": [\n {\n \"name\": \"name\",\n \"expression\": \"expression\"\n }\n ]\n }\n },\n \"token_encryption\": {\n \"format\": \"compact-nested-jwe\",\n \"encryption_key\": {\n \"name\": \"name\",\n \"alg\": \"RSA-OAEP-256\",\n \"kid\": \"kid\",\n \"pem\": \"pem\"\n }\n },\n \"consent_policy\": \"transactional-authorization-with-mfa\",\n \"require_consent_non_repudiation\": true,\n \"authorization_details\": [\n {\n \"key\": \"value\"\n }\n ],\n \"proof_of_possession\": {\n \"mechanism\": \"mtls\",\n \"required\": true,\n \"required_for\": \"public_clients\"\n },\n \"subject_type_authorization\": {\n \"user\": {\n \"policy\": \"allow_all\"\n },\n \"client\": {\n \"policy\": \"deny_all\"\n },\n \"anonymous_user\": {\n \"policy\": \"deny_all\"\n }\n },\n \"authorization_policy\": {\n \"policy_id\": \"policy_id\"\n },\n \"client_id\": \"client_id\",\n \"agent_subject_claims\": \"off\",\n \"type\": \"universal_commerce_protocol_server\"\n}", "headers": { "Content-Type": "application/json" } @@ -4907,7 +5081,7 @@ }, "response": { "status": 200, - "body": "{\n \"resource_servers\": [\n {\n \"id\": \"id\",\n \"name\": \"name\",\n \"is_system\": true,\n \"identifier\": \"identifier\",\n \"scopes\": [\n {\n \"value\": \"value\"\n }\n ],\n \"signing_alg\": \"HS256\",\n \"allow_offline_access\": true,\n \"allow_online_access\": true,\n \"allow_online_access_with_ephemeral_sessions\": true,\n \"skip_consent_for_verifiable_first_party_clients\": true,\n \"token_lifetime\": 1,\n \"token_lifetime_for_web\": 1,\n \"enforce_policies\": true,\n \"token_lifetime_for_anonymous_access_tokens\": 1,\n \"token_dialect\": \"access_token\",\n \"token_encryption\": {\n \"format\": \"compact-nested-jwe\",\n \"encryption_key\": {\n \"alg\": \"RSA-OAEP-256\",\n \"pem\": \"pem\"\n }\n },\n \"consent_policy\": \"transactional-authorization-with-mfa\",\n \"require_consent_non_repudiation\": true,\n \"proof_of_possession\": {\n \"mechanism\": \"mtls\",\n \"required\": true\n },\n \"authorization_policy\": {\n \"policy_id\": \"policy_id\"\n },\n \"client_id\": \"client_id\"\n }\n ],\n \"next\": \"next\"\n}", + "body": "{\n \"resource_servers\": [\n {\n \"id\": \"id\",\n \"name\": \"name\",\n \"is_system\": true,\n \"identifier\": \"identifier\",\n \"scopes\": [\n {\n \"value\": \"value\"\n }\n ],\n \"signing_alg\": \"HS256\",\n \"allow_offline_access\": true,\n \"allow_online_access\": true,\n \"allow_online_access_with_ephemeral_sessions\": true,\n \"skip_consent_for_verifiable_first_party_clients\": true,\n \"token_lifetime\": 1,\n \"token_lifetime_for_web\": 1,\n \"enforce_policies\": true,\n \"token_lifetime_for_anonymous_access_tokens\": 1,\n \"token_dialect\": \"access_token\",\n \"token_encryption\": {\n \"format\": \"compact-nested-jwe\",\n \"encryption_key\": {\n \"alg\": \"RSA-OAEP-256\",\n \"pem\": \"pem\"\n }\n },\n \"consent_policy\": \"transactional-authorization-with-mfa\",\n \"require_consent_non_repudiation\": true,\n \"proof_of_possession\": {\n \"mechanism\": \"mtls\",\n \"required\": true\n },\n \"authorization_policy\": {\n \"policy_id\": \"policy_id\"\n },\n \"client_id\": \"client_id\",\n \"agent_subject_claims\": \"off\",\n \"type\": \"universal_commerce_protocol_server\"\n }\n ],\n \"next\": \"next\"\n}", "headers": { "Content-Type": "application/json" } @@ -4949,7 +5123,7 @@ }, "response": { "status": 200, - "body": "{\n \"id\": \"id\",\n \"name\": \"name\",\n \"is_system\": true,\n \"identifier\": \"identifier\",\n \"scopes\": [\n {\n \"value\": \"value\",\n \"description\": \"description\"\n }\n ],\n \"signing_alg\": \"HS256\",\n \"signing_secret\": \"signing_secret\",\n \"allow_offline_access\": true,\n \"allow_online_access\": true,\n \"allow_online_access_with_ephemeral_sessions\": true,\n \"skip_consent_for_verifiable_first_party_clients\": true,\n \"token_lifetime\": 1,\n \"token_lifetime_for_web\": 1,\n \"enforce_policies\": true,\n \"token_lifetime_for_anonymous_access_tokens\": 1,\n \"token_dialect\": \"access_token\",\n \"access_token\": {\n \"claims_mapping\": {\n \"custom_claims\": [\n {\n \"name\": \"name\",\n \"expression\": \"expression\"\n }\n ]\n }\n },\n \"token_encryption\": {\n \"format\": \"compact-nested-jwe\",\n \"encryption_key\": {\n \"name\": \"name\",\n \"alg\": \"RSA-OAEP-256\",\n \"kid\": \"kid\",\n \"pem\": \"pem\"\n }\n },\n \"consent_policy\": \"transactional-authorization-with-mfa\",\n \"require_consent_non_repudiation\": true,\n \"authorization_details\": [\n {\n \"key\": \"value\"\n }\n ],\n \"proof_of_possession\": {\n \"mechanism\": \"mtls\",\n \"required\": true,\n \"required_for\": \"public_clients\"\n },\n \"subject_type_authorization\": {\n \"user\": {\n \"policy\": \"allow_all\"\n },\n \"client\": {\n \"policy\": \"deny_all\"\n },\n \"anonymous_user\": {\n \"policy\": \"deny_all\"\n }\n },\n \"authorization_policy\": {\n \"policy_id\": \"policy_id\"\n },\n \"client_id\": \"client_id\"\n}", + "body": "{\n \"id\": \"id\",\n \"name\": \"name\",\n \"is_system\": true,\n \"identifier\": \"identifier\",\n \"scopes\": [\n {\n \"value\": \"value\",\n \"description\": \"description\"\n }\n ],\n \"signing_alg\": \"HS256\",\n \"signing_secret\": \"signing_secret\",\n \"allow_offline_access\": true,\n \"allow_online_access\": true,\n \"allow_online_access_with_ephemeral_sessions\": true,\n \"skip_consent_for_verifiable_first_party_clients\": true,\n \"token_lifetime\": 1,\n \"token_lifetime_for_web\": 1,\n \"enforce_policies\": true,\n \"token_lifetime_for_anonymous_access_tokens\": 1,\n \"token_dialect\": \"access_token\",\n \"access_token\": {\n \"claims_mapping\": {\n \"custom_claims\": [\n {\n \"name\": \"name\",\n \"expression\": \"expression\"\n }\n ]\n }\n },\n \"token_encryption\": {\n \"format\": \"compact-nested-jwe\",\n \"encryption_key\": {\n \"name\": \"name\",\n \"alg\": \"RSA-OAEP-256\",\n \"kid\": \"kid\",\n \"pem\": \"pem\"\n }\n },\n \"consent_policy\": \"transactional-authorization-with-mfa\",\n \"require_consent_non_repudiation\": true,\n \"authorization_details\": [\n {\n \"key\": \"value\"\n }\n ],\n \"proof_of_possession\": {\n \"mechanism\": \"mtls\",\n \"required\": true,\n \"required_for\": \"public_clients\"\n },\n \"subject_type_authorization\": {\n \"user\": {\n \"policy\": \"allow_all\"\n },\n \"client\": {\n \"policy\": \"deny_all\"\n },\n \"anonymous_user\": {\n \"policy\": \"deny_all\"\n }\n },\n \"authorization_policy\": {\n \"policy_id\": \"policy_id\"\n },\n \"client_id\": \"client_id\",\n \"agent_subject_claims\": \"off\",\n \"type\": \"universal_commerce_protocol_server\"\n}", "headers": { "Content-Type": "application/json" } @@ -5021,7 +5195,7 @@ }, "response": { "status": 201, - "body": "{\n \"id\": \"id\",\n \"name\": \"name\",\n \"is_system\": true,\n \"identifier\": \"identifier\",\n \"scopes\": [\n {\n \"value\": \"value\",\n \"description\": \"description\"\n }\n ],\n \"signing_alg\": \"HS256\",\n \"signing_secret\": \"signing_secret\",\n \"allow_offline_access\": true,\n \"allow_online_access\": true,\n \"allow_online_access_with_ephemeral_sessions\": true,\n \"skip_consent_for_verifiable_first_party_clients\": true,\n \"token_lifetime\": 1,\n \"token_lifetime_for_web\": 1,\n \"enforce_policies\": true,\n \"token_lifetime_for_anonymous_access_tokens\": 1,\n \"token_dialect\": \"access_token\",\n \"access_token\": {\n \"claims_mapping\": {\n \"custom_claims\": [\n {\n \"name\": \"name\",\n \"expression\": \"expression\"\n }\n ]\n }\n },\n \"token_encryption\": {\n \"format\": \"compact-nested-jwe\",\n \"encryption_key\": {\n \"name\": \"name\",\n \"alg\": \"RSA-OAEP-256\",\n \"kid\": \"kid\",\n \"pem\": \"pem\"\n }\n },\n \"consent_policy\": \"transactional-authorization-with-mfa\",\n \"require_consent_non_repudiation\": true,\n \"authorization_details\": [\n {\n \"key\": \"value\"\n }\n ],\n \"proof_of_possession\": {\n \"mechanism\": \"mtls\",\n \"required\": true,\n \"required_for\": \"public_clients\"\n },\n \"subject_type_authorization\": {\n \"user\": {\n \"policy\": \"allow_all\"\n },\n \"client\": {\n \"policy\": \"deny_all\"\n },\n \"anonymous_user\": {\n \"policy\": \"deny_all\"\n }\n },\n \"authorization_policy\": {\n \"policy_id\": \"policy_id\"\n },\n \"client_id\": \"client_id\"\n}", + "body": "{\n \"id\": \"id\",\n \"name\": \"name\",\n \"is_system\": true,\n \"identifier\": \"identifier\",\n \"scopes\": [\n {\n \"value\": \"value\",\n \"description\": \"description\"\n }\n ],\n \"signing_alg\": \"HS256\",\n \"signing_secret\": \"signing_secret\",\n \"allow_offline_access\": true,\n \"allow_online_access\": true,\n \"allow_online_access_with_ephemeral_sessions\": true,\n \"skip_consent_for_verifiable_first_party_clients\": true,\n \"token_lifetime\": 1,\n \"token_lifetime_for_web\": 1,\n \"enforce_policies\": true,\n \"token_lifetime_for_anonymous_access_tokens\": 1,\n \"token_dialect\": \"access_token\",\n \"access_token\": {\n \"claims_mapping\": {\n \"custom_claims\": [\n {\n \"name\": \"name\",\n \"expression\": \"expression\"\n }\n ]\n }\n },\n \"token_encryption\": {\n \"format\": \"compact-nested-jwe\",\n \"encryption_key\": {\n \"name\": \"name\",\n \"alg\": \"RSA-OAEP-256\",\n \"kid\": \"kid\",\n \"pem\": \"pem\"\n }\n },\n \"consent_policy\": \"transactional-authorization-with-mfa\",\n \"require_consent_non_repudiation\": true,\n \"authorization_details\": [\n {\n \"key\": \"value\"\n }\n ],\n \"proof_of_possession\": {\n \"mechanism\": \"mtls\",\n \"required\": true,\n \"required_for\": \"public_clients\"\n },\n \"subject_type_authorization\": {\n \"user\": {\n \"policy\": \"allow_all\"\n },\n \"client\": {\n \"policy\": \"deny_all\"\n },\n \"anonymous_user\": {\n \"policy\": \"deny_all\"\n }\n },\n \"authorization_policy\": {\n \"policy_id\": \"policy_id\"\n },\n \"client_id\": \"client_id\",\n \"agent_subject_claims\": \"off\",\n \"type\": \"universal_commerce_protocol_server\"\n}", "headers": { "Content-Type": "application/json" } @@ -6888,6 +7062,120 @@ } } }, + { + "id": "9bc0f8b4-abad-4f66-9979-0abe967f0c6b", + "name": "Get consent signing keys for a user - default", + "request": { + "urlPathTemplate": "/users/{id}/consent-signing-keys", + "method": "GET", + "headers": { + "Authorization": { + "matches": "Bearer .+" + } + }, + "pathParameters": { + "id": { + "equalTo": "id" + } + } + }, + "response": { + "status": 200, + "body": "{\n \"keys\": [\n {\n \"kid\": \"kid\",\n \"device_identifier\": \"device_identifier\",\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"expires_at\": \"2024-01-15T09:30:00Z\"\n }\n ]\n}", + "headers": { + "Content-Type": "application/json" + } + }, + "uuid": "9bc0f8b4-abad-4f66-9979-0abe967f0c6b", + "persistent": true, + "priority": 3, + "metadata": { + "mocklab": { + "created": { + "at": "2020-01-01T00:00:00.000Z", + "via": "SYSTEM" + } + } + } + }, + { + "id": "28d3e4b7-f78e-4fa9-b458-5629d6274ebc", + "name": "Get a consent signing key by key ID - default", + "request": { + "urlPathTemplate": "/users/{id}/consent-signing-keys/{kid}", + "method": "GET", + "headers": { + "Authorization": { + "matches": "Bearer .+" + } + }, + "pathParameters": { + "id": { + "equalTo": "id" + }, + "kid": { + "equalTo": "kid" + } + } + }, + "response": { + "status": 200, + "body": "{\n \"kid\": \"kid\",\n \"device_identifier\": \"device_identifier\",\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"expires_at\": \"2024-01-15T09:30:00Z\"\n}", + "headers": { + "Content-Type": "application/json" + } + }, + "uuid": "28d3e4b7-f78e-4fa9-b458-5629d6274ebc", + "persistent": true, + "priority": 3, + "metadata": { + "mocklab": { + "created": { + "at": "2020-01-01T00:00:00.000Z", + "via": "SYSTEM" + } + } + } + }, + { + "id": "a39e1747-47fb-442f-96ba-b45ab6609569", + "name": "Delete a consent signing key by key ID - default", + "request": { + "urlPathTemplate": "/users/{id}/consent-signing-keys/{kid}", + "method": "DELETE", + "headers": { + "Authorization": { + "matches": "Bearer .+" + } + }, + "pathParameters": { + "id": { + "equalTo": "id" + }, + "kid": { + "equalTo": "kid" + } + } + }, + "response": { + "status": 200, + "body": "\"\"", + "headers": { + "Content-Type": "application/json" + } + }, + "uuid": "a39e1747-47fb-442f-96ba-b45ab6609569", + "persistent": true, + "priority": 3, + "metadata": { + "mocklab": { + "created": { + "at": "2020-01-01T00:00:00.000Z", + "via": "SYSTEM" + } + } + } + }, { "id": "365cef77-10c1-4fea-9b15-317ad7a38e99", "name": "Generate New Multi-factor Authentication (MFA) Recovery Code - default", @@ -7820,7 +8108,7 @@ }, "response": { "status": 200, - "body": "{\n \"enabled\": true,\n \"shields\": [\n \"block\"\n ],\n \"allowlist\": [\n \"allowlist\"\n ],\n \"mode\": \"count_per_identifier_and_ip\",\n \"max_attempts\": 1,\n \"form_submission_mode\": \"auto\"\n}", + "body": "{\n \"enabled\": true,\n \"shields\": [\n \"block\"\n ],\n \"allowlist\": [\n \"allowlist\"\n ],\n \"mode\": \"count_per_identifier_and_ip\",\n \"form_submission_mode\": \"auto\",\n \"max_attempts\": 1\n}", "headers": { "Content-Type": "application/json" } @@ -7852,7 +8140,7 @@ }, "response": { "status": 200, - "body": "{\n \"enabled\": true,\n \"shields\": [\n \"block\"\n ],\n \"allowlist\": [\n \"allowlist\"\n ],\n \"mode\": \"count_per_identifier_and_ip\",\n \"max_attempts\": 1,\n \"form_submission_mode\": \"auto\"\n}", + "body": "{\n \"enabled\": true,\n \"shields\": [\n \"block\"\n ],\n \"allowlist\": [\n \"allowlist\"\n ],\n \"mode\": \"count_per_identifier_and_ip\",\n \"form_submission_mode\": \"auto\",\n \"max_attempts\": 1\n}", "headers": { "Content-Type": "application/json" } @@ -7932,177 +8220,6 @@ } } }, - { - "id": "68c499db-dbcf-4500-b535-2d1b5b0816ac", - "name": "Get CAPTCHA attack protection policies - default", - "request": { - "urlPathTemplate": "/attack-protection/captcha/policies", - "method": "GET", - "headers": { - "Authorization": { - "matches": "Bearer .+" - } - } - }, - "response": { - "status": 200, - "body": "[\n {\n \"id\": \"id\",\n \"name\": \"name\",\n \"description\": \"description\",\n \"priority\": 1,\n \"match\": {\n \"auth0_managed\": [\n \"auth0_managed\"\n ],\n \"geo_country_codes\": [\n \"geo_country_codes\"\n ]\n },\n \"action\": {\n \"active_provider_id\": \"simple_captcha\"\n },\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\"\n }\n]", - "headers": { - "Content-Type": "application/json" - } - }, - "uuid": "68c499db-dbcf-4500-b535-2d1b5b0816ac", - "persistent": true, - "priority": 3, - "metadata": { - "mocklab": { - "created": { - "at": "2020-01-01T00:00:00.000Z", - "via": "SYSTEM" - } - } - }, - "postServeActions": [] - }, - { - "id": "d9b60e3e-ceaa-434a-9131-9ae1433967b9", - "name": "Create a CAPTCHA attack protection policy - default", - "request": { - "urlPathTemplate": "/attack-protection/captcha/policies", - "method": "POST", - "headers": { - "Authorization": { - "matches": "Bearer .+" - } - } - }, - "response": { - "status": 201, - "body": "{\n \"id\": \"id\",\n \"name\": \"name\",\n \"description\": \"description\",\n \"priority\": 1,\n \"match\": {\n \"auth0_managed\": [\n \"auth0_managed\"\n ],\n \"geo_country_codes\": [\n \"geo_country_codes\"\n ]\n },\n \"action\": {\n \"active_provider_id\": \"simple_captcha\",\n \"auth_challenge\": {\n \"fail_open\": true\n },\n \"recaptcha_v2\": {\n \"site_key\": \"site_key\"\n },\n \"recaptcha_enterprise\": {\n \"site_key\": \"site_key\",\n \"project_id\": \"project_id\"\n },\n \"hcaptcha\": {\n \"site_key\": \"site_key\"\n },\n \"friendly_captcha\": {\n \"site_key\": \"site_key\"\n },\n \"arkose\": {\n \"site_key\": \"site_key\",\n \"client_subdomain\": \"client_subdomain\",\n \"verify_subdomain\": \"verify_subdomain\",\n \"fail_open\": true\n }\n },\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\"\n}", - "headers": { - "Content-Type": "application/json" - } - }, - "uuid": "d9b60e3e-ceaa-434a-9131-9ae1433967b9", - "persistent": true, - "priority": 3, - "metadata": { - "mocklab": { - "created": { - "at": "2020-01-01T00:00:00.000Z", - "via": "SYSTEM" - } - } - } - }, - { - "id": "cbf37477-ad4e-4fc9-8028-8e2abc8789f3", - "name": "Get a CAPTCHA attack protection policy - default", - "request": { - "urlPathTemplate": "/attack-protection/captcha/policies/{id}", - "method": "GET", - "headers": { - "Authorization": { - "matches": "Bearer .+" - } - }, - "pathParameters": { - "id": { - "equalTo": "id" - } - } - }, - "response": { - "status": 200, - "body": "{\n \"id\": \"id\",\n \"name\": \"name\",\n \"description\": \"description\",\n \"priority\": 1,\n \"match\": {\n \"auth0_managed\": [\n \"auth0_managed\"\n ],\n \"geo_country_codes\": [\n \"geo_country_codes\"\n ]\n },\n \"action\": {\n \"active_provider_id\": \"simple_captcha\",\n \"auth_challenge\": {\n \"fail_open\": true\n },\n \"recaptcha_v2\": {\n \"site_key\": \"site_key\"\n },\n \"recaptcha_enterprise\": {\n \"site_key\": \"site_key\",\n \"project_id\": \"project_id\"\n },\n \"hcaptcha\": {\n \"site_key\": \"site_key\"\n },\n \"friendly_captcha\": {\n \"site_key\": \"site_key\"\n },\n \"arkose\": {\n \"site_key\": \"site_key\",\n \"client_subdomain\": \"client_subdomain\",\n \"verify_subdomain\": \"verify_subdomain\",\n \"fail_open\": true\n }\n },\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\"\n}", - "headers": { - "Content-Type": "application/json" - } - }, - "uuid": "cbf37477-ad4e-4fc9-8028-8e2abc8789f3", - "persistent": true, - "priority": 3, - "metadata": { - "mocklab": { - "created": { - "at": "2020-01-01T00:00:00.000Z", - "via": "SYSTEM" - } - } - } - }, - { - "id": "4a72a5d1-89f5-4cde-bda5-da15dc79e6fe", - "name": "Delete a CAPTCHA attack protection policy - default", - "request": { - "urlPathTemplate": "/attack-protection/captcha/policies/{id}", - "method": "DELETE", - "headers": { - "Authorization": { - "matches": "Bearer .+" - } - }, - "pathParameters": { - "id": { - "equalTo": "id" - } - } - }, - "response": { - "status": 200, - "body": "\"\"", - "headers": { - "Content-Type": "application/json" - } - }, - "uuid": "4a72a5d1-89f5-4cde-bda5-da15dc79e6fe", - "persistent": true, - "priority": 3, - "metadata": { - "mocklab": { - "created": { - "at": "2020-01-01T00:00:00.000Z", - "via": "SYSTEM" - } - } - } - }, - { - "id": "4083f648-c7aa-4924-ba4c-8b89886a123d", - "name": "Update a CAPTCHA attack protection policy - default", - "request": { - "urlPathTemplate": "/attack-protection/captcha/policies/{id}", - "method": "PATCH", - "headers": { - "Authorization": { - "matches": "Bearer .+" - } - }, - "pathParameters": { - "id": { - "equalTo": "id" - } - } - }, - "response": { - "status": 200, - "body": "{\n \"id\": \"id\",\n \"name\": \"name\",\n \"description\": \"description\",\n \"priority\": 1,\n \"match\": {\n \"auth0_managed\": [\n \"auth0_managed\"\n ],\n \"geo_country_codes\": [\n \"geo_country_codes\"\n ]\n },\n \"action\": {\n \"active_provider_id\": \"simple_captcha\",\n \"auth_challenge\": {\n \"fail_open\": true\n },\n \"recaptcha_v2\": {\n \"site_key\": \"site_key\"\n },\n \"recaptcha_enterprise\": {\n \"site_key\": \"site_key\",\n \"project_id\": \"project_id\"\n },\n \"hcaptcha\": {\n \"site_key\": \"site_key\"\n },\n \"friendly_captcha\": {\n \"site_key\": \"site_key\"\n },\n \"arkose\": {\n \"site_key\": \"site_key\",\n \"client_subdomain\": \"client_subdomain\",\n \"verify_subdomain\": \"verify_subdomain\",\n \"fail_open\": true\n }\n },\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\"\n}", - "headers": { - "Content-Type": "application/json" - } - }, - "uuid": "4083f648-c7aa-4924-ba4c-8b89886a123d", - "persistent": true, - "priority": 3, - "metadata": { - "mocklab": { - "created": { - "at": "2020-01-01T00:00:00.000Z", - "via": "SYSTEM" - } - } - } - }, { "id": "e3a2dc7e-fb58-4806-a3f1-3d94a401a38f", "name": "Get Phone Provider Protection settings - default", @@ -10986,6 +11103,9 @@ }, "type": { "equalTo": "auth0" + }, + "status": { + "equalTo": "active" } } }, @@ -18231,6 +18351,6 @@ } ], "meta": { - "total": 487 + "total": 490 } } \ No newline at end of file