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

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

/**
 * @example
 *     {
 *         input: "input"
 *     }
 */
export interface OpenAiResponsesRequest {
    /** This is the assistant that will be used for the chat. To use an existing assistant, use `assistantId` instead. */
    assistantId?: string;
    /** This is the assistant that will be used for the chat. To use an existing assistant, use `assistantId` instead. */
    assistant?: Vapi.CreateAssistantDto;
    /**
     * These are the variable values that will be used to replace template variables in the assistant messages.
     * Only variable substitution is supported in chat contexts - other assistant properties cannot be overridden.
     */
    assistantOverrides?: Vapi.AssistantOverrides;
    /** This is the squad that will be used for the chat. To use a transient squad, use `squad` instead. */
    squadId?: string;
    /** This is the squad that will be used for the chat. To use an existing squad, use `squadId` instead. */
    squad?: Vapi.CreateSquadDto;
    /** This is the name of the chat. This is just for your own reference. */
    name?: string;
    /**
     * This is the ID of the session that will be used for the chat.
     * Mutually exclusive with previousChatId.
     */
    sessionId?: string;
    /**
     * This is the input text for the chat.
     * Can be a string or an array of chat messages.
     * This field is REQUIRED for chat creation.
     */
    input: Vapi.OpenAiResponsesRequestInput;
    /** Whether to stream the response or not. */
    stream?: boolean;
    /**
     * This is the ID of the chat that will be used as context for the new chat.
     * The messages from the previous chat will be used as context.
     * Mutually exclusive with sessionId.
     */
    previousChatId?: string;
    /**
     * This is used to send the chat through a transport like SMS.
     * If transport.phoneNumberId and transport.customer are provided, creates a new session.
     * If sessionId is provided without transport fields, uses existing session data.
     * Cannot specify both sessionId and transport fields (phoneNumberId/customer) together.
     */
    transport?: Vapi.TwilioSmsChatTransport;
}
