diff --git a/.fern/replay.lock b/.fern/replay.lock index 3c9b19be..9211c5e1 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: d7e4c8ee149b6258a80294bd300319db9d4114b8 + tree_hash: 05e0424e675918d4726c3a8a902828ff8a88d09b + timestamp: 2026-10-27T05:48:21.079Z + cli_version: unknown + generator_versions: + fernapi/fern-python-sdk: 5.26.0 +current_generation: d7e4c8ee149b6258a80294bd300319db9d4114b8 +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: d7e4c8ee149b6258a80294bd300319db9d4114b8 + 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..acbedb33 100644 --- a/reference.md +++ b/reference.md @@ -13556,6 +13556,14 @@ client.resource_servers.create(
+**type:** `typing.Optional[ResourceServerTypeEnum]` + +
+
+ +
+
+ **request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
@@ -14074,6 +14082,14 @@ client.resource_servers.update(
+**type:** `typing.Optional[ResourceServerTypeEnum]` + +
+
+ +
+
+ **request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
@@ -18827,6 +18843,243 @@ client.users.update(
+ +
+ + +
client.users.list_consent_signing_keys(...) -> ListUserConsentSigningKeysResponseContent +
+
+ +#### 📝 Description + +
+
+ +
+
+ +Retrieve all consent signing keys registered for a user. Returns an empty array when the user has no keys registered. +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```python +from auth0.management import Auth0 +from auth0.management.environment import Auth0Environment + +client = Auth0( + token="", + environment=Auth0Environment.DEFAULT, +) + +client.users.list_consent_signing_keys( + id="id", +) + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**id:** `str` — The ID of the user. + +
+
+ +
+
+ +**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. + +
+
+
+
+ + +
+
+
+ +
client.users.get_consent_signing_key(...) -> ConsentSigningKey +
+
+ +#### 📝 Description + +
+
+ +
+
+ +Retrieve a single consent signing key for a user by its key identifier (kid). Returns 404 if the key does not exist. +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```python +from auth0.management import Auth0 +from auth0.management.environment import Auth0Environment + +client = Auth0( + token="", + environment=Auth0Environment.DEFAULT, +) + +client.users.get_consent_signing_key( + id="id", + kid="kid", +) + +``` +
+
+
+
+ +#### ⚙️ 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. + +
+
+
+
+ + +
+
+
+ +
client.users.delete_consent_signing_key(...) +
+
+ +#### 📝 Description + +
+
+ +
+
+ +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. +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```python +from auth0.management import Auth0 +from auth0.management.environment import Auth0Environment + +client = Auth0( + token="", + environment=Auth0Environment.DEFAULT, +) + +client.users.delete_consent_signing_key( + id="id", + kid="kid", +) + +``` +
+
+
+
+ +#### ⚙️ 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. + +
+
+
+
+ +
@@ -21074,7 +21327,7 @@ Action to take when a brute force protection threshold is violated.
-**max_attempts:** `typing.Optional[int]` — Maximum number of unsuccessful attempts. +**form_submission_mode:** `typing.Optional[BruteForceProtectionFormSubmissionModeEnum]`
@@ -21082,7 +21335,7 @@ Action to take when a brute force protection threshold is violated.
-**form_submission_mode:** `typing.Optional[BruteForceProtectionFormSubmissionModeEnum]` +**max_attempts:** `typing.Optional[int]` — Maximum number of unsuccessful attempts.
@@ -21293,8 +21546,8 @@ client.attack_protection.captcha.update() -## AttackProtection CaptchaPolicies -
client.attack_protection.captcha_policies.list() -> ListAttackProtectionCaptchaPoliciesResponseContent +## AttackProtection PhoneProviderProtection +
client.attack_protection.phone_provider_protection.get() -> GetPhoneProviderProtectionResponseContent
@@ -21306,7 +21559,7 @@ client.attack_protection.captcha.update()
-Retrieve all CAPTCHA attack protection policies for the tenant, sorted by priority ascending. +Get the phone provider protection configuration for a tenant.
@@ -21329,7 +21582,7 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.attack_protection.captcha_policies.list() +client.attack_protection.phone_provider_protection.get() ``` @@ -21357,7 +21610,7 @@ client.attack_protection.captcha_policies.list()
-
client.attack_protection.captcha_policies.create(...) -> AttackProtectionCaptchaPolicy +
client.attack_protection.phone_provider_protection.patch(...) -> PatchPhoneProviderProtectionResponseContent
@@ -21369,7 +21622,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 phone provider protection configuration for a tenant.
@@ -21384,7 +21637,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,11 +21645,8 @@ client = Auth0( environment=Auth0Environment.DEFAULT, ) -client.attack_protection.captcha_policies.create( - name="name", - priority=1, - match=AttackProtectionCaptchaPolicyMatch(), - action=AttackProtectionCaptchaPolicyActionInput(), +client.attack_protection.phone_provider_protection.patch( + type="exponential", ) ``` @@ -21413,7 +21663,7 @@ client.attack_protection.captcha_policies.create(
-**name:** `str` — Human-readable policy name. +**type:** `PhoneProviderProtectionBackoffStrategyEnum`
@@ -21421,438 +21671,10 @@ client.attack_protection.captcha_policies.create(
-**priority:** `int` — Conflict resolution order. Lower number takes higher precedence. Must be unique per tenant. +**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. -
-
- -
-
- -**match:** `AttackProtectionCaptchaPolicyMatch` - -
-
- -
-
- -**action:** `AttackProtectionCaptchaPolicyActionInput` - -
-
- -
-
- -**description:** `typing.Optional[str]` — Description of the attack protection policy. - -
-
- -
-
- -**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. - -
-
-
-
- - - - -
- -
client.attack_protection.captcha_policies.get(...) -> AttackProtectionCaptchaPolicy -
-
- -#### 📝 Description - -
-
- -
-
- -Retrieve a single CAPTCHA attack protection policy for the tenant by ID. -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```python -from auth0.management import Auth0 -from auth0.management.environment import Auth0Environment - -client = Auth0( - token="", - environment=Auth0Environment.DEFAULT, -) - -client.attack_protection.captcha_policies.get( - id="id", -) - -``` -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**id:** `str` — ID of the CAPTCHA attack protection policy. - -
-
- -
-
- -**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. - -
-
-
-
- - -
-
-
- -
client.attack_protection.captcha_policies.delete(...) -
-
- -#### 📝 Description - -
-
- -
-
- -Delete a CAPTCHA attack protection policy for the tenant. -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```python -from auth0.management import Auth0 -from auth0.management.environment import Auth0Environment - -client = Auth0( - token="", - environment=Auth0Environment.DEFAULT, -) - -client.attack_protection.captcha_policies.delete( - id="id", -) - -``` -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**id:** `str` — ID of the CAPTCHA attack protection policy. - -
-
- -
-
- -**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. - -
-
-
-
- - -
-
-
- -
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. - -
-
- -
-
- -**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. - -
-
-
-
- - -
-
-
- -## AttackProtection PhoneProviderProtection -
client.attack_protection.phone_provider_protection.get() -> GetPhoneProviderProtectionResponseContent -
-
- -#### 📝 Description - -
-
- -
-
- -Get the phone provider protection configuration for a tenant. -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```python -from auth0.management import Auth0 -from auth0.management.environment import Auth0Environment - -client = Auth0( - token="", - environment=Auth0Environment.DEFAULT, -) - -client.attack_protection.phone_provider_protection.get() - -``` -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. - -
-
-
-
- - -
-
-
- -
client.attack_protection.phone_provider_protection.patch(...) -> PatchPhoneProviderProtectionResponseContent -
-
- -#### 📝 Description - -
-
- -
-
- -Update the phone provider protection configuration for a tenant. -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```python -from auth0.management import Auth0 -from auth0.management.environment import Auth0Environment - -client = Auth0( - token="", - environment=Auth0Environment.DEFAULT, -) - -client.attack_protection.phone_provider_protection.patch( - type="exponential", -) - -``` -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**type:** `PhoneProviderProtectionBackoffStrategyEnum` - -
-
- -
-
- -**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. - -
-
+
+
@@ -27532,6 +27354,7 @@ client.experimentation.experiments.create( name="name", feature_flag_id="feature_flag_id", authentication_flow="authentication", + allocation_strategy="percentage", ) ``` @@ -27572,7 +27395,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 +27403,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 +27411,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 +28359,7 @@ client.experimentation.segments.list( from_="from", take=1, type="auth0", + status="active", ) ``` @@ -28576,6 +28400,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..d3b04b38 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, @@ -361,6 +345,7 @@ ConnectionClientIdOidc, ConnectionClientIdPaypal, ConnectionClientIdSalesforce, + ConnectionClientIdSamlxaaRequestingApp, ConnectionClientIdWindowsLive, ConnectionClientProtocolSaml, ConnectionClientSecret, @@ -378,6 +363,7 @@ ConnectionClientSecretOidc, ConnectionClientSecretPaypal, ConnectionClientSecretSalesforce, + ConnectionClientSecretSamlxaaRequestingApp, ConnectionClientSecretWindowsLive, ConnectionCommon, ConnectionCommunityBaseUrlSalesforce, @@ -570,6 +556,8 @@ ConnectionOptionsWordpress, ConnectionOptionsYahoo, ConnectionOptionsYandex, + ConnectionOtpChannelSettings, + ConnectionOtpSettings, ConnectionPasskeyAuthenticationMethod, ConnectionPasskeyChallengeUiEnum, ConnectionPasskeyOptions, @@ -850,6 +838,7 @@ ConnectionsDiscoveryUrl, ConnectionsMetadata, ConnectionsOidcMetadata, + ConsentSigningKey, ContentSecurityPolicyConfig, CreateActionModuleResponseContent, CreateActionModuleVersionResponseContent, @@ -1939,6 +1928,10 @@ EventStreamCloudEventContextRequest, EventStreamCloudEventContextRequestGeo, EventStreamCloudEventContextTenant, + EventStreamCloudEventContextTransaction, + EventStreamCloudEventContextTransactionProtocolEnum, + EventStreamCloudEventContextTransactionResponseModeEnum, + EventStreamCloudEventContextTransactionResponseTypeItemEnum, EventStreamCloudEventData, EventStreamCloudEventErrorCodeEnum, EventStreamCloudEventErrorDetail, @@ -3291,7 +3284,6 @@ ListAculsOffsetPaginatedResponseContent, ListAculsResponseContentItem, ListAgentsResponseContent, - ListAttackProtectionCaptchaPoliciesResponseContent, ListBrandingPhoneProvidersResponseContent, ListClientConnectionsResponseContent, ListClientGrantOrganizationsPaginatedResponseContent, @@ -3356,6 +3348,7 @@ ListUserBlocksByIdentifierResponseContent, ListUserBlocksResponseContent, ListUserConnectedAccountsResponseContent, + ListUserConsentSigningKeysResponseContent, ListUserEffectivePermissionRoleSourcesResponseContent, ListUserEffectivePermissionsResponseContent, ListUserEffectiveRolesResponseContent, @@ -3574,6 +3567,7 @@ ResourceServerTokenEncryptionAlgorithmEnum, ResourceServerTokenEncryptionFormatEnum, ResourceServerTokenEncryptionKey, + ResourceServerTypeEnum, ResourceServerVerificationKeyPemCertificate, RevokedSigningKeysResponseContent, Role, @@ -4080,10 +4074,6 @@ "AttackProtectionCaptchaAuthChallengeResponseContent": ".types", "AttackProtectionCaptchaFriendlyCaptchaResponseContent": ".types", "AttackProtectionCaptchaHcaptchaResponseContent": ".types", - "AttackProtectionCaptchaPolicy": ".types", - "AttackProtectionCaptchaPolicyAction": ".types", - "AttackProtectionCaptchaPolicyActionInput": ".types", - "AttackProtectionCaptchaPolicyMatch": ".types", "AttackProtectionCaptchaProviderId": ".types", "AttackProtectionCaptchaRecaptchaEnterpriseResponseContent": ".types", "AttackProtectionCaptchaRecaptchaV2ResponseContent": ".types", @@ -4153,19 +4143,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 +4239,7 @@ "ClientOidcBackchannelLogoutInitiatorsModeEnum": ".types", "ClientOidcBackchannelLogoutSessionMetadata": ".types", "ClientOidcBackchannelLogoutSettings": ".types", + "ClientOidcSupport": ".types", "ClientOidcSupportAllowedScopesEnum": ".types", "ClientOidcSupportPatch": ".types", "ClientOidcSupportPost": ".types", @@ -4368,6 +4346,7 @@ "ConnectionClientIdOidc": ".types", "ConnectionClientIdPaypal": ".types", "ConnectionClientIdSalesforce": ".types", + "ConnectionClientIdSamlxaaRequestingApp": ".types", "ConnectionClientIdWindowsLive": ".types", "ConnectionClientProtocolSaml": ".types", "ConnectionClientSecret": ".types", @@ -4385,6 +4364,7 @@ "ConnectionClientSecretOidc": ".types", "ConnectionClientSecretPaypal": ".types", "ConnectionClientSecretSalesforce": ".types", + "ConnectionClientSecretSamlxaaRequestingApp": ".types", "ConnectionClientSecretWindowsLive": ".types", "ConnectionCommon": ".types", "ConnectionCommunityBaseUrlSalesforce": ".types", @@ -4577,6 +4557,8 @@ "ConnectionOptionsWordpress": ".types", "ConnectionOptionsYahoo": ".types", "ConnectionOptionsYandex": ".types", + "ConnectionOtpChannelSettings": ".types", + "ConnectionOtpSettings": ".types", "ConnectionPasskeyAuthenticationMethod": ".types", "ConnectionPasskeyChallengeUiEnum": ".types", "ConnectionPasskeyOptions": ".types", @@ -4857,6 +4839,7 @@ "ConnectionsDiscoveryUrl": ".types", "ConnectionsMetadata": ".types", "ConnectionsOidcMetadata": ".types", + "ConsentSigningKey": ".types", "ContentSecurityPolicyConfig": ".types", "ContentTooLargeError": ".errors", "CreateActionModuleResponseContent": ".types", @@ -5950,6 +5933,10 @@ "EventStreamCloudEventContextRequest": ".types", "EventStreamCloudEventContextRequestGeo": ".types", "EventStreamCloudEventContextTenant": ".types", + "EventStreamCloudEventContextTransaction": ".types", + "EventStreamCloudEventContextTransactionProtocolEnum": ".types", + "EventStreamCloudEventContextTransactionResponseModeEnum": ".types", + "EventStreamCloudEventContextTransactionResponseTypeItemEnum": ".types", "EventStreamCloudEventData": ".types", "EventStreamCloudEventErrorCodeEnum": ".types", "EventStreamCloudEventErrorDetail": ".types", @@ -7307,7 +7294,6 @@ "ListAculsOffsetPaginatedResponseContent": ".types", "ListAculsResponseContentItem": ".types", "ListAgentsResponseContent": ".types", - "ListAttackProtectionCaptchaPoliciesResponseContent": ".types", "ListBrandingPhoneProvidersResponseContent": ".types", "ListClientConnectionsResponseContent": ".types", "ListClientGrantOrganizationsPaginatedResponseContent": ".types", @@ -7372,6 +7358,7 @@ "ListUserBlocksByIdentifierResponseContent": ".types", "ListUserBlocksResponseContent": ".types", "ListUserConnectedAccountsResponseContent": ".types", + "ListUserConsentSigningKeysResponseContent": ".types", "ListUserEffectivePermissionRoleSourcesResponseContent": ".types", "ListUserEffectivePermissionsResponseContent": ".types", "ListUserEffectiveRolesResponseContent": ".types", @@ -7594,6 +7581,7 @@ "ResourceServerTokenEncryptionAlgorithmEnum": ".types", "ResourceServerTokenEncryptionFormatEnum": ".types", "ResourceServerTokenEncryptionKey": ".types", + "ResourceServerTypeEnum": ".types", "ResourceServerVerificationKeyPemCertificate": ".types", "RevokedSigningKeysResponseContent": ".types", "Role": ".types", @@ -8104,10 +8092,6 @@ def __dir__(): "AttackProtectionCaptchaAuthChallengeResponseContent", "AttackProtectionCaptchaFriendlyCaptchaResponseContent", "AttackProtectionCaptchaHcaptchaResponseContent", - "AttackProtectionCaptchaPolicy", - "AttackProtectionCaptchaPolicyAction", - "AttackProtectionCaptchaPolicyActionInput", - "AttackProtectionCaptchaPolicyMatch", "AttackProtectionCaptchaProviderId", "AttackProtectionCaptchaRecaptchaEnterpriseResponseContent", "AttackProtectionCaptchaRecaptchaV2ResponseContent", @@ -8177,19 +8161,6 @@ def __dir__(): "BruteForceProtectionModeEnum", "BruteForceProtectionShieldsEnum", "BulkUpdateAculResponseContent", - "CaptchaActiveProviderEnum", - "CaptchaPolicyActionArkose", - "CaptchaPolicyActionArkoseInput", - "CaptchaPolicyActionAuthChallenge", - "CaptchaPolicyActionFriendlyCaptcha", - "CaptchaPolicyActionFriendlyCaptchaInput", - "CaptchaPolicyActionHcaptcha", - "CaptchaPolicyActionHcaptchaInput", - "CaptchaPolicyActionRecaptchaEnterprise", - "CaptchaPolicyActionRecaptchaEnterpriseInput", - "CaptchaPolicyActionRecaptchaV2", - "CaptchaPolicyActionRecaptchaV2Input", - "CaptchaPolicyActionSimpleCaptcha", "CertificateSubjectDnCredential", "CertificateSubjectDnCredentialTypeEnum", "ChangePasswordTicketIdentity", @@ -8286,6 +8257,7 @@ def __dir__(): "ClientOidcBackchannelLogoutInitiatorsModeEnum", "ClientOidcBackchannelLogoutSessionMetadata", "ClientOidcBackchannelLogoutSettings", + "ClientOidcSupport", "ClientOidcSupportAllowedScopesEnum", "ClientOidcSupportPatch", "ClientOidcSupportPost", @@ -8392,6 +8364,7 @@ def __dir__(): "ConnectionClientIdOidc", "ConnectionClientIdPaypal", "ConnectionClientIdSalesforce", + "ConnectionClientIdSamlxaaRequestingApp", "ConnectionClientIdWindowsLive", "ConnectionClientProtocolSaml", "ConnectionClientSecret", @@ -8409,6 +8382,7 @@ def __dir__(): "ConnectionClientSecretOidc", "ConnectionClientSecretPaypal", "ConnectionClientSecretSalesforce", + "ConnectionClientSecretSamlxaaRequestingApp", "ConnectionClientSecretWindowsLive", "ConnectionCommon", "ConnectionCommunityBaseUrlSalesforce", @@ -8601,6 +8575,8 @@ def __dir__(): "ConnectionOptionsWordpress", "ConnectionOptionsYahoo", "ConnectionOptionsYandex", + "ConnectionOtpChannelSettings", + "ConnectionOtpSettings", "ConnectionPasskeyAuthenticationMethod", "ConnectionPasskeyChallengeUiEnum", "ConnectionPasskeyOptions", @@ -8881,6 +8857,7 @@ def __dir__(): "ConnectionsDiscoveryUrl", "ConnectionsMetadata", "ConnectionsOidcMetadata", + "ConsentSigningKey", "ContentSecurityPolicyConfig", "ContentTooLargeError", "CreateActionModuleResponseContent", @@ -9974,6 +9951,10 @@ def __dir__(): "EventStreamCloudEventContextRequest", "EventStreamCloudEventContextRequestGeo", "EventStreamCloudEventContextTenant", + "EventStreamCloudEventContextTransaction", + "EventStreamCloudEventContextTransactionProtocolEnum", + "EventStreamCloudEventContextTransactionResponseModeEnum", + "EventStreamCloudEventContextTransactionResponseTypeItemEnum", "EventStreamCloudEventData", "EventStreamCloudEventErrorCodeEnum", "EventStreamCloudEventErrorDetail", @@ -11331,7 +11312,6 @@ def __dir__(): "ListAculsOffsetPaginatedResponseContent", "ListAculsResponseContentItem", "ListAgentsResponseContent", - "ListAttackProtectionCaptchaPoliciesResponseContent", "ListBrandingPhoneProvidersResponseContent", "ListClientConnectionsResponseContent", "ListClientGrantOrganizationsPaginatedResponseContent", @@ -11396,6 +11376,7 @@ def __dir__(): "ListUserBlocksByIdentifierResponseContent", "ListUserBlocksResponseContent", "ListUserConnectedAccountsResponseContent", + "ListUserConsentSigningKeysResponseContent", "ListUserEffectivePermissionRoleSourcesResponseContent", "ListUserEffectivePermissionsResponseContent", "ListUserEffectiveRolesResponseContent", @@ -11618,6 +11599,7 @@ def __dir__(): "ResourceServerTokenEncryptionAlgorithmEnum", "ResourceServerTokenEncryptionFormatEnum", "ResourceServerTokenEncryptionKey", + "ResourceServerTypeEnum", "ResourceServerVerificationKeyPemCertificate", "RevokedSigningKeysResponseContent", "Role", 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/__init__.py b/src/auth0/management/attack_protection/captcha_policies/__init__.py deleted file mode 100644 index 5cde0202..00000000 --- a/src/auth0/management/attack_protection/captcha_policies/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -# isort: skip_file - 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/captcha_policies/raw_client.py b/src/auth0/management/attack_protection/captcha_policies/raw_client.py deleted file mode 100644 index 49b58ab9..00000000 --- a/src/auth0/management/attack_protection/captcha_policies/raw_client.py +++ /dev/null @@ -1,1175 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -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 pydantic import ValidationError - -# this is used as the default value for optional parameters -OMIT = typing.cast(typing.Any, ...) - - -class RawCaptchaPoliciesClient: - def __init__(self, *, client_wrapper: SyncClientWrapper): - self._client_wrapper = client_wrapper - - def list( - self, *, request_options: typing.Optional[RequestOptions] = None - ) -> HttpResponse[ListAttackProtectionCaptchaPoliciesResponseContent]: - """ - Retrieve all CAPTCHA attack protection policies for the tenant, sorted by priority ascending. - - Parameters - ---------- - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - HttpResponse[ListAttackProtectionCaptchaPoliciesResponseContent] - The tenant's CAPTCHA attack protection policies were successfully retrieved. - """ - _response = self._client_wrapper.httpx_client.request( - "attack-protection/captcha/policies", - method="GET", - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - ListAttackProtectionCaptchaPoliciesResponseContent, - parse_obj_as( - type_=ListAttackProtectionCaptchaPoliciesResponseContent, # 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 create( - self, - *, - name: str, - priority: int, - match: AttackProtectionCaptchaPolicyMatch, - action: AttackProtectionCaptchaPolicyActionInput, - description: typing.Optional[str] = OMIT, - request_options: typing.Optional[RequestOptions] = None, - ) -> HttpResponse[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 - ------- - HttpResponse[AttackProtectionCaptchaPolicy] - The CAPTCHA attack protection policy was successfully created. - """ - _response = self._client_wrapper.httpx_client.request( - "attack-protection/captcha/policies", - method="POST", - json={ - "name": name, - "description": description, - "priority": priority, - "match": convert_and_respect_annotation_metadata( - object_=match, annotation=AttackProtectionCaptchaPolicyMatch, direction="write" - ), - "action": convert_and_respect_annotation_metadata( - object_=action, annotation=AttackProtectionCaptchaPolicyActionInput, direction="write" - ), - }, - headers={ - "content-type": "application/json", - }, - request_options=request_options, - omit=OMIT, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - AttackProtectionCaptchaPolicy, - parse_obj_as( - type_=AttackProtectionCaptchaPolicy, # 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 == 409: - raise ConflictError( - 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( - self, id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> HttpResponse[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 - ------- - HttpResponse[AttackProtectionCaptchaPolicy] - The CAPTCHA attack protection policy was successfully retrieved. - """ - _response = self._client_wrapper.httpx_client.request( - f"attack-protection/captcha/policies/{quote_path_param(id)}", - method="GET", - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - AttackProtectionCaptchaPolicy, - parse_obj_as( - type_=AttackProtectionCaptchaPolicy, # 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(self, id: str, *, 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. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - HttpResponse[None] - """ - _response = self._client_wrapper.httpx_client.request( - f"attack-protection/captcha/policies/{quote_path_param(id)}", - 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 == 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 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, - ) -> HttpResponse[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 - ------- - HttpResponse[AttackProtectionCaptchaPolicy] - The CAPTCHA attack protection policy was successfully updated. - """ - _response = self._client_wrapper.httpx_client.request( - f"attack-protection/captcha/policies/{quote_path_param(id)}", - method="PATCH", - json={ - "name": name, - "description": description, - "priority": priority, - "match": convert_and_respect_annotation_metadata( - object_=match, annotation=AttackProtectionCaptchaPolicyMatch, direction="write" - ), - "action": convert_and_respect_annotation_metadata( - object_=action, annotation=AttackProtectionCaptchaPolicyActionInput, direction="write" - ), - }, - headers={ - "content-type": "application/json", - }, - request_options=request_options, - omit=OMIT, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - AttackProtectionCaptchaPolicy, - parse_obj_as( - type_=AttackProtectionCaptchaPolicy, # 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 == 409: - raise ConflictError( - 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) - - -class AsyncRawCaptchaPoliciesClient: - def __init__(self, *, client_wrapper: AsyncClientWrapper): - self._client_wrapper = client_wrapper - - async def list( - self, *, request_options: typing.Optional[RequestOptions] = None - ) -> AsyncHttpResponse[ListAttackProtectionCaptchaPoliciesResponseContent]: - """ - Retrieve all CAPTCHA attack protection policies for the tenant, sorted by priority ascending. - - Parameters - ---------- - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - AsyncHttpResponse[ListAttackProtectionCaptchaPoliciesResponseContent] - The tenant's CAPTCHA attack protection policies were successfully retrieved. - """ - _response = await self._client_wrapper.httpx_client.request( - "attack-protection/captcha/policies", - method="GET", - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - ListAttackProtectionCaptchaPoliciesResponseContent, - parse_obj_as( - type_=ListAttackProtectionCaptchaPoliciesResponseContent, # 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 create( - self, - *, - name: str, - priority: int, - match: AttackProtectionCaptchaPolicyMatch, - action: AttackProtectionCaptchaPolicyActionInput, - description: typing.Optional[str] = OMIT, - request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[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 - ------- - AsyncHttpResponse[AttackProtectionCaptchaPolicy] - The CAPTCHA attack protection policy was successfully created. - """ - _response = await self._client_wrapper.httpx_client.request( - "attack-protection/captcha/policies", - method="POST", - json={ - "name": name, - "description": description, - "priority": priority, - "match": convert_and_respect_annotation_metadata( - object_=match, annotation=AttackProtectionCaptchaPolicyMatch, direction="write" - ), - "action": convert_and_respect_annotation_metadata( - object_=action, annotation=AttackProtectionCaptchaPolicyActionInput, direction="write" - ), - }, - headers={ - "content-type": "application/json", - }, - request_options=request_options, - omit=OMIT, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - AttackProtectionCaptchaPolicy, - parse_obj_as( - type_=AttackProtectionCaptchaPolicy, # 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 == 409: - raise ConflictError( - 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( - self, id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> AsyncHttpResponse[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 - ------- - AsyncHttpResponse[AttackProtectionCaptchaPolicy] - The CAPTCHA attack protection policy was successfully retrieved. - """ - _response = await self._client_wrapper.httpx_client.request( - f"attack-protection/captcha/policies/{quote_path_param(id)}", - method="GET", - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - AttackProtectionCaptchaPolicy, - parse_obj_as( - type_=AttackProtectionCaptchaPolicy, # 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( - self, id: str, *, 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. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - AsyncHttpResponse[None] - """ - _response = await self._client_wrapper.httpx_client.request( - f"attack-protection/captcha/policies/{quote_path_param(id)}", - 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 == 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 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, - ) -> AsyncHttpResponse[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 - ------- - AsyncHttpResponse[AttackProtectionCaptchaPolicy] - The CAPTCHA attack protection policy was successfully updated. - """ - _response = await self._client_wrapper.httpx_client.request( - f"attack-protection/captcha/policies/{quote_path_param(id)}", - method="PATCH", - json={ - "name": name, - "description": description, - "priority": priority, - "match": convert_and_respect_annotation_metadata( - object_=match, annotation=AttackProtectionCaptchaPolicyMatch, direction="write" - ), - "action": convert_and_respect_annotation_metadata( - object_=action, annotation=AttackProtectionCaptchaPolicyActionInput, direction="write" - ), - }, - headers={ - "content-type": "application/json", - }, - request_options=request_options, - omit=OMIT, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - AttackProtectionCaptchaPolicy, - parse_obj_as( - type_=AttackProtectionCaptchaPolicy, # 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 == 409: - raise ConflictError( - 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) 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/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/resource_servers/client.py b/src/auth0/management/resource_servers/client.py index 9eecbf68..ce601684 100644 --- a/src/auth0/management/resource_servers/client.py +++ b/src/auth0/management/resource_servers/client.py @@ -21,6 +21,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 +138,7 @@ def create( proof_of_possession: typing.Optional[ResourceServerProofOfPossession] = OMIT, subject_type_authorization: typing.Optional[ResourceServerSubjectTypeAuthorization] = OMIT, authorization_policy: typing.Optional[ResourceServerAuthorizationPolicy] = OMIT, + type: typing.Optional[ResourceServerTypeEnum] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> CreateResourceServerResponseContent: """ @@ -198,6 +200,8 @@ def create( authorization_policy : typing.Optional[ResourceServerAuthorizationPolicy] + type : typing.Optional[ResourceServerTypeEnum] + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -239,6 +243,7 @@ def create( proof_of_possession=proof_of_possession, subject_type_authorization=subject_type_authorization, authorization_policy=authorization_policy, + type=type, request_options=request_options, ) return _response.data @@ -420,6 +425,7 @@ def update( proof_of_possession: typing.Optional[ResourceServerProofOfPossession] = OMIT, subject_type_authorization: typing.Optional[ResourceServerSubjectTypeAuthorization] = OMIT, authorization_policy: typing.Optional[ResourceServerAuthorizationPolicy] = OMIT, + type: typing.Optional[ResourceServerTypeEnum] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> UpdateResourceServerResponseContent: """ @@ -481,6 +487,8 @@ def update( authorization_policy : typing.Optional[ResourceServerAuthorizationPolicy] + type : typing.Optional[ResourceServerTypeEnum] + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -522,6 +530,7 @@ def update( proof_of_possession=proof_of_possession, subject_type_authorization=subject_type_authorization, authorization_policy=authorization_policy, + type=type, request_options=request_options, ) return _response.data @@ -642,6 +651,7 @@ async def create( proof_of_possession: typing.Optional[ResourceServerProofOfPossession] = OMIT, subject_type_authorization: typing.Optional[ResourceServerSubjectTypeAuthorization] = OMIT, authorization_policy: typing.Optional[ResourceServerAuthorizationPolicy] = OMIT, + type: typing.Optional[ResourceServerTypeEnum] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> CreateResourceServerResponseContent: """ @@ -703,6 +713,8 @@ async def create( authorization_policy : typing.Optional[ResourceServerAuthorizationPolicy] + type : typing.Optional[ResourceServerTypeEnum] + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -752,6 +764,7 @@ async def main() -> None: proof_of_possession=proof_of_possession, subject_type_authorization=subject_type_authorization, authorization_policy=authorization_policy, + type=type, request_options=request_options, ) return _response.data @@ -958,6 +971,7 @@ async def update( proof_of_possession: typing.Optional[ResourceServerProofOfPossession] = OMIT, subject_type_authorization: typing.Optional[ResourceServerSubjectTypeAuthorization] = OMIT, authorization_policy: typing.Optional[ResourceServerAuthorizationPolicy] = OMIT, + type: typing.Optional[ResourceServerTypeEnum] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> UpdateResourceServerResponseContent: """ @@ -1019,6 +1033,8 @@ async def update( authorization_policy : typing.Optional[ResourceServerAuthorizationPolicy] + type : typing.Optional[ResourceServerTypeEnum] + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -1068,6 +1084,7 @@ async def main() -> None: proof_of_possession=proof_of_possession, subject_type_authorization=subject_type_authorization, authorization_policy=authorization_policy, + 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..c723cf2b 100644 --- a/src/auth0/management/resource_servers/raw_client.py +++ b/src/auth0/management/resource_servers/raw_client.py @@ -36,6 +36,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 +200,7 @@ def create( proof_of_possession: typing.Optional[ResourceServerProofOfPossession] = OMIT, subject_type_authorization: typing.Optional[ResourceServerSubjectTypeAuthorization] = OMIT, authorization_policy: typing.Optional[ResourceServerAuthorizationPolicy] = OMIT, + type: typing.Optional[ResourceServerTypeEnum] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[CreateResourceServerResponseContent]: """ @@ -260,6 +262,8 @@ def create( authorization_policy : typing.Optional[ResourceServerAuthorizationPolicy] + type : typing.Optional[ResourceServerTypeEnum] + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -313,6 +317,7 @@ def create( annotation=typing.Optional[ResourceServerAuthorizationPolicy], direction="write", ), + "type": type, }, headers={ "content-type": "application/json", @@ -775,6 +780,7 @@ def update( proof_of_possession: typing.Optional[ResourceServerProofOfPossession] = OMIT, subject_type_authorization: typing.Optional[ResourceServerSubjectTypeAuthorization] = OMIT, authorization_policy: typing.Optional[ResourceServerAuthorizationPolicy] = OMIT, + type: typing.Optional[ResourceServerTypeEnum] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[UpdateResourceServerResponseContent]: """ @@ -836,6 +842,8 @@ def update( authorization_policy : typing.Optional[ResourceServerAuthorizationPolicy] + type : typing.Optional[ResourceServerTypeEnum] + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -888,6 +896,7 @@ def update( annotation=typing.Optional[ResourceServerAuthorizationPolicy], direction="write", ), + "type": type, }, headers={ "content-type": "application/json", @@ -1126,6 +1135,7 @@ async def create( proof_of_possession: typing.Optional[ResourceServerProofOfPossession] = OMIT, subject_type_authorization: typing.Optional[ResourceServerSubjectTypeAuthorization] = OMIT, authorization_policy: typing.Optional[ResourceServerAuthorizationPolicy] = OMIT, + type: typing.Optional[ResourceServerTypeEnum] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[CreateResourceServerResponseContent]: """ @@ -1187,6 +1197,8 @@ async def create( authorization_policy : typing.Optional[ResourceServerAuthorizationPolicy] + type : typing.Optional[ResourceServerTypeEnum] + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -1240,6 +1252,7 @@ async def create( annotation=typing.Optional[ResourceServerAuthorizationPolicy], direction="write", ), + "type": type, }, headers={ "content-type": "application/json", @@ -1707,6 +1720,7 @@ async def update( proof_of_possession: typing.Optional[ResourceServerProofOfPossession] = OMIT, subject_type_authorization: typing.Optional[ResourceServerSubjectTypeAuthorization] = OMIT, authorization_policy: typing.Optional[ResourceServerAuthorizationPolicy] = OMIT, + type: typing.Optional[ResourceServerTypeEnum] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[UpdateResourceServerResponseContent]: """ @@ -1768,6 +1782,8 @@ async def update( authorization_policy : typing.Optional[ResourceServerAuthorizationPolicy] + type : typing.Optional[ResourceServerTypeEnum] + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -1820,6 +1836,7 @@ async def update( annotation=typing.Optional[ResourceServerAuthorizationPolicy], direction="write", ), + "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..63c048e1 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 @@ -432,6 +416,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 +434,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 +629,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 +943,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 +3459,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 @@ -5742,9 +5741,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 ( @@ -5837,6 +5833,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, ) @@ -6085,6 +6082,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 @@ -6568,10 +6566,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 +6632,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 +6728,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", @@ -6852,6 +6834,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 +6852,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 +7045,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 +7327,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 +8417,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", @@ -9782,7 +9773,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", @@ -9847,6 +9837,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", @@ -10065,6 +10056,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", @@ -10518,10 +10510,6 @@ def __dir__(): "AttackProtectionCaptchaAuthChallengeResponseContent", "AttackProtectionCaptchaFriendlyCaptchaResponseContent", "AttackProtectionCaptchaHcaptchaResponseContent", - "AttackProtectionCaptchaPolicy", - "AttackProtectionCaptchaPolicyAction", - "AttackProtectionCaptchaPolicyActionInput", - "AttackProtectionCaptchaPolicyMatch", "AttackProtectionCaptchaProviderId", "AttackProtectionCaptchaRecaptchaEnterpriseResponseContent", "AttackProtectionCaptchaRecaptchaV2ResponseContent", @@ -10588,19 +10576,6 @@ def __dir__(): "BruteForceProtectionModeEnum", "BruteForceProtectionShieldsEnum", "BulkUpdateAculResponseContent", - "CaptchaActiveProviderEnum", - "CaptchaPolicyActionArkose", - "CaptchaPolicyActionArkoseInput", - "CaptchaPolicyActionAuthChallenge", - "CaptchaPolicyActionFriendlyCaptcha", - "CaptchaPolicyActionFriendlyCaptchaInput", - "CaptchaPolicyActionHcaptcha", - "CaptchaPolicyActionHcaptchaInput", - "CaptchaPolicyActionRecaptchaEnterprise", - "CaptchaPolicyActionRecaptchaEnterpriseInput", - "CaptchaPolicyActionRecaptchaV2", - "CaptchaPolicyActionRecaptchaV2Input", - "CaptchaPolicyActionSimpleCaptcha", "CertificateSubjectDnCredential", "CertificateSubjectDnCredentialTypeEnum", "ChangePasswordTicketIdentity", @@ -10697,6 +10672,7 @@ def __dir__(): "ClientOidcBackchannelLogoutInitiatorsModeEnum", "ClientOidcBackchannelLogoutSessionMetadata", "ClientOidcBackchannelLogoutSettings", + "ClientOidcSupport", "ClientOidcSupportAllowedScopesEnum", "ClientOidcSupportPatch", "ClientOidcSupportPost", @@ -10802,6 +10778,7 @@ def __dir__(): "ConnectionClientIdOidc", "ConnectionClientIdPaypal", "ConnectionClientIdSalesforce", + "ConnectionClientIdSamlxaaRequestingApp", "ConnectionClientIdWindowsLive", "ConnectionClientProtocolSaml", "ConnectionClientSecret", @@ -10819,6 +10796,7 @@ def __dir__(): "ConnectionClientSecretOidc", "ConnectionClientSecretPaypal", "ConnectionClientSecretSalesforce", + "ConnectionClientSecretSamlxaaRequestingApp", "ConnectionClientSecretWindowsLive", "ConnectionCommon", "ConnectionCommunityBaseUrlSalesforce", @@ -11011,6 +10989,8 @@ def __dir__(): "ConnectionOptionsWordpress", "ConnectionOptionsYahoo", "ConnectionOptionsYandex", + "ConnectionOtpChannelSettings", + "ConnectionOtpSettings", "ConnectionPasskeyAuthenticationMethod", "ConnectionPasskeyChallengeUiEnum", "ConnectionPasskeyOptions", @@ -11291,6 +11271,7 @@ def __dir__(): "ConnectionsDiscoveryUrl", "ConnectionsMetadata", "ConnectionsOidcMetadata", + "ConsentSigningKey", "ContentSecurityPolicyConfig", "CreateActionModuleResponseContent", "CreateActionModuleVersionResponseContent", @@ -12380,6 +12361,10 @@ def __dir__(): "EventStreamCloudEventContextRequest", "EventStreamCloudEventContextRequestGeo", "EventStreamCloudEventContextTenant", + "EventStreamCloudEventContextTransaction", + "EventStreamCloudEventContextTransactionProtocolEnum", + "EventStreamCloudEventContextTransactionResponseModeEnum", + "EventStreamCloudEventContextTransactionResponseTypeItemEnum", "EventStreamCloudEventData", "EventStreamCloudEventErrorCodeEnum", "EventStreamCloudEventErrorDetail", @@ -13732,7 +13717,6 @@ def __dir__(): "ListAculsOffsetPaginatedResponseContent", "ListAculsResponseContentItem", "ListAgentsResponseContent", - "ListAttackProtectionCaptchaPoliciesResponseContent", "ListBrandingPhoneProvidersResponseContent", "ListClientConnectionsResponseContent", "ListClientGrantOrganizationsPaginatedResponseContent", @@ -13797,6 +13781,7 @@ def __dir__(): "ListUserBlocksByIdentifierResponseContent", "ListUserBlocksResponseContent", "ListUserConnectedAccountsResponseContent", + "ListUserConsentSigningKeysResponseContent", "ListUserEffectivePermissionRoleSourcesResponseContent", "ListUserEffectivePermissionsResponseContent", "ListUserEffectiveRolesResponseContent", @@ -14015,6 +14000,7 @@ def __dir__(): "ResourceServerTokenEncryptionAlgorithmEnum", "ResourceServerTokenEncryptionFormatEnum", "ResourceServerTokenEncryptionKey", + "ResourceServerTypeEnum", "ResourceServerVerificationKeyPemCertificate", "RevokedSigningKeysResponseContent", "Role", 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_auth_challenge.py b/src/auth0/management/types/captcha_policy_action_auth_challenge.py deleted file mode 100644 index a4b6c4e0..00000000 --- a/src/auth0/management/types/captcha_policy_action_auth_challenge.py +++ /dev/null @@ -1,26 +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 CaptchaPolicyActionAuthChallenge(UniversalBaseModel): - """ - Auth Challenge CAPTCHA provider configuration. - """ - - fail_open: typing.Optional[bool] = pydantic.Field(default=None) - """ - Whether to allow access when the challenge provider 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_friendly_captcha.py b/src/auth0/management/types/captcha_policy_action_friendly_captcha.py deleted file mode 100644 index 4181e538..00000000 --- a/src/auth0/management/types/captcha_policy_action_friendly_captcha.py +++ /dev/null @@ -1,26 +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 CaptchaPolicyActionFriendlyCaptcha(UniversalBaseModel): - """ - Friendly Captcha provider configuration. - """ - - site_key: typing.Optional[str] = pydantic.Field(default=None) - """ - The Friendly Captcha site key. - """ - - 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/captcha_policy_action_hcaptcha.py deleted file mode 100644 index 3b763446..00000000 --- a/src/auth0/management/types/captcha_policy_action_hcaptcha.py +++ /dev/null @@ -1,26 +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 CaptchaPolicyActionHcaptcha(UniversalBaseModel): - """ - hCaptcha provider configuration. - """ - - site_key: typing.Optional[str] = pydantic.Field(default=None) - """ - The hCaptcha site key. - """ - - 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_input.py b/src/auth0/management/types/captcha_policy_action_hcaptcha_input.py deleted file mode 100644 index 52666e5f..00000000 --- a/src/auth0/management/types/captcha_policy_action_hcaptcha_input.py +++ /dev/null @@ -1,31 +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 CaptchaPolicyActionHcaptchaInput(UniversalBaseModel): - """ - hCaptcha provider configuration. - """ - - site_key: typing.Optional[str] = pydantic.Field(default=None) - """ - The hCaptcha site key. - """ - - secret: typing.Optional[str] = pydantic.Field(default=None) - """ - The hCaptcha secret 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/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/captcha_policy_action_recaptcha_v_2_input.py b/src/auth0/management/types/captcha_policy_action_recaptcha_v_2_input.py deleted file mode 100644 index 9d38bf32..00000000 --- a/src/auth0/management/types/captcha_policy_action_recaptcha_v_2_input.py +++ /dev/null @@ -1,31 +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 CaptchaPolicyActionRecaptchaV2Input(UniversalBaseModel): - """ - reCAPTCHA v2 provider configuration. - """ - - site_key: typing.Optional[str] = pydantic.Field(default=None) - """ - The reCAPTCHA v2 site key. - """ - - secret: typing.Optional[str] = pydantic.Field(default=None) - """ - The reCAPTCHA v2 secret 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/captcha_policy_action_simple_captcha.py b/src/auth0/management/types/captcha_policy_action_simple_captcha.py deleted file mode 100644 index d730dc0d..00000000 --- a/src/auth0/management/types/captcha_policy_action_simple_captcha.py +++ /dev/null @@ -1,21 +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 CaptchaPolicyActionSimpleCaptcha(UniversalBaseModel): - """ - Simple CAPTCHA provider configuration. - """ - - 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..2415d1da 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) """ diff --git a/src/auth0/management/types/captcha_policy_action_friendly_captcha_input.py b/src/auth0/management/types/client_oidc_support.py similarity index 56% rename from src/auth0/management/types/captcha_policy_action_friendly_captcha_input.py rename to src/auth0/management/types/client_oidc_support.py index fbb19958..5a0009a4 100644 --- a/src/auth0/management/types/captcha_policy_action_friendly_captcha_input.py +++ b/src/auth0/management/types/client_oidc_support.py @@ -4,22 +4,17 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .client_oidc_support_allowed_scopes_enum import ClientOidcSupportAllowedScopesEnum -class CaptchaPolicyActionFriendlyCaptchaInput(UniversalBaseModel): +class ClientOidcSupport(UniversalBaseModel): """ - Friendly Captcha provider configuration. + OIDC support configuration for this client. """ - site_key: typing.Optional[str] = pydantic.Field(default=None) - """ - The Friendly Captcha site key. - """ - - secret: typing.Optional[str] = pydantic.Field(default=None) - """ - The Friendly Captcha secret key. Encrypted at rest. - """ + 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 diff --git a/src/auth0/management/types/client_search_response.py b/src/auth0/management/types/client_search_response.py index 892d794e..85955713 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) """ 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..c6d2c639 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 @@ -31,6 +33,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[ diff --git a/src/auth0/management/types/captcha_policy_action_recaptcha_enterprise.py b/src/auth0/management/types/connection_otp_channel_settings.py similarity index 60% rename from src/auth0/management/types/captcha_policy_action_recaptcha_enterprise.py rename to src/auth0/management/types/connection_otp_channel_settings.py index 30e1748e..591f10de 100644 --- a/src/auth0/management/types/captcha_policy_action_recaptcha_enterprise.py +++ b/src/auth0/management/types/connection_otp_channel_settings.py @@ -6,19 +6,19 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -class CaptchaPolicyActionRecaptchaEnterprise(UniversalBaseModel): +class ConnectionOtpChannelSettings(UniversalBaseModel): """ - reCAPTCHA Enterprise provider configuration. + OTP settings for a delivery channel. """ - site_key: typing.Optional[str] = pydantic.Field(default=None) + otp_length: typing.Optional[int] = pydantic.Field(default=None) """ - The reCAPTCHA Enterprise site key. + Number of digits in the generated one-time password. """ - project_id: typing.Optional[str] = pydantic.Field(default=None) + otp_expiry: typing.Optional[int] = pydantic.Field(default=None) """ - The Google Cloud project ID. + Number of seconds before the one-time password expires. """ if IS_PYDANTIC_V2: diff --git a/src/auth0/management/types/captcha_policy_action_recaptcha_v_2.py b/src/auth0/management/types/connection_otp_settings.py similarity index 60% rename from src/auth0/management/types/captcha_policy_action_recaptcha_v_2.py rename to src/auth0/management/types/connection_otp_settings.py index dc3d9d3d..613b8da5 100644 --- a/src/auth0/management/types/captcha_policy_action_recaptcha_v_2.py +++ b/src/auth0/management/types/connection_otp_settings.py @@ -4,17 +4,16 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .connection_otp_channel_settings import ConnectionOtpChannelSettings -class CaptchaPolicyActionRecaptchaV2(UniversalBaseModel): +class ConnectionOtpSettings(UniversalBaseModel): """ - reCAPTCHA v2 provider configuration. + One-time password settings, configurable per delivery channel. """ - site_key: typing.Optional[str] = pydantic.Field(default=None) - """ - The reCAPTCHA v2 site key. - """ + 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 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..e11d4eae 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) """ 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..62e636e2 100644 --- a/src/auth0/management/types/create_resource_server_response_content.py +++ b/src/auth0/management/types/create_resource_server_response_content.py @@ -12,6 +12,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 +106,8 @@ class CreateResourceServerResponseContent(UniversalBaseModel): The client ID of the client that this resource server is linked to """ + 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..12e7db35 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) """ 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..515de4e7 100644 --- a/src/auth0/management/types/get_resource_server_response_content.py +++ b/src/auth0/management/types/get_resource_server_response_content.py @@ -12,6 +12,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 +106,8 @@ class GetResourceServerResponseContent(UniversalBaseModel): The client ID of the client that this resource server is linked to """ + 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/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_user_consent_signing_keys_response_content.py b/src/auth0/management/types/list_user_consent_signing_keys_response_content.py new file mode 100644 index 00000000..76368180 --- /dev/null +++ b/src/auth0/management/types/list_user_consent_signing_keys_response_content.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +from .consent_signing_key import ConsentSigningKey + +ListUserConsentSigningKeysResponseContent = typing.List[ConsentSigningKey] diff --git a/src/auth0/management/types/resource_server.py b/src/auth0/management/types/resource_server.py index b2b161aa..94ba5362 100644 --- a/src/auth0/management/types/resource_server.py +++ b/src/auth0/management/types/resource_server.py @@ -12,6 +12,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 +106,8 @@ class ResourceServer(UniversalBaseModel): The client ID of the client that this resource server is linked to """ + 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_search_response.py b/src/auth0/management/types/resource_server_search_response.py index 2c9438fb..8f92215f 100644 --- a/src/auth0/management/types/resource_server_search_response.py +++ b/src/auth0/management/types/resource_server_search_response.py @@ -12,6 +12,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 +101,8 @@ class ResourceServerSearchResponse(UniversalBaseModel): The client ID of the client that this resource server is linked to """ + 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..abe4c86a 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) """ 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..a2f4e48c 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) """ 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..9764b4a3 100644 --- a/src/auth0/management/types/update_resource_server_response_content.py +++ b/src/auth0/management/types/update_resource_server_response_content.py @@ -12,6 +12,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 +106,8 @@ class UpdateResourceServerResponseContent(UniversalBaseModel): The client ID of the client that this resource server is linked to """ + 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..ea1a060f 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 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 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..cc2f6797 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 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 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_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_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..baf5e66f 100644 --- a/wiremock/wiremock-mappings.json +++ b/wiremock/wiremock-mappings.json @@ -1019,7 +1019,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 \"external_client_id\": \"external_client_id\",\n \"jwks_uri\": \"jwks_uri\"\n}", "headers": { "Content-Type": "application/json" } @@ -1180,7 +1180,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 \"external_client_id\": \"external_client_id\",\n \"jwks_uri\": \"jwks_uri\"\n}", "headers": { "Content-Type": "application/json" } @@ -1252,7 +1252,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 \"external_client_id\": \"external_client_id\",\n \"jwks_uri\": \"jwks_uri\"\n}", "headers": { "Content-Type": "application/json" } @@ -1288,7 +1288,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 \"external_client_id\": \"external_client_id\",\n \"jwks_uri\": \"jwks_uri\"\n}", "headers": { "Content-Type": "application/json" } @@ -4821,7 +4821,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 \"type\": \"universal_commerce_protocol_server\"\n }\n ]\n}", "headers": { "Content-Type": "application/json" } @@ -4853,7 +4853,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 \"type\": \"universal_commerce_protocol_server\"\n}", "headers": { "Content-Type": "application/json" } @@ -4907,7 +4907,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 \"type\": \"universal_commerce_protocol_server\"\n }\n ],\n \"next\": \"next\"\n}", "headers": { "Content-Type": "application/json" } @@ -4949,7 +4949,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 \"type\": \"universal_commerce_protocol_server\"\n}", "headers": { "Content-Type": "application/json" } @@ -5021,7 +5021,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 \"type\": \"universal_commerce_protocol_server\"\n}", "headers": { "Content-Type": "application/json" } @@ -6888,6 +6888,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 {\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]", + "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 +7934,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 +7966,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 +8046,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 +10929,9 @@ }, "type": { "equalTo": "auth0" + }, + "status": { + "equalTo": "active" } } }, @@ -18231,6 +18177,6 @@ } ], "meta": { - "total": 487 + "total": 485 } } \ No newline at end of file