From 7da240acfa365a6850588e7fbba7a228b4e7438b Mon Sep 17 00:00:00 2001 From: "workos-sdk-automation[bot]" <255426317+workos-sdk-automation[bot]@users.noreply.github.com> Date: Thu, 24 Sep 2026 14:13:28 +0000 Subject: [PATCH 1/2] chore(generated): regenerate shared files for Authorization --- .last-synced-sha | 2 +- .oagen-manifest.json | 2 + src/workos/authorization/models/__init__.py | 3 + .../models/user_role_assignment_source.py | 15 +++- .../user_role_assignment_source_group.py | 7 ++ src/workos/common/__init__.py | 2 +- src/workos/common/models/__init__.py | 78 ++++++++++++++++++- src/workos/pipes/models/__init__.py | 7 +- tests/fixtures/list_user_role_assignment.json | 3 +- tests/fixtures/user_role_assignment.json | 3 +- .../fixtures/user_role_assignment_source.json | 3 +- .../user_role_assignment_source_group.json | 4 + tests/test_authorization_models_round_trip.py | 29 ++++++- 13 files changed, 142 insertions(+), 16 deletions(-) create mode 100644 src/workos/authorization/models/user_role_assignment_source_group.py create mode 100644 tests/fixtures/user_role_assignment_source_group.json diff --git a/.last-synced-sha b/.last-synced-sha index b7efc9db..89fbe35a 100644 --- a/.last-synced-sha +++ b/.last-synced-sha @@ -1 +1 @@ -13ba15b32754d2d635b7799ab779867df2b611d6 +6f037208ce812063908f97744b4aaf4fdf570351 diff --git a/.oagen-manifest.json b/.oagen-manifest.json index 2f027a66..f04e001b 100644 --- a/.oagen-manifest.json +++ b/.oagen-manifest.json @@ -98,6 +98,7 @@ "src/workos/authorization/models/user_role_assignment.py", "src/workos/authorization/models/user_role_assignment_resource.py", "src/workos/authorization/models/user_role_assignment_source.py", + "src/workos/authorization/models/user_role_assignment_source_group.py", "src/workos/client_api/__init__.py", "src/workos/client_api/_resource.py", "src/workos/client_api/models/__init__.py", @@ -1496,6 +1497,7 @@ "tests/fixtures/user_role_assignment.json", "tests/fixtures/user_role_assignment_resource.json", "tests/fixtures/user_role_assignment_source.json", + "tests/fixtures/user_role_assignment_source_group.json", "tests/fixtures/user_sessions_impersonator.json", "tests/fixtures/user_sessions_list_item.json", "tests/fixtures/user_updated.json", diff --git a/src/workos/authorization/models/__init__.py b/src/workos/authorization/models/__init__.py index 3923b6cd..f043ea65 100644 --- a/src/workos/authorization/models/__init__.py +++ b/src/workos/authorization/models/__init__.py @@ -61,3 +61,6 @@ from .user_role_assignment_source import ( UserRoleAssignmentSource as UserRoleAssignmentSource, ) +from .user_role_assignment_source_group import ( + UserRoleAssignmentSourceGroup as UserRoleAssignmentSourceGroup, +) diff --git a/src/workos/authorization/models/user_role_assignment_source.py b/src/workos/authorization/models/user_role_assignment_source.py index 0b4dfd07..42eda19f 100644 --- a/src/workos/authorization/models/user_role_assignment_source.py +++ b/src/workos/authorization/models/user_role_assignment_source.py @@ -4,13 +4,15 @@ from dataclasses import dataclass from enum import Enum -from typing import Any +from typing import Any, cast from workos._types import _raise_deserialize_error from workos.common.models.user_role_assignment_source_type import ( UserRoleAssignmentSourceType, ) +from .user_role_assignment_source_group import UserRoleAssignmentSourceGroup + @dataclass(slots=True) class UserRoleAssignmentSource: @@ -20,6 +22,8 @@ class UserRoleAssignmentSource: """Whether the role was assigned directly or derived from a group.""" group_role_assignment_id: str | None """The ID of the group role assignment the role was derived from, or null if direct.""" + group: UserRoleAssignmentSourceGroup | None + """The group the role was derived from, or null if direct.""" @classmethod def from_dict(cls, data: dict[str, Any]) -> UserRoleAssignmentSource: @@ -28,6 +32,11 @@ def from_dict(cls, data: dict[str, Any]) -> UserRoleAssignmentSource: return cls( type=UserRoleAssignmentSourceType(data["type"]), group_role_assignment_id=data["group_role_assignment_id"], + group=UserRoleAssignmentSourceGroup.from_dict( + cast(dict[str, Any], _v_group) + ) + if (_v_group := data["group"]) is not None + else None, ) except (KeyError, ValueError) as e: _raise_deserialize_error("UserRoleAssignmentSource", e) @@ -40,4 +49,8 @@ def to_dict(self) -> dict[str, Any]: result["group_role_assignment_id"] = self.group_role_assignment_id else: result["group_role_assignment_id"] = None + if self.group is not None: + result["group"] = self.group.to_dict() + else: + result["group"] = None return result diff --git a/src/workos/authorization/models/user_role_assignment_source_group.py b/src/workos/authorization/models/user_role_assignment_source_group.py new file mode 100644 index 00000000..a0dd9147 --- /dev/null +++ b/src/workos/authorization/models/user_role_assignment_source_group.py @@ -0,0 +1,7 @@ +# This file is auto-generated by oagen. Do not edit. + +from typing import TypeAlias + +from workos.common.models.actor import Actor + +UserRoleAssignmentSourceGroup: TypeAlias = Actor diff --git a/src/workos/common/__init__.py b/src/workos/common/__init__.py index a8aff35c..134eadb4 100644 --- a/src/workos/common/__init__.py +++ b/src/workos/common/__init__.py @@ -1,5 +1,6 @@ # This file is auto-generated by oagen. Do not edit. +from .models import * from .models import ( AccessTokenAgentRegistrationCredentialIssuedDataDetail as AccessTokenAgentRegistrationCredentialIssuedDataDetail, ) @@ -221,7 +222,6 @@ from .models import ConnectedAccount as ConnectedAccount from .models import ConnectedAccountAuthMethod as ConnectedAccountAuthMethod from .models import ConnectedAccountConnectionRole as ConnectedAccountConnectionRole -from .models import ConnectedAccountInput as ConnectedAccountInput from .models import ConnectedAccountInputState as ConnectedAccountInputState from .models import ConnectedAccountState as ConnectedAccountState from .models import ConnectionActivated as ConnectionActivated diff --git a/src/workos/common/models/__init__.py b/src/workos/common/models/__init__.py index 688edaf8..9e76b7e4 100644 --- a/src/workos/common/models/__init__.py +++ b/src/workos/common/models/__init__.py @@ -54,10 +54,12 @@ from .agent_instance_created_data import ( AgentInstanceCreatedData as AgentInstanceCreatedData, ) +from .agent_instance_created_data_type import * from .agent_instance_deleted import AgentInstanceDeleted as AgentInstanceDeleted from .agent_instance_deleted_data import ( AgentInstanceDeletedData as AgentInstanceDeletedData, ) +from .agent_instance_deleted_data_type import * from .agent_instance_session_created import ( AgentInstanceSessionCreated as AgentInstanceSessionCreated, ) @@ -98,6 +100,9 @@ from .agent_registration_created_data_agent_identity import ( AgentRegistrationCreatedDataAgentIdentity as AgentRegistrationCreatedDataAgentIdentity, ) +from .agent_registration_created_data_kind import * +from .agent_registration_created_data_method import * +from .agent_registration_created_data_status import * from .agent_registration_credential_issued import ( AgentRegistrationCredentialIssued as AgentRegistrationCredentialIssued, ) @@ -294,6 +299,7 @@ from .authentication_radar_risk_detected_data import ( AuthenticationRadarRiskDetectedData as AuthenticationRadarRiskDetectedData, ) +from .authentication_radar_risk_detected_data_action import * from .authentication_reauthentication_succeeded import ( AuthenticationReauthenticationSucceeded as AuthenticationReauthenticationSucceeded, ) @@ -363,7 +369,7 @@ from .connected_account_connection_role import ( ConnectedAccountConnectionRole as ConnectedAccountConnectionRole, ) -from .connected_account_input import ConnectedAccountInput as ConnectedAccountInput +from .connected_account_input import * from .connected_account_input_state import ( ConnectedAccountInputState as ConnectedAccountInputState, ) @@ -372,18 +378,26 @@ from .connection_activated_data import ( ConnectionActivatedData as ConnectionActivatedData, ) +from .connection_activated_data_connection_type import * from .connection_activated_data_domain import ( ConnectionActivatedDataDomain as ConnectionActivatedDataDomain, ) +from .connection_activated_data_state import * +from .connection_activated_data_status import * from .connection_deactivated import ConnectionDeactivated as ConnectionDeactivated from .connection_deactivated_data import ( ConnectionDeactivatedData as ConnectionDeactivatedData, ) +from .connection_deactivated_data_connection_type import * from .connection_deactivated_data_domain import ( ConnectionDeactivatedDataDomain as ConnectionDeactivatedDataDomain, ) +from .connection_deactivated_data_state import * +from .connection_deactivated_data_status import * from .connection_deleted import ConnectionDeleted as ConnectionDeleted from .connection_deleted_data import ConnectionDeletedData as ConnectionDeletedData +from .connection_deleted_data_connection_type import * +from .connection_deleted_data_state import * from .connection_saml_certificate_renewal_required import ( ConnectionSAMLCertificateRenewalRequired as ConnectionSAMLCertificateRenewalRequired, ) @@ -393,6 +407,7 @@ from .connection_saml_certificate_renewal_required_data_certificate import ( ConnectionSAMLCertificateRenewalRequiredDataCertificate as ConnectionSAMLCertificateRenewalRequiredDataCertificate, ) +from .connection_saml_certificate_renewal_required_data_certificate_certificate_type import * from .connection_saml_certificate_renewal_required_data_connection import ( ConnectionSAMLCertificateRenewalRequiredDataConnection as ConnectionSAMLCertificateRenewalRequiredDataConnection, ) @@ -405,6 +420,7 @@ from .connection_saml_certificate_renewed_data_certificate import ( ConnectionSAMLCertificateRenewedDataCertificate as ConnectionSAMLCertificateRenewedDataCertificate, ) +from .connection_saml_certificate_renewed_data_certificate_certificate_type import * from .connection_saml_certificate_renewed_data_connection import ( ConnectionSAMLCertificateRenewedDataConnection as ConnectionSAMLCertificateRenewedDataConnection, ) @@ -513,6 +529,7 @@ from .directory_type import DirectoryType as DirectoryType from .directory_user import DirectoryUser as DirectoryUser from .directory_user_email import DirectoryUserEmail as DirectoryUserEmail +from .directory_user_state import * from .directory_user_with_groups_state import ( DirectoryUserWithGroupsState as DirectoryUserWithGroupsState, ) @@ -521,8 +538,12 @@ from .dsync_activated_data_domain import ( DsyncActivatedDataDomain as DsyncActivatedDataDomain, ) +from .dsync_activated_data_state import * +from .dsync_activated_data_type import * from .dsync_deleted import DsyncDeleted as DsyncDeleted from .dsync_deleted_data import DsyncDeletedData as DsyncDeletedData +from .dsync_deleted_data_state import * +from .dsync_deleted_data_type import * from .dsync_group_created import DsyncGroupCreated as DsyncGroupCreated from .dsync_group_deleted import DsyncGroupDeleted as DsyncGroupDeleted from .dsync_group_updated import DsyncGroupUpdated as DsyncGroupUpdated @@ -546,6 +567,7 @@ from .dsync_user_updated_data_email import ( DsyncUserUpdatedDataEmail as DsyncUserUpdatedDataEmail, ) +from .dsync_user_updated_data_state import * from .email_verification_created import ( EmailVerificationCreated as EmailVerificationCreated, ) @@ -555,6 +577,7 @@ from .error_response import ErrorResponse as ErrorResponse from .event_context import EventContext as EventContext from .event_context_actor import EventContextActor as EventContextActor +from .event_context_actor_source import * from .event_context_google_analytics_session import ( EventContextGoogleAnalyticsSession as EventContextGoogleAnalyticsSession, ) @@ -566,6 +589,7 @@ from .flag_created_context_actor import ( FlagCreatedContextActor as FlagCreatedContextActor, ) +from .flag_created_context_actor_source import * from .flag_created_data import FlagCreatedData as FlagCreatedData from .flag_created_data_owner import FlagCreatedDataOwner as FlagCreatedDataOwner from .flag_deleted import FlagDeleted as FlagDeleted @@ -573,14 +597,17 @@ from .flag_deleted_context_actor import ( FlagDeletedContextActor as FlagDeletedContextActor, ) +from .flag_deleted_context_actor_source import * from .flag_deleted_data import FlagDeletedData as FlagDeletedData from .flag_deleted_data_owner import FlagDeletedDataOwner as FlagDeletedDataOwner from .flag_owner import FlagOwner as FlagOwner from .flag_rule_updated import FlagRuleUpdated as FlagRuleUpdated from .flag_rule_updated_context import FlagRuleUpdatedContext as FlagRuleUpdatedContext +from .flag_rule_updated_context_access_type import * from .flag_rule_updated_context_actor import ( FlagRuleUpdatedContextActor as FlagRuleUpdatedContextActor, ) +from .flag_rule_updated_context_actor_source import * from .flag_rule_updated_context_configured_target import ( FlagRuleUpdatedContextConfiguredTarget as FlagRuleUpdatedContextConfiguredTarget, ) @@ -596,6 +623,7 @@ from .flag_rule_updated_context_previous_attribute_context import ( FlagRuleUpdatedContextPreviousAttributeContext as FlagRuleUpdatedContextPreviousAttributeContext, ) +from .flag_rule_updated_context_previous_attribute_context_access_type import * from .flag_rule_updated_context_previous_attribute_context_configured_target import ( FlagRuleUpdatedContextPreviousAttributeContextConfiguredTarget as FlagRuleUpdatedContextPreviousAttributeContextConfiguredTarget, ) @@ -617,6 +645,7 @@ from .flag_updated_context_actor import ( FlagUpdatedContextActor as FlagUpdatedContextActor, ) +from .flag_updated_context_actor_source import * from .flag_updated_context_previous_attribute import ( FlagUpdatedContextPreviousAttribute as FlagUpdatedContextPreviousAttribute, ) @@ -636,12 +665,16 @@ from .group_updated import GroupUpdated as GroupUpdated from .invitation_accepted import InvitationAccepted as InvitationAccepted from .invitation_accepted_data import InvitationAcceptedData as InvitationAcceptedData +from .invitation_accepted_data_state import * from .invitation_created import InvitationCreated as InvitationCreated from .invitation_created_data import InvitationCreatedData as InvitationCreatedData +from .invitation_created_data_state import * from .invitation_resent import InvitationResent as InvitationResent from .invitation_resent_data import InvitationResentData as InvitationResentData +from .invitation_resent_data_state import * from .invitation_revoked import InvitationRevoked as InvitationRevoked from .invitation_revoked_data import InvitationRevokedData as InvitationRevokedData +from .invitation_revoked_data_state import * from .invitation_state import InvitationState as InvitationState from .invite_it_contact_intents import InviteItContactIntents as InviteItContactIntents from .list_metadata import ListMetadata as ListMetadata @@ -654,6 +687,8 @@ from .organization_created_data_domain import ( OrganizationCreatedDataDomain as OrganizationCreatedDataDomain, ) +from .organization_created_data_domain_state import * +from .organization_created_data_domain_verification_strategy import * from .organization_deleted import OrganizationDeleted as OrganizationDeleted from .organization_deleted_data import ( OrganizationDeletedData as OrganizationDeletedData, @@ -661,6 +696,8 @@ from .organization_deleted_data_domain import ( OrganizationDeletedDataDomain as OrganizationDeletedDataDomain, ) +from .organization_deleted_data_domain_state import * +from .organization_deleted_data_domain_verification_strategy import * from .organization_domain import OrganizationDomain as OrganizationDomain from .organization_domain_created import ( OrganizationDomainCreated as OrganizationDomainCreated, @@ -668,6 +705,8 @@ from .organization_domain_created_data import ( OrganizationDomainCreatedData as OrganizationDomainCreatedData, ) +from .organization_domain_created_data_state import * +from .organization_domain_created_data_verification_strategy import * from .organization_domain_data_state import ( OrganizationDomainDataState as OrganizationDomainDataState, ) @@ -677,6 +716,8 @@ from .organization_domain_deleted_data import ( OrganizationDomainDeletedData as OrganizationDomainDeletedData, ) +from .organization_domain_deleted_data_state import * +from .organization_domain_deleted_data_verification_strategy import * from .organization_domain_state import ( OrganizationDomainState as OrganizationDomainState, ) @@ -686,6 +727,8 @@ from .organization_domain_updated_data import ( OrganizationDomainUpdatedData as OrganizationDomainUpdatedData, ) +from .organization_domain_updated_data_state import * +from .organization_domain_updated_data_verification_strategy import * from .organization_domain_verification_failed import ( OrganizationDomainVerificationFailed as OrganizationDomainVerificationFailed, ) @@ -695,6 +738,9 @@ from .organization_domain_verification_failed_data_organization_domain import ( OrganizationDomainVerificationFailedDataOrganizationDomain as OrganizationDomainVerificationFailedDataOrganizationDomain, ) +from .organization_domain_verification_failed_data_organization_domain_state import * +from .organization_domain_verification_failed_data_organization_domain_verification_strategy import * +from .organization_domain_verification_failed_data_reason import * from .organization_domain_verification_strategy import ( OrganizationDomainVerificationStrategy as OrganizationDomainVerificationStrategy, ) @@ -704,18 +750,22 @@ from .organization_domain_verified_data import ( OrganizationDomainVerifiedData as OrganizationDomainVerifiedData, ) +from .organization_domain_verified_data_state import * +from .organization_domain_verified_data_verification_strategy import * from .organization_membership_created import ( OrganizationMembershipCreated as OrganizationMembershipCreated, ) from .organization_membership_created_data import ( OrganizationMembershipCreatedData as OrganizationMembershipCreatedData, ) +from .organization_membership_created_data_status import * from .organization_membership_deleted import ( OrganizationMembershipDeleted as OrganizationMembershipDeleted, ) from .organization_membership_deleted_data import ( OrganizationMembershipDeletedData as OrganizationMembershipDeletedData, ) +from .organization_membership_deleted_data_status import * from .organization_membership_status import ( OrganizationMembershipStatus as OrganizationMembershipStatus, ) @@ -725,6 +775,7 @@ from .organization_membership_updated_data import ( OrganizationMembershipUpdatedData as OrganizationMembershipUpdatedData, ) +from .organization_membership_updated_data_status import * from .organization_role_created import ( OrganizationRoleCreated as OrganizationRoleCreated, ) @@ -750,6 +801,8 @@ from .organization_updated_data_domain import ( OrganizationUpdatedDataDomain as OrganizationUpdatedDataDomain, ) +from .organization_updated_data_domain_state import * +from .organization_updated_data_domain_verification_strategy import * from .pagination_order import PaginationOrder as PaginationOrder from .password_reset_created import PasswordResetCreated as PasswordResetCreated from .password_reset_created_data import ( @@ -772,6 +825,9 @@ from .permission_updated import PermissionUpdated as PermissionUpdated from .permission_updated_data import PermissionUpdatedData as PermissionUpdatedData from .pipe_connected_account import PipeConnectedAccount as PipeConnectedAccount +from .pipe_connected_account_auth_method import * +from .pipe_connected_account_connection_role import * +from .pipe_connected_account_state import * from .pipes_account_connection_add_failed import ( PipesAccountConnectionAddFailed as PipesAccountConnectionAddFailed, ) @@ -837,20 +893,24 @@ from .resource_export_completed_data import ( ResourceExportCompletedData as ResourceExportCompletedData, ) +from .resource_export_completed_data_resource_type import * from .resource_export_created import ResourceExportCreated as ResourceExportCreated from .resource_export_created_data import ( ResourceExportCreatedData as ResourceExportCreatedData, ) +from .resource_export_created_data_resource_type import * from .resource_export_downloaded import ( ResourceExportDownloaded as ResourceExportDownloaded, ) from .resource_export_downloaded_data import ( ResourceExportDownloadedData as ResourceExportDownloadedData, ) +from .resource_export_downloaded_data_resource_type import * from .resource_export_failed import ResourceExportFailed as ResourceExportFailed from .resource_export_failed_data import ( ResourceExportFailedData as ResourceExportFailedData, ) +from .resource_export_failed_data_resource_type import * from .role_created import RoleCreated as RoleCreated from .role_created_data import RoleCreatedData as RoleCreatedData from .role_deleted import RoleDeleted as RoleDeleted @@ -860,14 +920,18 @@ from .role_updated_data import RoleUpdatedData as RoleUpdatedData from .session_created import SessionCreated as SessionCreated from .session_created_data import SessionCreatedData as SessionCreatedData +from .session_created_data_auth_method import * from .session_created_data_impersonator import ( SessionCreatedDataImpersonator as SessionCreatedDataImpersonator, ) +from .session_created_data_status import * from .session_revoked import SessionRevoked as SessionRevoked from .session_revoked_data import SessionRevokedData as SessionRevokedData +from .session_revoked_data_auth_method import * from .session_revoked_data_impersonator import ( SessionRevokedDataImpersonator as SessionRevokedDataImpersonator, ) +from .session_revoked_data_status import * from .slim_role import SlimRole as SlimRole from .team_production_state import TeamProductionState as TeamProductionState from .token_query_grant_type import TokenQueryGrantType as TokenQueryGrantType @@ -928,6 +992,7 @@ from .vault_byok_key_deleted_data import ( VaultByokKeyDeletedData as VaultByokKeyDeletedData, ) +from .vault_byok_key_provider import * from .vault_byok_key_verification_completed import ( VaultByokKeyVerificationCompleted as VaultByokKeyVerificationCompleted, ) @@ -936,29 +1001,40 @@ ) from .vault_data_created import VaultDataCreated as VaultDataCreated from .vault_data_created_data import VaultDataCreatedData as VaultDataCreatedData +from .vault_data_created_data_actor_source import * from .vault_data_deleted import VaultDataDeleted as VaultDataDeleted from .vault_data_deleted_data import VaultDataDeletedData as VaultDataDeletedData +from .vault_data_deleted_data_actor_source import * from .vault_data_read import VaultDataRead as VaultDataRead from .vault_data_read_data import VaultDataReadData as VaultDataReadData +from .vault_data_read_data_actor_source import * from .vault_data_updated import VaultDataUpdated as VaultDataUpdated from .vault_data_updated_data import VaultDataUpdatedData as VaultDataUpdatedData +from .vault_data_updated_data_actor_source import * from .vault_dek_decrypted import VaultDekDecrypted as VaultDekDecrypted from .vault_dek_decrypted_data import VaultDekDecryptedData as VaultDekDecryptedData +from .vault_dek_decrypted_data_actor_source import * from .vault_dek_read import VaultDekRead as VaultDekRead from .vault_dek_read_data import VaultDekReadData as VaultDekReadData +from .vault_dek_read_data_actor_source import * from .vault_kek_created import VaultKekCreated as VaultKekCreated from .vault_kek_created_data import VaultKekCreatedData as VaultKekCreatedData +from .vault_kek_created_data_actor_source import * from .vault_kek_deleted import VaultKekDeleted as VaultKekDeleted from .vault_kek_deleted_data import VaultKekDeletedData as VaultKekDeletedData +from .vault_kek_deleted_data_actor_source import * from .vault_metadata_read import VaultMetadataRead as VaultMetadataRead from .vault_metadata_read_data import VaultMetadataReadData as VaultMetadataReadData +from .vault_metadata_read_data_actor_source import * from .vault_names_listed import VaultNamesListed as VaultNamesListed from .vault_names_listed_data import VaultNamesListedData as VaultNamesListedData +from .vault_names_listed_data_actor_source import * from .waitlist_entry_state import WaitlistEntryState as WaitlistEntryState from .waitlist_user import WaitlistUser as WaitlistUser from .waitlist_user_approved import WaitlistUserApproved as WaitlistUserApproved from .waitlist_user_created import WaitlistUserCreated as WaitlistUserCreated from .waitlist_user_denied import WaitlistUserDenied as WaitlistUserDenied +from .waitlist_user_state import * from .webhook_endpoint_status import WebhookEndpointStatus as WebhookEndpointStatus from .widget_session_token_scopes import ( WidgetSessionTokenScopes as WidgetSessionTokenScopes, diff --git a/src/workos/pipes/models/__init__.py b/src/workos/pipes/models/__init__.py index f27a0080..29ec1a35 100644 --- a/src/workos/pipes/models/__init__.py +++ b/src/workos/pipes/models/__init__.py @@ -1,9 +1,6 @@ # This file is auto-generated by oagen. Do not edit. from workos.common.models.connected_account import ConnectedAccount as ConnectedAccount -from workos.common.models.connected_account_input import ( - ConnectedAccountInput as ConnectedAccountInput, -) from workos.common.models.data_integrations_list_response import ( DataIntegrationsListResponse as DataIntegrationsListResponse, ) @@ -38,9 +35,7 @@ from .data_integration_credentials_response import ( DataIntegrationCredentialsResponse as DataIntegrationCredentialsResponse, ) -from .data_integration_credentials_response_credential import ( - DataIntegrationCredentialsResponseCredential as DataIntegrationCredentialsResponseCredential, -) +from .data_integration_credentials_response_credential import * from .data_integration_custom_provider import ( DataIntegrationCustomProvider as DataIntegrationCustomProvider, ) diff --git a/tests/fixtures/list_user_role_assignment.json b/tests/fixtures/list_user_role_assignment.json index ac0737ac..a4339b6e 100644 --- a/tests/fixtures/list_user_role_assignment.json +++ b/tests/fixtures/list_user_role_assignment.json @@ -14,7 +14,8 @@ }, "source": { "type": "direct", - "group_role_assignment_id": null + "group_role_assignment_id": null, + "group": null }, "created_at": "2026-01-15T12:00:00.000Z", "updated_at": "2026-01-15T12:00:00.000Z" diff --git a/tests/fixtures/user_role_assignment.json b/tests/fixtures/user_role_assignment.json index ae717059..ae7557b5 100644 --- a/tests/fixtures/user_role_assignment.json +++ b/tests/fixtures/user_role_assignment.json @@ -12,7 +12,8 @@ }, "source": { "type": "direct", - "group_role_assignment_id": null + "group_role_assignment_id": null, + "group": null }, "created_at": "2026-01-15T12:00:00.000Z", "updated_at": "2026-01-15T12:00:00.000Z" diff --git a/tests/fixtures/user_role_assignment_source.json b/tests/fixtures/user_role_assignment_source.json index 2cdf69f3..047cbccc 100644 --- a/tests/fixtures/user_role_assignment_source.json +++ b/tests/fixtures/user_role_assignment_source.json @@ -1,4 +1,5 @@ { "type": "direct", - "group_role_assignment_id": null + "group_role_assignment_id": null, + "group": null } diff --git a/tests/fixtures/user_role_assignment_source_group.json b/tests/fixtures/user_role_assignment_source_group.json new file mode 100644 index 00000000..ab425e71 --- /dev/null +++ b/tests/fixtures/user_role_assignment_source_group.json @@ -0,0 +1,4 @@ +{ + "id": "group_01HXYZ123456789ABCDEFGHIJ", + "name": "Marketing team" +} diff --git a/tests/test_authorization_models_round_trip.py b/tests/test_authorization_models_round_trip.py index e1d76eb9..677f2ab8 100644 --- a/tests/test_authorization_models_round_trip.py +++ b/tests/test_authorization_models_round_trip.py @@ -19,6 +19,7 @@ UserRoleAssignment, UserRoleAssignmentResource, UserRoleAssignmentSource, + UserRoleAssignmentSourceGroup, ) @@ -283,7 +284,11 @@ def test_user_role_assignment_minimal_payload(self): "external_id": "proj-456", "resource_type_slug": "project", }, - "source": {"type": "direct", "group_role_assignment_id": None}, + "source": { + "type": "direct", + "group_role_assignment_id": None, + "group": None, + }, "created_at": "2026-01-15T12:00:00.000Z", "updated_at": "2026-01-15T12:00:00.000Z", } @@ -428,24 +433,27 @@ def test_user_role_assignment_source_round_trip(self): assert restored.to_dict() == serialized def test_user_role_assignment_source_minimal_payload(self): - data = {"type": "direct", "group_role_assignment_id": None} + data = {"type": "direct", "group_role_assignment_id": None, "group": None} instance = UserRoleAssignmentSource.from_dict(data) serialized = instance.to_dict() assert serialized["type"] == data["type"] assert ( serialized["group_role_assignment_id"] == data["group_role_assignment_id"] ) + assert serialized["group"] == data["group"] def test_user_role_assignment_source_preserves_nullable_fields(self): - data = {"type": "direct", "group_role_assignment_id": None} + data = {"type": "direct", "group_role_assignment_id": None, "group": None} instance = UserRoleAssignmentSource.from_dict(data) serialized = instance.to_dict() assert serialized["group_role_assignment_id"] is None + assert serialized["group"] is None def test_user_role_assignment_source_round_trips_unknown_enum_values(self): data = { "type": "unexpected_user_role_assignment_source_type", "group_role_assignment_id": None, + "group": None, } instance = UserRoleAssignmentSource.from_dict(data) assert instance.to_dict() == data @@ -517,3 +525,18 @@ def test_permission_preserves_nullable_fields(self): instance = Permission.from_dict(data) serialized = instance.to_dict() assert serialized["description"] is None + + def test_user_role_assignment_source_group_round_trip(self): + data = load_fixture("user_role_assignment_source_group.json") + instance = UserRoleAssignmentSourceGroup.from_dict(data) + serialized = instance.to_dict() + assert serialized == data + restored = UserRoleAssignmentSourceGroup.from_dict(serialized) + assert restored.to_dict() == serialized + + def test_user_role_assignment_source_group_minimal_payload(self): + data = {"id": "group_01HXYZ123456789ABCDEFGHIJ", "name": "Marketing team"} + instance = UserRoleAssignmentSourceGroup.from_dict(data) + serialized = instance.to_dict() + assert serialized["id"] == data["id"] + assert serialized["name"] == data["name"] From 28352740b97e723d10472f2eb82b73545a7f56aa Mon Sep 17 00:00:00 2001 From: "workos-sdk-automation[bot]" <255426317+workos-sdk-automation[bot]@users.noreply.github.com> Date: Thu, 24 Sep 2026 14:13:36 +0000 Subject: [PATCH 2/2] chore(generated): add release notes fragment --- ...-24T14-13-36-e2873c2f2c846fa33dcbdadaba761c23faaf2cbd.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changelog-pending/2026-09-24T14-13-36-e2873c2f2c846fa33dcbdadaba761c23faaf2cbd.md diff --git a/.changelog-pending/2026-09-24T14-13-36-e2873c2f2c846fa33dcbdadaba761c23faaf2cbd.md b/.changelog-pending/2026-09-24T14-13-36-e2873c2f2c846fa33dcbdadaba761c23faaf2cbd.md new file mode 100644 index 00000000..8ee31d48 --- /dev/null +++ b/.changelog-pending/2026-09-24T14-13-36-e2873c2f2c846fa33dcbdadaba761c23faaf2cbd.md @@ -0,0 +1,6 @@ +* [#734](https://github.com/workos/workos-python/pull/734) feat(generated): regenerate from spec + + **Features** + * **[user_management](https://workos.com/docs/reference/authkit/user)**: + * Added model `UserRoleAssignmentSourceGroup` + * Added `group` to `UserRoleAssignmentSource`