<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>JSON schema v2 on Grafana Labs</title><link>https://grafana.com/docs/grafana/v12.4/as-code/observability-as-code/schema-v2/</link><description>Recent content in JSON schema v2 on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/grafana/v12.4/as-code/observability-as-code/schema-v2/index.xml" rel="self" type="application/rss+xml"/><item><title>annotations</title><link>https://grafana.com/docs/grafana/v12.4/as-code/observability-as-code/schema-v2/annotations-schema/</link><pubDate>Fri, 03 Apr 2026 12:35:46 -0500</pubDate><guid>https://grafana.com/docs/grafana/v12.4/as-code/observability-as-code/schema-v2/annotations-schema/</guid><content><![CDATA[&lt;h1 id=&#34;annotations&#34;&gt;&lt;code&gt;annotations&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;The configuration for the list of annotations that are associated with the dashboard.&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;  &amp;#34;annotations&amp;#34;: [
    {
      &amp;#34;kind&amp;#34;: &amp;#34;AnnotationQuery&amp;#34;,
      &amp;#34;spec&amp;#34;: {
        &amp;#34;builtIn&amp;#34;: false,
        &amp;#34;datasource&amp;#34;: {
          &amp;#34;type&amp;#34;: &amp;#34;&amp;#34;,
          &amp;#34;uid&amp;#34;: &amp;#34;&amp;#34;
        },
        &amp;#34;enable&amp;#34;: false,
        &amp;#34;hide&amp;#34;: false,
        &amp;#34;iconColor&amp;#34;: &amp;#34;&amp;#34;,
        &amp;#34;name&amp;#34;: &amp;#34;&amp;#34;
      }
    }
  ],&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;AnnotationsQueryKind&lt;/code&gt; consists of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;kind: &amp;ldquo;AnnotationQuery&amp;rdquo;&lt;/li&gt;
&lt;li&gt;spec: &lt;a href=&#34;#annotationqueryspec&#34;&gt;AnnotationQuerySpec&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;annotationqueryspec&#34;&gt;&lt;code&gt;AnnotationQuerySpec&lt;/code&gt;&lt;/h2&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type/Definition&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;datasource&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#datasourceref&#34;&gt;&lt;code&gt;DataSourceRef&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;query&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#dataquerykind&#34;&gt;&lt;code&gt;DataQueryKind&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;enable&lt;/td&gt;
              &lt;td&gt;bool&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;hide&lt;/td&gt;
              &lt;td&gt;bool&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;iconColor&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;name&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;builtIn&lt;/td&gt;
              &lt;td&gt;bool. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;filter&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#annotationpanelfilter&#34;&gt;&lt;code&gt;AnnotationPanelFilter&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;options&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[string]&lt;/code&gt;: A catch-all field for datasource-specific properties.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;datasourceref&#34;&gt;&lt;code&gt;DataSourceRef&lt;/code&gt;&lt;/h3&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;type?&lt;/td&gt;
              &lt;td&gt;string. The plugin type-id.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;uid?&lt;/td&gt;
              &lt;td&gt;The specific data source instance.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;dataquerykind&#34;&gt;&lt;code&gt;DataQueryKind&lt;/code&gt;&lt;/h3&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;kind&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;spec&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;annotationpanelfilter&#34;&gt;&lt;code&gt;AnnotationPanelFilter&lt;/code&gt;&lt;/h3&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type/Definition&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;exclude?&lt;/td&gt;
              &lt;td&gt;bool. Should the specified panels be included or excluded. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;ids&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[...uint8]&lt;/code&gt;. Panel IDs that should be included or excluded.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;]]></content><description>&lt;h1 id="annotations">&lt;code>annotations&lt;/code>&lt;/h1>
&lt;p>The configuration for the list of annotations that are associated with the dashboard.&lt;/p>
&lt;div class="code-snippet ">&lt;div class="lang-toolbar">
&lt;span class="lang-toolbar__item lang-toolbar__item-active">JSON&lt;/span>
&lt;span class="code-clipboard">
&lt;button x-data="app_code_snippet()" x-init="init()" @click="copy()">
&lt;img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
&lt;span>Copy&lt;/span>
&lt;/button>
&lt;/span>
&lt;div class="lang-toolbar__border">&lt;/div>
&lt;/div>&lt;div class="code-snippet ">
&lt;pre data-expanded="false">&lt;code class="language-json"> &amp;#34;annotations&amp;#34;: [
{
&amp;#34;kind&amp;#34;: &amp;#34;AnnotationQuery&amp;#34;,
&amp;#34;spec&amp;#34;: {
&amp;#34;builtIn&amp;#34;: false,
&amp;#34;datasource&amp;#34;: {
&amp;#34;type&amp;#34;: &amp;#34;&amp;#34;,
&amp;#34;uid&amp;#34;: &amp;#34;&amp;#34;
},
&amp;#34;enable&amp;#34;: false,
&amp;#34;hide&amp;#34;: false,
&amp;#34;iconColor&amp;#34;: &amp;#34;&amp;#34;,
&amp;#34;name&amp;#34;: &amp;#34;&amp;#34;
}
}
],&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;p>&lt;code>AnnotationsQueryKind&lt;/code> consists of:&lt;/p></description></item><item><title>PanelKind</title><link>https://grafana.com/docs/grafana/v12.4/as-code/observability-as-code/schema-v2/panel-schema/</link><pubDate>Fri, 03 Apr 2026 12:35:46 -0500</pubDate><guid>https://grafana.com/docs/grafana/v12.4/as-code/observability-as-code/schema-v2/panel-schema/</guid><content><![CDATA[&lt;h1 id=&#34;panelkind&#34;&gt;&lt;code&gt;PanelKind&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;The panel element contains all the information about the panel including the visualization type, panel and visualization configuration, queries, and transformations.
There&amp;rsquo;s a panel element for each panel contained in the dashboard.&lt;/p&gt;
&lt;p&gt;Following is the default panel element JSON:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;      &amp;#34;kind&amp;#34;: &amp;#34;Panel&amp;#34;,
      &amp;#34;spec&amp;#34;: {
        &amp;#34;data&amp;#34;: {
          &amp;#34;kind&amp;#34;: &amp;#34;QueryGroup&amp;#34;,
          &amp;#34;spec&amp;#34;: {...},
        &amp;#34;description&amp;#34;: &amp;#34;&amp;#34;,
        &amp;#34;id&amp;#34;: 0,
        &amp;#34;links&amp;#34;: [],
        &amp;#34;title&amp;#34;: &amp;#34;&amp;#34;,
        &amp;#34;vizConfig&amp;#34;: {
          &amp;#34;kind&amp;#34;: &amp;#34;&amp;#34;,
          &amp;#34;spec&amp;#34;: {...},
        }
      }&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The &lt;code&gt;PanelKind&lt;/code&gt; consists of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;kind: &amp;ldquo;Panel&amp;rdquo;&lt;/li&gt;
&lt;li&gt;spec: &lt;a href=&#34;#panelspec&#34;&gt;PanelSpec&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;panelspec&#34;&gt;&lt;code&gt;PanelSpec&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;The following table explains the usage of the panel element JSON fields:&lt;/p&gt;
&lt;!-- prettier-ignore-start --&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;data&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;QueryGroupKind&lt;/code&gt;, which includes queries and transformations. Consists of:&lt;ul&gt;&lt;li&gt;kind: &amp;ldquo;QueryGroup&amp;rdquo;&lt;/li&gt;&lt;li&gt;spec: &lt;a href=&#34;#querygroupspec&#34;&gt;QueryGroupSpec&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;description&lt;/td&gt;
              &lt;td&gt;The panel description.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;id&lt;/td&gt;
              &lt;td&gt;The panel ID.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;links&lt;/td&gt;
              &lt;td&gt;Links with references to other dashboards or external websites.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;title&lt;/td&gt;
              &lt;td&gt;The panel title.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;vizConfig&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;VizConfigKind&lt;/code&gt;. Includes visualization type, field configuration options, and all other visualization options. Consists of:&lt;ul&gt;&lt;li&gt;kind: string. Plugin ID.&lt;/li&gt;&lt;li&gt;spec: &lt;a href=&#34;#vizconfigspec&#34;&gt;VizConfigSpec&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;transparent?&lt;/td&gt;
              &lt;td&gt;bool. Controls whether or not the panel background is transparent.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;!-- prettier-ignore-end --&gt;
&lt;h3 id=&#34;querygroupspec&#34;&gt;&lt;code&gt;QueryGroupSpec&lt;/code&gt;&lt;/h3&gt;
&lt;!-- prettier-ignore-start --&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;queries&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;PanelQueryKind&lt;/code&gt;. Consists of:&lt;ul&gt;&lt;li&gt;kind: PanelQuery&lt;/li&gt;&lt;li&gt;spec: &lt;a href=&#34;#panelqueryspec&#34;&gt;PanelQuerySpec&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;transformations&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;TransformationKind&lt;/code&gt;. Consists of:&lt;ul&gt;&lt;li&gt;kind: string. The transformation ID.&lt;/li&gt;&lt;li&gt;spec: &lt;a href=&#34;#datatransformerconfig&#34;&gt;DataTransformerConfig&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;queryOptions&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#queryoptionsspec&#34;&gt;&lt;code&gt;QueryOptionsSpec&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;!-- prettier-ignore-end --&gt;
&lt;h4 id=&#34;panelqueryspec&#34;&gt;&lt;code&gt;PanelQuerySpec&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;query&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#dataquerykind&#34;&gt;&lt;code&gt;DataQueryKind&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;datasource?&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#datasourceref&#34;&gt;&lt;code&gt;DataSourceRef&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h5 id=&#34;dataquerykind&#34;&gt;&lt;code&gt;DataQueryKind&lt;/code&gt;&lt;/h5&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;kind&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;spec&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h5 id=&#34;datasourceref&#34;&gt;&lt;code&gt;DataSourceRef&lt;/code&gt;&lt;/h5&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;type?&lt;/td&gt;
              &lt;td&gt;string. The plugin type-id.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;uid?&lt;/td&gt;
              &lt;td&gt;The specific data source instance.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;datatransformerconfig&#34;&gt;&lt;code&gt;DataTransformerConfig&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;Transformations allow you to manipulate data returned by a query before the system applies a visualization.
Using transformations you can: rename fields, join time series data, perform mathematical operations across queries, or use the output of one transformation as the input to another transformation.&lt;/p&gt;
&lt;!-- prettier-ignore-start --&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;id&lt;/td&gt;
              &lt;td&gt;string. Unique identifier of transformer.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;disabled?&lt;/td&gt;
              &lt;td&gt;bool. Disabled transformations are skipped.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;filter?&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#matcherconfig&#34;&gt;&lt;code&gt;MatcherConfig&lt;/code&gt;&lt;/a&gt;. Optional frame matcher. When missing it will be applied to all results.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;topic?&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;DataTopic&lt;/code&gt;. Where to pull &lt;code&gt;DataFrames&lt;/code&gt; from as input to transformation. Options are: &lt;code&gt;series&lt;/code&gt;, &lt;code&gt;annotations&lt;/code&gt;, and &lt;code&gt;alertStates&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;options&lt;/td&gt;
              &lt;td&gt;Options to be passed to the transformer. Valid options depend on the transformer id.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;!-- prettier-ignore-end --&gt;
&lt;h5 id=&#34;matcherconfig&#34;&gt;&lt;code&gt;MatcherConfig&lt;/code&gt;&lt;/h5&gt;
&lt;p&gt;Matcher is a predicate configuration.
Based on the configuration a set of field or values, it&amp;rsquo;s filtered to apply an override or transformation.
It comes with in id (to resolve implementation from registry) and a configuration that’s specific to a particular matcher type.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;id&lt;/td&gt;
              &lt;td&gt;string. The matcher id. This is used to find the matcher implementation from registry.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;options?&lt;/td&gt;
              &lt;td&gt;The matcher options. This is specific to the matcher implementation.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;queryoptionsspec&#34;&gt;&lt;code&gt;QueryOptionsSpec&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;timeFrom?&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;maxDataPoints?&lt;/td&gt;
              &lt;td&gt;integer&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;timeShift?&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;queryCachingTTL?&lt;/td&gt;
              &lt;td&gt;integer&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;interval?&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;cacheTimeout?&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;hideTimeOverride?&lt;/td&gt;
              &lt;td&gt;bool&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;vizconfigspec&#34;&gt;&lt;code&gt;VizConfigSpec&lt;/code&gt;&lt;/h3&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type/Definition&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;pluginVersion&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;options&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;fieldConfig&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#fieldconfigsource&#34;&gt;FieldConfigSource&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;fieldconfigsource&#34;&gt;&lt;code&gt;FieldConfigSource&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The data model used in Grafana, namely the &lt;em&gt;data frame&lt;/em&gt;, is a columnar-oriented table structure that unifies both time series and table query results.
Each column within this structure is called a field.
A field can represent a single time series or table column.
Field options allow you to change how the data is displayed in your visualizations.&lt;/p&gt;
&lt;!-- prettier-ignore-start --&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type/Definition&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;defaults&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#fieldconfig&#34;&gt;&lt;code&gt;FieldConfig&lt;/code&gt;&lt;/a&gt;. Defaults are the options applied to all fields.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;overrides&lt;/td&gt;
              &lt;td&gt;The options applied to specific fields overriding the defaults.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;matcher&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#matcherconfig&#34;&gt;&lt;code&gt;MatcherConfig&lt;/code&gt;&lt;/a&gt;. Optional frame matcher. When missing it will be applied to all results.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;properties&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;DynamicConfigValue&lt;/code&gt;. Consists of:&lt;ul&gt;&lt;li&gt;&lt;code&gt;id&lt;/code&gt; - string&lt;/li&gt;&lt;li&gt;value?&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;!-- prettier-ignore-end --&gt;
&lt;h5 id=&#34;fieldconfig&#34;&gt;&lt;code&gt;FieldConfig&lt;/code&gt;&lt;/h5&gt;
&lt;!-- prettier-ignore-start --&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type/Definition&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;displayName?&lt;/td&gt;
              &lt;td&gt;string. The display value for this field. This supports template variables where empty is auto.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;displayNameFromDS?&lt;/td&gt;
              &lt;td&gt;string. This can be used by data sources that return an explicit naming structure for values and labels. When this property is configured, this value is used rather than the default naming strategy.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;description?&lt;/td&gt;
              &lt;td&gt;string. Human readable field metadata.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;path?&lt;/td&gt;
              &lt;td&gt;string. An explicit path to the field in the data source. When the frame meta includes a path, this will default to &lt;code&gt;${frame.meta.path}/${field.name}&lt;/code&gt;. When defined, this value can be used as an identifier within the data source scope, and may be used to update the results.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;writeable?&lt;/td&gt;
              &lt;td&gt;bool. True if the data source can write a value to the path. Auth/authz are supported separately.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;filterable?&lt;/td&gt;
              &lt;td&gt;bool. True if the data source field supports ad-hoc filters.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;unit?&lt;/td&gt;
              &lt;td&gt;string. Unit a field should use. The unit you select is applied to all fields except time. You can use the unit&amp;rsquo;s ID available in Grafana or a custom unit. &lt;a href=&#34;https://github.com/grafana/grafana/blob/main/packages/grafana-data/src/valueFormats/categories.ts&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Available units in Grafana&lt;/a&gt;. As custom units, you can use the following formats:&lt;ul&gt;&lt;li&gt;&lt;code&gt;suffix:&amp;lt;suffix&amp;gt;&lt;/code&gt; for custom unit that should go after value.&lt;/li&gt;&lt;li&gt;&lt;code&gt;prefix:&amp;lt;prefix&amp;gt;&lt;/code&gt; for custom unit that should go before value.&lt;/li&gt;&lt;li&gt; &lt;code&gt;time:&amp;lt;format&amp;gt;&lt;/code&gt; for custom date time formats type for example&lt;/li&gt;&lt;li&gt;&lt;code&gt;time:YYYY-MM-DD&lt;/code&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;si:&amp;lt;base scale&amp;gt;&amp;lt;unit characters&amp;gt;&lt;/code&gt; for custom SI units. For example: &lt;code&gt;si: mF&lt;/code&gt;. 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.&lt;/li&gt;&lt;li&gt;&lt;code&gt;count:&amp;lt;unit&amp;gt;&lt;/code&gt; for a custom count unit.&lt;/li&gt;&lt;li&gt;&lt;code&gt;currency:&amp;lt;unit&amp;gt;&lt;/code&gt; for custom a currency unit.&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;decimals?&lt;/td&gt;
              &lt;td&gt;number. Specify the number of decimals Grafana includes in the rendered value. If you leave this field blank, Grafana automatically truncates the number of decimals based on the value. For example 1.1234 will display as 1.12 and 100.456 will display as 100. To display all decimals, set the unit to &lt;code&gt;string&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;min?&lt;/td&gt;
              &lt;td&gt;number. The minimum value used in percentage threshold calculations. Leave empty for auto calculation based on all series and fields.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;max?&lt;/td&gt;
              &lt;td&gt;number. The maximum value used in percentage threshold calculations. Leave empty for auto calculation based on all series and fields.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;mappings?&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[...ValueMapping]&lt;/code&gt;. Convert input values into a display string. Options are: &lt;a href=&#34;#valuemap&#34;&gt;&lt;code&gt;ValueMap&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;#rangemap&#34;&gt;&lt;code&gt;RangeMap&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;#rangemap&#34;&gt;&lt;code&gt;RegexMap&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;#specialvaluemap&#34;&gt;&lt;code&gt;SpecialValueMap&lt;/code&gt;&lt;/a&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;thresholds?&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;ThresholdsConfig&lt;/code&gt;. Map numeric values to states. Consists of:&lt;ul&gt;&lt;li&gt;&lt;code&gt;mode&lt;/code&gt; - &lt;code&gt;ThresholdsMode&lt;/code&gt;. Options are: &lt;code&gt;absolute&lt;/code&gt; and &lt;code&gt;percentage&lt;/code&gt;.&lt;/li&gt;&lt;li&gt;&lt;code&gt;steps&lt;/code&gt; - &lt;code&gt;[...Threshold]&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;color?&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#fieldcolor&#34;&gt;&lt;code&gt;FieldColor&lt;/code&gt;&lt;/a&gt;. Panel color configuration.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;links?&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[...]&lt;/code&gt;. The behavior when clicking a result.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;noValue?&lt;/td&gt;
              &lt;td&gt;string. Alternative to an empty string.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;custom?&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;{...}&lt;/code&gt;. Specified by the &lt;code&gt;FieldConfig&lt;/code&gt; field in panel plugin schemas.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;!-- prettier-ignore-end --&gt;
&lt;h6 id=&#34;valuemap&#34;&gt;&lt;code&gt;ValueMap&lt;/code&gt;&lt;/h6&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;!-- prettier-ignore-start --&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;type&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;MappingType&lt;/code&gt; &amp;amp; &amp;ldquo;value&amp;rdquo;. &lt;code&gt;MappingType&lt;/code&gt; options are: &lt;code&gt;value&lt;/code&gt;, &lt;code&gt;range&lt;/code&gt;, &lt;code&gt;regex&lt;/code&gt;, and &lt;code&gt;special&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;options&lt;/td&gt;
              &lt;td&gt;string. &lt;a href=&#34;#valuemappingresult&#34;&gt;&lt;code&gt;ValueMappingResult&lt;/code&gt;&lt;/a&gt;. Map with &lt;code&gt;&amp;lt;value_to_match&amp;gt;&lt;/code&gt;: &lt;code&gt;ValueMappingResult&lt;/code&gt;. For example: &lt;code&gt;{ &amp;quot;10&amp;quot;: { text: &amp;quot;Perfection!&amp;quot;, color: &amp;quot;green&amp;quot; } }&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;!-- prettier-ignore-end --&gt;
&lt;h6 id=&#34;rangemap&#34;&gt;&lt;code&gt;RangeMap&lt;/code&gt;&lt;/h6&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;!-- prettier-ignore-start --&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;type&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;MappingType&lt;/code&gt; &amp;amp; &amp;ldquo;range&amp;rdquo;. &lt;code&gt;MappingType&lt;/code&gt; options are: &lt;code&gt;value&lt;/code&gt;, &lt;code&gt;range&lt;/code&gt;, &lt;code&gt;regex&lt;/code&gt;, and &lt;code&gt;special&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;options&lt;/td&gt;
              &lt;td&gt;Range to match against and the result to apply when the value is within the range. Spec:&lt;ul&gt;&lt;li&gt;&lt;code&gt;from&lt;/code&gt; - &lt;code&gt;float64&lt;/code&gt; or &lt;code&gt;null&lt;/code&gt;. Min value of the range. It can be null which means &lt;code&gt;-Infinity&lt;/code&gt;.&lt;/li&gt;&lt;li&gt;&lt;code&gt;to&lt;/code&gt; - &lt;code&gt;float64&lt;/code&gt; or &lt;code&gt;null&lt;/code&gt;. Max value of the range. It can be null which means &lt;code&gt;&#43;Infinity&lt;/code&gt;.&lt;/li&gt;&lt;li&gt;&lt;code&gt;result&lt;/code&gt; - &lt;a href=&#34;#valuemappingresult&#34;&gt;&lt;code&gt;ValueMappingResult&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;!-- prettier-ignore-end --&gt;
&lt;h6 id=&#34;regexmap&#34;&gt;&lt;code&gt;RegexMap&lt;/code&gt;&lt;/h6&gt;
&lt;p&gt;Maps regular expressions to replacement text and a color.
For example, if a value is &lt;code&gt;www.example.com&lt;/code&gt;, you can configure a regex value mapping so that Grafana displays www and truncates the domain.&lt;/p&gt;
&lt;!-- prettier-ignore-start --&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;type&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;MappingType&lt;/code&gt; &amp;amp; &amp;ldquo;regex&amp;rdquo;. &lt;code&gt;MappingType&lt;/code&gt; options are: &lt;code&gt;value&lt;/code&gt;, &lt;code&gt;range&lt;/code&gt;, &lt;code&gt;regex&lt;/code&gt;, and &lt;code&gt;special&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;options&lt;/td&gt;
              &lt;td&gt;Regular expression to match against and the result to apply when the value matches the regex. Spec:&lt;ul&gt;&lt;li&gt;&lt;code&gt;pattern&lt;/code&gt; - string. Regular expression to match against.&lt;/li&gt;&lt;li&gt;&lt;code&gt;result&lt;/code&gt; - &lt;a href=&#34;#valuemappingresult&#34;&gt;&lt;code&gt;ValueMappingResult&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;!-- prettier-ignore-end --&gt;
&lt;h6 id=&#34;specialvaluemap&#34;&gt;&lt;code&gt;SpecialValueMap&lt;/code&gt;&lt;/h6&gt;
&lt;p&gt;Maps special values like Null, NaN (not a number), and boolean values like true and false to a display text and color.
See &lt;code&gt;SpecialValueMatch&lt;/code&gt; in the following table to see the list of special values.
For example, you can configure a special value mapping so that null values appear as N/A.&lt;/p&gt;
&lt;!-- prettier-ignore-start --&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;type&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;MappingType&lt;/code&gt; &amp;amp; &amp;ldquo;special&amp;rdquo;. &lt;code&gt;MappingType&lt;/code&gt; options are: &lt;code&gt;value&lt;/code&gt;, &lt;code&gt;range&lt;/code&gt;, &lt;code&gt;regex&lt;/code&gt;, and &lt;code&gt;special&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;options&lt;/td&gt;
              &lt;td&gt;Spec:&lt;ul&gt;&lt;li&gt;&lt;code&gt;match&lt;/code&gt; - &lt;code&gt;SpecialValueMatch&lt;/code&gt;. Special value to match against. Types are:&lt;ul&gt;&lt;li&gt;true&lt;/li&gt;&lt;li&gt;false&lt;/li&gt;&lt;li&gt;null&lt;/li&gt;&lt;li&gt;nan&lt;/li&gt;&lt;li&gt;empty&lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;li&gt;&lt;code&gt;result&lt;/code&gt; - &lt;a href=&#34;#valuemappingresult&#34;&gt;&lt;code&gt;ValueMappingResult&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;!-- prettier-ignore-end --&gt;
&lt;h6 id=&#34;valuemappingresult&#34;&gt;&lt;code&gt;ValueMappingResult&lt;/code&gt;&lt;/h6&gt;
&lt;p&gt;Result used as replacement with text and color when the value matches.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;text&lt;/td&gt;
              &lt;td&gt;string. Text to display when the value matches.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;color&lt;/td&gt;
              &lt;td&gt;string. Color to use when the value matches.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;icon&lt;/td&gt;
              &lt;td&gt;string. Icon to display when the value matches. Only specific visualizations.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;index&lt;/td&gt;
              &lt;td&gt;int32. Position in the mapping array. Only used internally.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h6 id=&#34;fieldcolor&#34;&gt;&lt;code&gt;FieldColor&lt;/code&gt;&lt;/h6&gt;
&lt;p&gt;Map a field to a color.&lt;/p&gt;
&lt;!-- prettier-ignore-start --&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;mode&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#fieldcolormodeid&#34;&gt;&lt;code&gt;FieldColorModeId&lt;/code&gt;&lt;/a&gt;. The main color scheme mode.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;FixedColor?&lt;/td&gt;
              &lt;td&gt;string. The fixed color value for fixed or shades color modes.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;seriesBy?&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;FieldColorSeriesByMode&lt;/code&gt;. Some visualizations need to know how to assign a series color from by value color schemes. Defines how to assign a series color from &amp;ldquo;by value&amp;rdquo; color schemes. For example for an aggregated data points like a timeseries, the color can be assigned by the min, max or last value. Options are: &lt;code&gt;min&lt;/code&gt;, &lt;code&gt;max&lt;/code&gt;, and &lt;code&gt;last&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;!-- prettier-ignore-end --&gt;
&lt;h6 id=&#34;fieldcolormodeid&#34;&gt;&lt;code&gt;FieldColorModeId&lt;/code&gt;&lt;/h6&gt;
&lt;p&gt;Color mode for a field.
You can specify a single color, or select a continuous (gradient) color schemes, based on a value.
Continuous color interpolates a color using the percentage of a value relative to min and max.
Accepted values are:&lt;/p&gt;
&lt;!-- prettier-ignore-start --&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;thresholds&lt;/td&gt;
              &lt;td&gt;From thresholds. Informs Grafana to take the color from the matching threshold.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;palette-classic&lt;/td&gt;
              &lt;td&gt;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.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;palette-classic-by-name&lt;/td&gt;
              &lt;td&gt;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&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;continuous-GrYlRd&lt;/td&gt;
              &lt;td&gt;Continuous Green-Yellow-Red palette mode&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;continuous-RdYlGr&lt;/td&gt;
              &lt;td&gt;Continuous Red-Yellow-Green palette mode&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;continuous-BlYlRd&lt;/td&gt;
              &lt;td&gt;Continuous Blue-Yellow-Red palette mode&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;continuous-YlRd&lt;/td&gt;
              &lt;td&gt;Continuous Yellow-Red palette mode&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;continuous-BlPu&lt;/td&gt;
              &lt;td&gt;Continuous Blue-Purple palette mode&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;continuous-YlBl&lt;/td&gt;
              &lt;td&gt;Continuous Yellow-Blue palette mode&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;continuous-blues&lt;/td&gt;
              &lt;td&gt;Continuous Blue palette mode&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;continuous-reds&lt;/td&gt;
              &lt;td&gt;Continuous Red palette mode&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;continuous-greens&lt;/td&gt;
              &lt;td&gt;Continuous Green palette mode&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;continuous-purples&lt;/td&gt;
              &lt;td&gt;Continuous Purple palette mode&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;shades&lt;/td&gt;
              &lt;td&gt;Shades of a single color. Specify a single color, useful in an override rule.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;fixed&lt;/td&gt;
              &lt;td&gt;Fixed color mode. Specify a single color, useful in an override rule.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;!-- prettier-ignore-end --&gt;
]]></content><description>&lt;h1 id="panelkind">&lt;code>PanelKind&lt;/code>&lt;/h1>
&lt;p>The panel element contains all the information about the panel including the visualization type, panel and visualization configuration, queries, and transformations.
There&amp;rsquo;s a panel element for each panel contained in the dashboard.&lt;/p></description></item><item><title>LibraryPanelKind</title><link>https://grafana.com/docs/grafana/v12.4/as-code/observability-as-code/schema-v2/librarypanel-schema/</link><pubDate>Fri, 03 Apr 2026 12:35:46 -0500</pubDate><guid>https://grafana.com/docs/grafana/v12.4/as-code/observability-as-code/schema-v2/librarypanel-schema/</guid><content><![CDATA[&lt;h1 id=&#34;librarypanelkind&#34;&gt;&lt;code&gt;LibraryPanelKind&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;A library panel is a reusable panel that you can use in any dashboard.
When you make a change to a library panel, that change propagates to all instances of where the panel is used.
Library panels streamline reuse of panels across multiple dashboards.&lt;/p&gt;
&lt;p&gt;Following is the default library panel element JSON:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;      &amp;#34;kind&amp;#34;: &amp;#34;LibraryPanel&amp;#34;,
      &amp;#34;spec&amp;#34;: {
        &amp;#34;id&amp;#34;: 0,
        &amp;#34;libraryPanel&amp;#34;: {
          name: &amp;#34;&amp;#34;,
          uid: &amp;#34;&amp;#34;,
        }
        &amp;#34;title&amp;#34;: &amp;#34;&amp;#34;
      }&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The &lt;code&gt;LibraryPanelKind&lt;/code&gt; consists of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;kind: &amp;ldquo;LibraryPanel&amp;rdquo;&lt;/li&gt;
&lt;li&gt;spec: &lt;a href=&#34;#librarypanelkindspec&#34;&gt;LibraryPanelKindSpec&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;libraryPanel: &lt;a href=&#34;#librarypanelref&#34;&gt;LibraryPanelRef&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;librarypanelkindspec&#34;&gt;&lt;code&gt;LibraryPanelKindSpec&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;The following table explains the usage of the library panel element JSON fields:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;id&lt;/td&gt;
              &lt;td&gt;Panel ID for the library panel in the dashboard.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;libraryPanel&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#librarypanelref&#34;&gt;&lt;code&gt;LibraryPanelRef&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;title&lt;/td&gt;
              &lt;td&gt;Title for the library panel in the dashboard.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;librarypanelref&#34;&gt;&lt;code&gt;LibraryPanelRef&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The following table explains the usage of the library panel reference JSON fields:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;name&lt;/td&gt;
              &lt;td&gt;Library panel name&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;uid&lt;/td&gt;
              &lt;td&gt;Library panel uid&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;]]></content><description>&lt;h1 id="librarypanelkind">&lt;code>LibraryPanelKind&lt;/code>&lt;/h1>
&lt;p>A library panel is a reusable panel that you can use in any dashboard.
When you make a change to a library panel, that change propagates to all instances of where the panel is used.
Library panels streamline reuse of panels across multiple dashboards.&lt;/p></description></item><item><title>layout</title><link>https://grafana.com/docs/grafana/v12.4/as-code/observability-as-code/schema-v2/layout-schema/</link><pubDate>Fri, 03 Apr 2026 12:35:46 -0500</pubDate><guid>https://grafana.com/docs/grafana/v12.4/as-code/observability-as-code/schema-v2/layout-schema/</guid><content><![CDATA[&lt;h1 id=&#34;layout&#34;&gt;&lt;code&gt;layout&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;There are four layout options offering two types of panel control:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Panel layout options&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;These options control the size and position of panels:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#gridlayoutkind&#34;&gt;GridLayoutKind&lt;/a&gt; - Corresponds to the &lt;strong&gt;Custom&lt;/strong&gt; option in the UI. You define panel size and panel positions using x- and y- settings.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#autogridlayoutkind&#34;&gt;AutoGridLayoutKind&lt;/a&gt; - Corresponds to the &lt;strong&gt;Auto grid&lt;/strong&gt; option in the UI. Panel size and position are automatically set based on column and row parameters.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Panel grouping options&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;These options control the grouping of panels:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#rowslayoutkind&#34;&gt;RowsLayoutKind&lt;/a&gt; - Groups panels into rows.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#tabslayoutkind&#34;&gt;TabsLayoutKind&lt;/a&gt; - Groups panels into tabs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;gridlayoutkind&#34;&gt;&lt;code&gt;GridLayoutKind&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;The grid layout allows you to manually size and position grid items by setting the height, width, x, and y of each item.
This layout corresponds to the &lt;strong&gt;Custom&lt;/strong&gt; option in the UI.&lt;/p&gt;
&lt;p&gt;Following is the JSON for a default grid layout, a grid layout item, and a grid layout row:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;    &amp;#34;kind&amp;#34;: &amp;#34;GridLayout&amp;#34;,
    &amp;#34;spec&amp;#34;: {
      &amp;#34;items&amp;#34;: [
        {
          &amp;#34;kind&amp;#34;: &amp;#34;GridLayoutItem&amp;#34;,
          &amp;#34;spec&amp;#34;: {
            &amp;#34;element&amp;#34;: {...},
            &amp;#34;height&amp;#34;: 0,
            &amp;#34;width&amp;#34;: 0,
            &amp;#34;x&amp;#34;: 0,
            &amp;#34;y&amp;#34;: 0
          }
        },
        {
          &amp;#34;kind&amp;#34;: &amp;#34;GridLayoutRow&amp;#34;,
          &amp;#34;spec&amp;#34;: {
            &amp;#34;collapsed&amp;#34;: false,
            &amp;#34;elements&amp;#34;: [],
            &amp;#34;title&amp;#34;: &amp;#34;&amp;#34;,
            &amp;#34;y&amp;#34;: 0
          }
        },
      ]
    }&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;GridLayoutKind&lt;/code&gt; consists of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;kind: &amp;ldquo;GridLayout&amp;rdquo;&lt;/li&gt;
&lt;li&gt;spec: GridLayoutSpec
&lt;ul&gt;
&lt;li&gt;items: GridLayoutItemKind&lt;code&gt; or GridLayoutRowKind&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;GridLayoutItemKind
&lt;ul&gt;
&lt;li&gt;kind: &amp;ldquo;GridLayoutItem&amp;rdquo;&lt;/li&gt;
&lt;li&gt;spec: &lt;a href=&#34;#gridlayoutitemspec&#34;&gt;GridLayoutItemSpec&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;GridLayoutRowKind
&lt;ul&gt;
&lt;li&gt;kind: &amp;ldquo;GridLayoutRow&amp;rdquo;&lt;/li&gt;
&lt;li&gt;spec: &lt;a href=&#34;#gridlayoutrowspec&#34;&gt;GridLayoutRowSpec&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;gridlayoutitemspec&#34;&gt;&lt;code&gt;GridLayoutItemSpec&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The following table explains the usage of the grid layout item JSON fields:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;x&lt;/td&gt;
              &lt;td&gt;integer. Position of the item x-axis.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;y&lt;/td&gt;
              &lt;td&gt;integer. Position of the item y-axis.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;width&lt;/td&gt;
              &lt;td&gt;Width of the item in pixels.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;height&lt;/td&gt;
              &lt;td&gt;Height of the item in pixels.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;element&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;ElementReference&lt;/code&gt;. Reference to a 
    &lt;a href=&#34;/docs/grafana/v12.4/observability-as-code/schema-v2/panel-schema/&#34;&gt;&lt;code&gt;PanelKind&lt;/code&gt;&lt;/a&gt; from &lt;code&gt;dashboard.spec.elements&lt;/code&gt; expressed as JSON Schema reference.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;repeat?&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#repeatoptions&#34;&gt;RepeatOptions&lt;/a&gt;. Configured repeat options, if any&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;repeatoptions&#34;&gt;&lt;code&gt;RepeatOptions&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The following table explains the usage of the repeat option JSON fields:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;mode&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;RepeatMode&lt;/code&gt; - &amp;ldquo;variable&amp;rdquo;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;value&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;direction?&lt;/td&gt;
              &lt;td&gt;Options are &lt;code&gt;h&lt;/code&gt; for horizontal and &lt;code&gt;v&lt;/code&gt; for vertical.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;maxPerRow?&lt;/td&gt;
              &lt;td&gt;integer&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;gridlayoutrowspec&#34;&gt;&lt;code&gt;GridLayoutRowSpec&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The following table explains the usage of the grid layout row JSON fields:&lt;/p&gt;
&lt;!-- prettier-ignore-start --&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;y&lt;/td&gt;
              &lt;td&gt;integer. Position of the row y-axis&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;collapsed&lt;/td&gt;
              &lt;td&gt;bool. Whether or not the row is collapsed&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;title&lt;/td&gt;
              &lt;td&gt;Row title&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;elements&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#gridlayoutitemspec&#34;&gt;&lt;code&gt;[...GridLayoutItemKind]&lt;/code&gt;&lt;/a&gt;. Grid items in the row will have their y value be relative to the row&amp;rsquo;s y value. This means a panel positioned at &lt;code&gt;y: 0&lt;/code&gt; in a row with &lt;code&gt;y: 10&lt;/code&gt; will be positioned at &lt;code&gt;y: 11&lt;/code&gt; (row header has a height of 1) in the dashboard.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;repeat?&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#rowrepeatoptions&#34;&gt;RowRepeatOptions&lt;/a&gt; Configured row repeat options, if any&lt;/p&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;!-- prettier-ignore-end --&gt;
&lt;h4 id=&#34;rowrepeatoptions&#34;&gt;&lt;code&gt;RowRepeatOptions&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;mode&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;RepeatMode&lt;/code&gt; - &amp;ldquo;variable&amp;rdquo;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;value&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;autogridlayoutkind&#34;&gt;&lt;code&gt;AutoGridLayoutKind&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;With an auto grid, Grafana sizes and positions your panels for the best fit based on the column and row constraints that you set.
This layout corresponds to the &lt;strong&gt;Auto grid&lt;/strong&gt; option in the UI.&lt;/p&gt;
&lt;p&gt;Following is the JSON for a default auto grid layout and a grid layout item:&lt;/p&gt;
&lt;!-- prettier-ignore-end --&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;    &amp;#34;kind&amp;#34;: &amp;#34;AutoGridLayout&amp;#34;,
    &amp;#34;spec&amp;#34;: {
      &amp;#34;columnWidthMode&amp;#34;: &amp;#34;standard&amp;#34;,
      &amp;#34;fillScreen&amp;#34;: false,
      &amp;#34;items&amp;#34;: [
        {
          &amp;#34;kind&amp;#34;: &amp;#34;AutoGridLayoutItem&amp;#34;,
          &amp;#34;spec&amp;#34;: {
            &amp;#34;element&amp;#34;: {...},
          }
        }
      ],
      &amp;#34;maxColumnCount&amp;#34;: 3,
      &amp;#34;rowHeightMode&amp;#34;: &amp;#34;standard&amp;#34;
    }&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;AutoGridLayoutKind&lt;/code&gt; consists of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;kind: &amp;ldquo;AutoGridLayout&amp;rdquo;&lt;/li&gt;
&lt;li&gt;spec: &lt;a href=&#34;#autogridlayoutspec&#34;&gt;AutoGridLayoutSpec&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;autogridlayoutspec&#34;&gt;&lt;code&gt;AutoGridLayoutSpec&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The following table explains the usage of the auto grid layout JSON fields:&lt;/p&gt;
&lt;!-- prettier-ignore-start --&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;maxColumnCount?&lt;/td&gt;
              &lt;td&gt;number. Default is &lt;code&gt;3&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;columnWidthMode&lt;/td&gt;
              &lt;td&gt;Options are: &lt;code&gt;narrow&lt;/code&gt;, &lt;code&gt;standard&lt;/code&gt;, &lt;code&gt;wide&lt;/code&gt;, and &lt;code&gt;custom&lt;/code&gt;. Default is &lt;code&gt;standard&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;columnWidth?&lt;/td&gt;
              &lt;td&gt;number&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;rowHeightMode&lt;/td&gt;
              &lt;td&gt;Options are: &lt;code&gt;short&lt;/code&gt;, &lt;code&gt;standard&lt;/code&gt;, &lt;code&gt;tall&lt;/code&gt;, and &lt;code&gt;custom&lt;/code&gt;. Default is &lt;code&gt;standard&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;rowHeight?&lt;/td&gt;
              &lt;td&gt;number&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;fillScreen?&lt;/td&gt;
              &lt;td&gt;bool. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;items&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;AutoGridLayoutItemKind&lt;/code&gt;. Consists of:&lt;ul&gt;&lt;li&gt;kind: &amp;ldquo;AutoGridLayoutItem&amp;rdquo;&lt;/li&gt;&lt;li&gt;spec: &lt;a href=&#34;#autogridlayoutitemspec&#34;&gt;AutoGridLayoutItemSpec&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;!-- prettier-ignore-end --&gt;
&lt;h4 id=&#34;autogridlayoutitemspec&#34;&gt;&lt;code&gt;AutoGridLayoutItemSpec&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The following table explains the usage of the auto grid layout item JSON fields:&lt;/p&gt;
&lt;!-- prettier-ignore-start --&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;element&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;ElementReference&lt;/code&gt;. Reference to a 
    &lt;a href=&#34;/docs/grafana/v12.4/observability-as-code/schema-v2/panel-schema/&#34;&gt;&lt;code&gt;PanelKind&lt;/code&gt;&lt;/a&gt; from &lt;code&gt;dashboard.spec.elements&lt;/code&gt; expressed as JSON Schema reference.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;repeat?&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#autogridrepeatoptions&#34;&gt;AutoGridRepeatOptions&lt;/a&gt;. Configured repeat options, if any.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;conditionalRendering?&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;ConditionalRenderingGroupKind&lt;/code&gt;. Rules for hiding or showing panels, if any. Consists of:&lt;ul&gt;&lt;li&gt;kind: &amp;ldquo;ConditionalRenderingGroup&amp;rdquo;&lt;/li&gt;&lt;li&gt;spec: &lt;a href=&#34;#conditionalrenderinggroupspec&#34;&gt;ConditionalRenderingGroupSpec&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;!-- prettier-ignore-end --&gt;
&lt;h5 id=&#34;autogridrepeatoptions&#34;&gt;&lt;code&gt;AutoGridRepeatOptions&lt;/code&gt;&lt;/h5&gt;
&lt;p&gt;The following table explains the usage of the auto grid repeat option JSON fields:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;mode&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;RepeatMode&lt;/code&gt; - &amp;ldquo;variable&amp;rdquo;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;value&lt;/td&gt;
              &lt;td&gt;String&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h5 id=&#34;conditionalrenderinggroupspec&#34;&gt;&lt;code&gt;ConditionalRenderingGroupSpec&lt;/code&gt;&lt;/h5&gt;
&lt;!-- prettier-ignore-start --&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;visibility&lt;/td&gt;
              &lt;td&gt;Options are &lt;code&gt;show&lt;/code&gt; and &lt;code&gt;hide&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;condition&lt;/td&gt;
              &lt;td&gt;Options are &lt;code&gt;and&lt;/code&gt; and &lt;code&gt;or&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;items&lt;/td&gt;
              &lt;td&gt;Options are:&lt;ul&gt;&lt;li&gt;ConditionalRenderingVariableKind&lt;ul&gt;&lt;li&gt;kind: &amp;ldquo;ConditionalRenderingVariable&amp;rdquo;&lt;/li&gt;&lt;li&gt;spec: &lt;a href=&#34;#conditionalrenderingvariablespec&#34;&gt;ConditionalRenderingVariableSpec&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;ConditionalRenderingDataKind&lt;ul&gt;&lt;li&gt;kind: &amp;ldquo;ConditionalRenderingData&amp;rdquo;&lt;/li&gt;&lt;li&gt;spec: &lt;a href=&#34;#conditionalrenderingdataspec&#34;&gt;ConditionalRenderingDataSpec&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;ConditionalRenderingTimeRangeSizeKind&lt;ul&gt;&lt;li&gt;kind: &amp;ldquo;ConditionalRenderingTimeRangeSize&amp;rdquo;&lt;/li&gt;&lt;li&gt;spec: &lt;a href=&#34;#conditionalrenderingtimerangesizespec&#34;&gt;ConditionalRenderingTimeRangeSizeSpec&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;!-- prettier-ignore-end --&gt;
&lt;h6 id=&#34;conditionalrenderingvariablespec&#34;&gt;&lt;code&gt;ConditionalRenderingVariableSpec&lt;/code&gt;&lt;/h6&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;variable&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;operator&lt;/td&gt;
              &lt;td&gt;Options are &lt;code&gt;equals&lt;/code&gt; and &lt;code&gt;notEquals&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;value&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h6 id=&#34;conditionalrenderingdataspec&#34;&gt;&lt;code&gt;ConditionalRenderingDataSpec&lt;/code&gt;&lt;/h6&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;value&lt;/td&gt;
              &lt;td&gt;bool&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h6 id=&#34;conditionalrenderingtimerangesizespec&#34;&gt;&lt;code&gt;ConditionalRenderingTimeRangeSizeSpec&lt;/code&gt;&lt;/h6&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;value&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;rowslayoutkind&#34;&gt;&lt;code&gt;RowsLayoutKind&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;RowsLayoutKind&lt;/code&gt; is one of two options that you can use to group panels.
You can nest any other kind of layout inside a layout row.
Rows can also be nested in auto grids or tabs.&lt;/p&gt;
&lt;p&gt;Following is the JSON for a default rows layout row:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;    &amp;#34;kind&amp;#34;: &amp;#34;RowsLayout&amp;#34;,
    &amp;#34;spec&amp;#34;: {
      &amp;#34;rows&amp;#34;: [
        {
          &amp;#34;kind&amp;#34;: &amp;#34;RowsLayoutRow&amp;#34;,
          &amp;#34;spec&amp;#34;: {
            &amp;#34;layout&amp;#34;: {
              &amp;#34;kind&amp;#34;: &amp;#34;GridLayout&amp;#34;, // Can also be AutoGridLayout or TabsLayout
              &amp;#34;spec&amp;#34;: {...}
            },
            &amp;#34;title&amp;#34;: &amp;#34;&amp;#34;
          }
        }
      ]
    }&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;RowsLayoutKind&lt;/code&gt; consists of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;kind: RowsLayout&lt;/li&gt;
&lt;li&gt;spec: RowsLayoutSpec
&lt;ul&gt;
&lt;li&gt;rows: RowsLayoutRowKind
&lt;ul&gt;
&lt;li&gt;kind: RowsLayoutRow&lt;/li&gt;
&lt;li&gt;spec: &lt;a href=&#34;#rowslayoutrowspec&#34;&gt;RowsLayoutRowSpec&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;rowslayoutrowspec&#34;&gt;&lt;code&gt;RowsLayoutRowSpec&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The following table explains the usage of the rows layout row JSON fields:&lt;/p&gt;
&lt;!-- prettier-ignore-start --&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;title?&lt;/td&gt;
              &lt;td&gt;Title of the row.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;collapse&lt;/td&gt;
              &lt;td&gt;bool. Whether or not the row is collapsed.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;hideHeader?&lt;/td&gt;
              &lt;td&gt;bool. Whether the row header is hidden or shown.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;fullScreen?&lt;/td&gt;
              &lt;td&gt;bool. Whether or not the row takes up the full screen.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;conditionalRendering?&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;ConditionalRenderingGroupKind&lt;/code&gt;. Rules for hiding or showing rows, if any. Consists of:&lt;ul&gt;&lt;li&gt;kind: &amp;ldquo;ConditionalRenderingGroup&amp;rdquo;&lt;/li&gt;&lt;li&gt;spec: &lt;a href=&#34;#conditionalrenderinggroupspec&#34;&gt;ConditionalRenderingGroupSpec&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;repeat?&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#rowrepeatoptions&#34;&gt;RowRepeatOptions&lt;/a&gt;. Configured repeat options, if any.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;layout&lt;/td&gt;
              &lt;td&gt;Supported layouts are:&lt;ul&gt;&lt;li&gt;&lt;a href=&#34;#gridlayoutkind&#34;&gt;GridLayoutKind&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&#34;#rowslayoutkind&#34;&gt;RowsLayoutKind&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&#34;#autogridlayoutkind&#34;&gt;AutoGridLayoutKind&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&#34;#tabslayoutkind&#34;&gt;TabsLayoutKind&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;!-- prettier-ignore-end --&gt;
&lt;h2 id=&#34;tabslayoutkind&#34;&gt;&lt;code&gt;TabsLayoutKind&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;TabsLayoutKind&lt;/code&gt; is one of two options that you can use to group panels.
You can nest any other kind of layout inside a tab.
Tabs can also be nested in auto grids or rows.&lt;/p&gt;
&lt;p&gt;Following is the JSON for a default tabs layout tab and a tab:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;    &amp;#34;kind&amp;#34;: &amp;#34;TabsLayout&amp;#34;,
    &amp;#34;spec&amp;#34;: {
      &amp;#34;tabs&amp;#34;: [
        {
          &amp;#34;kind&amp;#34;: &amp;#34;TabsLayoutTab&amp;#34;,
          &amp;#34;spec&amp;#34;: {
            &amp;#34;layout&amp;#34;: {
              &amp;#34;kind&amp;#34;: &amp;#34;GridLayout&amp;#34;, // Can also be AutoGridLayout or RowsLayout
              &amp;#34;spec&amp;#34;: {...}
            },
            &amp;#34;title&amp;#34;: &amp;#34;New tab&amp;#34;
          }
        }
      ]
    }&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;TabsLayoutKind&lt;/code&gt; consists of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;kind: TabsLayout
&lt;ul&gt;
&lt;li&gt;spec: TabsLayoutSpec
&lt;ul&gt;
&lt;li&gt;tabs: TabsLayoutTabKind
&lt;ul&gt;
&lt;li&gt;kind: TabsLayoutTab&lt;/li&gt;
&lt;li&gt;spec: &lt;a href=&#34;#tabslayouttabspec&#34;&gt;TabsLayoutTabSpec&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;tabslayouttabspec&#34;&gt;&lt;code&gt;TabsLayoutTabSpec&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The following table explains the usage of the tabs layout tab JSON fields:&lt;/p&gt;
&lt;!-- prettier-ignore-start --&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;title?&lt;/td&gt;
              &lt;td&gt;The title of the tab.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;layout&lt;/td&gt;
              &lt;td&gt;Supported layouts are:&lt;ul&gt;&lt;li&gt;&lt;a href=&#34;#gridlayoutkind&#34;&gt;GridLayoutKind&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&#34;#rowslayoutkind&#34;&gt;RowsLayoutKind&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&#34;#autogridlayoutkind&#34;&gt;AutoGridLayoutKind&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&#34;#tabslayoutkind&#34;&gt;TabsLayoutKind&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;conditionalRendering?&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;ConditionalRenderingGroupKind&lt;/code&gt;. Rules for hiding or showing panels, if any. Consists of:&lt;ul&gt;&lt;li&gt;kind: &amp;ldquo;ConditionalRenderingGroup&amp;rdquo;&lt;/li&gt;&lt;li&gt;spec: &lt;a href=&#34;#conditionalrenderinggroupspec&#34;&gt;ConditionalRenderingGroupSpec&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;!-- prettier-ignore-end --&gt;
]]></content><description>&lt;h1 id="layout">&lt;code>layout&lt;/code>&lt;/h1>
&lt;p>There are four layout options offering two types of panel control:&lt;/p>
&lt;p>&lt;strong>Panel layout options&lt;/strong>&lt;/p>
&lt;p>These options control the size and position of panels:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="#gridlayoutkind">GridLayoutKind&lt;/a> - Corresponds to the &lt;strong>Custom&lt;/strong> option in the UI. You define panel size and panel positions using x- and y- settings.&lt;/li>
&lt;li>&lt;a href="#autogridlayoutkind">AutoGridLayoutKind&lt;/a> - Corresponds to the &lt;strong>Auto grid&lt;/strong> option in the UI. Panel size and position are automatically set based on column and row parameters.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Panel grouping options&lt;/strong>&lt;/p></description></item><item><title>links</title><link>https://grafana.com/docs/grafana/v12.4/as-code/observability-as-code/schema-v2/links-schema/</link><pubDate>Fri, 03 Apr 2026 12:35:46 -0500</pubDate><guid>https://grafana.com/docs/grafana/v12.4/as-code/observability-as-code/schema-v2/links-schema/</guid><content><![CDATA[&lt;h1 id=&#34;links&#34;&gt;&lt;code&gt;links&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;The &lt;code&gt;links&lt;/code&gt; schema is the configuration for links with references to other dashboards or external websites.
Following are the default JSON fields:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;  &amp;#34;links&amp;#34;: [
    {
      &amp;#34;asDropdown&amp;#34;: false,
      &amp;#34;icon&amp;#34;: &amp;#34;&amp;#34;,
      &amp;#34;includeVars&amp;#34;: false,
      &amp;#34;keepTime&amp;#34;: false,
      &amp;#34;tags&amp;#34;: [],
      &amp;#34;targetBlank&amp;#34;: false,
      &amp;#34;title&amp;#34;: &amp;#34;&amp;#34;,
      &amp;#34;tooltip&amp;#34;: &amp;#34;&amp;#34;,
      &amp;#34;type&amp;#34;: &amp;#34;link&amp;#34;,
    },
  ],&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;dashboardlink&#34;&gt;&lt;code&gt;DashboardLink&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;The following table explains the usage of the dashboard link JSON fields.
The table includes default and other fields:&lt;/p&gt;
&lt;!-- prettier-ignore-start --&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;title&lt;/td&gt;
              &lt;td&gt;string. Title to display with the link.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;type&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;DashboardLinkType&lt;/code&gt;. Link type. Accepted values are:&lt;ul&gt;&lt;li&gt;dashboards - To refer to another dashboard&lt;/li&gt;&lt;li&gt;link - To refer to an external resource&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;icon&lt;/td&gt;
              &lt;td&gt;string. Icon name to be displayed with the link.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;tooltip&lt;/td&gt;
              &lt;td&gt;string. Tooltip to display when the user hovers their mouse over it.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;url?&lt;/td&gt;
              &lt;td&gt;string. Link URL. Only required/valid if the type is link.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;tags&lt;/td&gt;
              &lt;td&gt;string. List of tags to limit the linked dashboards. If empty, all dashboards will be displayed. Only valid if the type is dashboards.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;asDropdown&lt;/td&gt;
              &lt;td&gt;bool. 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. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;targetBlank&lt;/td&gt;
              &lt;td&gt;bool. If true, the link will be opened in a new tab. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;includeVars&lt;/td&gt;
              &lt;td&gt;bool. If true, includes current template variables values in the link as query params. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;keepTime&lt;/td&gt;
              &lt;td&gt;bool. If true, includes current time range in the link as query params. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;placement?&lt;/td&gt;
              &lt;td&gt;string. Use placement to display the link somewhere else on the dashboard other than above the visualizations. Use  the &lt;code&gt;inControlsMenu&lt;/code&gt; parameter to render the link in the dashboard controls dropdown menu.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;!-- prettier-ignore-end --&gt;
]]></content><description>&lt;h1 id="links">&lt;code>links&lt;/code>&lt;/h1>
&lt;p>The &lt;code>links&lt;/code> schema is the configuration for links with references to other dashboards or external websites.
Following are the default JSON fields:&lt;/p>
&lt;div class="code-snippet ">&lt;div class="lang-toolbar">
&lt;span class="lang-toolbar__item lang-toolbar__item-active">JSON&lt;/span>
&lt;span class="code-clipboard">
&lt;button x-data="app_code_snippet()" x-init="init()" @click="copy()">
&lt;img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
&lt;span>Copy&lt;/span>
&lt;/button>
&lt;/span>
&lt;div class="lang-toolbar__border">&lt;/div>
&lt;/div>&lt;div class="code-snippet ">
&lt;pre data-expanded="false">&lt;code class="language-json"> &amp;#34;links&amp;#34;: [
{
&amp;#34;asDropdown&amp;#34;: false,
&amp;#34;icon&amp;#34;: &amp;#34;&amp;#34;,
&amp;#34;includeVars&amp;#34;: false,
&amp;#34;keepTime&amp;#34;: false,
&amp;#34;tags&amp;#34;: [],
&amp;#34;targetBlank&amp;#34;: false,
&amp;#34;title&amp;#34;: &amp;#34;&amp;#34;,
&amp;#34;tooltip&amp;#34;: &amp;#34;&amp;#34;,
&amp;#34;type&amp;#34;: &amp;#34;link&amp;#34;,
},
],&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;h2 id="dashboardlink">&lt;code>DashboardLink&lt;/code>&lt;/h2>
&lt;p>The following table explains the usage of the dashboard link JSON fields.
The table includes default and other fields:&lt;/p></description></item><item><title>timesettings</title><link>https://grafana.com/docs/grafana/v12.4/as-code/observability-as-code/schema-v2/timesettings-schema/</link><pubDate>Fri, 03 Apr 2026 12:35:46 -0500</pubDate><guid>https://grafana.com/docs/grafana/v12.4/as-code/observability-as-code/schema-v2/timesettings-schema/</guid><content><![CDATA[&lt;h1 id=&#34;timesettings&#34;&gt;&lt;code&gt;timeSettings&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;The &lt;code&gt;TimeSettingsSpec&lt;/code&gt; defines the default time configuration for the time picker and the refresh picker for the specific dashboard.&lt;/p&gt;
&lt;p&gt;Following is the JSON for default time settings:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;  &amp;#34;timeSettings&amp;#34;: {
    &amp;#34;autoRefresh&amp;#34;: &amp;#34;&amp;#34;,
    &amp;#34;autoRefreshIntervals&amp;#34;: [
      &amp;#34;5s&amp;#34;,
      &amp;#34;10s&amp;#34;,
      &amp;#34;30s&amp;#34;,
      &amp;#34;1m&amp;#34;,
      &amp;#34;5m&amp;#34;,
      &amp;#34;15m&amp;#34;,
      &amp;#34;30m&amp;#34;,
      &amp;#34;1h&amp;#34;,
      &amp;#34;2h&amp;#34;,
      &amp;#34;1d&amp;#34;
    ],
    &amp;#34;fiscalYearStartMonth&amp;#34;: 0,
    &amp;#34;from&amp;#34;: &amp;#34;now-6h&amp;#34;,
    &amp;#34;hideTimepicker&amp;#34;: false,
    &amp;#34;timezone&amp;#34;: &amp;#34;browser&amp;#34;,
    &amp;#34;to&amp;#34;: &amp;#34;now&amp;#34;
  },&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;timeSettings&lt;/code&gt; consists of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#timesettingsspec&#34;&gt;TimeSettingsSpec&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;timesettingsspec&#34;&gt;&lt;code&gt;TimeSettingsSpec&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;The following table explains the usage of the time settings JSON fields:&lt;/p&gt;
&lt;!-- prettier-ignore-start --&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;timezone?&lt;/td&gt;
              &lt;td&gt;string. Timezone of dashboard. Accepted values are IANA TZDB zone ID, &lt;code&gt;browser&lt;/code&gt;, or &lt;code&gt;utc&lt;/code&gt;. Default is &lt;code&gt;browser&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;from&lt;/td&gt;
              &lt;td&gt;string. Start time range for dashboard. Accepted values are relative time strings like &lt;code&gt;now-6h&lt;/code&gt; or absolute time strings like &lt;code&gt;2020-07-10T08:00:00.000Z&lt;/code&gt;. Default is &lt;code&gt;now-6h&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;to&lt;/td&gt;
              &lt;td&gt;string. End time range for dashboard. Accepted values are relative time strings like &lt;code&gt;now-6h&lt;/code&gt; or absolute time strings like &lt;code&gt;2020-07-10T08:00:00.000Z&lt;/code&gt;. Default is &lt;code&gt;now&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;autoRefresh&lt;/td&gt;
              &lt;td&gt;string. Refresh rate of dashboard. Represented by interval string. For example: &lt;code&gt;5s&lt;/code&gt;, &lt;code&gt;1m&lt;/code&gt;, &lt;code&gt;1h&lt;/code&gt;, &lt;code&gt;1d&lt;/code&gt;. No default. In schema v1: &lt;code&gt;refresh&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;autoRefreshIntervals&lt;/td&gt;
              &lt;td&gt;string. Interval options available in the refresh picker drop-down menu. The default array is &lt;code&gt;[&amp;quot;5s&amp;quot;, &amp;quot;10s&amp;quot;, &amp;quot;30s&amp;quot;, &amp;quot;1m&amp;quot;, &amp;quot;5m&amp;quot;, &amp;quot;15m&amp;quot;, &amp;quot;30m&amp;quot;, &amp;quot;1h&amp;quot;, &amp;quot;2h&amp;quot;, &amp;quot;1d&amp;quot;]&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;quickRanges?&lt;/td&gt;
              &lt;td&gt;Selectable options available in the time picker drop-down menu. Has no effect on provisioned dashboard. Defined in the &lt;a href=&#34;#timerangeoption&#34;&gt;&lt;code&gt;TimeRangeOption&lt;/code&gt;&lt;/a&gt; spec. In schema v1: &lt;code&gt;timepicker.quick_ranges&lt;/code&gt;, not exposed in the UI.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;hideTimepicker&lt;/td&gt;
              &lt;td&gt;bool. Whether or not the time picker is visible. Default is &lt;code&gt;false&lt;/code&gt;. In schema v1: &lt;code&gt;timepicker.hidden&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;weekStart?&lt;/td&gt;
              &lt;td&gt;Day when the week starts. Expressed by the name of the day in lowercase. For example: &lt;code&gt;monday&lt;/code&gt;. Options are &lt;code&gt;saturday&lt;/code&gt;, &lt;code&gt;monday&lt;/code&gt;, and &lt;code&gt;sunday&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;fiscalYearStartMonth&lt;/td&gt;
              &lt;td&gt;The month that the fiscal year starts on. &lt;code&gt;0&lt;/code&gt; = January, &lt;code&gt;11&lt;/code&gt; = December&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;nowDelay?&lt;/td&gt;
              &lt;td&gt;string. Override the &amp;ldquo;now&amp;rdquo; time by entering a time delay. Use this option to accommodate known delays in data aggregation to avoid null values. In schema v1: &lt;code&gt;timepicker.nowDelay&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;!-- prettier-ignore-end --&gt;
&lt;h3 id=&#34;timerangeoption&#34;&gt;&lt;code&gt;TimeRangeOption&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The following table explains the usage of the time range option JSON fields:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;display&lt;/td&gt;
              &lt;td&gt;string. Default is &lt;code&gt;Last 6 hours&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;from&lt;/td&gt;
              &lt;td&gt;string. Default is &lt;code&gt;now-6h&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;to&lt;/td&gt;
              &lt;td&gt;string. Default is &lt;code&gt;now&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;]]></content><description>&lt;h1 id="timesettings">&lt;code>timeSettings&lt;/code>&lt;/h1>
&lt;p>The &lt;code>TimeSettingsSpec&lt;/code> defines the default time configuration for the time picker and the refresh picker for the specific dashboard.&lt;/p>
&lt;p>Following is the JSON for default time settings:&lt;/p></description></item><item><title>variables</title><link>https://grafana.com/docs/grafana/v12.4/as-code/observability-as-code/schema-v2/variables-schema/</link><pubDate>Fri, 03 Apr 2026 12:35:46 -0500</pubDate><guid>https://grafana.com/docs/grafana/v12.4/as-code/observability-as-code/schema-v2/variables-schema/</guid><content><![CDATA[&lt;h1 id=&#34;variables&#34;&gt;&lt;code&gt;variables&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;The available variable types described in the following sections:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#queryvariablekind&#34;&gt;QueryVariableKind&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#textvariablekind&#34;&gt;TextVariableKind&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#constantvariablekind&#34;&gt;ConstantVariableKind&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#datasourcevariablekind&#34;&gt;DatasourceVariableKind&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#intervalvariablekind&#34;&gt;IntervalVariableKind&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#customvariablekind&#34;&gt;CustomVariableKind&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#switchvariablekind&#34;&gt;SwitchVariableKind&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#groupbyvariablekind&#34;&gt;GroupByVariableKind&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#adhocvariablekind&#34;&gt;AdhocVariableKind&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;queryvariablekind&#34;&gt;&lt;code&gt;QueryVariableKind&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Following is the JSON for a default query variable:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;  &amp;#34;variables&amp;#34;: [
    {
      &amp;#34;kind&amp;#34;: &amp;#34;QueryVariable&amp;#34;,
      &amp;#34;spec&amp;#34;: {
        &amp;#34;current&amp;#34;: {
          &amp;#34;text&amp;#34;: &amp;#34;&amp;#34;,
          &amp;#34;value&amp;#34;: &amp;#34;&amp;#34;
        },
        &amp;#34;hide&amp;#34;: &amp;#34;dontHide&amp;#34;,
        &amp;#34;includeAll&amp;#34;: false,
        &amp;#34;multi&amp;#34;: false,
        &amp;#34;name&amp;#34;: &amp;#34;&amp;#34;,
        &amp;#34;options&amp;#34;: [],
        &amp;#34;query&amp;#34;: defaultDataQueryKind(),
        &amp;#34;refresh&amp;#34;: &amp;#34;never&amp;#34;,
        &amp;#34;regex&amp;#34;: &amp;#34;&amp;#34;,
        &amp;#34;skipUrlSync&amp;#34;: false,
        &amp;#34;sort&amp;#34;: &amp;#34;disabled&amp;#34;
      }
    }
  ]&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;QueryVariableKind&lt;/code&gt; consists of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;kind: &amp;ldquo;QueryVariable&amp;rdquo;&lt;/li&gt;
&lt;li&gt;spec: &lt;a href=&#34;#queryvariablespec&#34;&gt;QueryVariableSpec&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;queryvariablespec&#34;&gt;&lt;code&gt;QueryVariableSpec&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The following table explains the usage of the query variable JSON fields:&lt;/p&gt;
&lt;!-- prettier-ignore-start --&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;name&lt;/td&gt;
              &lt;td&gt;string. Name of the variable.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;current&lt;/td&gt;
              &lt;td&gt;&amp;ldquo;Text&amp;rdquo; and a &amp;ldquo;value&amp;rdquo; or &lt;a href=&#34;#variableoption&#34;&gt;&lt;code&gt;VariableOption&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;label?&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;hide&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;VariableHide&lt;/code&gt;. Options are: &lt;code&gt;dontHide&lt;/code&gt;, &lt;code&gt;hideLabel&lt;/code&gt;, and &lt;code&gt;hideVariable&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;refresh&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;VariableRefresh&lt;/code&gt;. Options are &lt;code&gt;never&lt;/code&gt;, &lt;code&gt;onDashboardLoad&lt;/code&gt;, and &lt;code&gt;onTimeChanged&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;skipUrlSync&lt;/td&gt;
              &lt;td&gt;bool. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;description?&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;datasource?&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#datasourceref&#34;&gt;&lt;code&gt;DataSourceRef&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;query&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;DataQueryKind&lt;/code&gt;. Consists of:&lt;ul&gt;&lt;li&gt;kind: string&lt;/li&gt;&lt;li&gt;spec: string&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;regex&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;sort&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;VariableSort&lt;/code&gt;. Options are:&lt;ul&gt;&lt;li&gt;disabled&lt;/li&gt;&lt;li&gt;alphabeticalAsc&lt;/li&gt;&lt;li&gt;alphabeticalDesc&lt;/li&gt;&lt;li&gt;numericalAsc&lt;/li&gt;&lt;li&gt;numericalDesc&lt;/li&gt;&lt;li&gt;alphabeticalCaseInsensitiveAsc&lt;/li&gt;&lt;li&gt;alphabeticalCaseInsensitiveDesc&lt;/li&gt;&lt;li&gt;naturalAsc&lt;/li&gt;&lt;li&gt;naturalDesc&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;definition?&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;options&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#variableoption&#34;&gt;&lt;code&gt;VariableOption&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;multi&lt;/td&gt;
              &lt;td&gt;bool. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;includeAll&lt;/td&gt;
              &lt;td&gt;bool. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;allValue?&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;placeholder?&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;!-- prettier-ignore-end --&gt;
&lt;h4 id=&#34;variableoption&#34;&gt;&lt;code&gt;VariableOption&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;selected&lt;/td&gt;
              &lt;td&gt;bool. Whether or not the option is selected.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;text&lt;/td&gt;
              &lt;td&gt;string. Text to be displayed for the option.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;value&lt;/td&gt;
              &lt;td&gt;string. Value of the option.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;datasourceref&#34;&gt;&lt;code&gt;DataSourceRef&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;type?&lt;/td&gt;
              &lt;td&gt;string. The plugin type-id.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;uid?&lt;/td&gt;
              &lt;td&gt;The specific data source instance.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;textvariablekind&#34;&gt;&lt;code&gt;TextVariableKind&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Following is the JSON for a default text variable:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;  &amp;#34;variables&amp;#34;: [
    {
      &amp;#34;kind&amp;#34;: &amp;#34;TextVariable&amp;#34;,
      &amp;#34;spec&amp;#34;: {
        &amp;#34;current&amp;#34;: {
          &amp;#34;text&amp;#34;: &amp;#34;&amp;#34;,
          &amp;#34;value&amp;#34;: &amp;#34;&amp;#34;
        },
        &amp;#34;hide&amp;#34;: &amp;#34;dontHide&amp;#34;,
        &amp;#34;name&amp;#34;: &amp;#34;&amp;#34;,
        &amp;#34;query&amp;#34;: &amp;#34;&amp;#34;,
        &amp;#34;skipUrlSync&amp;#34;: false
      }
    }
  ]&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;TextVariableKind&lt;/code&gt; consists of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;kind: TextVariableKind&lt;/li&gt;
&lt;li&gt;spec: &lt;a href=&#34;#textvariablespec&#34;&gt;TextVariableSpec&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;textvariablespec&#34;&gt;&lt;code&gt;TextVariableSpec&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The following table explains the usage of the query variable JSON fields:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;name&lt;/td&gt;
              &lt;td&gt;string. Name of the variable.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;current&lt;/td&gt;
              &lt;td&gt;&amp;ldquo;Text&amp;rdquo; and a &amp;ldquo;value&amp;rdquo; or &lt;code&gt;VariableOption&lt;/code&gt;. Refer to the &lt;a href=&#34;#variableoption&#34;&gt;&lt;code&gt;VariableOption&lt;/code&gt; definition&lt;/a&gt; under &lt;code&gt;QueryVariableKind&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;query&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;label?&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;hide&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;VariableHide&lt;/code&gt;. Options are: &lt;code&gt;dontHide&lt;/code&gt;, &lt;code&gt;hideLabel&lt;/code&gt;, and &lt;code&gt;hideVariable&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;skipUrlSync&lt;/td&gt;
              &lt;td&gt;bool. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;description?&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;constantvariablekind&#34;&gt;&lt;code&gt;ConstantVariableKind&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Following is the JSON for a default constant variable:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;  &amp;#34;variables&amp;#34;: [
    {
      &amp;#34;kind&amp;#34;: &amp;#34;ConstantVariable&amp;#34;,
      &amp;#34;spec&amp;#34;: {
        &amp;#34;current&amp;#34;: {
          &amp;#34;text&amp;#34;: &amp;#34;&amp;#34;,
          &amp;#34;value&amp;#34;: &amp;#34;&amp;#34;
        },
        &amp;#34;hide&amp;#34;: &amp;#34;hideVariable&amp;#34;,
        &amp;#34;name&amp;#34;: &amp;#34;&amp;#34;,
        &amp;#34;query&amp;#34;: &amp;#34;&amp;#34;,
        &amp;#34;skipUrlSync&amp;#34;: true
      }
    }
  ]&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;ConstantVariableKind&lt;/code&gt; consists of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;kind: &amp;ldquo;ConstantVariable&amp;rdquo;&lt;/li&gt;
&lt;li&gt;spec: &lt;a href=&#34;#constantvariablespec&#34;&gt;ConstantVariableSpec&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;constantvariablespec&#34;&gt;&lt;code&gt;ConstantVariableSpec&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The following table explains the usage of the constant variable JSON fields:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;name&lt;/td&gt;
              &lt;td&gt;string. Name of the variable.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;query&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;current&lt;/td&gt;
              &lt;td&gt;&amp;ldquo;Text&amp;rdquo; and a &amp;ldquo;value&amp;rdquo; or &lt;code&gt;VariableOption&lt;/code&gt;. Refer to the &lt;a href=&#34;#variableoption&#34;&gt;&lt;code&gt;VariableOption&lt;/code&gt; definition&lt;/a&gt; under &lt;code&gt;QueryVariableKind&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;label?&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;hide&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;VariableHide&lt;/code&gt;. Options are: &lt;code&gt;dontHide&lt;/code&gt;, &lt;code&gt;hideLabel&lt;/code&gt;, and &lt;code&gt;hideVariable&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;skipUrlSync&lt;/td&gt;
              &lt;td&gt;bool. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;description?&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;datasourcevariablekind&#34;&gt;&lt;code&gt;DatasourceVariableKind&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Following is the JSON for a default data source variable:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;  &amp;#34;variables&amp;#34;: [
    {
      &amp;#34;kind&amp;#34;: &amp;#34;DatasourceVariable&amp;#34;,
      &amp;#34;spec&amp;#34;: {
        &amp;#34;current&amp;#34;: {
          &amp;#34;text&amp;#34;: &amp;#34;&amp;#34;,
          &amp;#34;value&amp;#34;: &amp;#34;&amp;#34;
        },
        &amp;#34;hide&amp;#34;: &amp;#34;dontHide&amp;#34;,
        &amp;#34;includeAll&amp;#34;: false,
        &amp;#34;multi&amp;#34;: false,
        &amp;#34;name&amp;#34;: &amp;#34;&amp;#34;,
        &amp;#34;options&amp;#34;: [],
        &amp;#34;pluginId&amp;#34;: &amp;#34;&amp;#34;,
        &amp;#34;refresh&amp;#34;: &amp;#34;never&amp;#34;,
        &amp;#34;regex&amp;#34;: &amp;#34;&amp;#34;,
        &amp;#34;skipUrlSync&amp;#34;: false
      }
    }
  ]&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;DatasourceVariableKind&lt;/code&gt; consists of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;kind: &amp;ldquo;DatasourceVariable&amp;rdquo;&lt;/li&gt;
&lt;li&gt;spec: &lt;a href=&#34;#datasourcevariablespec&#34;&gt;DatasourceVariableSpec&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;datasourcevariablespec&#34;&gt;&lt;code&gt;DatasourceVariableSpec&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The following table explains the usage of the data source variable JSON fields:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;name&lt;/td&gt;
              &lt;td&gt;string. Name of the variable.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;pluginId&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;refresh&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;VariableRefresh&lt;/code&gt;. Options are &lt;code&gt;never&lt;/code&gt;, &lt;code&gt;onDashboardLoad&lt;/code&gt;, and &lt;code&gt;onTimeChanged&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;regex&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;current&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;Text&lt;/code&gt; and a &lt;code&gt;value&lt;/code&gt; or &lt;code&gt;VariableOption&lt;/code&gt;. Refer to the &lt;a href=&#34;#variableoption&#34;&gt;&lt;code&gt;VariableOption&lt;/code&gt; definition&lt;/a&gt; under &lt;code&gt;QueryVariableKind&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;options&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;VariableOption&lt;/code&gt;. Refer to the &lt;a href=&#34;#variableoption&#34;&gt;&lt;code&gt;VariableOption&lt;/code&gt; definition&lt;/a&gt; under &lt;code&gt;QueryVariableKind&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;multi&lt;/td&gt;
              &lt;td&gt;bool. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;includeAll&lt;/td&gt;
              &lt;td&gt;bool. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;allValue?&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;label?&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;hide&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;VariableHide&lt;/code&gt;. Options are: &lt;code&gt;dontHide&lt;/code&gt;, &lt;code&gt;hideLabel&lt;/code&gt;, and &lt;code&gt;hideVariable&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;skipUrlSync&lt;/td&gt;
              &lt;td&gt;bool. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;description?&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;intervalvariablekind&#34;&gt;&lt;code&gt;IntervalVariableKind&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Following is the JSON for a default interval variable:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;  &amp;#34;variables&amp;#34;: [
    {
      &amp;#34;kind&amp;#34;: &amp;#34;IntervalVariable&amp;#34;,
      &amp;#34;spec&amp;#34;: {
        &amp;#34;auto&amp;#34;: false,
        &amp;#34;auto_count&amp;#34;: 0,
        &amp;#34;auto_min&amp;#34;: &amp;#34;&amp;#34;,
        &amp;#34;current&amp;#34;: {
          &amp;#34;text&amp;#34;: &amp;#34;&amp;#34;,
          &amp;#34;value&amp;#34;: &amp;#34;&amp;#34;
        },
        &amp;#34;hide&amp;#34;: &amp;#34;dontHide&amp;#34;,
        &amp;#34;name&amp;#34;: &amp;#34;&amp;#34;,
        &amp;#34;options&amp;#34;: [],
        &amp;#34;query&amp;#34;: &amp;#34;&amp;#34;,
        &amp;#34;refresh&amp;#34;: &amp;#34;never&amp;#34;,
        &amp;#34;skipUrlSync&amp;#34;: false
      }
    }
  ]&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;IntervalVariableKind&lt;/code&gt; consists of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;kind: &amp;ldquo;IntervalVariable&amp;rdquo;&lt;/li&gt;
&lt;li&gt;spec: &lt;a href=&#34;#intervalvariablespec&#34;&gt;IntervalVariableSpec&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;intervalvariablespec&#34;&gt;&lt;code&gt;IntervalVariableSpec&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The following table explains the usage of the interval variable JSON fields:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;name&lt;/td&gt;
              &lt;td&gt;string. Name of the variable.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;query&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;current&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;Text&lt;/code&gt; and a &lt;code&gt;value&lt;/code&gt; or &lt;code&gt;VariableOption&lt;/code&gt;. Refer to the &lt;a href=&#34;#variableoption&#34;&gt;&lt;code&gt;VariableOption&lt;/code&gt; definition&lt;/a&gt; under &lt;code&gt;QueryVariableKind&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;options&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;VariableOption&lt;/code&gt;. Refer to the &lt;a href=&#34;#variableoption&#34;&gt;&lt;code&gt;VariableOption&lt;/code&gt; definition&lt;/a&gt; under &lt;code&gt;QueryVariableKind&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;auto&lt;/td&gt;
              &lt;td&gt;bool. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;auto_count&lt;/td&gt;
              &lt;td&gt;integer. Default is &lt;code&gt;0&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;refresh&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;VariableRefresh&lt;/code&gt;. Options are &lt;code&gt;never&lt;/code&gt;, &lt;code&gt;onDashboardLoad&lt;/code&gt;, and &lt;code&gt;onTimeChanged&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;label?&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;hide&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;VariableHide&lt;/code&gt;. Options are: &lt;code&gt;dontHide&lt;/code&gt;, &lt;code&gt;hideLabel&lt;/code&gt;, and &lt;code&gt;hideVariable&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;skipUrlSync&lt;/td&gt;
              &lt;td&gt;bool. Default is &lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;description?&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;customvariablekind&#34;&gt;&lt;code&gt;CustomVariableKind&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Following is the JSON for a default custom variable:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;  &amp;#34;variables&amp;#34;: [
    {
      &amp;#34;kind&amp;#34;: &amp;#34;CustomVariable&amp;#34;,
      &amp;#34;spec&amp;#34;: {
        &amp;#34;current&amp;#34;: defaultVariableOption(),
        &amp;#34;hide&amp;#34;: &amp;#34;dontHide&amp;#34;,
        &amp;#34;includeAll&amp;#34;: false,
        &amp;#34;multi&amp;#34;: false,
        &amp;#34;name&amp;#34;: &amp;#34;&amp;#34;,
        &amp;#34;options&amp;#34;: [],
        &amp;#34;query&amp;#34;: &amp;#34;&amp;#34;,
        &amp;#34;skipUrlSync&amp;#34;: false
      }
    }
  ]&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;CustomVariableKind&lt;/code&gt; consists of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;kind: &amp;ldquo;CustomVariable&amp;rdquo;&lt;/li&gt;
&lt;li&gt;spec: &lt;a href=&#34;#customvariablespec&#34;&gt;CustomVariableSpec&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;customvariablespec&#34;&gt;&lt;code&gt;CustomVariableSpec&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The following table explains the usage of the custom variable JSON fields:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;name&lt;/td&gt;
              &lt;td&gt;string. Name of the variable.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;query&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;current&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;Text&lt;/code&gt; and a &lt;code&gt;value&lt;/code&gt; or &lt;code&gt;VariableOption&lt;/code&gt;. Refer to the &lt;a href=&#34;#variableoption&#34;&gt;&lt;code&gt;VariableOption&lt;/code&gt; definition&lt;/a&gt; under &lt;code&gt;QueryVariableKind&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;options&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;VariableOption&lt;/code&gt;. Refer to the &lt;a href=&#34;#variableoption&#34;&gt;&lt;code&gt;VariableOption&lt;/code&gt; definition&lt;/a&gt; under &lt;code&gt;QueryVariableKind&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;multi&lt;/td&gt;
              &lt;td&gt;bool. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;includeAll&lt;/td&gt;
              &lt;td&gt;bool. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;allValue?&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;label?&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;hide&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;VariableHide&lt;/code&gt;. Options are: &lt;code&gt;dontHide&lt;/code&gt;, &lt;code&gt;hideLabel&lt;/code&gt;, and &lt;code&gt;hideVariable&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;skipUrlSync&lt;/td&gt;
              &lt;td&gt;bool. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;description?&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;switchvariablekind&#34;&gt;&lt;code&gt;SwitchVariableKind&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Following is the JSON for a default switch variable:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;  &amp;#34;variables&amp;#34;: [
    {
      &amp;#34;kind&amp;#34;: &amp;#34;SwitchVariable&amp;#34;,
      &amp;#34;spec&amp;#34;: {
        &amp;#34;current&amp;#34;: &amp;#34;false&amp;#34;,
        &amp;#34;enabledValue&amp;#34;: &amp;#34;true&amp;#34;,
        &amp;#34;disabledValue&amp;#34;: &amp;#34;false&amp;#34;,
        &amp;#34;hide&amp;#34;: &amp;#34;dontHide&amp;#34;,
        &amp;#34;name&amp;#34;: &amp;#34;&amp;#34;,
        &amp;#34;skipUrlSync&amp;#34;: false
      }
    }
  ]&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;SwitchVariableKind&lt;/code&gt; consists of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;kind: &amp;ldquo;SwitchVariable&amp;rdquo;&lt;/li&gt;
&lt;li&gt;spec: &lt;a href=&#34;#switchvariablespec&#34;&gt;SwitchVariableSpec&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;switchvariablespec&#34;&gt;&lt;code&gt;SwitchVariableSpec&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The following table explains the usage of the switch variable JSON fields:&lt;/p&gt;
&lt;!-- prettier-ignore-start --&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;name&lt;/td&gt;
              &lt;td&gt;string. Name of the variable.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;current&lt;/td&gt;
              &lt;td&gt;string. Current value of the switch variable (either &lt;code&gt;enabledValue&lt;/code&gt; or &lt;code&gt;disabledValue&lt;/code&gt;).&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;enabledValue&lt;/td&gt;
              &lt;td&gt;string. Value when the switch is in the enabled state.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;disabledValue&lt;/td&gt;
              &lt;td&gt;string. Value when the switch is in the disabled state.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;label?&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;hide&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;VariableHide&lt;/code&gt;. Options are: &lt;code&gt;dontHide&lt;/code&gt;, &lt;code&gt;hideLabel&lt;/code&gt;, and &lt;code&gt;hideVariable&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;skipUrlSync&lt;/td&gt;
              &lt;td&gt;bool. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;description?&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;!-- prettier-ignore-end --&gt;
&lt;h2 id=&#34;groupbyvariablekind&#34;&gt;&lt;code&gt;GroupByVariableKind&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Following is the JSON for a default group by variable:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;  &amp;#34;variables&amp;#34;: [
    {
      &amp;#34;kind&amp;#34;: &amp;#34;GroupByVariable&amp;#34;,
      &amp;#34;spec&amp;#34;: {
        &amp;#34;current&amp;#34;: {
          &amp;#34;text&amp;#34;: [
            &amp;#34;&amp;#34;
          ],
          &amp;#34;value&amp;#34;: [
            &amp;#34;&amp;#34;
          ]
        },
        &amp;#34;datasource&amp;#34;: {},
        &amp;#34;hide&amp;#34;: &amp;#34;dontHide&amp;#34;,
        &amp;#34;multi&amp;#34;: false,
        &amp;#34;name&amp;#34;: &amp;#34;&amp;#34;,
        &amp;#34;options&amp;#34;: [],
        &amp;#34;skipUrlSync&amp;#34;: false
      }
    }
  ]&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;GroupByVariableKind&lt;/code&gt; consists of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;kind: &amp;ldquo;GroupByVariable&amp;rdquo;&lt;/li&gt;
&lt;li&gt;spec: &lt;a href=&#34;#groupbyvariablespec&#34;&gt;GroupByVariableSpec&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;groupbyvariablespec&#34;&gt;&lt;code&gt;GroupByVariableSpec&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The following table explains the usage of the group by variable JSON fields:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;name&lt;/td&gt;
              &lt;td&gt;string. Name of the variable&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;datasource?&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;DataSourceRef&lt;/code&gt;. Refer to the &lt;a href=&#34;#datasourceref&#34;&gt;&lt;code&gt;DataSourceRef&lt;/code&gt; definition&lt;/a&gt; under &lt;code&gt;QueryVariableKind&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;current&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;Text&lt;/code&gt; and a &lt;code&gt;value&lt;/code&gt; or &lt;code&gt;VariableOption&lt;/code&gt;. Refer to the &lt;a href=&#34;#variableoption&#34;&gt;&lt;code&gt;VariableOption&lt;/code&gt; definition&lt;/a&gt; under &lt;code&gt;QueryVariableKind&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;options&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;VariableOption&lt;/code&gt;. Refer to the &lt;a href=&#34;#variableoption&#34;&gt;&lt;code&gt;VariableOption&lt;/code&gt; definition&lt;/a&gt; under &lt;code&gt;QueryVariableKind&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;multi&lt;/td&gt;
              &lt;td&gt;bool. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;label?&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;hide&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;VariableHide&lt;/code&gt;. Options are: &lt;code&gt;dontHide&lt;/code&gt;, &lt;code&gt;hideLabel&lt;/code&gt;, and &lt;code&gt;hideVariable&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;skipUrlSync&lt;/td&gt;
              &lt;td&gt;bool. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;description?&lt;/td&gt;
              &lt;td&gt;string.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;adhocvariablekind&#34;&gt;&lt;code&gt;AdhocVariableKind&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Following is the JSON for a default ad hoc variable:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;  &amp;#34;variables&amp;#34;: [
    {
      &amp;#34;kind&amp;#34;: &amp;#34;AdhocVariable&amp;#34;,
      &amp;#34;spec&amp;#34;: {
        &amp;#34;baseFilters&amp;#34;: [],
        &amp;#34;defaultKeys&amp;#34;: [],
        &amp;#34;filters&amp;#34;: [],
        &amp;#34;hide&amp;#34;: &amp;#34;dontHide&amp;#34;,
        &amp;#34;name&amp;#34;: &amp;#34;&amp;#34;,
        &amp;#34;skipUrlSync&amp;#34;: false
      }
    }
  ]&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;AdhocVariableKind&lt;/code&gt; consists of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;kind: &amp;ldquo;AdhocVariable&amp;rdquo;&lt;/li&gt;
&lt;li&gt;spec: &lt;a href=&#34;#adhocvariablespec&#34;&gt;AdhocVariableSpec&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;adhocvariablespec&#34;&gt;&lt;code&gt;AdhocVariableSpec&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The following table explains the usage of the ad hoc variable JSON fields:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Usage&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;name&lt;/td&gt;
              &lt;td&gt;string. Name of the variable.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;datasource?&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;DataSourceRef&lt;/code&gt;. Consists of:&lt;ul&gt;&lt;li&gt;type? - string. The plugin type-id.&lt;/li&gt;&lt;li&gt;uid? - string. The specific data source instance.&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;baseFilters&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#adhocfilterswithlabels&#34;&gt;AdHocFilterWithLabels&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;filters&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#adhocfilterswithlabels&#34;&gt;AdHocFilterWithLabels&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;defaultKeys&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;#metricfindvalue&#34;&gt;MetricFindValue&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;label?&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;hide&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;VariableHide&lt;/code&gt;. Options are: &lt;code&gt;dontHide&lt;/code&gt;, &lt;code&gt;hideLabel&lt;/code&gt;, and &lt;code&gt;hideVariable&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;skipUrlSync&lt;/td&gt;
              &lt;td&gt;bool. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;description?&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;adhocfilterswithlabels&#34;&gt;&lt;code&gt;AdHocFiltersWithLabels&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The following table explains the usage of the ad hoc variable with labels JSON fields:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;key&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;operator&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;value&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;values?&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[...string]&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;keyLabel&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;valueLabels?&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;[...string]&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;forceEdit?&lt;/td&gt;
              &lt;td&gt;bool&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;metricfindvalue&#34;&gt;&lt;code&gt;MetricFindValue&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The following table explains the usage of the metric find value JSON fields:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;text&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;value?&lt;/td&gt;
              &lt;td&gt;string or number&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;group?&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;expandable?&lt;/td&gt;
              &lt;td&gt;bool&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;]]></content><description>&lt;h1 id="variables">&lt;code>variables&lt;/code>&lt;/h1>
&lt;p>The available variable types described in the following sections:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="#queryvariablekind">QueryVariableKind&lt;/a>&lt;/li>
&lt;li>&lt;a href="#textvariablekind">TextVariableKind&lt;/a>&lt;/li>
&lt;li>&lt;a href="#constantvariablekind">ConstantVariableKind&lt;/a>&lt;/li>
&lt;li>&lt;a href="#datasourcevariablekind">DatasourceVariableKind&lt;/a>&lt;/li>
&lt;li>&lt;a href="#intervalvariablekind">IntervalVariableKind&lt;/a>&lt;/li>
&lt;li>&lt;a href="#customvariablekind">CustomVariableKind&lt;/a>&lt;/li>
&lt;li>&lt;a href="#switchvariablekind">SwitchVariableKind&lt;/a>&lt;/li>
&lt;li>&lt;a href="#groupbyvariablekind">GroupByVariableKind&lt;/a>&lt;/li>
&lt;li>&lt;a href="#adhocvariablekind">AdhocVariableKind&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="queryvariablekind">&lt;code>QueryVariableKind&lt;/code>&lt;/h2>
&lt;p>Following is the JSON for a default query variable:&lt;/p></description></item></channel></rss>