/**
 * Elastic Security Node - Version 1
 * Discriminator: resource=case, operation=getAll
 */


interface Credentials {
  elasticSecurityApi: CredentialReference;
}

/** Retrieve many cases */
export type ElasticSecurityV1CaseGetAllParams = {
  resource: 'case';
  operation: 'getAll';
/**
 * 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?: {
    /** Status
     * @default open
     */
    status?: 'open' | 'in-progress' | 'closed' | Expression<string>;
    /** Choose from the list, or specify IDs using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;
     * @default []
     */
    tags?: string[];
  };
/**
 * Sort
 * @default {}
 */
    sortOptions?: {
        /** Sort Options
     */
    sortOptionsProperties?: {
      /** Sort Key
       * @default createdAt
       */
      sortField?: 'createdAt' | 'updatedAt' | Expression<string>;
      /** Sort Order
       * @default asc
       */
      sortOrder?: 'asc' | 'desc' | Expression<string>;
    };
  };
};

export type ElasticSecurityV1CaseGetAllOutput = {
  assignees?: Array<{
    uid?: string;
  }>;
  category?: null;
  connector?: {
    fields?: null;
    id?: string;
    name?: string;
    type?: string;
  };
  created_at?: string;
  created_by?: {
    profile_uid?: string;
    username?: string;
  };
  description?: string;
  external_service?: null;
  id?: string;
  owner?: string;
  settings?: {
    syncAlerts?: boolean;
  };
  severity?: string;
  status?: string;
  tags?: Array<string>;
  title?: string;
  totalAlerts?: number;
  totalComment?: number;
  version?: string;
};

export type ElasticSecurityV1CaseGetAllNode = {
  type: 'n8n-nodes-base.elasticSecurity';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<ElasticSecurityV1CaseGetAllParams>;
  output?: Items<ElasticSecurityV1CaseGetAllOutput>;
};