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

/**
 * @example
 *     {
 *         ticket_type_id: "ticket_type_id",
 *         name: "Attribute Title",
 *         description: "Attribute Description",
 *         data_type: "string",
 *         required_to_create: false
 *     }
 */
export interface CreateTicketTypeAttributeRequest {
    /** The unique identifier for the ticket type which is given by Intercom. */
    ticket_type_id: string;
    /** The name of the ticket type attribute */
    name: string;
    /** The description of the attribute presented to the teammate or contact */
    description: string;
    /** The data type of the attribute */
    data_type: CreateTicketTypeAttributeRequest.DataType;
    /** Whether the attribute is required to be filled in when teammates are creating the ticket in Inbox. */
    required_to_create?: boolean;
    /** Whether the attribute is required to be filled in when contacts are creating the ticket in Messenger. */
    required_to_create_for_contacts?: boolean;
    /** Whether the attribute is visible to teammates when creating a ticket in Inbox. */
    visible_on_create?: boolean;
    /** Whether the attribute is visible to contacts when creating a ticket in Messenger. */
    visible_to_contacts?: boolean;
    /** Whether the attribute allows multiple lines of text (only applicable to string attributes) */
    multiline?: boolean;
    /** A comma delimited list of items for the attribute value (only applicable to list attributes) */
    list_items?: string;
    /** Whether the attribute allows multiple files to be attached to it (only applicable to file attributes) */
    allow_multiple_values?: boolean;
}

export namespace CreateTicketTypeAttributeRequest {
    /** The data type of the attribute */
    export const DataType = {
        String: "string",
        List: "list",
        Integer: "integer",
        Decimal: "decimal",
        Boolean: "boolean",
        Datetime: "datetime",
        Files: "files",
    } as const;
    export type DataType = (typeof DataType)[keyof typeof DataType];
}
