/**
 * Zendesk Node - Version 1
 * Discriminator: resource=ticketField, operation=getAll
 */


interface Credentials {
  zendeskApi: CredentialReference;
  zendeskOAuth2Api: CredentialReference;
}

/** Manage system and custom ticket fields */
export type ZendeskV1TicketFieldGetAllParams = {
  resource: 'ticketField';
  operation: 'getAll';
  authentication?: 'apiToken' | 'oAuth2' | Expression<string>;
/**
 * 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 100
 */
    limit?: number | Expression<number>;
};

export type ZendeskV1TicketFieldGetAllOutput = {
  active?: boolean;
  collapsed_for_agents?: boolean;
  created_at?: string;
  custom_field_options?: Array<{
    'default'?: boolean;
    id?: number;
    name?: string;
    raw_name?: string;
    value?: string;
  }>;
  description?: string;
  editable_in_portal?: boolean;
  id?: number;
  key?: null;
  position?: number;
  raw_description?: string;
  raw_title?: string;
  raw_title_in_portal?: string;
  regexp_for_validation?: null;
  removable?: boolean;
  required?: boolean;
  required_in_portal?: boolean;
  tag?: null;
  title?: string;
  title_in_portal?: string;
  type?: string;
  updated_at?: string;
  url?: string;
  visible_in_portal?: boolean;
};

export type ZendeskV1TicketFieldGetAllNode = {
  type: 'n8n-nodes-base.zendesk';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<ZendeskV1TicketFieldGetAllParams>;
  output?: Items<ZendeskV1TicketFieldGetAllOutput>;
};