/**
 * Zammad Node - Version 1
 * Discriminator: resource=user, operation=getAll
 */


interface Credentials {
  zammadBasicAuthApi: CredentialReference;
  zammadTokenAuthApi: CredentialReference;
}

/** Get many groups */
export type ZammadV1UserGetAllParams = {
  resource: 'user';
  operation: 'getAll';
  authentication?: 'basicAuth' | 'tokenAuth' | 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 50
 */
    limit?: number | Expression<number>;
/**
 * Filters
 * @default {}
 */
    filters?: {
    /** Query to filter results by
     */
    query?: string | Expression<string> | PlaceholderValue;
    /** Sort
     * @default {}
     */
    sortUi?: {
        /** Sort Options
     */
    sortDetails?: {
      /** Choose from the list, or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;
       */
      sort_by?: string | Expression<string>;
      /** Sort Order
       * @default asc
       */
      order_by?: 'asc' | 'desc' | Expression<string>;
    };
  };
  };
};

export type ZammadV1UserGetAllOutput = {
  active?: boolean;
  authorization_ids?: Array<number>;
  city?: string;
  created_at?: string;
  created_by_id?: number;
  email?: string;
  firstname?: string;
  group_ids?: {
    '1'?: Array<string>;
  };
  id?: number;
  lastname?: string;
  login?: string;
  login_failed?: number;
  mobile?: string;
  out_of_office?: boolean;
  preferences?: {
    intro?: boolean;
    locale?: string;
    notification_config?: {
      matrix?: {
        create?: {
          channel?: {
            email?: boolean;
            online?: boolean;
          };
          criteria?: {
            no?: boolean;
            owned_by_me?: boolean;
            owned_by_nobody?: boolean;
            subscribed?: boolean;
          };
        };
        escalation?: {
          channel?: {
            email?: boolean;
            online?: boolean;
          };
          criteria?: {
            no?: boolean;
            owned_by_me?: boolean;
            owned_by_nobody?: boolean;
            subscribed?: boolean;
          };
        };
        reminder_reached?: {
          channel?: {
            email?: boolean;
            online?: boolean;
          };
          criteria?: {
            no?: boolean;
            owned_by_me?: boolean;
            owned_by_nobody?: boolean;
            subscribed?: boolean;
          };
        };
        update?: {
          channel?: {
            email?: boolean;
            online?: boolean;
          };
          criteria?: {
            no?: boolean;
            owned_by_me?: boolean;
            owned_by_nobody?: boolean;
            subscribed?: boolean;
          };
        };
      };
    };
    notification_sound?: {
      enabled?: boolean;
      file?: string;
    };
    secondaryAction?: string;
    theme?: string;
    tickets_closed?: number;
    tickets_open?: number;
  };
  role_ids?: Array<number>;
  street?: string;
  two_factor_preference_ids?: Array<number>;
  updated_at?: string;
  updated_by_id?: number;
  verified?: boolean;
  vip?: boolean;
  web?: string;
  zip?: string;
};

export type ZammadV1UserGetAllNode = {
  type: 'n8n-nodes-base.zammad';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<ZammadV1UserGetAllParams>;
  output?: Items<ZammadV1UserGetAllOutput>;
};