export type CreateApiTenantArgs = {body: {name?: string | undefined, domain?: string | undefined, website?: string | undefined, timezone?: string | undefined, currency?: string | undefined, region?: string | undefined, enable_video_recording?: boolean | undefined, enable_audio_recording?: boolean | undefined, enable_dual_track_recording?: boolean | undefined, custom_options?: string | undefined, recording_retention?: number | undefined, call_report_retention?: number | undefined, log_retention?: number | undefined, temp_file_retention?: number | undefined, extension_im_disk_quota?: string | undefined, office_hours?: ({monday?: ({enabled?: boolean | undefined, ranges?: (Array<{from?: string | undefined, to?: string | undefined}>) | undefined}) | undefined, tuesday?: ({enabled?: boolean | undefined, ranges?: (Array<{from?: string | undefined, to?: string | undefined}>) | undefined}) | undefined, wednesday?: ({enabled?: boolean | undefined, ranges?: (Array<{from?: string | undefined, to?: string | undefined}>) | undefined}) | undefined, thursday?: ({enabled?: boolean | undefined, ranges?: (Array<{from?: string | undefined, to?: string | undefined}>) | undefined}) | undefined, friday?: ({enabled?: boolean | undefined, ranges?: (Array<{from?: string | undefined, to?: string | undefined}>) | undefined}) | undefined, saturday?: ({enabled?: boolean | undefined, ranges?: (Array<{from?: string | undefined, to?: string | undefined}>) | undefined}) | undefined, sunday?: ({enabled?: boolean | undefined, ranges?: (Array<{from?: string | undefined, to?: string | undefined}>) | undefined}) | undefined}) | undefined, outbound_caller_ids?: (Array<{provider_id?: string | undefined, caller_id?: string | undefined, description?: string | undefined}>) | undefined, e164?: ({enabled?: boolean | undefined, international_code?: string | undefined, country?: string | undefined, area_code?: string | undefined, national_code?: string | undefined, prefix?: string | undefined, remove_special_chars?: boolean | undefined, remove_duplicate_countries?: boolean | undefined, remove_duplicate_area_codes?: boolean | undefined}) | undefined, cdr_event?: ({enabled?: boolean | undefined, auth?: ('DISABLE' | 'BASIC' | 'DIGEST' | 'BEARER') | undefined, username?: string | undefined, password?: string | undefined, token?: string | undefined, url?: string | undefined}) | undefined, extension_event?: ({enabled?: boolean | undefined, auth?: ('DISABLE' | 'BASIC' | 'DIGEST' | 'BEARER') | undefined, username?: string | undefined, password?: string | undefined, token?: string | undefined, url?: string | undefined}) | undefined, contact_match_type?: ('DISABLE' | 'MATCH_EXACTLY' | 'MATCH_LENGTH') | undefined, contact_match_length?: number | undefined, contact_append_type?: ('DISABLE' | 'APPEND' | 'PREPEND') | undefined, contact_update_interval?: number | undefined, avatar_file_id?: string | undefined, stir_shaken_cert?: string | undefined, stir_shaken_key?: string | undefined}}; export type CreateApiTenantOptions = {baseUrl?: string | undefined, bearer?: string | undefined, fetch?: typeof fetch | undefined}; /** * Update a tenant * * POST /tenant */ export const createApiTenant = async (args: CreateApiTenantArgs, options?: CreateApiTenantOptions) => { const {baseUrl = "https://HOSTNAME:8887/api", fetch: fetchFn = fetch, bearer} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") if (bearer !== undefined) headers.set('authorization', `Bearer ${bearer}`) const url = `${baseUrl.replace(/\/+$/, '')}/tenant${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 undefined };