/**
 * HaloPSA Node - Version 1
 * Discriminator: resource=client, operation=getAll
 */


interface Credentials {
  haloPSAApi: CredentialReference;
}

/** Get many clients */
export type HaloPSAV1ClientGetAllParams = {
  resource: 'client';
  operation: 'getAll';
/**
 * Whether to return a simplified version of the response instead of the raw data
 * @default true
 */
    simplify?: boolean | Expression<boolean>;
/**
 * Whether to return all results or only up to a given limit
 * @default false
 */
    returnAll?: boolean | Expression<boolean>;
/**
 * Max number of results to return
 * @displayOptions.show { returnAll: [false] }
 * @default 50
 */
    limit?: number | Expression<number>;
/**
 * Filters
 * @default {}
 */
    filters?: {
    /** Active Status
     * @default active
     */
    activeStatus?: 'active' | 'all' | 'inactive' | Expression<string>;
    /** Filter clients by your search string
     */
    search?: string | Expression<string> | PlaceholderValue;
  };
};

export type HaloPSAV1ClientGetAllOutput = {
  accountmanagertech?: number;
  actionemail?: number;
  clearemail?: number;
  client_to_invoice?: number;
  client_to_invoice_recurring?: number;
  colour?: string;
  confirmemail?: number;
  contract_tax_code?: number;
  customer_relationship?: Array<{
    id?: string;
    name?: string;
  }>;
  customer_relationship_list?: string;
  customertype?: number;
  default_currency_code?: number;
  default_mailbox_id?: number;
  excludefrominvoicesync?: boolean;
  id?: number;
  inactive?: boolean;
  is_account?: boolean;
  is_vip?: boolean;
  item_tax_code?: number;
  jira_validated?: boolean;
  key?: number;
  mailbox_override?: number;
  messagegroup_id?: number;
  name?: string;
  notes?: string;
  overridepdftemplateinvoice?: number;
  overridepdftemplatequote?: number;
  percentage_to_survey?: number;
  prepay_tax_code?: number;
  pritech?: number;
  qbo_company_id?: string;
  sectech?: number;
  service_tax_code?: number;
  servicenow_validated?: boolean;
  stopped?: number;
  table?: number;
  taxable?: boolean;
  ticket_invoices_for_each_site?: boolean;
  toplevel_id?: number;
  toplevel_name?: string;
  use?: string;
};

export type HaloPSAV1ClientGetAllNode = {
  type: 'n8n-nodes-base.haloPSA';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<HaloPSAV1ClientGetAllParams>;
  output?: Items<HaloPSAV1ClientGetAllOutput>;
};