Skip to content

Commit f0d4fbe

Browse files
authored
feat: add org connection member access level, resource server access token, and client my-organization enforcement settings (#892)
#### Added - **Organization connection member access level**: `management.organizations.connections.create()` accepts a new optional `organization_member_access_level` parameter (`OrganizationMemberAccessLevelEnum`: `"none"`, `"readonly"`, `"limited"`, `"full"`). `update()` accepts `OrganizationMemberAccessLevelEnumWithNull` for the same field (supports nulling). Connection create, get, and update response types expose `organization_member_access_level`. New types: `OrganizationMemberAccessLevelEnum`, `OrganizationMemberAccessLevelEnumWithNull`. - **Resource server access token configuration**: `management.resource_servers.create()`, `management.resource_servers.update()`, and `management.tenants.settings.update()` accept a new optional `access_token` parameter (`ResourceServerAccessToken`) to configure custom claims mapping. `GetResourceServerResponseContent`, `CreateResourceServerResponseContent`, `UpdateResourceServerResponseContent`, `ResourceServer`, `ResourceServerSearchResponse`, `GetTenantSettingsResponseContent`, and `UpdateTenantSettingsResponseContent` expose `access_token`. New types: `ResourceServerAccessToken`, `ResourceServerAccessTokenClaimsMapping`, `ResourceServerAccessTokenCustomClaimsMapping`, `ResourceServerAccessTokenCustomClaimsMappingRule`. - **Client My Organization enforcement settings**: `ClientMyOrganizationResponseConfiguration`, `ClientMyOrganizationPatchConfiguration`, and `ClientMyOrganizationPostConfiguration` gain two new optional boolean fields: `enforce_permission_ceiling` (when true, limits the permissions admins can assign to members to only those they hold themselves) and `enforce_self_assignment_restriction` (when true, prevents admins from assigning permissions to themselves).
2 parents 138abc6 + d41ca12 commit f0d4fbe

31 files changed

Lines changed: 427 additions & 40 deletions

‎.fern/replay.lock‎

Lines changed: 87 additions & 27 deletions
Large diffs are not rendered by default.

‎reference.md‎

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12748,6 +12748,14 @@ client.resource_servers.create(
1274812748
<dl>
1274912749
<dd>
1275012750

12751+
**access_token:** `typing.Optional[ResourceServerAccessToken]`
12752+
12753+
</dd>
12754+
</dl>
12755+
12756+
<dl>
12757+
<dd>
12758+
1275112759
**token_encryption:** `typing.Optional[ResourceServerTokenEncryption]`
1275212760

1275312761
</dd>
@@ -13250,6 +13258,14 @@ client.resource_servers.update(
1325013258
<dl>
1325113259
<dd>
1325213260

13261+
**access_token:** `typing.Optional[ResourceServerAccessToken]`
13262+
13263+
</dd>
13264+
</dl>
13265+
13266+
<dl>
13267+
<dd>
13268+
1325313269
**token_encryption:** `typing.Optional[ResourceServerTokenEncryption]`
1325413270

1325513271
</dd>
@@ -33106,6 +33122,14 @@ client.organizations.connections.create(
3310633122
<dl>
3310733123
<dd>
3310833124

33125+
**organization_member_access_level:** `typing.Optional[OrganizationMemberAccessLevelEnum]`
33126+
33127+
</dd>
33128+
</dl>
33129+
33130+
<dl>
33131+
<dd>
33132+
3310933133
**is_enabled:** `typing.Optional[bool]` — Whether the connection is enabled for the organization.
3311033134

3311133135
</dd>
@@ -33358,6 +33382,14 @@ client.organizations.connections.update(
3335833382
<dl>
3335933383
<dd>
3336033384

33385+
**organization_member_access_level:** `typing.Optional[OrganizationMemberAccessLevelEnumWithNull]`
33386+
33387+
</dd>
33388+
</dl>
33389+
33390+
<dl>
33391+
<dd>
33392+
3336133393
**is_enabled:** `typing.Optional[bool]` — Whether the connection is enabled for the organization.
3336233394

3336333395
</dd>
@@ -39017,6 +39049,14 @@ client.tenants.settings.update()
3901739049
<dl>
3901839050
<dd>
3901939051

39052+
**access_token:** `typing.Optional[ResourceServerAccessToken]`
39053+
39054+
</dd>
39055+
</dl>
39056+
39057+
<dl>
39058+
<dd>
39059+
3902039060
**security_headers:** `typing.Optional[TenantSettingsNullableSecurityHeaders]`
3902139061

3902239062
</dd>

‎src/auth0/management/__init__.py‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3372,6 +3372,8 @@
33723372
OrganizationInvitationInvitee,
33733373
OrganizationInvitationInviter,
33743374
OrganizationMember,
3375+
OrganizationMemberAccessLevelEnum,
3376+
OrganizationMemberAccessLevelEnumWithNull,
33753377
OrganizationMemberEffectiveRole,
33763378
OrganizationMemberEffectiveRoleSource,
33773379
OrganizationMemberRole,
@@ -3454,6 +3456,10 @@
34543456
ResetPhoneTemplateRequestContent,
34553457
ResetPhoneTemplateResponseContent,
34563458
ResourceServer,
3459+
ResourceServerAccessToken,
3460+
ResourceServerAccessTokenClaimsMapping,
3461+
ResourceServerAccessTokenCustomClaimsMapping,
3462+
ResourceServerAccessTokenCustomClaimsMappingRule,
34573463
ResourceServerAuthorizationPolicy,
34583464
ResourceServerConsentPolicyEnum,
34593465
ResourceServerProofOfPossession,
@@ -7264,6 +7270,8 @@
72647270
"OrganizationInvitationInvitee": ".types",
72657271
"OrganizationInvitationInviter": ".types",
72667272
"OrganizationMember": ".types",
7273+
"OrganizationMemberAccessLevelEnum": ".types",
7274+
"OrganizationMemberAccessLevelEnumWithNull": ".types",
72677275
"OrganizationMemberEffectiveRole": ".types",
72687276
"OrganizationMemberEffectiveRoleSource": ".types",
72697277
"OrganizationMemberRole": ".types",
@@ -7348,6 +7356,10 @@
73487356
"ResetPhoneTemplateRequestContent": ".types",
73497357
"ResetPhoneTemplateResponseContent": ".types",
73507358
"ResourceServer": ".types",
7359+
"ResourceServerAccessToken": ".types",
7360+
"ResourceServerAccessTokenClaimsMapping": ".types",
7361+
"ResourceServerAccessTokenCustomClaimsMapping": ".types",
7362+
"ResourceServerAccessTokenCustomClaimsMappingRule": ".types",
73517363
"ResourceServerAuthorizationPolicy": ".types",
73527364
"ResourceServerConsentPolicyEnum": ".types",
73537365
"ResourceServerProofOfPossession": ".types",
@@ -11162,6 +11174,8 @@ def __dir__():
1116211174
"OrganizationInvitationInvitee",
1116311175
"OrganizationInvitationInviter",
1116411176
"OrganizationMember",
11177+
"OrganizationMemberAccessLevelEnum",
11178+
"OrganizationMemberAccessLevelEnumWithNull",
1116511179
"OrganizationMemberEffectiveRole",
1116611180
"OrganizationMemberEffectiveRoleSource",
1116711181
"OrganizationMemberRole",
@@ -11246,6 +11260,10 @@ def __dir__():
1124611260
"ResetPhoneTemplateRequestContent",
1124711261
"ResetPhoneTemplateResponseContent",
1124811262
"ResourceServer",
11263+
"ResourceServerAccessToken",
11264+
"ResourceServerAccessTokenClaimsMapping",
11265+
"ResourceServerAccessTokenCustomClaimsMapping",
11266+
"ResourceServerAccessTokenCustomClaimsMappingRule",
1124911267
"ResourceServerAuthorizationPolicy",
1125011268
"ResourceServerConsentPolicyEnum",
1125111269
"ResourceServerProofOfPossession",

‎src/auth0/management/organizations/connections/client.py‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
from ...types.organization_access_level_enum import OrganizationAccessLevelEnum
1414
from ...types.organization_access_level_enum_with_null import OrganizationAccessLevelEnumWithNull
1515
from ...types.organization_all_connection_post import OrganizationAllConnectionPost
16+
from ...types.organization_member_access_level_enum import OrganizationMemberAccessLevelEnum
17+
from ...types.organization_member_access_level_enum_with_null import OrganizationMemberAccessLevelEnumWithNull
1618
from ...types.update_organization_all_connection_response_content import UpdateOrganizationAllConnectionResponseContent
1719
from .raw_client import AsyncRawConnectionsClient, RawConnectionsClient
1820

@@ -110,6 +112,7 @@ def create(
110112
show_as_button: typing.Optional[bool] = OMIT,
111113
is_signup_enabled: typing.Optional[bool] = OMIT,
112114
organization_access_level: typing.Optional[OrganizationAccessLevelEnum] = OMIT,
115+
organization_member_access_level: typing.Optional[OrganizationMemberAccessLevelEnum] = OMIT,
113116
is_enabled: typing.Optional[bool] = OMIT,
114117
request_options: typing.Optional[RequestOptions] = None,
115118
) -> CreateOrganizationAllConnectionResponseContent:
@@ -136,6 +139,8 @@ def create(
136139
137140
organization_access_level : typing.Optional[OrganizationAccessLevelEnum]
138141
142+
organization_member_access_level : typing.Optional[OrganizationMemberAccessLevelEnum]
143+
139144
is_enabled : typing.Optional[bool]
140145
Whether the connection is enabled for the organization.
141146
@@ -167,6 +172,7 @@ def create(
167172
show_as_button=show_as_button,
168173
is_signup_enabled=is_signup_enabled,
169174
organization_access_level=organization_access_level,
175+
organization_member_access_level=organization_member_access_level,
170176
is_enabled=is_enabled,
171177
request_options=request_options,
172178
)
@@ -249,6 +255,7 @@ def update(
249255
show_as_button: typing.Optional[bool] = OMIT,
250256
is_signup_enabled: typing.Optional[bool] = OMIT,
251257
organization_access_level: typing.Optional[OrganizationAccessLevelEnumWithNull] = OMIT,
258+
organization_member_access_level: typing.Optional[OrganizationMemberAccessLevelEnumWithNull] = OMIT,
252259
is_enabled: typing.Optional[bool] = OMIT,
253260
request_options: typing.Optional[RequestOptions] = None,
254261
) -> UpdateOrganizationAllConnectionResponseContent:
@@ -275,6 +282,8 @@ def update(
275282
276283
organization_access_level : typing.Optional[OrganizationAccessLevelEnumWithNull]
277284
285+
organization_member_access_level : typing.Optional[OrganizationMemberAccessLevelEnumWithNull]
286+
278287
is_enabled : typing.Optional[bool]
279288
Whether the connection is enabled for the organization.
280289
@@ -306,6 +315,7 @@ def update(
306315
show_as_button=show_as_button,
307316
is_signup_enabled=is_signup_enabled,
308317
organization_access_level=organization_access_level,
318+
organization_member_access_level=organization_member_access_level,
309319
is_enabled=is_enabled,
310320
request_options=request_options,
311321
)
@@ -411,6 +421,7 @@ async def create(
411421
show_as_button: typing.Optional[bool] = OMIT,
412422
is_signup_enabled: typing.Optional[bool] = OMIT,
413423
organization_access_level: typing.Optional[OrganizationAccessLevelEnum] = OMIT,
424+
organization_member_access_level: typing.Optional[OrganizationMemberAccessLevelEnum] = OMIT,
414425
is_enabled: typing.Optional[bool] = OMIT,
415426
request_options: typing.Optional[RequestOptions] = None,
416427
) -> CreateOrganizationAllConnectionResponseContent:
@@ -437,6 +448,8 @@ async def create(
437448
438449
organization_access_level : typing.Optional[OrganizationAccessLevelEnum]
439450
451+
organization_member_access_level : typing.Optional[OrganizationMemberAccessLevelEnum]
452+
440453
is_enabled : typing.Optional[bool]
441454
Whether the connection is enabled for the organization.
442455
@@ -476,6 +489,7 @@ async def main() -> None:
476489
show_as_button=show_as_button,
477490
is_signup_enabled=is_signup_enabled,
478491
organization_access_level=organization_access_level,
492+
organization_member_access_level=organization_member_access_level,
479493
is_enabled=is_enabled,
480494
request_options=request_options,
481495
)
@@ -576,6 +590,7 @@ async def update(
576590
show_as_button: typing.Optional[bool] = OMIT,
577591
is_signup_enabled: typing.Optional[bool] = OMIT,
578592
organization_access_level: typing.Optional[OrganizationAccessLevelEnumWithNull] = OMIT,
593+
organization_member_access_level: typing.Optional[OrganizationMemberAccessLevelEnumWithNull] = OMIT,
579594
is_enabled: typing.Optional[bool] = OMIT,
580595
request_options: typing.Optional[RequestOptions] = None,
581596
) -> UpdateOrganizationAllConnectionResponseContent:
@@ -602,6 +617,8 @@ async def update(
602617
603618
organization_access_level : typing.Optional[OrganizationAccessLevelEnumWithNull]
604619
620+
organization_member_access_level : typing.Optional[OrganizationMemberAccessLevelEnumWithNull]
621+
605622
is_enabled : typing.Optional[bool]
606623
Whether the connection is enabled for the organization.
607624
@@ -641,6 +658,7 @@ async def main() -> None:
641658
show_as_button=show_as_button,
642659
is_signup_enabled=is_signup_enabled,
643660
organization_access_level=organization_access_level,
661+
organization_member_access_level=organization_member_access_level,
644662
is_enabled=is_enabled,
645663
request_options=request_options,
646664
)

‎src/auth0/management/organizations/connections/raw_client.py‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
from ...types.organization_access_level_enum import OrganizationAccessLevelEnum
2626
from ...types.organization_access_level_enum_with_null import OrganizationAccessLevelEnumWithNull
2727
from ...types.organization_all_connection_post import OrganizationAllConnectionPost
28+
from ...types.organization_member_access_level_enum import OrganizationMemberAccessLevelEnum
29+
from ...types.organization_member_access_level_enum_with_null import OrganizationMemberAccessLevelEnumWithNull
2830
from ...types.update_organization_all_connection_response_content import UpdateOrganizationAllConnectionResponseContent
2931
from pydantic import ValidationError
3032

@@ -168,6 +170,7 @@ def create(
168170
show_as_button: typing.Optional[bool] = OMIT,
169171
is_signup_enabled: typing.Optional[bool] = OMIT,
170172
organization_access_level: typing.Optional[OrganizationAccessLevelEnum] = OMIT,
173+
organization_member_access_level: typing.Optional[OrganizationMemberAccessLevelEnum] = OMIT,
171174
is_enabled: typing.Optional[bool] = OMIT,
172175
request_options: typing.Optional[RequestOptions] = None,
173176
) -> HttpResponse[CreateOrganizationAllConnectionResponseContent]:
@@ -194,6 +197,8 @@ def create(
194197
195198
organization_access_level : typing.Optional[OrganizationAccessLevelEnum]
196199
200+
organization_member_access_level : typing.Optional[OrganizationMemberAccessLevelEnum]
201+
197202
is_enabled : typing.Optional[bool]
198203
Whether the connection is enabled for the organization.
199204
@@ -214,6 +219,7 @@ def create(
214219
"show_as_button": show_as_button,
215220
"is_signup_enabled": is_signup_enabled,
216221
"organization_access_level": organization_access_level,
222+
"organization_member_access_level": organization_member_access_level,
217223
"is_enabled": is_enabled,
218224
"connection_id": connection_id,
219225
},
@@ -475,6 +481,7 @@ def update(
475481
show_as_button: typing.Optional[bool] = OMIT,
476482
is_signup_enabled: typing.Optional[bool] = OMIT,
477483
organization_access_level: typing.Optional[OrganizationAccessLevelEnumWithNull] = OMIT,
484+
organization_member_access_level: typing.Optional[OrganizationMemberAccessLevelEnumWithNull] = OMIT,
478485
is_enabled: typing.Optional[bool] = OMIT,
479486
request_options: typing.Optional[RequestOptions] = None,
480487
) -> HttpResponse[UpdateOrganizationAllConnectionResponseContent]:
@@ -501,6 +508,8 @@ def update(
501508
502509
organization_access_level : typing.Optional[OrganizationAccessLevelEnumWithNull]
503510
511+
organization_member_access_level : typing.Optional[OrganizationMemberAccessLevelEnumWithNull]
512+
504513
is_enabled : typing.Optional[bool]
505514
Whether the connection is enabled for the organization.
506515
@@ -521,6 +530,7 @@ def update(
521530
"show_as_button": show_as_button,
522531
"is_signup_enabled": is_signup_enabled,
523532
"organization_access_level": organization_access_level,
533+
"organization_member_access_level": organization_member_access_level,
524534
"is_enabled": is_enabled,
525535
},
526536
headers={
@@ -732,6 +742,7 @@ async def create(
732742
show_as_button: typing.Optional[bool] = OMIT,
733743
is_signup_enabled: typing.Optional[bool] = OMIT,
734744
organization_access_level: typing.Optional[OrganizationAccessLevelEnum] = OMIT,
745+
organization_member_access_level: typing.Optional[OrganizationMemberAccessLevelEnum] = OMIT,
735746
is_enabled: typing.Optional[bool] = OMIT,
736747
request_options: typing.Optional[RequestOptions] = None,
737748
) -> AsyncHttpResponse[CreateOrganizationAllConnectionResponseContent]:
@@ -758,6 +769,8 @@ async def create(
758769
759770
organization_access_level : typing.Optional[OrganizationAccessLevelEnum]
760771
772+
organization_member_access_level : typing.Optional[OrganizationMemberAccessLevelEnum]
773+
761774
is_enabled : typing.Optional[bool]
762775
Whether the connection is enabled for the organization.
763776
@@ -778,6 +791,7 @@ async def create(
778791
"show_as_button": show_as_button,
779792
"is_signup_enabled": is_signup_enabled,
780793
"organization_access_level": organization_access_level,
794+
"organization_member_access_level": organization_member_access_level,
781795
"is_enabled": is_enabled,
782796
"connection_id": connection_id,
783797
},
@@ -1039,6 +1053,7 @@ async def update(
10391053
show_as_button: typing.Optional[bool] = OMIT,
10401054
is_signup_enabled: typing.Optional[bool] = OMIT,
10411055
organization_access_level: typing.Optional[OrganizationAccessLevelEnumWithNull] = OMIT,
1056+
organization_member_access_level: typing.Optional[OrganizationMemberAccessLevelEnumWithNull] = OMIT,
10421057
is_enabled: typing.Optional[bool] = OMIT,
10431058
request_options: typing.Optional[RequestOptions] = None,
10441059
) -> AsyncHttpResponse[UpdateOrganizationAllConnectionResponseContent]:
@@ -1065,6 +1080,8 @@ async def update(
10651080
10661081
organization_access_level : typing.Optional[OrganizationAccessLevelEnumWithNull]
10671082
1083+
organization_member_access_level : typing.Optional[OrganizationMemberAccessLevelEnumWithNull]
1084+
10681085
is_enabled : typing.Optional[bool]
10691086
Whether the connection is enabled for the organization.
10701087
@@ -1085,6 +1102,7 @@ async def update(
10851102
"show_as_button": show_as_button,
10861103
"is_signup_enabled": is_signup_enabled,
10871104
"organization_access_level": organization_access_level,
1105+
"organization_member_access_level": organization_member_access_level,
10881106
"is_enabled": is_enabled,
10891107
},
10901108
headers={

0 commit comments

Comments
 (0)