import {z} from 'zod' export type AdminUserType = 'USER_TYPE__NONE' | 'USER_TYPE__USER' | 'USER_TYPE__FEDERATED_USER' | 'USER_TYPE__APP_CLIENT'; export type AdminUserStatus = 'USER_STATUS__NONE' | 'USER_STATUS__ACTIVE' | 'USER_STATUS__DISABLED'; export type AdminCustomerRole = 'CustomerRole_None' | 'CustomerRole_Owner' | 'CustomerRole_Admin' | 'CustomerRole_Billing_Admin' | 'CustomerRole_Corpus_Admin'; export type AdminUser = {id?: number | undefined, handle?: string | undefined, type?: AdminUserType | undefined, comment?: string | undefined, tsCreate?: unknown | undefined, idCreate?: number | undefined, email?: string | undefined, userStatus?: AdminUserStatus | undefined, role?: Array | undefined}; export type AdminUserActionType = 'USER_ACTION_TYPE__NONE' | 'USER_ACTION_TYPE__ADD' | 'USER_ACTION_TYPE__DELETE' | 'USER_ACTION_TYPE__DISABLE' | 'USER_ACTION_TYPE__ENABLE' | 'USER_ACTION_TYPE__RESET_PASSWORD'; export type ManageUserRequestUserAction = {user?: AdminUser | undefined, userActionType?: AdminUserActionType | undefined}; export type AdminManageUserRequest = {userAction?: Array | undefined}; export type CreateApiV1ManageUserArgs = {'customer-id': number, timeout?: string | undefined, body: AdminManageUserRequest}; export type CreateApiV1ManageUserOptions = {baseUrl?: string | undefined, oAuth?: string | undefined, fetch?: typeof fetch | undefined}; export const adminUserType = z.enum(["USER_TYPE__NONE", "USER_TYPE__USER", "USER_TYPE__FEDERATED_USER", "USER_TYPE__APP_CLIENT"]); export const adminUserStatus = z.enum(["USER_STATUS__NONE", "USER_STATUS__ACTIVE", "USER_STATUS__DISABLED"]); export const adminCustomerRole = z.enum(["CustomerRole_None", "CustomerRole_Owner", "CustomerRole_Admin", "CustomerRole_Billing_Admin", "CustomerRole_Corpus_Admin"]); export const adminUser = z.object({id: z.number().int().optional(), handle: z.string().optional(), type: adminUserType.optional(), comment: z.string().optional(), tsCreate: z.string().optional(), idCreate: z.number().int().optional(), email: z.string().optional(), userStatus: adminUserStatus.optional(), role: z.array(adminCustomerRole).optional()}); export const vectaraStatusCode = z.enum(["OK", "FAILURE", "UNKNOWN", "INVALID_ARGUMENT", "DEADLINE_EXCEEDED", "ALREADY_EXISTS", "PERMISSION_DENIED", "RESOURCE_EXHAUSTED", "FAILED_PRECONDITION", "ABORTED", "OUT_OF_RANGE", "UNIMPLEMENTED", "INTERNAL", "UNAVAILABLE", "DATA_LOSS", "UNAUTHENTICATED", "BAD_REQUEST", "UNAUTHORIZED", "FORBIDDEN", "NOT_FOUND", "METHOD_NOT_ALLOWED", "CONFLICT", "UNSUPPORTED_MEDIA_TYPE", "TOO_MANY_REQUESTS", "INTERNAL_SERVER_ERROR", "NOT_IMPLEMENTED", "SERVICE_UNAVAILABLE", "INSUFFICIENT_STORAGE", "UNPARSEABLE_RESPONSE", "DISABLED_CUSTOMER", "INVALID_CUSTOMER_ID", "DISABLED_CORPUS", "INVALID_CORPUS_ID", "DISABLED_API_KEY", "EXPIRED_API_KEY", "INVALID_API_KEY", "CMK_INACCESSIBLE", "QRY__DISABLED_CORPUS", "QRY__DOCUMENT_DB_FAILURE", "QRY__ENCODER_FAILURE", "QRY__INTERRUPTED", "QRY__INVALID_CORPUS", "QRY__INVALID_START", "QRY__INVALID_NUM_RESULTS", "QRY__INVALID_CONTEXT", "QRY__MISSING_QUERY", "QRY__MISSING_CORPUS", "QRY__TIMEOUT", "QRY__TOO_MANY_CORPORA", "QRY__TOO_MANY_QUERIES", "QRY__VECTOR_INDEX_FAILURE", "QRY__INVALID_DIMENSION", "QRY__INVALID_CLIENTKEY", "QRY__DECRYPTION_FAILURE", "QRY__INVALID_RERANKER", "QRY__PARTIAL_RERANK", "QRY__RERANK_FAILURE", "QRY__TOO_MANY_RESULT_ROWS", "QRY__PARTIAL_RETRIEVAL", "QRY__SMRY__INVALID_SUMMARIZER_PROMPT", "QRY__SMRY__INVALID_SUMMARY_LANG", "QRY__SMRY__UNSUPPORTED_SUMMARY_LANG", "QRY__SMRY__PARTIAL_SUMMARY", "QRY__SMRY__NO_QUERY_RESULTS", "QRY__SMRY__EVAL_UNSUPPORTED_LANG", "QRY__SMRY__EVAL_FAILURE", "QRY__GEN__NO_QUERY_RESULTS", "QRY__GEN__UNPARSEABLE_MODEL_PARAMS", "CX_SPECS__INVALID_JSON", "CX_SPECS__UNREGISTERED_TYPE", "CX_SPECS__MISSING_SPEC", "CX_SPECS__MISSING_TYPE", "CX_SPECS__UNPARSEABLE_SPEC", "ADM__INVALID_CUSTOMER_ID", "ADM__INVALID_CORPUS_ID", "ADM__INVALID_ENCODER_ID", "ADM__INVALID_ROLE_ID", "ADM__ROLE_ALREADY_EXISTS", "ADM__ONLY_ONE_OWNER_SUPPORTED", "ADM__INVALID_PERMISSION", "ADM__ROLECREATION_FAILURE", "ADM__USER_EMAIL_NOT_AVAIALBLE", "ADM__USERNAME_NOT_AVAILABLE", "ADM__SIGNUP_MISSING_NAME", "ADM__SIGNUP_MISSING_ORG", "ADM__SIGNUP_MISSING_EMAIL", "ADM__SIGNUP_MISSING_PAYMENT", "ADM__SIGNUP_MISSING_PLAN", "ADM__SIGNUP_MISSING_PASSWORD", "ADM__SIGNUP_INVALID_NAME", "ADM__SIGNUP_INVALID_ORG", "ADM__SIGNUP_INVALID_EMAIL", "ADM__SIGNUP_INVALID_PAYMENT", "ADM__SIGNUP_INVALID_PLAN", "ADM__SIGNUP_INVALID_PASSWORD", "ADM__SIGNUP_INVALID_ACCOUNT_ALIAS", "ADM__SIGNUP_INVALID_EMAIL_VALIDATION_CODE", "ADM__SIGNUP_MISSING_COUNTRY_CODE", "ADM__SIGNUP_ROOT_EMAIL_NOT_AVAILABLE", "ADM__CUST_MARK_DELETE_FAILED", "ADM__CUST_FAISS_DEALLOC_FAILED", "ADM__CUST_ALREADY_ACTIVE", "ADM__CUST_REACTIVATE_FAILED", "ADM__CUST_ENABLEMENT_FAILED", "ADM__CORPUS_LIMIT_REACHED", "ADM__STRIPE_CARD_DECLINED", "ADM__STRIPE_PROCESSING_ERROR", "ADM__EMAIL_VALIDATION_REQUEST_NOT_FOUND", "ADM__EMAIL_NOT_VALIDATED", "ADM__CHANGE_PLAN__NO_CURRENT_PLAN", "ADM__CHANGE_PLAN__REQUIRES_MANUAL_CHANGE", "ADM__CHANGE_PLAN__INVALID_PLAN_ID", "ADM__CHANGE_PLAN__NO_PAYMENT_SOURCE", "ADM__CHANGE_PLAN__INVALID_EFFECTIVE_DATE", "ADM__CHANGE_PLAN__CONFLICTING_CHANGE", "SCM__MISCONFIGURED_CONNECTION", "STATS_DB_READ_FAILURE", "VDB__TEXT_READ_FAILURE", "REBUILD__LOW_RECALL", "REBUILD__INDEX_UPLOAD_FAILURE", "REBUILD__UPDATE_JOURNAL_FAILURE", "REBUILD__UPDATE_FAISSPARAMS_FAILURE", "REBUILD__NO_DATA", "REBUILD__EVALUATION", "IDX__TRANSIENT_PARTIAL_DELETION_FAILURE", "IDX__PERMANENT_PARTIAL_DELETION_FAILURE", "CALB__INVALID_JSON", "CALB__INVALID_SPEC", "CALB__UNREGISTERED_TYPE", "CALB__MISSING_SPEC", "CALB__MISSING_TYPE", "CALB__UNPARSABLE_SPEC"]); export const comvectaraStatus = z.object({code: vectaraStatusCode.optional(), statusDetail: z.string().optional()}); export const manageUserResponseUserResponse = z.object({user: adminUser.optional(), status: comvectaraStatus.optional()}); export const adminManageUserResponse = z.object({response: z.array(manageUserResponseUserResponse).optional()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Lets you manage users in your account by adding, deleting, enabling, or disabling users. You can also reset their passwords and edit user roles. This endpoint can help you streamline your onboarding process by programmatically adding new users, assigning appropriate roles, and setting up permissions. * * POST /v1/manage-user */ export const createApiV1ManageUser = async (args: CreateApiV1ManageUserArgs, options?: CreateApiV1ManageUserOptions) => { const {baseUrl = "https://api.vectara.io", fetch: fetchFn = fetch, oAuth} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (args['customer-id'] != null) headers.set("customer-id", String(args['customer-id'])) if (args.timeout != null) headers.set("timeout", String(args.timeout)) if (oAuth !== undefined) headers.set('authorization', `Bearer ${oAuth}`) const url = `${baseUrl.replace(/\/+$/, '')}/v1/manage-user${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(adminManageUserResponse, await res.json()) };