/**
 * Harvest Node - Version 1
 * Discriminator: resource=expense, operation=create
 */


interface Credentials {
  harvestApi: CredentialReference;
  harvestOAuth2Api: CredentialReference;
}

/** Create a client */
export type HarvestV1ExpenseCreateParams = {
  resource: 'expense';
  operation: 'create';
  authentication?: 'accessToken' | 'oAuth2' | Expression<string>;
/**
 * Choose from the list, or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;
 */
    accountId?: string | Expression<string>;
/**
 * The ID of the project associated with this expense
 */
    projectId?: string | Expression<string> | PlaceholderValue;
/**
 * The ID of the expense category this expense is being tracked against
 */
    expenseCategoryId?: string | Expression<string> | PlaceholderValue;
/**
 * Date the expense occurred
 */
    spentDate?: string | Expression<string>;
/**
 * Additional Fields
 * @default {}
 */
    additionalFields?: {
    /** Whether this expense is billable or not. Defaults to true.
     * @default true
     */
    billable?: boolean | Expression<boolean>;
    /** Notes about the expense
     */
    notes?: string | Expression<string> | PlaceholderValue;
    /** The total amount of the expense
     */
    total_cost?: string | Expression<string> | PlaceholderValue;
    /** The quantity of units to use in calculating the total_cost of the expense
     */
    units?: string | Expression<string> | PlaceholderValue;
    /** The ID of the user associated with this expense. Defaults to the ID of the currently authenticated user.
     * @default true
     */
    user_id?: boolean | Expression<boolean>;
  };
};

export type HarvestV1ExpenseCreateNode = {
  type: 'n8n-nodes-base.harvest';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<HarvestV1ExpenseCreateParams>;
};