/**
 * Splunk Node - Version 2
 * Discriminator: resource=search, operation=getResult
 */


interface Credentials {
  splunkApi: CredentialReference;
}

/** Get the result of a search job */
export type SplunkV2SearchGetResultParams = {
  resource: 'search';
  operation: 'getResult';
/**
 * Search Job
 * @default {"mode":"list","value":""}
 */
    searchJobId?: { __rl: true; mode: 'list' | 'id'; value: string; cachedResultName?: 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?: {
    /** Key-value pair to match against. Example: if "Key" is set to &lt;code&gt;user&lt;/code&gt; and "Field" is set to &lt;code&gt;john&lt;/code&gt;, only the results where &lt;code&gt;user&lt;/code&gt; is &lt;code&gt;john&lt;/code&gt; will be returned.
     * @default {}
     */
    keyValueMatch?: {
        /** Key-Value Pair
     */
    keyValuePair?: {
      /** Key to match against
       */
      key?: string | Expression<string> | PlaceholderValue;
      /** Value to match against
       */
      value?: string | Expression<string> | PlaceholderValue;
    };
  };
  };
/**
 * Options
 * @default {}
 */
    options?: {
    /** Whether to include field summary statistics in the response
     * @default false
     */
    add_summary_to_metadata?: boolean | Expression<boolean>;
  };
};

export type SplunkV2SearchGetResultOutput = {
  fields?: Array<{
    name?: string;
  }>;
  init_offset?: number;
  messages?: Array<{
    text?: string;
    type?: string;
  }>;
  preview?: boolean;
  results?: Array<{
    _time?: string;
    app?: string;
    attack?: string;
    dest_ip?: string;
    dest_port?: string;
    file_name?: string;
    file_path?: string;
    http_user_agent?: string;
    httpmethod?: string;
    ids_type?: string;
    src_ip?: string;
    src_port?: string;
    srccountry?: string;
    timestamp?: string;
    transport?: string;
  }>;
};

export type SplunkV2SearchGetResultNode = {
  type: 'n8n-nodes-base.splunk';
  version: 2;
  credentials?: Credentials;
  config: NodeConfig<SplunkV2SearchGetResultParams>;
  output?: Items<SplunkV2SearchGetResultOutput>;
};