// Code generated - EDITING IS FUTILE. DO NOT EDIT.
//
// Generated by:
//     public/app/plugins/gen.go
// Using jennies:
//     TSTypesJenny
//     PluginTsTypesJenny
//
// Run 'make gen-cue' from repository root to regenerate.

// Generated from public/app/plugins/datasource/grafana-pyroscope-datasource/dataquery.cue file.

import * as common from '@grafana/schema';

export type PyroscopeQueryType = ('metrics' | 'profile' | 'both');

export const defaultPyroscopeQueryType: PyroscopeQueryType = 'both';

export type HeatmapQueryType = ('individual' | 'span');

export interface GrafanaPyroscopeDataQuery extends common.DataQuery {
  /**
   * If set to true, the response will contain annotations
   */
  annotations?: boolean;
  /**
   * Allows to group the results.
   */
  groupBy: Array<string>;
  /**
   * Specifies the type of heatmap query
   */
  heatmapType: (HeatmapQueryType | 'individual');
  /**
   * If set to true, exemplars will be requested
   */
  includeExemplars: boolean;
  /**
   * If set to true, heatmap data will be requested
   */
  includeHeatmap: boolean;
  /**
   * Specifies the query label selectors.
   */
  labelSelector: string;
  /**
   * Sets the maximum number of time series.
   */
  limit?: number;
  /**
   * Sets the maximum number of nodes in the flamegraph.
   */
  maxNodes?: number;
  /**
   * Specifies the query profile id selectors.
   */
  profileIdSelector?: Array<string>;
  /**
   * Specifies the type of profile to query.
   */
  profileTypeId: string;
  /**
   * Specifies the query span selectors.
   */
  spanSelector?: Array<string>;
}

export const defaultGrafanaPyroscopeDataQuery: Partial<GrafanaPyroscopeDataQuery> = {
  groupBy: [],
  heatmapType: 'individual',
  includeExemplars: false,
  includeHeatmap: false,
  labelSelector: '{}',
  profileIdSelector: [],
  spanSelector: [],
};
