import type { Directory, DatabaseStore, WebhookEventLog, DirectorySyncEvent, PaginationParams } from '../../typings'; import { Base } from './Base'; type GetAllParams = PaginationParams & { directoryId?: string; }; export declare class WebhookEventsLogger extends Base { constructor({ db }: { db: DatabaseStore; }); log(directory: Directory, event: DirectorySyncEvent | DirectorySyncEvent[], status: number): Promise; get(id: string): Promise; /** * @openapi * components: * schemas: * Event: * type: object * example: * id: id1 * webhook_endpoint: https://example.com/webhook * created_at: "2024-03-05T17:06:26.074Z" * status_code: 200 * delivered: true * payload: * directory_id: 58b5cd9dfaa39d47eb8f5f88631f9a629a232016 * event: user.created * tenant: boxyhq * product: jackson * data: * id: 038e767b-9bc6-4dbd-975e-fbc38a8e7d82 * first_name: Deepak * last_name: Prabhakara * email: deepak@example.com * active: true * raw: * schemas: * - urn:ietf:params:scim:schemas:core:2.0:User * userName: deepak@example.com * name: * givenName: Deepak * familyName: Prabhakara * emails: * - primary: true * value: deepak@example.com * type: work * title: CEO * displayName: Deepak Prabhakara * locale: en-US * externalId: 00u1ldzzogFkXFmvT5d7 * groups: [] * active: true * */ /** * @openapi * /api/v1/dsync/events: * get: * tags: * - Directory Sync * summary: Get event logs for a directory * parameters: * - $ref: '#/components/parameters/directoryId' * - $ref: '#/components/parameters/tenant' * - $ref: '#/components/parameters/product' * - $ref: '#/components/parameters/pageOffset' * - $ref: '#/components/parameters/pageLimit' * - $ref: '#/components/parameters/pageToken' * responses: * 200: * description: Success * content: * application/json: * schema: * type: object * properties: * data: * type: array * items: * $ref: '#/components/schemas/Event' * pageToken: * type: string * description: token for pagination * x-ory-ratelimit-bucket: polis-public-low */ getAll(params?: GetAllParams): Promise<{ data: WebhookEventLog[]; pageToken: string | undefined; }>; delete(id: string): Promise; deleteAll(directoryId: string): Promise; private eventStore; } export {};