diff --git a/workos/types/authorization/__init__.py b/workos/types/authorization/__init__.py index 51ebd570..33cde309 100644 --- a/workos/types/authorization/__init__.py +++ b/workos/types/authorization/__init__.py @@ -4,6 +4,7 @@ ) from workos.types.authorization.organization_role import ( OrganizationRole as OrganizationRole, + OrganizationRoleEvent as OrganizationRoleEvent, OrganizationRoleList as OrganizationRoleList, ) from workos.types.authorization.permission import ( diff --git a/workos/types/authorization/organization_role.py b/workos/types/authorization/organization_role.py index 5214d428..2e343ad6 100644 --- a/workos/types/authorization/organization_role.py +++ b/workos/types/authorization/organization_role.py @@ -6,7 +6,6 @@ class OrganizationRole(WorkOSModel): object: Literal["role"] id: str - organization_id: str name: str slug: str description: Optional[str] = None @@ -16,6 +15,20 @@ class OrganizationRole(WorkOSModel): updated_at: str +class OrganizationRoleEvent(WorkOSModel): + """Organization role type for Events API responses.""" + + object: Literal["organization_role"] + organization_id: str + slug: str + name: str + description: Optional[str] = None + resource_type_slug: str + permissions: Sequence[str] + created_at: str + updated_at: str + + class OrganizationRoleList(WorkOSModel): object: Literal["list"] data: Sequence[OrganizationRole] diff --git a/workos/types/events/event.py b/workos/types/events/event.py index 6df63091..fa5bd63f 100644 --- a/workos/types/events/event.py +++ b/workos/types/events/event.py @@ -32,6 +32,8 @@ from workos.types.events.directory_user_with_previous_attributes import ( DirectoryUserWithPreviousAttributes, ) +from workos.types.authorization.organization_role import OrganizationRoleEvent +from workos.types.authorization.permission import Permission from workos.types.events.event_model import EventModel from workos.types.events.organization_domain_verification_failed_payload import ( OrganizationDomainVerificationFailedPayload, @@ -225,6 +227,18 @@ class OrganizationMembershipUpdatedEvent(EventModel[OrganizationMembership]): event: Literal["organization_membership.updated"] +class OrganizationRoleCreatedEvent(EventModel[OrganizationRoleEvent]): + event: Literal["organization_role.created"] + + +class OrganizationRoleUpdatedEvent(EventModel[OrganizationRoleEvent]): + event: Literal["organization_role.updated"] + + +class OrganizationRoleDeletedEvent(EventModel[OrganizationRoleEvent]): + event: Literal["organization_role.deleted"] + + class PasswordResetCreatedEvent(EventModel[PasswordResetCommon]): event: Literal["password_reset.created"] @@ -233,6 +247,18 @@ class PasswordResetSucceededEvent(EventModel[PasswordResetCommon]): event: Literal["password_reset.succeeded"] +class PermissionCreatedEvent(EventModel[Permission]): + event: Literal["permission.created"] + + +class PermissionUpdatedEvent(EventModel[Permission]): + event: Literal["permission.updated"] + + +class PermissionDeletedEvent(EventModel[Permission]): + event: Literal["permission.deleted"] + + class RoleCreatedEvent(EventModel[EventRole]): event: Literal["role.created"] @@ -302,8 +328,14 @@ class UserUpdatedEvent(EventModel[User]): OrganizationMembershipCreatedEvent, OrganizationMembershipDeletedEvent, OrganizationMembershipUpdatedEvent, + OrganizationRoleCreatedEvent, + OrganizationRoleUpdatedEvent, + OrganizationRoleDeletedEvent, PasswordResetCreatedEvent, PasswordResetSucceededEvent, + PermissionCreatedEvent, + PermissionUpdatedEvent, + PermissionDeletedEvent, RoleCreatedEvent, RoleDeletedEvent, RoleUpdatedEvent, diff --git a/workos/types/events/event_model.py b/workos/types/events/event_model.py index 24443a52..dec276ae 100644 --- a/workos/types/events/event_model.py +++ b/workos/types/events/event_model.py @@ -38,6 +38,11 @@ from workos.types.events.session_created_payload import SessionCreatedPayload from workos.types.organizations.organization_common import OrganizationCommon from workos.types.organization_domains import OrganizationDomain +from workos.types.authorization.organization_role import ( + OrganizationRole, + OrganizationRoleEvent, +) +from workos.types.authorization.permission import Permission from workos.types.roles.role import EventRole from workos.types.sso.connection import Connection from workos.types.user_management.email_verification import ( @@ -79,7 +84,10 @@ OrganizationDomain, OrganizationDomainVerificationFailedPayload, OrganizationMembership, + OrganizationRole, + OrganizationRoleEvent, PasswordResetCommon, + Permission, SessionCreatedPayload, User, ) diff --git a/workos/types/events/event_type.py b/workos/types/events/event_type.py index 79856e54..8ba263e3 100644 --- a/workos/types/events/event_type.py +++ b/workos/types/events/event_type.py @@ -44,8 +44,14 @@ "organization_membership.created", "organization_membership.deleted", "organization_membership.updated", + "organization_role.created", + "organization_role.updated", + "organization_role.deleted", "password_reset.created", "password_reset.succeeded", + "permission.created", + "permission.updated", + "permission.deleted", "role.created", "role.deleted", "role.updated", diff --git a/workos/types/webhooks/webhook.py b/workos/types/webhooks/webhook.py index afe9e9ff..3a4c21b3 100644 --- a/workos/types/webhooks/webhook.py +++ b/workos/types/webhooks/webhook.py @@ -37,6 +37,8 @@ OrganizationDomainVerificationFailedPayload, ) from workos.types.events.session_created_payload import SessionCreatedPayload +from workos.types.authorization.organization_role import OrganizationRole +from workos.types.authorization.permission import Permission from workos.types.organization_domains import OrganizationDomain from workos.types.organizations.organization_common import OrganizationCommon from workos.types.roles.role import EventRole @@ -231,6 +233,18 @@ class OrganizationMembershipUpdatedWebhook(WebhookModel[OrganizationMembership]) event: Literal["organization_membership.updated"] +class OrganizationRoleCreatedWebhook(WebhookModel[OrganizationRole]): + event: Literal["organization_role.created"] + + +class OrganizationRoleUpdatedWebhook(WebhookModel[OrganizationRole]): + event: Literal["organization_role.updated"] + + +class OrganizationRoleDeletedWebhook(WebhookModel[OrganizationRole]): + event: Literal["organization_role.deleted"] + + class PasswordResetCreatedWebhook(WebhookModel[PasswordResetCommon]): event: Literal["password_reset.created"] @@ -239,6 +253,18 @@ class PasswordResetSucceededWebhook(WebhookModel[PasswordResetCommon]): event: Literal["password_reset.succeeded"] +class PermissionCreatedWebhook(WebhookModel[Permission]): + event: Literal["permission.created"] + + +class PermissionUpdatedWebhook(WebhookModel[Permission]): + event: Literal["permission.updated"] + + +class PermissionDeletedWebhook(WebhookModel[Permission]): + event: Literal["permission.deleted"] + + class RoleCreatedWebhook(WebhookModel[EventRole]): event: Literal["role.created"] @@ -308,8 +334,14 @@ class UserUpdatedWebhook(WebhookModel[User]): OrganizationMembershipCreatedWebhook, OrganizationMembershipDeletedWebhook, OrganizationMembershipUpdatedWebhook, + OrganizationRoleCreatedWebhook, + OrganizationRoleUpdatedWebhook, + OrganizationRoleDeletedWebhook, PasswordResetCreatedWebhook, PasswordResetSucceededWebhook, + PermissionCreatedWebhook, + PermissionUpdatedWebhook, + PermissionDeletedWebhook, RoleCreatedWebhook, RoleDeletedWebhook, RoleUpdatedWebhook,