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

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

/**
 * @example
 *     {
 *         id: "id"
 *     }
 */
export interface UpdateCampaignDto {
    id: string;
    /** This is the name of the campaign. This is just for your own reference. */
    name?: string;
    /**
     * This is the assistant ID that will be used for the campaign calls.
     * Can only be updated if campaign is not in progress or has ended.
     */
    assistantId?: string;
    /**
     * This is the workflow ID that will be used for the campaign calls.
     * Can only be updated if campaign is not in progress or has ended.
     */
    workflowId?: string;
    /**
     * This is the squad ID that will be used for the campaign calls.
     * Can only be updated if campaign is not in progress or has ended.
     */
    squadId?: string;
    /**
     * This is the phone number ID that will be used for the campaign calls.
     * Can only be updated if campaign is not in progress or has ended.
     * Note: `phoneNumberId` and `dialPlan` are mutually exclusive.
     */
    phoneNumberId?: string;
    /** This is a list of dial entries, each specifying a phone number and the customers to call using that number. Can only be updated if campaign is not in progress or has ended. Note: phoneNumberId and dialPlan are mutually exclusive. */
    dialPlan?: Vapi.DialPlanEntry[];
    /**
     * This is the schedule plan for the campaign.
     * Can only be updated if campaign is not in progress or has ended.
     */
    schedulePlan?: Vapi.SchedulePlan;
    /**
     * This is the status of the campaign.
     * Can only be updated to 'ended' if you want to end the campaign.
     * When set to 'ended', it will delete all scheduled calls. Calls in progress will be allowed to complete.
     */
    status?: Vapi.UpdateCampaignDtoStatus;
}
