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

/**
 * You can create a Ticket
 */
export interface CreateTicketRequestBody {
    /** The ID of the type of ticket you want to create */
    ticket_type_id: string;
    /** The list of contacts (users or leads) affected by this ticket. Currently only one is allowed */
    contacts: CreateTicketRequestBody.Contacts.Item[];
    /**
     * The ID of the conversation you want to link to the ticket. Here are the valid ways of linking two tickets:
     *  - conversation | back-office ticket
     *  - customer tickets | non-shared back-office ticket
     *  - conversation | tracker ticket
     *  - customer ticket | tracker ticket
     */
    conversation_to_link_id?: string;
    /** The ID of the company that the ticket is associated with. The unique identifier for the company which is given by Intercom */
    company_id?: string;
    /** The time the ticket was created. If not provided, the current time will be used. */
    created_at?: number;
    assignment?: CreateTicketRequestBody.Assignment;
}

export namespace CreateTicketRequestBody {
    export type Contacts = Contacts.Item[];

    export namespace Contacts {
        export type Item =
            | {
                  id: string;
              }
            | {
                  external_id: string;
              }
            | {
                  email: string;
              };
    }

    export interface Assignment {
        /** The ID of the admin to which the ticket is assigned. If not provided, the ticket will be unassigned. */
        admin_assignee_id?: string;
        /** The ID of the team to which the ticket is assigned. If not provided, the ticket will be unassigned. */
        team_assignee_id?: string;
    }
}
