@@ -2,18 +2,24 @@ import type {
22 AddMemberParams ,
33 ClerkPaginatedResponse ,
44 ClerkResourceReloadParams ,
5+ CreateDirectorySyncParams ,
56 CreateOrganizationDomainParams ,
67 CreateOrganizationEnterpriseConnectionParams ,
78 CreateOrganizationParams ,
89 DeletedObjectJSON ,
910 DeletedObjectResource ,
11+ DirectorySyncJSON ,
12+ DirectorySyncResource ,
13+ DirectorySyncUserJSON ,
14+ DirectorySyncUserResource ,
1015 EnterpriseConnectionJSON ,
1116 EnterpriseConnectionResource ,
1217 EnterpriseConnectionTestRunInitJSON ,
1318 EnterpriseConnectionTestRunInitResource ,
1419 EnterpriseConnectionTestRunJSON ,
1520 EnterpriseConnectionTestRunResource ,
1621 EnterpriseConnectionTestRunsPaginatedJSON ,
22+ GetDirectorySyncUsersParams ,
1723 GetDomainsParams ,
1824 GetEnterpriseConnectionsParams ,
1925 GetEnterpriseConnectionTestRunsParams ,
@@ -37,6 +43,7 @@ import type {
3743 OrganizationResource ,
3844 RoleJSON ,
3945 SetOrganizationLogoParams ,
46+ UpdateDirectorySyncParams ,
4047 UpdateMembershipParams ,
4148 UpdateOrganizationEnterpriseConnectionParams ,
4249 UpdateOrganizationParams ,
@@ -49,6 +56,8 @@ import { addPaymentMethod, getPaymentMethods, initializePaymentMethod } from '..
4956import {
5057 BaseResource ,
5158 DeletedObject ,
59+ DirectorySync ,
60+ DirectorySyncUser ,
5261 EnterpriseConnection ,
5362 EnterpriseConnectionTestRun ,
5463 OrganizationInvitation ,
@@ -274,6 +283,95 @@ export class Organization extends BaseResource implements OrganizationResource {
274283 } ;
275284 } ;
276285
286+ getDirectorySync = async ( enterpriseConnectionId : string ) : Promise < DirectorySyncResource > => {
287+ const json = (
288+ await BaseResource . _fetch < DirectorySyncJSON > ( {
289+ path : `/organizations/${ this . id } /enterprise_connections/${ enterpriseConnectionId } /directory` ,
290+ method : 'GET' ,
291+ } )
292+ ) ?. response as unknown as DirectorySyncJSON ;
293+
294+ return new DirectorySync ( json ) ;
295+ } ;
296+
297+ createDirectorySync = async (
298+ enterpriseConnectionId : string ,
299+ params ?: CreateDirectorySyncParams ,
300+ ) : Promise < DirectorySyncResource > => {
301+ const json = (
302+ await BaseResource . _fetch < DirectorySyncJSON > ( {
303+ path : `/organizations/${ this . id } /enterprise_connections/${ enterpriseConnectionId } /directory` ,
304+ method : 'POST' ,
305+ body : ( params ?. name ? { name : params . name } : { } ) as any ,
306+ } )
307+ ) ?. response as unknown as DirectorySyncJSON ;
308+
309+ return new DirectorySync ( json ) ;
310+ } ;
311+
312+ updateDirectorySync = async (
313+ enterpriseConnectionId : string ,
314+ params : UpdateDirectorySyncParams ,
315+ ) : Promise < DirectorySyncResource > => {
316+ const body : Record < string , string | boolean > = { } ;
317+ if ( params . enabled !== undefined ) {
318+ body . enabled = params . enabled ;
319+ }
320+ if ( params . attributeMapping !== undefined ) {
321+ body . attribute_mapping = JSON . stringify ( params . attributeMapping ) ;
322+ }
323+
324+ const json = (
325+ await BaseResource . _fetch < DirectorySyncJSON > ( {
326+ path : `/organizations/${ this . id } /enterprise_connections/${ enterpriseConnectionId } /directory` ,
327+ method : 'PATCH' ,
328+ body : body as any ,
329+ } )
330+ ) ?. response as unknown as DirectorySyncJSON ;
331+
332+ return new DirectorySync ( json ) ;
333+ } ;
334+
335+ rotateDirectorySyncToken = async ( enterpriseConnectionId : string ) : Promise < DirectorySyncResource > => {
336+ const json = (
337+ await BaseResource . _fetch < DirectorySyncJSON > ( {
338+ path : `/organizations/${ this . id } /enterprise_connections/${ enterpriseConnectionId } /directory/rotate_api_key` ,
339+ method : 'POST' ,
340+ } )
341+ ) ?. response as unknown as DirectorySyncJSON ;
342+
343+ return new DirectorySync ( json ) ;
344+ } ;
345+
346+ deleteDirectorySync = async ( enterpriseConnectionId : string ) : Promise < DeletedObjectResource > => {
347+ const json = (
348+ await BaseResource . _fetch < DeletedObjectJSON > ( {
349+ path : `/organizations/${ this . id } /enterprise_connections/${ enterpriseConnectionId } /directory` ,
350+ method : 'DELETE' ,
351+ } )
352+ ) ?. response as unknown as DeletedObjectJSON ;
353+
354+ return new DeletedObject ( json ) ;
355+ } ;
356+
357+ getDirectorySyncUsers = async (
358+ enterpriseConnectionId : string ,
359+ params ?: GetDirectorySyncUsersParams ,
360+ ) : Promise < ClerkPaginatedResponse < DirectorySyncUserResource > > => {
361+ const res = await BaseResource . _fetch ( {
362+ path : `/organizations/${ this . id } /enterprise_connections/${ enterpriseConnectionId } /directory/users` ,
363+ method : 'GET' ,
364+ search : convertPageToOffsetSearchParams ( params ) ,
365+ } ) ;
366+
367+ const payload = res ?. response as unknown as ClerkPaginatedResponse < DirectorySyncUserJSON > | undefined ;
368+
369+ return {
370+ total_count : payload ?. total_count ?? 0 ,
371+ data : ( payload ?. data ?? [ ] ) . map ( row => new DirectorySyncUser ( row ) ) ,
372+ } ;
373+ } ;
374+
277375 getMembershipRequests = async (
278376 getRequestParam ?: GetMembershipRequestParams ,
279377 ) : Promise < ClerkPaginatedResponse < OrganizationMembershipRequestResource > > => {
0 commit comments