import type { User, DatabaseStore, PaginationParams, Response } from '../../typings'; import { Base } from './Base'; export declare class Users extends Base { constructor({ db }: { db: DatabaseStore; }); create(user: User & { directoryId: string; }): Promise>; /** * @openapi * components: * schemas: * User: * type: object * properties: * id: * type: string * description: User ID * first_name: * type: string * description: First name * last_name: * type: string * description: Last name * email: * type: string * description: Email address * active: * type: boolean * description: Indicates whether the user is active or not * raw: * type: object * properties: {} * description: Raw user attributes from the Identity Provider * */ /** * @openapi * /api/v1/dsync/users/{userId}: * get: * tags: * - Directory Sync * summary: Get user by id from a directory * parameters: * - name: tenant * in: query * description: Tenant (Optional if directoryId is provided) * schema: * type: string * - name: product * in: query * description: Product (Optional if directoryId is provided) * schema: * type: string * - name: directoryId * in: query * description: Directory ID (Optional if tenant/product is provided) * schema: * type: string * - name: userId * in: path * description: User ID * required: true * schema: * type: string * responses: * 200: * description: Success * content: * application/json: * schema: * $ref: "#/components/schemas/User" * x-ory-ratelimit-bucket: polis-public-low */ get(id: string): Promise>; update(id: string, user: User): Promise>; delete(id: string): Promise>; search(userName: string, directoryId: string): Promise>; /** * @openapi * /api/v1/dsync/users: * get: * tags: * - Directory Sync * summary: Get users from a directory * parameters: * - $ref: '#/components/parameters/tenant' * - $ref: '#/components/parameters/product' * - $ref: '#/components/parameters/directoryId' * - $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/User' * pageToken: * type: string * description: token for pagination * x-ory-ratelimit-bucket: polis-public-low */ getAll({ pageOffset, pageLimit, pageToken, directoryId, }?: PaginationParams & { directoryId?: string; }): Promise>; deleteAll(directoryId: string): Promise; }