@@ -11,11 +11,6 @@ A guide to migrating the Auth0 Python SDK from v5 to v6.
1111 - [ ` ConnectionAttributeIdentifier ` split into three types] ( #connectionattributeidentifier-split-into-three-types )
1212 - [ ` PhoneProviderProtectionBackoffStrategyEnum ` value renamed] ( #phoneproviderprotectionbackoffstrategyenum-value-renamed )
1313 - [ ` ListRolesOffsetPaginatedResponseContent ` pagination fields now required] ( #listrolesoffsetpaginatedresponsecontent-pagination-fields-now-required )
14- - [ New features] ( #new-features )
15- - [ Network ACL: ` auth0_managed ` field] ( #network-acl-auth0_managed-field )
16- - [ Organizations: role members endpoint] ( #organizations-role-members-endpoint )
17- - [ Organizations: third-party client access] ( #organizations-third-party-client-access )
18- - [ Other additions] ( #other-additions )
1914
2015## Overall changes
2116
6156- ` UpdateConnectionOptions `
6257
6358Any code reading or setting this field on the above types will need to
64- remove that usage; passing it will simply be dropped as an unrecognized
65- field.
59+ remove that usage. Note that these models are configured with
60+ ` extra="allow" ` , so passing ` federated_connections_access_tokens ` is ** not**
61+ silently dropped — it is retained on the model and still serialized into the
62+ outbound request. Remove the field explicitly rather than relying on the SDK
63+ to strip it.
6664
6765### ` read:federated_connections_tokens ` / ` delete:federated_connections_tokens ` scopes removed
6866
@@ -101,14 +99,14 @@ It is replaced by three narrower types, one per attribute:
10199# v5
102100from auth0.management.types import ConnectionAttributeIdentifier
103101
104- identifier = ConnectionAttributeIdentifier(active = True , default_method = " email " )
102+ identifier = ConnectionAttributeIdentifier(active = True , default_method = " email_otp " )
105103```
106104
107105``` python
108106# v6
109107from auth0.management.types import EmailAttributeIdentifier
110108
111- identifier = EmailAttributeIdentifier(active = True , default_method = " email " )
109+ identifier = EmailAttributeIdentifier(active = True , default_method = " email_otp " )
112110```
113111
114112` EmailAttributeIdentifier ` has the same shape as the old
@@ -157,65 +155,3 @@ Deserializing a role-list response that is missing any of these fields now
157155raises ` pydantic.ValidationError ` instead of silently defaulting to ` None ` .
158156This matches the Management API, which always returns these fields for this
159157endpoint.
160-
161- ## New features
162-
163- ### Network ACL: ` auth0_managed ` field
164-
165- ` NetworkAclMatch ` gains an optional ` auth0_managed: Optional[List[str]] `
166- field (serialized as ` auth0_managed ` ), available on both the ` match ` and
167- ` not_match ` rule blocks. Use it to reference Auth0-managed lists when
168- matching or excluding traffic:
169-
170- ``` python
171- from auth0.management.types import NetworkAclMatch
172-
173- match = NetworkAclMatch(auth_0_managed = [" tor-exit-nodes" ])
174- ```
175-
176- The Python attribute is ` auth_0_managed ` ; it serializes to ` auth0_managed `
177- over the wire. Both spellings are accepted as the constructor keyword.
178-
179- ### Organizations: role members endpoint
180-
181- New sub-clients ` organizations.roles ` and ` organizations.roles.members `
182- expose ` GET /api/v2/organizations/{id}/roles/{role_id}/members ` :
183-
184- ``` python
185- for member in client.organizations.roles.members.list(id = " org_id" , role_id = " role_id" ):
186- print (member)
187- ```
188-
189- This returns a ` SyncPager ` /` AsyncPager ` of ` RoleMember ` , wrapping
190- ` ListOrganizationRoleMembersResponseContent ` .
191-
192- ### Organizations: third-party client access
193-
194- ` create() ` /` update() ` and all organization response types gain
195- ` third_party_client_access: Optional[OrganizationThirdPartyClientAccessEnum] `
196- (` Literal["block", "allow"] ` ), controlling whether third-party clients can
197- access the organization.
198-
199- ### Other additions
200-
201- - ** Grants** : ` UserGrant.organization_id: Optional[str] ` (read-only), returned
202- from ` GET /grants ` .
203- - ** Connections** : ` discovery_url ` / ` oidc_metadata ` are now available on
204- ` samlp ` connections (previously OIDC-only), via new ` ConnectionsDiscoveryUrl `
205- / ` ConnectionsOidcMetadata ` on ` ConnectionPropertiesOptions ` and
206- ` UpdateConnectionOptions ` .
207- - ** Event Streams** : new event-type values ` connection.created ` ,
208- ` connection.deleted ` , ` connection.updated ` on ` EventStreamEventTypeEnum ` ,
209- ` EventStreamDeliveryEventTypeEnum ` , ` EventStreamSubscribeEventsEventTypeEnum ` ,
210- and ` EventStreamTestEventTypeEnum ` ; new
211- ` EventStreamCloudEventConnection{Created,Deleted,Updated}* ` payload types;
212- and ` EventStreamSubscribeEventsResponseContent ` extended with the
213- connection event variants.
214- - ** Token Vault** : new ` grants: Optional[List[TokenVaultPrivilegedAccessGrant]] `
215- on the privileged-access credential/public-key types.
216- ` TokenVaultPrivilegedAccessGrant ` : ` {connection: str, scopes: List[str]} ` .
217- - ** Errors** : new error body types ` NotFoundErrorBody ` /` NotFoundErrorBodyError `
218- and ` TooManyRequestsErrorBody ` /` TooManyRequestsErrorBodyError ` .
219- - ** CloudEvent** : ` specversion ` is now typed as
220- ` EventStreamCloudEventSpecVersionEnum ` (` Literal["1.0"] ` + ` Any ` fallback)
221- instead of ` str ` , across group/org/user CloudEvent types.
0 commit comments