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


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

/** Create a client */
export type HarvestV1ProjectCreateParams = {
  resource: 'project';
  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 name of the project
 */
    name?: string | Expression<string> | PlaceholderValue;
/**
 * The ID of the client to associate this project with
 */
    clientId?: string | Expression<string> | PlaceholderValue;
/**
 * Whether the project is billable or not
 * @default true
 */
    isBillable?: boolean | Expression<boolean>;
/**
 * The method by which the project is invoiced
 * @default none
 */
    billBy?: 'none' | 'People' | 'Project' | 'Tasks' | Expression<string>;
/**
 * The email of the user or "none"
 * @default none
 */
    budgetBy?: string | Expression<string> | PlaceholderValue;
/**
 * Additional Fields
 * @default {}
 */
    additionalFields?: {
    /** The budget in hours for the project when budgeting by time
     * @default 0
     */
    budget?: number | Expression<number>;
    /** Whether the budget resets every month. Defaults to false.
     * @default false
     */
    budget_is_monthly?: boolean | Expression<boolean>;
    /** The monetary budget for the project when budgeting by money
     */
    cost_budget?: string | Expression<string> | PlaceholderValue;
    /** Option for budget of Total Project Fees projects to include tracked expenses. Defaults to false.
     * @default false
     */
    cost_budget_include_expenses?: boolean | Expression<boolean>;
    /** Date the project will end
     */
    ends_on?: string | Expression<string>;
    /** The amount you plan to invoice for the project. Only used by fixed-fee projects.
     */
    fee?: string | Expression<string> | PlaceholderValue;
    /** Rate for projects billed by Project Hourly Rate
     */
    hourly_rate?: string | Expression<string> | PlaceholderValue;
    /** Whether the project is active or archived. Defaults to true.
     * @default true
     */
    is_active?: boolean | Expression<boolean>;
    /** Whether the project is a fixed-fee project or not
     * @default false
     */
    is_fixed_fee?: boolean | Expression<boolean>;
    /** Notes about the project
     */
    notes?: string | Expression<string> | PlaceholderValue;
    /** Whether project managers should be notified when the project goes over budget. Defaults to false.
     * @default false
     */
    notify_when_over_budget?: boolean | Expression<boolean>;
    /** Percentage value used to trigger over budget email alerts. Example: use 10.0 for 10.0%.
     */
    over_budget_notification_percentage?: string | Expression<string> | PlaceholderValue;
    /** Whether to show project budget to all employees. Does not apply to Total Project Fee projects. Defaults to false.
     * @default false
     */
    show_budget_to_all?: boolean | Expression<boolean>;
    /** Date the project was started
     */
    starts_on?: string | Expression<string>;
  };
};

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