// This file was auto-generated by Fern from our API Definition.

import type * as Vapi from "../../../../index.js";

/**
 * @example
 *     {}
 */
export interface CreateCallDto {
    /**
     * This is used to issue batch calls to multiple customers.
     *
     * Only relevant for `outboundPhoneCall`. To call a single customer, use `customer` instead.
     */
    customers?: Vapi.CreateCustomerDto[];
    /** This is the name of the call. This is just for your own reference. */
    name?: string;
    /** This is the schedule plan of the call. */
    schedulePlan?: Vapi.SchedulePlan;
    /** This is the transport of the call. */
    transport?: Record<string, unknown>;
    /**
     * This is the assistant ID that will be used for the call. To use a transient assistant, use `assistant` instead.
     *
     * To start a call with:
     * - Assistant, use `assistantId` or `assistant`
     * - Squad, use `squadId` or `squad`
     * - Workflow, use `workflowId` or `workflow`
     */
    assistantId?: string;
    /**
     * This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead.
     *
     * To start a call with:
     * - Assistant, use `assistant`
     * - Squad, use `squad`
     * - Workflow, use `workflow`
     */
    assistant?: Vapi.CreateAssistantDto;
    /** These are the overrides for the `assistant` or `assistantId`'s settings and template variables. */
    assistantOverrides?: Vapi.AssistantOverrides;
    /**
     * This is the squad that will be used for the call. To use a transient squad, use `squad` instead.
     *
     * To start a call with:
     * - Assistant, use `assistant` or `assistantId`
     * - Squad, use `squad` or `squadId`
     * - Workflow, use `workflow` or `workflowId`
     */
    squadId?: string;
    /**
     * This is a squad that will be used for the call. To use an existing squad, use `squadId` instead.
     *
     * To start a call with:
     * - Assistant, use `assistant` or `assistantId`
     * - Squad, use `squad` or `squadId`
     * - Workflow, use `workflow` or `workflowId`
     */
    squad?: Vapi.CreateSquadDto;
    /**
     * These are the overrides for the `squad` or `squadId`'s member settings and template variables.
     * This will apply to all members of the squad.
     */
    squadOverrides?: Vapi.AssistantOverrides;
    /**
     * This is the workflow that will be used for the call. To use a transient workflow, use `workflow` instead.
     *
     * To start a call with:
     * - Assistant, use `assistant` or `assistantId`
     * - Squad, use `squad` or `squadId`
     * - Workflow, use `workflow` or `workflowId`
     */
    workflowId?: string;
    /**
     * This is a workflow that will be used for the call. To use an existing workflow, use `workflowId` instead.
     *
     * To start a call with:
     * - Assistant, use `assistant` or `assistantId`
     * - Squad, use `squad` or `squadId`
     * - Workflow, use `workflow` or `workflowId`
     */
    workflow?: Vapi.CreateWorkflowDto;
    /** These are the overrides for the `workflow` or `workflowId`'s settings and template variables. */
    workflowOverrides?: Vapi.WorkflowOverrides;
    /**
     * This is the phone number that will be used for the call. To use a transient number, use `phoneNumber` instead.
     *
     * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
     */
    phoneNumberId?: string;
    /**
     * This is the phone number that will be used for the call. To use an existing number, use `phoneNumberId` instead.
     *
     * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
     */
    phoneNumber?: Vapi.ImportTwilioPhoneNumberDto;
    /**
     * This is the customer that will be called. To call a transient customer , use `customer` instead.
     *
     * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
     */
    customerId?: string;
    /**
     * This is the customer that will be called. To call an existing customer, use `customerId` instead.
     *
     * Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
     */
    customer?: Vapi.CreateCustomerDto;
}
