/**
 * Flow Node - Version 1
 * Discriminator: resource=task, operation=update
 */


interface Credentials {
  flowApi: CredentialReference;
}

/** Tasks are units of work that can be private or assigned to a list. Through this endpoint, you can manipulate your tasks in Flow, including creating new ones. */
export type FlowV1TaskUpdateParams = {
  resource: 'task';
  operation: 'update';
/**
 * Create resources under the given workspace
 */
    workspaceId?: string | Expression<string> | PlaceholderValue;
/**
 * Task ID
 */
    taskId?: string | Expression<string> | PlaceholderValue;
/**
 * Update Fields
 * @default {}
 */
    updateFields?: {
    /** The title of the task
     */
    name?: string | Expression<string> | PlaceholderValue;
    /** Whether to complete the task
     * @default false
     */
    completed?: boolean | Expression<boolean>;
    /** The ID of the account to whom this task will be assigned
     */
    ownerid?: string | Expression<string> | PlaceholderValue;
    /** Put the new task in a list ("project"). Omit this param to have the task be private.
     */
    listID?: string | Expression<string> | PlaceholderValue;
    /** The date on which the task should start
     */
    startsOn?: string | Expression<string>;
    /** The date on which the task should be due
     */
    dueOn?: string | Expression<string>;
    /** Whether this task will be a subtask, and this is true, the parent tasks's subscribers will be mirrored to this one
     * @default false
     */
    mirrorParentSubscribers?: boolean | Expression<boolean>;
    /** Whether this task will be a subtask, and this is true, the parent tasks's tags will be mirrored to this one
     * @default false
     */
    mirrorParentTags?: boolean | Expression<boolean>;
    /** Provide the content for the task's note
     */
    noteContent?: string | Expression<string> | PlaceholderValue;
    /** Identify which markup language is used to format the given note
     * @default text/plain
     */
    noteMimeType?: 'text/plain' | 'text/x-markdown' | 'text/html' | Expression<string>;
    /** If provided, this task will become a subtask of the given task
     */
    parentId?: string | Expression<string> | PlaceholderValue;
    /** Determines the sort order when showing tasks in, or grouped by, a list
     * @default 0
     */
    positionList?: number | Expression<number>;
    /** Determines the sort order when showing tasks grouped by their due_date
     * @default 0
     */
    positionUpcoming?: number | Expression<number>;
    /** Determines the sort order of tasks
     * @default 0
     */
    position?: number | Expression<number>;
    /** Specify which section under which to create this task
     */
    sectionId?: string | Expression<string> | PlaceholderValue;
    /** A list of tag names to apply to the new task separated by a comma (,)
     */
    tags?: string | Expression<string> | PlaceholderValue;
  };
};

export type FlowV1TaskUpdateNode = {
  type: 'n8n-nodes-base.flow';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<FlowV1TaskUpdateParams>;
};