UNPKG

@clerk/backend

Version:

Clerk Backend SDK - REST Client for Backend API & JWT verification utilities

200 lines • 9.5 kB
import type { ClerkPaginationRequest, OrganizationEnrollmentMode } from '@clerk/types'; import type { Organization, OrganizationDomain, OrganizationInvitation, OrganizationInvitationStatus, OrganizationMembership } from '../resources'; import type { PaginatedResourceResponse } from '../resources/Deserializer'; import type { OrganizationMembershipRole } from '../resources/Enums'; import { AbstractAPI } from './AbstractApi'; import type { WithSign } from './util-types'; type MetadataParams<TPublic = OrganizationPublicMetadata, TPrivate = OrganizationPrivateMetadata> = { publicMetadata?: TPublic; privateMetadata?: TPrivate; }; type GetOrganizationListParams = ClerkPaginationRequest<{ includeMembersCount?: boolean; query?: string; orderBy?: WithSign<'name' | 'created_at' | 'members_count'>; organizationId?: string[]; }>; type CreateParams = { name: string; slug?: string; createdBy?: string; maxAllowedMemberships?: number; } & MetadataParams; type GetOrganizationParams = ({ organizationId: string; } | { slug: string; }) & { includeMembersCount?: boolean; }; type UpdateParams = { name?: string; slug?: string; adminDeleteEnabled?: boolean; maxAllowedMemberships?: number; } & MetadataParams; type UpdateLogoParams = { file: Blob | File; uploaderUserId?: string; }; type UpdateMetadataParams = MetadataParams; type GetOrganizationMembershipListParams = ClerkPaginationRequest<{ organizationId: string; /** * Sorts Organization memberships by phone_number, email_address, created_at, first_name, last_name or username. * By prepending one of those values with + or -, we can choose to sort in ascending (ASC) or descending (DESC) order. */ orderBy?: WithSign<'phone_number' | 'email_address' | 'created_at' | 'first_name' | 'last_name' | 'username'>; /** * Returns users with the user ids specified. For each user id, the `+` and `-` can be * prepended to the id, which denote whether the respective user id should be included or * excluded from the result set. Accepts up to 100 user ids. Any user ids not found are ignored. */ userId?: string[]; emailAddress?: string[]; phoneNumber?: string[]; username?: string[]; web3Wallet?: string[]; role?: OrganizationMembershipRole[]; /** * Returns users that match the given query. * For possible matches, we check the email addresses, phone numbers, usernames, web3 wallets, user ids, first and last names. * The query value doesn't need to match the exact value you are looking for, it is capable of partial matches as well. */ query?: string; /** * Returns users with emails that match the given query, via case-insensitive partial match. * For example, `email_address_query=ello` will match a user with the email `HELLO@example.com`. */ emailAddressQuery?: string; /** * Returns users with phone numbers that match the given query, via case-insensitive partial match. * For example, `phone_number_query=555` will match a user with the phone number `+1555xxxxxxx`. */ phoneNumberQuery?: string; /** * Returns users with usernames that match the given query, via case-insensitive partial match. * For example, `username_query=CoolUser` will match a user with the username `SomeCoolUser`. */ usernameQuery?: string; nameQuery?: string; /** * Returns users whose last session activity was before the given date (with millisecond precision). * Example: use 1700690400000 to retrieve users whose last session activity was before 2023-11-23. */ lastActiveAtBefore?: number; /** * Returns users whose last session activity was after the given date (with millisecond precision). * Example: use 1700690400000 to retrieve users whose last session activity was after 2023-11-23. */ lastActiveAtAfter?: number; /** * Returns users who have been created before the given date (with millisecond precision). * Example: use 1730160000000 to retrieve users who have been created before 2024-10-29. */ createdAtBefore?: number; /** * Returns users who have been created after the given date (with millisecond precision). * Example: use 1730160000000 to retrieve users who have been created after 2024-10-29. */ createdAtAfter?: number; }>; type GetInstanceOrganizationMembershipListParams = ClerkPaginationRequest<{ /** * Sorts Organization memberships by phone_number, email_address, created_at, first_name, last_name or username. * By prepending one of those values with + or -, we can choose to sort in ascending (ASC) or descending (DESC) order. */ orderBy?: WithSign<'phone_number' | 'email_address' | 'created_at' | 'first_name' | 'last_name' | 'username'>; }>; type CreateOrganizationMembershipParams = { organizationId: string; userId: string; role: OrganizationMembershipRole; }; type UpdateOrganizationMembershipParams = CreateOrganizationMembershipParams; type UpdateOrganizationMembershipMetadataParams = { organizationId: string; userId: string; } & MetadataParams<OrganizationMembershipPublicMetadata>; type DeleteOrganizationMembershipParams = { organizationId: string; userId: string; }; type CreateOrganizationInvitationParams = { organizationId: string; emailAddress: string; role: OrganizationMembershipRole; expiresInDays?: number; inviterUserId?: string; privateMetadata?: OrganizationInvitationPrivateMetadata; publicMetadata?: OrganizationInvitationPublicMetadata; redirectUrl?: string; }; type CreateBulkOrganizationInvitationParams = Array<{ emailAddress: string; role: OrganizationMembershipRole; expiresInDays?: number; inviterUserId?: string; privateMetadata?: OrganizationInvitationPrivateMetadata; publicMetadata?: OrganizationInvitationPublicMetadata; redirectUrl?: string; }>; type GetOrganizationInvitationListParams = ClerkPaginationRequest<{ organizationId: string; status?: OrganizationInvitationStatus[]; }>; type GetOrganizationInvitationParams = { organizationId: string; invitationId: string; }; type RevokeOrganizationInvitationParams = { organizationId: string; invitationId: string; requestingUserId?: string; }; type GetOrganizationDomainListParams = { organizationId: string; limit?: number; offset?: number; }; type CreateOrganizationDomainParams = { organizationId: string; name: string; enrollmentMode: OrganizationEnrollmentMode; verified?: boolean; }; type UpdateOrganizationDomainParams = { organizationId: string; domainId: string; } & Partial<CreateOrganizationDomainParams>; type DeleteOrganizationDomainParams = { organizationId: string; domainId: string; }; export declare class OrganizationAPI extends AbstractAPI { getOrganizationList(params?: GetOrganizationListParams): Promise<PaginatedResourceResponse<Organization[]>>; createOrganization(params: CreateParams): Promise<Organization>; getOrganization(params: GetOrganizationParams): Promise<Organization>; updateOrganization(organizationId: string, params: UpdateParams): Promise<Organization>; updateOrganizationLogo(organizationId: string, params: UpdateLogoParams): Promise<Organization>; deleteOrganizationLogo(organizationId: string): Promise<Organization>; updateOrganizationMetadata(organizationId: string, params: UpdateMetadataParams): Promise<Organization>; deleteOrganization(organizationId: string): Promise<Organization>; getOrganizationMembershipList(params: GetOrganizationMembershipListParams): Promise<PaginatedResourceResponse<OrganizationMembership[]>>; getInstanceOrganizationMembershipList(params: GetInstanceOrganizationMembershipListParams): Promise<PaginatedResourceResponse<OrganizationMembership[]>>; createOrganizationMembership(params: CreateOrganizationMembershipParams): Promise<OrganizationMembership>; updateOrganizationMembership(params: UpdateOrganizationMembershipParams): Promise<OrganizationMembership>; updateOrganizationMembershipMetadata(params: UpdateOrganizationMembershipMetadataParams): Promise<OrganizationMembership>; deleteOrganizationMembership(params: DeleteOrganizationMembershipParams): Promise<OrganizationMembership>; getOrganizationInvitationList(params: GetOrganizationInvitationListParams): Promise<PaginatedResourceResponse<OrganizationInvitation[]>>; createOrganizationInvitation(params: CreateOrganizationInvitationParams): Promise<OrganizationInvitation>; createOrganizationInvitationBulk(organizationId: string, params: CreateBulkOrganizationInvitationParams): Promise<OrganizationInvitation[]>; getOrganizationInvitation(params: GetOrganizationInvitationParams): Promise<OrganizationInvitation>; revokeOrganizationInvitation(params: RevokeOrganizationInvitationParams): Promise<OrganizationInvitation>; getOrganizationDomainList(params: GetOrganizationDomainListParams): Promise<PaginatedResourceResponse<OrganizationDomain[]>>; createOrganizationDomain(params: CreateOrganizationDomainParams): Promise<OrganizationDomain>; updateOrganizationDomain(params: UpdateOrganizationDomainParams): Promise<OrganizationDomain>; deleteOrganizationDomain(params: DeleteOrganizationDomainParams): Promise<OrganizationDomain>; } export {}; //# sourceMappingURL=OrganizationApi.d.ts.map