@grafana/schema 12.4.0-21585881775 → 12.4.0-21587278904

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard_types.gen.cjs","sources":["../../../../../src/raw/dashboard/x/dashboard_types.gen.ts"],"sourcesContent":["// Code generated - EDITING IS FUTILE. DO NOT EDIT.\n//\n// Generated by:\n// kinds/gen.go\n// Using jennies:\n// TSTypesJenny\n// LatestMajorsOrXJenny\n//\n// Run 'make gen-cue' from repository root to regenerate.\n\n/**\n * TODO: this should be a regular DataQuery that depends on the selected dashboard\n * these match the properties of the \"grafana\" datasouce that is default in most dashboards\n */\nexport interface AnnotationTarget {\n /**\n * Only required/valid for the grafana datasource...\n * but code+tests is already depending on it so hard to change\n */\n limit: number;\n /**\n * Only required/valid for the grafana datasource...\n * but code+tests is already depending on it so hard to change\n */\n matchAny: boolean;\n /**\n * Only required/valid for the grafana datasource...\n * but code+tests is already depending on it so hard to change\n */\n tags: Array<string>;\n /**\n * Only required/valid for the grafana datasource...\n * but code+tests is already depending on it so hard to change\n */\n type: string;\n}\n\nexport const defaultAnnotationTarget: Partial<AnnotationTarget> = {\n tags: [],\n};\n\nexport interface AnnotationPanelFilter {\n /**\n * Should the specified panels be included or excluded\n */\n exclude?: boolean;\n /**\n * Panel IDs that should be included or excluded\n */\n ids: Array<number>;\n}\n\nexport const defaultAnnotationPanelFilter: Partial<AnnotationPanelFilter> = {\n exclude: false,\n ids: [],\n};\n\n/**\n * Contains the list of annotations that are associated with the dashboard.\n * Annotations are used to overlay event markers and overlay event tags on graphs.\n * Grafana comes with a native annotation store and the ability to add annotation events directly from the graph panel or via the HTTP API.\n * See https://grafana.com/docs/grafana/latest/dashboards/build-dashboards/annotate-visualizations/\n */\nexport interface AnnotationContainer {\n /**\n * List of annotations\n */\n list?: Array<AnnotationQuery>;\n}\n\nexport const defaultAnnotationContainer: Partial<AnnotationContainer> = {\n list: [],\n};\n\n/**\n * TODO docs\n * FROM: AnnotationQuery in grafana-data/src/types/annotations.ts\n */\nexport interface AnnotationQuery {\n /**\n * Set to 1 for the standard annotation query all dashboards have by default.\n */\n builtIn?: number;\n /**\n * Datasource where the annotations data is\n */\n datasource: DataSourceRef;\n /**\n * When enabled the annotation query is issued with every dashboard refresh\n */\n enable: boolean;\n /**\n * Filters to apply when fetching annotations\n */\n filter?: AnnotationPanelFilter;\n /**\n * Annotation queries can be toggled on or off at the top of the dashboard.\n * When hide is true, the toggle is not shown in the dashboard.\n */\n hide?: boolean;\n /**\n * Color to use for the annotation event markers\n */\n iconColor: string;\n /**\n * Name of annotation.\n */\n name: string;\n /**\n * Placement can be used to display the annotation query somewhere else on the dashboard other than the default location.\n */\n placement?: AnnotationQueryPlacement;\n /**\n * TODO.. this should just be a normal query target\n */\n target?: AnnotationTarget;\n /**\n * TODO -- this should not exist here, it is based on the --grafana-- datasource\n */\n type?: string;\n}\n\nexport const defaultAnnotationQuery: Partial<AnnotationQuery> = {\n builtIn: 0,\n enable: true,\n hide: false,\n};\n\n/**\n * A variable is a placeholder for a value. You can use variables in metric queries and in panel titles.\n */\nexport interface VariableModel {\n /**\n * Custom all value\n */\n allValue?: string;\n /**\n * Allow custom values to be entered in the variable\n */\n allowCustomValue?: boolean;\n /**\n * Shows current selected variable text/value on the dashboard\n */\n current?: VariableOption;\n /**\n * Data source used to fetch values for a variable. It can be defined but `null`.\n */\n datasource?: DataSourceRef;\n /**\n * Description of variable. It can be defined but `null`.\n */\n description?: string;\n /**\n * Visibility configuration for the variable\n */\n hide?: VariableHide;\n /**\n * Whether all value option is available or not\n */\n includeAll?: boolean;\n /**\n * Optional display name\n */\n label?: string;\n /**\n * Whether multiple values can be selected or not from variable value list\n */\n multi?: boolean;\n /**\n * Name of variable\n */\n name: string;\n /**\n * Options that can be selected for a variable.\n */\n options?: Array<VariableOption>;\n /**\n * Query used to fetch values for a variable\n */\n query?: (string | Record<string, unknown>);\n /**\n * Options to config when to refresh a variable\n */\n refresh?: VariableRefresh;\n /**\n * Optional field, if you want to extract part of a series name or metric node segment.\n * Named capture groups can be used to separate the display text and value.\n */\n regex?: string;\n /**\n * Determine whether regex applies to variable value or display text\n */\n regexApplyTo?: VariableRegexApplyTo;\n /**\n * Whether the variable value should be managed by URL query params or not\n */\n skipUrlSync?: boolean;\n /**\n * Options sort order\n */\n sort?: VariableSort;\n /**\n * Additional static options for query variable\n */\n staticOptions?: Array<VariableOption>;\n /**\n * Ordering of static options in relation to options returned from data source for query variable\n */\n staticOptionsOrder?: ('before' | 'after' | 'sorted');\n /**\n * Type of variable\n */\n type: VariableType;\n /**\n * Optional, indicates whether a custom type variable uses CSV or JSON to define its values\n */\n valuesFormat?: ('csv' | 'json');\n}\n\nexport const defaultVariableModel: Partial<VariableModel> = {\n allowCustomValue: true,\n includeAll: false,\n multi: false,\n options: [],\n skipUrlSync: false,\n staticOptions: [],\n valuesFormat: 'csv',\n};\n\n/**\n * Option to be selected in a variable.\n */\nexport interface VariableOption {\n /**\n * Whether the option is selected or not\n */\n selected?: boolean;\n /**\n * Text to be displayed for the option\n */\n text: (string | Array<string>);\n /**\n * Value of the option\n */\n value: (string | Array<string>);\n}\n\n/**\n * Options to config when to refresh a variable\n * `0`: Never refresh the variable\n * `1`: Queries the data source every time the dashboard loads.\n * `2`: Queries the data source when the dashboard time range changes.\n */\nexport enum VariableRefresh {\n never = 0,\n onDashboardLoad = 1,\n onTimeRangeChanged = 2,\n}\n\n/**\n * Determine if the variable shows on dashboard\n * Accepted values are 0 (show label and value), 1 (show value only), 2 (show nothing), 3 (show under the controls dropdown menu).\n */\nexport enum VariableHide {\n dontHide = 0,\n hideLabel = 1,\n hideVariable = 2,\n inControlsMenu = 3,\n}\n\n/**\n * Determine whether regex applies to variable value or display text\n * Accepted values are \"value\" (apply to value used in queries) or \"text\" (apply to display text shown to users)\n */\nexport type VariableRegexApplyTo = ('value' | 'text');\n\n/**\n * Sort variable options\n * Accepted values are:\n * `0`: No sorting\n * `1`: Alphabetical ASC\n * `2`: Alphabetical DESC\n * `3`: Numerical ASC\n * `4`: Numerical DESC\n * `5`: Alphabetical Case Insensitive ASC\n * `6`: Alphabetical Case Insensitive DESC\n * `7`: Natural ASC\n * `8`: Natural DESC\n */\nexport enum VariableSort {\n alphabeticalAsc = 1,\n alphabeticalCaseInsensitiveAsc = 5,\n alphabeticalCaseInsensitiveDesc = 6,\n alphabeticalDesc = 2,\n disabled = 0,\n naturalAsc = 7,\n naturalDesc = 8,\n numericalAsc = 3,\n numericalDesc = 4,\n}\n\n/**\n * Ref to a DataSource instance\n */\nexport interface DataSourceRef {\n /**\n * The plugin type-id\n */\n type?: string;\n /**\n * Specific datasource instance\n */\n uid?: string;\n}\n\n/**\n * Links with references to other dashboards or external resources\n */\nexport interface DashboardLink {\n /**\n * If true, all dashboards links will be displayed in a dropdown. If false, all dashboards links will be displayed side by side. Only valid if the type is dashboards\n */\n asDropdown: boolean;\n /**\n * Icon name to be displayed with the link\n */\n icon: string;\n /**\n * If true, includes current template variables values in the link as query params\n */\n includeVars: boolean;\n /**\n * If true, includes current time range in the link as query params\n */\n keepTime: boolean;\n /**\n * Placement can be used to display the link somewhere else on the dashboard other than above the visualisations.\n */\n placement?: DashboardLinkPlacement;\n /**\n * List of tags to limit the linked dashboards. If empty, all dashboards will be displayed. Only valid if the type is dashboards\n */\n tags: Array<string>;\n /**\n * If true, the link will be opened in a new tab\n */\n targetBlank: boolean;\n /**\n * Title to display with the link\n */\n title: string;\n /**\n * Tooltip to display when the user hovers their mouse over it\n */\n tooltip: string;\n /**\n * Link type. Accepted values are dashboards (to refer to another dashboard) and link (to refer to an external resource)\n */\n type: DashboardLinkType;\n /**\n * Link URL. Only required/valid if the type is link\n */\n url?: string;\n}\n\nexport const defaultDashboardLink: Partial<DashboardLink> = {\n asDropdown: false,\n includeVars: false,\n keepTime: false,\n tags: [],\n targetBlank: false,\n};\n\n/**\n * Dashboard Link type. Accepted values are dashboards (to refer to another dashboard) and link (to refer to an external resource)\n */\nexport type DashboardLinkType = ('link' | 'dashboards');\n\n/**\n * Dashboard Link placement. Defines where the link should be displayed.\n * - \"inControlsMenu\" renders the link in bottom part of the dashboard controls dropdown menu\n */\nexport type DashboardLinkPlacement = 'inControlsMenu';\n\n/**\n * Annotation Query placement. Defines where the annotation query should be displayed.\n * - \"inControlsMenu\" renders the annotation query in the dashboard controls dropdown menu\n */\nexport type AnnotationQueryPlacement = 'inControlsMenu';\n\n/**\n * Dashboard action type\n */\nexport type ActionType = ('fetch' | 'infinity');\n\n/**\n * Fetch options\n */\nexport interface FetchOptions {\n body?: string;\n headers?: Array<Array<string>>;\n method: HttpRequestMethod;\n /**\n * These are 2D arrays of strings, each representing a key-value pair\n * We are defining this way because we can't generate a go struct that\n * that would have exactly two strings in each sub-array\n */\n queryParams?: Array<Array<string>>;\n url: string;\n}\n\nexport const defaultFetchOptions: Partial<FetchOptions> = {\n headers: [],\n queryParams: [],\n};\n\n/**\n * Infinity options\n */\nexport interface InfinityOptions {\n body?: string;\n datasourceUid: string;\n headers?: Array<Array<string>>;\n method: HttpRequestMethod;\n /**\n * These are 2D arrays of strings, each representing a key-value pair\n * We are defining them this way because we can't generate a go struct that\n * that would have exactly two strings in each sub-array\n */\n queryParams?: Array<Array<string>>;\n url: string;\n}\n\nexport const defaultInfinityOptions: Partial<InfinityOptions> = {\n headers: [],\n queryParams: [],\n};\n\nexport type HttpRequestMethod = ('GET' | 'PUT' | 'POST' | 'DELETE' | 'PATCH');\n\n/**\n * Action variable type\n */\nexport type ActionVariableType = 'string';\n\nexport interface ActionVariable {\n key: string;\n name: string;\n type: ActionVariableType;\n}\n\n/**\n * Dashboard action\n */\nexport interface Action {\n confirmation?: string;\n fetch?: FetchOptions;\n infinity?: InfinityOptions;\n oneClick?: boolean;\n style?: {\n backgroundColor?: string;\n };\n title: string;\n type: ActionType;\n variables?: Array<ActionVariable>;\n}\n\nexport const defaultAction: Partial<Action> = {\n variables: [],\n};\n\n/**\n * Dashboard variable type\n * `query`: Query-generated list of values such as metric names, server names, sensor IDs, data centers, and so on.\n * `adhoc`: Key/value filters that are automatically added to all metric queries for a data source (Prometheus, Loki, InfluxDB, and Elasticsearch only).\n * `constant`: \tDefine a hidden constant.\n * `datasource`: Quickly change the data source for an entire dashboard.\n * `interval`: Interval variables represent time spans.\n * `textbox`: Display a free text input field with an optional default value.\n * `custom`: Define the variable options manually using a comma-separated list.\n * `system`: Variables defined by Grafana. See: https://grafana.com/docs/grafana/latest/dashboards/variables/add-template-variables/#global-variables\n * `switch`: Boolean variables rendered as a switch\n */\nexport type VariableType = ('query' | 'adhoc' | 'groupby' | 'constant' | 'datasource' | 'interval' | 'textbox' | 'custom' | 'system' | 'snapshot' | 'switch');\n\n/**\n * Color mode for a field. You can specify a single color, or select a continuous (gradient) color schemes, based on a value.\n * Continuous color interpolates a color using the percentage of a value relative to min and max.\n * Accepted values are:\n * `thresholds`: From thresholds. Informs Grafana to take the color from the matching threshold\n * `palette-classic`: Classic palette. Grafana will assign color by looking up a color in a palette by series index. Useful for Graphs and pie charts and other categorical data visualizations\n * `palette-classic-by-name`: Classic palette (by name). Grafana will assign color by looking up a color in a palette by series name. Useful for Graphs and pie charts and other categorical data visualizations\n * `continuous-viridis`: Continuous Viridis palette mode\n * `continuous-magma`: Continuous Magma palette mode\n * `continuous-plasma`: Continuous Plasma palette mode\n * `continuous-inferno`: Continuous Inferno palette mode\n * `continuous-cividis`: Continuous Cividis palette mode\n * `continuous-GrYlRd`: Continuous Green-Yellow-Red palette mode\n * `continuous-RdYlGr`: Continuous Red-Yellow-Green palette mode\n * `continuous-BlYlRd`: Continuous Blue-Yellow-Red palette mode\n * `continuous-YlRd`: Continuous Yellow-Red palette mode\n * `continuous-BlPu`: Continuous Blue-Purple palette mode\n * `continuous-YlBl`: Continuous Yellow-Blue palette mode\n * `continuous-blues`: Continuous Blue palette mode\n * `continuous-reds`: Continuous Red palette mode\n * `continuous-greens`: Continuous Green palette mode\n * `continuous-purples`: Continuous Purple palette mode\n * `shades`: Shades of a single color. Specify a single color, useful in an override rule.\n * `fixed`: Fixed color mode. Specify a single color, useful in an override rule.\n */\nexport enum FieldColorModeId {\n ContinuousBlPu = 'continuous-BlPu',\n ContinuousBlYlRd = 'continuous-BlYlRd',\n ContinuousBlues = 'continuous-blues',\n ContinuousCividis = 'continuous-cividis',\n ContinuousGrYlRd = 'continuous-GrYlRd',\n ContinuousGreens = 'continuous-greens',\n ContinuousInferno = 'continuous-inferno',\n ContinuousMagma = 'continuous-magma',\n ContinuousPlasma = 'continuous-plasma',\n ContinuousPurples = 'continuous-purples',\n ContinuousRdYlGr = 'continuous-RdYlGr',\n ContinuousReds = 'continuous-reds',\n ContinuousViridis = 'continuous-viridis',\n ContinuousYlBl = 'continuous-YlBl',\n ContinuousYlRd = 'continuous-YlRd',\n Fixed = 'fixed',\n PaletteClassic = 'palette-classic',\n PaletteClassicByName = 'palette-classic-by-name',\n Shades = 'shades',\n Thresholds = 'thresholds',\n}\n\n/**\n * Defines how to assign a series color from \"by value\" color schemes. For example for an aggregated data points like a timeseries, the color can be assigned by the min, max or last value.\n */\nexport type FieldColorSeriesByMode = ('min' | 'max' | 'last');\n\n/**\n * Map a field to a color.\n */\nexport interface FieldColor {\n /**\n * The fixed color value for fixed or shades color modes.\n */\n fixedColor?: string;\n /**\n * The main color scheme mode.\n */\n mode: FieldColorModeId;\n /**\n * Some visualizations need to know how to assign a series color from by value color schemes.\n */\n seriesBy?: FieldColorSeriesByMode;\n}\n\n/**\n * Position and dimensions of a panel in the grid\n */\nexport interface GridPos {\n /**\n * Panel height. The height is the number of rows from the top edge of the panel.\n */\n h: number;\n /**\n * Whether the panel is fixed within the grid. If true, the panel will not be affected by other panels' interactions\n */\n static?: boolean;\n /**\n * Panel width. The width is the number of columns from the left edge of the panel.\n */\n w: number;\n /**\n * Panel x. The x coordinate is the number of columns from the left edge of the grid\n */\n x: number;\n /**\n * Panel y. The y coordinate is the number of rows from the top edge of the grid\n */\n y: number;\n}\n\nexport const defaultGridPos: Partial<GridPos> = {\n h: 9,\n w: 12,\n x: 0,\n y: 0,\n};\n\n/**\n * User-defined value for a metric that triggers visual changes in a panel when this value is met or exceeded\n * They are used to conditionally style and color visualizations based on query results , and can be applied to most visualizations.\n */\nexport interface Threshold {\n /**\n * Color represents the color of the visual change that will occur in the dashboard when the threshold value is met or exceeded.\n */\n color: string;\n /**\n * Value represents a specified metric for the threshold, which triggers a visual change in the dashboard when this value is met or exceeded.\n * Nulls currently appear here when serializing -Infinity to JSON.\n */\n value: (number | null);\n}\n\n/**\n * Thresholds can either be `absolute` (specific number) or `percentage` (relative to min or max, it will be values between 0 and 1).\n */\nexport enum ThresholdsMode {\n Absolute = 'absolute',\n Percentage = 'percentage',\n}\n\n/**\n * Thresholds configuration for the panel\n */\nexport interface ThresholdsConfig {\n /**\n * Thresholds mode.\n */\n mode: ThresholdsMode;\n /**\n * Must be sorted by 'value', first value is always -Infinity\n */\n steps: Array<Threshold>;\n}\n\nexport const defaultThresholdsConfig: Partial<ThresholdsConfig> = {\n steps: [],\n};\n\n/**\n * Allow to transform the visual representation of specific data values in a visualization, irrespective of their original units\n */\nexport type ValueMapping = (ValueMap | RangeMap | RegexMap | SpecialValueMap);\n\n/**\n * Supported value mapping types\n * `value`: Maps text values to a color or different display text and color. For example, you can configure a value mapping so that all instances of the value 10 appear as Perfection! rather than the number.\n * `range`: Maps numerical ranges to a display text and color. For example, if a value is within a certain range, you can configure a range value mapping to display Low or High rather than the number.\n * `regex`: Maps regular expressions to replacement text and a color. For example, if a value is www.example.com, you can configure a regex value mapping so that Grafana displays www and truncates the domain.\n * `special`: Maps special values like Null, NaN (not a number), and boolean values like true and false to a display text and color. See SpecialValueMatch to see the list of special values. For example, you can configure a special value mapping so that null values appear as N/A.\n */\nexport enum MappingType {\n RangeToText = 'range',\n RegexToText = 'regex',\n SpecialValue = 'special',\n ValueToText = 'value',\n}\n\n/**\n * Maps text values to a color or different display text and color.\n * For example, you can configure a value mapping so that all instances of the value 10 appear as Perfection! rather than the number.\n */\nexport interface ValueMap {\n /**\n * Map with <value_to_match>: ValueMappingResult. For example: { \"10\": { text: \"Perfection!\", color: \"green\" } }\n */\n options: Record<string, ValueMappingResult>;\n type: MappingType.ValueToText;\n}\n\n/**\n * Maps numerical ranges to a display text and color.\n * For example, if a value is within a certain range, you can configure a range value mapping to display Low or High rather than the number.\n */\nexport interface RangeMap {\n /**\n * Range to match against and the result to apply when the value is within the range\n */\n options: {\n /**\n * Min value of the range. It can be null which means -Infinity\n */\n from: (number | null);\n /**\n * Max value of the range. It can be null which means +Infinity\n */\n to: (number | null);\n /**\n * Config to apply when the value is within the range\n */\n result: ValueMappingResult;\n };\n type: MappingType.RangeToText;\n}\n\n/**\n * Maps regular expressions to replacement text and a color.\n * For example, if a value is www.example.com, you can configure a regex value mapping so that Grafana displays www and truncates the domain.\n */\nexport interface RegexMap {\n /**\n * Regular expression to match against and the result to apply when the value matches the regex\n */\n options: {\n /**\n * Regular expression to match against\n */\n pattern: string;\n /**\n * Config to apply when the value matches the regex\n */\n result: ValueMappingResult;\n };\n type: MappingType.RegexToText;\n}\n\n/**\n * Maps special values like Null, NaN (not a number), and boolean values like true and false to a display text and color.\n * See SpecialValueMatch to see the list of special values.\n * For example, you can configure a special value mapping so that null values appear as N/A.\n */\nexport interface SpecialValueMap {\n options: {\n /**\n * Special value to match against\n */\n match: SpecialValueMatch;\n /**\n * Config to apply when the value matches the special value\n */\n result: ValueMappingResult;\n };\n type: MappingType.SpecialValue;\n}\n\n/**\n * Special value types supported by the `SpecialValueMap`\n */\nexport enum SpecialValueMatch {\n Empty = 'empty',\n False = 'false',\n NaN = 'nan',\n Null = 'null',\n NullAndNan = 'null+nan',\n True = 'true',\n}\n\n/**\n * Result used as replacement with text and color when the value matches\n */\nexport interface ValueMappingResult {\n /**\n * Text to use when the value matches\n */\n color?: string;\n /**\n * Icon to display when the value matches. Only specific visualizations.\n */\n icon?: string;\n /**\n * Position in the mapping array. Only used internally.\n */\n index?: number;\n /**\n * Text to display when the value matches\n */\n text?: string;\n}\n\n/**\n * Transformations allow to manipulate data returned by a query before the system applies a visualization.\n * Using transformations you can: rename fields, join time series data, perform mathematical operations across queries,\n * use the output of one transformation as the input to another transformation, etc.\n */\nexport interface DataTransformerConfig {\n /**\n * Disabled transformations are skipped\n */\n disabled?: boolean;\n /**\n * Optional frame matcher. When missing it will be applied to all results\n */\n filter?: MatcherConfig;\n /**\n * Unique identifier of transformer\n */\n id: string;\n /**\n * Options to be passed to the transformer\n * Valid options depend on the transformer id\n */\n options: unknown;\n /**\n * Where to pull DataFrames from as input to transformation\n */\n topic?: ('series' | 'annotations' | 'alertStates'); // replaced with common.DataTopic\n}\n\n/**\n * Counterpart for TypeScript's TimeOption type.\n */\nexport interface TimeOption {\n display: string;\n from: string;\n to: string;\n}\n\n/**\n * Time picker configuration\n * It defines the default config for the time picker and the refresh picker for the specific dashboard.\n */\nexport interface TimePickerConfig {\n /**\n * Whether timepicker is visible or not.\n */\n hidden?: boolean;\n /**\n * Override the now time by entering a time delay. Use this option to accommodate known delays in data aggregation to avoid null values.\n */\n nowDelay?: string;\n /**\n * Quick ranges for time picker.\n */\n quick_ranges?: Array<TimeOption>;\n /**\n * Interval options available in the refresh picker dropdown.\n */\n refresh_intervals?: Array<string>;\n}\n\nexport const defaultTimePickerConfig: Partial<TimePickerConfig> = {\n hidden: false,\n quick_ranges: [],\n refresh_intervals: ['5s', '10s', '30s', '1m', '5m', '15m', '30m', '1h', '2h', '1d'],\n};\n\n/**\n * 0 for no shared crosshair or tooltip (default).\n * 1 for shared crosshair.\n * 2 for shared crosshair AND shared tooltip.\n */\nexport enum DashboardCursorSync {\n Crosshair = 1,\n Off = 0,\n Tooltip = 2,\n}\n\nexport const defaultDashboardCursorSync: DashboardCursorSync = DashboardCursorSync.Off;\n\n/**\n * Dashboard panels are the basic visualization building blocks.\n */\nexport interface Panel {\n /**\n * When a panel is migrated from a previous version (Angular to React), this field is set to the original panel type.\n * This is used to determine the original panel type when migrating to a new version so the plugin migration can be applied.\n */\n autoMigrateFrom?: string;\n /**\n * Sets panel queries cache timeout.\n */\n cacheTimeout?: string;\n /**\n * The datasource used in all targets.\n */\n datasource?: DataSourceRef;\n /**\n * Panel description.\n */\n description?: string;\n /**\n * Field options allow you to change how the data is displayed in your visualizations.\n */\n fieldConfig?: FieldConfigSource;\n /**\n * Grid position.\n */\n gridPos?: GridPos;\n /**\n * Controls if the timeFrom or timeShift overrides are shown in the panel header\n */\n hideTimeOverride?: boolean;\n /**\n * Unique identifier of the panel. Generated by Grafana when creating a new panel. It must be unique within a dashboard, but not globally.\n */\n id?: number;\n /**\n * The min time interval setting defines a lower limit for the $__interval and $__interval_ms variables.\n * This value must be formatted as a number followed by a valid time\n * identifier like: \"40s\", \"3d\", etc.\n * See: https://grafana.com/docs/grafana/latest/panels-visualizations/query-transform-data/#query-options\n */\n interval?: string;\n /**\n * Dynamically load the panel\n */\n libraryPanel?: LibraryPanelRef;\n /**\n * Panel links.\n */\n links?: Array<DashboardLink>;\n /**\n * The maximum number of data points that the panel queries are retrieving.\n */\n maxDataPoints?: number;\n /**\n * Option for repeated panels that controls max items per row\n * Only relevant for horizontally repeated panels\n */\n maxPerRow?: number;\n /**\n * It depends on the panel plugin. They are specified by the Options field in panel plugin schemas.\n */\n options?: Record<string, unknown>;\n /**\n * The version of the plugin that is used for this panel. This is used to find the plugin to display the panel and to migrate old panel configs.\n */\n pluginVersion?: string;\n /**\n * Overrides the data source configured time-to-live for a query cache item in milliseconds\n */\n queryCachingTTL?: number;\n /**\n * Name of template variable to repeat for.\n */\n repeat?: string;\n /**\n * Direction to repeat in if 'repeat' is set.\n * `h` for horizontal, `v` for vertical.\n */\n repeatDirection?: ('h' | 'v');\n /**\n * Depends on the panel plugin. See the plugin documentation for details.\n */\n targets?: Array<Record<string, unknown>>;\n /**\n * Compare the current time range with a previous period\n * For example \"1d\" to compare current period but shifted back 1 day\n */\n timeCompare?: string;\n /**\n * Overrides the relative time range for individual panels,\n * which causes them to be different than what is selected in\n * the dashboard time picker in the top-right corner of the dashboard. You can use this to show metrics from different\n * time periods or days on the same dashboard.\n * The value is formatted as time operation like: `now-5m` (Last 5 minutes), `now/d` (the day so far),\n * `now-5d/d`(Last 5 days), `now/w` (This week so far), `now-2y/y` (Last 2 years).\n * Note: Panel time overrides have no effect when the dashboard’s time range is absolute.\n * See: https://grafana.com/docs/grafana/latest/panels-visualizations/query-transform-data/#query-options\n */\n timeFrom?: string;\n /**\n * Overrides the time range for individual panels by shifting its start and end relative to the time picker.\n * For example, you can shift the time range for the panel to be two hours earlier than the dashboard time picker setting `2h`.\n * Note: Panel time overrides have no effect when the dashboard’s time range is absolute.\n * See: https://grafana.com/docs/grafana/latest/panels-visualizations/query-transform-data/#query-options\n */\n timeShift?: string;\n /**\n * Panel title.\n */\n title?: string;\n /**\n * List of transformations that are applied to the panel data before rendering.\n * When there are multiple transformations, Grafana applies them in the order they are listed.\n * Each transformation creates a result set that then passes on to the next transformation in the processing pipeline.\n */\n transformations?: Array<DataTransformerConfig>;\n /**\n * Whether to display the panel without a background.\n */\n transparent?: boolean;\n /**\n * The panel plugin type id. This is used to find the plugin to display the panel.\n */\n type: string;\n}\n\nexport const defaultPanel: Partial<Panel> = {\n links: [],\n repeatDirection: 'h',\n targets: [],\n transformations: [],\n transparent: false,\n};\n\n/**\n * The data model used in Grafana, namely the data frame, is a columnar-oriented table structure that unifies both time series and table query results.\n * Each column within this structure is called a field. A field can represent a single time series or table column.\n * Field options allow you to change how the data is displayed in your visualizations.\n */\nexport interface FieldConfigSource {\n /**\n * Defaults are the options applied to all fields.\n */\n defaults: FieldConfig;\n /**\n * Overrides are the options applied to specific fields overriding the defaults.\n */\n overrides: Array<{\n matcher: MatcherConfig;\n properties: Array<{\n id: string;\n value?: unknown;\n }>;\n }>;\n}\n\nexport const defaultFieldConfigSource: Partial<FieldConfigSource> = {\n overrides: [],\n};\n\n/**\n * A library panel is a reusable panel that you can use in any dashboard.\n * When you make a change to a library panel, that change propagates to all instances of where the panel is used.\n * Library panels streamline reuse of panels across multiple dashboards.\n */\nexport interface LibraryPanelRef {\n /**\n * Library panel name\n */\n name: string;\n /**\n * Library panel uid\n */\n uid: string;\n}\n\n/**\n * Matcher is a predicate configuration. Based on the config a set of field(s) or values is filtered in order to apply override / transformation.\n * It comes with in id ( to resolve implementation from registry) and a configuration that’s specific to a particular matcher type.\n */\nexport interface MatcherConfig {\n /**\n * The matcher id. This is used to find the matcher implementation from registry.\n */\n id: string;\n /**\n * The matcher options. This is specific to the matcher implementation.\n */\n options?: unknown;\n}\n\nexport const defaultMatcherConfig: Partial<MatcherConfig> = {\n id: '',\n};\n\n/**\n * The data model used in Grafana, namely the data frame, is a columnar-oriented table structure that unifies both time series and table query results.\n * Each column within this structure is called a field. A field can represent a single time series or table column.\n * Field options allow you to change how the data is displayed in your visualizations.\n */\nexport interface FieldConfig {\n /**\n * Define interactive HTTP requests that can be triggered from data visualizations.\n */\n actions?: Array<Action>;\n /**\n * Panel color configuration\n */\n color?: FieldColor;\n /**\n * custom is specified by the FieldConfig field\n * in panel plugin schemas.\n */\n custom?: Record<string, unknown>;\n /**\n * Specify the number of decimals Grafana includes in the rendered value.\n * If you leave this field blank, Grafana automatically truncates the number of decimals based on the value.\n * For example 1.1234 will display as 1.12 and 100.456 will display as 100.\n * To display all decimals, set the unit to `String`.\n */\n decimals?: number;\n /**\n * Human readable field metadata\n */\n description?: string;\n /**\n * The display value for this field. This supports template variables blank is auto\n */\n displayName?: string;\n /**\n * This can be used by data sources that return and explicit naming structure for values and labels\n * When this property is configured, this value is used rather than the default naming strategy.\n */\n displayNameFromDS?: string;\n /**\n * True if data source field supports ad-hoc filters\n */\n filterable?: boolean;\n /**\n * The behavior when clicking on a result\n */\n links?: Array<unknown>;\n /**\n * Convert input values into a display string\n */\n mappings?: Array<ValueMapping>;\n /**\n * The maximum value used in percentage threshold calculations. Leave blank for auto calculation based on all series and fields.\n */\n max?: number;\n /**\n * The minimum value used in percentage threshold calculations. Leave blank for auto calculation based on all series and fields.\n */\n min?: number;\n /**\n * Alternative to empty string\n */\n noValue?: string;\n /**\n * An explicit path to the field in the datasource. When the frame meta includes a path,\n * This will default to `${frame.meta.path}/${field.name}\n * \n * When defined, this value can be used as an identifier within the datasource scope, and\n * may be used to update the results\n */\n path?: string;\n /**\n * Map numeric values to states\n */\n thresholds?: ThresholdsConfig;\n /**\n * Unit a field should use. The unit you select is applied to all fields except time.\n * You can use the units ID availables in Grafana or a custom unit.\n * Available units in Grafana: https://github.com/grafana/grafana/blob/main/packages/grafana-data/src/valueFormats/categories.ts\n * As custom unit, you can use the following formats:\n * `suffix:<suffix>` for custom unit that should go after value.\n * `prefix:<prefix>` for custom unit that should go before value.\n * `time:<format>` For custom date time formats type for example `time:YYYY-MM-DD`.\n * `si:<base scale><unit characters>` for custom SI units. For example: `si: mF`. This one is a bit more advanced as you can specify both a unit and the source data scale. So if your source data is represented as milli (thousands of) something prefix the unit with that SI scale character.\n * `count:<unit>` for a custom count unit.\n * `currency:<unit>` for custom a currency unit.\n */\n unit?: string;\n /**\n * True if data source can write a value to the path. Auth/authz are supported separately\n */\n writeable?: boolean;\n}\n\nexport const defaultFieldConfig: Partial<FieldConfig> = {\n actions: [],\n links: [],\n mappings: [],\n};\n\n/**\n * Row panel\n */\nexport interface RowPanel {\n /**\n * Whether this row should be collapsed or not.\n */\n collapsed: boolean;\n /**\n * Name of default datasource for the row\n */\n datasource?: DataSourceRef;\n /**\n * Row grid position\n */\n gridPos?: GridPos;\n /**\n * Unique identifier of the panel. Generated by Grafana when creating a new panel. It must be unique within a dashboard, but not globally.\n */\n id: number;\n /**\n * List of panels in the row\n */\n panels: Array<Panel>;\n /**\n * Name of template variable to repeat for.\n */\n repeat?: string;\n /**\n * Row title\n */\n title?: string;\n /**\n * The panel type\n */\n type: 'row';\n}\n\nexport const defaultRowPanel: Partial<RowPanel> = {\n collapsed: false,\n panels: [],\n};\n\nexport interface Dashboard {\n /**\n * Contains the list of annotations that are associated with the dashboard.\n * Annotations are used to overlay event markers and overlay event tags on graphs.\n * Grafana comes with a native annotation store and the ability to add annotation events directly from the graph panel or via the HTTP API.\n * See https://grafana.com/docs/grafana/latest/dashboards/build-dashboards/annotate-visualizations/\n */\n annotations?: AnnotationContainer;\n /**\n * Description of dashboard.\n */\n description?: string;\n /**\n * Whether a dashboard is editable or not.\n */\n editable?: boolean;\n /**\n * The month that the fiscal year starts on. 0 = January, 11 = December\n */\n fiscalYearStartMonth?: number;\n /**\n * ID of a dashboard imported from the https://grafana.com/grafana/dashboards/ portal\n */\n gnetId?: string;\n /**\n * Configuration of dashboard cursor sync behavior.\n * Accepted values are 0 (sync turned off), 1 (shared crosshair), 2 (shared crosshair and tooltip).\n */\n graphTooltip?: DashboardCursorSync;\n /**\n * Unique numeric identifier for the dashboard.\n * `id` is internal to a specific Grafana instance. `uid` should be used to identify a dashboard across Grafana instances.\n */\n id?: (number | null); // TODO eliminate this null option\n /**\n * Links with references to other dashboards or external websites.\n */\n links?: Array<DashboardLink>;\n /**\n * When set to true, the dashboard will redraw panels at an interval matching the pixel width.\n * This will keep data \"moving left\" regardless of the query refresh rate. This setting helps\n * avoid dashboards presenting stale live data\n */\n liveNow?: boolean;\n /**\n * List of dashboard panels\n */\n panels?: Array<(Panel | RowPanel)>;\n /**\n * When set to true, the dashboard will load all panels in the dashboard when it's loaded.\n */\n preload?: boolean;\n /**\n * Refresh rate of dashboard. Represented via interval string, e.g. \"5s\", \"1m\", \"1h\", \"1d\".\n */\n refresh?: string;\n /**\n * This property should only be used in dashboards defined by plugins. It is a quick check\n * to see if the version has changed since the last time.\n */\n revision?: number;\n /**\n * Version of the JSON schema, incremented each time a Grafana update brings\n * changes to said schema.\n */\n schemaVersion: number;\n /**\n * Snapshot options. They are present only if the dashboard is a snapshot.\n */\n snapshot?: {\n /**\n * Time when the snapshot was created\n */\n created: string;\n /**\n * Time when the snapshot expires, default is never to expire\n */\n expires: string;\n /**\n * Is the snapshot saved in an external grafana instance\n */\n external: boolean;\n /**\n * external url, if snapshot was shared in external grafana instance\n */\n externalUrl: string;\n /**\n * original url, url of the dashboard that was snapshotted\n */\n originalUrl: string;\n /**\n * Unique identifier of the snapshot\n */\n id: number;\n /**\n * Optional, defined the unique key of the snapshot, required if external is true\n */\n key: string;\n /**\n * Optional, name of the snapshot\n */\n name: string;\n /**\n * org id of the snapshot\n */\n orgId: number;\n /**\n * last time when the snapshot was updated\n */\n updated: string;\n /**\n * url of the snapshot, if snapshot was shared internally\n */\n url?: string;\n /**\n * user id of the snapshot creator\n */\n userId: number;\n };\n /**\n * Tags associated with dashboard.\n */\n tags?: Array<string>;\n /**\n * Configured template variables\n */\n templating?: {\n /**\n * List of configured template variables with their saved values along with some other metadata\n */\n list?: Array<VariableModel>;\n };\n /**\n * Time range for dashboard.\n * Accepted values are relative time strings like {from: 'now-6h', to: 'now'} or absolute time strings like {from: '2020-07-10T08:00:00.000Z', to: '2020-07-10T14:00:00.000Z'}.\n */\n time?: {\n from: string;\n to: string;\n };\n /**\n * Configuration of the time picker shown at the top of a dashboard.\n */\n timepicker?: TimePickerConfig;\n /**\n * Timezone of dashboard. Accepted values are IANA TZDB zone ID or \"browser\" or \"utc\".\n */\n timezone?: string;\n /**\n * Title of dashboard.\n */\n title?: string;\n /**\n * Unique dashboard identifier that can be generated by anyone. string (8-40)\n */\n uid?: string;\n /**\n * Version of the dashboard, incremented each time the dashboard is updated.\n */\n version?: number;\n /**\n * Day when the week starts. Expressed by the name of the day in lowercase, e.g. \"monday\".\n */\n weekStart?: string;\n}\n\nexport const defaultDashboard: Partial<Dashboard> = {\n editable: true,\n fiscalYearStartMonth: 0,\n graphTooltip: DashboardCursorSync.Off,\n links: [],\n panels: [],\n schemaVersion: 42,\n tags: [],\n timezone: 'browser',\n};\n"],"names":["VariableRefresh","VariableHide","VariableSort","FieldColorModeId","ThresholdsMode","MappingType","SpecialValueMatch","DashboardCursorSync"],"mappings":";;;;;AAqCO,MAAM,uBAAA,GAAqD;AAAA,EAChE,MAAM;AACR;AAaO,MAAM,4BAAA,GAA+D;AAAA,EAC1E,OAAA,EAAS,KAAA;AAAA,EACT,KAAK;AACP;AAeO,MAAM,0BAAA,GAA2D;AAAA,EACtE,MAAM;AACR;AAkDO,MAAM,sBAAA,GAAmD;AAAA,EAC9D,OAAA,EAAS,CAAA;AAAA,EACT,MAAA,EAAQ,IAAA;AAAA,EACR,IAAA,EAAM;AACR;AA6FO,MAAM,oBAAA,GAA+C;AAAA,EAC1D,gBAAA,EAAkB,IAAA;AAAA,EAClB,UAAA,EAAY,KAAA;AAAA,EACZ,KAAA,EAAO,KAAA;AAAA,EACP,SAAS,EAAC;AAAA,EACV,WAAA,EAAa,KAAA;AAAA,EACb,eAAe,EAAC;AAAA,EAChB,YAAA,EAAc;AAChB;AA0BO,IAAK,eAAA,qBAAAA,gBAAAA,KAAL;AACL,EAAAA,gBAAAA,CAAAA,gBAAAA,CAAA,WAAQ,CAAA,CAAA,GAAR,OAAA;AACA,EAAAA,gBAAAA,CAAAA,gBAAAA,CAAA,qBAAkB,CAAA,CAAA,GAAlB,iBAAA;AACA,EAAAA,gBAAAA,CAAAA,gBAAAA,CAAA,wBAAqB,CAAA,CAAA,GAArB,oBAAA;AAHU,EAAA,OAAAA,gBAAAA;AAAA,CAAA,EAAA,eAAA,IAAA,EAAA;AAUL,IAAK,YAAA,qBAAAC,aAAAA,KAAL;AACL,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,cAAW,CAAA,CAAA,GAAX,UAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,eAAY,CAAA,CAAA,GAAZ,WAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,kBAAe,CAAA,CAAA,GAAf,cAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,oBAAiB,CAAA,CAAA,GAAjB,gBAAA;AAJU,EAAA,OAAAA,aAAAA;AAAA,CAAA,EAAA,YAAA,IAAA,EAAA;AA0BL,IAAK,YAAA,qBAAAC,aAAAA,KAAL;AACL,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,qBAAkB,CAAA,CAAA,GAAlB,iBAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,oCAAiC,CAAA,CAAA,GAAjC,gCAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,qCAAkC,CAAA,CAAA,GAAlC,iCAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,sBAAmB,CAAA,CAAA,GAAnB,kBAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,cAAW,CAAA,CAAA,GAAX,UAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,gBAAa,CAAA,CAAA,GAAb,YAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,iBAAc,CAAA,CAAA,GAAd,aAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,kBAAe,CAAA,CAAA,GAAf,cAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,mBAAgB,CAAA,CAAA,GAAhB,eAAA;AATU,EAAA,OAAAA,aAAAA;AAAA,CAAA,EAAA,YAAA,IAAA,EAAA;AA4EL,MAAM,oBAAA,GAA+C;AAAA,EAC1D,UAAA,EAAY,KAAA;AAAA,EACZ,WAAA,EAAa,KAAA;AAAA,EACb,QAAA,EAAU,KAAA;AAAA,EACV,MAAM,EAAC;AAAA,EACP,WAAA,EAAa;AACf;AAwCO,MAAM,mBAAA,GAA6C;AAAA,EACxD,SAAS,EAAC;AAAA,EACV,aAAa;AACf;AAmBO,MAAM,sBAAA,GAAmD;AAAA,EAC9D,SAAS,EAAC;AAAA,EACV,aAAa;AACf;AA+BO,MAAM,aAAA,GAAiC;AAAA,EAC5C,WAAW;AACb;AAyCO,IAAK,gBAAA,qBAAAC,iBAAAA,KAAL;AACL,EAAAA,kBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,kBAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,kBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,kBAAA,mBAAA,CAAA,GAAoB,oBAAA;AACpB,EAAAA,kBAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,kBAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,kBAAA,mBAAA,CAAA,GAAoB,oBAAA;AACpB,EAAAA,kBAAA,iBAAA,CAAA,GAAkB,kBAAA;AAClB,EAAAA,kBAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,kBAAA,mBAAA,CAAA,GAAoB,oBAAA;AACpB,EAAAA,kBAAA,kBAAA,CAAA,GAAmB,mBAAA;AACnB,EAAAA,kBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,kBAAA,mBAAA,CAAA,GAAoB,oBAAA;AACpB,EAAAA,kBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,kBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,kBAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,kBAAA,gBAAA,CAAA,GAAiB,iBAAA;AACjB,EAAAA,kBAAA,sBAAA,CAAA,GAAuB,yBAAA;AACvB,EAAAA,kBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,kBAAA,YAAA,CAAA,GAAa,YAAA;AApBH,EAAA,OAAAA,iBAAAA;AAAA,CAAA,EAAA,gBAAA,IAAA,EAAA;AAwEL,MAAM,cAAA,GAAmC;AAAA,EAC9C,CAAA,EAAG,CAAA;AAAA,EACH,CAAA,EAAG,EAAA;AAAA,EACH,CAAA,EAAG,CAAA;AAAA,EACH,CAAA,EAAG;AACL;AAqBO,IAAK,cAAA,qBAAAC,eAAAA,KAAL;AACL,EAAAA,gBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,gBAAA,YAAA,CAAA,GAAa,YAAA;AAFH,EAAA,OAAAA,eAAAA;AAAA,CAAA,EAAA,cAAA,IAAA,EAAA;AAmBL,MAAM,uBAAA,GAAqD;AAAA,EAChE,OAAO;AACT;AAcO,IAAK,WAAA,qBAAAC,YAAAA,KAAL;AACL,EAAAA,aAAA,aAAA,CAAA,GAAc,OAAA;AACd,EAAAA,aAAA,aAAA,CAAA,GAAc,OAAA;AACd,EAAAA,aAAA,cAAA,CAAA,GAAe,SAAA;AACf,EAAAA,aAAA,aAAA,CAAA,GAAc,OAAA;AAJJ,EAAA,OAAAA,YAAAA;AAAA,CAAA,EAAA,WAAA,IAAA,EAAA;AAuFL,IAAK,iBAAA,qBAAAC,kBAAAA,KAAL;AACL,EAAAA,mBAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,mBAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,mBAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,mBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,mBAAA,YAAA,CAAA,GAAa,UAAA;AACb,EAAAA,mBAAA,MAAA,CAAA,GAAO,MAAA;AANG,EAAA,OAAAA,kBAAAA;AAAA,CAAA,EAAA,iBAAA,IAAA,EAAA;AA4FL,MAAM,uBAAA,GAAqD;AAAA,EAChE,MAAA,EAAQ,KAAA;AAAA,EACR,cAAc,EAAC;AAAA,EACf,iBAAA,EAAmB,CAAC,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,IAAI;AACpF;AAOO,IAAK,mBAAA,qBAAAC,oBAAAA,KAAL;AACL,EAAAA,oBAAAA,CAAAA,oBAAAA,CAAA,eAAY,CAAA,CAAA,GAAZ,WAAA;AACA,EAAAA,oBAAAA,CAAAA,oBAAAA,CAAA,SAAM,CAAA,CAAA,GAAN,KAAA;AACA,EAAAA,oBAAAA,CAAAA,oBAAAA,CAAA,aAAU,CAAA,CAAA,GAAV,SAAA;AAHU,EAAA,OAAAA,oBAAAA;AAAA,CAAA,EAAA,mBAAA,IAAA,EAAA;AAML,MAAM,0BAAA,GAAkD,CAAA;AAmIxD,MAAM,YAAA,GAA+B;AAAA,EAC1C,OAAO,EAAC;AAAA,EACR,eAAA,EAAiB,GAAA;AAAA,EACjB,SAAS,EAAC;AAAA,EACV,iBAAiB,EAAC;AAAA,EAClB,WAAA,EAAa;AACf;AAwBO,MAAM,wBAAA,GAAuD;AAAA,EAClE,WAAW;AACb;AAiCO,MAAM,oBAAA,GAA+C;AAAA,EAC1D,EAAA,EAAI;AACN;AAgGO,MAAM,kBAAA,GAA2C;AAAA,EACtD,SAAS,EAAC;AAAA,EACV,OAAO,EAAC;AAAA,EACR,UAAU;AACZ;AAwCO,MAAM,eAAA,GAAqC;AAAA,EAChD,SAAA,EAAW,KAAA;AAAA,EACX,QAAQ;AACV;AAwKO,MAAM,gBAAA,GAAuC;AAAA,EAClD,QAAA,EAAU,IAAA;AAAA,EACV,oBAAA,EAAsB,CAAA;AAAA,EACtB,YAAA,EAAc,CAAA;AAAA,EACd,OAAO,EAAC;AAAA,EACR,QAAQ,EAAC;AAAA,EACT,aAAA,EAAe,EAAA;AAAA,EACf,MAAM,EAAC;AAAA,EACP,QAAA,EAAU;AACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"dashboard_types.gen.cjs","sources":["../../../../../src/raw/dashboard/x/dashboard_types.gen.ts"],"sourcesContent":["// Code generated - EDITING IS FUTILE. DO NOT EDIT.\n//\n// Generated by:\n// kinds/gen.go\n// Using jennies:\n// TSTypesJenny\n// LatestMajorsOrXJenny\n//\n// Run 'make gen-cue' from repository root to regenerate.\n\n/**\n * TODO: this should be a regular DataQuery that depends on the selected dashboard\n * these match the properties of the \"grafana\" datasouce that is default in most dashboards\n */\nexport interface AnnotationTarget {\n /**\n * Only required/valid for the grafana datasource...\n * but code+tests is already depending on it so hard to change\n */\n limit: number;\n /**\n * Only required/valid for the grafana datasource...\n * but code+tests is already depending on it so hard to change\n */\n matchAny: boolean;\n /**\n * Only required/valid for the grafana datasource...\n * but code+tests is already depending on it so hard to change\n */\n tags: Array<string>;\n /**\n * Only required/valid for the grafana datasource...\n * but code+tests is already depending on it so hard to change\n */\n type: string;\n}\n\nexport const defaultAnnotationTarget: Partial<AnnotationTarget> = {\n tags: [],\n};\n\nexport interface AnnotationPanelFilter {\n /**\n * Should the specified panels be included or excluded\n */\n exclude?: boolean;\n /**\n * Panel IDs that should be included or excluded\n */\n ids: Array<number>;\n}\n\nexport const defaultAnnotationPanelFilter: Partial<AnnotationPanelFilter> = {\n exclude: false,\n ids: [],\n};\n\n/**\n * Contains the list of annotations that are associated with the dashboard.\n * Annotations are used to overlay event markers and overlay event tags on graphs.\n * Grafana comes with a native annotation store and the ability to add annotation events directly from the graph panel or via the HTTP API.\n * See https://grafana.com/docs/grafana/latest/dashboards/build-dashboards/annotate-visualizations/\n */\nexport interface AnnotationContainer {\n /**\n * List of annotations\n */\n list?: Array<AnnotationQuery>;\n}\n\nexport const defaultAnnotationContainer: Partial<AnnotationContainer> = {\n list: [],\n};\n\n/**\n * TODO docs\n * FROM: AnnotationQuery in grafana-data/src/types/annotations.ts\n */\nexport interface AnnotationQuery {\n /**\n * Set to 1 for the standard annotation query all dashboards have by default.\n */\n builtIn?: number;\n /**\n * Datasource where the annotations data is\n */\n datasource: DataSourceRef;\n /**\n * When enabled the annotation query is issued with every dashboard refresh\n */\n enable: boolean;\n /**\n * Filters to apply when fetching annotations\n */\n filter?: AnnotationPanelFilter;\n /**\n * Annotation queries can be toggled on or off at the top of the dashboard.\n * When hide is true, the toggle is not shown in the dashboard.\n */\n hide?: boolean;\n /**\n * Color to use for the annotation event markers\n */\n iconColor: string;\n /**\n * Name of annotation.\n */\n name: string;\n /**\n * Placement can be used to display the annotation query somewhere else on the dashboard other than the default location.\n */\n placement?: AnnotationQueryPlacement;\n /**\n * TODO.. this should just be a normal query target\n */\n target?: AnnotationTarget;\n /**\n * TODO -- this should not exist here, it is based on the --grafana-- datasource\n */\n type?: string;\n}\n\nexport const defaultAnnotationQuery: Partial<AnnotationQuery> = {\n builtIn: 0,\n enable: true,\n hide: false,\n};\n\n/**\n * A variable is a placeholder for a value. You can use variables in metric queries and in panel titles.\n */\nexport interface VariableModel {\n /**\n * Custom all value\n */\n allValue?: string;\n /**\n * Allow custom values to be entered in the variable\n */\n allowCustomValue?: boolean;\n /**\n * Shows current selected variable text/value on the dashboard\n */\n current?: VariableOption;\n /**\n * Data source used to fetch values for a variable. It can be defined but `null`.\n */\n datasource?: DataSourceRef;\n /**\n * Description of variable. It can be defined but `null`.\n */\n description?: string;\n /**\n * Visibility configuration for the variable\n */\n hide?: VariableHide;\n /**\n * Whether all value option is available or not\n */\n includeAll?: boolean;\n /**\n * Optional display name\n */\n label?: string;\n /**\n * Whether multiple values can be selected or not from variable value list\n */\n multi?: boolean;\n /**\n * Name of variable\n */\n name: string;\n /**\n * Options that can be selected for a variable.\n */\n options?: Array<VariableOption>;\n /**\n * Query used to fetch values for a variable\n */\n query?: (string | Record<string, unknown>);\n /**\n * Options to config when to refresh a variable\n */\n refresh?: VariableRefresh;\n /**\n * Optional field, if you want to extract part of a series name or metric node segment.\n * Named capture groups can be used to separate the display text and value.\n */\n regex?: string;\n /**\n * Determine whether regex applies to variable value or display text\n */\n regexApplyTo?: VariableRegexApplyTo;\n /**\n * Whether the variable value should be managed by URL query params or not\n */\n skipUrlSync?: boolean;\n /**\n * Options sort order\n */\n sort?: VariableSort;\n /**\n * Additional static options for query variable\n */\n staticOptions?: Array<VariableOption>;\n /**\n * Ordering of static options in relation to options returned from data source for query variable\n */\n staticOptionsOrder?: ('before' | 'after' | 'sorted');\n /**\n * Type of variable\n */\n type: VariableType;\n /**\n * Optional, indicates whether a custom type variable uses CSV or JSON to define its values\n */\n valuesFormat?: ('csv' | 'json');\n}\n\nexport const defaultVariableModel: Partial<VariableModel> = {\n allowCustomValue: true,\n includeAll: false,\n multi: false,\n options: [],\n skipUrlSync: false,\n staticOptions: [],\n valuesFormat: 'csv',\n};\n\n/**\n * Option to be selected in a variable.\n */\nexport interface VariableOption {\n /**\n * Additional properties for multi-props variables\n */\n properties?: Record<string, string>;\n /**\n * Whether the option is selected or not\n */\n selected?: boolean;\n /**\n * Text to be displayed for the option\n */\n text: (string | Array<string>);\n /**\n * Value of the option\n */\n value: (string | Array<string>);\n}\n\n/**\n * Options to config when to refresh a variable\n * `0`: Never refresh the variable\n * `1`: Queries the data source every time the dashboard loads.\n * `2`: Queries the data source when the dashboard time range changes.\n */\nexport enum VariableRefresh {\n never = 0,\n onDashboardLoad = 1,\n onTimeRangeChanged = 2,\n}\n\n/**\n * Determine if the variable shows on dashboard\n * Accepted values are 0 (show label and value), 1 (show value only), 2 (show nothing), 3 (show under the controls dropdown menu).\n */\nexport enum VariableHide {\n dontHide = 0,\n hideLabel = 1,\n hideVariable = 2,\n inControlsMenu = 3,\n}\n\n/**\n * Determine whether regex applies to variable value or display text\n * Accepted values are \"value\" (apply to value used in queries) or \"text\" (apply to display text shown to users)\n */\nexport type VariableRegexApplyTo = ('value' | 'text');\n\n/**\n * Sort variable options\n * Accepted values are:\n * `0`: No sorting\n * `1`: Alphabetical ASC\n * `2`: Alphabetical DESC\n * `3`: Numerical ASC\n * `4`: Numerical DESC\n * `5`: Alphabetical Case Insensitive ASC\n * `6`: Alphabetical Case Insensitive DESC\n * `7`: Natural ASC\n * `8`: Natural DESC\n */\nexport enum VariableSort {\n alphabeticalAsc = 1,\n alphabeticalCaseInsensitiveAsc = 5,\n alphabeticalCaseInsensitiveDesc = 6,\n alphabeticalDesc = 2,\n disabled = 0,\n naturalAsc = 7,\n naturalDesc = 8,\n numericalAsc = 3,\n numericalDesc = 4,\n}\n\n/**\n * Ref to a DataSource instance\n */\nexport interface DataSourceRef {\n /**\n * The plugin type-id\n */\n type?: string;\n /**\n * Specific datasource instance\n */\n uid?: string;\n}\n\n/**\n * Links with references to other dashboards or external resources\n */\nexport interface DashboardLink {\n /**\n * If true, all dashboards links will be displayed in a dropdown. If false, all dashboards links will be displayed side by side. Only valid if the type is dashboards\n */\n asDropdown: boolean;\n /**\n * Icon name to be displayed with the link\n */\n icon: string;\n /**\n * If true, includes current template variables values in the link as query params\n */\n includeVars: boolean;\n /**\n * If true, includes current time range in the link as query params\n */\n keepTime: boolean;\n /**\n * Placement can be used to display the link somewhere else on the dashboard other than above the visualisations.\n */\n placement?: DashboardLinkPlacement;\n /**\n * List of tags to limit the linked dashboards. If empty, all dashboards will be displayed. Only valid if the type is dashboards\n */\n tags: Array<string>;\n /**\n * If true, the link will be opened in a new tab\n */\n targetBlank: boolean;\n /**\n * Title to display with the link\n */\n title: string;\n /**\n * Tooltip to display when the user hovers their mouse over it\n */\n tooltip: string;\n /**\n * Link type. Accepted values are dashboards (to refer to another dashboard) and link (to refer to an external resource)\n */\n type: DashboardLinkType;\n /**\n * Link URL. Only required/valid if the type is link\n */\n url?: string;\n}\n\nexport const defaultDashboardLink: Partial<DashboardLink> = {\n asDropdown: false,\n includeVars: false,\n keepTime: false,\n tags: [],\n targetBlank: false,\n};\n\n/**\n * Dashboard Link type. Accepted values are dashboards (to refer to another dashboard) and link (to refer to an external resource)\n */\nexport type DashboardLinkType = ('link' | 'dashboards');\n\n/**\n * Dashboard Link placement. Defines where the link should be displayed.\n * - \"inControlsMenu\" renders the link in bottom part of the dashboard controls dropdown menu\n */\nexport type DashboardLinkPlacement = 'inControlsMenu';\n\n/**\n * Annotation Query placement. Defines where the annotation query should be displayed.\n * - \"inControlsMenu\" renders the annotation query in the dashboard controls dropdown menu\n */\nexport type AnnotationQueryPlacement = 'inControlsMenu';\n\n/**\n * Dashboard action type\n */\nexport type ActionType = ('fetch' | 'infinity');\n\n/**\n * Fetch options\n */\nexport interface FetchOptions {\n body?: string;\n headers?: Array<Array<string>>;\n method: HttpRequestMethod;\n /**\n * These are 2D arrays of strings, each representing a key-value pair\n * We are defining this way because we can't generate a go struct that\n * that would have exactly two strings in each sub-array\n */\n queryParams?: Array<Array<string>>;\n url: string;\n}\n\nexport const defaultFetchOptions: Partial<FetchOptions> = {\n headers: [],\n queryParams: [],\n};\n\n/**\n * Infinity options\n */\nexport interface InfinityOptions {\n body?: string;\n datasourceUid: string;\n headers?: Array<Array<string>>;\n method: HttpRequestMethod;\n /**\n * These are 2D arrays of strings, each representing a key-value pair\n * We are defining them this way because we can't generate a go struct that\n * that would have exactly two strings in each sub-array\n */\n queryParams?: Array<Array<string>>;\n url: string;\n}\n\nexport const defaultInfinityOptions: Partial<InfinityOptions> = {\n headers: [],\n queryParams: [],\n};\n\nexport type HttpRequestMethod = ('GET' | 'PUT' | 'POST' | 'DELETE' | 'PATCH');\n\n/**\n * Action variable type\n */\nexport type ActionVariableType = 'string';\n\nexport interface ActionVariable {\n key: string;\n name: string;\n type: ActionVariableType;\n}\n\n/**\n * Dashboard action\n */\nexport interface Action {\n confirmation?: string;\n fetch?: FetchOptions;\n infinity?: InfinityOptions;\n oneClick?: boolean;\n style?: {\n backgroundColor?: string;\n };\n title: string;\n type: ActionType;\n variables?: Array<ActionVariable>;\n}\n\nexport const defaultAction: Partial<Action> = {\n variables: [],\n};\n\n/**\n * Dashboard variable type\n * `query`: Query-generated list of values such as metric names, server names, sensor IDs, data centers, and so on.\n * `adhoc`: Key/value filters that are automatically added to all metric queries for a data source (Prometheus, Loki, InfluxDB, and Elasticsearch only).\n * `constant`: \tDefine a hidden constant.\n * `datasource`: Quickly change the data source for an entire dashboard.\n * `interval`: Interval variables represent time spans.\n * `textbox`: Display a free text input field with an optional default value.\n * `custom`: Define the variable options manually using a comma-separated list.\n * `system`: Variables defined by Grafana. See: https://grafana.com/docs/grafana/latest/dashboards/variables/add-template-variables/#global-variables\n * `switch`: Boolean variables rendered as a switch\n */\nexport type VariableType = ('query' | 'adhoc' | 'groupby' | 'constant' | 'datasource' | 'interval' | 'textbox' | 'custom' | 'system' | 'snapshot' | 'switch');\n\n/**\n * Color mode for a field. You can specify a single color, or select a continuous (gradient) color schemes, based on a value.\n * Continuous color interpolates a color using the percentage of a value relative to min and max.\n * Accepted values are:\n * `thresholds`: From thresholds. Informs Grafana to take the color from the matching threshold\n * `palette-classic`: Classic palette. Grafana will assign color by looking up a color in a palette by series index. Useful for Graphs and pie charts and other categorical data visualizations\n * `palette-classic-by-name`: Classic palette (by name). Grafana will assign color by looking up a color in a palette by series name. Useful for Graphs and pie charts and other categorical data visualizations\n * `continuous-viridis`: Continuous Viridis palette mode\n * `continuous-magma`: Continuous Magma palette mode\n * `continuous-plasma`: Continuous Plasma palette mode\n * `continuous-inferno`: Continuous Inferno palette mode\n * `continuous-cividis`: Continuous Cividis palette mode\n * `continuous-GrYlRd`: Continuous Green-Yellow-Red palette mode\n * `continuous-RdYlGr`: Continuous Red-Yellow-Green palette mode\n * `continuous-BlYlRd`: Continuous Blue-Yellow-Red palette mode\n * `continuous-YlRd`: Continuous Yellow-Red palette mode\n * `continuous-BlPu`: Continuous Blue-Purple palette mode\n * `continuous-YlBl`: Continuous Yellow-Blue palette mode\n * `continuous-blues`: Continuous Blue palette mode\n * `continuous-reds`: Continuous Red palette mode\n * `continuous-greens`: Continuous Green palette mode\n * `continuous-purples`: Continuous Purple palette mode\n * `shades`: Shades of a single color. Specify a single color, useful in an override rule.\n * `fixed`: Fixed color mode. Specify a single color, useful in an override rule.\n */\nexport enum FieldColorModeId {\n ContinuousBlPu = 'continuous-BlPu',\n ContinuousBlYlRd = 'continuous-BlYlRd',\n ContinuousBlues = 'continuous-blues',\n ContinuousCividis = 'continuous-cividis',\n ContinuousGrYlRd = 'continuous-GrYlRd',\n ContinuousGreens = 'continuous-greens',\n ContinuousInferno = 'continuous-inferno',\n ContinuousMagma = 'continuous-magma',\n ContinuousPlasma = 'continuous-plasma',\n ContinuousPurples = 'continuous-purples',\n ContinuousRdYlGr = 'continuous-RdYlGr',\n ContinuousReds = 'continuous-reds',\n ContinuousViridis = 'continuous-viridis',\n ContinuousYlBl = 'continuous-YlBl',\n ContinuousYlRd = 'continuous-YlRd',\n Fixed = 'fixed',\n PaletteClassic = 'palette-classic',\n PaletteClassicByName = 'palette-classic-by-name',\n Shades = 'shades',\n Thresholds = 'thresholds',\n}\n\n/**\n * Defines how to assign a series color from \"by value\" color schemes. For example for an aggregated data points like a timeseries, the color can be assigned by the min, max or last value.\n */\nexport type FieldColorSeriesByMode = ('min' | 'max' | 'last');\n\n/**\n * Map a field to a color.\n */\nexport interface FieldColor {\n /**\n * The fixed color value for fixed or shades color modes.\n */\n fixedColor?: string;\n /**\n * The main color scheme mode.\n */\n mode: FieldColorModeId;\n /**\n * Some visualizations need to know how to assign a series color from by value color schemes.\n */\n seriesBy?: FieldColorSeriesByMode;\n}\n\n/**\n * Position and dimensions of a panel in the grid\n */\nexport interface GridPos {\n /**\n * Panel height. The height is the number of rows from the top edge of the panel.\n */\n h: number;\n /**\n * Whether the panel is fixed within the grid. If true, the panel will not be affected by other panels' interactions\n */\n static?: boolean;\n /**\n * Panel width. The width is the number of columns from the left edge of the panel.\n */\n w: number;\n /**\n * Panel x. The x coordinate is the number of columns from the left edge of the grid\n */\n x: number;\n /**\n * Panel y. The y coordinate is the number of rows from the top edge of the grid\n */\n y: number;\n}\n\nexport const defaultGridPos: Partial<GridPos> = {\n h: 9,\n w: 12,\n x: 0,\n y: 0,\n};\n\n/**\n * User-defined value for a metric that triggers visual changes in a panel when this value is met or exceeded\n * They are used to conditionally style and color visualizations based on query results , and can be applied to most visualizations.\n */\nexport interface Threshold {\n /**\n * Color represents the color of the visual change that will occur in the dashboard when the threshold value is met or exceeded.\n */\n color: string;\n /**\n * Value represents a specified metric for the threshold, which triggers a visual change in the dashboard when this value is met or exceeded.\n * Nulls currently appear here when serializing -Infinity to JSON.\n */\n value: (number | null);\n}\n\n/**\n * Thresholds can either be `absolute` (specific number) or `percentage` (relative to min or max, it will be values between 0 and 1).\n */\nexport enum ThresholdsMode {\n Absolute = 'absolute',\n Percentage = 'percentage',\n}\n\n/**\n * Thresholds configuration for the panel\n */\nexport interface ThresholdsConfig {\n /**\n * Thresholds mode.\n */\n mode: ThresholdsMode;\n /**\n * Must be sorted by 'value', first value is always -Infinity\n */\n steps: Array<Threshold>;\n}\n\nexport const defaultThresholdsConfig: Partial<ThresholdsConfig> = {\n steps: [],\n};\n\n/**\n * Allow to transform the visual representation of specific data values in a visualization, irrespective of their original units\n */\nexport type ValueMapping = (ValueMap | RangeMap | RegexMap | SpecialValueMap);\n\n/**\n * Supported value mapping types\n * `value`: Maps text values to a color or different display text and color. For example, you can configure a value mapping so that all instances of the value 10 appear as Perfection! rather than the number.\n * `range`: Maps numerical ranges to a display text and color. For example, if a value is within a certain range, you can configure a range value mapping to display Low or High rather than the number.\n * `regex`: Maps regular expressions to replacement text and a color. For example, if a value is www.example.com, you can configure a regex value mapping so that Grafana displays www and truncates the domain.\n * `special`: Maps special values like Null, NaN (not a number), and boolean values like true and false to a display text and color. See SpecialValueMatch to see the list of special values. For example, you can configure a special value mapping so that null values appear as N/A.\n */\nexport enum MappingType {\n RangeToText = 'range',\n RegexToText = 'regex',\n SpecialValue = 'special',\n ValueToText = 'value',\n}\n\n/**\n * Maps text values to a color or different display text and color.\n * For example, you can configure a value mapping so that all instances of the value 10 appear as Perfection! rather than the number.\n */\nexport interface ValueMap {\n /**\n * Map with <value_to_match>: ValueMappingResult. For example: { \"10\": { text: \"Perfection!\", color: \"green\" } }\n */\n options: Record<string, ValueMappingResult>;\n type: MappingType.ValueToText;\n}\n\n/**\n * Maps numerical ranges to a display text and color.\n * For example, if a value is within a certain range, you can configure a range value mapping to display Low or High rather than the number.\n */\nexport interface RangeMap {\n /**\n * Range to match against and the result to apply when the value is within the range\n */\n options: {\n /**\n * Min value of the range. It can be null which means -Infinity\n */\n from: (number | null);\n /**\n * Max value of the range. It can be null which means +Infinity\n */\n to: (number | null);\n /**\n * Config to apply when the value is within the range\n */\n result: ValueMappingResult;\n };\n type: MappingType.RangeToText;\n}\n\n/**\n * Maps regular expressions to replacement text and a color.\n * For example, if a value is www.example.com, you can configure a regex value mapping so that Grafana displays www and truncates the domain.\n */\nexport interface RegexMap {\n /**\n * Regular expression to match against and the result to apply when the value matches the regex\n */\n options: {\n /**\n * Regular expression to match against\n */\n pattern: string;\n /**\n * Config to apply when the value matches the regex\n */\n result: ValueMappingResult;\n };\n type: MappingType.RegexToText;\n}\n\n/**\n * Maps special values like Null, NaN (not a number), and boolean values like true and false to a display text and color.\n * See SpecialValueMatch to see the list of special values.\n * For example, you can configure a special value mapping so that null values appear as N/A.\n */\nexport interface SpecialValueMap {\n options: {\n /**\n * Special value to match against\n */\n match: SpecialValueMatch;\n /**\n * Config to apply when the value matches the special value\n */\n result: ValueMappingResult;\n };\n type: MappingType.SpecialValue;\n}\n\n/**\n * Special value types supported by the `SpecialValueMap`\n */\nexport enum SpecialValueMatch {\n Empty = 'empty',\n False = 'false',\n NaN = 'nan',\n Null = 'null',\n NullAndNan = 'null+nan',\n True = 'true',\n}\n\n/**\n * Result used as replacement with text and color when the value matches\n */\nexport interface ValueMappingResult {\n /**\n * Text to use when the value matches\n */\n color?: string;\n /**\n * Icon to display when the value matches. Only specific visualizations.\n */\n icon?: string;\n /**\n * Position in the mapping array. Only used internally.\n */\n index?: number;\n /**\n * Text to display when the value matches\n */\n text?: string;\n}\n\n/**\n * Transformations allow to manipulate data returned by a query before the system applies a visualization.\n * Using transformations you can: rename fields, join time series data, perform mathematical operations across queries,\n * use the output of one transformation as the input to another transformation, etc.\n */\nexport interface DataTransformerConfig {\n /**\n * Disabled transformations are skipped\n */\n disabled?: boolean;\n /**\n * Optional frame matcher. When missing it will be applied to all results\n */\n filter?: MatcherConfig;\n /**\n * Unique identifier of transformer\n */\n id: string;\n /**\n * Options to be passed to the transformer\n * Valid options depend on the transformer id\n */\n options: unknown;\n /**\n * Where to pull DataFrames from as input to transformation\n */\n topic?: ('series' | 'annotations' | 'alertStates'); // replaced with common.DataTopic\n}\n\n/**\n * Counterpart for TypeScript's TimeOption type.\n */\nexport interface TimeOption {\n display: string;\n from: string;\n to: string;\n}\n\n/**\n * Time picker configuration\n * It defines the default config for the time picker and the refresh picker for the specific dashboard.\n */\nexport interface TimePickerConfig {\n /**\n * Whether timepicker is visible or not.\n */\n hidden?: boolean;\n /**\n * Override the now time by entering a time delay. Use this option to accommodate known delays in data aggregation to avoid null values.\n */\n nowDelay?: string;\n /**\n * Quick ranges for time picker.\n */\n quick_ranges?: Array<TimeOption>;\n /**\n * Interval options available in the refresh picker dropdown.\n */\n refresh_intervals?: Array<string>;\n}\n\nexport const defaultTimePickerConfig: Partial<TimePickerConfig> = {\n hidden: false,\n quick_ranges: [],\n refresh_intervals: ['5s', '10s', '30s', '1m', '5m', '15m', '30m', '1h', '2h', '1d'],\n};\n\n/**\n * 0 for no shared crosshair or tooltip (default).\n * 1 for shared crosshair.\n * 2 for shared crosshair AND shared tooltip.\n */\nexport enum DashboardCursorSync {\n Crosshair = 1,\n Off = 0,\n Tooltip = 2,\n}\n\nexport const defaultDashboardCursorSync: DashboardCursorSync = DashboardCursorSync.Off;\n\n/**\n * Dashboard panels are the basic visualization building blocks.\n */\nexport interface Panel {\n /**\n * When a panel is migrated from a previous version (Angular to React), this field is set to the original panel type.\n * This is used to determine the original panel type when migrating to a new version so the plugin migration can be applied.\n */\n autoMigrateFrom?: string;\n /**\n * Sets panel queries cache timeout.\n */\n cacheTimeout?: string;\n /**\n * The datasource used in all targets.\n */\n datasource?: DataSourceRef;\n /**\n * Panel description.\n */\n description?: string;\n /**\n * Field options allow you to change how the data is displayed in your visualizations.\n */\n fieldConfig?: FieldConfigSource;\n /**\n * Grid position.\n */\n gridPos?: GridPos;\n /**\n * Controls if the timeFrom or timeShift overrides are shown in the panel header\n */\n hideTimeOverride?: boolean;\n /**\n * Unique identifier of the panel. Generated by Grafana when creating a new panel. It must be unique within a dashboard, but not globally.\n */\n id?: number;\n /**\n * The min time interval setting defines a lower limit for the $__interval and $__interval_ms variables.\n * This value must be formatted as a number followed by a valid time\n * identifier like: \"40s\", \"3d\", etc.\n * See: https://grafana.com/docs/grafana/latest/panels-visualizations/query-transform-data/#query-options\n */\n interval?: string;\n /**\n * Dynamically load the panel\n */\n libraryPanel?: LibraryPanelRef;\n /**\n * Panel links.\n */\n links?: Array<DashboardLink>;\n /**\n * The maximum number of data points that the panel queries are retrieving.\n */\n maxDataPoints?: number;\n /**\n * Option for repeated panels that controls max items per row\n * Only relevant for horizontally repeated panels\n */\n maxPerRow?: number;\n /**\n * It depends on the panel plugin. They are specified by the Options field in panel plugin schemas.\n */\n options?: Record<string, unknown>;\n /**\n * The version of the plugin that is used for this panel. This is used to find the plugin to display the panel and to migrate old panel configs.\n */\n pluginVersion?: string;\n /**\n * Overrides the data source configured time-to-live for a query cache item in milliseconds\n */\n queryCachingTTL?: number;\n /**\n * Name of template variable to repeat for.\n */\n repeat?: string;\n /**\n * Direction to repeat in if 'repeat' is set.\n * `h` for horizontal, `v` for vertical.\n */\n repeatDirection?: ('h' | 'v');\n /**\n * Depends on the panel plugin. See the plugin documentation for details.\n */\n targets?: Array<Record<string, unknown>>;\n /**\n * Compare the current time range with a previous period\n * For example \"1d\" to compare current period but shifted back 1 day\n */\n timeCompare?: string;\n /**\n * Overrides the relative time range for individual panels,\n * which causes them to be different than what is selected in\n * the dashboard time picker in the top-right corner of the dashboard. You can use this to show metrics from different\n * time periods or days on the same dashboard.\n * The value is formatted as time operation like: `now-5m` (Last 5 minutes), `now/d` (the day so far),\n * `now-5d/d`(Last 5 days), `now/w` (This week so far), `now-2y/y` (Last 2 years).\n * Note: Panel time overrides have no effect when the dashboard’s time range is absolute.\n * See: https://grafana.com/docs/grafana/latest/panels-visualizations/query-transform-data/#query-options\n */\n timeFrom?: string;\n /**\n * Overrides the time range for individual panels by shifting its start and end relative to the time picker.\n * For example, you can shift the time range for the panel to be two hours earlier than the dashboard time picker setting `2h`.\n * Note: Panel time overrides have no effect when the dashboard’s time range is absolute.\n * See: https://grafana.com/docs/grafana/latest/panels-visualizations/query-transform-data/#query-options\n */\n timeShift?: string;\n /**\n * Panel title.\n */\n title?: string;\n /**\n * List of transformations that are applied to the panel data before rendering.\n * When there are multiple transformations, Grafana applies them in the order they are listed.\n * Each transformation creates a result set that then passes on to the next transformation in the processing pipeline.\n */\n transformations?: Array<DataTransformerConfig>;\n /**\n * Whether to display the panel without a background.\n */\n transparent?: boolean;\n /**\n * The panel plugin type id. This is used to find the plugin to display the panel.\n */\n type: string;\n}\n\nexport const defaultPanel: Partial<Panel> = {\n links: [],\n repeatDirection: 'h',\n targets: [],\n transformations: [],\n transparent: false,\n};\n\n/**\n * The data model used in Grafana, namely the data frame, is a columnar-oriented table structure that unifies both time series and table query results.\n * Each column within this structure is called a field. A field can represent a single time series or table column.\n * Field options allow you to change how the data is displayed in your visualizations.\n */\nexport interface FieldConfigSource {\n /**\n * Defaults are the options applied to all fields.\n */\n defaults: FieldConfig;\n /**\n * Overrides are the options applied to specific fields overriding the defaults.\n */\n overrides: Array<{\n matcher: MatcherConfig;\n properties: Array<{\n id: string;\n value?: unknown;\n }>;\n }>;\n}\n\nexport const defaultFieldConfigSource: Partial<FieldConfigSource> = {\n overrides: [],\n};\n\n/**\n * A library panel is a reusable panel that you can use in any dashboard.\n * When you make a change to a library panel, that change propagates to all instances of where the panel is used.\n * Library panels streamline reuse of panels across multiple dashboards.\n */\nexport interface LibraryPanelRef {\n /**\n * Library panel name\n */\n name: string;\n /**\n * Library panel uid\n */\n uid: string;\n}\n\n/**\n * Matcher is a predicate configuration. Based on the config a set of field(s) or values is filtered in order to apply override / transformation.\n * It comes with in id ( to resolve implementation from registry) and a configuration that’s specific to a particular matcher type.\n */\nexport interface MatcherConfig {\n /**\n * The matcher id. This is used to find the matcher implementation from registry.\n */\n id: string;\n /**\n * The matcher options. This is specific to the matcher implementation.\n */\n options?: unknown;\n}\n\nexport const defaultMatcherConfig: Partial<MatcherConfig> = {\n id: '',\n};\n\n/**\n * The data model used in Grafana, namely the data frame, is a columnar-oriented table structure that unifies both time series and table query results.\n * Each column within this structure is called a field. A field can represent a single time series or table column.\n * Field options allow you to change how the data is displayed in your visualizations.\n */\nexport interface FieldConfig {\n /**\n * Define interactive HTTP requests that can be triggered from data visualizations.\n */\n actions?: Array<Action>;\n /**\n * Panel color configuration\n */\n color?: FieldColor;\n /**\n * custom is specified by the FieldConfig field\n * in panel plugin schemas.\n */\n custom?: Record<string, unknown>;\n /**\n * Specify the number of decimals Grafana includes in the rendered value.\n * If you leave this field blank, Grafana automatically truncates the number of decimals based on the value.\n * For example 1.1234 will display as 1.12 and 100.456 will display as 100.\n * To display all decimals, set the unit to `String`.\n */\n decimals?: number;\n /**\n * Human readable field metadata\n */\n description?: string;\n /**\n * The display value for this field. This supports template variables blank is auto\n */\n displayName?: string;\n /**\n * This can be used by data sources that return and explicit naming structure for values and labels\n * When this property is configured, this value is used rather than the default naming strategy.\n */\n displayNameFromDS?: string;\n /**\n * True if data source field supports ad-hoc filters\n */\n filterable?: boolean;\n /**\n * The behavior when clicking on a result\n */\n links?: Array<unknown>;\n /**\n * Convert input values into a display string\n */\n mappings?: Array<ValueMapping>;\n /**\n * The maximum value used in percentage threshold calculations. Leave blank for auto calculation based on all series and fields.\n */\n max?: number;\n /**\n * The minimum value used in percentage threshold calculations. Leave blank for auto calculation based on all series and fields.\n */\n min?: number;\n /**\n * Alternative to empty string\n */\n noValue?: string;\n /**\n * An explicit path to the field in the datasource. When the frame meta includes a path,\n * This will default to `${frame.meta.path}/${field.name}\n * \n * When defined, this value can be used as an identifier within the datasource scope, and\n * may be used to update the results\n */\n path?: string;\n /**\n * Map numeric values to states\n */\n thresholds?: ThresholdsConfig;\n /**\n * Unit a field should use. The unit you select is applied to all fields except time.\n * You can use the units ID availables in Grafana or a custom unit.\n * Available units in Grafana: https://github.com/grafana/grafana/blob/main/packages/grafana-data/src/valueFormats/categories.ts\n * As custom unit, you can use the following formats:\n * `suffix:<suffix>` for custom unit that should go after value.\n * `prefix:<prefix>` for custom unit that should go before value.\n * `time:<format>` For custom date time formats type for example `time:YYYY-MM-DD`.\n * `si:<base scale><unit characters>` for custom SI units. For example: `si: mF`. This one is a bit more advanced as you can specify both a unit and the source data scale. So if your source data is represented as milli (thousands of) something prefix the unit with that SI scale character.\n * `count:<unit>` for a custom count unit.\n * `currency:<unit>` for custom a currency unit.\n */\n unit?: string;\n /**\n * True if data source can write a value to the path. Auth/authz are supported separately\n */\n writeable?: boolean;\n}\n\nexport const defaultFieldConfig: Partial<FieldConfig> = {\n actions: [],\n links: [],\n mappings: [],\n};\n\n/**\n * Row panel\n */\nexport interface RowPanel {\n /**\n * Whether this row should be collapsed or not.\n */\n collapsed: boolean;\n /**\n * Name of default datasource for the row\n */\n datasource?: DataSourceRef;\n /**\n * Row grid position\n */\n gridPos?: GridPos;\n /**\n * Unique identifier of the panel. Generated by Grafana when creating a new panel. It must be unique within a dashboard, but not globally.\n */\n id: number;\n /**\n * List of panels in the row\n */\n panels: Array<Panel>;\n /**\n * Name of template variable to repeat for.\n */\n repeat?: string;\n /**\n * Row title\n */\n title?: string;\n /**\n * The panel type\n */\n type: 'row';\n}\n\nexport const defaultRowPanel: Partial<RowPanel> = {\n collapsed: false,\n panels: [],\n};\n\nexport interface Dashboard {\n /**\n * Contains the list of annotations that are associated with the dashboard.\n * Annotations are used to overlay event markers and overlay event tags on graphs.\n * Grafana comes with a native annotation store and the ability to add annotation events directly from the graph panel or via the HTTP API.\n * See https://grafana.com/docs/grafana/latest/dashboards/build-dashboards/annotate-visualizations/\n */\n annotations?: AnnotationContainer;\n /**\n * Description of dashboard.\n */\n description?: string;\n /**\n * Whether a dashboard is editable or not.\n */\n editable?: boolean;\n /**\n * The month that the fiscal year starts on. 0 = January, 11 = December\n */\n fiscalYearStartMonth?: number;\n /**\n * ID of a dashboard imported from the https://grafana.com/grafana/dashboards/ portal\n */\n gnetId?: string;\n /**\n * Configuration of dashboard cursor sync behavior.\n * Accepted values are 0 (sync turned off), 1 (shared crosshair), 2 (shared crosshair and tooltip).\n */\n graphTooltip?: DashboardCursorSync;\n /**\n * Unique numeric identifier for the dashboard.\n * `id` is internal to a specific Grafana instance. `uid` should be used to identify a dashboard across Grafana instances.\n */\n id?: (number | null); // TODO eliminate this null option\n /**\n * Links with references to other dashboards or external websites.\n */\n links?: Array<DashboardLink>;\n /**\n * When set to true, the dashboard will redraw panels at an interval matching the pixel width.\n * This will keep data \"moving left\" regardless of the query refresh rate. This setting helps\n * avoid dashboards presenting stale live data\n */\n liveNow?: boolean;\n /**\n * List of dashboard panels\n */\n panels?: Array<(Panel | RowPanel)>;\n /**\n * When set to true, the dashboard will load all panels in the dashboard when it's loaded.\n */\n preload?: boolean;\n /**\n * Refresh rate of dashboard. Represented via interval string, e.g. \"5s\", \"1m\", \"1h\", \"1d\".\n */\n refresh?: string;\n /**\n * This property should only be used in dashboards defined by plugins. It is a quick check\n * to see if the version has changed since the last time.\n */\n revision?: number;\n /**\n * Version of the JSON schema, incremented each time a Grafana update brings\n * changes to said schema.\n */\n schemaVersion: number;\n /**\n * Snapshot options. They are present only if the dashboard is a snapshot.\n */\n snapshot?: {\n /**\n * Time when the snapshot was created\n */\n created: string;\n /**\n * Time when the snapshot expires, default is never to expire\n */\n expires: string;\n /**\n * Is the snapshot saved in an external grafana instance\n */\n external: boolean;\n /**\n * external url, if snapshot was shared in external grafana instance\n */\n externalUrl: string;\n /**\n * original url, url of the dashboard that was snapshotted\n */\n originalUrl: string;\n /**\n * Unique identifier of the snapshot\n */\n id: number;\n /**\n * Optional, defined the unique key of the snapshot, required if external is true\n */\n key: string;\n /**\n * Optional, name of the snapshot\n */\n name: string;\n /**\n * org id of the snapshot\n */\n orgId: number;\n /**\n * last time when the snapshot was updated\n */\n updated: string;\n /**\n * url of the snapshot, if snapshot was shared internally\n */\n url?: string;\n /**\n * user id of the snapshot creator\n */\n userId: number;\n };\n /**\n * Tags associated with dashboard.\n */\n tags?: Array<string>;\n /**\n * Configured template variables\n */\n templating?: {\n /**\n * List of configured template variables with their saved values along with some other metadata\n */\n list?: Array<VariableModel>;\n };\n /**\n * Time range for dashboard.\n * Accepted values are relative time strings like {from: 'now-6h', to: 'now'} or absolute time strings like {from: '2020-07-10T08:00:00.000Z', to: '2020-07-10T14:00:00.000Z'}.\n */\n time?: {\n from: string;\n to: string;\n };\n /**\n * Configuration of the time picker shown at the top of a dashboard.\n */\n timepicker?: TimePickerConfig;\n /**\n * Timezone of dashboard. Accepted values are IANA TZDB zone ID or \"browser\" or \"utc\".\n */\n timezone?: string;\n /**\n * Title of dashboard.\n */\n title?: string;\n /**\n * Unique dashboard identifier that can be generated by anyone. string (8-40)\n */\n uid?: string;\n /**\n * Version of the dashboard, incremented each time the dashboard is updated.\n */\n version?: number;\n /**\n * Day when the week starts. Expressed by the name of the day in lowercase, e.g. \"monday\".\n */\n weekStart?: string;\n}\n\nexport const defaultDashboard: Partial<Dashboard> = {\n editable: true,\n fiscalYearStartMonth: 0,\n graphTooltip: DashboardCursorSync.Off,\n links: [],\n panels: [],\n schemaVersion: 42,\n tags: [],\n timezone: 'browser',\n};\n"],"names":["VariableRefresh","VariableHide","VariableSort","FieldColorModeId","ThresholdsMode","MappingType","SpecialValueMatch","DashboardCursorSync"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard_types.gen.mjs","sources":["../../../../../src/raw/dashboard/x/dashboard_types.gen.ts"],"sourcesContent":["// Code generated - EDITING IS FUTILE. DO NOT EDIT.\n//\n// Generated by:\n// kinds/gen.go\n// Using jennies:\n// TSTypesJenny\n// LatestMajorsOrXJenny\n//\n// Run 'make gen-cue' from repository root to regenerate.\n\n/**\n * TODO: this should be a regular DataQuery that depends on the selected dashboard\n * these match the properties of the \"grafana\" datasouce that is default in most dashboards\n */\nexport interface AnnotationTarget {\n /**\n * Only required/valid for the grafana datasource...\n * but code+tests is already depending on it so hard to change\n */\n limit: number;\n /**\n * Only required/valid for the grafana datasource...\n * but code+tests is already depending on it so hard to change\n */\n matchAny: boolean;\n /**\n * Only required/valid for the grafana datasource...\n * but code+tests is already depending on it so hard to change\n */\n tags: Array<string>;\n /**\n * Only required/valid for the grafana datasource...\n * but code+tests is already depending on it so hard to change\n */\n type: string;\n}\n\nexport const defaultAnnotationTarget: Partial<AnnotationTarget> = {\n tags: [],\n};\n\nexport interface AnnotationPanelFilter {\n /**\n * Should the specified panels be included or excluded\n */\n exclude?: boolean;\n /**\n * Panel IDs that should be included or excluded\n */\n ids: Array<number>;\n}\n\nexport const defaultAnnotationPanelFilter: Partial<AnnotationPanelFilter> = {\n exclude: false,\n ids: [],\n};\n\n/**\n * Contains the list of annotations that are associated with the dashboard.\n * Annotations are used to overlay event markers and overlay event tags on graphs.\n * Grafana comes with a native annotation store and the ability to add annotation events directly from the graph panel or via the HTTP API.\n * See https://grafana.com/docs/grafana/latest/dashboards/build-dashboards/annotate-visualizations/\n */\nexport interface AnnotationContainer {\n /**\n * List of annotations\n */\n list?: Array<AnnotationQuery>;\n}\n\nexport const defaultAnnotationContainer: Partial<AnnotationContainer> = {\n list: [],\n};\n\n/**\n * TODO docs\n * FROM: AnnotationQuery in grafana-data/src/types/annotations.ts\n */\nexport interface AnnotationQuery {\n /**\n * Set to 1 for the standard annotation query all dashboards have by default.\n */\n builtIn?: number;\n /**\n * Datasource where the annotations data is\n */\n datasource: DataSourceRef;\n /**\n * When enabled the annotation query is issued with every dashboard refresh\n */\n enable: boolean;\n /**\n * Filters to apply when fetching annotations\n */\n filter?: AnnotationPanelFilter;\n /**\n * Annotation queries can be toggled on or off at the top of the dashboard.\n * When hide is true, the toggle is not shown in the dashboard.\n */\n hide?: boolean;\n /**\n * Color to use for the annotation event markers\n */\n iconColor: string;\n /**\n * Name of annotation.\n */\n name: string;\n /**\n * Placement can be used to display the annotation query somewhere else on the dashboard other than the default location.\n */\n placement?: AnnotationQueryPlacement;\n /**\n * TODO.. this should just be a normal query target\n */\n target?: AnnotationTarget;\n /**\n * TODO -- this should not exist here, it is based on the --grafana-- datasource\n */\n type?: string;\n}\n\nexport const defaultAnnotationQuery: Partial<AnnotationQuery> = {\n builtIn: 0,\n enable: true,\n hide: false,\n};\n\n/**\n * A variable is a placeholder for a value. You can use variables in metric queries and in panel titles.\n */\nexport interface VariableModel {\n /**\n * Custom all value\n */\n allValue?: string;\n /**\n * Allow custom values to be entered in the variable\n */\n allowCustomValue?: boolean;\n /**\n * Shows current selected variable text/value on the dashboard\n */\n current?: VariableOption;\n /**\n * Data source used to fetch values for a variable. It can be defined but `null`.\n */\n datasource?: DataSourceRef;\n /**\n * Description of variable. It can be defined but `null`.\n */\n description?: string;\n /**\n * Visibility configuration for the variable\n */\n hide?: VariableHide;\n /**\n * Whether all value option is available or not\n */\n includeAll?: boolean;\n /**\n * Optional display name\n */\n label?: string;\n /**\n * Whether multiple values can be selected or not from variable value list\n */\n multi?: boolean;\n /**\n * Name of variable\n */\n name: string;\n /**\n * Options that can be selected for a variable.\n */\n options?: Array<VariableOption>;\n /**\n * Query used to fetch values for a variable\n */\n query?: (string | Record<string, unknown>);\n /**\n * Options to config when to refresh a variable\n */\n refresh?: VariableRefresh;\n /**\n * Optional field, if you want to extract part of a series name or metric node segment.\n * Named capture groups can be used to separate the display text and value.\n */\n regex?: string;\n /**\n * Determine whether regex applies to variable value or display text\n */\n regexApplyTo?: VariableRegexApplyTo;\n /**\n * Whether the variable value should be managed by URL query params or not\n */\n skipUrlSync?: boolean;\n /**\n * Options sort order\n */\n sort?: VariableSort;\n /**\n * Additional static options for query variable\n */\n staticOptions?: Array<VariableOption>;\n /**\n * Ordering of static options in relation to options returned from data source for query variable\n */\n staticOptionsOrder?: ('before' | 'after' | 'sorted');\n /**\n * Type of variable\n */\n type: VariableType;\n /**\n * Optional, indicates whether a custom type variable uses CSV or JSON to define its values\n */\n valuesFormat?: ('csv' | 'json');\n}\n\nexport const defaultVariableModel: Partial<VariableModel> = {\n allowCustomValue: true,\n includeAll: false,\n multi: false,\n options: [],\n skipUrlSync: false,\n staticOptions: [],\n valuesFormat: 'csv',\n};\n\n/**\n * Option to be selected in a variable.\n */\nexport interface VariableOption {\n /**\n * Whether the option is selected or not\n */\n selected?: boolean;\n /**\n * Text to be displayed for the option\n */\n text: (string | Array<string>);\n /**\n * Value of the option\n */\n value: (string | Array<string>);\n}\n\n/**\n * Options to config when to refresh a variable\n * `0`: Never refresh the variable\n * `1`: Queries the data source every time the dashboard loads.\n * `2`: Queries the data source when the dashboard time range changes.\n */\nexport enum VariableRefresh {\n never = 0,\n onDashboardLoad = 1,\n onTimeRangeChanged = 2,\n}\n\n/**\n * Determine if the variable shows on dashboard\n * Accepted values are 0 (show label and value), 1 (show value only), 2 (show nothing), 3 (show under the controls dropdown menu).\n */\nexport enum VariableHide {\n dontHide = 0,\n hideLabel = 1,\n hideVariable = 2,\n inControlsMenu = 3,\n}\n\n/**\n * Determine whether regex applies to variable value or display text\n * Accepted values are \"value\" (apply to value used in queries) or \"text\" (apply to display text shown to users)\n */\nexport type VariableRegexApplyTo = ('value' | 'text');\n\n/**\n * Sort variable options\n * Accepted values are:\n * `0`: No sorting\n * `1`: Alphabetical ASC\n * `2`: Alphabetical DESC\n * `3`: Numerical ASC\n * `4`: Numerical DESC\n * `5`: Alphabetical Case Insensitive ASC\n * `6`: Alphabetical Case Insensitive DESC\n * `7`: Natural ASC\n * `8`: Natural DESC\n */\nexport enum VariableSort {\n alphabeticalAsc = 1,\n alphabeticalCaseInsensitiveAsc = 5,\n alphabeticalCaseInsensitiveDesc = 6,\n alphabeticalDesc = 2,\n disabled = 0,\n naturalAsc = 7,\n naturalDesc = 8,\n numericalAsc = 3,\n numericalDesc = 4,\n}\n\n/**\n * Ref to a DataSource instance\n */\nexport interface DataSourceRef {\n /**\n * The plugin type-id\n */\n type?: string;\n /**\n * Specific datasource instance\n */\n uid?: string;\n}\n\n/**\n * Links with references to other dashboards or external resources\n */\nexport interface DashboardLink {\n /**\n * If true, all dashboards links will be displayed in a dropdown. If false, all dashboards links will be displayed side by side. Only valid if the type is dashboards\n */\n asDropdown: boolean;\n /**\n * Icon name to be displayed with the link\n */\n icon: string;\n /**\n * If true, includes current template variables values in the link as query params\n */\n includeVars: boolean;\n /**\n * If true, includes current time range in the link as query params\n */\n keepTime: boolean;\n /**\n * Placement can be used to display the link somewhere else on the dashboard other than above the visualisations.\n */\n placement?: DashboardLinkPlacement;\n /**\n * List of tags to limit the linked dashboards. If empty, all dashboards will be displayed. Only valid if the type is dashboards\n */\n tags: Array<string>;\n /**\n * If true, the link will be opened in a new tab\n */\n targetBlank: boolean;\n /**\n * Title to display with the link\n */\n title: string;\n /**\n * Tooltip to display when the user hovers their mouse over it\n */\n tooltip: string;\n /**\n * Link type. Accepted values are dashboards (to refer to another dashboard) and link (to refer to an external resource)\n */\n type: DashboardLinkType;\n /**\n * Link URL. Only required/valid if the type is link\n */\n url?: string;\n}\n\nexport const defaultDashboardLink: Partial<DashboardLink> = {\n asDropdown: false,\n includeVars: false,\n keepTime: false,\n tags: [],\n targetBlank: false,\n};\n\n/**\n * Dashboard Link type. Accepted values are dashboards (to refer to another dashboard) and link (to refer to an external resource)\n */\nexport type DashboardLinkType = ('link' | 'dashboards');\n\n/**\n * Dashboard Link placement. Defines where the link should be displayed.\n * - \"inControlsMenu\" renders the link in bottom part of the dashboard controls dropdown menu\n */\nexport type DashboardLinkPlacement = 'inControlsMenu';\n\n/**\n * Annotation Query placement. Defines where the annotation query should be displayed.\n * - \"inControlsMenu\" renders the annotation query in the dashboard controls dropdown menu\n */\nexport type AnnotationQueryPlacement = 'inControlsMenu';\n\n/**\n * Dashboard action type\n */\nexport type ActionType = ('fetch' | 'infinity');\n\n/**\n * Fetch options\n */\nexport interface FetchOptions {\n body?: string;\n headers?: Array<Array<string>>;\n method: HttpRequestMethod;\n /**\n * These are 2D arrays of strings, each representing a key-value pair\n * We are defining this way because we can't generate a go struct that\n * that would have exactly two strings in each sub-array\n */\n queryParams?: Array<Array<string>>;\n url: string;\n}\n\nexport const defaultFetchOptions: Partial<FetchOptions> = {\n headers: [],\n queryParams: [],\n};\n\n/**\n * Infinity options\n */\nexport interface InfinityOptions {\n body?: string;\n datasourceUid: string;\n headers?: Array<Array<string>>;\n method: HttpRequestMethod;\n /**\n * These are 2D arrays of strings, each representing a key-value pair\n * We are defining them this way because we can't generate a go struct that\n * that would have exactly two strings in each sub-array\n */\n queryParams?: Array<Array<string>>;\n url: string;\n}\n\nexport const defaultInfinityOptions: Partial<InfinityOptions> = {\n headers: [],\n queryParams: [],\n};\n\nexport type HttpRequestMethod = ('GET' | 'PUT' | 'POST' | 'DELETE' | 'PATCH');\n\n/**\n * Action variable type\n */\nexport type ActionVariableType = 'string';\n\nexport interface ActionVariable {\n key: string;\n name: string;\n type: ActionVariableType;\n}\n\n/**\n * Dashboard action\n */\nexport interface Action {\n confirmation?: string;\n fetch?: FetchOptions;\n infinity?: InfinityOptions;\n oneClick?: boolean;\n style?: {\n backgroundColor?: string;\n };\n title: string;\n type: ActionType;\n variables?: Array<ActionVariable>;\n}\n\nexport const defaultAction: Partial<Action> = {\n variables: [],\n};\n\n/**\n * Dashboard variable type\n * `query`: Query-generated list of values such as metric names, server names, sensor IDs, data centers, and so on.\n * `adhoc`: Key/value filters that are automatically added to all metric queries for a data source (Prometheus, Loki, InfluxDB, and Elasticsearch only).\n * `constant`: \tDefine a hidden constant.\n * `datasource`: Quickly change the data source for an entire dashboard.\n * `interval`: Interval variables represent time spans.\n * `textbox`: Display a free text input field with an optional default value.\n * `custom`: Define the variable options manually using a comma-separated list.\n * `system`: Variables defined by Grafana. See: https://grafana.com/docs/grafana/latest/dashboards/variables/add-template-variables/#global-variables\n * `switch`: Boolean variables rendered as a switch\n */\nexport type VariableType = ('query' | 'adhoc' | 'groupby' | 'constant' | 'datasource' | 'interval' | 'textbox' | 'custom' | 'system' | 'snapshot' | 'switch');\n\n/**\n * Color mode for a field. You can specify a single color, or select a continuous (gradient) color schemes, based on a value.\n * Continuous color interpolates a color using the percentage of a value relative to min and max.\n * Accepted values are:\n * `thresholds`: From thresholds. Informs Grafana to take the color from the matching threshold\n * `palette-classic`: Classic palette. Grafana will assign color by looking up a color in a palette by series index. Useful for Graphs and pie charts and other categorical data visualizations\n * `palette-classic-by-name`: Classic palette (by name). Grafana will assign color by looking up a color in a palette by series name. Useful for Graphs and pie charts and other categorical data visualizations\n * `continuous-viridis`: Continuous Viridis palette mode\n * `continuous-magma`: Continuous Magma palette mode\n * `continuous-plasma`: Continuous Plasma palette mode\n * `continuous-inferno`: Continuous Inferno palette mode\n * `continuous-cividis`: Continuous Cividis palette mode\n * `continuous-GrYlRd`: Continuous Green-Yellow-Red palette mode\n * `continuous-RdYlGr`: Continuous Red-Yellow-Green palette mode\n * `continuous-BlYlRd`: Continuous Blue-Yellow-Red palette mode\n * `continuous-YlRd`: Continuous Yellow-Red palette mode\n * `continuous-BlPu`: Continuous Blue-Purple palette mode\n * `continuous-YlBl`: Continuous Yellow-Blue palette mode\n * `continuous-blues`: Continuous Blue palette mode\n * `continuous-reds`: Continuous Red palette mode\n * `continuous-greens`: Continuous Green palette mode\n * `continuous-purples`: Continuous Purple palette mode\n * `shades`: Shades of a single color. Specify a single color, useful in an override rule.\n * `fixed`: Fixed color mode. Specify a single color, useful in an override rule.\n */\nexport enum FieldColorModeId {\n ContinuousBlPu = 'continuous-BlPu',\n ContinuousBlYlRd = 'continuous-BlYlRd',\n ContinuousBlues = 'continuous-blues',\n ContinuousCividis = 'continuous-cividis',\n ContinuousGrYlRd = 'continuous-GrYlRd',\n ContinuousGreens = 'continuous-greens',\n ContinuousInferno = 'continuous-inferno',\n ContinuousMagma = 'continuous-magma',\n ContinuousPlasma = 'continuous-plasma',\n ContinuousPurples = 'continuous-purples',\n ContinuousRdYlGr = 'continuous-RdYlGr',\n ContinuousReds = 'continuous-reds',\n ContinuousViridis = 'continuous-viridis',\n ContinuousYlBl = 'continuous-YlBl',\n ContinuousYlRd = 'continuous-YlRd',\n Fixed = 'fixed',\n PaletteClassic = 'palette-classic',\n PaletteClassicByName = 'palette-classic-by-name',\n Shades = 'shades',\n Thresholds = 'thresholds',\n}\n\n/**\n * Defines how to assign a series color from \"by value\" color schemes. For example for an aggregated data points like a timeseries, the color can be assigned by the min, max or last value.\n */\nexport type FieldColorSeriesByMode = ('min' | 'max' | 'last');\n\n/**\n * Map a field to a color.\n */\nexport interface FieldColor {\n /**\n * The fixed color value for fixed or shades color modes.\n */\n fixedColor?: string;\n /**\n * The main color scheme mode.\n */\n mode: FieldColorModeId;\n /**\n * Some visualizations need to know how to assign a series color from by value color schemes.\n */\n seriesBy?: FieldColorSeriesByMode;\n}\n\n/**\n * Position and dimensions of a panel in the grid\n */\nexport interface GridPos {\n /**\n * Panel height. The height is the number of rows from the top edge of the panel.\n */\n h: number;\n /**\n * Whether the panel is fixed within the grid. If true, the panel will not be affected by other panels' interactions\n */\n static?: boolean;\n /**\n * Panel width. The width is the number of columns from the left edge of the panel.\n */\n w: number;\n /**\n * Panel x. The x coordinate is the number of columns from the left edge of the grid\n */\n x: number;\n /**\n * Panel y. The y coordinate is the number of rows from the top edge of the grid\n */\n y: number;\n}\n\nexport const defaultGridPos: Partial<GridPos> = {\n h: 9,\n w: 12,\n x: 0,\n y: 0,\n};\n\n/**\n * User-defined value for a metric that triggers visual changes in a panel when this value is met or exceeded\n * They are used to conditionally style and color visualizations based on query results , and can be applied to most visualizations.\n */\nexport interface Threshold {\n /**\n * Color represents the color of the visual change that will occur in the dashboard when the threshold value is met or exceeded.\n */\n color: string;\n /**\n * Value represents a specified metric for the threshold, which triggers a visual change in the dashboard when this value is met or exceeded.\n * Nulls currently appear here when serializing -Infinity to JSON.\n */\n value: (number | null);\n}\n\n/**\n * Thresholds can either be `absolute` (specific number) or `percentage` (relative to min or max, it will be values between 0 and 1).\n */\nexport enum ThresholdsMode {\n Absolute = 'absolute',\n Percentage = 'percentage',\n}\n\n/**\n * Thresholds configuration for the panel\n */\nexport interface ThresholdsConfig {\n /**\n * Thresholds mode.\n */\n mode: ThresholdsMode;\n /**\n * Must be sorted by 'value', first value is always -Infinity\n */\n steps: Array<Threshold>;\n}\n\nexport const defaultThresholdsConfig: Partial<ThresholdsConfig> = {\n steps: [],\n};\n\n/**\n * Allow to transform the visual representation of specific data values in a visualization, irrespective of their original units\n */\nexport type ValueMapping = (ValueMap | RangeMap | RegexMap | SpecialValueMap);\n\n/**\n * Supported value mapping types\n * `value`: Maps text values to a color or different display text and color. For example, you can configure a value mapping so that all instances of the value 10 appear as Perfection! rather than the number.\n * `range`: Maps numerical ranges to a display text and color. For example, if a value is within a certain range, you can configure a range value mapping to display Low or High rather than the number.\n * `regex`: Maps regular expressions to replacement text and a color. For example, if a value is www.example.com, you can configure a regex value mapping so that Grafana displays www and truncates the domain.\n * `special`: Maps special values like Null, NaN (not a number), and boolean values like true and false to a display text and color. See SpecialValueMatch to see the list of special values. For example, you can configure a special value mapping so that null values appear as N/A.\n */\nexport enum MappingType {\n RangeToText = 'range',\n RegexToText = 'regex',\n SpecialValue = 'special',\n ValueToText = 'value',\n}\n\n/**\n * Maps text values to a color or different display text and color.\n * For example, you can configure a value mapping so that all instances of the value 10 appear as Perfection! rather than the number.\n */\nexport interface ValueMap {\n /**\n * Map with <value_to_match>: ValueMappingResult. For example: { \"10\": { text: \"Perfection!\", color: \"green\" } }\n */\n options: Record<string, ValueMappingResult>;\n type: MappingType.ValueToText;\n}\n\n/**\n * Maps numerical ranges to a display text and color.\n * For example, if a value is within a certain range, you can configure a range value mapping to display Low or High rather than the number.\n */\nexport interface RangeMap {\n /**\n * Range to match against and the result to apply when the value is within the range\n */\n options: {\n /**\n * Min value of the range. It can be null which means -Infinity\n */\n from: (number | null);\n /**\n * Max value of the range. It can be null which means +Infinity\n */\n to: (number | null);\n /**\n * Config to apply when the value is within the range\n */\n result: ValueMappingResult;\n };\n type: MappingType.RangeToText;\n}\n\n/**\n * Maps regular expressions to replacement text and a color.\n * For example, if a value is www.example.com, you can configure a regex value mapping so that Grafana displays www and truncates the domain.\n */\nexport interface RegexMap {\n /**\n * Regular expression to match against and the result to apply when the value matches the regex\n */\n options: {\n /**\n * Regular expression to match against\n */\n pattern: string;\n /**\n * Config to apply when the value matches the regex\n */\n result: ValueMappingResult;\n };\n type: MappingType.RegexToText;\n}\n\n/**\n * Maps special values like Null, NaN (not a number), and boolean values like true and false to a display text and color.\n * See SpecialValueMatch to see the list of special values.\n * For example, you can configure a special value mapping so that null values appear as N/A.\n */\nexport interface SpecialValueMap {\n options: {\n /**\n * Special value to match against\n */\n match: SpecialValueMatch;\n /**\n * Config to apply when the value matches the special value\n */\n result: ValueMappingResult;\n };\n type: MappingType.SpecialValue;\n}\n\n/**\n * Special value types supported by the `SpecialValueMap`\n */\nexport enum SpecialValueMatch {\n Empty = 'empty',\n False = 'false',\n NaN = 'nan',\n Null = 'null',\n NullAndNan = 'null+nan',\n True = 'true',\n}\n\n/**\n * Result used as replacement with text and color when the value matches\n */\nexport interface ValueMappingResult {\n /**\n * Text to use when the value matches\n */\n color?: string;\n /**\n * Icon to display when the value matches. Only specific visualizations.\n */\n icon?: string;\n /**\n * Position in the mapping array. Only used internally.\n */\n index?: number;\n /**\n * Text to display when the value matches\n */\n text?: string;\n}\n\n/**\n * Transformations allow to manipulate data returned by a query before the system applies a visualization.\n * Using transformations you can: rename fields, join time series data, perform mathematical operations across queries,\n * use the output of one transformation as the input to another transformation, etc.\n */\nexport interface DataTransformerConfig {\n /**\n * Disabled transformations are skipped\n */\n disabled?: boolean;\n /**\n * Optional frame matcher. When missing it will be applied to all results\n */\n filter?: MatcherConfig;\n /**\n * Unique identifier of transformer\n */\n id: string;\n /**\n * Options to be passed to the transformer\n * Valid options depend on the transformer id\n */\n options: unknown;\n /**\n * Where to pull DataFrames from as input to transformation\n */\n topic?: ('series' | 'annotations' | 'alertStates'); // replaced with common.DataTopic\n}\n\n/**\n * Counterpart for TypeScript's TimeOption type.\n */\nexport interface TimeOption {\n display: string;\n from: string;\n to: string;\n}\n\n/**\n * Time picker configuration\n * It defines the default config for the time picker and the refresh picker for the specific dashboard.\n */\nexport interface TimePickerConfig {\n /**\n * Whether timepicker is visible or not.\n */\n hidden?: boolean;\n /**\n * Override the now time by entering a time delay. Use this option to accommodate known delays in data aggregation to avoid null values.\n */\n nowDelay?: string;\n /**\n * Quick ranges for time picker.\n */\n quick_ranges?: Array<TimeOption>;\n /**\n * Interval options available in the refresh picker dropdown.\n */\n refresh_intervals?: Array<string>;\n}\n\nexport const defaultTimePickerConfig: Partial<TimePickerConfig> = {\n hidden: false,\n quick_ranges: [],\n refresh_intervals: ['5s', '10s', '30s', '1m', '5m', '15m', '30m', '1h', '2h', '1d'],\n};\n\n/**\n * 0 for no shared crosshair or tooltip (default).\n * 1 for shared crosshair.\n * 2 for shared crosshair AND shared tooltip.\n */\nexport enum DashboardCursorSync {\n Crosshair = 1,\n Off = 0,\n Tooltip = 2,\n}\n\nexport const defaultDashboardCursorSync: DashboardCursorSync = DashboardCursorSync.Off;\n\n/**\n * Dashboard panels are the basic visualization building blocks.\n */\nexport interface Panel {\n /**\n * When a panel is migrated from a previous version (Angular to React), this field is set to the original panel type.\n * This is used to determine the original panel type when migrating to a new version so the plugin migration can be applied.\n */\n autoMigrateFrom?: string;\n /**\n * Sets panel queries cache timeout.\n */\n cacheTimeout?: string;\n /**\n * The datasource used in all targets.\n */\n datasource?: DataSourceRef;\n /**\n * Panel description.\n */\n description?: string;\n /**\n * Field options allow you to change how the data is displayed in your visualizations.\n */\n fieldConfig?: FieldConfigSource;\n /**\n * Grid position.\n */\n gridPos?: GridPos;\n /**\n * Controls if the timeFrom or timeShift overrides are shown in the panel header\n */\n hideTimeOverride?: boolean;\n /**\n * Unique identifier of the panel. Generated by Grafana when creating a new panel. It must be unique within a dashboard, but not globally.\n */\n id?: number;\n /**\n * The min time interval setting defines a lower limit for the $__interval and $__interval_ms variables.\n * This value must be formatted as a number followed by a valid time\n * identifier like: \"40s\", \"3d\", etc.\n * See: https://grafana.com/docs/grafana/latest/panels-visualizations/query-transform-data/#query-options\n */\n interval?: string;\n /**\n * Dynamically load the panel\n */\n libraryPanel?: LibraryPanelRef;\n /**\n * Panel links.\n */\n links?: Array<DashboardLink>;\n /**\n * The maximum number of data points that the panel queries are retrieving.\n */\n maxDataPoints?: number;\n /**\n * Option for repeated panels that controls max items per row\n * Only relevant for horizontally repeated panels\n */\n maxPerRow?: number;\n /**\n * It depends on the panel plugin. They are specified by the Options field in panel plugin schemas.\n */\n options?: Record<string, unknown>;\n /**\n * The version of the plugin that is used for this panel. This is used to find the plugin to display the panel and to migrate old panel configs.\n */\n pluginVersion?: string;\n /**\n * Overrides the data source configured time-to-live for a query cache item in milliseconds\n */\n queryCachingTTL?: number;\n /**\n * Name of template variable to repeat for.\n */\n repeat?: string;\n /**\n * Direction to repeat in if 'repeat' is set.\n * `h` for horizontal, `v` for vertical.\n */\n repeatDirection?: ('h' | 'v');\n /**\n * Depends on the panel plugin. See the plugin documentation for details.\n */\n targets?: Array<Record<string, unknown>>;\n /**\n * Compare the current time range with a previous period\n * For example \"1d\" to compare current period but shifted back 1 day\n */\n timeCompare?: string;\n /**\n * Overrides the relative time range for individual panels,\n * which causes them to be different than what is selected in\n * the dashboard time picker in the top-right corner of the dashboard. You can use this to show metrics from different\n * time periods or days on the same dashboard.\n * The value is formatted as time operation like: `now-5m` (Last 5 minutes), `now/d` (the day so far),\n * `now-5d/d`(Last 5 days), `now/w` (This week so far), `now-2y/y` (Last 2 years).\n * Note: Panel time overrides have no effect when the dashboard’s time range is absolute.\n * See: https://grafana.com/docs/grafana/latest/panels-visualizations/query-transform-data/#query-options\n */\n timeFrom?: string;\n /**\n * Overrides the time range for individual panels by shifting its start and end relative to the time picker.\n * For example, you can shift the time range for the panel to be two hours earlier than the dashboard time picker setting `2h`.\n * Note: Panel time overrides have no effect when the dashboard’s time range is absolute.\n * See: https://grafana.com/docs/grafana/latest/panels-visualizations/query-transform-data/#query-options\n */\n timeShift?: string;\n /**\n * Panel title.\n */\n title?: string;\n /**\n * List of transformations that are applied to the panel data before rendering.\n * When there are multiple transformations, Grafana applies them in the order they are listed.\n * Each transformation creates a result set that then passes on to the next transformation in the processing pipeline.\n */\n transformations?: Array<DataTransformerConfig>;\n /**\n * Whether to display the panel without a background.\n */\n transparent?: boolean;\n /**\n * The panel plugin type id. This is used to find the plugin to display the panel.\n */\n type: string;\n}\n\nexport const defaultPanel: Partial<Panel> = {\n links: [],\n repeatDirection: 'h',\n targets: [],\n transformations: [],\n transparent: false,\n};\n\n/**\n * The data model used in Grafana, namely the data frame, is a columnar-oriented table structure that unifies both time series and table query results.\n * Each column within this structure is called a field. A field can represent a single time series or table column.\n * Field options allow you to change how the data is displayed in your visualizations.\n */\nexport interface FieldConfigSource {\n /**\n * Defaults are the options applied to all fields.\n */\n defaults: FieldConfig;\n /**\n * Overrides are the options applied to specific fields overriding the defaults.\n */\n overrides: Array<{\n matcher: MatcherConfig;\n properties: Array<{\n id: string;\n value?: unknown;\n }>;\n }>;\n}\n\nexport const defaultFieldConfigSource: Partial<FieldConfigSource> = {\n overrides: [],\n};\n\n/**\n * A library panel is a reusable panel that you can use in any dashboard.\n * When you make a change to a library panel, that change propagates to all instances of where the panel is used.\n * Library panels streamline reuse of panels across multiple dashboards.\n */\nexport interface LibraryPanelRef {\n /**\n * Library panel name\n */\n name: string;\n /**\n * Library panel uid\n */\n uid: string;\n}\n\n/**\n * Matcher is a predicate configuration. Based on the config a set of field(s) or values is filtered in order to apply override / transformation.\n * It comes with in id ( to resolve implementation from registry) and a configuration that’s specific to a particular matcher type.\n */\nexport interface MatcherConfig {\n /**\n * The matcher id. This is used to find the matcher implementation from registry.\n */\n id: string;\n /**\n * The matcher options. This is specific to the matcher implementation.\n */\n options?: unknown;\n}\n\nexport const defaultMatcherConfig: Partial<MatcherConfig> = {\n id: '',\n};\n\n/**\n * The data model used in Grafana, namely the data frame, is a columnar-oriented table structure that unifies both time series and table query results.\n * Each column within this structure is called a field. A field can represent a single time series or table column.\n * Field options allow you to change how the data is displayed in your visualizations.\n */\nexport interface FieldConfig {\n /**\n * Define interactive HTTP requests that can be triggered from data visualizations.\n */\n actions?: Array<Action>;\n /**\n * Panel color configuration\n */\n color?: FieldColor;\n /**\n * custom is specified by the FieldConfig field\n * in panel plugin schemas.\n */\n custom?: Record<string, unknown>;\n /**\n * Specify the number of decimals Grafana includes in the rendered value.\n * If you leave this field blank, Grafana automatically truncates the number of decimals based on the value.\n * For example 1.1234 will display as 1.12 and 100.456 will display as 100.\n * To display all decimals, set the unit to `String`.\n */\n decimals?: number;\n /**\n * Human readable field metadata\n */\n description?: string;\n /**\n * The display value for this field. This supports template variables blank is auto\n */\n displayName?: string;\n /**\n * This can be used by data sources that return and explicit naming structure for values and labels\n * When this property is configured, this value is used rather than the default naming strategy.\n */\n displayNameFromDS?: string;\n /**\n * True if data source field supports ad-hoc filters\n */\n filterable?: boolean;\n /**\n * The behavior when clicking on a result\n */\n links?: Array<unknown>;\n /**\n * Convert input values into a display string\n */\n mappings?: Array<ValueMapping>;\n /**\n * The maximum value used in percentage threshold calculations. Leave blank for auto calculation based on all series and fields.\n */\n max?: number;\n /**\n * The minimum value used in percentage threshold calculations. Leave blank for auto calculation based on all series and fields.\n */\n min?: number;\n /**\n * Alternative to empty string\n */\n noValue?: string;\n /**\n * An explicit path to the field in the datasource. When the frame meta includes a path,\n * This will default to `${frame.meta.path}/${field.name}\n * \n * When defined, this value can be used as an identifier within the datasource scope, and\n * may be used to update the results\n */\n path?: string;\n /**\n * Map numeric values to states\n */\n thresholds?: ThresholdsConfig;\n /**\n * Unit a field should use. The unit you select is applied to all fields except time.\n * You can use the units ID availables in Grafana or a custom unit.\n * Available units in Grafana: https://github.com/grafana/grafana/blob/main/packages/grafana-data/src/valueFormats/categories.ts\n * As custom unit, you can use the following formats:\n * `suffix:<suffix>` for custom unit that should go after value.\n * `prefix:<prefix>` for custom unit that should go before value.\n * `time:<format>` For custom date time formats type for example `time:YYYY-MM-DD`.\n * `si:<base scale><unit characters>` for custom SI units. For example: `si: mF`. This one is a bit more advanced as you can specify both a unit and the source data scale. So if your source data is represented as milli (thousands of) something prefix the unit with that SI scale character.\n * `count:<unit>` for a custom count unit.\n * `currency:<unit>` for custom a currency unit.\n */\n unit?: string;\n /**\n * True if data source can write a value to the path. Auth/authz are supported separately\n */\n writeable?: boolean;\n}\n\nexport const defaultFieldConfig: Partial<FieldConfig> = {\n actions: [],\n links: [],\n mappings: [],\n};\n\n/**\n * Row panel\n */\nexport interface RowPanel {\n /**\n * Whether this row should be collapsed or not.\n */\n collapsed: boolean;\n /**\n * Name of default datasource for the row\n */\n datasource?: DataSourceRef;\n /**\n * Row grid position\n */\n gridPos?: GridPos;\n /**\n * Unique identifier of the panel. Generated by Grafana when creating a new panel. It must be unique within a dashboard, but not globally.\n */\n id: number;\n /**\n * List of panels in the row\n */\n panels: Array<Panel>;\n /**\n * Name of template variable to repeat for.\n */\n repeat?: string;\n /**\n * Row title\n */\n title?: string;\n /**\n * The panel type\n */\n type: 'row';\n}\n\nexport const defaultRowPanel: Partial<RowPanel> = {\n collapsed: false,\n panels: [],\n};\n\nexport interface Dashboard {\n /**\n * Contains the list of annotations that are associated with the dashboard.\n * Annotations are used to overlay event markers and overlay event tags on graphs.\n * Grafana comes with a native annotation store and the ability to add annotation events directly from the graph panel or via the HTTP API.\n * See https://grafana.com/docs/grafana/latest/dashboards/build-dashboards/annotate-visualizations/\n */\n annotations?: AnnotationContainer;\n /**\n * Description of dashboard.\n */\n description?: string;\n /**\n * Whether a dashboard is editable or not.\n */\n editable?: boolean;\n /**\n * The month that the fiscal year starts on. 0 = January, 11 = December\n */\n fiscalYearStartMonth?: number;\n /**\n * ID of a dashboard imported from the https://grafana.com/grafana/dashboards/ portal\n */\n gnetId?: string;\n /**\n * Configuration of dashboard cursor sync behavior.\n * Accepted values are 0 (sync turned off), 1 (shared crosshair), 2 (shared crosshair and tooltip).\n */\n graphTooltip?: DashboardCursorSync;\n /**\n * Unique numeric identifier for the dashboard.\n * `id` is internal to a specific Grafana instance. `uid` should be used to identify a dashboard across Grafana instances.\n */\n id?: (number | null); // TODO eliminate this null option\n /**\n * Links with references to other dashboards or external websites.\n */\n links?: Array<DashboardLink>;\n /**\n * When set to true, the dashboard will redraw panels at an interval matching the pixel width.\n * This will keep data \"moving left\" regardless of the query refresh rate. This setting helps\n * avoid dashboards presenting stale live data\n */\n liveNow?: boolean;\n /**\n * List of dashboard panels\n */\n panels?: Array<(Panel | RowPanel)>;\n /**\n * When set to true, the dashboard will load all panels in the dashboard when it's loaded.\n */\n preload?: boolean;\n /**\n * Refresh rate of dashboard. Represented via interval string, e.g. \"5s\", \"1m\", \"1h\", \"1d\".\n */\n refresh?: string;\n /**\n * This property should only be used in dashboards defined by plugins. It is a quick check\n * to see if the version has changed since the last time.\n */\n revision?: number;\n /**\n * Version of the JSON schema, incremented each time a Grafana update brings\n * changes to said schema.\n */\n schemaVersion: number;\n /**\n * Snapshot options. They are present only if the dashboard is a snapshot.\n */\n snapshot?: {\n /**\n * Time when the snapshot was created\n */\n created: string;\n /**\n * Time when the snapshot expires, default is never to expire\n */\n expires: string;\n /**\n * Is the snapshot saved in an external grafana instance\n */\n external: boolean;\n /**\n * external url, if snapshot was shared in external grafana instance\n */\n externalUrl: string;\n /**\n * original url, url of the dashboard that was snapshotted\n */\n originalUrl: string;\n /**\n * Unique identifier of the snapshot\n */\n id: number;\n /**\n * Optional, defined the unique key of the snapshot, required if external is true\n */\n key: string;\n /**\n * Optional, name of the snapshot\n */\n name: string;\n /**\n * org id of the snapshot\n */\n orgId: number;\n /**\n * last time when the snapshot was updated\n */\n updated: string;\n /**\n * url of the snapshot, if snapshot was shared internally\n */\n url?: string;\n /**\n * user id of the snapshot creator\n */\n userId: number;\n };\n /**\n * Tags associated with dashboard.\n */\n tags?: Array<string>;\n /**\n * Configured template variables\n */\n templating?: {\n /**\n * List of configured template variables with their saved values along with some other metadata\n */\n list?: Array<VariableModel>;\n };\n /**\n * Time range for dashboard.\n * Accepted values are relative time strings like {from: 'now-6h', to: 'now'} or absolute time strings like {from: '2020-07-10T08:00:00.000Z', to: '2020-07-10T14:00:00.000Z'}.\n */\n time?: {\n from: string;\n to: string;\n };\n /**\n * Configuration of the time picker shown at the top of a dashboard.\n */\n timepicker?: TimePickerConfig;\n /**\n * Timezone of dashboard. Accepted values are IANA TZDB zone ID or \"browser\" or \"utc\".\n */\n timezone?: string;\n /**\n * Title of dashboard.\n */\n title?: string;\n /**\n * Unique dashboard identifier that can be generated by anyone. string (8-40)\n */\n uid?: string;\n /**\n * Version of the dashboard, incremented each time the dashboard is updated.\n */\n version?: number;\n /**\n * Day when the week starts. Expressed by the name of the day in lowercase, e.g. \"monday\".\n */\n weekStart?: string;\n}\n\nexport const defaultDashboard: Partial<Dashboard> = {\n editable: true,\n fiscalYearStartMonth: 0,\n graphTooltip: DashboardCursorSync.Off,\n links: [],\n panels: [],\n schemaVersion: 42,\n tags: [],\n timezone: 'browser',\n};\n"],"names":["VariableRefresh","VariableHide","VariableSort","FieldColorModeId","ThresholdsMode","MappingType","SpecialValueMatch","DashboardCursorSync"],"mappings":"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"}
1
+ {"version":3,"file":"dashboard_types.gen.mjs","sources":["../../../../../src/raw/dashboard/x/dashboard_types.gen.ts"],"sourcesContent":["// Code generated - EDITING IS FUTILE. DO NOT EDIT.\n//\n// Generated by:\n// kinds/gen.go\n// Using jennies:\n// TSTypesJenny\n// LatestMajorsOrXJenny\n//\n// Run 'make gen-cue' from repository root to regenerate.\n\n/**\n * TODO: this should be a regular DataQuery that depends on the selected dashboard\n * these match the properties of the \"grafana\" datasouce that is default in most dashboards\n */\nexport interface AnnotationTarget {\n /**\n * Only required/valid for the grafana datasource...\n * but code+tests is already depending on it so hard to change\n */\n limit: number;\n /**\n * Only required/valid for the grafana datasource...\n * but code+tests is already depending on it so hard to change\n */\n matchAny: boolean;\n /**\n * Only required/valid for the grafana datasource...\n * but code+tests is already depending on it so hard to change\n */\n tags: Array<string>;\n /**\n * Only required/valid for the grafana datasource...\n * but code+tests is already depending on it so hard to change\n */\n type: string;\n}\n\nexport const defaultAnnotationTarget: Partial<AnnotationTarget> = {\n tags: [],\n};\n\nexport interface AnnotationPanelFilter {\n /**\n * Should the specified panels be included or excluded\n */\n exclude?: boolean;\n /**\n * Panel IDs that should be included or excluded\n */\n ids: Array<number>;\n}\n\nexport const defaultAnnotationPanelFilter: Partial<AnnotationPanelFilter> = {\n exclude: false,\n ids: [],\n};\n\n/**\n * Contains the list of annotations that are associated with the dashboard.\n * Annotations are used to overlay event markers and overlay event tags on graphs.\n * Grafana comes with a native annotation store and the ability to add annotation events directly from the graph panel or via the HTTP API.\n * See https://grafana.com/docs/grafana/latest/dashboards/build-dashboards/annotate-visualizations/\n */\nexport interface AnnotationContainer {\n /**\n * List of annotations\n */\n list?: Array<AnnotationQuery>;\n}\n\nexport const defaultAnnotationContainer: Partial<AnnotationContainer> = {\n list: [],\n};\n\n/**\n * TODO docs\n * FROM: AnnotationQuery in grafana-data/src/types/annotations.ts\n */\nexport interface AnnotationQuery {\n /**\n * Set to 1 for the standard annotation query all dashboards have by default.\n */\n builtIn?: number;\n /**\n * Datasource where the annotations data is\n */\n datasource: DataSourceRef;\n /**\n * When enabled the annotation query is issued with every dashboard refresh\n */\n enable: boolean;\n /**\n * Filters to apply when fetching annotations\n */\n filter?: AnnotationPanelFilter;\n /**\n * Annotation queries can be toggled on or off at the top of the dashboard.\n * When hide is true, the toggle is not shown in the dashboard.\n */\n hide?: boolean;\n /**\n * Color to use for the annotation event markers\n */\n iconColor: string;\n /**\n * Name of annotation.\n */\n name: string;\n /**\n * Placement can be used to display the annotation query somewhere else on the dashboard other than the default location.\n */\n placement?: AnnotationQueryPlacement;\n /**\n * TODO.. this should just be a normal query target\n */\n target?: AnnotationTarget;\n /**\n * TODO -- this should not exist here, it is based on the --grafana-- datasource\n */\n type?: string;\n}\n\nexport const defaultAnnotationQuery: Partial<AnnotationQuery> = {\n builtIn: 0,\n enable: true,\n hide: false,\n};\n\n/**\n * A variable is a placeholder for a value. You can use variables in metric queries and in panel titles.\n */\nexport interface VariableModel {\n /**\n * Custom all value\n */\n allValue?: string;\n /**\n * Allow custom values to be entered in the variable\n */\n allowCustomValue?: boolean;\n /**\n * Shows current selected variable text/value on the dashboard\n */\n current?: VariableOption;\n /**\n * Data source used to fetch values for a variable. It can be defined but `null`.\n */\n datasource?: DataSourceRef;\n /**\n * Description of variable. It can be defined but `null`.\n */\n description?: string;\n /**\n * Visibility configuration for the variable\n */\n hide?: VariableHide;\n /**\n * Whether all value option is available or not\n */\n includeAll?: boolean;\n /**\n * Optional display name\n */\n label?: string;\n /**\n * Whether multiple values can be selected or not from variable value list\n */\n multi?: boolean;\n /**\n * Name of variable\n */\n name: string;\n /**\n * Options that can be selected for a variable.\n */\n options?: Array<VariableOption>;\n /**\n * Query used to fetch values for a variable\n */\n query?: (string | Record<string, unknown>);\n /**\n * Options to config when to refresh a variable\n */\n refresh?: VariableRefresh;\n /**\n * Optional field, if you want to extract part of a series name or metric node segment.\n * Named capture groups can be used to separate the display text and value.\n */\n regex?: string;\n /**\n * Determine whether regex applies to variable value or display text\n */\n regexApplyTo?: VariableRegexApplyTo;\n /**\n * Whether the variable value should be managed by URL query params or not\n */\n skipUrlSync?: boolean;\n /**\n * Options sort order\n */\n sort?: VariableSort;\n /**\n * Additional static options for query variable\n */\n staticOptions?: Array<VariableOption>;\n /**\n * Ordering of static options in relation to options returned from data source for query variable\n */\n staticOptionsOrder?: ('before' | 'after' | 'sorted');\n /**\n * Type of variable\n */\n type: VariableType;\n /**\n * Optional, indicates whether a custom type variable uses CSV or JSON to define its values\n */\n valuesFormat?: ('csv' | 'json');\n}\n\nexport const defaultVariableModel: Partial<VariableModel> = {\n allowCustomValue: true,\n includeAll: false,\n multi: false,\n options: [],\n skipUrlSync: false,\n staticOptions: [],\n valuesFormat: 'csv',\n};\n\n/**\n * Option to be selected in a variable.\n */\nexport interface VariableOption {\n /**\n * Additional properties for multi-props variables\n */\n properties?: Record<string, string>;\n /**\n * Whether the option is selected or not\n */\n selected?: boolean;\n /**\n * Text to be displayed for the option\n */\n text: (string | Array<string>);\n /**\n * Value of the option\n */\n value: (string | Array<string>);\n}\n\n/**\n * Options to config when to refresh a variable\n * `0`: Never refresh the variable\n * `1`: Queries the data source every time the dashboard loads.\n * `2`: Queries the data source when the dashboard time range changes.\n */\nexport enum VariableRefresh {\n never = 0,\n onDashboardLoad = 1,\n onTimeRangeChanged = 2,\n}\n\n/**\n * Determine if the variable shows on dashboard\n * Accepted values are 0 (show label and value), 1 (show value only), 2 (show nothing), 3 (show under the controls dropdown menu).\n */\nexport enum VariableHide {\n dontHide = 0,\n hideLabel = 1,\n hideVariable = 2,\n inControlsMenu = 3,\n}\n\n/**\n * Determine whether regex applies to variable value or display text\n * Accepted values are \"value\" (apply to value used in queries) or \"text\" (apply to display text shown to users)\n */\nexport type VariableRegexApplyTo = ('value' | 'text');\n\n/**\n * Sort variable options\n * Accepted values are:\n * `0`: No sorting\n * `1`: Alphabetical ASC\n * `2`: Alphabetical DESC\n * `3`: Numerical ASC\n * `4`: Numerical DESC\n * `5`: Alphabetical Case Insensitive ASC\n * `6`: Alphabetical Case Insensitive DESC\n * `7`: Natural ASC\n * `8`: Natural DESC\n */\nexport enum VariableSort {\n alphabeticalAsc = 1,\n alphabeticalCaseInsensitiveAsc = 5,\n alphabeticalCaseInsensitiveDesc = 6,\n alphabeticalDesc = 2,\n disabled = 0,\n naturalAsc = 7,\n naturalDesc = 8,\n numericalAsc = 3,\n numericalDesc = 4,\n}\n\n/**\n * Ref to a DataSource instance\n */\nexport interface DataSourceRef {\n /**\n * The plugin type-id\n */\n type?: string;\n /**\n * Specific datasource instance\n */\n uid?: string;\n}\n\n/**\n * Links with references to other dashboards or external resources\n */\nexport interface DashboardLink {\n /**\n * If true, all dashboards links will be displayed in a dropdown. If false, all dashboards links will be displayed side by side. Only valid if the type is dashboards\n */\n asDropdown: boolean;\n /**\n * Icon name to be displayed with the link\n */\n icon: string;\n /**\n * If true, includes current template variables values in the link as query params\n */\n includeVars: boolean;\n /**\n * If true, includes current time range in the link as query params\n */\n keepTime: boolean;\n /**\n * Placement can be used to display the link somewhere else on the dashboard other than above the visualisations.\n */\n placement?: DashboardLinkPlacement;\n /**\n * List of tags to limit the linked dashboards. If empty, all dashboards will be displayed. Only valid if the type is dashboards\n */\n tags: Array<string>;\n /**\n * If true, the link will be opened in a new tab\n */\n targetBlank: boolean;\n /**\n * Title to display with the link\n */\n title: string;\n /**\n * Tooltip to display when the user hovers their mouse over it\n */\n tooltip: string;\n /**\n * Link type. Accepted values are dashboards (to refer to another dashboard) and link (to refer to an external resource)\n */\n type: DashboardLinkType;\n /**\n * Link URL. Only required/valid if the type is link\n */\n url?: string;\n}\n\nexport const defaultDashboardLink: Partial<DashboardLink> = {\n asDropdown: false,\n includeVars: false,\n keepTime: false,\n tags: [],\n targetBlank: false,\n};\n\n/**\n * Dashboard Link type. Accepted values are dashboards (to refer to another dashboard) and link (to refer to an external resource)\n */\nexport type DashboardLinkType = ('link' | 'dashboards');\n\n/**\n * Dashboard Link placement. Defines where the link should be displayed.\n * - \"inControlsMenu\" renders the link in bottom part of the dashboard controls dropdown menu\n */\nexport type DashboardLinkPlacement = 'inControlsMenu';\n\n/**\n * Annotation Query placement. Defines where the annotation query should be displayed.\n * - \"inControlsMenu\" renders the annotation query in the dashboard controls dropdown menu\n */\nexport type AnnotationQueryPlacement = 'inControlsMenu';\n\n/**\n * Dashboard action type\n */\nexport type ActionType = ('fetch' | 'infinity');\n\n/**\n * Fetch options\n */\nexport interface FetchOptions {\n body?: string;\n headers?: Array<Array<string>>;\n method: HttpRequestMethod;\n /**\n * These are 2D arrays of strings, each representing a key-value pair\n * We are defining this way because we can't generate a go struct that\n * that would have exactly two strings in each sub-array\n */\n queryParams?: Array<Array<string>>;\n url: string;\n}\n\nexport const defaultFetchOptions: Partial<FetchOptions> = {\n headers: [],\n queryParams: [],\n};\n\n/**\n * Infinity options\n */\nexport interface InfinityOptions {\n body?: string;\n datasourceUid: string;\n headers?: Array<Array<string>>;\n method: HttpRequestMethod;\n /**\n * These are 2D arrays of strings, each representing a key-value pair\n * We are defining them this way because we can't generate a go struct that\n * that would have exactly two strings in each sub-array\n */\n queryParams?: Array<Array<string>>;\n url: string;\n}\n\nexport const defaultInfinityOptions: Partial<InfinityOptions> = {\n headers: [],\n queryParams: [],\n};\n\nexport type HttpRequestMethod = ('GET' | 'PUT' | 'POST' | 'DELETE' | 'PATCH');\n\n/**\n * Action variable type\n */\nexport type ActionVariableType = 'string';\n\nexport interface ActionVariable {\n key: string;\n name: string;\n type: ActionVariableType;\n}\n\n/**\n * Dashboard action\n */\nexport interface Action {\n confirmation?: string;\n fetch?: FetchOptions;\n infinity?: InfinityOptions;\n oneClick?: boolean;\n style?: {\n backgroundColor?: string;\n };\n title: string;\n type: ActionType;\n variables?: Array<ActionVariable>;\n}\n\nexport const defaultAction: Partial<Action> = {\n variables: [],\n};\n\n/**\n * Dashboard variable type\n * `query`: Query-generated list of values such as metric names, server names, sensor IDs, data centers, and so on.\n * `adhoc`: Key/value filters that are automatically added to all metric queries for a data source (Prometheus, Loki, InfluxDB, and Elasticsearch only).\n * `constant`: \tDefine a hidden constant.\n * `datasource`: Quickly change the data source for an entire dashboard.\n * `interval`: Interval variables represent time spans.\n * `textbox`: Display a free text input field with an optional default value.\n * `custom`: Define the variable options manually using a comma-separated list.\n * `system`: Variables defined by Grafana. See: https://grafana.com/docs/grafana/latest/dashboards/variables/add-template-variables/#global-variables\n * `switch`: Boolean variables rendered as a switch\n */\nexport type VariableType = ('query' | 'adhoc' | 'groupby' | 'constant' | 'datasource' | 'interval' | 'textbox' | 'custom' | 'system' | 'snapshot' | 'switch');\n\n/**\n * Color mode for a field. You can specify a single color, or select a continuous (gradient) color schemes, based on a value.\n * Continuous color interpolates a color using the percentage of a value relative to min and max.\n * Accepted values are:\n * `thresholds`: From thresholds. Informs Grafana to take the color from the matching threshold\n * `palette-classic`: Classic palette. Grafana will assign color by looking up a color in a palette by series index. Useful for Graphs and pie charts and other categorical data visualizations\n * `palette-classic-by-name`: Classic palette (by name). Grafana will assign color by looking up a color in a palette by series name. Useful for Graphs and pie charts and other categorical data visualizations\n * `continuous-viridis`: Continuous Viridis palette mode\n * `continuous-magma`: Continuous Magma palette mode\n * `continuous-plasma`: Continuous Plasma palette mode\n * `continuous-inferno`: Continuous Inferno palette mode\n * `continuous-cividis`: Continuous Cividis palette mode\n * `continuous-GrYlRd`: Continuous Green-Yellow-Red palette mode\n * `continuous-RdYlGr`: Continuous Red-Yellow-Green palette mode\n * `continuous-BlYlRd`: Continuous Blue-Yellow-Red palette mode\n * `continuous-YlRd`: Continuous Yellow-Red palette mode\n * `continuous-BlPu`: Continuous Blue-Purple palette mode\n * `continuous-YlBl`: Continuous Yellow-Blue palette mode\n * `continuous-blues`: Continuous Blue palette mode\n * `continuous-reds`: Continuous Red palette mode\n * `continuous-greens`: Continuous Green palette mode\n * `continuous-purples`: Continuous Purple palette mode\n * `shades`: Shades of a single color. Specify a single color, useful in an override rule.\n * `fixed`: Fixed color mode. Specify a single color, useful in an override rule.\n */\nexport enum FieldColorModeId {\n ContinuousBlPu = 'continuous-BlPu',\n ContinuousBlYlRd = 'continuous-BlYlRd',\n ContinuousBlues = 'continuous-blues',\n ContinuousCividis = 'continuous-cividis',\n ContinuousGrYlRd = 'continuous-GrYlRd',\n ContinuousGreens = 'continuous-greens',\n ContinuousInferno = 'continuous-inferno',\n ContinuousMagma = 'continuous-magma',\n ContinuousPlasma = 'continuous-plasma',\n ContinuousPurples = 'continuous-purples',\n ContinuousRdYlGr = 'continuous-RdYlGr',\n ContinuousReds = 'continuous-reds',\n ContinuousViridis = 'continuous-viridis',\n ContinuousYlBl = 'continuous-YlBl',\n ContinuousYlRd = 'continuous-YlRd',\n Fixed = 'fixed',\n PaletteClassic = 'palette-classic',\n PaletteClassicByName = 'palette-classic-by-name',\n Shades = 'shades',\n Thresholds = 'thresholds',\n}\n\n/**\n * Defines how to assign a series color from \"by value\" color schemes. For example for an aggregated data points like a timeseries, the color can be assigned by the min, max or last value.\n */\nexport type FieldColorSeriesByMode = ('min' | 'max' | 'last');\n\n/**\n * Map a field to a color.\n */\nexport interface FieldColor {\n /**\n * The fixed color value for fixed or shades color modes.\n */\n fixedColor?: string;\n /**\n * The main color scheme mode.\n */\n mode: FieldColorModeId;\n /**\n * Some visualizations need to know how to assign a series color from by value color schemes.\n */\n seriesBy?: FieldColorSeriesByMode;\n}\n\n/**\n * Position and dimensions of a panel in the grid\n */\nexport interface GridPos {\n /**\n * Panel height. The height is the number of rows from the top edge of the panel.\n */\n h: number;\n /**\n * Whether the panel is fixed within the grid. If true, the panel will not be affected by other panels' interactions\n */\n static?: boolean;\n /**\n * Panel width. The width is the number of columns from the left edge of the panel.\n */\n w: number;\n /**\n * Panel x. The x coordinate is the number of columns from the left edge of the grid\n */\n x: number;\n /**\n * Panel y. The y coordinate is the number of rows from the top edge of the grid\n */\n y: number;\n}\n\nexport const defaultGridPos: Partial<GridPos> = {\n h: 9,\n w: 12,\n x: 0,\n y: 0,\n};\n\n/**\n * User-defined value for a metric that triggers visual changes in a panel when this value is met or exceeded\n * They are used to conditionally style and color visualizations based on query results , and can be applied to most visualizations.\n */\nexport interface Threshold {\n /**\n * Color represents the color of the visual change that will occur in the dashboard when the threshold value is met or exceeded.\n */\n color: string;\n /**\n * Value represents a specified metric for the threshold, which triggers a visual change in the dashboard when this value is met or exceeded.\n * Nulls currently appear here when serializing -Infinity to JSON.\n */\n value: (number | null);\n}\n\n/**\n * Thresholds can either be `absolute` (specific number) or `percentage` (relative to min or max, it will be values between 0 and 1).\n */\nexport enum ThresholdsMode {\n Absolute = 'absolute',\n Percentage = 'percentage',\n}\n\n/**\n * Thresholds configuration for the panel\n */\nexport interface ThresholdsConfig {\n /**\n * Thresholds mode.\n */\n mode: ThresholdsMode;\n /**\n * Must be sorted by 'value', first value is always -Infinity\n */\n steps: Array<Threshold>;\n}\n\nexport const defaultThresholdsConfig: Partial<ThresholdsConfig> = {\n steps: [],\n};\n\n/**\n * Allow to transform the visual representation of specific data values in a visualization, irrespective of their original units\n */\nexport type ValueMapping = (ValueMap | RangeMap | RegexMap | SpecialValueMap);\n\n/**\n * Supported value mapping types\n * `value`: Maps text values to a color or different display text and color. For example, you can configure a value mapping so that all instances of the value 10 appear as Perfection! rather than the number.\n * `range`: Maps numerical ranges to a display text and color. For example, if a value is within a certain range, you can configure a range value mapping to display Low or High rather than the number.\n * `regex`: Maps regular expressions to replacement text and a color. For example, if a value is www.example.com, you can configure a regex value mapping so that Grafana displays www and truncates the domain.\n * `special`: Maps special values like Null, NaN (not a number), and boolean values like true and false to a display text and color. See SpecialValueMatch to see the list of special values. For example, you can configure a special value mapping so that null values appear as N/A.\n */\nexport enum MappingType {\n RangeToText = 'range',\n RegexToText = 'regex',\n SpecialValue = 'special',\n ValueToText = 'value',\n}\n\n/**\n * Maps text values to a color or different display text and color.\n * For example, you can configure a value mapping so that all instances of the value 10 appear as Perfection! rather than the number.\n */\nexport interface ValueMap {\n /**\n * Map with <value_to_match>: ValueMappingResult. For example: { \"10\": { text: \"Perfection!\", color: \"green\" } }\n */\n options: Record<string, ValueMappingResult>;\n type: MappingType.ValueToText;\n}\n\n/**\n * Maps numerical ranges to a display text and color.\n * For example, if a value is within a certain range, you can configure a range value mapping to display Low or High rather than the number.\n */\nexport interface RangeMap {\n /**\n * Range to match against and the result to apply when the value is within the range\n */\n options: {\n /**\n * Min value of the range. It can be null which means -Infinity\n */\n from: (number | null);\n /**\n * Max value of the range. It can be null which means +Infinity\n */\n to: (number | null);\n /**\n * Config to apply when the value is within the range\n */\n result: ValueMappingResult;\n };\n type: MappingType.RangeToText;\n}\n\n/**\n * Maps regular expressions to replacement text and a color.\n * For example, if a value is www.example.com, you can configure a regex value mapping so that Grafana displays www and truncates the domain.\n */\nexport interface RegexMap {\n /**\n * Regular expression to match against and the result to apply when the value matches the regex\n */\n options: {\n /**\n * Regular expression to match against\n */\n pattern: string;\n /**\n * Config to apply when the value matches the regex\n */\n result: ValueMappingResult;\n };\n type: MappingType.RegexToText;\n}\n\n/**\n * Maps special values like Null, NaN (not a number), and boolean values like true and false to a display text and color.\n * See SpecialValueMatch to see the list of special values.\n * For example, you can configure a special value mapping so that null values appear as N/A.\n */\nexport interface SpecialValueMap {\n options: {\n /**\n * Special value to match against\n */\n match: SpecialValueMatch;\n /**\n * Config to apply when the value matches the special value\n */\n result: ValueMappingResult;\n };\n type: MappingType.SpecialValue;\n}\n\n/**\n * Special value types supported by the `SpecialValueMap`\n */\nexport enum SpecialValueMatch {\n Empty = 'empty',\n False = 'false',\n NaN = 'nan',\n Null = 'null',\n NullAndNan = 'null+nan',\n True = 'true',\n}\n\n/**\n * Result used as replacement with text and color when the value matches\n */\nexport interface ValueMappingResult {\n /**\n * Text to use when the value matches\n */\n color?: string;\n /**\n * Icon to display when the value matches. Only specific visualizations.\n */\n icon?: string;\n /**\n * Position in the mapping array. Only used internally.\n */\n index?: number;\n /**\n * Text to display when the value matches\n */\n text?: string;\n}\n\n/**\n * Transformations allow to manipulate data returned by a query before the system applies a visualization.\n * Using transformations you can: rename fields, join time series data, perform mathematical operations across queries,\n * use the output of one transformation as the input to another transformation, etc.\n */\nexport interface DataTransformerConfig {\n /**\n * Disabled transformations are skipped\n */\n disabled?: boolean;\n /**\n * Optional frame matcher. When missing it will be applied to all results\n */\n filter?: MatcherConfig;\n /**\n * Unique identifier of transformer\n */\n id: string;\n /**\n * Options to be passed to the transformer\n * Valid options depend on the transformer id\n */\n options: unknown;\n /**\n * Where to pull DataFrames from as input to transformation\n */\n topic?: ('series' | 'annotations' | 'alertStates'); // replaced with common.DataTopic\n}\n\n/**\n * Counterpart for TypeScript's TimeOption type.\n */\nexport interface TimeOption {\n display: string;\n from: string;\n to: string;\n}\n\n/**\n * Time picker configuration\n * It defines the default config for the time picker and the refresh picker for the specific dashboard.\n */\nexport interface TimePickerConfig {\n /**\n * Whether timepicker is visible or not.\n */\n hidden?: boolean;\n /**\n * Override the now time by entering a time delay. Use this option to accommodate known delays in data aggregation to avoid null values.\n */\n nowDelay?: string;\n /**\n * Quick ranges for time picker.\n */\n quick_ranges?: Array<TimeOption>;\n /**\n * Interval options available in the refresh picker dropdown.\n */\n refresh_intervals?: Array<string>;\n}\n\nexport const defaultTimePickerConfig: Partial<TimePickerConfig> = {\n hidden: false,\n quick_ranges: [],\n refresh_intervals: ['5s', '10s', '30s', '1m', '5m', '15m', '30m', '1h', '2h', '1d'],\n};\n\n/**\n * 0 for no shared crosshair or tooltip (default).\n * 1 for shared crosshair.\n * 2 for shared crosshair AND shared tooltip.\n */\nexport enum DashboardCursorSync {\n Crosshair = 1,\n Off = 0,\n Tooltip = 2,\n}\n\nexport const defaultDashboardCursorSync: DashboardCursorSync = DashboardCursorSync.Off;\n\n/**\n * Dashboard panels are the basic visualization building blocks.\n */\nexport interface Panel {\n /**\n * When a panel is migrated from a previous version (Angular to React), this field is set to the original panel type.\n * This is used to determine the original panel type when migrating to a new version so the plugin migration can be applied.\n */\n autoMigrateFrom?: string;\n /**\n * Sets panel queries cache timeout.\n */\n cacheTimeout?: string;\n /**\n * The datasource used in all targets.\n */\n datasource?: DataSourceRef;\n /**\n * Panel description.\n */\n description?: string;\n /**\n * Field options allow you to change how the data is displayed in your visualizations.\n */\n fieldConfig?: FieldConfigSource;\n /**\n * Grid position.\n */\n gridPos?: GridPos;\n /**\n * Controls if the timeFrom or timeShift overrides are shown in the panel header\n */\n hideTimeOverride?: boolean;\n /**\n * Unique identifier of the panel. Generated by Grafana when creating a new panel. It must be unique within a dashboard, but not globally.\n */\n id?: number;\n /**\n * The min time interval setting defines a lower limit for the $__interval and $__interval_ms variables.\n * This value must be formatted as a number followed by a valid time\n * identifier like: \"40s\", \"3d\", etc.\n * See: https://grafana.com/docs/grafana/latest/panels-visualizations/query-transform-data/#query-options\n */\n interval?: string;\n /**\n * Dynamically load the panel\n */\n libraryPanel?: LibraryPanelRef;\n /**\n * Panel links.\n */\n links?: Array<DashboardLink>;\n /**\n * The maximum number of data points that the panel queries are retrieving.\n */\n maxDataPoints?: number;\n /**\n * Option for repeated panels that controls max items per row\n * Only relevant for horizontally repeated panels\n */\n maxPerRow?: number;\n /**\n * It depends on the panel plugin. They are specified by the Options field in panel plugin schemas.\n */\n options?: Record<string, unknown>;\n /**\n * The version of the plugin that is used for this panel. This is used to find the plugin to display the panel and to migrate old panel configs.\n */\n pluginVersion?: string;\n /**\n * Overrides the data source configured time-to-live for a query cache item in milliseconds\n */\n queryCachingTTL?: number;\n /**\n * Name of template variable to repeat for.\n */\n repeat?: string;\n /**\n * Direction to repeat in if 'repeat' is set.\n * `h` for horizontal, `v` for vertical.\n */\n repeatDirection?: ('h' | 'v');\n /**\n * Depends on the panel plugin. See the plugin documentation for details.\n */\n targets?: Array<Record<string, unknown>>;\n /**\n * Compare the current time range with a previous period\n * For example \"1d\" to compare current period but shifted back 1 day\n */\n timeCompare?: string;\n /**\n * Overrides the relative time range for individual panels,\n * which causes them to be different than what is selected in\n * the dashboard time picker in the top-right corner of the dashboard. You can use this to show metrics from different\n * time periods or days on the same dashboard.\n * The value is formatted as time operation like: `now-5m` (Last 5 minutes), `now/d` (the day so far),\n * `now-5d/d`(Last 5 days), `now/w` (This week so far), `now-2y/y` (Last 2 years).\n * Note: Panel time overrides have no effect when the dashboard’s time range is absolute.\n * See: https://grafana.com/docs/grafana/latest/panels-visualizations/query-transform-data/#query-options\n */\n timeFrom?: string;\n /**\n * Overrides the time range for individual panels by shifting its start and end relative to the time picker.\n * For example, you can shift the time range for the panel to be two hours earlier than the dashboard time picker setting `2h`.\n * Note: Panel time overrides have no effect when the dashboard’s time range is absolute.\n * See: https://grafana.com/docs/grafana/latest/panels-visualizations/query-transform-data/#query-options\n */\n timeShift?: string;\n /**\n * Panel title.\n */\n title?: string;\n /**\n * List of transformations that are applied to the panel data before rendering.\n * When there are multiple transformations, Grafana applies them in the order they are listed.\n * Each transformation creates a result set that then passes on to the next transformation in the processing pipeline.\n */\n transformations?: Array<DataTransformerConfig>;\n /**\n * Whether to display the panel without a background.\n */\n transparent?: boolean;\n /**\n * The panel plugin type id. This is used to find the plugin to display the panel.\n */\n type: string;\n}\n\nexport const defaultPanel: Partial<Panel> = {\n links: [],\n repeatDirection: 'h',\n targets: [],\n transformations: [],\n transparent: false,\n};\n\n/**\n * The data model used in Grafana, namely the data frame, is a columnar-oriented table structure that unifies both time series and table query results.\n * Each column within this structure is called a field. A field can represent a single time series or table column.\n * Field options allow you to change how the data is displayed in your visualizations.\n */\nexport interface FieldConfigSource {\n /**\n * Defaults are the options applied to all fields.\n */\n defaults: FieldConfig;\n /**\n * Overrides are the options applied to specific fields overriding the defaults.\n */\n overrides: Array<{\n matcher: MatcherConfig;\n properties: Array<{\n id: string;\n value?: unknown;\n }>;\n }>;\n}\n\nexport const defaultFieldConfigSource: Partial<FieldConfigSource> = {\n overrides: [],\n};\n\n/**\n * A library panel is a reusable panel that you can use in any dashboard.\n * When you make a change to a library panel, that change propagates to all instances of where the panel is used.\n * Library panels streamline reuse of panels across multiple dashboards.\n */\nexport interface LibraryPanelRef {\n /**\n * Library panel name\n */\n name: string;\n /**\n * Library panel uid\n */\n uid: string;\n}\n\n/**\n * Matcher is a predicate configuration. Based on the config a set of field(s) or values is filtered in order to apply override / transformation.\n * It comes with in id ( to resolve implementation from registry) and a configuration that’s specific to a particular matcher type.\n */\nexport interface MatcherConfig {\n /**\n * The matcher id. This is used to find the matcher implementation from registry.\n */\n id: string;\n /**\n * The matcher options. This is specific to the matcher implementation.\n */\n options?: unknown;\n}\n\nexport const defaultMatcherConfig: Partial<MatcherConfig> = {\n id: '',\n};\n\n/**\n * The data model used in Grafana, namely the data frame, is a columnar-oriented table structure that unifies both time series and table query results.\n * Each column within this structure is called a field. A field can represent a single time series or table column.\n * Field options allow you to change how the data is displayed in your visualizations.\n */\nexport interface FieldConfig {\n /**\n * Define interactive HTTP requests that can be triggered from data visualizations.\n */\n actions?: Array<Action>;\n /**\n * Panel color configuration\n */\n color?: FieldColor;\n /**\n * custom is specified by the FieldConfig field\n * in panel plugin schemas.\n */\n custom?: Record<string, unknown>;\n /**\n * Specify the number of decimals Grafana includes in the rendered value.\n * If you leave this field blank, Grafana automatically truncates the number of decimals based on the value.\n * For example 1.1234 will display as 1.12 and 100.456 will display as 100.\n * To display all decimals, set the unit to `String`.\n */\n decimals?: number;\n /**\n * Human readable field metadata\n */\n description?: string;\n /**\n * The display value for this field. This supports template variables blank is auto\n */\n displayName?: string;\n /**\n * This can be used by data sources that return and explicit naming structure for values and labels\n * When this property is configured, this value is used rather than the default naming strategy.\n */\n displayNameFromDS?: string;\n /**\n * True if data source field supports ad-hoc filters\n */\n filterable?: boolean;\n /**\n * The behavior when clicking on a result\n */\n links?: Array<unknown>;\n /**\n * Convert input values into a display string\n */\n mappings?: Array<ValueMapping>;\n /**\n * The maximum value used in percentage threshold calculations. Leave blank for auto calculation based on all series and fields.\n */\n max?: number;\n /**\n * The minimum value used in percentage threshold calculations. Leave blank for auto calculation based on all series and fields.\n */\n min?: number;\n /**\n * Alternative to empty string\n */\n noValue?: string;\n /**\n * An explicit path to the field in the datasource. When the frame meta includes a path,\n * This will default to `${frame.meta.path}/${field.name}\n * \n * When defined, this value can be used as an identifier within the datasource scope, and\n * may be used to update the results\n */\n path?: string;\n /**\n * Map numeric values to states\n */\n thresholds?: ThresholdsConfig;\n /**\n * Unit a field should use. The unit you select is applied to all fields except time.\n * You can use the units ID availables in Grafana or a custom unit.\n * Available units in Grafana: https://github.com/grafana/grafana/blob/main/packages/grafana-data/src/valueFormats/categories.ts\n * As custom unit, you can use the following formats:\n * `suffix:<suffix>` for custom unit that should go after value.\n * `prefix:<prefix>` for custom unit that should go before value.\n * `time:<format>` For custom date time formats type for example `time:YYYY-MM-DD`.\n * `si:<base scale><unit characters>` for custom SI units. For example: `si: mF`. This one is a bit more advanced as you can specify both a unit and the source data scale. So if your source data is represented as milli (thousands of) something prefix the unit with that SI scale character.\n * `count:<unit>` for a custom count unit.\n * `currency:<unit>` for custom a currency unit.\n */\n unit?: string;\n /**\n * True if data source can write a value to the path. Auth/authz are supported separately\n */\n writeable?: boolean;\n}\n\nexport const defaultFieldConfig: Partial<FieldConfig> = {\n actions: [],\n links: [],\n mappings: [],\n};\n\n/**\n * Row panel\n */\nexport interface RowPanel {\n /**\n * Whether this row should be collapsed or not.\n */\n collapsed: boolean;\n /**\n * Name of default datasource for the row\n */\n datasource?: DataSourceRef;\n /**\n * Row grid position\n */\n gridPos?: GridPos;\n /**\n * Unique identifier of the panel. Generated by Grafana when creating a new panel. It must be unique within a dashboard, but not globally.\n */\n id: number;\n /**\n * List of panels in the row\n */\n panels: Array<Panel>;\n /**\n * Name of template variable to repeat for.\n */\n repeat?: string;\n /**\n * Row title\n */\n title?: string;\n /**\n * The panel type\n */\n type: 'row';\n}\n\nexport const defaultRowPanel: Partial<RowPanel> = {\n collapsed: false,\n panels: [],\n};\n\nexport interface Dashboard {\n /**\n * Contains the list of annotations that are associated with the dashboard.\n * Annotations are used to overlay event markers and overlay event tags on graphs.\n * Grafana comes with a native annotation store and the ability to add annotation events directly from the graph panel or via the HTTP API.\n * See https://grafana.com/docs/grafana/latest/dashboards/build-dashboards/annotate-visualizations/\n */\n annotations?: AnnotationContainer;\n /**\n * Description of dashboard.\n */\n description?: string;\n /**\n * Whether a dashboard is editable or not.\n */\n editable?: boolean;\n /**\n * The month that the fiscal year starts on. 0 = January, 11 = December\n */\n fiscalYearStartMonth?: number;\n /**\n * ID of a dashboard imported from the https://grafana.com/grafana/dashboards/ portal\n */\n gnetId?: string;\n /**\n * Configuration of dashboard cursor sync behavior.\n * Accepted values are 0 (sync turned off), 1 (shared crosshair), 2 (shared crosshair and tooltip).\n */\n graphTooltip?: DashboardCursorSync;\n /**\n * Unique numeric identifier for the dashboard.\n * `id` is internal to a specific Grafana instance. `uid` should be used to identify a dashboard across Grafana instances.\n */\n id?: (number | null); // TODO eliminate this null option\n /**\n * Links with references to other dashboards or external websites.\n */\n links?: Array<DashboardLink>;\n /**\n * When set to true, the dashboard will redraw panels at an interval matching the pixel width.\n * This will keep data \"moving left\" regardless of the query refresh rate. This setting helps\n * avoid dashboards presenting stale live data\n */\n liveNow?: boolean;\n /**\n * List of dashboard panels\n */\n panels?: Array<(Panel | RowPanel)>;\n /**\n * When set to true, the dashboard will load all panels in the dashboard when it's loaded.\n */\n preload?: boolean;\n /**\n * Refresh rate of dashboard. Represented via interval string, e.g. \"5s\", \"1m\", \"1h\", \"1d\".\n */\n refresh?: string;\n /**\n * This property should only be used in dashboards defined by plugins. It is a quick check\n * to see if the version has changed since the last time.\n */\n revision?: number;\n /**\n * Version of the JSON schema, incremented each time a Grafana update brings\n * changes to said schema.\n */\n schemaVersion: number;\n /**\n * Snapshot options. They are present only if the dashboard is a snapshot.\n */\n snapshot?: {\n /**\n * Time when the snapshot was created\n */\n created: string;\n /**\n * Time when the snapshot expires, default is never to expire\n */\n expires: string;\n /**\n * Is the snapshot saved in an external grafana instance\n */\n external: boolean;\n /**\n * external url, if snapshot was shared in external grafana instance\n */\n externalUrl: string;\n /**\n * original url, url of the dashboard that was snapshotted\n */\n originalUrl: string;\n /**\n * Unique identifier of the snapshot\n */\n id: number;\n /**\n * Optional, defined the unique key of the snapshot, required if external is true\n */\n key: string;\n /**\n * Optional, name of the snapshot\n */\n name: string;\n /**\n * org id of the snapshot\n */\n orgId: number;\n /**\n * last time when the snapshot was updated\n */\n updated: string;\n /**\n * url of the snapshot, if snapshot was shared internally\n */\n url?: string;\n /**\n * user id of the snapshot creator\n */\n userId: number;\n };\n /**\n * Tags associated with dashboard.\n */\n tags?: Array<string>;\n /**\n * Configured template variables\n */\n templating?: {\n /**\n * List of configured template variables with their saved values along with some other metadata\n */\n list?: Array<VariableModel>;\n };\n /**\n * Time range for dashboard.\n * Accepted values are relative time strings like {from: 'now-6h', to: 'now'} or absolute time strings like {from: '2020-07-10T08:00:00.000Z', to: '2020-07-10T14:00:00.000Z'}.\n */\n time?: {\n from: string;\n to: string;\n };\n /**\n * Configuration of the time picker shown at the top of a dashboard.\n */\n timepicker?: TimePickerConfig;\n /**\n * Timezone of dashboard. Accepted values are IANA TZDB zone ID or \"browser\" or \"utc\".\n */\n timezone?: string;\n /**\n * Title of dashboard.\n */\n title?: string;\n /**\n * Unique dashboard identifier that can be generated by anyone. string (8-40)\n */\n uid?: string;\n /**\n * Version of the dashboard, incremented each time the dashboard is updated.\n */\n version?: number;\n /**\n * Day when the week starts. Expressed by the name of the day in lowercase, e.g. \"monday\".\n */\n weekStart?: string;\n}\n\nexport const defaultDashboard: Partial<Dashboard> = {\n editable: true,\n fiscalYearStartMonth: 0,\n graphTooltip: DashboardCursorSync.Off,\n links: [],\n panels: [],\n schemaVersion: 42,\n tags: [],\n timezone: 'browser',\n};\n"],"names":["VariableRefresh","VariableHide","VariableSort","FieldColorModeId","ThresholdsMode","MappingType","SpecialValueMatch","DashboardCursorSync"],"mappings":"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"}
@@ -192,6 +192,10 @@ export declare const defaultVariableModel: Partial<VariableModel>;
192
192
  * Option to be selected in a variable.
193
193
  */
194
194
  export interface VariableOption {
195
+ /**
196
+ * Additional properties for multi-props variables
197
+ */
198
+ properties?: Record<string, string>;
195
199
  /**
196
200
  * Whether the option is selected or not
197
201
  */
@@ -519,6 +519,7 @@ export interface VariableOption {
519
519
  selected?: boolean;
520
520
  text: string | string[];
521
521
  value: string | string[];
522
+ properties?: Record<string, string>;
522
523
  }
523
524
  export declare const defaultVariableOption: () => VariableOption;
524
525
  export type VariableHide = "dontHide" | "hideLabel" | "hideVariable";
@@ -520,6 +520,7 @@ export interface VariableOption {
520
520
  selected?: boolean;
521
521
  text: string | string[];
522
522
  value: string | string[];
523
+ properties?: Record<string, string>;
523
524
  }
524
525
  export declare const defaultVariableOption: () => VariableOption;
525
526
  export type VariableHide = "dontHide" | "hideLabel" | "hideVariable" | "inControlsMenu";
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "author": "Grafana Labs",
3
3
  "license": "Apache-2.0",
4
4
  "name": "@grafana/schema",
5
- "version": "12.4.0-21585881775",
5
+ "version": "12.4.0-21587278904",
6
6
  "description": "Grafana Schema Library",
7
7
  "keywords": [
8
8
  "typescript"