/** * Generated by orval v8.19.0 🍺 * Do not edit manually. * Webitel API * OpenAPI spec version: 24.04.0 */ import * as zod from 'zod'; /** * @summary CreateCall initiates a new outbound call with specified parameters. */ export const CreateCallBody = zod.object({ destination: zod.string().optional(), domainId: zod.string().optional(), from: zod .object({ appId: zod.string().optional(), extension: zod.string().optional(), id: zod.string().optional(), type: zod.string().optional(), }) .optional(), params: zod .object({ cancelDistribute: zod.boolean().optional(), contactId: zod.string().optional(), disableAutoAnswer: zod.boolean().optional(), disableStun: zod.boolean().optional(), display: zod.string().optional(), hideNumber: zod.boolean().optional(), isOnline: zod.boolean().optional(), timeout: zod.number().optional(), variables: zod.record(zod.string(), zod.string()).optional(), }) .optional(), to: zod .object({ appId: zod.string().optional(), extension: zod.string().optional(), id: zod.string().optional(), type: zod.string().optional(), }) .optional(), }); export const CreateCallResponse = zod.object({ id: zod.string().optional(), }); /** * @summary SearchActiveCall returns a list of all calls currently in progress. */ export const SearchActiveCallQueryParams = zod.object({ page: zod.number().optional(), size: zod.number().optional(), q: zod.string().optional(), sort: zod.string().optional(), fields: zod.array(zod.string()).optional(), 'createdAt.from': zod.string().optional(), 'createdAt.to': zod.string().optional(), userId: zod.array(zod.string()).optional(), agentId: zod.array(zod.string()).optional(), queueId: zod.array(zod.string()).optional(), teamId: zod.array(zod.string()).optional(), memberId: zod.array(zod.string()).optional(), gatewayId: zod.array(zod.string()).optional(), 'duration.from': zod.string().optional(), 'duration.to': zod.string().optional(), skipParent: zod.boolean().optional(), parentId: zod.string().optional(), cause: zod.array(zod.string()).optional(), existsFile: zod.boolean().optional(), domainId: zod.string().optional(), number: zod.string().optional(), direction: zod.array(zod.string()).optional(), 'answeredAt.from': zod.string().optional(), 'answeredAt.to': zod.string().optional(), missed: zod.boolean().optional(), 'storedAt.from': zod.string().optional(), 'storedAt.to': zod.string().optional(), supervisorId: zod.array(zod.string()).optional(), state: zod.array(zod.string()).optional(), }); export const SearchActiveCallResponse = zod.object({ items: zod .array( zod.object({ agent: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), answeredAt: zod.string().optional(), appId: zod.string().optional(), billSec: zod.number().optional(), blindTransfer: zod.string().optional(), bridgedAt: zod.string().optional(), bridgedId: zod.string().optional(), createdAt: zod.string().optional(), destination: zod.string().optional(), direction: zod.string().optional(), display: zod.string().optional(), duration: zod.number().optional(), extension: zod.string().optional(), from: zod .object({ id: zod.string().optional(), name: zod.string().optional(), number: zod.string().optional(), type: zod.string().optional(), }) .optional(), gateway: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), holdSec: zod.number().optional(), id: zod.string().optional(), joinedAt: zod.string().optional(), leavingAt: zod.string().optional(), member: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), parentId: zod.string().optional(), queue: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), queueBridgedAt: zod.string().optional(), queueDurationSec: zod.number().optional(), queueWaitSec: zod.number().optional(), reportingAt: zod.string().optional(), reportingSec: zod.number().optional(), state: zod.string().optional(), supervisor: zod .array( zod.object({ id: zod.string().optional(), name: zod.string().optional(), }), ) .optional(), team: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), timestamp: zod.string().optional(), to: zod .object({ id: zod.string().optional(), name: zod.string().optional(), number: zod.string().optional(), type: zod.string().optional(), }) .optional(), type: zod.string().optional(), user: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), variables: zod.record(zod.string(), zod.string()).optional(), waitSec: zod.number().optional(), }), ) .optional(), next: zod.boolean().optional(), }); /** * @summary HangupCall terminates an active call session. */ export const HangupCallParams = zod.object({ id: zod.string(), }); export const HangupCallBody = zod.object({ appId: zod.string().optional(), cause: zod.string().optional(), domainId: zod.string().optional(), }); export const HangupCallResponse = zod.looseObject({}); /** * @summary ReadCall returns detailed real-time information for a specific active call. */ export const ReadCallParams = zod.object({ id: zod.string(), }); export const ReadCallQueryParams = zod.object({ domainId: zod.string().optional(), }); export const ReadCallResponse = zod.object({ agent: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), answeredAt: zod.string().optional(), appId: zod.string().optional(), billSec: zod.number().optional(), blindTransfer: zod.string().optional(), bridgedAt: zod.string().optional(), bridgedId: zod.string().optional(), createdAt: zod.string().optional(), destination: zod.string().optional(), direction: zod.string().optional(), display: zod.string().optional(), duration: zod.number().optional(), extension: zod.string().optional(), from: zod .object({ id: zod.string().optional(), name: zod.string().optional(), number: zod.string().optional(), type: zod.string().optional(), }) .optional(), gateway: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), holdSec: zod.number().optional(), id: zod.string().optional(), joinedAt: zod.string().optional(), leavingAt: zod.string().optional(), member: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), parentId: zod.string().optional(), queue: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), queueBridgedAt: zod.string().optional(), queueDurationSec: zod.number().optional(), queueWaitSec: zod.number().optional(), reportingAt: zod.string().optional(), reportingSec: zod.number().optional(), state: zod.string().optional(), supervisor: zod .array( zod.object({ id: zod.string().optional(), name: zod.string().optional(), }), ) .optional(), team: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), timestamp: zod.string().optional(), to: zod .object({ id: zod.string().optional(), name: zod.string().optional(), number: zod.string().optional(), type: zod.string().optional(), }) .optional(), type: zod.string().optional(), user: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), variables: zod.record(zod.string(), zod.string()).optional(), waitSec: zod.number().optional(), }); /** * @summary ConfirmPush confirms receipt of a push notification for synchronization. */ export const ConfirmPushParams = zod.object({ id: zod.string(), }); export const ConfirmPushResponse = zod.looseObject({}); /** * @summary DtmfCall sends DTMF digits to an active call. */ export const DtmfCallParams = zod.object({ id: zod.string(), }); export const DtmfCallBody = zod.object({ appId: zod.string().optional(), digit: zod.string().optional(), domainId: zod.string().optional(), }); export const DtmfCallResponse = zod.looseObject({}); /** * @summary EavesdropCall allows a supervisor to listen, whisper, or join an active call. */ export const EavesdropCallParams = zod.object({ id: zod.string(), }); export const EavesdropCallBody = zod.object({ appId: zod.string().optional(), control: zod.boolean().optional(), from: zod .object({ appId: zod.string().optional(), extension: zod.string().optional(), id: zod.string().optional(), type: zod.string().optional(), }) .optional(), listenA: zod.boolean().optional(), listenB: zod.boolean().optional(), whisperA: zod.boolean().optional(), whisperB: zod.boolean().optional(), }); export const EavesdropCallResponse = zod.object({ id: zod.string().optional(), }); /** * @summary HoldCall puts an active call on hold. */ export const HoldCallParams = zod.object({ id: zod.string(), }); export const HoldCallBody = zod.object({ appId: zod.string().optional(), domainId: zod.string().optional(), }); export const HoldCallResponse = zod.object({ state: zod.string().optional(), }); /** * @summary BlindTransferCall redirects an active call to another destination. */ export const BlindTransferCallParams = zod.object({ id: zod.string(), }); export const BlindTransferCallBody = zod.object({ appId: zod.string().optional(), destination: zod.string().optional(), domainId: zod.string().optional(), }); export const BlindTransferCallResponse = zod.looseObject({}); /** * @summary UnHoldCall resumes a call from hold state. */ export const UnHoldCallParams = zod.object({ id: zod.string(), }); export const UnHoldCallBody = zod.object({ appId: zod.string().optional(), domainId: zod.string().optional(), }); export const UnHoldCallResponse = zod.object({ state: zod.string().optional(), }); /** * @summary SetVariablesCall updates call channel variables in real-time. */ export const SetVariablesCallParams = zod.object({ id: zod.string(), }); export const SetVariablesCallBody = zod.object({ variables: zod.record(zod.string(), zod.string()).optional(), }); export const SetVariablesCallResponse = zod.looseObject({}); /** * @summary SearchHistoryCall retrieves a list of completed calls using filters (GET). Supports advanced filtering by participants, duration, causes, and custom variables. */ export const SearchHistoryCallQueryParams = zod.object({ page: zod.number().optional(), size: zod.number().optional(), q: zod.string().optional(), sort: zod.string().optional(), fields: zod.array(zod.string()).optional(), 'createdAt.from': zod.string().optional(), 'createdAt.to': zod.string().optional(), userId: zod.array(zod.string()).optional(), agentId: zod.array(zod.string()).optional(), queueId: zod.array(zod.string()).optional(), teamId: zod.array(zod.string()).optional(), memberId: zod.array(zod.string()).optional(), gatewayId: zod.array(zod.string()).optional(), 'duration.from': zod.string().optional(), 'duration.to': zod.string().optional(), skipParent: zod.boolean().optional(), parentId: zod.string().optional(), cause: zod.array(zod.string()).optional(), hasFile: zod.boolean().optional(), domainId: zod.string().optional(), number: zod.string().optional(), direction: zod.string().optional(), 'answeredAt.from': zod.string().optional(), 'answeredAt.to': zod.string().optional(), missed: zod.boolean().optional(), 'storedAt.from': zod.string().optional(), 'storedAt.to': zod.string().optional(), id: zod.array(zod.string()).optional(), transferFrom: zod.array(zod.string()).optional(), transferTo: zod.array(zod.string()).optional(), dependencyId: zod.string().optional(), tags: zod.array(zod.string()).optional(), variablesString: zod .string() .optional() .describe( 'This is a request variable of the map type. The query format is "map_name[key]=value", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age["bob"]=18', ), amdResult: zod.array(zod.string()).optional(), fts: zod.string().optional(), directions: zod.array(zod.string()).optional(), hasTranscript: zod.boolean().optional(), agentDescription: zod.string().optional(), ownerId: zod.array(zod.string()).optional(), granteeId: zod.array(zod.string()).optional(), amdAiResult: zod.array(zod.string()).optional(), 'talk.from': zod.string().optional(), 'talk.to': zod.string().optional(), rated: zod.boolean().optional(), ratedBy: zod.array(zod.string()).optional(), 'scoreRequired.from': zod.string().optional(), 'scoreRequired.to': zod.string().optional(), 'scoreOptional.from': zod.string().optional(), 'scoreOptional.to': zod.string().optional(), ratedUser: zod.array(zod.string()).optional(), contactId: zod.array(zod.string()).optional(), schemaId: zod.array(zod.number()).optional(), hasTransfer: zod.boolean().optional(), timeline: zod.boolean().optional(), }); export const searchHistoryCallResponseItemsItemFilesItemTypeDefault = `file_type_empty`; export const searchHistoryCallResponseItemsItemFilesJobItemActionDefault = `undefined`; export const searchHistoryCallResponseItemsItemFilesJobItemStateDefault = `idle`; export const SearchHistoryCallResponse = zod.object({ items: zod .array( zod.object({ tags: zod.array(zod.string()).optional(), agent: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), agentDescription: zod.string().optional(), allowEvaluation: zod.boolean().optional(), amdAiLogs: zod.array(zod.string()).optional(), amdAiResult: zod.string().optional(), amdResult: zod.string().optional(), annotations: zod .array( zod.object({ callId: zod.string().optional(), createdAt: zod.string().optional(), createdBy: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), endSec: zod.number().optional(), fileId: zod.string().optional(), id: zod.string().optional(), note: zod.string().optional(), startSec: zod.number().optional(), updatedAt: zod.string().optional(), updatedBy: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), }), ) .optional(), answeredAt: zod.string().optional(), appId: zod.string().optional(), attemptId: zod.string().optional(), billSec: zod.number().optional(), blindTransfer: zod.string().optional(), blindTransfers: zod .array( zod.object({ number: zod.string().optional(), time: zod.string().optional(), user: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), }), ) .optional(), bridgedAt: zod.string().optional(), bridgedId: zod.string().optional(), cause: zod.string().optional(), contact: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), conversationId: zod.string().optional(), createdAt: zod.string().optional(), destination: zod.string().optional(), destinationName: zod.string().optional(), direction: zod.string().optional(), display: zod.string().optional(), duration: zod.number().optional(), extension: zod.string().optional(), files: zod .array( zod.object({ channel: zod.string().optional(), id: zod.string().optional(), mimeType: zod.string().optional(), name: zod.string().optional(), size: zod.string().optional(), startAt: zod.string().optional(), startRecord: zod.string().optional(), stopAt: zod.string().optional(), type: zod .enum([ 'file_type_empty', 'file_type_screenshot', 'file_type_screensharing', 'file_type_audio', 'file_type_video', 'file_type_pdf', ]) .default( searchHistoryCallResponseItemsItemFilesItemTypeDefault, ), }), ) .optional(), filesJob: zod .array( zod.object({ action: zod .enum([ 'undefined', 'STT', 'delete', ]) .default( searchHistoryCallResponseItemsItemFilesJobItemActionDefault, ), createdAt: zod.string().optional(), errorDetail: zod.string().optional(), fileId: zod.string().optional(), id: zod.string().optional(), state: zod .enum([ 'idle', 'active', 'finished', 'error', ]) .default( searchHistoryCallResponseItemsItemFilesJobItemStateDefault, ), }), ) .optional(), forms: zod .array( zod.object({ agent: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), reportingAt: zod.string().optional(), }), ) .optional(), from: zod .object({ id: zod.string().optional(), name: zod.string().optional(), number: zod.string().optional(), type: zod.string().optional(), }) .optional(), fromNumber: zod.string().optional(), gateway: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), grantee: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), hangupAt: zod.string().optional(), hangupBy: zod.string().optional(), hangupDisposition: zod.string().optional(), hangupPhrase: zod.string().optional(), hasChildren: zod.boolean().optional(), hold: zod .array( zod.object({ sec: zod.number().optional(), start: zod.string().optional(), stop: zod.string().optional(), }), ) .optional(), holdSec: zod.number().optional(), id: zod.string().optional(), joinedAt: zod.string().optional(), leavingAt: zod.string().optional(), meetingId: zod.string().optional(), member: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), memberId: zod.string().optional(), parentId: zod.string().optional(), qualityMetrics: zod .object({ jitterAvg: zod.number().optional(), jitterMax: zod.number().optional(), jitterMaxAt: zod.number().optional(), jitterMin: zod.number().optional(), jitterMinAt: zod.number().optional(), mosAvg: zod.number().optional(), mosMax: zod.number().optional(), mosMaxAt: zod.number().optional(), mosMin: zod.number().optional(), mosMinAt: zod.number().optional(), packetlossAvg: zod.number().optional(), packetlossMax: zod.number().optional(), packetlossMaxAt: zod.number().optional(), packetlossMin: zod.number().optional(), packetlossMinAt: zod.number().optional(), roundtripAvg: zod.number().optional(), roundtripMax: zod.number().optional(), roundtripMaxAt: zod.number().optional(), roundtripMin: zod.number().optional(), roundtripMinAt: zod.number().optional(), sipId: zod.string().optional(), }) .optional(), queue: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), queueBridgedAt: zod.string().optional(), queueDurationSec: zod.number().optional(), queueWaitSec: zod.number().optional(), rateId: zod.string().optional(), ratedBy: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), ratedUser: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), reportingAt: zod.string().optional(), reportingSec: zod.number().optional(), result: zod.string().optional(), schemas: zod .array( zod.object({ id: zod.string().optional(), name: zod.string().optional(), }), ) .optional(), scoreOptional: zod.number().optional(), scoreRequired: zod.number().optional(), sipCode: zod.number().optional(), storedAt: zod.string().optional(), talkSec: zod.number().optional(), team: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), to: zod .object({ id: zod.string().optional(), name: zod.string().optional(), number: zod.string().optional(), type: zod.string().optional(), }) .optional(), toNumber: zod.string().optional(), transcripts: zod .array( zod.object({ file: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), fileId: zod.string().optional(), id: zod.string().optional(), locale: zod.string().optional(), }), ) .optional(), transferFrom: zod.string().optional(), transferTo: zod.string().optional(), type: zod.string().optional(), user: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), variables: zod.record(zod.string(), zod.string()).optional(), waitSec: zod.number().optional(), }), ) .optional(), next: zod.boolean().optional(), }); /** * @summary SearchHistoryCallPost retrieves a list of completed calls using a complex filter body (POST). Ideal for large filter sets that exceed URL length limits. */ export const SearchHistoryCallPostBody = zod.object({ tags: zod.array(zod.string()).optional(), agentDescription: zod.string().optional(), agentId: zod.array(zod.string()).optional(), amdAiResult: zod.array(zod.string()).optional(), amdResult: zod.array(zod.string()).optional(), answeredAt: zod .object({ from: zod.string().optional(), to: zod.string().optional(), }) .optional(), cause: zod.array(zod.string()).optional(), contactId: zod.array(zod.string()).optional(), createdAt: zod .object({ from: zod.string().optional(), to: zod.string().optional(), }) .optional(), dependencyId: zod.string().optional(), direction: zod.string().optional(), directions: zod.array(zod.string()).optional(), domainId: zod.string().optional(), duration: zod .object({ from: zod.string().optional(), to: zod.string().optional(), }) .optional(), fields: zod.array(zod.string()).optional(), fts: zod.string().optional(), gatewayId: zod.array(zod.string()).optional(), granteeId: zod.array(zod.string()).optional(), hasFile: zod.boolean().optional(), hasTranscript: zod.boolean().optional(), hasTransfer: zod.boolean().optional(), id: zod.array(zod.string()).optional(), memberId: zod.array(zod.string()).optional(), missed: zod.boolean().optional(), number: zod.string().optional(), ownerId: zod.array(zod.string()).optional(), page: zod.number().optional(), parentId: zod.string().optional(), q: zod.string().optional(), queueId: zod.array(zod.string()).optional(), rated: zod.boolean().optional(), ratedBy: zod.array(zod.string()).optional(), ratedUser: zod.array(zod.string()).optional(), schemaId: zod.array(zod.number()).optional(), scoreOptional: zod .object({ from: zod.string().optional(), to: zod.string().optional(), }) .optional(), scoreRequired: zod .object({ from: zod.string().optional(), to: zod.string().optional(), }) .optional(), size: zod.number().optional(), skipParent: zod.boolean().optional(), sort: zod.string().optional(), storedAt: zod .object({ from: zod.string().optional(), to: zod.string().optional(), }) .optional(), talk: zod .object({ from: zod.string().optional(), to: zod.string().optional(), }) .optional(), teamId: zod.array(zod.string()).optional(), timeline: zod.boolean().optional(), transferFrom: zod.array(zod.string()).optional(), transferTo: zod.array(zod.string()).optional(), userId: zod.array(zod.string()).optional(), variablesString: zod.record(zod.string(), zod.string()).optional(), }); export const searchHistoryCallPostResponseItemsItemFilesItemTypeDefault = `file_type_empty`; export const searchHistoryCallPostResponseItemsItemFilesJobItemActionDefault = `undefined`; export const searchHistoryCallPostResponseItemsItemFilesJobItemStateDefault = `idle`; export const SearchHistoryCallPostResponse = zod.object({ items: zod .array( zod.object({ tags: zod.array(zod.string()).optional(), agent: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), agentDescription: zod.string().optional(), allowEvaluation: zod.boolean().optional(), amdAiLogs: zod.array(zod.string()).optional(), amdAiResult: zod.string().optional(), amdResult: zod.string().optional(), annotations: zod .array( zod.object({ callId: zod.string().optional(), createdAt: zod.string().optional(), createdBy: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), endSec: zod.number().optional(), fileId: zod.string().optional(), id: zod.string().optional(), note: zod.string().optional(), startSec: zod.number().optional(), updatedAt: zod.string().optional(), updatedBy: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), }), ) .optional(), answeredAt: zod.string().optional(), appId: zod.string().optional(), attemptId: zod.string().optional(), billSec: zod.number().optional(), blindTransfer: zod.string().optional(), blindTransfers: zod .array( zod.object({ number: zod.string().optional(), time: zod.string().optional(), user: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), }), ) .optional(), bridgedAt: zod.string().optional(), bridgedId: zod.string().optional(), cause: zod.string().optional(), contact: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), conversationId: zod.string().optional(), createdAt: zod.string().optional(), destination: zod.string().optional(), destinationName: zod.string().optional(), direction: zod.string().optional(), display: zod.string().optional(), duration: zod.number().optional(), extension: zod.string().optional(), files: zod .array( zod.object({ channel: zod.string().optional(), id: zod.string().optional(), mimeType: zod.string().optional(), name: zod.string().optional(), size: zod.string().optional(), startAt: zod.string().optional(), startRecord: zod.string().optional(), stopAt: zod.string().optional(), type: zod .enum([ 'file_type_empty', 'file_type_screenshot', 'file_type_screensharing', 'file_type_audio', 'file_type_video', 'file_type_pdf', ]) .default( searchHistoryCallPostResponseItemsItemFilesItemTypeDefault, ), }), ) .optional(), filesJob: zod .array( zod.object({ action: zod .enum([ 'undefined', 'STT', 'delete', ]) .default( searchHistoryCallPostResponseItemsItemFilesJobItemActionDefault, ), createdAt: zod.string().optional(), errorDetail: zod.string().optional(), fileId: zod.string().optional(), id: zod.string().optional(), state: zod .enum([ 'idle', 'active', 'finished', 'error', ]) .default( searchHistoryCallPostResponseItemsItemFilesJobItemStateDefault, ), }), ) .optional(), forms: zod .array( zod.object({ agent: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), reportingAt: zod.string().optional(), }), ) .optional(), from: zod .object({ id: zod.string().optional(), name: zod.string().optional(), number: zod.string().optional(), type: zod.string().optional(), }) .optional(), fromNumber: zod.string().optional(), gateway: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), grantee: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), hangupAt: zod.string().optional(), hangupBy: zod.string().optional(), hangupDisposition: zod.string().optional(), hangupPhrase: zod.string().optional(), hasChildren: zod.boolean().optional(), hold: zod .array( zod.object({ sec: zod.number().optional(), start: zod.string().optional(), stop: zod.string().optional(), }), ) .optional(), holdSec: zod.number().optional(), id: zod.string().optional(), joinedAt: zod.string().optional(), leavingAt: zod.string().optional(), meetingId: zod.string().optional(), member: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), memberId: zod.string().optional(), parentId: zod.string().optional(), qualityMetrics: zod .object({ jitterAvg: zod.number().optional(), jitterMax: zod.number().optional(), jitterMaxAt: zod.number().optional(), jitterMin: zod.number().optional(), jitterMinAt: zod.number().optional(), mosAvg: zod.number().optional(), mosMax: zod.number().optional(), mosMaxAt: zod.number().optional(), mosMin: zod.number().optional(), mosMinAt: zod.number().optional(), packetlossAvg: zod.number().optional(), packetlossMax: zod.number().optional(), packetlossMaxAt: zod.number().optional(), packetlossMin: zod.number().optional(), packetlossMinAt: zod.number().optional(), roundtripAvg: zod.number().optional(), roundtripMax: zod.number().optional(), roundtripMaxAt: zod.number().optional(), roundtripMin: zod.number().optional(), roundtripMinAt: zod.number().optional(), sipId: zod.string().optional(), }) .optional(), queue: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), queueBridgedAt: zod.string().optional(), queueDurationSec: zod.number().optional(), queueWaitSec: zod.number().optional(), rateId: zod.string().optional(), ratedBy: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), ratedUser: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), reportingAt: zod.string().optional(), reportingSec: zod.number().optional(), result: zod.string().optional(), schemas: zod .array( zod.object({ id: zod.string().optional(), name: zod.string().optional(), }), ) .optional(), scoreOptional: zod.number().optional(), scoreRequired: zod.number().optional(), sipCode: zod.number().optional(), storedAt: zod.string().optional(), talkSec: zod.number().optional(), team: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), to: zod .object({ id: zod.string().optional(), name: zod.string().optional(), number: zod.string().optional(), type: zod.string().optional(), }) .optional(), toNumber: zod.string().optional(), transcripts: zod .array( zod.object({ file: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), fileId: zod.string().optional(), id: zod.string().optional(), locale: zod.string().optional(), }), ) .optional(), transferFrom: zod.string().optional(), transferTo: zod.string().optional(), type: zod.string().optional(), user: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), variables: zod.record(zod.string(), zod.string()).optional(), waitSec: zod.number().optional(), }), ) .optional(), next: zod.boolean().optional(), }); /** * @summary AggregateHistoryCall performs statistical analysis on historical data. Group and aggregate metrics like average duration, call counts, or peak hours. */ export const AggregateHistoryCallBody = zod.object({ tags: zod.array(zod.string()).optional(), agentDescription: zod.string().optional(), agentId: zod.array(zod.string()).optional(), aggs: zod .array( zod.object({ avg: zod.array(zod.string()).optional(), count: zod.array(zod.string()).optional(), group: zod .array( zod.object({ aggregate: zod.string().optional(), desc: zod.boolean().optional(), field: zod.string().optional(), id: zod.string().optional(), interval: zod.string().optional(), top: zod.number().optional(), }), ) .optional(), limit: zod.number().optional(), max: zod.array(zod.string()).optional(), min: zod.array(zod.string()).optional(), name: zod.string().optional(), sort: zod.array(zod.string()).optional(), sum: zod.array(zod.string()).optional(), }), ) .optional(), amdResult: zod.array(zod.string()).optional(), answeredAt: zod .object({ from: zod.string().optional(), to: zod.string().optional(), }) .optional(), cause: zod.array(zod.string()).optional(), contactId: zod.array(zod.string()).optional(), createdAt: zod .object({ from: zod.string().optional(), to: zod.string().optional(), }) .optional(), dependencyId: zod.string().optional(), direction: zod.string().optional(), directions: zod.array(zod.string()).optional(), domainId: zod.string().optional(), duration: zod .object({ from: zod.string().optional(), to: zod.string().optional(), }) .optional(), fts: zod.string().optional(), gatewayId: zod.array(zod.string()).optional(), hasFile: zod.boolean().optional(), hasTranscript: zod.boolean().optional(), id: zod.array(zod.string()).optional(), memberId: zod.array(zod.string()).optional(), missed: zod.boolean().optional(), number: zod.string().optional(), page: zod.number().optional(), parentId: zod.string().optional(), q: zod.string().optional(), queueId: zod.array(zod.string()).optional(), size: zod.number().optional(), skipParent: zod.boolean().optional(), storedAt: zod .object({ from: zod.string().optional(), to: zod.string().optional(), }) .optional(), teamId: zod.array(zod.string()).optional(), transferFrom: zod.array(zod.string()).optional(), transferTo: zod.array(zod.string()).optional(), userId: zod.array(zod.string()).optional(), variables: zod.record(zod.string(), zod.string()).optional(), }); export const AggregateHistoryCallResponse = zod.object({ items: zod .array( zod.object({ name: zod.string().optional(), }), ) .optional(), }); /** * @summary CreateCallAnnotation adds a text note to a specific timeframe of a historical call. */ export const CreateCallAnnotationParams = zod.object({ call_id: zod.string(), }); export const CreateCallAnnotationBody = zod.object({ endSec: zod.number().optional(), fileId: zod.string().optional(), note: zod.string().optional(), startSec: zod.number().optional(), }); export const CreateCallAnnotationResponse = zod.object({ callId: zod.string().optional(), createdAt: zod.string().optional(), createdBy: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), endSec: zod.number().optional(), fileId: zod.string().optional(), id: zod.string().optional(), note: zod.string().optional(), startSec: zod.number().optional(), updatedAt: zod.string().optional(), updatedBy: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), }); /** * @summary DeleteCallAnnotation removes an annotation from a historical call. */ export const DeleteCallAnnotationParams = zod.object({ call_id: zod.string(), id: zod.string(), }); export const DeleteCallAnnotationResponse = zod.object({ callId: zod.string().optional(), createdAt: zod.string().optional(), createdBy: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), endSec: zod.number().optional(), fileId: zod.string().optional(), id: zod.string().optional(), note: zod.string().optional(), startSec: zod.number().optional(), updatedAt: zod.string().optional(), updatedBy: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), }); /** * @summary UpdateCallAnnotation modifies an existing call note. */ export const UpdateCallAnnotationParams = zod.object({ call_id: zod.string(), id: zod.string(), }); export const UpdateCallAnnotationBody = zod.object({ endSec: zod.number().optional(), note: zod.string().optional(), startSec: zod.number().optional(), }); export const UpdateCallAnnotationResponse = zod.object({ callId: zod.string().optional(), createdAt: zod.string().optional(), createdBy: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), endSec: zod.number().optional(), fileId: zod.string().optional(), id: zod.string().optional(), note: zod.string().optional(), startSec: zod.number().optional(), updatedAt: zod.string().optional(), updatedBy: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), }); /** * @summary RedialCall quickly initiates a new call using data from a previous history record. */ export const RedialCallParams = zod.object({ call_id: zod.string(), }); export const RedialCallBody = zod.looseObject({}); export const RedialCallResponse = zod.object({ id: zod.string().optional(), }); /** * @summary PatchHistoryCall updates metadata for a completed call (e.g., variables or visibility). */ export const PatchHistoryCallParams = zod.object({ id: zod.string(), }); export const PatchHistoryCallBody = zod.object({ hideMissed: zod.boolean().optional(), variables: zod.record(zod.string(), zod.string()).optional(), }); export const patchHistoryCallResponseFilesItemTypeDefault = `file_type_empty`; export const patchHistoryCallResponseFilesJobItemActionDefault = `undefined`; export const patchHistoryCallResponseFilesJobItemStateDefault = `idle`; export const PatchHistoryCallResponse = zod.object({ tags: zod.array(zod.string()).optional(), agent: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), agentDescription: zod.string().optional(), allowEvaluation: zod.boolean().optional(), amdAiLogs: zod.array(zod.string()).optional(), amdAiResult: zod.string().optional(), amdResult: zod.string().optional(), annotations: zod .array( zod.object({ callId: zod.string().optional(), createdAt: zod.string().optional(), createdBy: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), endSec: zod.number().optional(), fileId: zod.string().optional(), id: zod.string().optional(), note: zod.string().optional(), startSec: zod.number().optional(), updatedAt: zod.string().optional(), updatedBy: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), }), ) .optional(), answeredAt: zod.string().optional(), appId: zod.string().optional(), attemptId: zod.string().optional(), billSec: zod.number().optional(), blindTransfer: zod.string().optional(), blindTransfers: zod .array( zod.object({ number: zod.string().optional(), time: zod.string().optional(), user: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), }), ) .optional(), bridgedAt: zod.string().optional(), bridgedId: zod.string().optional(), cause: zod.string().optional(), contact: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), conversationId: zod.string().optional(), createdAt: zod.string().optional(), destination: zod.string().optional(), destinationName: zod.string().optional(), direction: zod.string().optional(), display: zod.string().optional(), duration: zod.number().optional(), extension: zod.string().optional(), files: zod .array( zod.object({ channel: zod.string().optional(), id: zod.string().optional(), mimeType: zod.string().optional(), name: zod.string().optional(), size: zod.string().optional(), startAt: zod.string().optional(), startRecord: zod.string().optional(), stopAt: zod.string().optional(), type: zod .enum([ 'file_type_empty', 'file_type_screenshot', 'file_type_screensharing', 'file_type_audio', 'file_type_video', 'file_type_pdf', ]) .default(patchHistoryCallResponseFilesItemTypeDefault), }), ) .optional(), filesJob: zod .array( zod.object({ action: zod .enum([ 'undefined', 'STT', 'delete', ]) .default(patchHistoryCallResponseFilesJobItemActionDefault), createdAt: zod.string().optional(), errorDetail: zod.string().optional(), fileId: zod.string().optional(), id: zod.string().optional(), state: zod .enum([ 'idle', 'active', 'finished', 'error', ]) .default(patchHistoryCallResponseFilesJobItemStateDefault), }), ) .optional(), forms: zod .array( zod.object({ agent: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), reportingAt: zod.string().optional(), }), ) .optional(), from: zod .object({ id: zod.string().optional(), name: zod.string().optional(), number: zod.string().optional(), type: zod.string().optional(), }) .optional(), fromNumber: zod.string().optional(), gateway: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), grantee: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), hangupAt: zod.string().optional(), hangupBy: zod.string().optional(), hangupDisposition: zod.string().optional(), hangupPhrase: zod.string().optional(), hasChildren: zod.boolean().optional(), hold: zod .array( zod.object({ sec: zod.number().optional(), start: zod.string().optional(), stop: zod.string().optional(), }), ) .optional(), holdSec: zod.number().optional(), id: zod.string().optional(), joinedAt: zod.string().optional(), leavingAt: zod.string().optional(), meetingId: zod.string().optional(), member: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), memberId: zod.string().optional(), parentId: zod.string().optional(), qualityMetrics: zod .object({ jitterAvg: zod.number().optional(), jitterMax: zod.number().optional(), jitterMaxAt: zod.number().optional(), jitterMin: zod.number().optional(), jitterMinAt: zod.number().optional(), mosAvg: zod.number().optional(), mosMax: zod.number().optional(), mosMaxAt: zod.number().optional(), mosMin: zod.number().optional(), mosMinAt: zod.number().optional(), packetlossAvg: zod.number().optional(), packetlossMax: zod.number().optional(), packetlossMaxAt: zod.number().optional(), packetlossMin: zod.number().optional(), packetlossMinAt: zod.number().optional(), roundtripAvg: zod.number().optional(), roundtripMax: zod.number().optional(), roundtripMaxAt: zod.number().optional(), roundtripMin: zod.number().optional(), roundtripMinAt: zod.number().optional(), sipId: zod.string().optional(), }) .optional(), queue: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), queueBridgedAt: zod.string().optional(), queueDurationSec: zod.number().optional(), queueWaitSec: zod.number().optional(), rateId: zod.string().optional(), ratedBy: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), ratedUser: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), reportingAt: zod.string().optional(), reportingSec: zod.number().optional(), result: zod.string().optional(), schemas: zod .array( zod.object({ id: zod.string().optional(), name: zod.string().optional(), }), ) .optional(), scoreOptional: zod.number().optional(), scoreRequired: zod.number().optional(), sipCode: zod.number().optional(), storedAt: zod.string().optional(), talkSec: zod.number().optional(), team: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), to: zod .object({ id: zod.string().optional(), name: zod.string().optional(), number: zod.string().optional(), type: zod.string().optional(), }) .optional(), toNumber: zod.string().optional(), transcripts: zod .array( zod.object({ file: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), fileId: zod.string().optional(), id: zod.string().optional(), locale: zod.string().optional(), }), ) .optional(), transferFrom: zod.string().optional(), transferTo: zod.string().optional(), type: zod.string().optional(), user: zod .object({ id: zod.string().optional(), name: zod.string().optional(), }) .optional(), variables: zod.record(zod.string(), zod.string()).optional(), waitSec: zod.number().optional(), });