/** * Google Drive Trigger Node - Version 1 * Starts the workflow when Google Drive events occur */ export interface GoogleDriveTriggerV1Params { /** * Time at which polling should occur * @default {"item":[{"mode":"everyMinute"}]} */ pollTimes?: { /** Item */ item?: Array<{ /** How often to trigger. * @default everyDay */ mode?: 'everyMinute' | 'everyHour' | 'everyDay' | 'everyWeek' | 'everyMonth' | 'everyX' | 'custom' | Expression; /** The hour of the day to trigger (24h format) * @displayOptions.hide { mode: ["custom", "everyHour", "everyMinute", "everyX"] } * @default 14 */ hour?: number | Expression; /** The minute of the day to trigger * @displayOptions.hide { mode: ["custom", "everyMinute", "everyX"] } * @default 0 */ minute?: number | Expression; /** The day of the month to trigger * @displayOptions.show { mode: ["everyMonth"] } * @default 1 */ dayOfMonth?: number | Expression; /** The weekday to trigger * @displayOptions.show { mode: ["everyWeek"] } * @default 1 */ weekday?: '1' | '2' | '3' | '4' | '5' | '6' | '0' | Expression; /** Use custom cron expression. Values and ranges as follows:<ul><li>Seconds: 0-59</li><li>Minutes: 0 - 59</li><li>Hours: 0 - 23</li><li>Day of Month: 1 - 31</li><li>Months: 0 - 11 (Jan - Dec)</li><li>Day of Week: 0 - 6 (Sun - Sat)</li></ul> * @displayOptions.show { mode: ["custom"] } * @default * * * * * * */ cronExpression?: string | Expression | PlaceholderValue; /** All how many X minutes/hours it should trigger * @displayOptions.show { mode: ["everyX"] } * @default 2 */ value?: number | Expression; /** If it should trigger all X minutes or hours * @displayOptions.show { mode: ["everyX"] } * @default hours */ unit?: 'minutes' | 'hours' | Expression; }>; }; authentication?: 'oAuth2' | 'serviceAccount' | Expression; triggerOn?: 'specificFile' | 'specificFolder' | Expression; /** * File * @displayOptions.show { triggerOn: ["specificFile"] } * @default {"mode":"list","value":""} */ fileToWatch?: { __rl: true; mode: 'list' | 'url' | 'id'; value: string; cachedResultName?: string }; /** * When to trigger this node * @displayOptions.show { triggerOn: ["specificFile"] } * @default fileUpdated */ event?: 'fileUpdated' | Expression; /** * Folder * @displayOptions.show { triggerOn: ["specificFolder"] } * @default {"mode":"list","value":""} */ folderToWatch?: { __rl: true; mode: 'list' | 'url' | 'id'; value: string; cachedResultName?: string }; /** * The drive to monitor. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>. * @displayOptions.show { triggerOn: ["anyFileFolder"] } * @default root */ driveToWatch?: string | Expression; /** * Options * @displayOptions.show { event: ["fileCreated", "fileUpdated"] } * @displayOptions.hide { triggerOn: ["specificFile"] } * @default {} */ options?: { /** Triggers only when the file is this type * @default all */ fileType?: 'all' | 'application/vnd.google-apps.audio' | 'application/vnd.google-apps.document' | 'application/vnd.google-apps.drawing' | 'application/vnd.google-apps.presentation' | 'application/vnd.google-apps.spreadsheet' | 'application/vnd.google-apps.photo' | 'application/vnd.google-apps.video' | Expression; }; } export interface GoogleDriveTriggerV1Credentials { googleApi: CredentialReference; googleDriveOAuth2Api: CredentialReference; } interface GoogleDriveTriggerV1NodeBase { type: 'n8n-nodes-base.googleDriveTrigger'; version: 1; credentials?: GoogleDriveTriggerV1Credentials; isTrigger: true; } export type GoogleDriveTriggerV1ParamsNode = GoogleDriveTriggerV1NodeBase & { config: NodeConfig; }; export type GoogleDriveTriggerV1Node = GoogleDriveTriggerV1ParamsNode;