---
type: api
title: Create visualization
description: Creates a Lens visualization and saves it to the library.
url: https://www.elastic.co/docs/api/doc/kibana/v0/operation/operation-create-visualization
resource: https://www.elastic.co/docs/api/doc/kibana/v0/operation/operation-create-visualization
products:
  - Kibana
---

# Create visualization

Authentication: required

Availability: Generally available since 9.5

- Server: `https://{kibana_url}`

## Paths

- `POST` `/api/visualizations`

## Description

Creates a Lens visualization and saves it to the library.

ES|QL visualizations cannot be created through this endpoint.

## Header parameters

- `kbn-xsrf` (string) — required
  A required header to protect against CSRF attacks

## Request body

`application/json`

Any of:
- **Metric Chart (library)**
  - `type` (enum) — required
    Values: `metric`
  - `breakdown_by` (union anyOf) — optional
    - **Date Histogram Operation**
      - `operation` (enum) — required
        Values: `date_histogram`
      - `collapse_by` (union anyOf) — optional
        Aggregation function used to collapse a breakdown dimension into a single value.
        Values: `avg`, `sum`, `max`, `min`
      - `columns` (number · default: 3) — optional
        Number of columns.
      - `drop_partial_intervals` (boolean · default: false) — optional
        When `true`, drops partial intervals from the results.
      - `field` (string) — required
        Field to be used for the date histogram.
      - `include_empty_rows` (boolean · default: true) — optional
        When `true`, includes empty rows in the results.
      - `label` (string) — optional
        Label for the operation
      - `suggested_interval` (string · default: auto) — optional
        Suggested time interval.
      - `use_original_time_range` (boolean · default: false) — optional
        When `true`, uses the original time range instead of the current query time range.
    - **Terms Operation**
      - `operation` (enum) — required
        Values: `terms`
      - `collapse_by` (union anyOf) — optional
        Aggregation function used to collapse a breakdown dimension into a single value.
        Values: `avg`, `sum`, `max`, `min`
      - `columns` (number · default: 3) — optional
        Number of columns.
      - `excludes` (object) — optional
        - `as_regex` (boolean) — optional
          When `true`, treats the values as regular expressions.
        - `values` (union string[] | number[]) — required
          Values to exclude.
      - `fields` (string[] · min items: 1 · max items: 4) — required
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        - **Numeric Format**
          Number or percentage format with optional decimal places, suffix, and compact notation.
          - `compact` (boolean · default: false) — optional
            When `true`, uses compact notation (for example, 1.2k instead of 1,200). Defaults to `false`.
          - `decimals` (number · default: 2) — optional
            Number of decimal places to display.
          - `suffix` (string) — optional
            Suffix appended to the formatted value.
          - `type` (enum) — required
            Value format type: `number` for plain numbers, `percent` for percentages.
            Values: `number`, `percent`
        - **Byte Format**
          Data size format in bits or bytes, with optional decimal places and suffix.
          - `decimals` (number · default: 2) — optional
            Number of decimal places to display.
          - `suffix` (string) — optional
            Suffix appended to the formatted value.
          - `type` (enum) — required
            Data size unit: `bits` or `bytes`.
            Values: `bits`, `bytes`
        - **Duration Format**
          Duration format between time units.
          - `compact` (boolean) — optional
            When `true`, uses short unit suffixes (for example, `ms` instead of `Milliseconds`). Defaults to `true`. Ignored for `auto-approximate`.
          - `decimals` (number) — optional
            Number of decimal places to display. Defaults to `0`. Ignored for `auto-approximate`.
          - `from` (enum) — required
            Source time unit of the raw field value, including fine-grained units (`ps`, `ns`, `us`) in addition to standard units. This describes how the stored data is encoded, not a query duration literal.
            Values: `ps`, `ns`, `us`, `ms`, `s`, `min`, `h`, `d`, `w`, `mo`, `y`
          - `suffix` (string) — optional
            Suffix appended to the formatted value.
          - `to` (enum) — required
            Display time unit: `auto` (precise), `auto-approximate`, or a fixed conversion unit.
            Values: `auto`, `auto-approximate`, `ms`, `s`, `min`, `h`, `d`, `w`, `mo`, `y`
          - `type` (enum) — required
            Values: `duration`
        - **Custom Format**
          Custom format using a Kibana field format pattern string.
          - `pattern` (string) — required
            Kibana field format pattern string.
          - `type` (enum) — required
            Values: `custom`
      - `includes` (object) — optional
        - `as_regex` (boolean) — optional
          When `true`, treats the values as regular expressions.
        - `values` (union string[] | number[]) — required
          Values to include.
      - `increase_accuracy` (boolean) — optional
        When `true`, increases accuracy at the cost of performance.
      - `label` (string) — optional
        Label for the operation
      - `limit` (number · default: 5) — optional
        Number of terms to return.
      - `other_bucket` (object) — optional
        - `include_documents_without_field` (boolean) — required
          When `true`, includes documents that do not have the specified field.
      - `rank_by` (union anyOf) — optional
        - **Terms Rank By Alphabetical**
          Terms ranked alphabetically.
          - `direction` (enum) — required
            Direction
            Values: `asc`, `desc`
          - `type` (enum) — required
            Values: `alphabetical`
        - **Terms Rank By Rarity**
          Terms ranked by rarity.
          - `max` (number) — required
            Maximum number of rare terms to include.
          - `type` (enum) — required
            Values: `rare`
        - **Terms Rank By Significance**
          Terms ranked by significance.
          - `type` (enum) — required
            Values: `significant`
        - **Terms Rank By Metric**
          Terms ranked by a linked metric.
          - `direction` (enum) — required
            Direction
            Values: `asc`, `desc`
          - `metric_index` (number · min: 0 · default: 0) — optional
            Zero-based index into the metrics array identifying which metric to rank by.
          - `type` (enum) — required
            Values: `metric`
        - **Terms Rank By Custom Operation**
          Terms ranked by custom operation.
          - `direction` (enum) — required
            Direction
            Values: `asc`, `desc`
          - `field` (string) — required
            Numeric field to be used for the custom operation.
          - `operation` (enum) — required
            Values: `min`, `max`, `average`, `median`, `standard_deviation`, `unique_count`, `sum`, `last_value`
          - `type` (enum) — required
            Values: `custom`
        - **Terms Rank By Custom Count Operation**
          Terms ranked by count, either of all documents or of a specific field.
          - `direction` (enum) — required
            Direction
            Values: `asc`, `desc`
          - `field` (string) — optional
            Numeric field to be used for the custom operation.
          - `operation` (enum) — required
            Values: `count`
          - `type` (enum) — required
            Values: `custom`
        - **Terms Rank By Percentile Operation**
          Terms ranked by a percentile of a numeric field, for example the 95th percentile of response time.
          - `direction` (enum) — required
            Direction
            Values: `asc`, `desc`
          - `field` (string) — required
            Numeric field to be used for the custom operation.
          - `operation` (enum) — required
            Values: `percentile`
          - `percentile` (number · default: 95) — optional
            The percentile threshold (0–100) at which to compute the field value used for ranking terms.
          - `type` (enum) — required
            Values: `custom`
        - **Terms Rank By Percentile Rank Operation**
          Terms ranked by the percentile rank of a single value: the proportion of field values at or below that value.
          - `direction` (enum) — required
            Direction
            Values: `asc`, `desc`
          - `field` (string) — required
            Numeric field to be used for the custom operation.
          - `operation` (enum) — required
            Values: `percentile_rank`
          - `rank` (number · default: 0) — optional
            The numeric value for which to compute the percentile rank (the percentage of field values at or below this value).
          - `type` (enum) — required
            Values: `custom`
    - **Histogram Operation**
      - `operation` (enum) — required
        Values: `histogram`
      - `collapse_by` (union anyOf) — optional
        Aggregation function used to collapse a breakdown dimension into a single value.
        Values: `avg`, `sum`, `max`, `min`
      - `columns` (number · default: 3) — optional
        Number of columns.
      - `field` (string) — required
        Field to be used for the histogram.
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `granularity` (union number | enum · default: auto) — optional
        Values: `auto`
      - `include_empty_rows` (boolean · default: true) — optional
        When `true`, includes empty rows in the results.
      - `label` (string) — optional
        Label for the operation
    - **Ranges Operation**
      - `operation` (enum) — required
        Values: `range`
      - `collapse_by` (union anyOf) — optional
        Aggregation function used to collapse a breakdown dimension into a single value.
        Values: `avg`, `sum`, `max`, `min`
      - `columns` (number · default: 3) — optional
        Number of columns.
      - `field` (string) — required
        Field to be used for the range.
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `ranges` (object[] · max items: 100) — required
        - `gt` (number) — optional
          Greater than.
        - `label` (string) — optional
          Label.
        - `lte` (number) — optional
          Less than or equal to.
    - **Filters Operation**
      - `operation` (enum) — required
        Values: `filters`
      - `collapse_by` (union anyOf) — optional
        Aggregation function used to collapse a breakdown dimension into a single value.
        Values: `avg`, `sum`, `max`, `min`
      - `columns` (number · default: 3) — optional
        Number of columns.
      - `filters` (object[] · max items: 100) — required
        - `filter` (object) — required
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `label` (string) — optional
          Label for the filter
      - `label` (string) — optional
        Label for the operation
  - `data_source` (union oneOf) — required
    - **Data view reference** (`type: data_view_reference`)
      - `type` (enum) — required
        Values: `data_view_reference`
      - `ref_id` (string) — required
        The id of the Kibana data view to use as the data source. Example: "my-data-view".
    - **Data view inline spec** (`type: data_view_spec`)
      - `type` (enum) — required
        Values: `data_view_spec`
      - `allow_hidden_indices` (boolean) — optional
        When `true`, allows the data view to match hidden indices.
      - `field_filters` (string[] · max items: 10000) — optional
        Field filters can be used to exclude one or more fields when fetching a document. They may contain wildcards, such as `user*` which filters fields starting with 'user'.
      - `field_settings` (map string to anyOf) — optional
        Map values (union anyOf)
        Any of:
        - **Composite runtime field**
          - `fields` (map string to object) — required
            Map values (object)
            - `custom_description` (string · min length: 1) — optional
              Add a description to the field. It's displayed next to the field on the Discover, Lens, and Data View Management pages.
            - `custom_label` (string · min length: 1) — optional
              Create a label to display in place of the field name in Discover, Maps, Lens, Visualize, and TSVB. Useful for shortening a long field name. Queries and filters use the original field name.
            - `format` (union anyOf) — optional
              Set your preferred format for displaying the value. Changing the format can affect the value and prevent highlighting in Discover.
              - **Boolean field format**
                Formats a field into a true/false value.
                - `type` (enum) — required
                  Values: `boolean`
              - **Bytes field format**
                Formats a field into a bytes value following the numeral.js format pattern. The default pattern is defined by the format:bytes:defaultPattern advanced setting.
                - `params` (object) — optional
                  - `pattern` (string) — optional
                    Numeral.js format pattern. See https://www.elastic.co/docs/explore-analyze/numeral-formatting to learn more.
                - `type` (enum) — required
                  Values: `bytes`
              - **Color field format**
                Formats a field into a color value.
                - `params` (union oneOf) — required
                  - **field_type: string** (`field_type: string`)
                    - `field_type` (enum) — required
                      Values: `string`
                    - `colors` (object[]) — required
                      - `background` (string) — required
                        The background color to use for the field.
                      - `regex` (string) — required
                        When the field type is a string, this regex is used to determine the color.
                      - `text` (string) — required
                        The text color to use for the field.
                  - **field_type: number** (`field_type: number`)
                    - `field_type` (enum) — required
                      Values: `number`
                    - `colors` (object[]) — required
                      - `background` (string) — required
                        The background color to use for the field.
                      - `range` (string) — required
                        When the field type is a number, this range is used to determine the color.
                      - `text` (string) — required
                        The text color to use for the field.
                  - **field_type: boolean** (`field_type: boolean`)
                    - `field_type` (enum) — required
                      Values: `boolean`
                    - `colors` (object[]) — required
                      - `background` (string) — required
                        The background color to use for the field.
                      - `boolean` (boolean) — required
                        When the field type is a boolean, this boolean is used to determine the color.
                      - `text` (string) — required
                        The text color to use for the field.
                - `type` (enum) — required
                  Values: `color`
              - **Currency field format**
                Formats a field into a currency value. The format is determined by the pattern of the format:currency:defaultPattern advanced setting.
                - `type` (enum) — required
                  Values: `currency`
              - **Date nanos field format**
                Formats a field into a date nanos value following the defined pattern.
                - `params` (object) — optional
                  - `pattern` (string · default: MMM D, YYYY @ HH:mm:ss.SSSSSSSSS) — optional
                    Moment.js format pattern. See https://momentjs.com/ to learn more.
                - `type` (enum) — required
                  Values: `date_nanos`
              - **Date field format**
                Formats a field into a date value following the defined pattern.
                - `params` (object) — optional
                  - `pattern` (string · default: MMM D, YYYY @ HH:mm:ss.SSS) — optional
                    Moment.js format pattern. See https://momentjs.com/ to learn more.
                - `type` (enum) — required
                  Values: `date`
              - **Duration field format**
                Formats a field into a duration value.
                - `params` (object) — required
                  - `include_space_with_suffix` (boolean · default: true) — optional
                    When true or not provided, the formatted duration includes a space between the value and suffix. When false, no space is included.
                  - `input_format` (enum) — required
                    The unit of the field value before formatting.
                    Values: `picoseconds`, `nanoseconds`, `microseconds`, `milliseconds`, `seconds`, `minutes`, `hours`, `days`, `weeks`, `months`, `years`
                  - `output_format` (enum) — required
                    The unit to convert the field value into for display.
                    Values: `humanize`, `humanize_precise`, `as_milliseconds`, `as_seconds`, `as_minutes`, `as_hours`, `as_days`, `as_weeks`, `as_months`, `as_years`
                  - `output_precision` (number · default: 2) — optional
                    The number of decimal places to display in the duration value.
                  - `show_suffix` (boolean) — optional
                    When true, the formatted duration includes a suffix (such as "seconds", "milliseconds", or "years"). When false or not provided, no suffix is shown.
                  - `use_short_suffix` (boolean · default: false) — optional
                    When true, the formatted duration uses short suffixes (such as "s", "ms", or "h"). When false or not provided, full suffixes are used.
                - `type` (enum) — required
                  Values: `duration`
              - **Geo point field format**
                Formats a field into a geo point value.
                - `params` (object) — optional
                  - `transform` (enum) — required
                    The transform to apply to the geo point value.
                    Values: `lat_lon_string`, `wkt`, `dms`, `mgrs`, `multi`
                - `type` (enum) — required
                  Values: `geo_point`
              - **Histogram field format**
                Formats a histogram field into a numeric value following the defined pattern. The default pattern is defined by format:bytes:defaultPattern, format:percent:defaultPattern or format:number:defaultPattern advanced settings depending on the selected format.
                - `params` (object) — required
                  - `format` (enum) — required
                    Values: `bytes`, `percent`, `number`
                  - `pattern` (string) — optional
                    Numeral.js format pattern. See https://www.elastic.co/docs/explore-analyze/numeral-formatting to learn more.
                - `type` (enum) — required
                  Values: `histogram`
              - **IP field format**
                Formats a field into an IP address.
                - `type` (enum) — required
                  Values: `ip`
              - **Number field format**
                Formats a field into a numeric value following the defined pattern. The default pattern is defined by format:number:defaultPattern advanced setting.
                - `params` (object) — optional
                  - `pattern` (string) — optional
                    Numeral.js format pattern. See https://www.elastic.co/docs/explore-analyze/numeral-formatting to learn more.
                - `type` (enum) — required
                  Values: `number`
              - **Percent field format**
                Formats a field into a percentage value following the defined pattern. The default pattern is defined by format:percent:defaultPattern advanced setting.
                - `params` (object) — optional
                  - `pattern` (string) — optional
                    Numeral.js format pattern. See https://www.elastic.co/docs/explore-analyze/numeral-formatting to learn more.
                - `type` (enum) — required
                  Values: `percent`
              - **Relative date field format**
                Formats a field into a relative date value. For example: "1 day ago".
                - `type` (enum) — required
                  Values: `relative_date`
              - **Static lookup field format**
                Formats a field into a static value based on the lookup entries or the unknown key value.
                - `params` (object) — required
                  - `lookup_entries` (object[]) — required
                    The lookup entries to use for the static lookup. The key refers to the field value, and the value refers to the new value to display.
                    - `key` (string) — required
                    - `value` (string) — required
                  - `unknown_key_value` (string) — optional
                    The value to display for unknown key values. If not provided, the field value will be displayed.
                - `type` (enum) — required
                  Values: `static_lookup`
              - **String field format**
                Formats a field into a string value.
                - `params` (object) — optional
                  - `transform` (enum) — optional
                    Values: `lower`, `upper`, `title`, `short`, `base64`, `urlparam`
                - `type` (enum) — required
                  Values: `string`
              - **Truncate field format**
                Truncates the field value to the specified length. If the field value is longer than the specified length, it will be truncated and the remaining text will be replaced with "...".
                - `params` (object) — optional
                  - `field_length` (number) — optional
                - `type` (enum) — required
                  Values: `truncate`
              - **URL field format**
                Formats a field into a link, image or audio.
                - `params` (union oneOf) — required
                  - **type: a** (`type: a`)
                    - `type` (enum) — required
                      Displays the field value as a hyperlink.
                      Values: `a`
                    - `label_template` (string) — optional
                      The template to use for the label. The template is a string that contains the field value. The field value is replaced with the template. The available placeholders are: `{{value}}`, `{{rawValue}}` and `{{url}}`. For example: "`{{value}}`".
                    - `open_link_in_current_tab` (boolean) — optional
                      When true, the URL opens in the current tab. When false or not provided, the URL opens in a new tab.
                    - `url_template` (string) — optional
                      The template to use for the URL. The template is a string that contains the field value. The field value is replaced with the template. The available placeholders are: `{{value}}`, `{{rawValue}}` and `{{risonValue}}`. Use `{{risonValue}}` when embedding the field value inside Kibana app URL rison state (for example: query:'`{{risonValue}}`'). For example: "https://example.com/`{{value}}`".
                  - **type: img** (`type: img`)
                    - `type` (enum) — required
                      Displays the field value as an image.
                      Values: `img`
                    - `height` (number) — optional
                      The height of the image. If not provided, the image will be displayed at the original height.
                    - `label_template` (string) — optional
                      The template to use for the label. The template is a string that contains the field value. The field value is replaced with the template. The available placeholders are: `{{value}}`, `{{rawValue}}` and `{{url}}`. For example: "`{{value}}`".
                    - `url_template` (string) — optional
                      The template to use for the URL. The template is a string that contains the field value. The field value is replaced with the template. The available placeholders are: `{{value}}`, `{{rawValue}}` and `{{risonValue}}`. Use `{{risonValue}}` when embedding the field value inside Kibana app URL rison state (for example: query:'`{{risonValue}}`'). For example: "https://example.com/`{{value}}`".
                    - `width` (number) — optional
                      The width of the image. If not provided, the image will be displayed at the original width.
                  - **type: audio** (`type: audio`)
                    - `type` (enum) — required
                      Displays the field value as an audio player.
                      Values: `audio`
                    - `label_template` (string) — optional
                      The template to use for the label. The template is a string that contains the field value. The field value is replaced with the template. The available placeholders are: `{{value}}`, `{{rawValue}}` and `{{url}}`. For example: "`{{value}}`".
                    - `url_template` (string) — optional
                      The template to use for the URL. The template is a string that contains the field value. The field value is replaced with the template. The available placeholders are: `{{value}}`, `{{rawValue}}` and `{{risonValue}}`. Use `{{risonValue}}` when embedding the field value inside Kibana app URL rison state (for example: query:'`{{risonValue}}`'). For example: "https://example.com/`{{value}}`".
                - `type` (enum) — required
                  Values: `url`
              - **Extensible format**
                Fallback for custom formatter IDs only. Known formatter IDs must match their dedicated schema and are validated at runtime.
                - `params` (object) — optional
                - `type` (string) — required
            - `type` (enum) — required
              The type of the runtime field (e.g., "keyword", "long", "date").
              Values: `keyword`, `long`, `double`, `date`, `ip`, `boolean`, `geo_point`
          - `script` (string · min length: 1) — optional
            The script that defines the runtime field. This should be a painless script that computes the field value at query time. Runtime fields without a script retrieve values from _source. If the field doesn't exist in _source, a search request returns no value.
          - `type` (enum) — required
            Values: `composite`
        - **Runtime field**
          - `custom_description` (string · min length: 1) — optional
            Add a description to the field. It's displayed next to the field on the Discover, Lens, and Data View Management pages.
          - `custom_label` (string · min length: 1) — optional
            Create a label to display in place of the field name in Discover, Maps, Lens, Visualize, and TSVB. Useful for shortening a long field name. Queries and filters use the original field name.
          - `format` (union anyOf) — optional
            Set your preferred format for displaying the value. Changing the format can affect the value and prevent highlighting in Discover.
            Same options as `format` in `fields`
          - `script` (string · min length: 1) — optional
            The script that defines the runtime field. This should be a painless script that computes the field value at query time. Runtime fields without a script retrieve values from _source. If the field doesn't exist in _source, a search request returns no value.
          - `type` (enum) — required
            The type of the runtime field (e.g., "keyword", "long", "date").
            Values: `keyword`, `long`, `double`, `date`, `ip`, `boolean`, `geo_point`
        - **Field settings**
          Display overrides for a field. These settings can define a custom label, description, and format.
          - `custom_description` (string · min length: 1) — optional
            Add a description to the field. It's displayed next to the field on the Discover, Lens, and Data View Management pages.
          - `custom_label` (string · min length: 1) — optional
            Create a label to display in place of the field name in Discover, Maps, Lens, Visualize, and TSVB. Useful for shortening a long field name. Queries and filters use the original field name.
          - `format` (union anyOf) — optional
            Set your preferred format for displaying the value. Changing the format can affect the value and prevent highlighting in Discover.
            Same options as `format` in `fields`
      - `index_pattern` (string · min length: 1) — required
        The index pattern (Elasticsearch index expression) to use as the data source. Example: "my-index-*".
      - `name` (string · min length: 1 · max length: 256) — optional
        The name of the data view. Example: "Sample data view".
      - `time_field` (string) — optional
        The name of the time field in the index. Used for time-based filtering. Example: "@timestamp".
  - `description` (string) — optional
    The description of the chart. Optional. Any string value or undefined.
  - `filters` (union oneOf[] · max items: 100) — optional
    Filters applied to the panel
    - **condition**
      A filter that evaluates a single field condition such as equality, range, or existence.
      - `type` (enum) — required
        Values: `condition`
      - `condition` (union oneOf) — required
        A filter condition with strict operator/value type matching.
        - **is** (`operator: is`)
          Matches documents where `field` equals a single specified value.
          - `operator` (enum) — required
            Values: `is`
          - `field` (string) — required
            Name of the document field the condition evaluates.
          - `negate` (boolean) — optional
            When `true`, the filter is negated and matches documents that do NOT satisfy the condition. Defaults to `false`.
          - `value` (union string | number | boolean) — required
            Single value to compare against the field.
        - **is_one_of** (`operator: is_one_of`)
          Matches documents where `field` equals any value in a provided list.
          - `operator` (enum) — required
            Values: `is_one_of`
          - `field` (string) — required
            Name of the document field the condition evaluates.
          - `negate` (boolean) — optional
            When `true`, the filter is negated and matches documents that do NOT satisfy the condition. Defaults to `false`.
          - `value` (union string[] | number[] | boolean[]) — required
            Homogeneous array of values to match against the field.
        - **range** (`operator: range`)
          Matches documents where `field` falls within a specified numeric or date range.
          - `operator` (enum) — required
            Values: `range`
          - `field` (string) — required
            Name of the document field the condition evaluates.
          - `negate` (boolean) — optional
            When `true`, the filter is negated and matches documents that do NOT satisfy the condition. Defaults to `false`.
          - `value` (object) — required
            Boundary values for a range comparison.
            - `format` (string) — optional
              Elasticsearch [date format](https://www.elastic.co/docs/reference/elasticsearch/mapping-reference/mapping-date-format) string applied when parsing date boundary values. For example, `strict_date_optional_time` or `epoch_millis`.
            - `gt` (number | string) — optional
              Greater than.
            - `gte` (number | string) — optional
              Greater than or equal to.
            - `lt` (number | string) — optional
              Less than.
            - `lte` (number | string) — optional
              Less than or equal to.
        - **exists** (`operator: exists`)
          Matches documents where `field` exists and contains a non-null value.
          - `operator` (enum) — required
            Values: `exists`
          - `field` (string) — required
            Name of the document field the condition evaluates.
          - `negate` (boolean) — optional
            When `true`, the filter is negated and matches documents that do NOT satisfy the condition. Defaults to `false`.
      - `controlled_by` (string) — optional
        Identifier of the panel that manages this filter. When set, the filter is treated as owned by that panel.
      - `data_view_id` (string) — optional
        Identifier of the data view used as context for this filter.
      - `disabled` (boolean) — optional
        When `true`, the filter is inactive and does not affect query results. Defaults to `false`.
      - `is_multi_index` (boolean) — optional
        When `true`, the filter can be applied across multiple indices. Defaults to `false`.
      - `label` (string) — optional
        Human-readable label for the filter, used for display purposes.
      - `negate` (boolean) — optional
        When `true`, the filter is negated and matches documents that do NOT satisfy the condition. Defaults to `false`.
    - **group**
      A filter that combines multiple conditions or nested groups using a logical `and` or `or` operator.
      - `type` (enum) — required
        Values: `group`
      - `controlled_by` (string) — optional
        Identifier of the panel that manages this filter. When set, the filter is treated as owned by that panel.
      - `data_view_id` (string) — optional
        Identifier of the data view used as context for this filter.
      - `disabled` (boolean) — optional
        When `true`, the filter is inactive and does not affect query results. Defaults to `false`.
      - `group` (object) — required
        Logical group that combines one or more conditions or nested groups.
        - `conditions` (union anyOf[]) — required — recursive
          Ordered list of conditions or nested groups combined by the group `operator`.
        - `operator` (enum) — required
          Logical operator applied across all entries in `conditions`. Use `and` to require all conditions, or `or` to require at least one.
          Values: `and`, `or`
      - `is_multi_index` (boolean) — optional
        When `true`, the filter can be applied across multiple indices. Defaults to `false`.
      - `label` (string) — optional
        Human-readable label for the filter, used for display purposes.
      - `negate` (boolean) — optional
        When `true`, the filter is negated and matches documents that do NOT satisfy the condition. Defaults to `false`.
    - **dsl**
      A filter expressed as a raw [Elasticsearch Query DSL](https://www.elastic.co/docs/reference/query-languages/querydsl) object, used for queries that cannot be represented by condition or group filters.
      - `type` (enum) — required
        Values: `dsl`
      - `controlled_by` (string) — optional
        Identifier of the panel that manages this filter. When set, the filter is treated as owned by that panel.
      - `data_view_id` (string) — optional
        Identifier of the data view used as context for this filter.
      - `disabled` (boolean) — optional
        When `true`, the filter is inactive and does not affect query results. Defaults to `false`.
      - `dsl` (map string to object) — required
        Elasticsearch Query DSL object passed directly to the query.
      - `field` (string) — optional
        Field name for scripted filters where the field cannot be extracted from the DSL query.
      - `is_multi_index` (boolean) — optional
        When `true`, the filter can be applied across multiple indices. Defaults to `false`.
      - `label` (string) — optional
        Human-readable label for the filter, used for display purposes.
      - `negate` (boolean) — optional
        When `true`, the filter is negated and matches documents that do NOT satisfy the condition. Defaults to `false`.
      - `params` (object) — optional
        Filter parameters metadata. May contain display values, formats, and parameters for scripted filters.
    - **spatial**
      A filter that applies an Elasticsearch geo query, used for geographic boundary and shape matching.
      - `type` (enum) — required
        Values: `spatial`
      - `controlled_by` (string) — optional
        Identifier of the panel that manages this filter. When set, the filter is treated as owned by that panel.
      - `data_view_id` (string) — optional
        Identifier of the data view used as context for this filter.
      - `disabled` (boolean) — optional
        When `true`, the filter is inactive and does not affect query results. Defaults to `false`.
      - `dsl` (map string to object) — required
        Elasticsearch geo query DSL object.
      - `is_multi_index` (boolean) — optional
        When `true`, the filter can be applied across multiple indices. Defaults to `false`.
      - `label` (string) — optional
        Human-readable label for the filter, used for display purposes.
      - `negate` (boolean) — optional
        When `true`, the filter is negated and matches documents that do NOT satisfy the condition. Defaults to `false`.
  - `ignore_global_filters` (boolean · default: false) — optional
    When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
  - `metrics` (union anyOf[] · min items: 1 · max items: 2) — required
    Metric dimensions to display. The first must be a primary metric; an optional second must be a secondary metric.
    - **type: primary**
      - `type` (enum) — required
        Values: `primary`
      - `apply_color_to` (enum) — optional
        Color target: `value` colors the metric text, `background` colors the cell or panel background.
        Values: `value`, `background`
      - `background_chart` (union anyOf) — optional
        Secondary visualization displayed behind the primary metric value, either a bar chart (with optional max value) or a trend line.
        - **type: bar**
          - `type` (enum) — required
            Values: `bar`
          - `max_value` (union anyOf) — required
            Metric dimension configuration, supporting field-based aggregations (count, sum, average, median, standard deviation, unique count, last value), percentile operations, time-series operations (differences, moving average, cumulative sum, counter rate), and mathematical formulas.
            - **Formula Operation**
              - `operation` (enum) — required
                Values: `formula`
              - `filter` (object) — optional
                A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
                - `expression` (string) — required
                  A query expression in KQL or Lucene syntax
                - `language` (enum · default: kql) — optional
                  Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                  Values: `kql`, `lucene`
              - `format` (union anyOf) — optional
                Number display format for the dimension value.
                Same options as `format` in `Terms Operation`
              - `formula` (string) — required
                Formula
              - `label` (string) — optional
                Label for the operation
              - `reduced_time_range` (string) — optional
                Reduced time range
              - `time_scale` (enum) — optional
                Time scale
                Values: `s`, `m`, `h`, `d`
            - **Static Operation Definition**
              - `operation` (enum) — required
                Values: `static_value`
              - `format` (union anyOf) — optional
                Number display format for the dimension value.
                Same options as `format` in `Terms Operation`
              - `label` (string) — optional
                Label for the operation
              - `value` (number · default: 100) — optional
                Static value
            - **Field Metric Operations**
              Any of:
              - **Count Metric Operation**
                - `empty_as_null` (boolean · default: false) — optional
                  When `true`, treats empty buckets as null instead of zero.
                - `field` (string) — optional
                  Field to be used for the metric
                - `filter` (object) — optional
                  A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
                  - `expression` (string) — required
                    A query expression in KQL or Lucene syntax
                  - `language` (enum · default: kql) — optional
                    Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                    Values: `kql`, `lucene`
                - `format` (union anyOf) — optional
                  Number display format for the dimension value.
                  Same options as `format` in `Terms Operation`
                - `label` (string) — optional
                  Label for the operation
                - `operation` (enum) — required
                  Values: `count`
                - `reduced_time_range` (string) — optional
                  Reduced time range
                - `time_scale` (union anyOf) — optional
                  Time scale
                  Values: `s`, `m`, `h`, `d`
                - `time_shift` (string) — optional
                  Time shift
              - **Unique Count Metric Operation**
                - `empty_as_null` (boolean · default: false) — optional
                  When `true`, treats empty buckets as null instead of zero.
                - `field` (string) — required
                  Field to be used for the metric
                - `filter` (object) — optional
                  A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
                  - `expression` (string) — required
                    A query expression in KQL or Lucene syntax
                  - `language` (enum · default: kql) — optional
                    Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                    Values: `kql`, `lucene`
                - `format` (union anyOf) — optional
                  Number display format for the dimension value.
                  Same options as `format` in `Terms Operation`
                - `label` (string) — optional
                  Label for the operation
                - `operation` (enum) — required
                  Values: `unique_count`
                - `reduced_time_range` (string) — optional
                  Reduced time range
                - `time_scale` (union anyOf) — optional
                  Time scale
                  Values: `s`, `m`, `h`, `d`
                - `time_shift` (string) — optional
                  Time shift
              - **Stats Metric Operation**
                - `field` (string) — required
                  Field to be used for the metric
                - `filter` (object) — optional
                  A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
                  - `expression` (string) — required
                    A query expression in KQL or Lucene syntax
                  - `language` (enum · default: kql) — optional
                    Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                    Values: `kql`, `lucene`
                - `format` (union anyOf) — optional
                  Number display format for the dimension value.
                  Same options as `format` in `Terms Operation`
                - `label` (string) — optional
                  Label for the operation
                - `operation` (enum) — required
                  Values: `min`, `max`, `average`, `median`, `standard_deviation`
                - `reduced_time_range` (string) — optional
                  Reduced time range
                - `time_scale` (union anyOf) — optional
                  Time scale
                  Values: `s`, `m`, `h`, `d`
                - `time_shift` (string) — optional
                  Time shift
              - **Sum Metric Operation**
                - `empty_as_null` (boolean · default: false) — optional
                  When `true`, treats empty buckets as null instead of zero.
                - `field` (string) — required
                  Field to be used for the metric
                - `filter` (object) — optional
                  A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
                  - `expression` (string) — required
                    A query expression in KQL or Lucene syntax
                  - `language` (enum · default: kql) — optional
                    Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                    Values: `kql`, `lucene`
                - `format` (union anyOf) — optional
                  Number display format for the dimension value.
                  Same options as `format` in `Terms Operation`
                - `label` (string) — optional
                  Label for the operation
                - `operation` (enum) — required
                  Values: `sum`
                - `reduced_time_range` (string) — optional
                  Reduced time range
                - `time_scale` (union anyOf) — optional
                  Time scale
                  Values: `s`, `m`, `h`, `d`
                - `time_shift` (string) — optional
                  Time shift
              - **Last Value Operation**
                - `field` (string) — required
                  Field to be used for the metric
                - `filter` (object) — optional
                  A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
                  - `expression` (string) — required
                    A query expression in KQL or Lucene syntax
                  - `language` (enum · default: kql) — optional
                    Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                    Values: `kql`, `lucene`
                - `format` (union anyOf) — optional
                  Number display format for the dimension value.
                  Same options as `format` in `Terms Operation`
                - `label` (string) — optional
                  Label for the operation
                - `multi_value` (boolean · default: false) — optional
                  Whether to return all values for multi-value fields. Only affects data table and metric charts; other charts use the last value from the array.
                - `operation` (enum) — required
                  Values: `last_value`
                - `reduced_time_range` (string) — optional
                  Reduced time range
                - `time_field` (string) — required
                  Time field used to determine document recency
                - `time_scale` (union anyOf) — optional
                  Time scale
                  Values: `s`, `m`, `h`, `d`
                - `time_shift` (string) — optional
                  Time shift
              - **Percentile Operation**
                - `field` (string) — required
                  Field to be used for the metric
                - `filter` (object) — optional
                  A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
                  - `expression` (string) — required
                    A query expression in KQL or Lucene syntax
                  - `language` (enum · default: kql) — optional
                    Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                    Values: `kql`, `lucene`
                - `format` (union anyOf) — optional
                  Number display format for the dimension value.
                  Same options as `format` in `Terms Operation`
                - `label` (string) — optional
                  Label for the operation
                - `operation` (enum) — required
                  Values: `percentile`
                - `percentile` (number · default: 95) — optional
                  Percentile
                - `reduced_time_range` (string) — optional
                  Reduced time range
                - `time_scale` (union anyOf) — optional
                  Time scale
                  Values: `s`, `m`, `h`, `d`
                - `time_shift` (string) — optional
                  Time shift
              - **Percentile Ranks Operation**
                - `field` (string) — required
                  Field to be used for the metric
                - `filter` (object) — optional
                  A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
                  - `expression` (string) — required
                    A query expression in KQL or Lucene syntax
                  - `language` (enum · default: kql) — optional
                    Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                    Values: `kql`, `lucene`
                - `format` (union anyOf) — optional
                  Number display format for the dimension value.
                  Same options as `format` in `Terms Operation`
                - `label` (string) — optional
                  Label for the operation
                - `operation` (enum) — required
                  Values: `percentile_rank`
                - `rank` (number · default: 0) — optional
                  Percentile Rank
                - `reduced_time_range` (string) — optional
                  Reduced time range
                - `time_scale` (union anyOf) — optional
                  Time scale
                  Values: `s`, `m`, `h`, `d`
                - `time_shift` (string) — optional
                  Time shift
            - **Differences Operation**
              - `operation` (enum) — required
                Values: `differences`
              - `filter` (object) — optional
                A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
                - `expression` (string) — required
                  A query expression in KQL or Lucene syntax
                - `language` (enum · default: kql) — optional
                  Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                  Values: `kql`, `lucene`
              - `format` (union anyOf) — optional
                Number display format for the dimension value.
                Same options as `format` in `Terms Operation`
              - `label` (string) — optional
                Label for the operation
              - `of` (union anyOf) — required
                - **Count Metric Operation**
                  - `empty_as_null` (boolean · default: false) — optional
                    When `true`, treats empty buckets as null instead of zero.
                  - `field` (string) — optional
                    Field to be used for the metric
                  - `filter` (object) — optional
                    A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
                    - `expression` (string) — required
                      A query expression in KQL or Lucene syntax
                    - `language` (enum · default: kql) — optional
                      Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                      Values: `kql`, `lucene`
                  - `format` (union anyOf) — optional
                    Number display format for the dimension value.
                    Same options as `format` in `Terms Operation`
                  - `label` (string) — optional
                    Label for the operation
                  - `operation` (enum) — required
                    Values: `count`
                  - `reduced_time_range` (string) — optional
                    Reduced time range
                  - `time_scale` (union anyOf) — optional
                    Time scale
                    Values: `s`, `m`, `h`, `d`
                  - `time_shift` (string) — optional
                    Time shift
                - **Unique Count Metric Operation**
                  - `empty_as_null` (boolean · default: false) — optional
                    When `true`, treats empty buckets as null instead of zero.
                  - `field` (string) — required
                    Field to be used for the metric
                  - `filter` (object) — optional
                    A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
                    - `expression` (string) — required
                      A query expression in KQL or Lucene syntax
                    - `language` (enum · default: kql) — optional
                      Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                      Values: `kql`, `lucene`
                  - `format` (union anyOf) — optional
                    Number display format for the dimension value.
                    Same options as `format` in `Terms Operation`
                  - `label` (string) — optional
                    Label for the operation
                  - `operation` (enum) — required
                    Values: `unique_count`
                  - `reduced_time_range` (string) — optional
                    Reduced time range
                  - `time_scale` (union anyOf) — optional
                    Time scale
                    Values: `s`, `m`, `h`, `d`
                  - `time_shift` (string) — optional
                    Time shift
                - **Stats Metric Operation**
                  - `field` (string) — required
                    Field to be used for the metric
                  - `filter` (object) — optional
                    A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
                    - `expression` (string) — required
                      A query expression in KQL or Lucene syntax
                    - `language` (enum · default: kql) — optional
                      Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                      Values: `kql`, `lucene`
                  - `format` (union anyOf) — optional
                    Number display format for the dimension value.
                    Same options as `format` in `Terms Operation`
                  - `label` (string) — optional
                    Label for the operation
                  - `operation` (enum) — required
                    Values: `min`, `max`, `average`, `median`, `standard_deviation`
                  - `reduced_time_range` (string) — optional
                    Reduced time range
                  - `time_scale` (union anyOf) — optional
                    Time scale
                    Values: `s`, `m`, `h`, `d`
                  - `time_shift` (string) — optional
                    Time shift
                - **Sum Metric Operation**
                  - `empty_as_null` (boolean · default: false) — optional
                    When `true`, treats empty buckets as null instead of zero.
                  - `field` (string) — required
                    Field to be used for the metric
                  - `filter` (object) — optional
                    A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
                    - `expression` (string) — required
                      A query expression in KQL or Lucene syntax
                    - `language` (enum · default: kql) — optional
                      Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                      Values: `kql`, `lucene`
                  - `format` (union anyOf) — optional
                    Number display format for the dimension value.
                    Same options as `format` in `Terms Operation`
                  - `label` (string) — optional
                    Label for the operation
                  - `operation` (enum) — required
                    Values: `sum`
                  - `reduced_time_range` (string) — optional
                    Reduced time range
                  - `time_scale` (union anyOf) — optional
                    Time scale
                    Values: `s`, `m`, `h`, `d`
                  - `time_shift` (string) — optional
                    Time shift
                - **Last Value Operation**
                  - `field` (string) — required
                    Field to be used for the metric
                  - `filter` (object) — optional
                    A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
                    - `expression` (string) — required
                      A query expression in KQL or Lucene syntax
                    - `language` (enum · default: kql) — optional
                      Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                      Values: `kql`, `lucene`
                  - `format` (union anyOf) — optional
                    Number display format for the dimension value.
                    Same options as `format` in `Terms Operation`
                  - `label` (string) — optional
                    Label for the operation
                  - `multi_value` (boolean · default: false) — optional
                    Whether to return all values for multi-value fields. Only affects data table and metric charts; other charts use the last value from the array.
                  - `operation` (enum) — required
                    Values: `last_value`
                  - `reduced_time_range` (string) — optional
                    Reduced time range
                  - `time_field` (string) — required
                    Time field used to determine document recency
                  - `time_scale` (union anyOf) — optional
                    Time scale
                    Values: `s`, `m`, `h`, `d`
                  - `time_shift` (string) — optional
                    Time shift
                - **Percentile Operation**
                  - `field` (string) — required
                    Field to be used for the metric
                  - `filter` (object) — optional
                    A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
                    - `expression` (string) — required
                      A query expression in KQL or Lucene syntax
                    - `language` (enum · default: kql) — optional
                      Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                      Values: `kql`, `lucene`
                  - `format` (union anyOf) — optional
                    Number display format for the dimension value.
                    Same options as `format` in `Terms Operation`
                  - `label` (string) — optional
                    Label for the operation
                  - `operation` (enum) — required
                    Values: `percentile`
                  - `percentile` (number · default: 95) — optional
                    Percentile
                  - `reduced_time_range` (string) — optional
                    Reduced time range
                  - `time_scale` (union anyOf) — optional
                    Time scale
                    Values: `s`, `m`, `h`, `d`
                  - `time_shift` (string) — optional
                    Time shift
                - **Percentile Ranks Operation**
                  - `field` (string) — required
                    Field to be used for the metric
                  - `filter` (object) — optional
                    A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
                    - `expression` (string) — required
                      A query expression in KQL or Lucene syntax
                    - `language` (enum · default: kql) — optional
                      Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                      Values: `kql`, `lucene`
                  - `format` (union anyOf) — optional
                    Number display format for the dimension value.
                    Same options as `format` in `Terms Operation`
                  - `label` (string) — optional
                    Label for the operation
                  - `operation` (enum) — required
                    Values: `percentile_rank`
                  - `rank` (number · default: 0) — optional
                    Percentile Rank
                  - `reduced_time_range` (string) — optional
                    Reduced time range
                  - `time_scale` (union anyOf) — optional
                    Time scale
                    Values: `s`, `m`, `h`, `d`
                  - `time_shift` (string) — optional
                    Time shift
              - `reduced_time_range` (string) — optional
                Reduced time range
              - `time_scale` (union anyOf) — optional
                Time scale
                Values: `s`, `m`, `h`, `d`
              - `time_shift` (string) — optional
                Time shift
            - **Moving Average Operation**
              - `operation` (enum) — required
                Values: `moving_average`
              - `filter` (object) — optional
                A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
                - `expression` (string) — required
                  A query expression in KQL or Lucene syntax
                - `language` (enum · default: kql) — optional
                  Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                  Values: `kql`, `lucene`
              - `format` (union anyOf) — optional
                Number display format for the dimension value.
                Same options as `format` in `Terms Operation`
              - `label` (string) — optional
                Label for the operation
              - `of` (union anyOf) — required
                Same options as `of` in `Differences Operation`
              - `reduced_time_range` (string) — optional
                Reduced time range
              - `time_scale` (union anyOf) — optional
                Time scale
                Values: `s`, `m`, `h`, `d`
              - `time_shift` (string) — optional
                Time shift
              - `window` (number · default: 5) — optional
                Window
            - **Cumulative Sum Operation**
              - `operation` (enum) — required
                Values: `cumulative_sum`
              - `field` (string) — optional
                Field to cumulatively sum. When omitted, cumulative sum is applied to the count of records.
              - `filter` (object) — optional
                A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
                - `expression` (string) — required
                  A query expression in KQL or Lucene syntax
                - `language` (enum · default: kql) — optional
                  Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                  Values: `kql`, `lucene`
              - `format` (union anyOf) — optional
                Number display format for the dimension value.
                Same options as `format` in `Terms Operation`
              - `label` (string) — optional
                Label for the operation
              - `reduced_time_range` (string) — optional
                Reduced time range
              - `time_scale` (union anyOf) — optional
                Time scale
                Values: `s`, `m`, `h`, `d`
              - `time_shift` (string) — optional
                Time shift
            - **Counter Rate Operation**
              - `operation` (enum) — required
                Values: `counter_rate`
              - `field` (string) — required
                Field to be used for the metric
              - `filter` (object) — optional
                A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
                - `expression` (string) — required
                  A query expression in KQL or Lucene syntax
                - `language` (enum · default: kql) — optional
                  Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                  Values: `kql`, `lucene`
              - `format` (union anyOf) — optional
                Number display format for the dimension value.
                Same options as `format` in `Terms Operation`
              - `label` (string) — optional
                Label for the operation
              - `reduced_time_range` (string) — optional
                Reduced time range
              - `time_scale` (union anyOf) — optional
                Time scale
                Values: `s`, `m`, `h`, `d`
              - `time_shift` (string) — optional
                Time shift
            - **Count Metric Operation**
              - `operation` (enum) — required
                Values: `count`
              - `empty_as_null` (boolean · default: false) — optional
                When `true`, treats empty buckets as null instead of zero.
              - `field` (string) — optional
                Field to be used for the metric
              - `filter` (object) — optional
                A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
                - `expression` (string) — required
                  A query expression in KQL or Lucene syntax
                - `language` (enum · default: kql) — optional
                  Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                  Values: `kql`, `lucene`
              - `format` (union anyOf) — optional
                Number display format for the dimension value.
                Same options as `format` in `Terms Operation`
              - `label` (string) — optional
                Label for the operation
              - `reduced_time_range` (string) — optional
                Reduced time range
              - `time_scale` (union anyOf) — optional
                Time scale
                Values: `s`, `m`, `h`, `d`
              - `time_shift` (string) — optional
                Time shift
            - **Unique Count Metric Operation**
              - `operation` (enum) — required
                Values: `unique_count`
              - `empty_as_null` (boolean · default: false) — optional
                When `true`, treats empty buckets as null instead of zero.
              - `field` (string) — required
                Field to be used for the metric
              - `filter` (object) — optional
                A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
                - `expression` (string) — required
                  A query expression in KQL or Lucene syntax
                - `language` (enum · default: kql) — optional
                  Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                  Values: `kql`, `lucene`
              - `format` (union anyOf) — optional
                Number display format for the dimension value.
                Same options as `format` in `Terms Operation`
              - `label` (string) — optional
                Label for the operation
              - `reduced_time_range` (string) — optional
                Reduced time range
              - `time_scale` (union anyOf) — optional
                Time scale
                Values: `s`, `m`, `h`, `d`
              - `time_shift` (string) — optional
                Time shift
            - **Last Value Operation**
              - `operation` (enum) — required
                Values: `last_value`
              - `field` (string) — required
                Field to be used for the metric
              - `filter` (object) — optional
                A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
                - `expression` (string) — required
                  A query expression in KQL or Lucene syntax
                - `language` (enum · default: kql) — optional
                  Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                  Values: `kql`, `lucene`
              - `format` (union anyOf) — optional
                Number display format for the dimension value.
                Same options as `format` in `Terms Operation`
              - `label` (string) — optional
                Label for the operation
              - `multi_value` (boolean · default: false) — optional
                Whether to return all values for multi-value fields. Only affects data table and metric charts; other charts use the last value from the array.
              - `reduced_time_range` (string) — optional
                Reduced time range
              - `time_field` (string) — required
                Time field used to determine document recency
              - `time_scale` (union anyOf) — optional
                Time scale
                Values: `s`, `m`, `h`, `d`
              - `time_shift` (string) — optional
                Time shift
            - **Percentile Operation**
              - `operation` (enum) — required
                Values: `percentile`
              - `field` (string) — required
                Field to be used for the metric
              - `filter` (object) — optional
                A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
                - `expression` (string) — required
                  A query expression in KQL or Lucene syntax
                - `language` (enum · default: kql) — optional
                  Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                  Values: `kql`, `lucene`
              - `format` (union anyOf) — optional
                Number display format for the dimension value.
                Same options as `format` in `Terms Operation`
              - `label` (string) — optional
                Label for the operation
              - `percentile` (number · default: 95) — optional
                Percentile
              - `reduced_time_range` (string) — optional
                Reduced time range
              - `time_scale` (union anyOf) — optional
                Time scale
                Values: `s`, `m`, `h`, `d`
              - `time_shift` (string) — optional
                Time shift
            - **Percentile Ranks Operation**
              - `operation` (enum) — required
                Values: `percentile_rank`
              - `field` (string) — required
                Field to be used for the metric
              - `filter` (object) — optional
                A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
                - `expression` (string) — required
                  A query expression in KQL or Lucene syntax
                - `language` (enum · default: kql) — optional
                  Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                  Values: `kql`, `lucene`
              - `format` (union anyOf) — optional
                Number display format for the dimension value.
                Same options as `format` in `Terms Operation`
              - `label` (string) — optional
                Label for the operation
              - `rank` (number · default: 0) — optional
                Percentile Rank
              - `reduced_time_range` (string) — optional
                Reduced time range
              - `time_scale` (union anyOf) — optional
                Time scale
                Values: `s`, `m`, `h`, `d`
              - `time_shift` (string) — optional
                Time shift
          - `orientation` (enum) — optional
            Orientation
            Values: `horizontal`, `vertical`
        - **type: trend**
          - `type` (enum) — required
            Values: `trend`
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color configuration for the primary metric value or background.
        - **Color By Value**
          Dynamic color mapping by numeric range, with support for absolute and percentage-based ranges and for named palettes.
          Any of:
          - **Color By Value (Absolute)**
            Color by absolute value configuration
            - `range` (enum) — required
              Values: `absolute`
            - `steps` (object[] · min items: 1 · max items: 100) — required
              Array of ordered color steps defining the range each color is applied.
              - `color` (string) — required
                The color to use for this step.
              - `gte` (number) — optional — nullable
                The lower bound of range from which this color applies (inclusive).
              - `lt` (number) — optional — nullable
                The upper bound of range to which this color applies (exclusive).
              - `lte` (number) — optional — nullable
                The upper bound of range to which this color applies (inclusive).
            - `type` (enum) — required
              Values: `dynamic`
          - **Color By Value (Percentage)**
            Color by percentage value configuration
            - `range` (enum) — required
              Values: `percentage`
            - `steps` (object[] · min items: 1 · max items: 100) — required
              Array of ordered color steps defining the range each color is applied.
              - `color` (string) — required
                The color to use for this step.
              - `gte` (number) — optional — nullable
                The lower bound of range from which this color applies (inclusive).
              - `lt` (number) — optional — nullable
                The upper bound of range to which this color applies (exclusive).
              - `lte` (number) — optional — nullable
                The upper bound of range to which this color applies (inclusive).
            - `type` (enum) — required
              Values: `dynamic`
          - **Color By Value (Palette)**
            Color by value using a palette, with colors distributed across the range of values.
            - `palette` (enum) — required
              The name of the palette to apply across the value range.
              Values: `status`, `temperature`, `complementary`, `negative`, `positive`, `cool`, `warm`, `gray`
            - `type` (enum) — required
              Values: `distributed_palette`
          - **Legacy color by value**
            Legacy color by value configuration
            - `palette` (string) — required
              The legacy palette name.
            - `range` (enum) — required
              Determines whether the range is interpreted as absolute or as a percentage of the data.
              Values: `absolute`, `percentage`
            - `shift` (boolean) — required
              When `true`, shifts the palette colors so they start from a different offset. Defaults to `false`.
            - `steps` (object[] · min items: 1 · max items: 100) — required
              Array of ordered color steps defining the range each color is applied.
              - `color` (string) — required
                The color to use for this step.
              - `gte` (number) — optional — nullable
                The lower bound of range from which this color applies (inclusive).
              - `lt` (number) — optional — nullable
                The upper bound of range to which this color applies (exclusive).
              - `lte` (number) — optional — nullable
                The upper bound of range to which this color applies (inclusive).
            - `type` (enum) — required
              Values: `legacy_dynamic`
        - **Static Color**
          Fixed color for all values in the dimension.
          - `type` (enum) — required
            Values: `static`
          - `color` (string) — required
            The static color to be used for all values.
        - **Auto Color**
          Coloring determined at runtime based on chart defaults
          - `type` (enum) — required
            Values: `auto`
      - `subtitle` (string) — optional
        Subtitle below the primary metric value.
      Any of:
      - **Count Metric Operation**
        - `empty_as_null` (boolean · default: false) — optional
          When `true`, treats empty buckets as null instead of zero.
        - `field` (string) — optional
          Field to be used for the metric
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `operation` (enum) — required
          Values: `count`
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
      - **Unique Count Metric Operation**
        - `empty_as_null` (boolean · default: false) — optional
          When `true`, treats empty buckets as null instead of zero.
        - `field` (string) — required
          Field to be used for the metric
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `operation` (enum) — required
          Values: `unique_count`
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
      - **Stats Metric Operation**
        - `field` (string) — required
          Field to be used for the metric
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `operation` (enum) — required
          Values: `min`, `max`, `average`, `median`, `standard_deviation`
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
      - **Sum Metric Operation**
        - `empty_as_null` (boolean · default: false) — optional
          When `true`, treats empty buckets as null instead of zero.
        - `field` (string) — required
          Field to be used for the metric
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `operation` (enum) — required
          Values: `sum`
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
      - **Last Value Operation**
        - `field` (string) — required
          Field to be used for the metric
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `multi_value` (boolean · default: false) — optional
          Whether to return all values for multi-value fields. Only affects data table and metric charts; other charts use the last value from the array.
        - `operation` (enum) — required
          Values: `last_value`
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_field` (string) — required
          Time field used to determine document recency
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
      - **Percentile Operation**
        - `field` (string) — required
          Field to be used for the metric
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `operation` (enum) — required
          Values: `percentile`
        - `percentile` (number · default: 95) — optional
          Percentile
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
      - **Percentile Ranks Operation**
        - `field` (string) — required
          Field to be used for the metric
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `operation` (enum) — required
          Values: `percentile_rank`
        - `rank` (number · default: 0) — optional
          Percentile Rank
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
      - **Differences Operation**
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `of` (union anyOf) — required
          Same options as `of` in `Differences Operation`
        - `operation` (enum) — required
          Values: `differences`
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
      - **Moving Average Operation**
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `of` (union anyOf) — required
          Same options as `of` in `Differences Operation`
        - `operation` (enum) — required
          Values: `moving_average`
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
        - `window` (number · default: 5) — optional
          Window
      - **Cumulative Sum Operation**
        - `field` (string) — optional
          Field to cumulatively sum. When omitted, cumulative sum is applied to the count of records.
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `operation` (enum) — required
          Values: `cumulative_sum`
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
      - **Counter Rate Operation**
        - `field` (string) — required
          Field to be used for the metric
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `operation` (enum) — required
          Values: `counter_rate`
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
      - **Formula Operation**
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `formula` (string) — required
          Formula
        - `label` (string) — optional
          Label for the operation
        - `operation` (enum) — required
          Values: `formula`
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (enum) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
    - **type: secondary**
      - `type` (enum) — required
        Values: `secondary`
      - `color` (union anyOf · default: {"type":"none"}) — optional
        - **Static Color**
          Fixed color for all values in the dimension.
          - `type` (enum) — required
            Values: `static`
          - `color` (string) — required
            The static color to be used for all values.
        - **No Color**
          Explicitly disables coloring
          - `type` (enum) — required
            Values: `none`
      - `compare` (union anyOf) — optional
        Compare the secondary metric to a baseline value or to the primary metric.
        - **Compare To Baseline**
          - `to` (enum) — required
            Values: `baseline`
          - `baseline` (number · default: 0) — optional
            Baseline value.
          - `icon` (boolean · default: true) — optional
            When `true`, displays the icon for the secondary value.
          - `palette` (string · default: compare_to) — optional
            Color palette name. Accepted values: 'default', 'elastic_line_optimized', 'severity', 'eui_amsterdam', 'kibana_v7_legacy', 'elastic_brand_2023'. Defaults to `default`.
          - `value` (boolean · default: true) — optional
            When `true`, displays the secondary value.
        - **Compare To Primary**
          - `to` (enum) — required
            Values: `primary`
          - `icon` (boolean · default: true) — optional
            When `true`, displays the icon for the secondary value.
          - `palette` (string · default: compare_to) — optional
            Color palette name. Accepted values: 'default', 'elastic_line_optimized', 'severity', 'eui_amsterdam', 'kibana_v7_legacy', 'elastic_brand_2023'. Defaults to `default`.
          - `value` (boolean · default: true) — optional
            When `true`, displays the secondary value.
      Any of:
      - **Count Metric Operation**
        - `empty_as_null` (boolean · default: false) — optional
          When `true`, treats empty buckets as null instead of zero.
        - `field` (string) — optional
          Field to be used for the metric
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `operation` (enum) — required
          Values: `count`
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
      - **Unique Count Metric Operation**
        - `empty_as_null` (boolean · default: false) — optional
          When `true`, treats empty buckets as null instead of zero.
        - `field` (string) — required
          Field to be used for the metric
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `operation` (enum) — required
          Values: `unique_count`
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
      - **Stats Metric Operation**
        - `field` (string) — required
          Field to be used for the metric
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `operation` (enum) — required
          Values: `min`, `max`, `average`, `median`, `standard_deviation`
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
      - **Sum Metric Operation**
        - `empty_as_null` (boolean · default: false) — optional
          When `true`, treats empty buckets as null instead of zero.
        - `field` (string) — required
          Field to be used for the metric
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `operation` (enum) — required
          Values: `sum`
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
      - **Last Value Operation**
        - `field` (string) — required
          Field to be used for the metric
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `multi_value` (boolean · default: false) — optional
          Whether to return all values for multi-value fields. Only affects data table and metric charts; other charts use the last value from the array.
        - `operation` (enum) — required
          Values: `last_value`
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_field` (string) — required
          Time field used to determine document recency
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
      - **Percentile Operation**
        - `field` (string) — required
          Field to be used for the metric
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `operation` (enum) — required
          Values: `percentile`
        - `percentile` (number · default: 95) — optional
          Percentile
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
      - **Percentile Ranks Operation**
        - `field` (string) — required
          Field to be used for the metric
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `operation` (enum) — required
          Values: `percentile_rank`
        - `rank` (number · default: 0) — optional
          Percentile Rank
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
      - **Differences Operation**
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `of` (union anyOf) — required
          Same options as `of` in `Differences Operation`
        - `operation` (enum) — required
          Values: `differences`
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
      - **Moving Average Operation**
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `of` (union anyOf) — required
          Same options as `of` in `Differences Operation`
        - `operation` (enum) — required
          Values: `moving_average`
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
        - `window` (number · default: 5) — optional
          Window
      - **Cumulative Sum Operation**
        - `field` (string) — optional
          Field to cumulatively sum. When omitted, cumulative sum is applied to the count of records.
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `operation` (enum) — required
          Values: `cumulative_sum`
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
      - **Counter Rate Operation**
        - `field` (string) — required
          Field to be used for the metric
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `operation` (enum) — required
          Values: `counter_rate`
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
      - **Formula Operation**
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `formula` (string) — required
          Formula
        - `label` (string) — optional
          Label for the operation
        - `operation` (enum) — required
          Values: `formula`
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (enum) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
  - `query` (object) — optional
    A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
    - `expression` (string) — required
      A query expression in KQL or Lucene syntax
    - `language` (enum · default: kql) — optional
      Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
      Values: `kql`, `lucene`
  - `sampling` (number · min: 0 · max: 1 · default: 1) — optional
    Sampling factor between 0 (no sampling) and 1 (full sampling).
  - `styling` (object) — optional
    Visual chart styling options
    - `density` (enum · default: default) — optional
      Density preset for the metric chart layout. Use `compact` for a compact layout, or `default` for increased padding, element spacing, and font size.
      Values: `compact`, `default`
    - `icon` (object) — optional
      Icon configuration for the metric chart
      - `alignment` (enum · default: right) — optional
        Icon alignment. Accepted values: `left`, `right`. Defaults to `right`.
        Values: `left`, `right`
      - `name` (enum) — required
        Icon name
        Values: `alert`, `asterisk`, `bell`, `bolt`, `bug`, `compute`, `editor_comment`, `flag`, `globe`, `heart`, `map_marker`, `pin`, `sort_down`, `sort_up`, `star_empty`, `tag`, `temperature`
    - `primary` (object) — optional
      - `labels` (object) — optional
        Labels (title and subtitle) configuration
        - `alignment` (enum · default: left) — optional
          Horizontal alignment for the title and subtitle text. Accepted values: `left`, `center`, `right`. Defaults to `left`.
          Values: `left`, `center`, `right`
      - `position` (enum · default: bottom) — optional
        Position of the primary metric value (top, middle, or bottom).
        Values: `top`, `middle`, `bottom`
      - `value` (object) — optional
        Primary metric value configuration
        - `alignment` (enum · default: right) — optional
          Alignment for the primary metric value. Accepted values: `left`, `center`, `right`. Defaults to `right`.
          Values: `left`, `center`, `right`
        - `sizing` (enum · default: auto) — optional
          Controls how the primary value text is sized within the panel. 'auto' selects a font size from predefined breakpoints based on panel height, then shrinks if the text overflows horizontally. 'fill' scales the text to be as large as possible, filling all available space.
          Values: `auto`, `fill`
    - `secondary` (object) — optional
      - `label` (object) — optional
        - `placement` (enum · default: before) — optional
          How the secondary metric name is shown: before the value, after the value, or in a tooltip. Ignored when the label is not visible.
          Values: `before`, `after`, `tooltip`
        - `visible` (boolean · default: false) — optional
          When `true`, displays the secondary metric name as its label.
      - `value` (object) — optional
        Secondary metric value configuration
        - `alignment` (enum · default: right) — optional
          Alignment for secondary values. Accepted values: `left`, `center`, `right`. Defaults to `right`.
          Values: `left`, `center`, `right`
  - `tags` (string[] · max items: 1000 · default: []) — optional
    Tag IDs to associate with this visualization.
  - `title` (string) — optional
    The title of the chart displayed in the panel. Optional. Any string value or undefined.
- **Legacy Metric Chart (library)**
  - `type` (enum) — required
    Values: `legacy_metric`
  - `data_source` (union oneOf) — required
    Same options as `data_source` in `Metric Chart (library)`
  - `description` (string) — optional
    The description of the chart. Optional. Any string value or undefined.
  - `filters` (union oneOf[] · max items: 100) — optional
    Filters applied to the panel
    Same options as `filters` in `Metric Chart (library)`
  - `ignore_global_filters` (boolean · default: false) — optional
    When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
  - `metric` (union anyOf) — required
    - **Count Metric Operation**
      - `apply_color_to` (enum) — optional
        Color target: `value` colors the metric text, `background` colors the cell or panel background.
        Values: `value`, `background`
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color configuration based on the metric value.
        - **Color By Value (Absolute)**
          Color by absolute value configuration
          - `type` (enum) — required
            Values: `dynamic`
          - `range` (enum) — required
            Values: `absolute`
          - `steps` (object[] · min items: 1 · max items: 100) — required
            Array of ordered color steps defining the range each color is applied.
            - `color` (string) — required
              The color to use for this step.
            - `gte` (number) — optional — nullable
              The lower bound of range from which this color applies (inclusive).
            - `lt` (number) — optional — nullable
              The upper bound of range to which this color applies (exclusive).
            - `lte` (number) — optional — nullable
              The upper bound of range to which this color applies (inclusive).
        - **Color By Value (Palette)**
          Color by value using a palette, with colors distributed across the range of values.
          - `type` (enum) — required
            Values: `distributed_palette`
          - `palette` (enum) — required
            The name of the palette to apply across the value range.
            Values: `status`, `temperature`, `complementary`, `negative`, `positive`, `cool`, `warm`, `gray`
        - **Legacy color by value (absolute)**
          Legacy color by absolute value configuration
          - `type` (enum) — required
            Values: `legacy_dynamic`
          - `palette` (string) — required
            The legacy palette name.
          - `range` (enum) — required
            Values: `absolute`
          - `shift` (boolean) — required
            When `true`, shifts the palette colors so they start from a different offset. Defaults to `false`.
          - `steps` (object[] · min items: 1 · max items: 100) — required
            Array of ordered color steps defining the range each color is applied.
            - `color` (string) — required
              The color to use for this step.
            - `gte` (number) — optional — nullable
              The lower bound of range from which this color applies (inclusive).
            - `lt` (number) — optional — nullable
              The upper bound of range to which this color applies (exclusive).
            - `lte` (number) — optional — nullable
              The upper bound of range to which this color applies (inclusive).
        - **Auto Color**
          Coloring determined at runtime based on chart defaults
          - `type` (enum) — required
            Values: `auto`
      - `labels` (object) — optional
        Labels configuration
        - `alignment` (enum · default: top) — optional
          Label alignment
          Values: `top`, `bottom`
      - `size` (enum · default: m) — optional
        Font size for the label and value
        Values: `xs`, `s`, `m`, `l`, `xl`, `xxl`
      - `values` (object) — optional
        Values configuration
        - `alignment` (enum · default: left) — optional
          Value alignment
          Values: `left`, `center`, `right`
      - `empty_as_null` (boolean · default: false) — optional
        When `true`, treats empty buckets as null instead of zero.
      - `field` (string) — optional
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `count`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Unique Count Metric Operation**
      - `apply_color_to` (enum) — optional
        Color target: `value` colors the metric text, `background` colors the cell or panel background.
        Values: `value`, `background`
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color configuration based on the metric value.
        Same options as `color` in `Count Metric Operation`
      - `labels` (object) — optional
        Labels configuration
        - `alignment` (enum · default: top) — optional
          Label alignment
          Values: `top`, `bottom`
      - `size` (enum · default: m) — optional
        Font size for the label and value
        Values: `xs`, `s`, `m`, `l`, `xl`, `xxl`
      - `values` (object) — optional
        Values configuration
        - `alignment` (enum · default: left) — optional
          Value alignment
          Values: `left`, `center`, `right`
      - `empty_as_null` (boolean · default: false) — optional
        When `true`, treats empty buckets as null instead of zero.
      - `field` (string) — required
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `unique_count`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Stats Metric Operation**
      - `apply_color_to` (enum) — optional
        Color target: `value` colors the metric text, `background` colors the cell or panel background.
        Values: `value`, `background`
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color configuration based on the metric value.
        Same options as `color` in `Count Metric Operation`
      - `labels` (object) — optional
        Labels configuration
        - `alignment` (enum · default: top) — optional
          Label alignment
          Values: `top`, `bottom`
      - `size` (enum · default: m) — optional
        Font size for the label and value
        Values: `xs`, `s`, `m`, `l`, `xl`, `xxl`
      - `values` (object) — optional
        Values configuration
        - `alignment` (enum · default: left) — optional
          Value alignment
          Values: `left`, `center`, `right`
      - `field` (string) — required
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `min`, `max`, `average`, `median`, `standard_deviation`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Sum Metric Operation**
      - `apply_color_to` (enum) — optional
        Color target: `value` colors the metric text, `background` colors the cell or panel background.
        Values: `value`, `background`
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color configuration based on the metric value.
        Same options as `color` in `Count Metric Operation`
      - `labels` (object) — optional
        Labels configuration
        - `alignment` (enum · default: top) — optional
          Label alignment
          Values: `top`, `bottom`
      - `size` (enum · default: m) — optional
        Font size for the label and value
        Values: `xs`, `s`, `m`, `l`, `xl`, `xxl`
      - `values` (object) — optional
        Values configuration
        - `alignment` (enum · default: left) — optional
          Value alignment
          Values: `left`, `center`, `right`
      - `empty_as_null` (boolean · default: false) — optional
        When `true`, treats empty buckets as null instead of zero.
      - `field` (string) — required
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `sum`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Last Value Operation**
      - `apply_color_to` (enum) — optional
        Color target: `value` colors the metric text, `background` colors the cell or panel background.
        Values: `value`, `background`
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color configuration based on the metric value.
        Same options as `color` in `Count Metric Operation`
      - `labels` (object) — optional
        Labels configuration
        - `alignment` (enum · default: top) — optional
          Label alignment
          Values: `top`, `bottom`
      - `size` (enum · default: m) — optional
        Font size for the label and value
        Values: `xs`, `s`, `m`, `l`, `xl`, `xxl`
      - `values` (object) — optional
        Values configuration
        - `alignment` (enum · default: left) — optional
          Value alignment
          Values: `left`, `center`, `right`
      - `field` (string) — required
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `multi_value` (boolean · default: false) — optional
        Whether to return all values for multi-value fields. Only affects data table and metric charts; other charts use the last value from the array.
      - `operation` (enum) — required
        Values: `last_value`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_field` (string) — required
        Time field used to determine document recency
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Percentile Operation**
      - `apply_color_to` (enum) — optional
        Color target: `value` colors the metric text, `background` colors the cell or panel background.
        Values: `value`, `background`
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color configuration based on the metric value.
        Same options as `color` in `Count Metric Operation`
      - `labels` (object) — optional
        Labels configuration
        - `alignment` (enum · default: top) — optional
          Label alignment
          Values: `top`, `bottom`
      - `size` (enum · default: m) — optional
        Font size for the label and value
        Values: `xs`, `s`, `m`, `l`, `xl`, `xxl`
      - `values` (object) — optional
        Values configuration
        - `alignment` (enum · default: left) — optional
          Value alignment
          Values: `left`, `center`, `right`
      - `field` (string) — required
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `percentile`
      - `percentile` (number · default: 95) — optional
        Percentile
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Percentile Ranks Operation**
      - `apply_color_to` (enum) — optional
        Color target: `value` colors the metric text, `background` colors the cell or panel background.
        Values: `value`, `background`
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color configuration based on the metric value.
        Same options as `color` in `Count Metric Operation`
      - `labels` (object) — optional
        Labels configuration
        - `alignment` (enum · default: top) — optional
          Label alignment
          Values: `top`, `bottom`
      - `size` (enum · default: m) — optional
        Font size for the label and value
        Values: `xs`, `s`, `m`, `l`, `xl`, `xxl`
      - `values` (object) — optional
        Values configuration
        - `alignment` (enum · default: left) — optional
          Value alignment
          Values: `left`, `center`, `right`
      - `field` (string) — required
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `percentile_rank`
      - `rank` (number · default: 0) — optional
        Percentile Rank
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Formula Operation**
      - `apply_color_to` (enum) — optional
        Color target: `value` colors the metric text, `background` colors the cell or panel background.
        Values: `value`, `background`
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color configuration based on the metric value.
        Same options as `color` in `Count Metric Operation`
      - `labels` (object) — optional
        Labels configuration
        - `alignment` (enum · default: top) — optional
          Label alignment
          Values: `top`, `bottom`
      - `size` (enum · default: m) — optional
        Font size for the label and value
        Values: `xs`, `s`, `m`, `l`, `xl`, `xxl`
      - `values` (object) — optional
        Values configuration
        - `alignment` (enum · default: left) — optional
          Value alignment
          Values: `left`, `center`, `right`
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `formula` (string) — required
        Formula
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `formula`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (enum) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
  - `query` (object) — optional
    A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
    - `expression` (string) — required
      A query expression in KQL or Lucene syntax
    - `language` (enum · default: kql) — optional
      Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
      Values: `kql`, `lucene`
  - `sampling` (number · min: 0 · max: 1 · default: 1) — optional
    Sampling factor between 0 (no sampling) and 1 (full sampling).
  - `tags` (string[] · max items: 1000 · default: []) — optional
    Tag IDs to associate with this visualization.
  - `title` (string) — optional
    The title of the chart displayed in the panel. Optional. Any string value or undefined.
- **XY Chart (library)**
  - `type` (enum) — required
    Values: `xy`
  - `axis` (object) — optional
    Axis configuration for X, Y, and Y2 axes. The Y axis is on the start (leading) side, the Y2 axis is on the end (trailing) side.
    - `x` (object) — optional
      X-axis configuration
      - `domain` (union anyOf) — optional
        X-axis domain configuration
        - **type: fit**
          Uses tight domain bounds from the observed data minimum to maximum, without baseline expansion.
          - `type` (enum) — required
            Values: `fit`
          - `rounding` (boolean · default: true) — optional
            Whether to round axis domain bounds outward to readable “nice” values (for example 1, 5, 10, 100) instead of exact data min/max.
        - **type: custom**
          Uses explicitly provided domain bounds (min and max).
          - `type` (enum) — required
            Values: `custom`
          - `max` (number) — required
            Max domain value
          - `min` (number) — required
            Min domain value
          - `rounding` (boolean · default: true) — optional
            Whether to round axis domain bounds outward to readable “nice” values (for example 1, 5, 10, 100) instead of exact data min/max.
      - `grid` (object) — optional
        Axis grid lines configuration
        - `visible` (boolean) — required
          Show grid lines for this axis
      - `labels` (object) — optional
        Label configuration
        - `orientation` (enum) — optional
          Orientation
          Values: `horizontal`, `vertical`, `angled`
      - `scale` (enum) — optional
        X-axis scale type. Use 'temporal' for timestamp/date fields (for example, @timestamp or DATE_TRUNC results). Use 'ordinal' for categorical/text fields. Use 'linear' for numeric fields.
        Values: `ordinal`, `temporal`, `linear`
      - `ticks` (object) — optional
        Axis tick marks configuration
        - `visible` (boolean) — required
          Show tick marks on the axis
      - `title` (object) — optional
        Axis title configuration
        - `text` (string) — optional
          Axis title text.
        - `visible` (boolean) — optional
          When `true`, displays the title.
    - `y` (object) — optional
      Y-axis configuration with scale and bounds. The axis position is determined by the key: y renders on the start side (left in vertical charts), y2 on the end side (right in vertical charts).
      - `domain` (union oneOf · default: {"rounding":true,"type":"full"}) — optional
        Y-axis domain configuration
        - **type: full** (`type: full`)
          Uses the full chart domain, including baseline expansion when applicable (for example, includes zero for bar-like series).
          - `type` (enum) — required
            Values: `full`
          - `rounding` (boolean · default: true) — optional
            Whether to round axis domain bounds outward to readable “nice” values (for example 1, 5, 10, 100) instead of exact data min/max.
        - **type: fit** (`type: fit`)
          Uses tight domain bounds from the observed data minimum to maximum, without baseline expansion.
          - `type` (enum) — required
            Values: `fit`
          - `rounding` (boolean · default: true) — optional
            Whether to round axis domain bounds outward to readable “nice” values (for example 1, 5, 10, 100) instead of exact data min/max.
        - **type: custom** (`type: custom`)
          Uses explicitly provided domain bounds (min and max).
          - `type` (enum) — required
            Values: `custom`
          - `max` (number) — required
            Max domain value
          - `min` (number) — required
            Min domain value
          - `rounding` (boolean · default: true) — optional
            Whether to round axis domain bounds outward to readable “nice” values (for example 1, 5, 10, 100) instead of exact data min/max.
      - `grid` (object) — optional
        Axis grid lines configuration
        - `visible` (boolean) — required
          Show grid lines for this axis
      - `labels` (object) — optional
        Label configuration
        - `orientation` (enum) — optional
          Orientation
          Values: `horizontal`, `vertical`, `angled`
      - `scale` (enum) — optional
        Y-axis scale type for data transformation
        Values: `linear`, `log`, `sqrt`
      - `ticks` (object) — optional
        Axis tick marks configuration
        - `visible` (boolean) — required
          Show tick marks on the axis
      - `title` (object) — optional
        Axis title configuration
        - `text` (string) — optional
          Axis title text.
        - `visible` (boolean) — optional
          When `true`, displays the title.
    - `y2` (object) — optional
      Y-axis configuration with scale and bounds. The axis position is determined by the key: y renders on the start side (left in vertical charts), y2 on the end side (right in vertical charts).
      - `domain` (union oneOf · default: {"rounding":true,"type":"full"}) — optional
        Y-axis domain configuration
        - **type: full** (`type: full`)
          Uses the full chart domain, including baseline expansion when applicable (for example, includes zero for bar-like series).
          - `type` (enum) — required
            Values: `full`
          - `rounding` (boolean · default: true) — optional
            Whether to round axis domain bounds outward to readable “nice” values (for example 1, 5, 10, 100) instead of exact data min/max.
        - **type: fit** (`type: fit`)
          Uses tight domain bounds from the observed data minimum to maximum, without baseline expansion.
          - `type` (enum) — required
            Values: `fit`
          - `rounding` (boolean · default: true) — optional
            Whether to round axis domain bounds outward to readable “nice” values (for example 1, 5, 10, 100) instead of exact data min/max.
        - **type: custom** (`type: custom`)
          Uses explicitly provided domain bounds (min and max).
          - `type` (enum) — required
            Values: `custom`
          - `max` (number) — required
            Max domain value
          - `min` (number) — required
            Min domain value
          - `rounding` (boolean · default: true) — optional
            Whether to round axis domain bounds outward to readable “nice” values (for example 1, 5, 10, 100) instead of exact data min/max.
      - `grid` (object) — optional
        Axis grid lines configuration
        - `visible` (boolean) — required
          Show grid lines for this axis
      - `labels` (object) — optional
        Label configuration
        - `orientation` (enum) — optional
          Orientation
          Values: `horizontal`, `vertical`, `angled`
      - `scale` (enum) — optional
        Y-axis scale type for data transformation
        Values: `linear`, `log`, `sqrt`
      - `ticks` (object) — optional
        Axis tick marks configuration
        - `visible` (boolean) — required
          Show tick marks on the axis
      - `title` (object) — optional
        Axis title configuration
        - `text` (string) — optional
          Axis title text.
        - `visible` (boolean) — optional
          When `true`, displays the title.
  - `description` (string) — optional
    The description of the chart. Optional. Any string value or undefined.
  - `filters` (union oneOf[] · max items: 100) — optional
    Filters applied to the panel
    Same options as `filters` in `Metric Chart (library)`
  - `layers` (union anyOf[] · min items: 1 · max items: 100) — required
    Chart layers
    - **Layer (DSL)**
      Data layer for standard queries with metrics and buckets
      - `breakdown_by` (union anyOf) — optional
        - **Date Histogram Operation**
          - `operation` (enum) — required
            Values: `date_histogram`
          - `aggregate_first` (boolean) — optional
            When `true`, aggregates data before splitting into series. Defaults to `false`.
          - `collapse_by` (union anyOf) — optional
            Aggregation function used to collapse a breakdown dimension into a single value.
            Values: `avg`, `sum`, `max`, `min`
          - `color` (union anyOf) — optional
            Color mapping for dimension values, either categorical (for specific values) or as a gradient.
            Default: `{"mapping":[],"mode":"categorical","palette":"default"}`
            - **Categorical Color Mapping**
              Palette color assignment for specific categorical values. Unmapped values receive the unassigned color.
              - `mode` (enum) — required
                Values: `categorical`
              - `mapping` (object[] · max items: 1000) — required
                - `color` (union anyOf) — required
                  - **Color From Palette**
                    Color at a fixed index position in a named palette.
                    - `type` (enum) — required
                      Values: `from_palette`
                    - `index` (number) — required
                      The index of the color in the palette.
                    - `palette` (string) — optional
                      Color palette name. Accepted values: 'default', 'elastic_line_optimized', 'severity', 'eui_amsterdam', 'kibana_v7_legacy', 'elastic_brand_2023'. Defaults to `default`.
                  - **Color Code**
                    A color specified as a hex or CSS color code string.
                    - `type` (enum) — required
                      Values: `color_code`
                    - `value` (string) — required
                      The static color value to use.
                - `values` (union anyOf[] · max items: 1000) — required
                  - **string**
                  - **number**
                  - **Range Key**
                    - `type` (enum) — required
                      Values: `range_key`
                    - `from` (number | string) — required
                    - `ranges` (object[] · max items: 100) — required
                      - `from` (number | string) — required
                      - `label` (string) — required
                      - `to` (number | string) — required
                    - `to` (number | string) — required
                  - **Multi Field Key**
                    - `type` (enum) — required
                      Values: `multi_field_key`
                    - `keys` (string[] · max items: 100) — required
              - `palette` (string) — required
                Color palette name. Accepted values: 'default', 'elastic_line_optimized', 'severity', 'eui_amsterdam', 'kibana_v7_legacy', 'elastic_brand_2023'. Defaults to `default`.
              - `unassigned` (union anyOf) — optional
                The color to use for unassigned values.
                - **Color From Palette**
                  Color at a fixed index position in a named palette.
                  - `type` (enum) — required
                    Values: `from_palette`
                  - `index` (number) — required
                    The index of the color in the palette.
                  - `palette` (string) — optional
                    Color palette name. Accepted values: 'default', 'elastic_line_optimized', 'severity', 'eui_amsterdam', 'kibana_v7_legacy', 'elastic_brand_2023'. Defaults to `default`.
                - **Color Code**
                  A color specified as a hex or CSS color code string.
                  - `type` (enum) — required
                    Values: `color_code`
                  - `value` (string) — required
                    The static color value to use.
            - **Gradient Color Mapping**
              Gradient color mapping across categorical values.
              - `mode` (enum) — required
                Values: `gradient`
              - `gradient` (union anyOf[] · max items: 3) — optional
                - **Color From Palette**
                  Color at a fixed index position in a named palette.
                  - `type` (enum) — required
                    Values: `from_palette`
                  - `index` (number) — required
                    The index of the color in the palette.
                  - `palette` (string) — optional
                    Color palette name. Accepted values: 'default', 'elastic_line_optimized', 'severity', 'eui_amsterdam', 'kibana_v7_legacy', 'elastic_brand_2023'. Defaults to `default`.
                - **Color Code**
                  A color specified as a hex or CSS color code string.
                  - `type` (enum) — required
                    Values: `color_code`
                  - `value` (string) — required
                    The static color value to use.
              - `mapping` (object[] · max items: 100) — optional
                - `values` (union anyOf[] · max items: 100) — required
                  - **string**
                  - **number**
                  - **Range Key**
                    - `type` (enum) — required
                      Values: `range_key`
                    - `from` (number | string) — required
                    - `ranges` (object[] · max items: 100) — required
                      - `from` (number | string) — required
                      - `label` (string) — required
                      - `to` (number | string) — required
                    - `to` (number | string) — required
                  - **Multi Field Key**
                    - `type` (enum) — required
                      Values: `multi_field_key`
                    - `keys` (string[] · max items: 100) — required
              - `palette` (string) — required
                Color palette name. Accepted values: 'default', 'elastic_line_optimized', 'severity', 'eui_amsterdam', 'kibana_v7_legacy', 'elastic_brand_2023'. Defaults to `default`.
              - `sort` (enum) — optional
                Sort direction
                Values: `asc`, `desc`
              - `unassigned` (union anyOf) — optional
                The color to use for unassigned values.
                - **Color From Palette**
                  Color at a fixed index position in a named palette.
                  - `type` (enum) — required
                    Values: `from_palette`
                  - `index` (number) — required
                    The index of the color in the palette.
                  - `palette` (string) — optional
                    Color palette name. Accepted values: 'default', 'elastic_line_optimized', 'severity', 'eui_amsterdam', 'kibana_v7_legacy', 'elastic_brand_2023'. Defaults to `default`.
                - **Color Code**
                  A color specified as a hex or CSS color code string.
                  - `type` (enum) — required
                    Values: `color_code`
                  - `value` (string) — required
                    The static color value to use.
          - `drop_partial_intervals` (boolean · default: false) — optional
            When `true`, drops partial intervals from the results.
          - `field` (string) — required
            Field to be used for the date histogram.
          - `include_empty_rows` (boolean · default: true) — optional
            When `true`, includes empty rows in the results.
          - `label` (string) — optional
            Label for the operation
          - `suggested_interval` (string · default: auto) — optional
            Suggested time interval.
          - `use_original_time_range` (boolean · default: false) — optional
            When `true`, uses the original time range instead of the current query time range.
        - **Terms Operation**
          - `operation` (enum) — required
            Values: `terms`
          - `aggregate_first` (boolean) — optional
            When `true`, aggregates data before splitting into series. Defaults to `false`.
          - `collapse_by` (union anyOf) — optional
            Aggregation function used to collapse a breakdown dimension into a single value.
            Values: `avg`, `sum`, `max`, `min`
          - `color` (union anyOf) — optional
            Color mapping for dimension values, either categorical (for specific values) or as a gradient.
            Default: `{"mapping":[],"mode":"categorical","palette":"default"}`
            Same options as `color` in `Date Histogram Operation`
          - `excludes` (object) — optional
            - `as_regex` (boolean) — optional
              When `true`, treats the values as regular expressions.
            - `values` (union string[] | number[]) — required
              Values to exclude.
          - `fields` (string[] · min items: 1 · max items: 4) — required
          - `format` (union anyOf) — optional
            Number display format for the dimension value.
            Same options as `format` in `Terms Operation`
          - `includes` (object) — optional
            - `as_regex` (boolean) — optional
              When `true`, treats the values as regular expressions.
            - `values` (union string[] | number[]) — required
              Values to include.
          - `increase_accuracy` (boolean) — optional
            When `true`, increases accuracy at the cost of performance.
          - `label` (string) — optional
            Label for the operation
          - `limit` (number · default: 5) — optional
            Number of terms to return.
          - `other_bucket` (object) — optional
            - `include_documents_without_field` (boolean) — required
              When `true`, includes documents that do not have the specified field.
          - `rank_by` (union anyOf) — optional
            Same options as `rank_by` in `Terms Operation`
        - **Histogram Operation**
          - `operation` (enum) — required
            Values: `histogram`
          - `aggregate_first` (boolean) — optional
            When `true`, aggregates data before splitting into series. Defaults to `false`.
          - `collapse_by` (union anyOf) — optional
            Aggregation function used to collapse a breakdown dimension into a single value.
            Values: `avg`, `sum`, `max`, `min`
          - `color` (union anyOf) — optional
            Color mapping for dimension values, either categorical (for specific values) or as a gradient.
            Default: `{"mapping":[],"mode":"categorical","palette":"default"}`
            Same options as `color` in `Date Histogram Operation`
          - `field` (string) — required
            Field to be used for the histogram.
          - `format` (union anyOf) — optional
            Number display format for the dimension value.
            Same options as `format` in `Terms Operation`
          - `granularity` (union number | enum · default: auto) — optional
            Values: `auto`
          - `include_empty_rows` (boolean · default: true) — optional
            When `true`, includes empty rows in the results.
          - `label` (string) — optional
            Label for the operation
        - **Ranges Operation**
          - `operation` (enum) — required
            Values: `range`
          - `aggregate_first` (boolean) — optional
            When `true`, aggregates data before splitting into series. Defaults to `false`.
          - `collapse_by` (union anyOf) — optional
            Aggregation function used to collapse a breakdown dimension into a single value.
            Values: `avg`, `sum`, `max`, `min`
          - `color` (union anyOf) — optional
            Color mapping for dimension values, either categorical (for specific values) or as a gradient.
            Default: `{"mapping":[],"mode":"categorical","palette":"default"}`
            Same options as `color` in `Date Histogram Operation`
          - `field` (string) — required
            Field to be used for the range.
          - `format` (union anyOf) — optional
            Number display format for the dimension value.
            Same options as `format` in `Terms Operation`
          - `label` (string) — optional
            Label for the operation
          - `ranges` (object[] · max items: 100) — required
            - `gt` (number) — optional
              Greater than.
            - `label` (string) — optional
              Label.
            - `lte` (number) — optional
              Less than or equal to.
        - **Filters Operation**
          - `operation` (enum) — required
            Values: `filters`
          - `aggregate_first` (boolean) — optional
            When `true`, aggregates data before splitting into series. Defaults to `false`.
          - `collapse_by` (union anyOf) — optional
            Aggregation function used to collapse a breakdown dimension into a single value.
            Values: `avg`, `sum`, `max`, `min`
          - `color` (union anyOf) — optional
            Color mapping for dimension values, either categorical (for specific values) or as a gradient.
            Default: `{"mapping":[],"mode":"categorical","palette":"default"}`
            Same options as `color` in `Date Histogram Operation`
          - `filters` (object[] · max items: 100) — required
            - `filter` (object) — required
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `label` (string) — optional
              Label for the filter
          - `label` (string) — optional
            Label for the operation
      - `data_source` (union oneOf) — required
        Same options as `data_source` in `Metric Chart (library)`
      - `ignore_global_filters` (boolean · default: false) — optional
        When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
      - `sampling` (number · min: 0 · max: 1 · default: 1) — optional
        Sampling factor between 0 (no sampling) and 1 (full sampling).
      - `type` (enum) — required
        Chart type for the data layer
        Values: `area`, `area_percentage`, `area_stacked`, `bar`, `bar_horizontal`, `bar_horizontal_stacked`, `bar_horizontal_percentage`, `bar_percentage`, `bar_stacked`, `line`
      - `x` (union anyOf) — optional
        - **Date Histogram Operation**
          - `operation` (enum) — required
            Values: `date_histogram`
          - `drop_partial_intervals` (boolean · default: false) — optional
            When `true`, drops partial intervals from the results.
          - `field` (string) — required
            Field to be used for the date histogram.
          - `include_empty_rows` (boolean · default: true) — optional
            When `true`, includes empty rows in the results.
          - `label` (string) — optional
            Label for the operation
          - `suggested_interval` (string · default: auto) — optional
            Suggested time interval.
          - `use_original_time_range` (boolean · default: false) — optional
            When `true`, uses the original time range instead of the current query time range.
        - **Terms Operation**
          - `operation` (enum) — required
            Values: `terms`
          - `excludes` (object) — optional
            - `as_regex` (boolean) — optional
              When `true`, treats the values as regular expressions.
            - `values` (union string[] | number[]) — required
              Values to exclude.
          - `fields` (string[] · min items: 1 · max items: 4) — required
          - `format` (union anyOf) — optional
            Number display format for the dimension value.
            Same options as `format` in `Terms Operation`
          - `includes` (object) — optional
            - `as_regex` (boolean) — optional
              When `true`, treats the values as regular expressions.
            - `values` (union string[] | number[]) — required
              Values to include.
          - `increase_accuracy` (boolean) — optional
            When `true`, increases accuracy at the cost of performance.
          - `label` (string) — optional
            Label for the operation
          - `limit` (number · default: 5) — optional
            Number of terms to return.
          - `other_bucket` (object) — optional
            - `include_documents_without_field` (boolean) — required
              When `true`, includes documents that do not have the specified field.
          - `rank_by` (union anyOf) — optional
            Same options as `rank_by` in `Terms Operation`
        - **Histogram Operation**
          - `operation` (enum) — required
            Values: `histogram`
          - `field` (string) — required
            Field to be used for the histogram.
          - `format` (union anyOf) — optional
            Number display format for the dimension value.
            Same options as `format` in `Terms Operation`
          - `granularity` (union number | enum · default: auto) — optional
            Values: `auto`
          - `include_empty_rows` (boolean · default: true) — optional
            When `true`, includes empty rows in the results.
          - `label` (string) — optional
            Label for the operation
        - **Ranges Operation**
          - `operation` (enum) — required
            Values: `range`
          - `field` (string) — required
            Field to be used for the range.
          - `format` (union anyOf) — optional
            Number display format for the dimension value.
            Same options as `format` in `Terms Operation`
          - `label` (string) — optional
            Label for the operation
          - `ranges` (object[] · max items: 100) — required
            - `gt` (number) — optional
              Greater than.
            - `label` (string) — optional
              Label.
            - `lte` (number) — optional
              Less than or equal to.
        - **Filters Operation**
          - `operation` (enum) — required
            Values: `filters`
          - `filters` (object[] · max items: 100) — required
            - `filter` (object) — required
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `label` (string) — optional
              Label for the filter
          - `label` (string) — optional
            Label for the operation
      - `y` (union anyOf[] · max items: 100) — required
        Array of metrics to display on Y-axis
        - `axis` (enum · default: y) — optional
          The Y axis this metric is plotted on. Values match the root axis configuration keys (axis.y, axis.y2). If omitted, defaults to the Y axis start (leading) side.
          Values: `y`, `y2`
        - `color` (union anyOf · default: {"type":"auto"}) — optional
          - **Static Color**
            Fixed color for all values in the dimension.
            - `type` (enum) — required
              Values: `static`
            - `color` (string) — required
              The static color to be used for all values.
          - **Auto Color**
            Coloring determined at runtime based on chart defaults
            - `type` (enum) — required
              Values: `auto`
    - **Reference Line Layer (DSL)**
      Reference line layer for standard queries
      - `data_source` (union oneOf) — required
        Same options as `data_source` in `Metric Chart (library)`
      - `ignore_global_filters` (boolean · default: false) — optional
        When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
      - `sampling` (number · min: 0 · max: 1 · default: 1) — optional
        Sampling factor between 0 (no sampling) and 1 (full sampling).
      - `thresholds` (union anyOf[] · min items: 1 · max items: 100) — required
        Array of reference line thresholds
        - `axis` (enum · default: y) — optional
          The axis this reference line is drawn on. Values match the root axis configuration keys. If omitted, defaults to the primary Y axis.
          Values: `x`, `y`, `y2`
        - `color` (union anyOf · default: {"type":"auto"}) — optional
          - **Static Color**
            Fixed color for all values in the dimension.
            - `type` (enum) — required
              Values: `static`
            - `color` (string) — required
              The static color to be used for all values.
          - **Auto Color**
            Coloring determined at runtime based on chart defaults
            - `type` (enum) — required
              Values: `auto`
        - `fill` (enum) — optional
          Fill direction for reference line
          Values: `above`, `below`
        - `icon` (enum) — optional
          Icon to display on the reference line
          Values: `asterisk`, `alert`, `bell`, `bolt`, `bug`, `circle`, `editor_comment`, `flag`, `heart`, `map_marker`, `pin_filled`, `star_empty`, `star_filled`, `tag`, `triangle`
        - `position` (enum) — optional
          Position of the icon and label relative to the reference line
          Values: `auto`, `left`, `right`
        - `stroke_dash` (enum) — optional
          Line style
          Values: `solid`, `dashed`, `dotted`
        - `stroke_width` (number · min: 1 · max: 10) — optional
          Line width in pixels
        - `text` (object) — optional
          Reference line text label configuration
          - `visible` (boolean) — required
            Show text label on the reference line
      - `type` (enum) — required
        Values: `reference_lines`
    - **Annotation Layer (DSL)**
      Layer containing annotations (query-based, points, and ranges)
      - `data_source` (union oneOf) — optional
        Same options as `data_source` in `Metric Chart (library)`
      - `events` (union anyOf[] · min items: 1 · max items: 100) — required
        Array of annotation configurations
        - **type: query**
          Annotation from query results matching a filter
          - `type` (enum) — required
            Values: `query`
          - `color` (union anyOf · default: {"type":"auto"}) — optional
            - **Static Color**
              Fixed color for all values in the dimension.
              - `type` (enum) — required
                Values: `static`
              - `color` (string) — required
                The static color to be used for all values.
            - **Auto Color**
              Coloring determined at runtime based on chart defaults
              - `type` (enum) — required
                Values: `auto`
          - `extra_fields` (string[] · max items: 100) — optional
            Additional fields for annotation tooltip
          - `icon` (enum) — optional
            Icon to display at the annotation point
            Values: `asterisk`, `alert`, `bell`, `bolt`, `bug`, `circle`, `editor_comment`, `flag`, `heart`, `map_marker`, `pin_filled`, `star_empty`, `star_filled`, `tag`, `triangle`
          - `label` (string) — optional
            Label text for the annotation
          - `line` (object) — optional
            Vertical line configuration for point annotation
            - `stroke_dash` (enum) — required
              Vertical line style
              Values: `solid`, `dashed`, `dotted`
            - `stroke_width` (number · min: 1 · max: 10) — required
              Vertical line width in pixels
          - `query` (object) — required
            A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
            - `expression` (string) — required
              A query expression in KQL or Lucene syntax
            - `language` (enum · default: kql) — optional
              Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
              Values: `kql`, `lucene`
          - `text` (object) — optional
            Annotation text label configuration
            - `field` (string) — optional
              Field name for text label source
            - `visible` (boolean) — required
              Show text label on the annotation
          - `time_field` (string) — required
            Field containing the timestamp
          - `visible` (boolean) — optional
            Show the annotation
        - **type: point**
          Manual point annotation at specific timestamp
          - `type` (enum) — required
            Values: `point`
          - `color` (union anyOf · default: {"type":"auto"}) — optional
            - **Static Color**
              Fixed color for all values in the dimension.
              - `type` (enum) — required
                Values: `static`
              - `color` (string) — required
                The static color to be used for all values.
            - **Auto Color**
              Coloring determined at runtime based on chart defaults
              - `type` (enum) — required
                Values: `auto`
          - `icon` (enum) — optional
            Icon to display at the annotation point
            Values: `asterisk`, `alert`, `bell`, `bolt`, `bug`, `circle`, `editor_comment`, `flag`, `heart`, `map_marker`, `pin_filled`, `star_empty`, `star_filled`, `tag`, `triangle`
          - `label` (string) — optional
            Label text for the annotation
          - `line` (object) — optional
            Vertical line configuration for point annotation
            - `stroke_dash` (enum) — required
              Vertical line style
              Values: `solid`, `dashed`, `dotted`
            - `stroke_width` (number · min: 1 · max: 10) — required
              Vertical line width in pixels
          - `text` (object) — optional
            Annotation text label visibility
            - `visible` (boolean) — required
              Show text label on the annotation
          - `timestamp` (union number | string) — required
          - `visible` (boolean) — optional
            Show the annotation
        - **type: range**
          Manual range annotation spanning time interval
          - `type` (enum) — required
            Values: `range`
          - `color` (union anyOf · default: {"type":"auto"}) — optional
            - **Static Color**
              Fixed color for all values in the dimension.
              - `type` (enum) — required
                Values: `static`
              - `color` (string) — required
                The static color to be used for all values.
            - **Auto Color**
              Coloring determined at runtime based on chart defaults
              - `type` (enum) — required
                Values: `auto`
          - `fill` (enum · default: inside) — optional
            Fill direction for range
            Values: `inside`, `outside`
          - `interval` (object) — required
            Time range for annotation
            - `from` (union number | string) — required
            - `to` (union number | string) — required
          - `label` (string) — optional
            Label text for the annotation
          - `visible` (boolean) — optional
            Show the annotation
      - `ignore_global_filters` (boolean · default: false) — optional
        When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
      - `type` (enum) — required
        Values: `annotations`
    - **Annotation Layer (By Reference)**
      Reference to a library annotation group
      - `group_id` (string) — required
        ID of the linked annotation group from the library
      - `type` (enum) — required
        Values: `annotation_group`
  - `legend` (union anyOf) — optional
    Legend configuration for XY chart
    - **Outside horizontal**
      Outside legend positioned horizontal (top/bottom) of the chart
      - `layout` (union anyOf) — optional
        - **type: grid**
          - `type` (enum) — required
            Values: `grid`
          - `truncate` (object) — optional
            - `enabled` (boolean) — optional
              Enable truncation of legend items
            - `max_lines` (number · min: 1 · max: 10 · default: 1) — optional
              Number of lines before legend items are truncated.
        - **type: list**
          - `type` (enum) — required
            Values: `list`
      - `placement` (enum) — optional
        Values: `outside`
      - `position` (enum) — optional
        Values: `top`, `bottom`
      - `series_header` (object) — optional
        Legend table series header configuration.
        - `text` (string) — optional
          Legend table series header text.
        - `visible` (boolean) — optional
          When true, shows the legend table series header.
      - `statistics` (enum[] · max items: 17) — optional
        Statistics to display in legend
        Values: `min`, `max`, `avg`, `median`, `range`, `last_value`, `last_non_null_value`, `first_value`, `first_non_null_value`, `difference`, `difference_percentage`, `count`, `total`, `standard_deviation`, `variance`, `distinct_count`, `current_and_last_value`
      - `visibility` (enum) — optional
        Legend visibility.
        Values: `auto`, `visible`, `hidden`
    - **Outside vertical**
      Outside legend positioned vertical (left/right) of the chart
      - `layout` (object) — optional
        - `truncate` (object) — optional
          - `enabled` (boolean) — optional
            Enable truncation of legend items
          - `max_lines` (number · min: 1 · max: 10 · default: 1) — optional
            Number of lines before legend items are truncated.
        - `type` (enum) — required
          Values: `grid`
      - `placement` (enum) — optional
        Values: `outside`
      - `position` (enum) — optional
        Values: `left`, `right`
      - `series_header` (object) — optional
        Legend table series header configuration.
        - `text` (string) — optional
          Legend table series header text.
        - `visible` (boolean) — optional
          When true, shows the legend table series header.
      - `size` (union anyOf) — optional
        Legend size.
        Values: `auto`, `s`, `m`, `l`, `xl`
      - `statistics` (enum[] · max items: 17) — optional
        Statistics to display in legend
        Values: `min`, `max`, `avg`, `median`, `range`, `last_value`, `last_non_null_value`, `first_value`, `first_non_null_value`, `difference`, `difference_percentage`, `count`, `total`, `standard_deviation`, `variance`, `distinct_count`, `current_and_last_value`
      - `visibility` (enum) — optional
        Legend visibility.
        Values: `auto`, `visible`, `hidden`
    - **Inside**
      Inside legend
      - `columns` (number · min: 1 · max: 5) — optional
        Number of legend columns
      - `layout` (object) — optional
        - `truncate` (object) — optional
          - `enabled` (boolean) — optional
            Enable truncation of legend items
          - `max_lines` (number · min: 1 · max: 10 · default: 1) — optional
            Number of lines before legend items are truncated.
        - `type` (enum) — required
          Values: `grid`
      - `placement` (enum) — required
        Values: `inside`
      - `position` (enum) — optional
        Legend position inside the chart
        Values: `top_left`, `top_right`, `bottom_left`, `bottom_right`
      - `series_header` (object) — optional
        Legend table series header configuration.
        - `text` (string) — optional
          Legend table series header text.
        - `visible` (boolean) — optional
          When true, shows the legend table series header.
      - `statistics` (enum[] · max items: 17) — optional
        Statistics to display in legend
        Values: `min`, `max`, `avg`, `median`, `range`, `last_value`, `last_non_null_value`, `first_value`, `first_non_null_value`, `difference`, `difference_percentage`, `count`, `total`, `standard_deviation`, `variance`, `distinct_count`, `current_and_last_value`
      - `visibility` (enum) — optional
        Legend visibility.
        Values: `auto`, `visible`, `hidden`
  - `query` (object) — optional
    A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
    - `expression` (string) — required
      A query expression in KQL or Lucene syntax
    - `language` (enum · default: kql) — optional
      Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
      Values: `kql`, `lucene`
  - `styling` (object) — optional
    Visual styling options for the chart
    - `areas` (object) — optional
      Area-specific rendering settings
      - `fill` (enum · default: solid) — optional
        Area fill type: solid or gradient. Defaults to solid.
        Values: `solid`, `gradient`
      - `fill_opacity` (number · min: 0 · max: 2 · default: 0.3) — optional
        Area fill opacity (0-1 typical, max 2 for legacy)
    - `bars` (object) — optional
      Bar-specific rendering settings
      - `data_labels` (object) — optional
        Data label configuration for bar series
        - `visible` (boolean · default: false) — optional
          Display value labels on bar data points
      - `minimum_height` (number · min: 0 · default: 1) — optional
        Minimum bar height in pixels
    - `fitting` (object) — optional
      Missing data interpolation configuration for line and area series
      - `emphasize` (boolean) — optional
        Visually distinguish fitted segments with a dashed line style and reduced area opacity
      - `extend` (enum) — optional
        How to render line and area edges when data does not cover the full X domain
        Values: `none`, `zero`, `nearest`
      - `type` (enum) — required
        Fitting function type for missing data
        Values: `none`, `zero`, `linear`, `carry`, `lookahead`, `average`, `nearest`
    - `interpolation` (enum · default: linear) — optional
      Curve interpolation method for line and area series
      Values: `linear`, `smooth`, `stepped`
    - `overlays` (object) — optional
      Visual overlays drawn on top of the chart canvas
      - `current_time_marker` (object) — optional
        Current time marker configuration
        - `visible` (boolean · default: false) — optional
          Show current time marker line
      - `partial_buckets` (object) — optional
        Partial (incomplete) bucket indicator configuration
        - `visible` (boolean · default: false) — optional
          Show partial bucket indicators at time range edges
    - `points` (object) — optional
      Data point marker settings for line and area series
      - `visibility` (enum · default: auto) — optional
        Data point marker visibility on line and area series
        Values: `auto`, `visible`, `hidden`
  - `tags` (string[] · max items: 1000 · default: []) — optional
    Tag IDs to associate with this visualization.
  - `title` (string) — optional
    The title of the chart displayed in the panel. Optional. Any string value or undefined.
- **Gauge Chart (library)**
  - `type` (enum) — required
    Values: `gauge`
  - `data_source` (union oneOf) — required
    Same options as `data_source` in `Metric Chart (library)`
  - `description` (string) — optional
    The description of the chart. Optional. Any string value or undefined.
  - `filters` (union oneOf[] · max items: 100) — optional
    Filters applied to the panel
    Same options as `filters` in `Metric Chart (library)`
  - `ignore_global_filters` (boolean · default: false) — optional
    When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
  - `metric` (union anyOf) — required
    - **Count Metric Operation**
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color configuration for the gauge fill.
        - **Color By Value**
          Dynamic color mapping by numeric range, with support for absolute and percentage-based ranges and for named palettes.
          Any of:
          - **Color By Value (Absolute)**
            Color by absolute value configuration
            - `range` (enum) — required
              Values: `absolute`
            - `steps` (object[] · min items: 1 · max items: 100) — required
              Array of ordered color steps defining the range each color is applied.
              - `color` (string) — required
                The color to use for this step.
              - `gte` (number) — optional — nullable
                The lower bound of range from which this color applies (inclusive).
              - `lt` (number) — optional — nullable
                The upper bound of range to which this color applies (exclusive).
              - `lte` (number) — optional — nullable
                The upper bound of range to which this color applies (inclusive).
            - `type` (enum) — required
              Values: `dynamic`
          - **Color By Value (Percentage)**
            Color by percentage value configuration
            - `range` (enum) — required
              Values: `percentage`
            - `steps` (object[] · min items: 1 · max items: 100) — required
              Array of ordered color steps defining the range each color is applied.
              - `color` (string) — required
                The color to use for this step.
              - `gte` (number) — optional — nullable
                The lower bound of range from which this color applies (inclusive).
              - `lt` (number) — optional — nullable
                The upper bound of range to which this color applies (exclusive).
              - `lte` (number) — optional — nullable
                The upper bound of range to which this color applies (inclusive).
            - `type` (enum) — required
              Values: `dynamic`
          - **Color By Value (Palette)**
            Color by value using a palette, with colors distributed across the range of values.
            - `palette` (enum) — required
              The name of the palette to apply across the value range.
              Values: `status`, `temperature`, `complementary`, `negative`, `positive`, `cool`, `warm`, `gray`
            - `type` (enum) — required
              Values: `distributed_palette`
          - **Legacy color by value**
            Legacy color by value configuration
            - `palette` (string) — required
              The legacy palette name.
            - `range` (enum) — required
              Determines whether the range is interpreted as absolute or as a percentage of the data.
              Values: `absolute`, `percentage`
            - `shift` (boolean) — required
              When `true`, shifts the palette colors so they start from a different offset. Defaults to `false`.
            - `steps` (object[] · min items: 1 · max items: 100) — required
              Array of ordered color steps defining the range each color is applied.
              - `color` (string) — required
                The color to use for this step.
              - `gte` (number) — optional — nullable
                The lower bound of range from which this color applies (inclusive).
              - `lt` (number) — optional — nullable
                The upper bound of range to which this color applies (exclusive).
              - `lte` (number) — optional — nullable
                The upper bound of range to which this color applies (inclusive).
            - `type` (enum) — required
              Values: `legacy_dynamic`
        - **No Color**
          Explicitly disables coloring
          - `type` (enum) — required
            Values: `none`
        - **Auto Color**
          Coloring determined at runtime based on chart defaults
          - `type` (enum) — required
            Values: `auto`
      - `goal` (union anyOf) — optional
        Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
        - **Field Metric Operations**
          Any of:
          - **Unique Count Metric Operation**
            - `empty_as_null` (boolean · default: false) — optional
              When `true`, treats empty buckets as null instead of zero.
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `unique_count`
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Stats Metric Operation**
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `min`, `max`, `average`, `median`, `standard_deviation`
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Sum Metric Operation**
            - `empty_as_null` (boolean · default: false) — optional
              When `true`, treats empty buckets as null instead of zero.
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `sum`
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Last Value Operation**
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `multi_value` (boolean · default: false) — optional
              Whether to return all values for multi-value fields. Only affects data table and metric charts; other charts use the last value from the array.
            - `operation` (enum) — required
              Values: `last_value`
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_field` (string) — required
              Time field used to determine document recency
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Percentile Operation**
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `percentile`
            - `percentile` (number · default: 95) — optional
              Percentile
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Percentile Ranks Operation**
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `percentile_rank`
            - `rank` (number · default: 0) — optional
              Percentile Rank
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
        - **Static Operation Definition**
          - `operation` (enum) — required
            Values: `static_value`
          - `format` (union anyOf) — optional
            Number display format for the dimension value.
            Same options as `format` in `Terms Operation`
          - `label` (string) — optional
            Label for the operation
          - `value` (number · default: 100) — optional
            Static value
        - **Formula Operation**
          - `operation` (enum) — required
            Values: `formula`
          - `filter` (object) — optional
            A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
            - `expression` (string) — required
              A query expression in KQL or Lucene syntax
            - `language` (enum · default: kql) — optional
              Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
              Values: `kql`, `lucene`
          - `format` (union anyOf) — optional
            Number display format for the dimension value.
            Same options as `format` in `Terms Operation`
          - `formula` (string) — required
            Formula
          - `label` (string) — optional
            Label for the operation
          - `reduced_time_range` (string) — optional
            Reduced time range
          - `time_scale` (enum) — optional
            Time scale
            Values: `s`, `m`, `h`, `d`
      - `max` (union anyOf) — optional
        Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
        Same options as `goal` in `Count Metric Operation`
      - `min` (union anyOf) — optional
        Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
        Same options as `goal` in `Count Metric Operation`
      - `subtitle` (string) — optional
        Subtitle below the gauge value.
      - `ticks` (object) — optional
        Ticks configuration
        - `mode` (enum · default: bands) — optional
          Tick placement mode.
          Values: `auto`, `bands`
        - `visible` (boolean · default: true) — optional
          When `true`, displays tick marks on the gauge.
      - `title` (object) — optional
        Title configuration
        - `text` (string) — optional
          Title text.
        - `visible` (boolean · default: true) — optional
          When `true`, displays the title.
      - `empty_as_null` (boolean · default: false) — optional
        When `true`, treats empty buckets as null instead of zero.
      - `field` (string) — optional
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `count`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Unique Count Metric Operation**
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color configuration for the gauge fill.
        Same options as `color` in `Count Metric Operation`
      - `goal` (union anyOf) — optional
        Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
        - **Field Metric Operations**
          Any of:
          - **Count Metric Operation**
            - `empty_as_null` (boolean · default: false) — optional
              When `true`, treats empty buckets as null instead of zero.
            - `field` (string) — optional
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `count`
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Stats Metric Operation**
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `min`, `max`, `average`, `median`, `standard_deviation`
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Sum Metric Operation**
            - `empty_as_null` (boolean · default: false) — optional
              When `true`, treats empty buckets as null instead of zero.
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `sum`
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Last Value Operation**
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `multi_value` (boolean · default: false) — optional
              Whether to return all values for multi-value fields. Only affects data table and metric charts; other charts use the last value from the array.
            - `operation` (enum) — required
              Values: `last_value`
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_field` (string) — required
              Time field used to determine document recency
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Percentile Operation**
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `percentile`
            - `percentile` (number · default: 95) — optional
              Percentile
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Percentile Ranks Operation**
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `percentile_rank`
            - `rank` (number · default: 0) — optional
              Percentile Rank
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
        - **Static Operation Definition**
          - `operation` (enum) — required
            Values: `static_value`
          - `format` (union anyOf) — optional
            Number display format for the dimension value.
            Same options as `format` in `Terms Operation`
          - `label` (string) — optional
            Label for the operation
          - `value` (number · default: 100) — optional
            Static value
        - **Formula Operation**
          - `operation` (enum) — required
            Values: `formula`
          - `filter` (object) — optional
            A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
            - `expression` (string) — required
              A query expression in KQL or Lucene syntax
            - `language` (enum · default: kql) — optional
              Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
              Values: `kql`, `lucene`
          - `format` (union anyOf) — optional
            Number display format for the dimension value.
            Same options as `format` in `Terms Operation`
          - `formula` (string) — required
            Formula
          - `label` (string) — optional
            Label for the operation
          - `reduced_time_range` (string) — optional
            Reduced time range
          - `time_scale` (enum) — optional
            Time scale
            Values: `s`, `m`, `h`, `d`
      - `max` (union anyOf) — optional
        Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
        Same options as `goal` in `Unique Count Metric Operation`
      - `min` (union anyOf) — optional
        Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
        Same options as `goal` in `Unique Count Metric Operation`
      - `subtitle` (string) — optional
        Subtitle below the gauge value.
      - `ticks` (object) — optional
        Ticks configuration
        - `mode` (enum · default: bands) — optional
          Tick placement mode.
          Values: `auto`, `bands`
        - `visible` (boolean · default: true) — optional
          When `true`, displays tick marks on the gauge.
      - `title` (object) — optional
        Title configuration
        - `text` (string) — optional
          Title text.
        - `visible` (boolean · default: true) — optional
          When `true`, displays the title.
      - `empty_as_null` (boolean · default: false) — optional
        When `true`, treats empty buckets as null instead of zero.
      - `field` (string) — required
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `unique_count`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Stats Metric Operation**
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color configuration for the gauge fill.
        Same options as `color` in `Count Metric Operation`
      - `goal` (union anyOf) — optional
        Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
        - **Field Metric Operations**
          Any of:
          - **Count Metric Operation**
            - `operation` (enum) — required
              Values: `count`
            - `empty_as_null` (boolean · default: false) — optional
              When `true`, treats empty buckets as null instead of zero.
            - `field` (string) — optional
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Unique Count Metric Operation**
            - `operation` (enum) — required
              Values: `unique_count`
            - `empty_as_null` (boolean · default: false) — optional
              When `true`, treats empty buckets as null instead of zero.
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Sum Metric Operation**
            - `operation` (enum) — required
              Values: `sum`
            - `empty_as_null` (boolean · default: false) — optional
              When `true`, treats empty buckets as null instead of zero.
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Last Value Operation**
            - `operation` (enum) — required
              Values: `last_value`
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `multi_value` (boolean · default: false) — optional
              Whether to return all values for multi-value fields. Only affects data table and metric charts; other charts use the last value from the array.
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_field` (string) — required
              Time field used to determine document recency
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Percentile Operation**
            - `operation` (enum) — required
              Values: `percentile`
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `percentile` (number · default: 95) — optional
              Percentile
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Percentile Ranks Operation**
            - `operation` (enum) — required
              Values: `percentile_rank`
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `rank` (number · default: 0) — optional
              Percentile Rank
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
        - **Static Operation Definition**
          - `operation` (enum) — required
            Values: `static_value`
          - `format` (union anyOf) — optional
            Number display format for the dimension value.
            Same options as `format` in `Terms Operation`
          - `label` (string) — optional
            Label for the operation
          - `value` (number · default: 100) — optional
            Static value
        - **Formula Operation**
          - `operation` (enum) — required
            Values: `formula`
          - `filter` (object) — optional
            A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
            - `expression` (string) — required
              A query expression in KQL or Lucene syntax
            - `language` (enum · default: kql) — optional
              Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
              Values: `kql`, `lucene`
          - `format` (union anyOf) — optional
            Number display format for the dimension value.
            Same options as `format` in `Terms Operation`
          - `formula` (string) — required
            Formula
          - `label` (string) — optional
            Label for the operation
          - `reduced_time_range` (string) — optional
            Reduced time range
          - `time_scale` (enum) — optional
            Time scale
            Values: `s`, `m`, `h`, `d`
      - `max` (union anyOf) — optional
        Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
        Same options as `goal` in `Stats Metric Operation`
      - `min` (union anyOf) — optional
        Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
        Same options as `goal` in `Stats Metric Operation`
      - `subtitle` (string) — optional
        Subtitle below the gauge value.
      - `ticks` (object) — optional
        Ticks configuration
        - `mode` (enum · default: bands) — optional
          Tick placement mode.
          Values: `auto`, `bands`
        - `visible` (boolean · default: true) — optional
          When `true`, displays tick marks on the gauge.
      - `title` (object) — optional
        Title configuration
        - `text` (string) — optional
          Title text.
        - `visible` (boolean · default: true) — optional
          When `true`, displays the title.
      - `field` (string) — required
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `min`, `max`, `average`, `median`, `standard_deviation`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Sum Metric Operation**
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color configuration for the gauge fill.
        Same options as `color` in `Count Metric Operation`
      - `goal` (union anyOf) — optional
        Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
        - **Field Metric Operations**
          Any of:
          - **Count Metric Operation**
            - `empty_as_null` (boolean · default: false) — optional
              When `true`, treats empty buckets as null instead of zero.
            - `field` (string) — optional
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `count`
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Unique Count Metric Operation**
            - `empty_as_null` (boolean · default: false) — optional
              When `true`, treats empty buckets as null instead of zero.
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `unique_count`
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Stats Metric Operation**
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `min`, `max`, `average`, `median`, `standard_deviation`
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Last Value Operation**
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `multi_value` (boolean · default: false) — optional
              Whether to return all values for multi-value fields. Only affects data table and metric charts; other charts use the last value from the array.
            - `operation` (enum) — required
              Values: `last_value`
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_field` (string) — required
              Time field used to determine document recency
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Percentile Operation**
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `percentile`
            - `percentile` (number · default: 95) — optional
              Percentile
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Percentile Ranks Operation**
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `percentile_rank`
            - `rank` (number · default: 0) — optional
              Percentile Rank
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
        - **Static Operation Definition**
          - `operation` (enum) — required
            Values: `static_value`
          - `format` (union anyOf) — optional
            Number display format for the dimension value.
            Same options as `format` in `Terms Operation`
          - `label` (string) — optional
            Label for the operation
          - `value` (number · default: 100) — optional
            Static value
        - **Formula Operation**
          - `operation` (enum) — required
            Values: `formula`
          - `filter` (object) — optional
            A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
            - `expression` (string) — required
              A query expression in KQL or Lucene syntax
            - `language` (enum · default: kql) — optional
              Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
              Values: `kql`, `lucene`
          - `format` (union anyOf) — optional
            Number display format for the dimension value.
            Same options as `format` in `Terms Operation`
          - `formula` (string) — required
            Formula
          - `label` (string) — optional
            Label for the operation
          - `reduced_time_range` (string) — optional
            Reduced time range
          - `time_scale` (enum) — optional
            Time scale
            Values: `s`, `m`, `h`, `d`
      - `max` (union anyOf) — optional
        Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
        Same options as `goal` in `Sum Metric Operation`
      - `min` (union anyOf) — optional
        Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
        Same options as `goal` in `Sum Metric Operation`
      - `subtitle` (string) — optional
        Subtitle below the gauge value.
      - `ticks` (object) — optional
        Ticks configuration
        - `mode` (enum · default: bands) — optional
          Tick placement mode.
          Values: `auto`, `bands`
        - `visible` (boolean · default: true) — optional
          When `true`, displays tick marks on the gauge.
      - `title` (object) — optional
        Title configuration
        - `text` (string) — optional
          Title text.
        - `visible` (boolean · default: true) — optional
          When `true`, displays the title.
      - `empty_as_null` (boolean · default: false) — optional
        When `true`, treats empty buckets as null instead of zero.
      - `field` (string) — required
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `sum`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Last Value Operation**
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color configuration for the gauge fill.
        Same options as `color` in `Count Metric Operation`
      - `goal` (union anyOf) — optional
        Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
        - **Field Metric Operations**
          Any of:
          - **Count Metric Operation**
            - `empty_as_null` (boolean · default: false) — optional
              When `true`, treats empty buckets as null instead of zero.
            - `field` (string) — optional
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `count`
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Unique Count Metric Operation**
            - `empty_as_null` (boolean · default: false) — optional
              When `true`, treats empty buckets as null instead of zero.
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `unique_count`
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Stats Metric Operation**
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `min`, `max`, `average`, `median`, `standard_deviation`
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Sum Metric Operation**
            - `empty_as_null` (boolean · default: false) — optional
              When `true`, treats empty buckets as null instead of zero.
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `sum`
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Percentile Operation**
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `percentile`
            - `percentile` (number · default: 95) — optional
              Percentile
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Percentile Ranks Operation**
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `percentile_rank`
            - `rank` (number · default: 0) — optional
              Percentile Rank
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
        - **Static Operation Definition**
          - `operation` (enum) — required
            Values: `static_value`
          - `format` (union anyOf) — optional
            Number display format for the dimension value.
            Same options as `format` in `Terms Operation`
          - `label` (string) — optional
            Label for the operation
          - `value` (number · default: 100) — optional
            Static value
        - **Formula Operation**
          - `operation` (enum) — required
            Values: `formula`
          - `filter` (object) — optional
            A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
            - `expression` (string) — required
              A query expression in KQL or Lucene syntax
            - `language` (enum · default: kql) — optional
              Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
              Values: `kql`, `lucene`
          - `format` (union anyOf) — optional
            Number display format for the dimension value.
            Same options as `format` in `Terms Operation`
          - `formula` (string) — required
            Formula
          - `label` (string) — optional
            Label for the operation
          - `reduced_time_range` (string) — optional
            Reduced time range
          - `time_scale` (enum) — optional
            Time scale
            Values: `s`, `m`, `h`, `d`
      - `max` (union anyOf) — optional
        Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
        Same options as `goal` in `Last Value Operation`
      - `min` (union anyOf) — optional
        Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
        Same options as `goal` in `Last Value Operation`
      - `subtitle` (string) — optional
        Subtitle below the gauge value.
      - `ticks` (object) — optional
        Ticks configuration
        - `mode` (enum · default: bands) — optional
          Tick placement mode.
          Values: `auto`, `bands`
        - `visible` (boolean · default: true) — optional
          When `true`, displays tick marks on the gauge.
      - `title` (object) — optional
        Title configuration
        - `text` (string) — optional
          Title text.
        - `visible` (boolean · default: true) — optional
          When `true`, displays the title.
      - `field` (string) — required
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `multi_value` (boolean · default: false) — optional
        Whether to return all values for multi-value fields. Only affects data table and metric charts; other charts use the last value from the array.
      - `operation` (enum) — required
        Values: `last_value`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_field` (string) — required
        Time field used to determine document recency
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Percentile Operation**
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color configuration for the gauge fill.
        Same options as `color` in `Count Metric Operation`
      - `goal` (union anyOf) — optional
        Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
        - **Field Metric Operations**
          Any of:
          - **Count Metric Operation**
            - `empty_as_null` (boolean · default: false) — optional
              When `true`, treats empty buckets as null instead of zero.
            - `field` (string) — optional
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `count`
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Unique Count Metric Operation**
            - `empty_as_null` (boolean · default: false) — optional
              When `true`, treats empty buckets as null instead of zero.
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `unique_count`
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Stats Metric Operation**
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `min`, `max`, `average`, `median`, `standard_deviation`
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Sum Metric Operation**
            - `empty_as_null` (boolean · default: false) — optional
              When `true`, treats empty buckets as null instead of zero.
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `sum`
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Last Value Operation**
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `multi_value` (boolean · default: false) — optional
              Whether to return all values for multi-value fields. Only affects data table and metric charts; other charts use the last value from the array.
            - `operation` (enum) — required
              Values: `last_value`
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_field` (string) — required
              Time field used to determine document recency
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Percentile Ranks Operation**
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `percentile_rank`
            - `rank` (number · default: 0) — optional
              Percentile Rank
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
        - **Static Operation Definition**
          - `operation` (enum) — required
            Values: `static_value`
          - `format` (union anyOf) — optional
            Number display format for the dimension value.
            Same options as `format` in `Terms Operation`
          - `label` (string) — optional
            Label for the operation
          - `value` (number · default: 100) — optional
            Static value
        - **Formula Operation**
          - `operation` (enum) — required
            Values: `formula`
          - `filter` (object) — optional
            A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
            - `expression` (string) — required
              A query expression in KQL or Lucene syntax
            - `language` (enum · default: kql) — optional
              Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
              Values: `kql`, `lucene`
          - `format` (union anyOf) — optional
            Number display format for the dimension value.
            Same options as `format` in `Terms Operation`
          - `formula` (string) — required
            Formula
          - `label` (string) — optional
            Label for the operation
          - `reduced_time_range` (string) — optional
            Reduced time range
          - `time_scale` (enum) — optional
            Time scale
            Values: `s`, `m`, `h`, `d`
      - `max` (union anyOf) — optional
        Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
        Same options as `goal` in `Percentile Operation`
      - `min` (union anyOf) — optional
        Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
        Same options as `goal` in `Percentile Operation`
      - `subtitle` (string) — optional
        Subtitle below the gauge value.
      - `ticks` (object) — optional
        Ticks configuration
        - `mode` (enum · default: bands) — optional
          Tick placement mode.
          Values: `auto`, `bands`
        - `visible` (boolean · default: true) — optional
          When `true`, displays tick marks on the gauge.
      - `title` (object) — optional
        Title configuration
        - `text` (string) — optional
          Title text.
        - `visible` (boolean · default: true) — optional
          When `true`, displays the title.
      - `field` (string) — required
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `percentile`
      - `percentile` (number · default: 95) — optional
        Percentile
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Percentile Ranks Operation**
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color configuration for the gauge fill.
        Same options as `color` in `Count Metric Operation`
      - `goal` (union anyOf) — optional
        Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
        - **Field Metric Operations**
          Any of:
          - **Count Metric Operation**
            - `empty_as_null` (boolean · default: false) — optional
              When `true`, treats empty buckets as null instead of zero.
            - `field` (string) — optional
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `count`
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Unique Count Metric Operation**
            - `empty_as_null` (boolean · default: false) — optional
              When `true`, treats empty buckets as null instead of zero.
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `unique_count`
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Stats Metric Operation**
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `min`, `max`, `average`, `median`, `standard_deviation`
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Sum Metric Operation**
            - `empty_as_null` (boolean · default: false) — optional
              When `true`, treats empty buckets as null instead of zero.
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `sum`
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Last Value Operation**
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `multi_value` (boolean · default: false) — optional
              Whether to return all values for multi-value fields. Only affects data table and metric charts; other charts use the last value from the array.
            - `operation` (enum) — required
              Values: `last_value`
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_field` (string) — required
              Time field used to determine document recency
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
          - **Percentile Operation**
            - `field` (string) — required
              Field to be used for the metric
            - `filter` (object) — optional
              A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
              - `expression` (string) — required
                A query expression in KQL or Lucene syntax
              - `language` (enum · default: kql) — optional
                Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
                Values: `kql`, `lucene`
            - `format` (union anyOf) — optional
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string) — optional
              Label for the operation
            - `operation` (enum) — required
              Values: `percentile`
            - `percentile` (number · default: 95) — optional
              Percentile
            - `reduced_time_range` (string) — optional
              Reduced time range
            - `time_scale` (union anyOf) — optional
              Time scale
              Values: `s`, `m`, `h`, `d`
            - `time_shift` (string) — optional
              Time shift
        - **Static Operation Definition**
          - `operation` (enum) — required
            Values: `static_value`
          - `format` (union anyOf) — optional
            Number display format for the dimension value.
            Same options as `format` in `Terms Operation`
          - `label` (string) — optional
            Label for the operation
          - `value` (number · default: 100) — optional
            Static value
        - **Formula Operation**
          - `operation` (enum) — required
            Values: `formula`
          - `filter` (object) — optional
            A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
            - `expression` (string) — required
              A query expression in KQL or Lucene syntax
            - `language` (enum · default: kql) — optional
              Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
              Values: `kql`, `lucene`
          - `format` (union anyOf) — optional
            Number display format for the dimension value.
            Same options as `format` in `Terms Operation`
          - `formula` (string) — required
            Formula
          - `label` (string) — optional
            Label for the operation
          - `reduced_time_range` (string) — optional
            Reduced time range
          - `time_scale` (enum) — optional
            Time scale
            Values: `s`, `m`, `h`, `d`
      - `max` (union anyOf) — optional
        Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
        Same options as `goal` in `Percentile Ranks Operation`
      - `min` (union anyOf) — optional
        Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
        Same options as `goal` in `Percentile Ranks Operation`
      - `subtitle` (string) — optional
        Subtitle below the gauge value.
      - `ticks` (object) — optional
        Ticks configuration
        - `mode` (enum · default: bands) — optional
          Tick placement mode.
          Values: `auto`, `bands`
        - `visible` (boolean · default: true) — optional
          When `true`, displays tick marks on the gauge.
      - `title` (object) — optional
        Title configuration
        - `text` (string) — optional
          Title text.
        - `visible` (boolean · default: true) — optional
          When `true`, displays the title.
      - `field` (string) — required
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `percentile_rank`
      - `rank` (number · default: 0) — optional
        Percentile Rank
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Formula Operation**
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color configuration for the gauge fill.
        Same options as `color` in `Count Metric Operation`
      - `goal` (union anyOf) — optional — recursive
        Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
      - `max` (union anyOf) — optional — recursive
        Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
      - `min` (union anyOf) — optional — recursive
        Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
      - `subtitle` (string) — optional
        Subtitle below the gauge value.
      - `ticks` (object) — optional
        Ticks configuration
        - `mode` (enum · default: bands) — optional
          Tick placement mode.
          Values: `auto`, `bands`
        - `visible` (boolean · default: true) — optional
          When `true`, displays tick marks on the gauge.
      - `title` (object) — optional
        Title configuration
        - `text` (string) — optional
          Title text.
        - `visible` (boolean · default: true) — optional
          When `true`, displays the title.
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `formula` (string) — required
        Formula
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `formula`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (enum) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
  - `query` (object) — optional
    A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
    - `expression` (string) — required
      A query expression in KQL or Lucene syntax
    - `language` (enum · default: kql) — optional
      Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
      Values: `kql`, `lucene`
  - `sampling` (number · min: 0 · max: 1 · default: 1) — optional
    Sampling factor between 0 (no sampling) and 1 (full sampling).
  - `styling` (object) — optional
    Visual chart styling options
    - `shape` (union anyOf) — optional
      Default: `{"orientation":"horizontal","type":"bullet"}`
      - **Shape (Bullet)**
        Bullet gauge shape.
        - `orientation` (enum) — optional
          Orientation
          Values: `horizontal`, `vertical`
        - `type` (enum) — required
          Values: `bullet`
      - **Shape (Circular)**
        Circular gauge shape.
        - `type` (enum) — required
          Values: `circle`, `semi_circle`, `arc`
  - `tags` (string[] · max items: 1000 · default: []) — optional
    Tag IDs to associate with this visualization.
  - `title` (string) — optional
    The title of the chart displayed in the panel. Optional. Any string value or undefined.
- **Heatmap Chart (library)**
  - `type` (enum) — required
    Values: `heatmap`
  - `axis` (object) — optional
    Axis configuration for X and Y axes
    - `x` (object) — optional
      X axis configuration
      - `labels` (object) — optional
        - `orientation` (enum) — optional
          Orientation
          Values: `horizontal`, `vertical`, `angled`
        - `visible` (boolean · default: true) — optional
          Show axis labels
      - `scale` (enum) — required
        X-axis scale type. Use 'temporal' for timestamp/date fields (for example, @timestamp or DATE_TRUNC results). Use 'ordinal' for categorical/text fields. Use 'linear' for numeric fields.
        Values: `ordinal`, `temporal`, `linear`
      - `sort` (enum) — optional
        Axis sort order; omit or use undefined for no sorting
        Values: `asc`, `desc`
      - `title` (object) — optional
        - `text` (string) — optional
          Axis title text.
        - `visible` (boolean) — optional
          When `true`, displays the title.
    - `y` (object) — optional
      Y axis configuration
      - `labels` (object) — optional
        - `visible` (boolean · default: true) — optional
          Show axis labels
      - `sort` (enum) — optional
        Axis sort order; omit or use undefined for no sorting
        Values: `asc`, `desc`
      - `title` (object) — optional
        - `text` (string) — optional
          Axis title text.
        - `visible` (boolean) — optional
          When `true`, displays the title.
  - `data_source` (union oneOf) — required
    Same options as `data_source` in `Metric Chart (library)`
  - `description` (string) — optional
    The description of the chart. Optional. Any string value or undefined.
  - `filters` (union oneOf[] · max items: 100) — optional
    Filters applied to the panel
    Same options as `filters` in `Metric Chart (library)`
  - `ignore_global_filters` (boolean · default: false) — optional
    When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
  - `legend` (object) — optional
    Legend configuration
    - `position` (enum) — optional
      Values: `top`, `bottom`, `left`, `right`
    - `size` (union anyOf) — optional
      Legend size.
      Values: `auto`, `s`, `m`, `l`, `xl`
    - `truncate_after_lines` (number · min: 1 · max: 10 · default: 1) — optional
      Number of lines before legend items are truncated.
    - `visibility` (enum) — optional
      Legend visibility.
      Values: `visible`, `hidden`
  - `metric` (union anyOf) — required
    - **Count Metric Operation**
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color scale configuration for the heatmap cells.
        - **Color By Value**
          Dynamic color mapping by numeric range, with support for absolute and percentage-based ranges and for named palettes.
          Any of:
          - **Color By Value (Absolute)**
            Color by absolute value configuration
            - `range` (enum) — required
              Values: `absolute`
            - `steps` (object[] · min items: 1 · max items: 100) — required
              Array of ordered color steps defining the range each color is applied.
              - `color` (string) — required
                The color to use for this step.
              - `gte` (number) — optional — nullable
                The lower bound of range from which this color applies (inclusive).
              - `lt` (number) — optional — nullable
                The upper bound of range to which this color applies (exclusive).
              - `lte` (number) — optional — nullable
                The upper bound of range to which this color applies (inclusive).
            - `type` (enum) — required
              Values: `dynamic`
          - **Color By Value (Percentage)**
            Color by percentage value configuration
            - `range` (enum) — required
              Values: `percentage`
            - `steps` (object[] · min items: 1 · max items: 100) — required
              Array of ordered color steps defining the range each color is applied.
              - `color` (string) — required
                The color to use for this step.
              - `gte` (number) — optional — nullable
                The lower bound of range from which this color applies (inclusive).
              - `lt` (number) — optional — nullable
                The upper bound of range to which this color applies (exclusive).
              - `lte` (number) — optional — nullable
                The upper bound of range to which this color applies (inclusive).
            - `type` (enum) — required
              Values: `dynamic`
          - **Color By Value (Palette)**
            Color by value using a palette, with colors distributed across the range of values.
            - `palette` (enum) — required
              The name of the palette to apply across the value range.
              Values: `status`, `temperature`, `complementary`, `negative`, `positive`, `cool`, `warm`, `gray`
            - `type` (enum) — required
              Values: `distributed_palette`
          - **Legacy color by value**
            Legacy color by value configuration
            - `palette` (string) — required
              The legacy palette name.
            - `range` (enum) — required
              Determines whether the range is interpreted as absolute or as a percentage of the data.
              Values: `absolute`, `percentage`
            - `shift` (boolean) — required
              When `true`, shifts the palette colors so they start from a different offset. Defaults to `false`.
            - `steps` (object[] · min items: 1 · max items: 100) — required
              Array of ordered color steps defining the range each color is applied.
              - `color` (string) — required
                The color to use for this step.
              - `gte` (number) — optional — nullable
                The lower bound of range from which this color applies (inclusive).
              - `lt` (number) — optional — nullable
                The upper bound of range to which this color applies (exclusive).
              - `lte` (number) — optional — nullable
                The upper bound of range to which this color applies (inclusive).
            - `type` (enum) — required
              Values: `legacy_dynamic`
        - **Auto Color**
          Coloring determined at runtime based on chart defaults
          - `type` (enum) — required
            Values: `auto`
      - `empty_as_null` (boolean · default: false) — optional
        When `true`, treats empty buckets as null instead of zero.
      - `field` (string) — optional
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `count`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Unique Count Metric Operation**
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color scale configuration for the heatmap cells.
        Same options as `color` in `Count Metric Operation`
      - `empty_as_null` (boolean · default: false) — optional
        When `true`, treats empty buckets as null instead of zero.
      - `field` (string) — required
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `unique_count`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Stats Metric Operation**
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color scale configuration for the heatmap cells.
        Same options as `color` in `Count Metric Operation`
      - `field` (string) — required
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `min`, `max`, `average`, `median`, `standard_deviation`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Sum Metric Operation**
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color scale configuration for the heatmap cells.
        Same options as `color` in `Count Metric Operation`
      - `empty_as_null` (boolean · default: false) — optional
        When `true`, treats empty buckets as null instead of zero.
      - `field` (string) — required
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `sum`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Last Value Operation**
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color scale configuration for the heatmap cells.
        Same options as `color` in `Count Metric Operation`
      - `field` (string) — required
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `multi_value` (boolean · default: false) — optional
        Whether to return all values for multi-value fields. Only affects data table and metric charts; other charts use the last value from the array.
      - `operation` (enum) — required
        Values: `last_value`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_field` (string) — required
        Time field used to determine document recency
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Percentile Operation**
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color scale configuration for the heatmap cells.
        Same options as `color` in `Count Metric Operation`
      - `field` (string) — required
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `percentile`
      - `percentile` (number · default: 95) — optional
        Percentile
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Percentile Ranks Operation**
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color scale configuration for the heatmap cells.
        Same options as `color` in `Count Metric Operation`
      - `field` (string) — required
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `percentile_rank`
      - `rank` (number · default: 0) — optional
        Percentile Rank
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Differences Operation**
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color scale configuration for the heatmap cells.
        Same options as `color` in `Count Metric Operation`
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `of` (union anyOf) — required
        Same options as `of` in `Differences Operation`
      - `operation` (enum) — required
        Values: `differences`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Moving Average Operation**
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color scale configuration for the heatmap cells.
        Same options as `color` in `Count Metric Operation`
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `of` (union anyOf) — required
        Same options as `of` in `Differences Operation`
      - `operation` (enum) — required
        Values: `moving_average`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
      - `window` (number · default: 5) — optional
        Window
    - **Cumulative Sum Operation**
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color scale configuration for the heatmap cells.
        Same options as `color` in `Count Metric Operation`
      - `field` (string) — optional
        Field to cumulatively sum. When omitted, cumulative sum is applied to the count of records.
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `cumulative_sum`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Counter Rate Operation**
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color scale configuration for the heatmap cells.
        Same options as `color` in `Count Metric Operation`
      - `field` (string) — required
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `counter_rate`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Formula Operation**
      - `color` (union anyOf · default: {"type":"auto"}) — optional
        Color scale configuration for the heatmap cells.
        Same options as `color` in `Count Metric Operation`
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `formula` (string) — required
        Formula
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `formula`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (enum) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
  - `query` (object) — optional
    A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
    - `expression` (string) — required
      A query expression in KQL or Lucene syntax
    - `language` (enum · default: kql) — optional
      Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
      Values: `kql`, `lucene`
  - `sampling` (number · min: 0 · max: 1 · default: 1) — optional
    Sampling factor between 0 (no sampling) and 1 (full sampling).
  - `styling` (object) — optional
    Visual chart styling options
    - `cells` (object) — optional
      Cells configuration
      - `labels` (object) — optional
        - `visible` (boolean · default: false) — optional
          Show cell labels
  - `tags` (string[] · max items: 1000 · default: []) — optional
    Tag IDs to associate with this visualization.
  - `title` (string) — optional
    The title of the chart displayed in the panel. Optional. Any string value or undefined.
  - `x` (union anyOf) — required
    Breakdown dimension configuration using date histogram, terms, numeric histogram, value ranges, or custom filters.
    Same options as `x` in `Layer (DSL)`
  - `y` (union anyOf) — optional
    Breakdown dimension configuration using date histogram, terms, numeric histogram, value ranges, or custom filters.
    Same options as `x` in `Layer (DSL)`
- **Tag Cloud Chart (library)**
  - `type` (enum) — required
    Values: `tag_cloud`
  - `data_source` (union oneOf) — required
    Same options as `data_source` in `Metric Chart (library)`
  - `description` (string) — optional
    The description of the chart. Optional. Any string value or undefined.
  - `filters` (union oneOf[] · max items: 100) — optional
    Filters applied to the panel
    Same options as `filters` in `Metric Chart (library)`
  - `ignore_global_filters` (boolean · default: false) — optional
    When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
  - `metric` (union anyOf) — required
    - **Count Metric Operation**
      - `empty_as_null` (boolean · default: false) — optional
        When `true`, treats empty buckets as null instead of zero.
      - `field` (string) — optional
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `count`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Unique Count Metric Operation**
      - `empty_as_null` (boolean · default: false) — optional
        When `true`, treats empty buckets as null instead of zero.
      - `field` (string) — required
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `unique_count`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Stats Metric Operation**
      - `field` (string) — required
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `min`, `max`, `average`, `median`, `standard_deviation`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Sum Metric Operation**
      - `empty_as_null` (boolean · default: false) — optional
        When `true`, treats empty buckets as null instead of zero.
      - `field` (string) — required
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `sum`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Last Value Operation**
      - `field` (string) — required
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `multi_value` (boolean · default: false) — optional
        Whether to return all values for multi-value fields. Only affects data table and metric charts; other charts use the last value from the array.
      - `operation` (enum) — required
        Values: `last_value`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_field` (string) — required
        Time field used to determine document recency
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Percentile Operation**
      - `field` (string) — required
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `percentile`
      - `percentile` (number · default: 95) — optional
        Percentile
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Percentile Ranks Operation**
      - `field` (string) — required
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `percentile_rank`
      - `rank` (number · default: 0) — optional
        Percentile Rank
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Differences Operation**
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `of` (union anyOf) — required
        Same options as `of` in `Differences Operation`
      - `operation` (enum) — required
        Values: `differences`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Moving Average Operation**
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `of` (union anyOf) — required
        Same options as `of` in `Differences Operation`
      - `operation` (enum) — required
        Values: `moving_average`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
      - `window` (number · default: 5) — optional
        Window
    - **Cumulative Sum Operation**
      - `field` (string) — optional
        Field to cumulatively sum. When omitted, cumulative sum is applied to the count of records.
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `cumulative_sum`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Counter Rate Operation**
      - `field` (string) — required
        Field to be used for the metric
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `counter_rate`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (union anyOf) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
      - `time_shift` (string) — optional
        Time shift
    - **Formula Operation**
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `formula` (string) — required
        Formula
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `formula`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (enum) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
  - `query` (object) — optional
    A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
    - `expression` (string) — required
      A query expression in KQL or Lucene syntax
    - `language` (enum · default: kql) — optional
      Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
      Values: `kql`, `lucene`
  - `sampling` (number · min: 0 · max: 1 · default: 1) — optional
    Sampling factor between 0 (no sampling) and 1 (full sampling).
  - `styling` (object) — optional
    Visual chart styling options
    - `caption` (object) — optional
      Caption configuration representing the metric and the tag_by operations labels
      - `visible` (boolean · default: true) — optional
        When `true`, displays the caption.
    - `font_size` (object) — optional
      Font size range for tags.
      - `max` (number · max: 120 · default: 72) — optional
        Maximum font size.
      - `min` (number · min: 1 · default: 18) — optional
        Minimum font size.
    - `orientation` (enum) — optional
      Orientation
      Values: `horizontal`, `vertical`, `angled`
  - `tag_by` (union anyOf) — required
    - **Date Histogram Operation**
      - `operation` (enum) — required
        Values: `date_histogram`
      - `color` (union anyOf) — optional
        Color mapping for dimension values, either categorical (for specific values) or as a gradient.
        Default: `{"mapping":[],"mode":"categorical","palette":"default"}`
        Same options as `color` in `Date Histogram Operation`
      - `drop_partial_intervals` (boolean · default: false) — optional
        When `true`, drops partial intervals from the results.
      - `field` (string) — required
        Field to be used for the date histogram.
      - `include_empty_rows` (boolean · default: true) — optional
        When `true`, includes empty rows in the results.
      - `label` (string) — optional
        Label for the operation
      - `suggested_interval` (string · default: auto) — optional
        Suggested time interval.
      - `use_original_time_range` (boolean · default: false) — optional
        When `true`, uses the original time range instead of the current query time range.
    - **Terms Operation**
      - `operation` (enum) — required
        Values: `terms`
      - `color` (union anyOf) — optional
        Color mapping for dimension values, either categorical (for specific values) or as a gradient.
        Default: `{"mapping":[],"mode":"categorical","palette":"default"}`
        Same options as `color` in `Date Histogram Operation`
      - `excludes` (object) — optional
        - `as_regex` (boolean) — optional
          When `true`, treats the values as regular expressions.
        - `values` (union string[] | number[]) — required
          Values to exclude.
      - `fields` (string[] · min items: 1 · max items: 4) — required
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `includes` (object) — optional
        - `as_regex` (boolean) — optional
          When `true`, treats the values as regular expressions.
        - `values` (union string[] | number[]) — required
          Values to include.
      - `increase_accuracy` (boolean) — optional
        When `true`, increases accuracy at the cost of performance.
      - `label` (string) — optional
        Label for the operation
      - `limit` (number · default: 5) — optional
        Number of terms to return.
      - `other_bucket` (object) — optional
        - `include_documents_without_field` (boolean) — required
          When `true`, includes documents that do not have the specified field.
      - `rank_by` (union anyOf) — optional
        Same options as `rank_by` in `Terms Operation`
    - **Histogram Operation**
      - `operation` (enum) — required
        Values: `histogram`
      - `color` (union anyOf) — optional
        Color mapping for dimension values, either categorical (for specific values) or as a gradient.
        Default: `{"mapping":[],"mode":"categorical","palette":"default"}`
        Same options as `color` in `Date Histogram Operation`
      - `field` (string) — required
        Field to be used for the histogram.
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `granularity` (union number | enum · default: auto) — optional
        Values: `auto`
      - `include_empty_rows` (boolean · default: true) — optional
        When `true`, includes empty rows in the results.
      - `label` (string) — optional
        Label for the operation
    - **Ranges Operation**
      - `operation` (enum) — required
        Values: `range`
      - `color` (union anyOf) — optional
        Color mapping for dimension values, either categorical (for specific values) or as a gradient.
        Default: `{"mapping":[],"mode":"categorical","palette":"default"}`
        Same options as `color` in `Date Histogram Operation`
      - `field` (string) — required
        Field to be used for the range.
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `ranges` (object[] · max items: 100) — required
        - `gt` (number) — optional
          Greater than.
        - `label` (string) — optional
          Label.
        - `lte` (number) — optional
          Less than or equal to.
    - **Filters Operation**
      - `operation` (enum) — required
        Values: `filters`
      - `color` (union anyOf) — optional
        Color mapping for dimension values, either categorical (for specific values) or as a gradient.
        Default: `{"mapping":[],"mode":"categorical","palette":"default"}`
        Same options as `color` in `Date Histogram Operation`
      - `filters` (object[] · max items: 100) — required
        - `filter` (object) — required
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `label` (string) — optional
          Label for the filter
      - `label` (string) — optional
        Label for the operation
  - `tags` (string[] · max items: 1000 · default: []) — optional
    Tag IDs to associate with this visualization.
  - `title` (string) — optional
    The title of the chart displayed in the panel. Optional. Any string value or undefined.
- **Region Map Chart (library)**
  - `type` (enum) — required
    Values: `region_map`
  - `data_source` (union oneOf) — required
    Same options as `data_source` in `Metric Chart (library)`
  - `description` (string) — optional
    The description of the chart. Optional. Any string value or undefined.
  - `filters` (union oneOf[] · max items: 100) — optional
    Filters applied to the panel
    Same options as `filters` in `Metric Chart (library)`
  - `ignore_global_filters` (boolean · default: false) — optional
    When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
  - `metric` (union anyOf) — required
    Metric dimension using a field-based aggregation or a mathematical formula.
    - **Field Metric Operations**
      Any of:
      - **Count Metric Operation**
        - `empty_as_null` (boolean · default: false) — optional
          When `true`, treats empty buckets as null instead of zero.
        - `field` (string) — optional
          Field to be used for the metric
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `operation` (enum) — required
          Values: `count`
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
      - **Unique Count Metric Operation**
        - `empty_as_null` (boolean · default: false) — optional
          When `true`, treats empty buckets as null instead of zero.
        - `field` (string) — required
          Field to be used for the metric
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `operation` (enum) — required
          Values: `unique_count`
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
      - **Stats Metric Operation**
        - `field` (string) — required
          Field to be used for the metric
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `operation` (enum) — required
          Values: `min`, `max`, `average`, `median`, `standard_deviation`
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
      - **Sum Metric Operation**
        - `empty_as_null` (boolean · default: false) — optional
          When `true`, treats empty buckets as null instead of zero.
        - `field` (string) — required
          Field to be used for the metric
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `operation` (enum) — required
          Values: `sum`
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
      - **Last Value Operation**
        - `field` (string) — required
          Field to be used for the metric
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `multi_value` (boolean · default: false) — optional
          Whether to return all values for multi-value fields. Only affects data table and metric charts; other charts use the last value from the array.
        - `operation` (enum) — required
          Values: `last_value`
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_field` (string) — required
          Time field used to determine document recency
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
      - **Percentile Operation**
        - `field` (string) — required
          Field to be used for the metric
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `operation` (enum) — required
          Values: `percentile`
        - `percentile` (number · default: 95) — optional
          Percentile
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
      - **Percentile Ranks Operation**
        - `field` (string) — required
          Field to be used for the metric
        - `filter` (object) — optional
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `format` (union anyOf) — optional
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string) — optional
          Label for the operation
        - `operation` (enum) — required
          Values: `percentile_rank`
        - `rank` (number · default: 0) — optional
          Percentile Rank
        - `reduced_time_range` (string) — optional
          Reduced time range
        - `time_scale` (union anyOf) — optional
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string) — optional
          Time shift
    - **Formula Operation**
      - `filter` (object) — optional
        A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
        - `expression` (string) — required
          A query expression in KQL or Lucene syntax
        - `language` (enum · default: kql) — optional
          Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
          Values: `kql`, `lucene`
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `formula` (string) — required
        Formula
      - `label` (string) — optional
        Label for the operation
      - `operation` (enum) — required
        Values: `formula`
      - `reduced_time_range` (string) — optional
        Reduced time range
      - `time_scale` (enum) — optional
        Time scale
        Values: `s`, `m`, `h`, `d`
  - `query` (object) — optional
    A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
    - `expression` (string) — required
      A query expression in KQL or Lucene syntax
    - `language` (enum · default: kql) — optional
      Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
      Values: `kql`, `lucene`
  - `region` (union anyOf) — required
    - **Date Histogram Operation**
      - `operation` (enum) — required
        Values: `date_histogram`
      - `ems` (object) — optional
        - `boundaries` (string) — required
          EMS boundaries
        - `join` (string) — required
          EMS join field
      - `drop_partial_intervals` (boolean · default: false) — optional
        When `true`, drops partial intervals from the results.
      - `field` (string) — required
        Field to be used for the date histogram.
      - `include_empty_rows` (boolean · default: true) — optional
        When `true`, includes empty rows in the results.
      - `label` (string) — optional
        Label for the operation
      - `suggested_interval` (string · default: auto) — optional
        Suggested time interval.
      - `use_original_time_range` (boolean · default: false) — optional
        When `true`, uses the original time range instead of the current query time range.
    - **Terms Operation**
      - `operation` (enum) — required
        Values: `terms`
      - `ems` (object) — optional
        - `boundaries` (string) — required
          EMS boundaries
        - `join` (string) — required
          EMS join field
      - `excludes` (object) — optional
        - `as_regex` (boolean) — optional
          When `true`, treats the values as regular expressions.
        - `values` (union string[] | number[]) — required
          Values to exclude.
      - `fields` (string[] · min items: 1 · max items: 4) — required
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `includes` (object) — optional
        - `as_regex` (boolean) — optional
          When `true`, treats the values as regular expressions.
        - `values` (union string[] | number[]) — required
          Values to include.
      - `increase_accuracy` (boolean) — optional
        When `true`, increases accuracy at the cost of performance.
      - `label` (string) — optional
        Label for the operation
      - `limit` (number · default: 5) — optional
        Number of terms to return.
      - `other_bucket` (object) — optional
        - `include_documents_without_field` (boolean) — required
          When `true`, includes documents that do not have the specified field.
      - `rank_by` (union anyOf) — optional
        Same options as `rank_by` in `Terms Operation`
    - **Histogram Operation**
      - `operation` (enum) — required
        Values: `histogram`
      - `ems` (object) — optional
        - `boundaries` (string) — required
          EMS boundaries
        - `join` (string) — required
          EMS join field
      - `field` (string) — required
        Field to be used for the histogram.
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `granularity` (union number | enum · default: auto) — optional
        Values: `auto`
      - `include_empty_rows` (boolean · default: true) — optional
        When `true`, includes empty rows in the results.
      - `label` (string) — optional
        Label for the operation
    - **Ranges Operation**
      - `operation` (enum) — required
        Values: `range`
      - `ems` (object) — optional
        - `boundaries` (string) — required
          EMS boundaries
        - `join` (string) — required
          EMS join field
      - `field` (string) — required
        Field to be used for the range.
      - `format` (union anyOf) — optional
        Number display format for the dimension value.
        Same options as `format` in `Terms Operation`
      - `label` (string) — optional
        Label for the operation
      - `ranges` (object[] · max items: 100) — required
        - `gt` (number) — optional
          Greater than.
        - `label` (string) — optional
          Label.
        - `lte` (number) — optional
          Less than or equal to.
    - **Filters Operation**
      - `operation` (enum) — required
        Values: `filters`
      - `ems` (object) — optional
        - `boundaries` (string) — required
          EMS boundaries
        - `join` (string) — required
          EMS join field
      - `filters` (object[] · max items: 100) — required
        - `filter` (object) — required
          A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
          - `expression` (string) — required
            A query expression in KQL or Lucene syntax
          - `language` (enum · default: kql) — optional
            Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
            Values: `kql`, `lucene`
        - `label` (string) — optional
          Label for the filter
      - `label` (string) — optional
        Label for the operation
  - `sampling` (number · min: 0 · max: 1 · default: 1) — optional
    Sampling factor between 0 (no sampling) and 1 (full sampling).
  - `tags` (string[] · max items: 1000 · default: []) — optional
    Tag IDs to associate with this visualization.
  - `title` (string) — optional
    The title of the chart displayed in the panel. Optional. Any string value or undefined.
- **Datatable Chart (library)**
  - `type` (enum) — required
    Values: `data_table`
  - `data_source` (union oneOf) — required
    Same options as `data_source` in `Metric Chart (library)`
  - `description` (string) — optional
    The description of the chart. Optional. Any string value or undefined.
  - `filters` (union oneOf[] · max items: 100) — optional
    Filters applied to the panel
    Same options as `filters` in `Metric Chart (library)`
  - `ignore_global_filters` (boolean · default: false) — optional
    When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
  - `metrics` (union anyOf[] · min items: 1 · max items: 1000) — required
    Array of metrics to display as columns in the datatable
    - `alignment` (enum · default: right) — optional
      Alignment of the columns.
      Values: `left`, `center`, `right`
    - `apply_color_to` (enum) — optional
      Column color target: `value` for cell text, `background` for cell background, or `badge` for a badge overlay.
      Values: `value`, `background`, `badge`
    - `color` (union anyOf · default: {"type":"auto"}) — optional
      Color configuration for datatable metrics. Use dynamic coloring for numeric data and categorical/gradient mode for categorical data.
      - **Color By Value**
        Dynamic color mapping by numeric range, with support for absolute and percentage-based ranges and for named palettes.
        Any of:
        - **Color By Value (Absolute)**
          Color by absolute value configuration
          - `range` (enum) — required
            Values: `absolute`
          - `steps` (object[] · min items: 1 · max items: 100) — required
            Array of ordered color steps defining the range each color is applied.
            - `color` (string) — required
              The color to use for this step.
            - `gte` (number) — optional — nullable
              The lower bound of range from which this color applies (inclusive).
            - `lt` (number) — optional — nullable
              The upper bound of range to which this color applies (exclusive).
            - `lte` (number) — optional — nullable
              The upper bound of range to which this color applies (inclusive).
          - `type` (enum) — required
            Values: `dynamic`
        - **Color By Value (Percentage)**
          Color by percentage value configuration
          - `range` (enum) — required
            Values: `percentage`
          - `steps` (object[] · min items: 1 · max items: 100) — required
            Array of ordered color steps defining the range each color is applied.
            - `color` (string) — required
              The color to use for this step.
            - `gte` (number) — optional — nullable
              The lower bound of range from which this color applies (inclusive).
            - `lt` (number) — optional — nullable
              The upper bound of range to which this color applies (exclusive).
            - `lte` (number) — optional — nullable
              The upper bound of range to which this color applies (inclusive).
          - `type` (enum) — required
            Values: `dynamic`
        - **Color By Value (Palette)**
          Color by value using a palette, with colors distributed across the range of values.
          - `palette` (enum) — required
            The name of the palette to apply across the value range.
            Values: `status`, `temperature`, `complementary`, `negative`, `positive`, `cool`, `warm`, `gray`
          - `type` (enum) — required
            Values: `distributed_palette`
        - **Legacy color by value**
          Legacy color by value configuration
          - `palette` (string) — required
            The legacy palette name.
          - `range` (enum) — required
            Determines whether the range is interpreted as absolute or as a percentage of the data.
            Values: `absolute`, `percentage`
          - `shift` (boolean) — required
            When `true`, shifts the palette colors so they start from a different offset. Defaults to `false`.
          - `steps` (object[] · min items: 1 · max items: 100) — required
            Array of ordered color steps defining the range each color is applied.
            - `color` (string) — required
              The color to use for this step.
            - `gte` (number) — optional — nullable
              The lower bound of range from which this color applies (inclusive).
            - `lt` (number) — optional — nullable
              The upper bound of range to which this color applies (exclusive).
            - `lte` (number) — optional — nullable
              The upper bound of range to which this color applies (inclusive).
          - `type` (enum) — required
            Values: `legacy_dynamic`
      - **Color Mapping**
        Color mapping for dimension values, either categorical (for specific values) or as a gradient.
        Any of:
        - **Categorical Color Mapping**
          Palette color assignment for specific categorical values. Unmapped values receive the unassigned color.
          - `mode` (enum) — required
            Values: `categorical`
          - `mapping` (object[] · max items: 1000) — required
            - `color` (union anyOf) — required
              - **Color From Palette**
                Color at a fixed index position in a named palette.
                - `type` (enum) — required
                  Values: `from_palette`
                - `index` (number) — required
                  The index of the color in the palette.
                - `palette` (string) — optional
                  Color palette name. Accepted values: 'default', 'elastic_line_optimized', 'severity', 'eui_amsterdam', 'kibana_v7_legacy', 'elastic_brand_2023'. Defaults to `default`.
              - **Color Code**
                A color specified as a hex or CSS color code string.
                - `type` (enum) — required
                  Values: `color_code`
                - `value` (string) — required
                  The static color value to use.
            - `values` (union anyOf[] · max items: 1000) — required
              - **string**
              - **number**
              - **Range Key**
                - `type` (enum) — required
                  Values: `range_key`
                - `from` (number | string) — required
                - `ranges` (object[] · max items: 100) — required
                  - `from` (number | string) — required
                  - `label` (string) — required
                  - `to` (number | string) — required
                - `to` (number | string) — required
              - **Multi Field Key**
                - `type` (enum) — required
                  Values: `multi_field_key`
                - `keys` (string[] · max items: 100) — required
          - `palette` (string) — required
            Color palette name. Accepted values: 'default', 'elastic_line_optimized', 'severity', 'eui_amsterdam', 'kibana_v7_legacy', 'elastic_brand_2023'. Defaults to `default`.
          - `unassigned` (union anyOf) — optional
            The color to use for unassigned values.
            - **Color From Palette**
              Color at a fixed index position in a named palette.
              - `type` (enum) — required
                Values: `from_palette`
              - `index` (number) — required
                The index of the color in the palette.
              - `palette` (string) — optional
                Color palette name. Accepted values: 'default', 'elastic_line_optimized', 'severity', 'eui_amsterdam', 'kibana_v7_legacy', 'elastic_brand_2023'. Defaults to `default`.
            - **Color Code**
              A color specified as a hex or CSS color code string.
              - `type` (enum) — required
                Values: `color_code`
              - `value` (string) — required
                The static color value to use.
        - **Gradient Color Mapping**
          Gradient color mapping across categorical values.
          - `mode` (enum) — required
            Values: `gradient`
          - `gradient` (union anyOf[] · max items: 3) — optional
            - **Color From Palette**
              Color at a fixed index position in a named palette.
              - `type` (enum) — required
                Values: `from_palette`
              - `index` (number) — required
                The index of the color in the palette.
              - `palette` (string) — optional
                Color palette name. Accepted values: 'default', 'elastic_line_optimized', 'severity', 'eui_amsterdam', 'kibana_v7_legacy', 'elastic_brand_2023'. Defaults to `default`.
            - **Color Code**
              A color specified as a hex or CSS color code string.
              - `type` (enum) — required
                Values: `color_code`
              - `value` (string) — required
                The static color value to use.
          - `mapping` (object[] · max items: 100) — optional
            - `values` (union anyOf[] · max items: 100) — required
              - **string**
              - **number**
              - **Range Key**
                - `type` (enum) — required
                  Values: `range_key`
                - `from` (number | string) — required
                - `ranges` (object[] · max items: 100) — required
                  - `from` (number | string) — required
                  - `label` (string) — required
                  - `to` (number | string) — required
                - `to` (number | string) — required
              - **Multi Field Key**
                - `type` (enum) — required
                  Values: `multi_field_key`
                - `keys` (string[] · max items: 100) — required
          - `palette` (string) — required
            Color palette name. Accepted values: 'default', 'elastic_line_optimized', 'severity', 'eui_amsterdam', 'kibana_v7_legacy', 'elastic_brand_2023'. Defaults to `default`.
          - `sort` (enum) — optional
            Sort direction
            Values: `asc`, `desc`
          - `unassigned` (union anyOf) — optional
            The color to use for unassigned values.
            - **Color From Palette**
              Color at a fixed index position in a named palette.
              - `type` (enum) — required
                Values: `from_palette`
              - `index` (number) — required
                The index of the color in the palette.
              - `palette` (string) — optional
                Color palette name. Accepted values: 'default', 'elastic_line_optimized', 'severity', 'eui_amsterdam', 'kibana_v7_legacy', 'elastic_brand_2023'. Defaults to `default`.
            - **Color Code**
              A color specified as a hex or CSS color code string.
              - `type` (enum) — required
                Values: `color_code`
              - `value` (string) — required
                The static color value to use.
      - **Auto Color**
        Coloring determined at runtime based on chart defaults
        - `type` (enum) — required
          Values: `auto`
    - `summary` (object) — optional
      Summary row configuration
      - `label` (string) — optional
        Summary row label.
      - `type` (enum) — required
        Type of summary function to apply to the column.
        Values: `sum`, `avg`, `count`, `min`, `max`
    - `visible` (boolean · default: true) — optional
      When `false`, hides the column from the datatable.
    - `width` (number · min: 0) — optional
      Column width in pixels.
  - `query` (object) — optional
    A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
    - `expression` (string) — required
      A query expression in KQL or Lucene syntax
    - `language` (enum · default: kql) — optional
      Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
      Values: `kql`, `lucene`
  - `rows` (union anyOf[] · min items: 1 · max items: 50) — optional
    Array of operations to split the datatable rows by
    - `alignment` (enum · default: left) — optional
      Alignment of the rows.
      Values: `left`, `center`, `right`
    - `apply_color_to` (enum) — optional
      Column color target: `value` for cell text, `background` for cell background, or `badge` for a badge overlay.
      Values: `value`, `background`, `badge`
    - `click_filter` (boolean · default: false) — optional
      When `true`, enables one-click filtering on cell values.
    - `collapse_by` (union anyOf) — optional
      Aggregation function used to collapse a breakdown dimension into a single value.
      Values: `avg`, `sum`, `max`, `min`
    - `color` (union anyOf · default: {"type":"auto"}) — optional
      - **Color Mapping**
        Color mapping for dimension values, either categorical (for specific values) or as a gradient.
        Any of:
        - **Categorical Color Mapping**
          Palette color assignment for specific categorical values. Unmapped values receive the unassigned color.
          - `mode` (enum) — required
            Values: `categorical`
          - `mapping` (object[] · max items: 1000) — required
            - `color` (union anyOf) — required
              - **Color From Palette**
                Color at a fixed index position in a named palette.
                - `type` (enum) — required
                  Values: `from_palette`
                - `index` (number) — required
                  The index of the color in the palette.
                - `palette` (string) — optional
                  Color palette name. Accepted values: 'default', 'elastic_line_optimized', 'severity', 'eui_amsterdam', 'kibana_v7_legacy', 'elastic_brand_2023'. Defaults to `default`.
              - **Color Code**
                A color specified as a hex or CSS color code string.
                - `type` (enum) — required
                  Values: `color_code`
                - `value` (string) — required
                  The static color value to use.
            - `values` (union anyOf[] · max items: 1000) — required
              - **string**
              - **number**
              - **Range Key**
                - `type` (enum) — required
                  Values: `range_key`
                - `from` (number | string) — required
                - `ranges` (object[] · max items: 100) — required
                  - `from` (number | string) — required
                  - `label` (string) — required
                  - `to` (number | string) — required
                - `to` (number | string) — required
              - **Multi Field Key**
                - `type` (enum) — required
                  Values: `multi_field_key`
                - `keys` (string[] · max items: 100) — required
          - `palette` (string) — required
            Color palette name. Accepted values: 'default', 'elastic_line_optimized', 'severity', 'eui_amsterdam', 'kibana_v7_legacy', 'elastic_brand_2023'. Defaults to `default`.
          - `unassigned` (union anyOf) — optional
            The color to use for unassigned values.
            - **Color From Palette**
              Color at a fixed index position in a named palette.
              - `type` (enum) — required
                Values: `from_palette`
              - `index` (number) — required
                The index of the color in the palette.
              - `palette` (string) — optional
                Color palette name. Accepted values: 'default', 'elastic_line_optimized', 'severity', 'eui_amsterdam', 'kibana_v7_legacy', 'elastic_brand_2023'. Defaults to `default`.
            - **Color Code**
              A color specified as a hex or CSS color code string.
              - `type` (enum) — required
                Values: `color_code`
              - `value` (string) — required
                The static color value to use.
        - **Gradient Color Mapping**
          Gradient color mapping across categorical values.
          - `mode` (enum) — required
            Values: `gradient`
          - `gradient` (union anyOf[] · max items: 3) — optional
            - **Color From Palette**
              Color at a fixed index position in a named palette.
              - `type` (enum) — required
                Values: `from_palette`
              - `index` (number) — required
                The index of the color in the palette.
              - `palette` (string) — optional
                Color palette name. Accepted values: 'default', 'elastic_line_optimized', 'severity', 'eui_amsterdam', 'kibana_v7_legacy', 'elastic_brand_2023'. Defaults to `default`.
            - **Color Code**
              A color specified as a hex or CSS color code string.
              - `type` (enum) — required
                Values: `color_code`
              - `value` (string) — required
                The static color value to use.
          - `mapping` (object[] · max items: 100) — optional
            - `values` (union anyOf[] · max items: 100) — required
              - **string**
              - **number**
              - **Range Key**
                - `type` (enum) — required
                  Values: `range_key`
                - `from` (number | string) — required
                - `ranges` (object[] · max items: 100) — required
                  - `from` (number | string) — required
                  - `label` (string) — required
                  - `to` (number | string) — required
                - `to` (number | string) — required
              - **Multi Field Key**
                - `type` (enum) — required
                  Values: `multi_field_key`
                - `keys` (string[] · max items: 100) — required
          - `palette` (string) — required
            Color palette name. Accepted values: 'default', 'elastic_line_optimized', 'severity', 'eui_amsterdam', 'kibana_v7_legacy', 'elastic_brand_2023'. Defaults to `default`.
          - `sort` (enum) — optional
            Sort direction
            Values: `asc`, `desc`
          - `unassigned` (union anyOf) — optional
            The color to use for unassigned values.
            - **Color From Palette**
              Color at a fixed index position in a named palette.
              - `type` (enum) — required
                Values: `from_palette`
              - `index` (number) — required
                The index of the color in the palette.
              - `palette` (string) — optional
                Color palette name. Accepted values: 'default', 'elastic_line_optimized', 'severity', 'eui_amsterdam', 'kibana_v7_legacy', 'elastic_brand_2023'. Defaults to `default`.
            - **Color Code**
              A color specified as a hex or CSS color code string.
              - `type` (enum) — required
                Values: `color_code`
              - `value` (string) — required
                The static color value to use.
      - **Auto Color**
        Coloring determined at runtime based on chart defaults
        - `type` (enum) — required
          Values: `auto`
    - `visible` (boolean · default: true) — optional
      When `false`, hides the column from the datatable.
    - `width` (number · min: 0) — optional
      Column width in pixels.
  - `sampling` (number · min: 0 · max: 1 · default: 1) — optional
    Sampling factor between 0 (no sampling) and 1 (full sampling).
  - `split_metrics_by` (union anyOf[] · min items: 1 · max items: 20) — optional
    Array of operations to split the metric columns by
    Same options as `x` in `Layer (DSL)`
  - `styling` (object) — optional
    Visual chart styling options
    - `density` (object) — optional
      Density configuration for the datatable.
      - `height` (object) — optional
        - `header` (union anyOf) — optional
          Number of lines before the header is truncated.
          - **type: auto**
            - `type` (enum) — required
              Values: `auto`
          - **type: custom**
            - `type` (enum) — required
              Values: `custom`
            - `max_lines` (number · min: 1 · max: 5 · default: 3) — optional
        - `value` (union anyOf) — optional
          Number of lines to display per table body cell.
          - **type: auto**
            - `type` (enum) — required
              Values: `auto`
          - **type: custom**
            - `type` (enum) — required
              Values: `custom`
            - `lines` (number · min: 1 · max: 20 · default: 1) — optional
      - `mode` (enum · default: default) — optional
        Display density mode.
        Values: `compact`, `default`, `expanded`
    - `paging` (enum) — optional
      Rows per page. When set, pagination is enabled with the specified number of rows.
      Values: `10`, `20`, `30`, `50`, `100`
    - `row_numbers` (object) — optional
      Configuration for row numbers
      - `visible` (boolean) — required
        When `true`, displays row numbers.
    - `sort_by` (union anyOf) — optional
      Sorting configuration. Only one column can be sorted at a time. Use "column_type" to specify the column type.
      - **object**
        Sort by a metric or row column
        - `column_type` (enum) — required
          Type of column to sort by.
          Values: `metric`, `row`
        - `direction` (enum) — required
          Direction
          Values: `asc`, `desc`
        - `index` (number · min: 0) — required
          Index of the column or row to sort by (0-based).
      - **column_type: pivoted_metric**
        Sort by a pivoted metric column (created when metrics are pivoted by split_metrics_by)
        - `column_type` (enum) — required
          Values: `pivoted_metric`
        - `direction` (enum) — required
          Direction
          Values: `asc`, `desc`
        - `index` (number · min: 0) — required
          0-based index into the "metrics" array for the metric to sort; use "values" to identify the pivoted column
        - `values` (string[] · min items: 1 · max items: 20) — required
          Array of pivot values, one for each split_metrics_by column in order
  - `tags` (string[] · max items: 1000 · default: []) — optional
    Tag IDs to associate with this visualization.
  - `title` (string) — optional
    The title of the chart displayed in the panel. Optional. Any string value or undefined.
- **Pie Chart (library)**
  - `type` (enum) — required
    Values: `pie`
  - `data_source` (union oneOf) — required
    Same options as `data_source` in `Metric Chart (library)`
  - `description` (string) — optional
    The description of the chart. Optional. Any string value or undefined.
  - `filters` (union oneOf[] · max items: 100) — optional
    Filters applied to the panel
    Same options as `filters` in `Metric Chart (library)`
  - `group_by` (union anyOf[] · min items: 1 · max items: 100) — optional
    Array of breakdown dimensions (minimum 1)
    - `collapse_by` (union anyOf) — optional
      Aggregation function used to collapse a breakdown dimension into a single value.
      Values: `avg`, `sum`, `max`, `min`
    - `color` (union anyOf) — optional
      Color mapping for dimension values, either categorical (for specific values) or as a gradient.
      Default: `{"mapping":[],"mode":"categorical","palette":"default"}`
      Same options as `color` in `Date Histogram Operation`
  - `ignore_global_filters` (boolean · default: false) — optional
    When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
  - `legend` (object) — optional
    Legend configuration for pie chart
    - `nested` (boolean · default: false) — optional
      Show nested legend with hierarchical breakdown levels
    - `position` (enum · default: right) — optional
      Legend Position.
      Values: `top`, `bottom`, `left`, `right`
    - `size` (union anyOf) — optional
      Legend size.
      Values: `auto`, `s`, `m`, `l`, `xl`
    - `truncate_after_lines` (number · min: 1 · max: 10 · default: 1) — optional
      Number of lines before legend items are truncated.
    - `visibility` (enum) — optional
      Legend visibility.
      Values: `auto`, `visible`, `hidden`
  - `metrics` (union anyOf[] · min items: 1 · max items: 100) — required
    Array of metric configurations (minimum 1)
    - `color` (union anyOf · default: {"type":"auto"}) — optional
      - **Static Color**
        Fixed color for all values in the dimension.
        - `type` (enum) — required
          Values: `static`
        - `color` (string) — required
          The static color to be used for all values.
      - **Auto Color**
        Coloring determined at runtime based on chart defaults
        - `type` (enum) — required
          Values: `auto`
  - `query` (object) — optional
    A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
    - `expression` (string) — required
      A query expression in KQL or Lucene syntax
    - `language` (enum · default: kql) — optional
      Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
      Values: `kql`, `lucene`
  - `sampling` (number · min: 0 · max: 1 · default: 1) — optional
    Sampling factor between 0 (no sampling) and 1 (full sampling).
  - `styling` (object) — optional
    Visual chart styling options
    - `donut_hole` (enum) — optional
      Donut hole size. Accepted values: `none` (full pie), `s`, `m`, `l`.
      Values: `none`, `s`, `m`, `l`
    - `labels` (object) — optional
      Label configuration for pie chart slice labels inside or outside the pie
      - `position` (enum) — optional
        Slice label position: `inside` or `outside`.
        Values: `inside`, `outside`
      - `visible` (boolean) — optional
        When `true`, displays slice labels.
    - `values` (object) — optional
      Configure the visibility and the format of the values rendered on each chart partition section
      - `mode` (enum) — optional
        How to format values when visible.
        Values: `absolute`, `percentage`
      - `percent_decimals` (number · min: 0 · max: 10 · default: 2) — optional
        Decimal places for percentage display (0-10)
      - `visible` (boolean) — optional
        Show metric values on the chart
  - `tags` (string[] · max items: 1000 · default: []) — optional
    Tag IDs to associate with this visualization.
  - `title` (string) — optional
    The title of the chart displayed in the panel. Optional. Any string value or undefined.
- **Mosaic Chart (library)**
  - `type` (enum) — required
    Values: `mosaic`
  - `data_source` (union oneOf) — required
    Same options as `data_source` in `Metric Chart (library)`
  - `description` (string) — optional
    The description of the chart. Optional. Any string value or undefined.
  - `filters` (union oneOf[] · max items: 100) — optional
    Filters applied to the panel
    Same options as `filters` in `Metric Chart (library)`
  - `group_breakdown_by` (union anyOf[] · min items: 1 · max items: 100) — optional
    Array of group breakdown dimensions (minimum 1)
    - `collapse_by` (union anyOf) — optional
      Aggregation function used to collapse a breakdown dimension into a single value.
      Values: `avg`, `sum`, `max`, `min`
  - `group_by` (union anyOf[] · min items: 1 · max items: 100) — optional
    Array of breakdown dimensions (minimum 1)
    - `collapse_by` (union anyOf) — optional
      Aggregation function used to collapse a breakdown dimension into a single value.
      Values: `avg`, `sum`, `max`, `min`
    - `color` (union anyOf) — optional
      Color mapping for dimension values, either categorical (for specific values) or as a gradient.
      Default: `{"mapping":[],"mode":"categorical","palette":"default"}`
      Same options as `color` in `Date Histogram Operation`
  - `ignore_global_filters` (boolean · default: false) — optional
    When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
  - `legend` (object) — optional
    Legend configuration for mosaic chart appearance and behavior
    - `nested` (boolean · default: false) — optional
      Show nested legend with hierarchical breakdown levels
    - `position` (enum · default: right) — optional
      Legend Position.
      Values: `top`, `bottom`, `left`, `right`
    - `size` (union anyOf) — optional
      Legend size.
      Values: `auto`, `s`, `m`, `l`, `xl`
    - `truncate_after_lines` (number · min: 1 · max: 10 · default: 1) — optional
      Number of lines before legend items are truncated.
    - `visibility` (enum) — optional
      Legend visibility.
      Values: `auto`, `visible`, `hidden`
  - `metric` (union anyOf) — required
    Same options as `metric` in `Tag Cloud Chart (library)`
  - `query` (object) — optional
    A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
    - `expression` (string) — required
      A query expression in KQL or Lucene syntax
    - `language` (enum · default: kql) — optional
      Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
      Values: `kql`, `lucene`
  - `sampling` (number · min: 0 · max: 1 · default: 1) — optional
    Sampling factor between 0 (no sampling) and 1 (full sampling).
  - `styling` (object) — optional
    Visual chart styling options
    - `values` (object) — optional
      Configure the visibility and the format of the values rendered on each chart partition section
      - `mode` (enum) — optional
        How to format values when visible.
        Values: `absolute`, `percentage`
      - `percent_decimals` (number · min: 0 · max: 10 · default: 2) — optional
        Decimal places for percentage display (0-10)
      - `visible` (boolean) — optional
        Show metric values on the chart
  - `tags` (string[] · max items: 1000 · default: []) — optional
    Tag IDs to associate with this visualization.
  - `title` (string) — optional
    The title of the chart displayed in the panel. Optional. Any string value or undefined.
- **Treemap Chart (library)**
  - `type` (enum) — required
    Values: `treemap`
  - `data_source` (union oneOf) — required
    Same options as `data_source` in `Metric Chart (library)`
  - `description` (string) — optional
    The description of the chart. Optional. Any string value or undefined.
  - `filters` (union oneOf[] · max items: 100) — optional
    Filters applied to the panel
    Same options as `filters` in `Metric Chart (library)`
  - `group_by` (union anyOf[] · min items: 1 · max items: 100) — optional
    Array of breakdown dimensions (minimum 1)
    - `collapse_by` (union anyOf) — optional
      Aggregation function used to collapse a breakdown dimension into a single value.
      Values: `avg`, `sum`, `max`, `min`
    - `color` (union anyOf) — optional
      Color mapping for dimension values, either categorical (for specific values) or as a gradient.
      Default: `{"mapping":[],"mode":"categorical","palette":"default"}`
      Same options as `color` in `Date Histogram Operation`
  - `ignore_global_filters` (boolean · default: false) — optional
    When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
  - `legend` (object) — optional
    Configuration for the treemap chart legend appearance and behavior
    - `nested` (boolean · default: false) — optional
      Show nested legend with hierarchical breakdown levels
    - `position` (enum · default: right) — optional
      Legend Position.
      Values: `top`, `bottom`, `left`, `right`
    - `size` (union anyOf) — optional
      Legend size.
      Values: `auto`, `s`, `m`, `l`, `xl`
    - `truncate_after_lines` (number · min: 1 · max: 10 · default: 1) — optional
      Number of lines before legend items are truncated.
    - `visibility` (enum) — optional
      Legend visibility.
      Values: `auto`, `visible`, `hidden`
  - `metrics` (union anyOf[] · min items: 1 · max items: 100) — required
    Array of metric configurations (minimum 1)
    - `color` (union anyOf · default: {"type":"auto"}) — optional
      - **Static Color**
        Fixed color for all values in the dimension.
        - `type` (enum) — required
          Values: `static`
        - `color` (string) — required
          The static color to be used for all values.
      - **Auto Color**
        Coloring determined at runtime based on chart defaults
        - `type` (enum) — required
          Values: `auto`
  - `query` (object) — optional
    A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
    - `expression` (string) — required
      A query expression in KQL or Lucene syntax
    - `language` (enum · default: kql) — optional
      Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
      Values: `kql`, `lucene`
  - `sampling` (number · min: 0 · max: 1 · default: 1) — optional
    Sampling factor between 0 (no sampling) and 1 (full sampling).
  - `styling` (object) — optional
    Visual chart styling options
    - `labels` (object) — optional
      Labels configuration
      - `visible` (boolean) — optional
        Show category labels
    - `values` (object) — optional
      Configure the visibility and the format of the values rendered on each chart partition section
      - `mode` (enum) — optional
        How to format values when visible.
        Values: `absolute`, `percentage`
      - `percent_decimals` (number · min: 0 · max: 10 · default: 2) — optional
        Decimal places for percentage display (0-10)
      - `visible` (boolean) — optional
        Show metric values on the chart
  - `tags` (string[] · max items: 1000 · default: []) — optional
    Tag IDs to associate with this visualization.
  - `title` (string) — optional
    The title of the chart displayed in the panel. Optional. Any string value or undefined.
- **Waffle Chart (library)**
  - `type` (enum) — required
    Values: `waffle`
  - `data_source` (union oneOf) — required
    Same options as `data_source` in `Metric Chart (library)`
  - `description` (string) — optional
    The description of the chart. Optional. Any string value or undefined.
  - `filters` (union oneOf[] · max items: 100) — optional
    Filters applied to the panel
    Same options as `filters` in `Metric Chart (library)`
  - `group_by` (union anyOf[] · min items: 1 · max items: 100) — optional
    Array of breakdown dimensions (minimum 1)
    - `collapse_by` (union anyOf) — optional
      Aggregation function used to collapse a breakdown dimension into a single value.
      Values: `avg`, `sum`, `max`, `min`
    - `color` (union anyOf) — optional
      Color mapping for dimension values, either categorical (for specific values) or as a gradient.
      Default: `{"mapping":[],"mode":"categorical","palette":"default"}`
      Same options as `color` in `Date Histogram Operation`
  - `ignore_global_filters` (boolean · default: false) — optional
    When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
  - `legend` (object) — optional
    Legend configuration for waffle chart
    - `position` (enum · default: right) — optional
      Legend Position.
      Values: `top`, `bottom`, `left`, `right`
    - `size` (union anyOf) — optional
      Legend size.
      Values: `auto`, `s`, `m`, `l`, `xl`
    - `truncate_after_lines` (number · min: 1 · max: 10 · default: 1) — optional
      Number of lines before legend items are truncated.
    - `values` (enum[] · min items: 1 · max items: 1) — optional
      Values: `absolute`
    - `visibility` (enum) — optional
      Legend visibility.
      Values: `auto`, `visible`, `hidden`
  - `metrics` (union anyOf[] · min items: 1 · max items: 100) — required
    Array of metric configurations (minimum 1)
    - `color` (union anyOf · default: {"type":"auto"}) — optional
      - **Static Color**
        Fixed color for all values in the dimension.
        - `type` (enum) — required
          Values: `static`
        - `color` (string) — required
          The static color to be used for all values.
      - **Auto Color**
        Coloring determined at runtime based on chart defaults
        - `type` (enum) — required
          Values: `auto`
  - `query` (object) — optional
    A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
    - `expression` (string) — required
      A query expression in KQL or Lucene syntax
    - `language` (enum · default: kql) — optional
      Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
      Values: `kql`, `lucene`
  - `sampling` (number · min: 0 · max: 1 · default: 1) — optional
    Sampling factor between 0 (no sampling) and 1 (full sampling).
  - `styling` (object) — optional
    Visual chart styling options
    - `values` (object) — optional
      Configure the visibility and the format of the values rendered on each chart partition section
      - `mode` (enum) — optional
        How to format values when visible.
        Values: `absolute`, `percentage`
      - `percent_decimals` (number · min: 0 · max: 10 · default: 2) — optional
        Decimal places for percentage display (0-10)
      - `visible` (boolean) — optional
        Show metric values on the chart
  - `tags` (string[] · max items: 1000 · default: []) — optional
    Tag IDs to associate with this visualization.
  - `title` (string) — optional
    The title of the chart displayed in the panel. Optional. Any string value or undefined.

## Responses

#### `201`

Created

`application/json`

- `data` (union anyOf)
  - **Metric Chart (library)**
    - `type` (enum)
      Values: `metric`
    - `breakdown_by` (union anyOf)
      Same options as `breakdown_by` in `Metric Chart (library)`
    - `data_source` (union oneOf)
      Same options as `data_source` in `Metric Chart (library)`
    - `description` (string)
      The description of the chart. Optional. Any string value or undefined.
    - `filters` (union oneOf[] · max items: 100)
      Filters applied to the panel
      Same options as `filters` in `Metric Chart (library)`
    - `ignore_global_filters` (boolean · default: false)
      When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
    - `metrics` (union anyOf[] · min items: 1 · max items: 2)
      Metric dimensions to display. The first must be a primary metric; an optional second must be a secondary metric.
      Same options as `metrics` in `Metric Chart (library)`
    - `query` (object)
      A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
      - `expression` (string)
        A query expression in KQL or Lucene syntax
      - `language` (enum · default: kql)
        Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
        Values: `kql`, `lucene`
    - `sampling` (number · min: 0 · max: 1 · default: 1)
      Sampling factor between 0 (no sampling) and 1 (full sampling).
    - `styling` (object)
      Visual chart styling options
      Same fields as `styling` in `Metric Chart (library)`
    - `tags` (string[] · max items: 1000 · default: [])
      Tag IDs to associate with this visualization.
    - `title` (string)
      The title of the chart displayed in the panel. Optional. Any string value or undefined.
  - **Legacy Metric Chart (library)**
    - `type` (enum)
      Values: `legacy_metric`
    - `data_source` (union oneOf)
      Same options as `data_source` in `Metric Chart (library)`
    - `description` (string)
      The description of the chart. Optional. Any string value or undefined.
    - `filters` (union oneOf[] · max items: 100)
      Filters applied to the panel
      Same options as `filters` in `Metric Chart (library)`
    - `ignore_global_filters` (boolean · default: false)
      When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
    - `metric` (union anyOf)
      Same options as `metric` in `Legacy Metric Chart (library)`
    - `query` (object)
      A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
      - `expression` (string)
        A query expression in KQL or Lucene syntax
      - `language` (enum · default: kql)
        Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
        Values: `kql`, `lucene`
    - `sampling` (number · min: 0 · max: 1 · default: 1)
      Sampling factor between 0 (no sampling) and 1 (full sampling).
    - `tags` (string[] · max items: 1000 · default: [])
      Tag IDs to associate with this visualization.
    - `title` (string)
      The title of the chart displayed in the panel. Optional. Any string value or undefined.
  - **XY Chart (library)**
    - `type` (enum)
      Values: `xy`
    - `axis` (object)
      Axis configuration for X, Y, and Y2 axes. The Y axis is on the start (leading) side, the Y2 axis is on the end (trailing) side.
      Same fields as `axis` in `XY Chart (library)`
    - `description` (string)
      The description of the chart. Optional. Any string value or undefined.
    - `filters` (union oneOf[] · max items: 100)
      Filters applied to the panel
      Same options as `filters` in `Metric Chart (library)`
    - `layers` (union anyOf[] · min items: 1 · max items: 100)
      Chart layers
      Same options as `layers` in `XY Chart (library)`
    - `legend` (union anyOf)
      Legend configuration for XY chart
      Same options as `legend` in `XY Chart (library)`
    - `query` (object)
      A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
      - `expression` (string)
        A query expression in KQL or Lucene syntax
      - `language` (enum · default: kql)
        Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
        Values: `kql`, `lucene`
    - `styling` (object)
      Visual styling options for the chart
      Same fields as `styling` in `XY Chart (library)`
    - `tags` (string[] · max items: 1000 · default: [])
      Tag IDs to associate with this visualization.
    - `title` (string)
      The title of the chart displayed in the panel. Optional. Any string value or undefined.
  - **Gauge Chart (library)**
    - `type` (enum)
      Values: `gauge`
    - `data_source` (union oneOf)
      Same options as `data_source` in `Metric Chart (library)`
    - `description` (string)
      The description of the chart. Optional. Any string value or undefined.
    - `filters` (union oneOf[] · max items: 100)
      Filters applied to the panel
      Same options as `filters` in `Metric Chart (library)`
    - `ignore_global_filters` (boolean · default: false)
      When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
    - `metric` (union anyOf)
      Same options as `metric` in `Gauge Chart (library)`
    - `query` (object)
      A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
      - `expression` (string)
        A query expression in KQL or Lucene syntax
      - `language` (enum · default: kql)
        Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
        Values: `kql`, `lucene`
    - `sampling` (number · min: 0 · max: 1 · default: 1)
      Sampling factor between 0 (no sampling) and 1 (full sampling).
    - `styling` (object)
      Visual chart styling options
      - `shape` (union anyOf)
        Default: `{"orientation":"horizontal","type":"bullet"}`
        - **Shape (Bullet)**
          Bullet gauge shape.
          - `orientation` (enum)
            Orientation
            Values: `horizontal`, `vertical`
          - `type` (enum)
            Values: `bullet`
        - **Shape (Circular)**
          Circular gauge shape.
          - `type` (enum)
            Values: `circle`, `semi_circle`, `arc`
    - `tags` (string[] · max items: 1000 · default: [])
      Tag IDs to associate with this visualization.
    - `title` (string)
      The title of the chart displayed in the panel. Optional. Any string value or undefined.
  - **Heatmap Chart (library)**
    - `type` (enum)
      Values: `heatmap`
    - `axis` (object)
      Axis configuration for X and Y axes
      Same fields as `axis` in `Heatmap Chart (library)`
    - `data_source` (union oneOf)
      Same options as `data_source` in `Metric Chart (library)`
    - `description` (string)
      The description of the chart. Optional. Any string value or undefined.
    - `filters` (union oneOf[] · max items: 100)
      Filters applied to the panel
      Same options as `filters` in `Metric Chart (library)`
    - `ignore_global_filters` (boolean · default: false)
      When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
    - `legend` (object)
      Legend configuration
      - `position` (enum)
        Values: `top`, `bottom`, `left`, `right`
      - `size` (union anyOf)
        Legend size.
        Values: `auto`, `s`, `m`, `l`, `xl`
      - `truncate_after_lines` (number · min: 1 · max: 10 · default: 1)
        Number of lines before legend items are truncated.
      - `visibility` (enum)
        Legend visibility.
        Values: `visible`, `hidden`
    - `metric` (union anyOf)
      Same options as `metric` in `Heatmap Chart (library)`
    - `query` (object)
      A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
      - `expression` (string)
        A query expression in KQL or Lucene syntax
      - `language` (enum · default: kql)
        Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
        Values: `kql`, `lucene`
    - `sampling` (number · min: 0 · max: 1 · default: 1)
      Sampling factor between 0 (no sampling) and 1 (full sampling).
    - `styling` (object)
      Visual chart styling options
      - `cells` (object)
        Cells configuration
        - `labels` (object)
          - `visible` (boolean · default: false)
            Show cell labels
    - `tags` (string[] · max items: 1000 · default: [])
      Tag IDs to associate with this visualization.
    - `title` (string)
      The title of the chart displayed in the panel. Optional. Any string value or undefined.
    - `x` (union anyOf)
      Breakdown dimension configuration using date histogram, terms, numeric histogram, value ranges, or custom filters.
      Same options as `x` in `Layer (DSL)`
    - `y` (union anyOf)
      Breakdown dimension configuration using date histogram, terms, numeric histogram, value ranges, or custom filters.
      Same options as `x` in `Layer (DSL)`
  - **Tag Cloud Chart (library)**
    - `type` (enum)
      Values: `tag_cloud`
    - `data_source` (union oneOf)
      Same options as `data_source` in `Metric Chart (library)`
    - `description` (string)
      The description of the chart. Optional. Any string value or undefined.
    - `filters` (union oneOf[] · max items: 100)
      Filters applied to the panel
      Same options as `filters` in `Metric Chart (library)`
    - `ignore_global_filters` (boolean · default: false)
      When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
    - `metric` (union anyOf)
      Same options as `metric` in `Tag Cloud Chart (library)`
    - `query` (object)
      A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
      - `expression` (string)
        A query expression in KQL or Lucene syntax
      - `language` (enum · default: kql)
        Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
        Values: `kql`, `lucene`
    - `sampling` (number · min: 0 · max: 1 · default: 1)
      Sampling factor between 0 (no sampling) and 1 (full sampling).
    - `styling` (object)
      Visual chart styling options
      - `caption` (object)
        Caption configuration representing the metric and the tag_by operations labels
        - `visible` (boolean · default: true)
          When `true`, displays the caption.
      - `font_size` (object)
        Font size range for tags.
        - `max` (number · max: 120 · default: 72)
          Maximum font size.
        - `min` (number · min: 1 · default: 18)
          Minimum font size.
      - `orientation` (enum)
        Orientation
        Values: `horizontal`, `vertical`, `angled`
    - `tag_by` (union anyOf)
      Same options as `tag_by` in `Tag Cloud Chart (library)`
    - `tags` (string[] · max items: 1000 · default: [])
      Tag IDs to associate with this visualization.
    - `title` (string)
      The title of the chart displayed in the panel. Optional. Any string value or undefined.
  - **Region Map Chart (library)**
    - `type` (enum)
      Values: `region_map`
    - `data_source` (union oneOf)
      Same options as `data_source` in `Metric Chart (library)`
    - `description` (string)
      The description of the chart. Optional. Any string value or undefined.
    - `filters` (union oneOf[] · max items: 100)
      Filters applied to the panel
      Same options as `filters` in `Metric Chart (library)`
    - `ignore_global_filters` (boolean · default: false)
      When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
    - `metric` (union anyOf)
      Metric dimension using a field-based aggregation or a mathematical formula.
      Same options as `metric` in `Region Map Chart (library)`
    - `query` (object)
      A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
      - `expression` (string)
        A query expression in KQL or Lucene syntax
      - `language` (enum · default: kql)
        Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
        Values: `kql`, `lucene`
    - `region` (union anyOf)
      Same options as `region` in `Region Map Chart (library)`
    - `sampling` (number · min: 0 · max: 1 · default: 1)
      Sampling factor between 0 (no sampling) and 1 (full sampling).
    - `tags` (string[] · max items: 1000 · default: [])
      Tag IDs to associate with this visualization.
    - `title` (string)
      The title of the chart displayed in the panel. Optional. Any string value or undefined.
  - **Datatable Chart (library)**
    - `type` (enum)
      Values: `data_table`
    - `data_source` (union oneOf)
      Same options as `data_source` in `Metric Chart (library)`
    - `description` (string)
      The description of the chart. Optional. Any string value or undefined.
    - `filters` (union oneOf[] · max items: 100)
      Filters applied to the panel
      Same options as `filters` in `Metric Chart (library)`
    - `ignore_global_filters` (boolean · default: false)
      When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
    - `metrics` (union anyOf[] · min items: 1 · max items: 1000)
      Array of metrics to display as columns in the datatable
      Same options as `metrics` in `Datatable Chart (library)`
    - `query` (object)
      A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
      - `expression` (string)
        A query expression in KQL or Lucene syntax
      - `language` (enum · default: kql)
        Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
        Values: `kql`, `lucene`
    - `rows` (union anyOf[] · min items: 1 · max items: 50)
      Array of operations to split the datatable rows by
      Same options as `rows` in `Datatable Chart (library)`
    - `sampling` (number · min: 0 · max: 1 · default: 1)
      Sampling factor between 0 (no sampling) and 1 (full sampling).
    - `split_metrics_by` (union anyOf[] · min items: 1 · max items: 20)
      Array of operations to split the metric columns by
      Same options as `x` in `Layer (DSL)`
    - `styling` (object)
      Visual chart styling options
      Same fields as `styling` in `Datatable Chart (library)`
    - `tags` (string[] · max items: 1000 · default: [])
      Tag IDs to associate with this visualization.
    - `title` (string)
      The title of the chart displayed in the panel. Optional. Any string value or undefined.
  - **Pie Chart (library)**
    - `type` (enum)
      Values: `pie`
    - `data_source` (union oneOf)
      Same options as `data_source` in `Metric Chart (library)`
    - `description` (string)
      The description of the chart. Optional. Any string value or undefined.
    - `filters` (union oneOf[] · max items: 100)
      Filters applied to the panel
      Same options as `filters` in `Metric Chart (library)`
    - `group_by` (union anyOf[] · min items: 1 · max items: 100)
      Array of breakdown dimensions (minimum 1)
      - `collapse_by` (union anyOf)
        Aggregation function used to collapse a breakdown dimension into a single value.
        Values: `avg`, `sum`, `max`, `min`
      - `color` (union anyOf)
        Color mapping for dimension values, either categorical (for specific values) or as a gradient.
        Default: `{"mapping":[],"mode":"categorical","palette":"default"}`
        Same options as `color` in `Date Histogram Operation`
    - `ignore_global_filters` (boolean · default: false)
      When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
    - `legend` (object)
      Legend configuration for pie chart
      - `nested` (boolean · default: false)
        Show nested legend with hierarchical breakdown levels
      - `position` (enum · default: right)
        Legend Position.
        Values: `top`, `bottom`, `left`, `right`
      - `size` (union anyOf)
        Legend size.
        Values: `auto`, `s`, `m`, `l`, `xl`
      - `truncate_after_lines` (number · min: 1 · max: 10 · default: 1)
        Number of lines before legend items are truncated.
      - `visibility` (enum)
        Legend visibility.
        Values: `auto`, `visible`, `hidden`
    - `metrics` (union anyOf[] · min items: 1 · max items: 100)
      Array of metric configurations (minimum 1)
      - `color` (union anyOf · default: {"type":"auto"})
        - **Static Color**
          Fixed color for all values in the dimension.
          - `type` (enum)
            Values: `static`
          - `color` (string)
            The static color to be used for all values.
        - **Auto Color**
          Coloring determined at runtime based on chart defaults
          - `type` (enum)
            Values: `auto`
    - `query` (object)
      A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
      - `expression` (string)
        A query expression in KQL or Lucene syntax
      - `language` (enum · default: kql)
        Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
        Values: `kql`, `lucene`
    - `sampling` (number · min: 0 · max: 1 · default: 1)
      Sampling factor between 0 (no sampling) and 1 (full sampling).
    - `styling` (object)
      Visual chart styling options
      - `donut_hole` (enum)
        Donut hole size. Accepted values: `none` (full pie), `s`, `m`, `l`.
        Values: `none`, `s`, `m`, `l`
      - `labels` (object)
        Label configuration for pie chart slice labels inside or outside the pie
        - `position` (enum)
          Slice label position: `inside` or `outside`.
          Values: `inside`, `outside`
        - `visible` (boolean)
          When `true`, displays slice labels.
      - `values` (object)
        Configure the visibility and the format of the values rendered on each chart partition section
        - `mode` (enum)
          How to format values when visible.
          Values: `absolute`, `percentage`
        - `percent_decimals` (number · min: 0 · max: 10 · default: 2)
          Decimal places for percentage display (0-10)
        - `visible` (boolean)
          Show metric values on the chart
    - `tags` (string[] · max items: 1000 · default: [])
      Tag IDs to associate with this visualization.
    - `title` (string)
      The title of the chart displayed in the panel. Optional. Any string value or undefined.
  - **Mosaic Chart (library)**
    - `type` (enum)
      Values: `mosaic`
    - `data_source` (union oneOf)
      Same options as `data_source` in `Metric Chart (library)`
    - `description` (string)
      The description of the chart. Optional. Any string value or undefined.
    - `filters` (union oneOf[] · max items: 100)
      Filters applied to the panel
      Same options as `filters` in `Metric Chart (library)`
    - `group_breakdown_by` (union anyOf[] · min items: 1 · max items: 100)
      Array of group breakdown dimensions (minimum 1)
      - `collapse_by` (union anyOf)
        Aggregation function used to collapse a breakdown dimension into a single value.
        Values: `avg`, `sum`, `max`, `min`
    - `group_by` (union anyOf[] · min items: 1 · max items: 100)
      Array of breakdown dimensions (minimum 1)
      - `collapse_by` (union anyOf)
        Aggregation function used to collapse a breakdown dimension into a single value.
        Values: `avg`, `sum`, `max`, `min`
      - `color` (union anyOf)
        Color mapping for dimension values, either categorical (for specific values) or as a gradient.
        Default: `{"mapping":[],"mode":"categorical","palette":"default"}`
        Same options as `color` in `Date Histogram Operation`
    - `ignore_global_filters` (boolean · default: false)
      When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
    - `legend` (object)
      Legend configuration for mosaic chart appearance and behavior
      - `nested` (boolean · default: false)
        Show nested legend with hierarchical breakdown levels
      - `position` (enum · default: right)
        Legend Position.
        Values: `top`, `bottom`, `left`, `right`
      - `size` (union anyOf)
        Legend size.
        Values: `auto`, `s`, `m`, `l`, `xl`
      - `truncate_after_lines` (number · min: 1 · max: 10 · default: 1)
        Number of lines before legend items are truncated.
      - `visibility` (enum)
        Legend visibility.
        Values: `auto`, `visible`, `hidden`
    - `metric` (union anyOf)
      Same options as `metric` in `Tag Cloud Chart (library)`
    - `query` (object)
      A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
      - `expression` (string)
        A query expression in KQL or Lucene syntax
      - `language` (enum · default: kql)
        Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
        Values: `kql`, `lucene`
    - `sampling` (number · min: 0 · max: 1 · default: 1)
      Sampling factor between 0 (no sampling) and 1 (full sampling).
    - `styling` (object)
      Visual chart styling options
      - `values` (object)
        Configure the visibility and the format of the values rendered on each chart partition section
        - `mode` (enum)
          How to format values when visible.
          Values: `absolute`, `percentage`
        - `percent_decimals` (number · min: 0 · max: 10 · default: 2)
          Decimal places for percentage display (0-10)
        - `visible` (boolean)
          Show metric values on the chart
    - `tags` (string[] · max items: 1000 · default: [])
      Tag IDs to associate with this visualization.
    - `title` (string)
      The title of the chart displayed in the panel. Optional. Any string value or undefined.
  - **Treemap Chart (library)**
    - `type` (enum)
      Values: `treemap`
    - `data_source` (union oneOf)
      Same options as `data_source` in `Metric Chart (library)`
    - `description` (string)
      The description of the chart. Optional. Any string value or undefined.
    - `filters` (union oneOf[] · max items: 100)
      Filters applied to the panel
      Same options as `filters` in `Metric Chart (library)`
    - `group_by` (union anyOf[] · min items: 1 · max items: 100)
      Array of breakdown dimensions (minimum 1)
      - `collapse_by` (union anyOf)
        Aggregation function used to collapse a breakdown dimension into a single value.
        Values: `avg`, `sum`, `max`, `min`
      - `color` (union anyOf)
        Color mapping for dimension values, either categorical (for specific values) or as a gradient.
        Default: `{"mapping":[],"mode":"categorical","palette":"default"}`
        Same options as `color` in `Date Histogram Operation`
    - `ignore_global_filters` (boolean · default: false)
      When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
    - `legend` (object)
      Configuration for the treemap chart legend appearance and behavior
      - `nested` (boolean · default: false)
        Show nested legend with hierarchical breakdown levels
      - `position` (enum · default: right)
        Legend Position.
        Values: `top`, `bottom`, `left`, `right`
      - `size` (union anyOf)
        Legend size.
        Values: `auto`, `s`, `m`, `l`, `xl`
      - `truncate_after_lines` (number · min: 1 · max: 10 · default: 1)
        Number of lines before legend items are truncated.
      - `visibility` (enum)
        Legend visibility.
        Values: `auto`, `visible`, `hidden`
    - `metrics` (union anyOf[] · min items: 1 · max items: 100)
      Array of metric configurations (minimum 1)
      - `color` (union anyOf · default: {"type":"auto"})
        - **Static Color**
          Fixed color for all values in the dimension.
          - `type` (enum)
            Values: `static`
          - `color` (string)
            The static color to be used for all values.
        - **Auto Color**
          Coloring determined at runtime based on chart defaults
          - `type` (enum)
            Values: `auto`
    - `query` (object)
      A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
      - `expression` (string)
        A query expression in KQL or Lucene syntax
      - `language` (enum · default: kql)
        Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
        Values: `kql`, `lucene`
    - `sampling` (number · min: 0 · max: 1 · default: 1)
      Sampling factor between 0 (no sampling) and 1 (full sampling).
    - `styling` (object)
      Visual chart styling options
      - `labels` (object)
        Labels configuration
        - `visible` (boolean)
          Show category labels
      - `values` (object)
        Configure the visibility and the format of the values rendered on each chart partition section
        - `mode` (enum)
          How to format values when visible.
          Values: `absolute`, `percentage`
        - `percent_decimals` (number · min: 0 · max: 10 · default: 2)
          Decimal places for percentage display (0-10)
        - `visible` (boolean)
          Show metric values on the chart
    - `tags` (string[] · max items: 1000 · default: [])
      Tag IDs to associate with this visualization.
    - `title` (string)
      The title of the chart displayed in the panel. Optional. Any string value or undefined.
  - **Waffle Chart (library)**
    - `type` (enum)
      Values: `waffle`
    - `data_source` (union oneOf)
      Same options as `data_source` in `Metric Chart (library)`
    - `description` (string)
      The description of the chart. Optional. Any string value or undefined.
    - `filters` (union oneOf[] · max items: 100)
      Filters applied to the panel
      Same options as `filters` in `Metric Chart (library)`
    - `group_by` (union anyOf[] · min items: 1 · max items: 100)
      Array of breakdown dimensions (minimum 1)
      - `collapse_by` (union anyOf)
        Aggregation function used to collapse a breakdown dimension into a single value.
        Values: `avg`, `sum`, `max`, `min`
      - `color` (union anyOf)
        Color mapping for dimension values, either categorical (for specific values) or as a gradient.
        Default: `{"mapping":[],"mode":"categorical","palette":"default"}`
        Same options as `color` in `Date Histogram Operation`
    - `ignore_global_filters` (boolean · default: false)
      When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
    - `legend` (object)
      Legend configuration for waffle chart
      - `position` (enum · default: right)
        Legend Position.
        Values: `top`, `bottom`, `left`, `right`
      - `size` (union anyOf)
        Legend size.
        Values: `auto`, `s`, `m`, `l`, `xl`
      - `truncate_after_lines` (number · min: 1 · max: 10 · default: 1)
        Number of lines before legend items are truncated.
      - `values` (enum[] · min items: 1 · max items: 1)
        Values: `absolute`
      - `visibility` (enum)
        Legend visibility.
        Values: `auto`, `visible`, `hidden`
    - `metrics` (union anyOf[] · min items: 1 · max items: 100)
      Array of metric configurations (minimum 1)
      - `color` (union anyOf · default: {"type":"auto"})
        - **Static Color**
          Fixed color for all values in the dimension.
          - `type` (enum)
            Values: `static`
          - `color` (string)
            The static color to be used for all values.
        - **Auto Color**
          Coloring determined at runtime based on chart defaults
          - `type` (enum)
            Values: `auto`
    - `query` (object)
      A KQL or Lucene query that filters panel data. Applied on top of any dashboard-level filters.
      - `expression` (string)
        A query expression in KQL or Lucene syntax
      - `language` (enum · default: kql)
        Query language: `kql` (Kibana Query Language) or `lucene`. Defaults to `kql`.
        Values: `kql`, `lucene`
    - `sampling` (number · min: 0 · max: 1 · default: 1)
      Sampling factor between 0 (no sampling) and 1 (full sampling).
    - `styling` (object)
      Visual chart styling options
      - `values` (object)
        Configure the visibility and the format of the values rendered on each chart partition section
        - `mode` (enum)
          How to format values when visible.
          Values: `absolute`, `percentage`
        - `percent_decimals` (number · min: 0 · max: 10 · default: 2)
          Decimal places for percentage display (0-10)
        - `visible` (boolean)
          Show metric values on the chart
    - `tags` (string[] · max items: 1000 · default: [])
      Tag IDs to associate with this visualization.
    - `title` (string)
      The title of the chart displayed in the panel. Optional. Any string value or undefined.
- `id` (string)
- `meta` (object)
  - `created_at` (string)
    Timestamp when the object was created (ISO 8601).
  - `created_by` (string)
    User profile ID of the user who created the object.
  - `managed` (boolean)
    When `true`, the object is managed by Kibana and cannot be edited by users.
  - `owner` (string)
    Identifier of the plugin or team that owns this object.
  - `updated_at` (string)
    Timestamp when the object was last updated (ISO 8601).
  - `updated_by` (string)
    User profile ID of the user who last updated the object.
  - `version` (string)
    Internal version identifier for optimistic concurrency control.
#### `400`

Malformed request

#### `401`

Unauthorized

#### `403`

Forbidden

#### `500`

Internal Server Error

## Code examples

### Metric

#### Console

```console
POST kbn:/api/visualizations
{
  "type": "metric",
  "title": "Total requests",
  "data_source": {
    "type": "data_view_spec",
    "index_pattern": "kibana_sample_data_logs",
    "time_field": "timestamp"
  },
  "metrics": [
    {
      "type": "primary",
      "operation": "count"
    }
  ]
}
```

#### curl

```curl
curl -X POST "${KIBANA_URL}/api/visualizations" \
  -H "Authorization: ApiKey ${API_KEY}" \
  -H "kbn-xsrf: true" \
  -H "Content-Type: application/json" \
  -d '{
  "type": "metric",
  "title": "Total requests",
  "data_source": {
    "type": "data_view_spec",
    "index_pattern": "kibana_sample_data_logs",
    "time_field": "timestamp"
  },
  "metrics": [
    {
      "type": "primary",
      "operation": "count"
    }
  ]
}'
```

### Xy

#### Console

```console
POST kbn:/api/visualizations
{
  "type": "xy",
  "title": "Log entries over time",
  "layers": [
    {
      "type": "line",
      "data_source": {
        "type": "data_view_spec",
        "index_pattern": "kibana_sample_data_logs",
        "time_field": "timestamp"
      },
      "x": {
        "operation": "date_histogram",
        "field": "timestamp"
      },
      "y": [
        {
          "operation": "count"
        }
      ]
    }
  ]
}
```

#### curl

```curl
curl -X POST "${KIBANA_URL}/api/visualizations" \
  -H "Authorization: ApiKey ${API_KEY}" \
  -H "kbn-xsrf: true" \
  -H "Content-Type: application/json" \
  -d '{
  "type": "xy",
  "title": "Log entries over time",
  "layers": [
    {
      "type": "line",
      "data_source": {
        "type": "data_view_spec",
        "index_pattern": "kibana_sample_data_logs",
        "time_field": "timestamp"
      },
      "x": {
        "operation": "date_histogram",
        "field": "timestamp"
      },
      "y": [
        {
          "operation": "count"
        }
      ]
    }
  ]
}'
```

### Pie

#### Console

```console
POST kbn:/api/visualizations
{
  "type": "pie",
  "title": "Requests by response code",
  "data_source": {
    "type": "data_view_spec",
    "index_pattern": "kibana_sample_data_logs",
    "time_field": "timestamp"
  },
  "metrics": [
    {
      "operation": "count"
    }
  ],
  "group_by": [
    {
      "operation": "terms",
      "fields": [
        "response.keyword"
      ],
      "limit": 5
    }
  ],
  "styling": {
    "donut_hole": "m"
  }
}
```

#### curl

```curl
curl -X POST "${KIBANA_URL}/api/visualizations" \
  -H "Authorization: ApiKey ${API_KEY}" \
  -H "kbn-xsrf: true" \
  -H "Content-Type: application/json" \
  -d '{
  "type": "pie",
  "title": "Requests by response code",
  "data_source": {
    "type": "data_view_spec",
    "index_pattern": "kibana_sample_data_logs",
    "time_field": "timestamp"
  },
  "metrics": [
    {
      "operation": "count"
    }
  ],
  "group_by": [
    {
      "operation": "terms",
      "fields": [
        "response.keyword"
      ],
      "limit": 5
    }
  ],
  "styling": {
    "donut_hole": "m"
  }
}'
```

### Table

#### Console

```console
POST kbn:/api/visualizations
{
  "type": "data_table",
  "title": "Top response codes",
  "data_source": {
    "type": "data_view_spec",
    "index_pattern": "kibana_sample_data_logs",
    "time_field": "timestamp"
  },
  "metrics": [
    {
      "operation": "count"
    }
  ],
  "rows": [
    {
      "operation": "terms",
      "fields": [
        "response.keyword"
      ],
      "limit": 5
    }
  ]
}
```

#### curl

```curl
curl -X POST "${KIBANA_URL}/api/visualizations" \
  -H "Authorization: ApiKey ${API_KEY}" \
  -H "kbn-xsrf: true" \
  -H "Content-Type: application/json" \
  -d '{
  "type": "data_table",
  "title": "Top response codes",
  "data_source": {
    "type": "data_view_spec",
    "index_pattern": "kibana_sample_data_logs",
    "time_field": "timestamp"
  },
  "metrics": [
    {
      "operation": "count"
    }
  ],
  "rows": [
    {
      "operation": "terms",
      "fields": [
        "response.keyword"
      ],
      "limit": 5
    }
  ]
}'
```

### Library

#### Console

```console
POST kbn:/api/visualizations
{
  "type": "metric",
  "title": "Total requests (library data view)",
  "data_source": {
    "type": "data_view_reference",
    "ref_id": "90943e30-9a47-11e8-b64d-95841ca0b247"
  },
  "metrics": [
    {
      "type": "primary",
      "operation": "count"
    }
  ]
}
```

#### curl

```curl
curl -X POST "${KIBANA_URL}/api/visualizations" \
  -H "Authorization: ApiKey ${API_KEY}" \
  -H "kbn-xsrf: true" \
  -H "Content-Type: application/json" \
  -d '{
  "type": "metric",
  "title": "Total requests (library data view)",
  "data_source": {
    "type": "data_view_reference",
    "ref_id": "90943e30-9a47-11e8-b64d-95841ca0b247"
  },
  "metrics": [
    {
      "type": "primary",
      "operation": "count"
    }
  ]
}'
```

## Response examples

#### Create a data table

`application/json`

Response after creating a data table broken down by response code. Note that `rows` items gain a server-populated `rank_by` sort order.

```json
{
  "data": {
    "data_source": {
      "index_pattern": "kibana_sample_data_logs",
      "time_field": "timestamp",
      "type": "data_view_spec"
    },
    "ignore_global_filters": false,
    "metrics": [
      {
        "empty_as_null": false,
        "operation": "count"
      }
    ],
    "rows": [
      {
        "fields": [
          "response.keyword"
        ],
        "limit": 5,
        "operation": "terms",
        "rank_by": {
          "direction": "desc",
          "metric_index": 0,
          "type": "metric"
        }
      }
    ],
    "sampling": 1,
    "tags": [],
    "title": "Top response codes",
    "type": "data_table"
  },
  "id": "83660652-bc77-46a1-8dca-5d512949eba6",
  "meta": {
    "created_at": "2026-04-13T10:15:00.000Z",
    "managed": false,
    "updated_at": "2026-04-13T10:15:00.000Z",
    "version": "Wzc4LDFd"
  }
}
```

#### Create a visualization using a library data view

`application/json`

Response after creating a metric chart that references an existing saved data view by ID (`ref_id`) instead of defining an inline index pattern.

```json
{
  "data": {
    "data_source": {
      "ref_id": "90943e30-9a47-11e8-b64d-95841ca0b247",
      "type": "data_view_reference"
    },
    "ignore_global_filters": false,
    "metrics": [
      {
        "empty_as_null": false,
        "operation": "count",
        "type": "primary"
      }
    ],
    "sampling": 1,
    "styling": {
      "primary": {
        "labels": {
          "alignment": "left"
        },
        "position": "bottom",
        "value": {
          "alignment": "right",
          "sizing": "auto"
        }
      }
    },
    "tags": [],
    "title": "Total requests (library data view)",
    "type": "metric"
  },
  "id": "cc44837a-7f20-42ee-b317-9af4f5eacc9c",
  "meta": {
    "created_at": "2026-04-13T10:20:00.000Z",
    "managed": false,
    "updated_at": "2026-04-13T10:20:00.000Z",
    "version": "Wzc5LDFd"
  }
}
```

#### Create a metric visualization

`application/json`

Response after creating a metric chart (count of requests) using an inline data view. Server-populated defaults are included in the response.

```json
{
  "data": {
    "data_source": {
      "index_pattern": "kibana_sample_data_logs",
      "time_field": "timestamp",
      "type": "data_view_spec"
    },
    "ignore_global_filters": false,
    "metrics": [
      {
        "empty_as_null": false,
        "operation": "count",
        "type": "primary"
      }
    ],
    "sampling": 1,
    "styling": {
      "primary": {
        "labels": {
          "alignment": "left"
        },
        "position": "bottom",
        "value": {
          "alignment": "right",
          "sizing": "auto"
        }
      }
    },
    "tags": [],
    "title": "Total requests",
    "type": "metric"
  },
  "id": "1e4f0a30-b3c5-11ef-bd7a-2b6b1a8c0f3d",
  "meta": {
    "created_at": "2026-04-13T10:00:00.000Z",
    "managed": false,
    "updated_at": "2026-04-13T10:00:00.000Z",
    "version": "WzU5LDFd"
  }
}
```

#### Create a pie/donut chart

`application/json`

Response after creating a donut chart broken down by response code. Note that `group_by` items gain a server-populated `rank_by` sort order, and `legend`, `values`, and `labels` are populated with defaults.

```json
{
  "data": {
    "data_source": {
      "index_pattern": "kibana_sample_data_logs",
      "time_field": "timestamp",
      "type": "data_view_spec"
    },
    "group_by": [
      {
        "fields": [
          "response.keyword"
        ],
        "limit": 5,
        "operation": "terms",
        "rank_by": {
          "direction": "desc",
          "metric_index": 0,
          "type": "metric"
        }
      }
    ],
    "ignore_global_filters": false,
    "legend": {
      "visibility": "auto"
    },
    "metrics": [
      {
        "empty_as_null": false,
        "operation": "count"
      }
    ],
    "sampling": 1,
    "styling": {
      "donut_hole": "m",
      "labels": {
        "position": "outside",
        "visible": true
      },
      "values": {
        "mode": "percentage",
        "visible": true
      }
    },
    "tags": [],
    "title": "Requests by response code",
    "type": "pie"
  },
  "id": "2cac466f-ff49-4d34-8d69-487a93a179c2",
  "meta": {
    "created_at": "2026-04-13T10:10:00.000Z",
    "managed": false,
    "updated_at": "2026-04-13T10:10:00.000Z",
    "version": "Wzc3LDFd"
  }
}
```

#### Create an XY line chart

`application/json`

Response after creating an XY line chart. The response includes server-populated defaults for axis configuration, styling, and legend.

```json
{
  "data": {
    "axis": {
      "x": {
        "domain": {
          "rounding": false,
          "type": "fit"
        },
        "grid": {
          "visible": true
        },
        "labels": {
          "orientation": "horizontal"
        },
        "ticks": {
          "visible": true
        },
        "title": {
          "visible": true
        }
      },
      "y": {
        "domain": {
          "rounding": true,
          "type": "full"
        },
        "grid": {
          "visible": true
        },
        "labels": {
          "orientation": "horizontal"
        },
        "scale": "linear",
        "ticks": {
          "visible": true
        },
        "title": {
          "visible": true
        }
      }
    },
    "layers": [
      {
        "data_source": {
          "index_pattern": "kibana_sample_data_logs",
          "time_field": "timestamp",
          "type": "data_view_spec"
        },
        "ignore_global_filters": false,
        "sampling": 1,
        "type": "line",
        "x": {
          "drop_partial_intervals": false,
          "field": "timestamp",
          "include_empty_rows": true,
          "operation": "date_histogram",
          "suggested_interval": "auto",
          "use_original_time_range": false
        },
        "y": [
          {
            "axis": "y",
            "empty_as_null": false,
            "operation": "count"
          }
        ]
      }
    ],
    "legend": {
      "layout": {
        "truncate": {
          "max_lines": 1
        },
        "type": "grid"
      },
      "placement": "outside",
      "position": "right",
      "visibility": "hidden"
    },
    "styling": {
      "interpolation": "linear",
      "overlays": {
        "current_time_marker": {
          "visible": false
        },
        "partial_buckets": {
          "visible": false
        }
      },
      "points": {
        "visibility": "auto"
      }
    },
    "tags": [],
    "title": "Log entries over time",
    "type": "xy"
  },
  "id": "3a7c2e10-b3c5-11ef-bd7a-2b6b1a8c0f3d",
  "meta": {
    "created_at": "2026-04-13T10:05:00.000Z",
    "managed": false,
    "updated_at": "2026-04-13T10:05:00.000Z",
    "version": "WzYwLDFd"
  }
}
```

