---
type: api
title: Get visualization
description: Returns a single Lens visualization by its ID.
url: https://www.elastic.co/elastic/docs-builder/docs/4493/api/doc/kibana/v0/operation/operation-get-visualization
resource: https://www.elastic.co/elastic/docs-builder/docs/4493/api/doc/kibana/v0/operation/operation-get-visualization
products:
  - Kibana
---

# Get visualization

Availability: Generally available since 9.5

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

## Paths

- `GET` `/api/visualizations/{id}`

#### Path parameters

- `id` (string) — required
  The visualization identifier, as returned by the create or search endpoints.

## Description

Returns a single Lens visualization by its ID.

## Authentication

- Api key: `Authorization: <value>`
  These APIs use key-based authentication. You must create an API key and use the encoded value in the request header. For example: `Authorization: ApiKey base64AccessApiKey`
- Basic: `Authorization: Basic <credentials>`

## Responses

#### `200`

Ok

`application/json`

- `data` (union anyOf)
  - **Metric Chart (library)**
    - `type` (enum)
      Values: `metric`
    - `breakdown_by` (union anyOf)
      - **Date Histogram Operation**
        - `operation` (enum)
          Values: `date_histogram`
        - `collapse_by` (union anyOf)
          Aggregation function used to collapse a breakdown dimension into a single value.
          Values: `avg`, `sum`, `max`, `min`
        - `columns` (number · default: 3)
          Number of columns.
        - `drop_partial_intervals` (boolean · default: false)
          When `true`, drops partial intervals from the results.
        - `field` (string)
          Field to be used for the date histogram.
        - `include_empty_rows` (boolean · default: true)
          When `true`, includes empty rows in the results.
        - `label` (string)
          Label for the operation
        - `suggested_interval` (string · default: auto)
          Suggested time interval.
        - `use_original_time_range` (boolean · default: false)
          When `true`, uses the original time range instead of the current query time range.
      - **Terms Operation**
        - `operation` (enum)
          Values: `terms`
        - `collapse_by` (union anyOf)
          Aggregation function used to collapse a breakdown dimension into a single value.
          Values: `avg`, `sum`, `max`, `min`
        - `columns` (number · default: 3)
          Number of columns.
        - `excludes` (object)
          - `as_regex` (boolean)
            When `true`, treats the values as regular expressions.
          - `values` (union string[] | number[])
            Values to exclude.
        - `fields` (string[] · min items: 1 · max items: 4)
        - `format` (union anyOf)
          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)
              When `true`, uses compact notation (for example, 1.2k instead of 1,200). Defaults to `false`.
            - `decimals` (number · default: 2)
              Number of decimal places to display.
            - `suffix` (string)
              Suffix appended to the formatted value.
            - `type` (enum)
              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)
              Number of decimal places to display.
            - `suffix` (string)
              Suffix appended to the formatted value.
            - `type` (enum)
              Data size unit: `bits` or `bytes`.
              Values: `bits`, `bytes`
          - **Duration Format**
            Duration format between time units.
            - `compact` (boolean)
              When `true`, uses short unit suffixes (for example, `ms` instead of `Milliseconds`). Defaults to `true`. Ignored for `auto-approximate`.
            - `decimals` (number)
              Number of decimal places to display. Defaults to `0`. Ignored for `auto-approximate`.
            - `from` (enum)
              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)
              Suffix appended to the formatted value.
            - `to` (enum)
              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)
              Values: `duration`
          - **Custom Format**
            Custom format using a Kibana field format pattern string.
            - `pattern` (string)
              Kibana field format pattern string.
            - `type` (enum)
              Values: `custom`
        - `includes` (object)
          - `as_regex` (boolean)
            When `true`, treats the values as regular expressions.
          - `values` (union string[] | number[])
            Values to include.
        - `increase_accuracy` (boolean)
          When `true`, increases accuracy at the cost of performance.
        - `label` (string)
          Label for the operation
        - `limit` (number · default: 5)
          Number of terms to return.
        - `other_bucket` (object)
          - `include_documents_without_field` (boolean)
            When `true`, includes documents that do not have the specified field.
        - `rank_by` (union anyOf)
          - **Terms Rank By Alphabetical**
            Terms ranked alphabetically.
            - `direction` (enum)
              Direction
              Values: `asc`, `desc`
            - `type` (enum)
              Values: `alphabetical`
          - **Terms Rank By Rarity**
            Terms ranked by rarity.
            - `max` (number)
              Maximum number of rare terms to include.
            - `type` (enum)
              Values: `rare`
          - **Terms Rank By Significance**
            Terms ranked by significance.
            - `type` (enum)
              Values: `significant`
          - **Terms Rank By Metric**
            Terms ranked by a linked metric.
            - `direction` (enum)
              Direction
              Values: `asc`, `desc`
            - `metric_index` (number · min: 0 · default: 0)
              Zero-based index into the metrics array identifying which metric to rank by.
            - `type` (enum)
              Values: `metric`
          - **Terms Rank By Custom Operation**
            Terms ranked by custom operation.
            - `direction` (enum)
              Direction
              Values: `asc`, `desc`
            - `field` (string)
              Numeric field to be used for the custom operation.
            - `operation` (enum)
              Values: `min`, `max`, `average`, `median`, `standard_deviation`, `unique_count`, `sum`, `last_value`
            - `type` (enum)
              Values: `custom`
          - **Terms Rank By Custom Count Operation**
            Terms ranked by count, either of all documents or of a specific field.
            - `direction` (enum)
              Direction
              Values: `asc`, `desc`
            - `field` (string)
              Numeric field to be used for the custom operation.
            - `operation` (enum)
              Values: `count`
            - `type` (enum)
              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)
              Direction
              Values: `asc`, `desc`
            - `field` (string)
              Numeric field to be used for the custom operation.
            - `operation` (enum)
              Values: `percentile`
            - `percentile` (number · default: 95)
              The percentile threshold (0–100) at which to compute the field value used for ranking terms.
            - `type` (enum)
              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)
              Direction
              Values: `asc`, `desc`
            - `field` (string)
              Numeric field to be used for the custom operation.
            - `operation` (enum)
              Values: `percentile_rank`
            - `rank` (number · default: 0)
              The numeric value for which to compute the percentile rank (the percentage of field values at or below this value).
            - `type` (enum)
              Values: `custom`
      - **Histogram Operation**
        - `operation` (enum)
          Values: `histogram`
        - `collapse_by` (union anyOf)
          Aggregation function used to collapse a breakdown dimension into a single value.
          Values: `avg`, `sum`, `max`, `min`
        - `columns` (number · default: 3)
          Number of columns.
        - `field` (string)
          Field to be used for the histogram.
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `granularity` (union number | enum · default: auto)
          Values: `auto`
        - `include_empty_rows` (boolean · default: true)
          When `true`, includes empty rows in the results.
        - `label` (string)
          Label for the operation
      - **Ranges Operation**
        - `operation` (enum)
          Values: `range`
        - `collapse_by` (union anyOf)
          Aggregation function used to collapse a breakdown dimension into a single value.
          Values: `avg`, `sum`, `max`, `min`
        - `columns` (number · default: 3)
          Number of columns.
        - `field` (string)
          Field to be used for the range.
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `ranges` (object[] · max items: 100)
          - `gt` (number)
            Greater than.
          - `label` (string)
            Label.
          - `lte` (number)
            Less than or equal to.
      - **Filters Operation**
        - `operation` (enum)
          Values: `filters`
        - `collapse_by` (union anyOf)
          Aggregation function used to collapse a breakdown dimension into a single value.
          Values: `avg`, `sum`, `max`, `min`
        - `columns` (number · default: 3)
          Number of columns.
        - `filters` (object[] · max items: 100)
          - `filter` (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`
          - `label` (string)
            Label for the filter
        - `label` (string)
          Label for the operation
    - `data_source` (union oneOf)
      - **Data view reference** (`type: data_view_reference`)
        - `type` (enum)
          Values: `data_view_reference`
        - `ref_id` (string)
          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)
          Values: `data_view_spec`
        - `allow_hidden_indices` (boolean)
          When `true`, allows the data view to match hidden indices.
        - `field_filters` (string[] · max items: 10000)
          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)
        - `index_pattern` (string · min length: 1)
          The index pattern (Elasticsearch index expression) to use as the data source. Example: "my-index-*".
        - `name` (string · min length: 1 · max length: 256)
          The name of the data view. Example: "Sample data view".
        - `time_field` (string)
          The name of the time field in the index. Used for time-based filtering. Example: "@timestamp".
    - `description` (string)
      The description of the chart. Optional. Any string value or undefined.
    - `filters` (union[] · max items: 100)
      Filters applied to the panel
    - `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.
      - **type: primary**
        - `type` (enum)
          Values: `primary`
        - `apply_color_to` (enum)
          Color target: `value` colors the metric text, `background` colors the cell or panel background.
          Values: `value`, `background`
        - `background_chart` (union anyOf)
          Secondary visualization displayed behind the primary metric value, either a bar chart (with optional max value) or a trend line.
          - **type: bar**
            - `type` (enum)
              Values: `bar`
            - `max_value` (union anyOf)
              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)
                  Values: `formula`
                - `filter` (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`
                - `format` (union anyOf)
                  Number display format for the dimension value.
                  Same options as `format` in `Terms Operation`
                - `formula` (string)
                  Formula
                - `label` (string)
                  Label for the operation
                - `reduced_time_range` (string)
                  Reduced time range
                - `time_scale` (enum)
                  Time scale
                  Values: `s`, `m`, `h`, `d`
              - **Static Operation Definition**
                - `operation` (enum)
                  Values: `static_value`
                - `format` (union anyOf)
                  Number display format for the dimension value.
                  Same options as `format` in `Terms Operation`
                - `label` (string)
                  Label for the operation
                - `value` (number · default: 100)
                  Static value
              - **Field Metric Operations**
              - **Differences Operation**
                - `operation` (enum)
                  Values: `differences`
                - `filter` (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`
                - `format` (union anyOf)
                  Number display format for the dimension value.
                  Same options as `format` in `Terms Operation`
                - `label` (string)
                  Label for the operation
                - `of` (union anyOf)
                  - **Count Metric Operation**
                    - `empty_as_null` (boolean · default: false)
                      When `true`, treats empty buckets as null instead of zero.
                    - `field` (string)
                      Field to be used for the metric
                    - `filter` (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`
                    - `format` (union anyOf)
                      Number display format for the dimension value.
                      Same options as `format` in `Terms Operation`
                    - `label` (string)
                      Label for the operation
                    - `operation` (enum)
                      Values: `count`
                    - `reduced_time_range` (string)
                      Reduced time range
                    - `time_scale` (union anyOf)
                      Time scale
                      Values: `s`, `m`, `h`, `d`
                    - `time_shift` (string)
                      Time shift
                  - **Unique Count Metric Operation**
                    - `empty_as_null` (boolean · default: false)
                      When `true`, treats empty buckets as null instead of zero.
                    - `field` (string)
                      Field to be used for the metric
                    - `filter` (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`
                    - `format` (union anyOf)
                      Number display format for the dimension value.
                      Same options as `format` in `Terms Operation`
                    - `label` (string)
                      Label for the operation
                    - `operation` (enum)
                      Values: `unique_count`
                    - `reduced_time_range` (string)
                      Reduced time range
                    - `time_scale` (union anyOf)
                      Time scale
                      Values: `s`, `m`, `h`, `d`
                    - `time_shift` (string)
                      Time shift
                  - **Stats Metric Operation**
                    - `field` (string)
                      Field to be used for the metric
                    - `filter` (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`
                    - `format` (union anyOf)
                      Number display format for the dimension value.
                      Same options as `format` in `Terms Operation`
                    - `label` (string)
                      Label for the operation
                    - `operation` (enum)
                      Values: `min`, `max`, `average`, `median`, `standard_deviation`
                    - `reduced_time_range` (string)
                      Reduced time range
                    - `time_scale` (union anyOf)
                      Time scale
                      Values: `s`, `m`, `h`, `d`
                    - `time_shift` (string)
                      Time shift
                  - **Sum Metric Operation**
                    - `empty_as_null` (boolean · default: false)
                      When `true`, treats empty buckets as null instead of zero.
                    - `field` (string)
                      Field to be used for the metric
                    - `filter` (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`
                    - `format` (union anyOf)
                      Number display format for the dimension value.
                      Same options as `format` in `Terms Operation`
                    - `label` (string)
                      Label for the operation
                    - `operation` (enum)
                      Values: `sum`
                    - `reduced_time_range` (string)
                      Reduced time range
                    - `time_scale` (union anyOf)
                      Time scale
                      Values: `s`, `m`, `h`, `d`
                    - `time_shift` (string)
                      Time shift
                  - **Last Value Operation**
                    - `field` (string)
                      Field to be used for the metric
                    - `filter` (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`
                    - `format` (union anyOf)
                      Number display format for the dimension value.
                      Same options as `format` in `Terms Operation`
                    - `label` (string)
                      Label for the operation
                    - `multi_value` (boolean · default: false)
                      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)
                      Values: `last_value`
                    - `reduced_time_range` (string)
                      Reduced time range
                    - `time_field` (string)
                      Time field used to determine document recency
                    - `time_scale` (union anyOf)
                      Time scale
                      Values: `s`, `m`, `h`, `d`
                    - `time_shift` (string)
                      Time shift
                  - **Percentile Operation**
                    - `field` (string)
                      Field to be used for the metric
                    - `filter` (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`
                    - `format` (union anyOf)
                      Number display format for the dimension value.
                      Same options as `format` in `Terms Operation`
                    - `label` (string)
                      Label for the operation
                    - `operation` (enum)
                      Values: `percentile`
                    - `percentile` (number · default: 95)
                      Percentile
                    - `reduced_time_range` (string)
                      Reduced time range
                    - `time_scale` (union anyOf)
                      Time scale
                      Values: `s`, `m`, `h`, `d`
                    - `time_shift` (string)
                      Time shift
                  - **Percentile Ranks Operation**
                    - `field` (string)
                      Field to be used for the metric
                    - `filter` (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`
                    - `format` (union anyOf)
                      Number display format for the dimension value.
                      Same options as `format` in `Terms Operation`
                    - `label` (string)
                      Label for the operation
                    - `operation` (enum)
                      Values: `percentile_rank`
                    - `rank` (number · default: 0)
                      Percentile Rank
                    - `reduced_time_range` (string)
                      Reduced time range
                    - `time_scale` (union anyOf)
                      Time scale
                      Values: `s`, `m`, `h`, `d`
                    - `time_shift` (string)
                      Time shift
                - `reduced_time_range` (string)
                  Reduced time range
                - `time_scale` (union anyOf)
                  Time scale
                  Values: `s`, `m`, `h`, `d`
                - `time_shift` (string)
                  Time shift
              - **Moving Average Operation**
                - `operation` (enum)
                  Values: `moving_average`
                - `filter` (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`
                - `format` (union anyOf)
                  Number display format for the dimension value.
                  Same options as `format` in `Terms Operation`
                - `label` (string)
                  Label for the operation
                - `of` (union anyOf)
                  Same options as `of` in `Differences Operation`
                - `reduced_time_range` (string)
                  Reduced time range
                - `time_scale` (union anyOf)
                  Time scale
                  Values: `s`, `m`, `h`, `d`
                - `time_shift` (string)
                  Time shift
                - `window` (number · default: 5)
                  Window
              - **Cumulative Sum Operation**
                - `operation` (enum)
                  Values: `cumulative_sum`
                - `field` (string)
                  Field to cumulatively sum. When omitted, cumulative sum is applied to the count of records.
                - `filter` (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`
                - `format` (union anyOf)
                  Number display format for the dimension value.
                  Same options as `format` in `Terms Operation`
                - `label` (string)
                  Label for the operation
                - `reduced_time_range` (string)
                  Reduced time range
                - `time_scale` (union anyOf)
                  Time scale
                  Values: `s`, `m`, `h`, `d`
                - `time_shift` (string)
                  Time shift
              - **Counter Rate Operation**
                - `operation` (enum)
                  Values: `counter_rate`
                - `field` (string)
                  Field to be used for the metric
                - `filter` (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`
                - `format` (union anyOf)
                  Number display format for the dimension value.
                  Same options as `format` in `Terms Operation`
                - `label` (string)
                  Label for the operation
                - `reduced_time_range` (string)
                  Reduced time range
                - `time_scale` (union anyOf)
                  Time scale
                  Values: `s`, `m`, `h`, `d`
                - `time_shift` (string)
                  Time shift
              - **Count Metric Operation**
                - `operation` (enum)
                  Values: `count`
                - `empty_as_null` (boolean · default: false)
                  When `true`, treats empty buckets as null instead of zero.
                - `field` (string)
                  Field to be used for the metric
                - `filter` (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`
                - `format` (union anyOf)
                  Number display format for the dimension value.
                  Same options as `format` in `Terms Operation`
                - `label` (string)
                  Label for the operation
                - `reduced_time_range` (string)
                  Reduced time range
                - `time_scale` (union anyOf)
                  Time scale
                  Values: `s`, `m`, `h`, `d`
                - `time_shift` (string)
                  Time shift
              - **Unique Count Metric Operation**
                - `operation` (enum)
                  Values: `unique_count`
                - `empty_as_null` (boolean · default: false)
                  When `true`, treats empty buckets as null instead of zero.
                - `field` (string)
                  Field to be used for the metric
                - `filter` (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`
                - `format` (union anyOf)
                  Number display format for the dimension value.
                  Same options as `format` in `Terms Operation`
                - `label` (string)
                  Label for the operation
                - `reduced_time_range` (string)
                  Reduced time range
                - `time_scale` (union anyOf)
                  Time scale
                  Values: `s`, `m`, `h`, `d`
                - `time_shift` (string)
                  Time shift
              - **Last Value Operation**
                - `operation` (enum)
                  Values: `last_value`
                - `field` (string)
                  Field to be used for the metric
                - `filter` (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`
                - `format` (union anyOf)
                  Number display format for the dimension value.
                  Same options as `format` in `Terms Operation`
                - `label` (string)
                  Label for the operation
                - `multi_value` (boolean · default: false)
                  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)
                  Reduced time range
                - `time_field` (string)
                  Time field used to determine document recency
                - `time_scale` (union anyOf)
                  Time scale
                  Values: `s`, `m`, `h`, `d`
                - `time_shift` (string)
                  Time shift
              - **Percentile Operation**
                - `operation` (enum)
                  Values: `percentile`
                - `field` (string)
                  Field to be used for the metric
                - `filter` (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`
                - `format` (union anyOf)
                  Number display format for the dimension value.
                  Same options as `format` in `Terms Operation`
                - `label` (string)
                  Label for the operation
                - `percentile` (number · default: 95)
                  Percentile
                - `reduced_time_range` (string)
                  Reduced time range
                - `time_scale` (union anyOf)
                  Time scale
                  Values: `s`, `m`, `h`, `d`
                - `time_shift` (string)
                  Time shift
              - **Percentile Ranks Operation**
                - `operation` (enum)
                  Values: `percentile_rank`
                - `field` (string)
                  Field to be used for the metric
                - `filter` (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`
                - `format` (union anyOf)
                  Number display format for the dimension value.
                  Same options as `format` in `Terms Operation`
                - `label` (string)
                  Label for the operation
                - `rank` (number · default: 0)
                  Percentile Rank
                - `reduced_time_range` (string)
                  Reduced time range
                - `time_scale` (union anyOf)
                  Time scale
                  Values: `s`, `m`, `h`, `d`
                - `time_shift` (string)
                  Time shift
            - `orientation` (enum)
              Orientation
              Values: `horizontal`, `vertical`
          - **type: trend**
            - `type` (enum)
              Values: `trend`
        - `color` (union anyOf · default: {
  "type": "auto"
})
          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.
          - **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`
        - `subtitle` (string)
          Subtitle below the primary metric value.
      - **type: secondary**
        - `type` (enum)
          Values: `secondary`
        - `color` (union anyOf · default: {
  "type": "none"
})
          - **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.
          - **No Color**
            Explicitly disables coloring
            - `type` (enum)
              Values: `none`
        - `compare` (union anyOf)
          Compare the secondary metric to a baseline value or to the primary metric.
          - **Compare To Baseline**
            - `to` (enum)
              Values: `baseline`
            - `baseline` (number · default: 0)
              Baseline value.
            - `icon` (boolean · default: true)
              When `true`, displays the icon for the secondary value.
            - `palette` (string · default: compare_to)
              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)
              When `true`, displays the secondary value.
          - **Compare To Primary**
            - `to` (enum)
              Values: `primary`
            - `icon` (boolean · default: true)
              When `true`, displays the icon for the secondary value.
            - `palette` (string · default: compare_to)
              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)
              When `true`, displays the secondary value.
    - `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
      - `density` (enum · default: default)
        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)
        Icon configuration for the metric chart
        - `alignment` (enum · default: right)
          Icon alignment. Accepted values: `left`, `right`. Defaults to `right`.
          Values: `left`, `right`
        - `name` (enum)
          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)
        - `labels` (object)
          Labels (title and subtitle) configuration
          - `alignment` (enum · default: left)
            Horizontal alignment for the title and subtitle text. Accepted values: `left`, `center`, `right`. Defaults to `left`.
            Values: `left`, `center`, `right`
        - `position` (enum · default: bottom)
          Position of the primary metric value (top, middle, or bottom).
          Values: `top`, `middle`, `bottom`
        - `value` (object)
          Primary metric value configuration
          - `alignment` (enum · default: right)
            Alignment for the primary metric value. Accepted values: `left`, `center`, `right`. Defaults to `right`.
            Values: `left`, `center`, `right`
          - `sizing` (enum · default: auto)
            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)
        - `label` (object)
          - `placement` (enum · default: before)
            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)
            When `true`, displays the secondary metric name as its label.
        - `value` (object)
          Secondary metric value configuration
          - `alignment` (enum · default: right)
            Alignment for secondary values. Accepted values: `left`, `center`, `right`. Defaults to `right`.
            Values: `left`, `center`, `right`
    - `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)
      - **Data view reference** (`type: data_view_reference`)
        - `type` (enum)
          Values: `data_view_reference`
        - `ref_id` (string)
          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)
          Values: `data_view_spec`
        - `allow_hidden_indices` (boolean)
          When `true`, allows the data view to match hidden indices.
        - `field_filters` (string[] · max items: 10000)
          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)
        - `index_pattern` (string · min length: 1)
          The index pattern (Elasticsearch index expression) to use as the data source. Example: "my-index-*".
        - `name` (string · min length: 1 · max length: 256)
          The name of the data view. Example: "Sample data view".
        - `time_field` (string)
          The name of the time field in the index. Used for time-based filtering. Example: "@timestamp".
    - `description` (string)
      The description of the chart. Optional. Any string value or undefined.
    - `filters` (union[] · max items: 100)
      Filters applied to the panel
    - `ignore_global_filters` (boolean · default: false)
      When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
    - `metric` (union anyOf)
      - **Count Metric Operation**
        - `apply_color_to` (enum)
          Color target: `value` colors the metric text, `background` colors the cell or panel background.
          Values: `value`, `background`
        - `color` (union anyOf · default: {
  "type": "auto"
})
          Color configuration based on the metric value.
          - **Color By Value (Absolute)**
            Color by absolute value configuration
            - `type` (enum)
              Values: `dynamic`
            - `range` (enum)
              Values: `absolute`
            - `steps` (object[] · min items: 1 · max items: 100)
              Array of ordered color steps defining the range each color is applied.
              - `color` (string)
                The color to use for this step.
              - `gte` (number) — nullable
                The lower bound of range from which this color applies (inclusive).
              - `lt` (number) — nullable
                The upper bound of range to which this color applies (exclusive).
              - `lte` (number) — 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)
              Values: `distributed_palette`
            - `palette` (enum)
              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)
              Values: `legacy_dynamic`
            - `palette` (string)
              The legacy palette name.
            - `range` (enum)
              Values: `absolute`
            - `shift` (boolean)
              When `true`, shifts the palette colors so they start from a different offset. Defaults to `false`.
            - `steps` (object[] · min items: 1 · max items: 100)
              Array of ordered color steps defining the range each color is applied.
              - `color` (string)
                The color to use for this step.
              - `gte` (number) — nullable
                The lower bound of range from which this color applies (inclusive).
              - `lt` (number) — nullable
                The upper bound of range to which this color applies (exclusive).
              - `lte` (number) — nullable
                The upper bound of range to which this color applies (inclusive).
          - **Auto Color**
            Coloring determined at runtime based on chart defaults
            - `type` (enum)
              Values: `auto`
        - `labels` (object)
          Labels configuration
          - `alignment` (enum · default: top)
            Label alignment
            Values: `top`, `bottom`
        - `size` (enum · default: m)
          Font size for the label and value
          Values: `xs`, `s`, `m`, `l`, `xl`, `xxl`
        - `values` (object)
          Values configuration
          - `alignment` (enum · default: left)
            Value alignment
            Values: `left`, `center`, `right`
        - `empty_as_null` (boolean · default: false)
          When `true`, treats empty buckets as null instead of zero.
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `count`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Unique Count Metric Operation**
        - `apply_color_to` (enum)
          Color target: `value` colors the metric text, `background` colors the cell or panel background.
          Values: `value`, `background`
        - `color` (union anyOf · default: {
  "type": "auto"
})
          Color configuration based on the metric value.
          Same options as `color` in `Count Metric Operation`
        - `labels` (object)
          Labels configuration
          - `alignment` (enum · default: top)
            Label alignment
            Values: `top`, `bottom`
        - `size` (enum · default: m)
          Font size for the label and value
          Values: `xs`, `s`, `m`, `l`, `xl`, `xxl`
        - `values` (object)
          Values configuration
          - `alignment` (enum · default: left)
            Value alignment
            Values: `left`, `center`, `right`
        - `empty_as_null` (boolean · default: false)
          When `true`, treats empty buckets as null instead of zero.
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `unique_count`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Stats Metric Operation**
        - `apply_color_to` (enum)
          Color target: `value` colors the metric text, `background` colors the cell or panel background.
          Values: `value`, `background`
        - `color` (union anyOf · default: {
  "type": "auto"
})
          Color configuration based on the metric value.
          Same options as `color` in `Count Metric Operation`
        - `labels` (object)
          Labels configuration
          - `alignment` (enum · default: top)
            Label alignment
            Values: `top`, `bottom`
        - `size` (enum · default: m)
          Font size for the label and value
          Values: `xs`, `s`, `m`, `l`, `xl`, `xxl`
        - `values` (object)
          Values configuration
          - `alignment` (enum · default: left)
            Value alignment
            Values: `left`, `center`, `right`
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `min`, `max`, `average`, `median`, `standard_deviation`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Sum Metric Operation**
        - `apply_color_to` (enum)
          Color target: `value` colors the metric text, `background` colors the cell or panel background.
          Values: `value`, `background`
        - `color` (union anyOf · default: {
  "type": "auto"
})
          Color configuration based on the metric value.
          Same options as `color` in `Count Metric Operation`
        - `labels` (object)
          Labels configuration
          - `alignment` (enum · default: top)
            Label alignment
            Values: `top`, `bottom`
        - `size` (enum · default: m)
          Font size for the label and value
          Values: `xs`, `s`, `m`, `l`, `xl`, `xxl`
        - `values` (object)
          Values configuration
          - `alignment` (enum · default: left)
            Value alignment
            Values: `left`, `center`, `right`
        - `empty_as_null` (boolean · default: false)
          When `true`, treats empty buckets as null instead of zero.
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `sum`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Last Value Operation**
        - `apply_color_to` (enum)
          Color target: `value` colors the metric text, `background` colors the cell or panel background.
          Values: `value`, `background`
        - `color` (union anyOf · default: {
  "type": "auto"
})
          Color configuration based on the metric value.
          Same options as `color` in `Count Metric Operation`
        - `labels` (object)
          Labels configuration
          - `alignment` (enum · default: top)
            Label alignment
            Values: `top`, `bottom`
        - `size` (enum · default: m)
          Font size for the label and value
          Values: `xs`, `s`, `m`, `l`, `xl`, `xxl`
        - `values` (object)
          Values configuration
          - `alignment` (enum · default: left)
            Value alignment
            Values: `left`, `center`, `right`
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `multi_value` (boolean · default: false)
          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)
          Values: `last_value`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_field` (string)
          Time field used to determine document recency
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Percentile Operation**
        - `apply_color_to` (enum)
          Color target: `value` colors the metric text, `background` colors the cell or panel background.
          Values: `value`, `background`
        - `color` (union anyOf · default: {
  "type": "auto"
})
          Color configuration based on the metric value.
          Same options as `color` in `Count Metric Operation`
        - `labels` (object)
          Labels configuration
          - `alignment` (enum · default: top)
            Label alignment
            Values: `top`, `bottom`
        - `size` (enum · default: m)
          Font size for the label and value
          Values: `xs`, `s`, `m`, `l`, `xl`, `xxl`
        - `values` (object)
          Values configuration
          - `alignment` (enum · default: left)
            Value alignment
            Values: `left`, `center`, `right`
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `percentile`
        - `percentile` (number · default: 95)
          Percentile
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Percentile Ranks Operation**
        - `apply_color_to` (enum)
          Color target: `value` colors the metric text, `background` colors the cell or panel background.
          Values: `value`, `background`
        - `color` (union anyOf · default: {
  "type": "auto"
})
          Color configuration based on the metric value.
          Same options as `color` in `Count Metric Operation`
        - `labels` (object)
          Labels configuration
          - `alignment` (enum · default: top)
            Label alignment
            Values: `top`, `bottom`
        - `size` (enum · default: m)
          Font size for the label and value
          Values: `xs`, `s`, `m`, `l`, `xl`, `xxl`
        - `values` (object)
          Values configuration
          - `alignment` (enum · default: left)
            Value alignment
            Values: `left`, `center`, `right`
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `percentile_rank`
        - `rank` (number · default: 0)
          Percentile Rank
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Formula Operation**
        - `apply_color_to` (enum)
          Color target: `value` colors the metric text, `background` colors the cell or panel background.
          Values: `value`, `background`
        - `color` (union anyOf · default: {
  "type": "auto"
})
          Color configuration based on the metric value.
          Same options as `color` in `Count Metric Operation`
        - `labels` (object)
          Labels configuration
          - `alignment` (enum · default: top)
            Label alignment
            Values: `top`, `bottom`
        - `size` (enum · default: m)
          Font size for the label and value
          Values: `xs`, `s`, `m`, `l`, `xl`, `xxl`
        - `values` (object)
          Values configuration
          - `alignment` (enum · default: left)
            Value alignment
            Values: `left`, `center`, `right`
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `formula` (string)
          Formula
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `formula`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (enum)
          Time scale
          Values: `s`, `m`, `h`, `d`
    - `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.
      - `x` (object)
        X-axis configuration
        - `domain` (union anyOf)
          X-axis domain configuration
          - **type: fit**
            Uses tight domain bounds from the observed data minimum to maximum, without baseline expansion.
            - `type` (enum)
              Values: `fit`
            - `rounding` (boolean · default: true)
              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)
              Values: `custom`
            - `max` (number)
              Max domain value
            - `min` (number)
              Min domain value
            - `rounding` (boolean · default: true)
              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)
          Axis grid lines configuration
          - `visible` (boolean)
            Show grid lines for this axis
        - `labels` (object)
          Label configuration
          - `orientation` (enum)
            Orientation
            Values: `horizontal`, `vertical`, `angled`
        - `scale` (enum)
          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)
          Axis tick marks configuration
          - `visible` (boolean)
            Show tick marks on the axis
        - `title` (object)
          Axis title configuration
          - `text` (string)
            Axis title text.
          - `visible` (boolean)
            When `true`, displays the title.
      - `y` (object)
        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"
})
          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)
              Values: `full`
            - `rounding` (boolean · default: true)
              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)
              Values: `fit`
            - `rounding` (boolean · default: true)
              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)
              Values: `custom`
            - `max` (number)
              Max domain value
            - `min` (number)
              Min domain value
            - `rounding` (boolean · default: true)
              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)
          Axis grid lines configuration
          - `visible` (boolean)
            Show grid lines for this axis
        - `labels` (object)
          Label configuration
          - `orientation` (enum)
            Orientation
            Values: `horizontal`, `vertical`, `angled`
        - `scale` (enum)
          Y-axis scale type for data transformation
          Values: `linear`, `log`, `sqrt`
        - `ticks` (object)
          Axis tick marks configuration
          - `visible` (boolean)
            Show tick marks on the axis
        - `title` (object)
          Axis title configuration
          - `text` (string)
            Axis title text.
          - `visible` (boolean)
            When `true`, displays the title.
      - `y2` (object)
        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"
})
          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)
              Values: `full`
            - `rounding` (boolean · default: true)
              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)
              Values: `fit`
            - `rounding` (boolean · default: true)
              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)
              Values: `custom`
            - `max` (number)
              Max domain value
            - `min` (number)
              Min domain value
            - `rounding` (boolean · default: true)
              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)
          Axis grid lines configuration
          - `visible` (boolean)
            Show grid lines for this axis
        - `labels` (object)
          Label configuration
          - `orientation` (enum)
            Orientation
            Values: `horizontal`, `vertical`, `angled`
        - `scale` (enum)
          Y-axis scale type for data transformation
          Values: `linear`, `log`, `sqrt`
        - `ticks` (object)
          Axis tick marks configuration
          - `visible` (boolean)
            Show tick marks on the axis
        - `title` (object)
          Axis title configuration
          - `text` (string)
            Axis title text.
          - `visible` (boolean)
            When `true`, displays the title.
    - `description` (string)
      The description of the chart. Optional. Any string value or undefined.
    - `filters` (union[] · max items: 100)
      Filters applied to the panel
    - `layers` (union anyOf[] · min items: 1 · max items: 100)
      Chart layers
      - **Layer (DSL)**
        Data layer for standard queries with metrics and buckets
        - `breakdown_by` (union anyOf)
          - **Date Histogram Operation**
            - `operation` (enum)
              Values: `date_histogram`
            - `aggregate_first` (boolean)
              When `true`, aggregates data before splitting into series. Defaults to `false`.
            - `collapse_by` (union anyOf)
              Aggregation function used to collapse a breakdown dimension into a single value.
              Values: `avg`, `sum`, `max`, `min`
            - `color` (union anyOf · default: {
  "mapping": [],
  "mode": "categorical",
  "palette": "default"
})
              Color mapping for dimension values, either categorical (for specific values) or as a gradient.
              - **Categorical Color Mapping**
                Palette color assignment for specific categorical values. Unmapped values receive the unassigned color.
                - `mode` (enum)
                  Values: `categorical`
                - `mapping` (object[] · max items: 1000)
                  - `color` (union anyOf)
                    - **Color From Palette**
                      Color at a fixed index position in a named palette.
                      - `type` (enum)
                        Values: `from_palette`
                      - `index` (number)
                        The index of the color in the palette.
                      - `palette` (string)
                        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)
                        Values: `color_code`
                      - `value` (string)
                        The static color value to use.
                  - `values` (union anyOf[] · max items: 1000)
                    - **string**
                    - **number**
                    - **Range Key**
                      - `type` (enum)
                        Values: `range_key`
                      - `from` (number | string)
                      - `ranges` (object[] · max items: 100)
                        - `from` (number | string)
                        - `label` (string)
                        - `to` (number | string)
                      - `to` (number | string)
                    - **Multi Field Key**
                      - `type` (enum)
                        Values: `multi_field_key`
                      - `keys` (string[] · max items: 100)
                - `palette` (string)
                  Color palette name. Accepted values: 'default', 'elastic_line_optimized', 'severity', 'eui_amsterdam', 'kibana_v7_legacy', 'elastic_brand_2023'. Defaults to `default`.
                - `unassigned` (union anyOf)
                  The color to use for unassigned values.
                  - **Color From Palette**
                    Color at a fixed index position in a named palette.
                    - `type` (enum)
                      Values: `from_palette`
                    - `index` (number)
                      The index of the color in the palette.
                    - `palette` (string)
                      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)
                      Values: `color_code`
                    - `value` (string)
                      The static color value to use.
              - **Gradient Color Mapping**
                Gradient color mapping across categorical values.
                - `mode` (enum)
                  Values: `gradient`
                - `gradient` (union anyOf[] · max items: 3)
                  - **Color From Palette**
                    Color at a fixed index position in a named palette.
                    - `type` (enum)
                      Values: `from_palette`
                    - `index` (number)
                      The index of the color in the palette.
                    - `palette` (string)
                      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)
                      Values: `color_code`
                    - `value` (string)
                      The static color value to use.
                - `mapping` (object[] · max items: 100)
                  - `values` (union anyOf[] · max items: 100)
                    - **string**
                    - **number**
                    - **Range Key**
                      - `type` (enum)
                        Values: `range_key`
                      - `from` (number | string)
                      - `ranges` (object[] · max items: 100)
                        - `from` (number | string)
                        - `label` (string)
                        - `to` (number | string)
                      - `to` (number | string)
                    - **Multi Field Key**
                      - `type` (enum)
                        Values: `multi_field_key`
                      - `keys` (string[] · max items: 100)
                - `palette` (string)
                  Color palette name. Accepted values: 'default', 'elastic_line_optimized', 'severity', 'eui_amsterdam', 'kibana_v7_legacy', 'elastic_brand_2023'. Defaults to `default`.
                - `sort` (enum)
                  Sort direction
                  Values: `asc`, `desc`
                - `unassigned` (union anyOf)
                  The color to use for unassigned values.
                  - **Color From Palette**
                    Color at a fixed index position in a named palette.
                    - `type` (enum)
                      Values: `from_palette`
                    - `index` (number)
                      The index of the color in the palette.
                    - `palette` (string)
                      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)
                      Values: `color_code`
                    - `value` (string)
                      The static color value to use.
            - `drop_partial_intervals` (boolean · default: false)
              When `true`, drops partial intervals from the results.
            - `field` (string)
              Field to be used for the date histogram.
            - `include_empty_rows` (boolean · default: true)
              When `true`, includes empty rows in the results.
            - `label` (string)
              Label for the operation
            - `suggested_interval` (string · default: auto)
              Suggested time interval.
            - `use_original_time_range` (boolean · default: false)
              When `true`, uses the original time range instead of the current query time range.
          - **Terms Operation**
            - `operation` (enum)
              Values: `terms`
            - `aggregate_first` (boolean)
              When `true`, aggregates data before splitting into series. Defaults to `false`.
            - `collapse_by` (union anyOf)
              Aggregation function used to collapse a breakdown dimension into a single value.
              Values: `avg`, `sum`, `max`, `min`
            - `color` (union anyOf · default: {
  "mapping": [],
  "mode": "categorical",
  "palette": "default"
})
              Color mapping for dimension values, either categorical (for specific values) or as a gradient.
              Same options as `color` in `Date Histogram Operation`
            - `excludes` (object)
              - `as_regex` (boolean)
                When `true`, treats the values as regular expressions.
              - `values` (union string[] | number[])
                Values to exclude.
            - `fields` (string[] · min items: 1 · max items: 4)
            - `format` (union anyOf)
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `includes` (object)
              - `as_regex` (boolean)
                When `true`, treats the values as regular expressions.
              - `values` (union string[] | number[])
                Values to include.
            - `increase_accuracy` (boolean)
              When `true`, increases accuracy at the cost of performance.
            - `label` (string)
              Label for the operation
            - `limit` (number · default: 5)
              Number of terms to return.
            - `other_bucket` (object)
              - `include_documents_without_field` (boolean)
                When `true`, includes documents that do not have the specified field.
            - `rank_by` (union anyOf)
              Same options as `rank_by` in `Terms Operation`
          - **Histogram Operation**
            - `operation` (enum)
              Values: `histogram`
            - `aggregate_first` (boolean)
              When `true`, aggregates data before splitting into series. Defaults to `false`.
            - `collapse_by` (union anyOf)
              Aggregation function used to collapse a breakdown dimension into a single value.
              Values: `avg`, `sum`, `max`, `min`
            - `color` (union anyOf · default: {
  "mapping": [],
  "mode": "categorical",
  "palette": "default"
})
              Color mapping for dimension values, either categorical (for specific values) or as a gradient.
              Same options as `color` in `Date Histogram Operation`
            - `field` (string)
              Field to be used for the histogram.
            - `format` (union anyOf)
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `granularity` (union number | enum · default: auto)
              Values: `auto`
            - `include_empty_rows` (boolean · default: true)
              When `true`, includes empty rows in the results.
            - `label` (string)
              Label for the operation
          - **Ranges Operation**
            - `operation` (enum)
              Values: `range`
            - `aggregate_first` (boolean)
              When `true`, aggregates data before splitting into series. Defaults to `false`.
            - `collapse_by` (union anyOf)
              Aggregation function used to collapse a breakdown dimension into a single value.
              Values: `avg`, `sum`, `max`, `min`
            - `color` (union anyOf · default: {
  "mapping": [],
  "mode": "categorical",
  "palette": "default"
})
              Color mapping for dimension values, either categorical (for specific values) or as a gradient.
              Same options as `color` in `Date Histogram Operation`
            - `field` (string)
              Field to be used for the range.
            - `format` (union anyOf)
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string)
              Label for the operation
            - `ranges` (object[] · max items: 100)
              - `gt` (number)
                Greater than.
              - `label` (string)
                Label.
              - `lte` (number)
                Less than or equal to.
          - **Filters Operation**
            - `operation` (enum)
              Values: `filters`
            - `aggregate_first` (boolean)
              When `true`, aggregates data before splitting into series. Defaults to `false`.
            - `collapse_by` (union anyOf)
              Aggregation function used to collapse a breakdown dimension into a single value.
              Values: `avg`, `sum`, `max`, `min`
            - `color` (union anyOf · default: {
  "mapping": [],
  "mode": "categorical",
  "palette": "default"
})
              Color mapping for dimension values, either categorical (for specific values) or as a gradient.
              Same options as `color` in `Date Histogram Operation`
            - `filters` (object[] · max items: 100)
              - `filter` (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`
              - `label` (string)
                Label for the filter
            - `label` (string)
              Label for the operation
        - `data_source` (union oneOf)
          - **Data view reference** (`type: data_view_reference`)
            - `type` (enum)
              Values: `data_view_reference`
            - `ref_id` (string)
              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)
              Values: `data_view_spec`
            - `allow_hidden_indices` (boolean)
              When `true`, allows the data view to match hidden indices.
            - `field_filters` (string[] · max items: 10000)
              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)
            - `index_pattern` (string · min length: 1)
              The index pattern (Elasticsearch index expression) to use as the data source. Example: "my-index-*".
            - `name` (string · min length: 1 · max length: 256)
              The name of the data view. Example: "Sample data view".
            - `time_field` (string)
              The name of the time field in the index. Used for time-based filtering. Example: "@timestamp".
        - `ignore_global_filters` (boolean · default: false)
          When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
        - `sampling` (number · min: 0 · max: 1 · default: 1)
          Sampling factor between 0 (no sampling) and 1 (full sampling).
        - `type` (enum)
          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)
          - **Date Histogram Operation**
            - `operation` (enum)
              Values: `date_histogram`
            - `drop_partial_intervals` (boolean · default: false)
              When `true`, drops partial intervals from the results.
            - `field` (string)
              Field to be used for the date histogram.
            - `include_empty_rows` (boolean · default: true)
              When `true`, includes empty rows in the results.
            - `label` (string)
              Label for the operation
            - `suggested_interval` (string · default: auto)
              Suggested time interval.
            - `use_original_time_range` (boolean · default: false)
              When `true`, uses the original time range instead of the current query time range.
          - **Terms Operation**
            - `operation` (enum)
              Values: `terms`
            - `excludes` (object)
              - `as_regex` (boolean)
                When `true`, treats the values as regular expressions.
              - `values` (union string[] | number[])
                Values to exclude.
            - `fields` (string[] · min items: 1 · max items: 4)
            - `format` (union anyOf)
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `includes` (object)
              - `as_regex` (boolean)
                When `true`, treats the values as regular expressions.
              - `values` (union string[] | number[])
                Values to include.
            - `increase_accuracy` (boolean)
              When `true`, increases accuracy at the cost of performance.
            - `label` (string)
              Label for the operation
            - `limit` (number · default: 5)
              Number of terms to return.
            - `other_bucket` (object)
              - `include_documents_without_field` (boolean)
                When `true`, includes documents that do not have the specified field.
            - `rank_by` (union anyOf)
              Same options as `rank_by` in `Terms Operation`
          - **Histogram Operation**
            - `operation` (enum)
              Values: `histogram`
            - `field` (string)
              Field to be used for the histogram.
            - `format` (union anyOf)
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `granularity` (union number | enum · default: auto)
              Values: `auto`
            - `include_empty_rows` (boolean · default: true)
              When `true`, includes empty rows in the results.
            - `label` (string)
              Label for the operation
          - **Ranges Operation**
            - `operation` (enum)
              Values: `range`
            - `field` (string)
              Field to be used for the range.
            - `format` (union anyOf)
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string)
              Label for the operation
            - `ranges` (object[] · max items: 100)
              - `gt` (number)
                Greater than.
              - `label` (string)
                Label.
              - `lte` (number)
                Less than or equal to.
          - **Filters Operation**
            - `operation` (enum)
              Values: `filters`
            - `filters` (object[] · max items: 100)
              - `filter` (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`
              - `label` (string)
                Label for the filter
            - `label` (string)
              Label for the operation
        - `y` (union anyOf[] · max items: 100)
          Array of metrics to display on Y-axis
          - `axis` (enum · default: y)
            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"
})
            - **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`
      - **Reference Line Layer (DSL)**
        Reference line layer for standard queries
        - `data_source` (union oneOf)
          - **Data view reference** (`type: data_view_reference`)
            - `type` (enum)
              Values: `data_view_reference`
            - `ref_id` (string)
              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)
              Values: `data_view_spec`
            - `allow_hidden_indices` (boolean)
              When `true`, allows the data view to match hidden indices.
            - `field_filters` (string[] · max items: 10000)
              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)
            - `index_pattern` (string · min length: 1)
              The index pattern (Elasticsearch index expression) to use as the data source. Example: "my-index-*".
            - `name` (string · min length: 1 · max length: 256)
              The name of the data view. Example: "Sample data view".
            - `time_field` (string)
              The name of the time field in the index. Used for time-based filtering. Example: "@timestamp".
        - `ignore_global_filters` (boolean · default: false)
          When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
        - `sampling` (number · min: 0 · max: 1 · default: 1)
          Sampling factor between 0 (no sampling) and 1 (full sampling).
        - `thresholds` (union anyOf[] · min items: 1 · max items: 100)
          Array of reference line thresholds
          - `axis` (enum · default: y)
            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"
})
            - **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`
          - `fill` (enum)
            Fill direction for reference line
            Values: `above`, `below`
          - `icon` (enum)
            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)
            Position of the icon and label relative to the reference line
            Values: `auto`, `left`, `right`
          - `stroke_dash` (enum)
            Line style
            Values: `solid`, `dashed`, `dotted`
          - `stroke_width` (number · min: 1 · max: 10)
            Line width in pixels
          - `text` (object)
            Reference line text label configuration
            - `visible` (boolean)
              Show text label on the reference line
        - `type` (enum)
          Values: `reference_lines`
      - **Annotation Layer (DSL)**
        Layer containing annotations (query-based, points, and ranges)
        - `data_source` (union oneOf)
          - **Data view reference** (`type: data_view_reference`)
            - `type` (enum)
              Values: `data_view_reference`
            - `ref_id` (string)
              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)
              Values: `data_view_spec`
            - `allow_hidden_indices` (boolean)
              When `true`, allows the data view to match hidden indices.
            - `field_filters` (string[] · max items: 10000)
              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)
            - `index_pattern` (string · min length: 1)
              The index pattern (Elasticsearch index expression) to use as the data source. Example: "my-index-*".
            - `name` (string · min length: 1 · max length: 256)
              The name of the data view. Example: "Sample data view".
            - `time_field` (string)
              The name of the time field in the index. Used for time-based filtering. Example: "@timestamp".
        - `events` (union anyOf[] · min items: 1 · max items: 100)
          Array of annotation configurations
          - **type: query**
            Annotation from query results matching a filter
            - `type` (enum)
              Values: `query`
            - `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`
            - `extra_fields` (string[] · max items: 100)
              Additional fields for annotation tooltip
            - `icon` (enum)
              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)
              Label text for the annotation
            - `line` (object)
              Vertical line configuration for point annotation
              - `stroke_dash` (enum)
                Vertical line style
                Values: `solid`, `dashed`, `dotted`
              - `stroke_width` (number · min: 1 · max: 10)
                Vertical line width in pixels
            - `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`
            - `text` (object)
              Annotation text label configuration
              - `field` (string)
                Field name for text label source
              - `visible` (boolean)
                Show text label on the annotation
            - `time_field` (string)
              Field containing the timestamp
            - `visible` (boolean)
              Show the annotation
          - **type: point**
            Manual point annotation at specific timestamp
            - `type` (enum)
              Values: `point`
            - `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`
            - `icon` (enum)
              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)
              Label text for the annotation
            - `line` (object)
              Vertical line configuration for point annotation
              - `stroke_dash` (enum)
                Vertical line style
                Values: `solid`, `dashed`, `dotted`
              - `stroke_width` (number · min: 1 · max: 10)
                Vertical line width in pixels
            - `text` (object)
              Annotation text label visibility
              - `visible` (boolean)
                Show text label on the annotation
            - `timestamp` (union number | string)
            - `visible` (boolean)
              Show the annotation
          - **type: range**
            Manual range annotation spanning time interval
            - `type` (enum)
              Values: `range`
            - `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`
            - `fill` (enum · default: inside)
              Fill direction for range
              Values: `inside`, `outside`
            - `interval` (object)
              Time range for annotation
              - `from` (union number | string)
              - `to` (union number | string)
            - `label` (string)
              Label text for the annotation
            - `visible` (boolean)
              Show the annotation
        - `ignore_global_filters` (boolean · default: false)
          When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
        - `type` (enum)
          Values: `annotations`
      - **Annotation Layer (By Reference)**
        Reference to a library annotation group
        - `group_id` (string)
          ID of the linked annotation group from the library
        - `type` (enum)
          Values: `annotation_group`
    - `legend` (union anyOf)
      Legend configuration for XY chart
      - **Outside horizontal**
        Outside legend positioned horizontal (top/bottom) of the chart
        - `layout` (union anyOf)
          - **type: grid**
            - `type` (enum)
              Values: `grid`
            - `truncate` (object)
              - `enabled` (boolean)
                Enable truncation of legend items
              - `max_lines` (number · min: 1 · max: 10 · default: 1)
                Number of lines before legend items are truncated.
          - **type: list**
            - `type` (enum)
              Values: `list`
        - `placement` (enum)
          Values: `outside`
        - `position` (enum)
          Values: `top`, `bottom`
        - `series_header` (object)
          Legend table series header configuration.
          - `text` (string)
            Legend table series header text.
          - `visible` (boolean)
            When true, shows the legend table series header.
        - `statistics` (enum[] · max items: 17)
          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)
          Legend visibility.
          Values: `auto`, `visible`, `hidden`
      - **Outside vertical**
        Outside legend positioned vertical (left/right) of the chart
        - `layout` (object)
          - `truncate` (object)
            - `enabled` (boolean)
              Enable truncation of legend items
            - `max_lines` (number · min: 1 · max: 10 · default: 1)
              Number of lines before legend items are truncated.
          - `type` (enum)
            Values: `grid`
        - `placement` (enum)
          Values: `outside`
        - `position` (enum)
          Values: `left`, `right`
        - `series_header` (object)
          Legend table series header configuration.
          - `text` (string)
            Legend table series header text.
          - `visible` (boolean)
            When true, shows the legend table series header.
        - `size` (union anyOf)
          Legend size.
          Values: `auto`, `s`, `m`, `l`, `xl`
        - `statistics` (enum[] · max items: 17)
          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)
          Legend visibility.
          Values: `auto`, `visible`, `hidden`
      - **Inside**
        Inside legend
        - `columns` (number · min: 1 · max: 5)
          Number of legend columns
        - `layout` (object)
          - `truncate` (object)
            - `enabled` (boolean)
              Enable truncation of legend items
            - `max_lines` (number · min: 1 · max: 10 · default: 1)
              Number of lines before legend items are truncated.
          - `type` (enum)
            Values: `grid`
        - `placement` (enum)
          Values: `inside`
        - `position` (enum)
          Legend position inside the chart
          Values: `top_left`, `top_right`, `bottom_left`, `bottom_right`
        - `series_header` (object)
          Legend table series header configuration.
          - `text` (string)
            Legend table series header text.
          - `visible` (boolean)
            When true, shows the legend table series header.
        - `statistics` (enum[] · max items: 17)
          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)
          Legend visibility.
          Values: `auto`, `visible`, `hidden`
    - `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
      - `areas` (object)
        Area-specific rendering settings
        - `fill` (enum · default: solid)
          Area fill type: solid or gradient. Defaults to solid.
          Values: `solid`, `gradient`
        - `fill_opacity` (number · min: 0 · max: 2 · default: 0.3)
          Area fill opacity (0-1 typical, max 2 for legacy)
      - `bars` (object)
        Bar-specific rendering settings
        - `data_labels` (object)
          Data label configuration for bar series
          - `visible` (boolean · default: false)
            Display value labels on bar data points
        - `minimum_height` (number · min: 0 · default: 1)
          Minimum bar height in pixels
      - `fitting` (object)
        Missing data interpolation configuration for line and area series
        - `emphasize` (boolean)
          Visually distinguish fitted segments with a dashed line style and reduced area opacity
        - `extend` (enum)
          How to render line and area edges when data does not cover the full X domain
          Values: `none`, `zero`, `nearest`
        - `type` (enum)
          Fitting function type for missing data
          Values: `none`, `zero`, `linear`, `carry`, `lookahead`, `average`, `nearest`
      - `interpolation` (enum · default: linear)
        Curve interpolation method for line and area series
        Values: `linear`, `smooth`, `stepped`
      - `overlays` (object)
        Visual overlays drawn on top of the chart canvas
        - `current_time_marker` (object)
          Current time marker configuration
          - `visible` (boolean · default: false)
            Show current time marker line
        - `partial_buckets` (object)
          Partial (incomplete) bucket indicator configuration
          - `visible` (boolean · default: false)
            Show partial bucket indicators at time range edges
      - `points` (object)
        Data point marker settings for line and area series
        - `visibility` (enum · default: auto)
          Data point marker visibility on line and area series
          Values: `auto`, `visible`, `hidden`
    - `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)
      - **Data view reference** (`type: data_view_reference`)
        - `type` (enum)
          Values: `data_view_reference`
        - `ref_id` (string)
          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)
          Values: `data_view_spec`
        - `allow_hidden_indices` (boolean)
          When `true`, allows the data view to match hidden indices.
        - `field_filters` (string[] · max items: 10000)
          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)
        - `index_pattern` (string · min length: 1)
          The index pattern (Elasticsearch index expression) to use as the data source. Example: "my-index-*".
        - `name` (string · min length: 1 · max length: 256)
          The name of the data view. Example: "Sample data view".
        - `time_field` (string)
          The name of the time field in the index. Used for time-based filtering. Example: "@timestamp".
    - `description` (string)
      The description of the chart. Optional. Any string value or undefined.
    - `filters` (union[] · max items: 100)
      Filters applied to the panel
    - `ignore_global_filters` (boolean · default: false)
      When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
    - `metric` (union anyOf)
      - **Count Metric Operation**
        - `color` (union anyOf · default: {
  "type": "auto"
})
          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.
          - **No Color**
            Explicitly disables coloring
            - `type` (enum)
              Values: `none`
          - **Auto Color**
            Coloring determined at runtime based on chart defaults
            - `type` (enum)
              Values: `auto`
        - `goal` (union anyOf)
          Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
          - **Field Metric Operations**
          - **Static Operation Definition**
            - `operation` (enum)
              Values: `static_value`
            - `format` (union anyOf)
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `label` (string)
              Label for the operation
            - `value` (number · default: 100)
              Static value
          - **Formula Operation**
            - `operation` (enum)
              Values: `formula`
            - `filter` (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`
            - `format` (union anyOf)
              Number display format for the dimension value.
              Same options as `format` in `Terms Operation`
            - `formula` (string)
              Formula
            - `label` (string)
              Label for the operation
            - `reduced_time_range` (string)
              Reduced time range
            - `time_scale` (enum)
              Time scale
              Values: `s`, `m`, `h`, `d`
        - `max` (union anyOf)
          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)
          Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
          Same options as `goal` in `Count Metric Operation`
        - `subtitle` (string)
          Subtitle below the gauge value.
        - `ticks` (object)
          Ticks configuration
          - `mode` (enum · default: bands)
            Tick placement mode.
            Values: `auto`, `bands`
          - `visible` (boolean · default: true)
            When `true`, displays tick marks on the gauge.
        - `title` (object)
          Title configuration
          - `text` (string)
            Title text.
          - `visible` (boolean · default: true)
            When `true`, displays the title.
        - `empty_as_null` (boolean · default: false)
          When `true`, treats empty buckets as null instead of zero.
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `count`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Unique Count Metric Operation**
        - `color` (union anyOf · default: {
  "type": "auto"
})
          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.
          - **No Color**
            Explicitly disables coloring
            - `type` (enum)
              Values: `none`
          - **Auto Color**
            Coloring determined at runtime based on chart defaults
            - `type` (enum)
              Values: `auto`
        - `goal` (union anyOf)
          Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
          Same options as `goal` in `Count Metric Operation`
        - `max` (union anyOf)
          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)
          Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
          Same options as `goal` in `Count Metric Operation`
        - `subtitle` (string)
          Subtitle below the gauge value.
        - `ticks` (object)
          Ticks configuration
          - `mode` (enum · default: bands)
            Tick placement mode.
            Values: `auto`, `bands`
          - `visible` (boolean · default: true)
            When `true`, displays tick marks on the gauge.
        - `title` (object)
          Title configuration
          - `text` (string)
            Title text.
          - `visible` (boolean · default: true)
            When `true`, displays the title.
        - `empty_as_null` (boolean · default: false)
          When `true`, treats empty buckets as null instead of zero.
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `unique_count`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Stats Metric Operation**
        - `color` (union anyOf · default: {
  "type": "auto"
})
          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.
          - **No Color**
            Explicitly disables coloring
            - `type` (enum)
              Values: `none`
          - **Auto Color**
            Coloring determined at runtime based on chart defaults
            - `type` (enum)
              Values: `auto`
        - `goal` (union anyOf)
          Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
          Same options as `goal` in `Count Metric Operation`
        - `max` (union anyOf)
          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)
          Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
          Same options as `goal` in `Count Metric Operation`
        - `subtitle` (string)
          Subtitle below the gauge value.
        - `ticks` (object)
          Ticks configuration
          - `mode` (enum · default: bands)
            Tick placement mode.
            Values: `auto`, `bands`
          - `visible` (boolean · default: true)
            When `true`, displays tick marks on the gauge.
        - `title` (object)
          Title configuration
          - `text` (string)
            Title text.
          - `visible` (boolean · default: true)
            When `true`, displays the title.
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `min`, `max`, `average`, `median`, `standard_deviation`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Sum Metric Operation**
        - `color` (union anyOf · default: {
  "type": "auto"
})
          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.
          - **No Color**
            Explicitly disables coloring
            - `type` (enum)
              Values: `none`
          - **Auto Color**
            Coloring determined at runtime based on chart defaults
            - `type` (enum)
              Values: `auto`
        - `goal` (union anyOf)
          Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
          Same options as `goal` in `Count Metric Operation`
        - `max` (union anyOf)
          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)
          Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
          Same options as `goal` in `Count Metric Operation`
        - `subtitle` (string)
          Subtitle below the gauge value.
        - `ticks` (object)
          Ticks configuration
          - `mode` (enum · default: bands)
            Tick placement mode.
            Values: `auto`, `bands`
          - `visible` (boolean · default: true)
            When `true`, displays tick marks on the gauge.
        - `title` (object)
          Title configuration
          - `text` (string)
            Title text.
          - `visible` (boolean · default: true)
            When `true`, displays the title.
        - `empty_as_null` (boolean · default: false)
          When `true`, treats empty buckets as null instead of zero.
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `sum`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Last Value Operation**
        - `color` (union anyOf · default: {
  "type": "auto"
})
          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.
          - **No Color**
            Explicitly disables coloring
            - `type` (enum)
              Values: `none`
          - **Auto Color**
            Coloring determined at runtime based on chart defaults
            - `type` (enum)
              Values: `auto`
        - `goal` (union anyOf)
          Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
          Same options as `goal` in `Count Metric Operation`
        - `max` (union anyOf)
          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)
          Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
          Same options as `goal` in `Count Metric Operation`
        - `subtitle` (string)
          Subtitle below the gauge value.
        - `ticks` (object)
          Ticks configuration
          - `mode` (enum · default: bands)
            Tick placement mode.
            Values: `auto`, `bands`
          - `visible` (boolean · default: true)
            When `true`, displays tick marks on the gauge.
        - `title` (object)
          Title configuration
          - `text` (string)
            Title text.
          - `visible` (boolean · default: true)
            When `true`, displays the title.
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `multi_value` (boolean · default: false)
          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)
          Values: `last_value`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_field` (string)
          Time field used to determine document recency
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Percentile Operation**
        - `color` (union anyOf · default: {
  "type": "auto"
})
          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.
          - **No Color**
            Explicitly disables coloring
            - `type` (enum)
              Values: `none`
          - **Auto Color**
            Coloring determined at runtime based on chart defaults
            - `type` (enum)
              Values: `auto`
        - `goal` (union anyOf)
          Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
          Same options as `goal` in `Count Metric Operation`
        - `max` (union anyOf)
          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)
          Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
          Same options as `goal` in `Count Metric Operation`
        - `subtitle` (string)
          Subtitle below the gauge value.
        - `ticks` (object)
          Ticks configuration
          - `mode` (enum · default: bands)
            Tick placement mode.
            Values: `auto`, `bands`
          - `visible` (boolean · default: true)
            When `true`, displays tick marks on the gauge.
        - `title` (object)
          Title configuration
          - `text` (string)
            Title text.
          - `visible` (boolean · default: true)
            When `true`, displays the title.
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `percentile`
        - `percentile` (number · default: 95)
          Percentile
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Percentile Ranks Operation**
        - `color` (union anyOf · default: {
  "type": "auto"
})
          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.
          - **No Color**
            Explicitly disables coloring
            - `type` (enum)
              Values: `none`
          - **Auto Color**
            Coloring determined at runtime based on chart defaults
            - `type` (enum)
              Values: `auto`
        - `goal` (union anyOf)
          Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
          Same options as `goal` in `Count Metric Operation`
        - `max` (union anyOf)
          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)
          Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
          Same options as `goal` in `Count Metric Operation`
        - `subtitle` (string)
          Subtitle below the gauge value.
        - `ticks` (object)
          Ticks configuration
          - `mode` (enum · default: bands)
            Tick placement mode.
            Values: `auto`, `bands`
          - `visible` (boolean · default: true)
            When `true`, displays tick marks on the gauge.
        - `title` (object)
          Title configuration
          - `text` (string)
            Title text.
          - `visible` (boolean · default: true)
            When `true`, displays the title.
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `percentile_rank`
        - `rank` (number · default: 0)
          Percentile Rank
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Formula Operation**
        - `color` (union anyOf · default: {
  "type": "auto"
})
          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.
          - **No Color**
            Explicitly disables coloring
            - `type` (enum)
              Values: `none`
          - **Auto Color**
            Coloring determined at runtime based on chart defaults
            - `type` (enum)
              Values: `auto`
        - `goal` (union anyOf) — recursive
          Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
        - `max` (union anyOf) — recursive
          Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
        - `min` (union anyOf) — recursive
          Metric dimension using a field-based aggregation, a static value, or a mathematical formula.
        - `subtitle` (string)
          Subtitle below the gauge value.
        - `ticks` (object)
          Ticks configuration
          - `mode` (enum · default: bands)
            Tick placement mode.
            Values: `auto`, `bands`
          - `visible` (boolean · default: true)
            When `true`, displays tick marks on the gauge.
        - `title` (object)
          Title configuration
          - `text` (string)
            Title text.
          - `visible` (boolean · default: true)
            When `true`, displays the title.
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `formula` (string)
          Formula
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `formula`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (enum)
          Time scale
          Values: `s`, `m`, `h`, `d`
    - `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
      - `x` (object)
        X axis configuration
        - `labels` (object)
          - `orientation` (enum)
            Orientation
            Values: `horizontal`, `vertical`, `angled`
          - `visible` (boolean · default: true)
            Show axis labels
        - `scale` (enum)
          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)
          Axis sort order; omit or use undefined for no sorting
          Values: `asc`, `desc`
        - `title` (object)
          - `text` (string)
            Axis title text.
          - `visible` (boolean)
            When `true`, displays the title.
      - `y` (object)
        Y axis configuration
        - `labels` (object)
          - `visible` (boolean · default: true)
            Show axis labels
        - `sort` (enum)
          Axis sort order; omit or use undefined for no sorting
          Values: `asc`, `desc`
        - `title` (object)
          - `text` (string)
            Axis title text.
          - `visible` (boolean)
            When `true`, displays the title.
    - `data_source` (union oneOf)
      - **Data view reference** (`type: data_view_reference`)
        - `type` (enum)
          Values: `data_view_reference`
        - `ref_id` (string)
          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)
          Values: `data_view_spec`
        - `allow_hidden_indices` (boolean)
          When `true`, allows the data view to match hidden indices.
        - `field_filters` (string[] · max items: 10000)
          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)
        - `index_pattern` (string · min length: 1)
          The index pattern (Elasticsearch index expression) to use as the data source. Example: "my-index-*".
        - `name` (string · min length: 1 · max length: 256)
          The name of the data view. Example: "Sample data view".
        - `time_field` (string)
          The name of the time field in the index. Used for time-based filtering. Example: "@timestamp".
    - `description` (string)
      The description of the chart. Optional. Any string value or undefined.
    - `filters` (union[] · max items: 100)
      Filters applied to the panel
    - `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)
      - **Count Metric Operation**
        - `color` (union anyOf · default: {
  "type": "auto"
})
          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.
          - **Auto Color**
            Coloring determined at runtime based on chart defaults
            - `type` (enum)
              Values: `auto`
        - `empty_as_null` (boolean · default: false)
          When `true`, treats empty buckets as null instead of zero.
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `count`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Unique Count Metric Operation**
        - `color` (union anyOf · default: {
  "type": "auto"
})
          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.
          - **Auto Color**
            Coloring determined at runtime based on chart defaults
            - `type` (enum)
              Values: `auto`
        - `empty_as_null` (boolean · default: false)
          When `true`, treats empty buckets as null instead of zero.
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `unique_count`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Stats Metric Operation**
        - `color` (union anyOf · default: {
  "type": "auto"
})
          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.
          - **Auto Color**
            Coloring determined at runtime based on chart defaults
            - `type` (enum)
              Values: `auto`
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `min`, `max`, `average`, `median`, `standard_deviation`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Sum Metric Operation**
        - `color` (union anyOf · default: {
  "type": "auto"
})
          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.
          - **Auto Color**
            Coloring determined at runtime based on chart defaults
            - `type` (enum)
              Values: `auto`
        - `empty_as_null` (boolean · default: false)
          When `true`, treats empty buckets as null instead of zero.
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `sum`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Last Value Operation**
        - `color` (union anyOf · default: {
  "type": "auto"
})
          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.
          - **Auto Color**
            Coloring determined at runtime based on chart defaults
            - `type` (enum)
              Values: `auto`
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `multi_value` (boolean · default: false)
          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)
          Values: `last_value`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_field` (string)
          Time field used to determine document recency
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Percentile Operation**
        - `color` (union anyOf · default: {
  "type": "auto"
})
          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.
          - **Auto Color**
            Coloring determined at runtime based on chart defaults
            - `type` (enum)
              Values: `auto`
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `percentile`
        - `percentile` (number · default: 95)
          Percentile
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Percentile Ranks Operation**
        - `color` (union anyOf · default: {
  "type": "auto"
})
          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.
          - **Auto Color**
            Coloring determined at runtime based on chart defaults
            - `type` (enum)
              Values: `auto`
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `percentile_rank`
        - `rank` (number · default: 0)
          Percentile Rank
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Differences Operation**
        - `color` (union anyOf · default: {
  "type": "auto"
})
          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.
          - **Auto Color**
            Coloring determined at runtime based on chart defaults
            - `type` (enum)
              Values: `auto`
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `of` (union anyOf)
          Same options as `of` in `Differences Operation`
        - `operation` (enum)
          Values: `differences`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Moving Average Operation**
        - `color` (union anyOf · default: {
  "type": "auto"
})
          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.
          - **Auto Color**
            Coloring determined at runtime based on chart defaults
            - `type` (enum)
              Values: `auto`
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `of` (union anyOf)
          Same options as `of` in `Differences Operation`
        - `operation` (enum)
          Values: `moving_average`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
        - `window` (number · default: 5)
          Window
      - **Cumulative Sum Operation**
        - `color` (union anyOf · default: {
  "type": "auto"
})
          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.
          - **Auto Color**
            Coloring determined at runtime based on chart defaults
            - `type` (enum)
              Values: `auto`
        - `field` (string)
          Field to cumulatively sum. When omitted, cumulative sum is applied to the count of records.
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `cumulative_sum`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Counter Rate Operation**
        - `color` (union anyOf · default: {
  "type": "auto"
})
          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.
          - **Auto Color**
            Coloring determined at runtime based on chart defaults
            - `type` (enum)
              Values: `auto`
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `counter_rate`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Formula Operation**
        - `color` (union anyOf · default: {
  "type": "auto"
})
          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.
          - **Auto Color**
            Coloring determined at runtime based on chart defaults
            - `type` (enum)
              Values: `auto`
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `formula` (string)
          Formula
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `formula`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (enum)
          Time scale
          Values: `s`, `m`, `h`, `d`
    - `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)
      - **Data view reference** (`type: data_view_reference`)
        - `type` (enum)
          Values: `data_view_reference`
        - `ref_id` (string)
          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)
          Values: `data_view_spec`
        - `allow_hidden_indices` (boolean)
          When `true`, allows the data view to match hidden indices.
        - `field_filters` (string[] · max items: 10000)
          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)
        - `index_pattern` (string · min length: 1)
          The index pattern (Elasticsearch index expression) to use as the data source. Example: "my-index-*".
        - `name` (string · min length: 1 · max length: 256)
          The name of the data view. Example: "Sample data view".
        - `time_field` (string)
          The name of the time field in the index. Used for time-based filtering. Example: "@timestamp".
    - `description` (string)
      The description of the chart. Optional. Any string value or undefined.
    - `filters` (union[] · max items: 100)
      Filters applied to the panel
    - `ignore_global_filters` (boolean · default: false)
      When `true`, ignores global filters when fetching data for this layer. Defaults to `false`.
    - `metric` (union anyOf)
      - **Count Metric Operation**
        - `empty_as_null` (boolean · default: false)
          When `true`, treats empty buckets as null instead of zero.
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `count`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Unique Count Metric Operation**
        - `empty_as_null` (boolean · default: false)
          When `true`, treats empty buckets as null instead of zero.
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `unique_count`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Stats Metric Operation**
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `min`, `max`, `average`, `median`, `standard_deviation`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Sum Metric Operation**
        - `empty_as_null` (boolean · default: false)
          When `true`, treats empty buckets as null instead of zero.
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `sum`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Last Value Operation**
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `multi_value` (boolean · default: false)
          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)
          Values: `last_value`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_field` (string)
          Time field used to determine document recency
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Percentile Operation**
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `percentile`
        - `percentile` (number · default: 95)
          Percentile
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Percentile Ranks Operation**
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `percentile_rank`
        - `rank` (number · default: 0)
          Percentile Rank
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Differences Operation**
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `of` (union anyOf)
          Same options as `of` in `Differences Operation`
        - `operation` (enum)
          Values: `differences`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Moving Average Operation**
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `of` (union anyOf)
          Same options as `of` in `Differences Operation`
        - `operation` (enum)
          Values: `moving_average`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
        - `window` (number · default: 5)
          Window
      - **Cumulative Sum Operation**
        - `field` (string)
          Field to cumulatively sum. When omitted, cumulative sum is applied to the count of records.
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `cumulative_sum`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Counter Rate Operation**
        - `field` (string)
          Field to be used for the metric
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `counter_rate`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (union anyOf)
          Time scale
          Values: `s`, `m`, `h`, `d`
        - `time_shift` (string)
          Time shift
      - **Formula Operation**
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `formula` (string)
          Formula
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `formula`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (enum)
          Time scale
          Values: `s`, `m`, `h`, `d`
    - `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)
      - **Date Histogram Operation**
        - `operation` (enum)
          Values: `date_histogram`
        - `color` (union anyOf · default: {
  "mapping": [],
  "mode": "categorical",
  "palette": "default"
})
          Color mapping for dimension values, either categorical (for specific values) or as a gradient.
          Same options as `color` in `Date Histogram Operation`
        - `drop_partial_intervals` (boolean · default: false)
          When `true`, drops partial intervals from the results.
        - `field` (string)
          Field to be used for the date histogram.
        - `include_empty_rows` (boolean · default: true)
          When `true`, includes empty rows in the results.
        - `label` (string)
          Label for the operation
        - `suggested_interval` (string · default: auto)
          Suggested time interval.
        - `use_original_time_range` (boolean · default: false)
          When `true`, uses the original time range instead of the current query time range.
      - **Terms Operation**
        - `operation` (enum)
          Values: `terms`
        - `color` (union anyOf · default: {
  "mapping": [],
  "mode": "categorical",
  "palette": "default"
})
          Color mapping for dimension values, either categorical (for specific values) or as a gradient.
          Same options as `color` in `Date Histogram Operation`
        - `excludes` (object)
          - `as_regex` (boolean)
            When `true`, treats the values as regular expressions.
          - `values` (union string[] | number[])
            Values to exclude.
        - `fields` (string[] · min items: 1 · max items: 4)
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `includes` (object)
          - `as_regex` (boolean)
            When `true`, treats the values as regular expressions.
          - `values` (union string[] | number[])
            Values to include.
        - `increase_accuracy` (boolean)
          When `true`, increases accuracy at the cost of performance.
        - `label` (string)
          Label for the operation
        - `limit` (number · default: 5)
          Number of terms to return.
        - `other_bucket` (object)
          - `include_documents_without_field` (boolean)
            When `true`, includes documents that do not have the specified field.
        - `rank_by` (union anyOf)
          Same options as `rank_by` in `Terms Operation`
      - **Histogram Operation**
        - `operation` (enum)
          Values: `histogram`
        - `color` (union anyOf · default: {
  "mapping": [],
  "mode": "categorical",
  "palette": "default"
})
          Color mapping for dimension values, either categorical (for specific values) or as a gradient.
          Same options as `color` in `Date Histogram Operation`
        - `field` (string)
          Field to be used for the histogram.
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `granularity` (union number | enum · default: auto)
          Values: `auto`
        - `include_empty_rows` (boolean · default: true)
          When `true`, includes empty rows in the results.
        - `label` (string)
          Label for the operation
      - **Ranges Operation**
        - `operation` (enum)
          Values: `range`
        - `color` (union anyOf · default: {
  "mapping": [],
  "mode": "categorical",
  "palette": "default"
})
          Color mapping for dimension values, either categorical (for specific values) or as a gradient.
          Same options as `color` in `Date Histogram Operation`
        - `field` (string)
          Field to be used for the range.
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `ranges` (object[] · max items: 100)
          - `gt` (number)
            Greater than.
          - `label` (string)
            Label.
          - `lte` (number)
            Less than or equal to.
      - **Filters Operation**
        - `operation` (enum)
          Values: `filters`
        - `color` (union anyOf · default: {
  "mapping": [],
  "mode": "categorical",
  "palette": "default"
})
          Color mapping for dimension values, either categorical (for specific values) or as a gradient.
          Same options as `color` in `Date Histogram Operation`
        - `filters` (object[] · max items: 100)
          - `filter` (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`
          - `label` (string)
            Label for the filter
        - `label` (string)
          Label for the operation
    - `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)
      - **Data view reference** (`type: data_view_reference`)
        - `type` (enum)
          Values: `data_view_reference`
        - `ref_id` (string)
          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)
          Values: `data_view_spec`
        - `allow_hidden_indices` (boolean)
          When `true`, allows the data view to match hidden indices.
        - `field_filters` (string[] · max items: 10000)
          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)
        - `index_pattern` (string · min length: 1)
          The index pattern (Elasticsearch index expression) to use as the data source. Example: "my-index-*".
        - `name` (string · min length: 1 · max length: 256)
          The name of the data view. Example: "Sample data view".
        - `time_field` (string)
          The name of the time field in the index. Used for time-based filtering. Example: "@timestamp".
    - `description` (string)
      The description of the chart. Optional. Any string value or undefined.
    - `filters` (union[] · max items: 100)
      Filters applied to the panel
    - `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.
      - **Field Metric Operations**
      - **Formula Operation**
        - `filter` (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`
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `formula` (string)
          Formula
        - `label` (string)
          Label for the operation
        - `operation` (enum)
          Values: `formula`
        - `reduced_time_range` (string)
          Reduced time range
        - `time_scale` (enum)
          Time scale
          Values: `s`, `m`, `h`, `d`
    - `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)
      - **Date Histogram Operation**
        - `operation` (enum)
          Values: `date_histogram`
        - `ems` (object)
          - `boundaries` (string)
            EMS boundaries
          - `join` (string)
            EMS join field
        - `drop_partial_intervals` (boolean · default: false)
          When `true`, drops partial intervals from the results.
        - `field` (string)
          Field to be used for the date histogram.
        - `include_empty_rows` (boolean · default: true)
          When `true`, includes empty rows in the results.
        - `label` (string)
          Label for the operation
        - `suggested_interval` (string · default: auto)
          Suggested time interval.
        - `use_original_time_range` (boolean · default: false)
          When `true`, uses the original time range instead of the current query time range.
      - **Terms Operation**
        - `operation` (enum)
          Values: `terms`
        - `ems` (object)
          - `boundaries` (string)
            EMS boundaries
          - `join` (string)
            EMS join field
        - `excludes` (object)
          - `as_regex` (boolean)
            When `true`, treats the values as regular expressions.
          - `values` (union string[] | number[])
            Values to exclude.
        - `fields` (string[] · min items: 1 · max items: 4)
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `includes` (object)
          - `as_regex` (boolean)
            When `true`, treats the values as regular expressions.
          - `values` (union string[] | number[])
            Values to include.
        - `increase_accuracy` (boolean)
          When `true`, increases accuracy at the cost of performance.
        - `label` (string)
          Label for the operation
        - `limit` (number · default: 5)
          Number of terms to return.
        - `other_bucket` (object)
          - `include_documents_without_field` (boolean)
            When `true`, includes documents that do not have the specified field.
        - `rank_by` (union anyOf)
          Same options as `rank_by` in `Terms Operation`
      - **Histogram Operation**
        - `operation` (enum)
          Values: `histogram`
        - `ems` (object)
          - `boundaries` (string)
            EMS boundaries
          - `join` (string)
            EMS join field
        - `field` (string)
          Field to be used for the histogram.
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `granularity` (union number | enum · default: auto)
          Values: `auto`
        - `include_empty_rows` (boolean · default: true)
          When `true`, includes empty rows in the results.
        - `label` (string)
          Label for the operation
      - **Ranges Operation**
        - `operation` (enum)
          Values: `range`
        - `ems` (object)
          - `boundaries` (string)
            EMS boundaries
          - `join` (string)
            EMS join field
        - `field` (string)
          Field to be used for the range.
        - `format` (union anyOf)
          Number display format for the dimension value.
          Same options as `format` in `Terms Operation`
        - `label` (string)
          Label for the operation
        - `ranges` (object[] · max items: 100)
          - `gt` (number)
            Greater than.
          - `label` (string)
            Label.
          - `lte` (number)
            Less than or equal to.
      - **Filters Operation**
        - `operation` (enum)
          Values: `filters`
        - `ems` (object)
          - `boundaries` (string)
            EMS boundaries
          - `join` (string)
            EMS join field
        - `filters` (object[] · max items: 100)
          - `filter` (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`
          - `label` (string)
            Label for the filter
        - `label` (string)
          Label for the operation
    - `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)
      - **Data view reference** (`type: data_view_reference`)
        - `type` (enum)
          Values: `data_view_reference`
        - `ref_id` (string)
          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)
          Values: `data_view_spec`
        - `allow_hidden_indices` (boolean)
          When `true`, allows the data view to match hidden indices.
        - `field_filters` (string[] · max items: 10000)
          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)
        - `index_pattern` (string · min length: 1)
          The index pattern (Elasticsearch index expression) to use as the data source. Example: "my-index-*".
        - `name` (string · min length: 1 · max length: 256)
          The name of the data view. Example: "Sample data view".
        - `time_field` (string)
          The name of the time field in the index. Used for time-based filtering. Example: "@timestamp".
    - `description` (string)
      The description of the chart. Optional. Any string value or undefined.
    - `filters` (union[] · max items: 100)
      Filters applied to the panel
    - `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
      - `alignment` (enum · default: right)
        Alignment of the columns.
        Values: `left`, `center`, `right`
      - `apply_color_to` (enum)
        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"
})
        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.
        - **Color Mapping**
          Color mapping for dimension values, either categorical (for specific values) or as a gradient.
        - **Auto Color**
          Coloring determined at runtime based on chart defaults
          - `type` (enum)
            Values: `auto`
      - `summary` (object)
        Summary row configuration
        - `label` (string)
          Summary row label.
        - `type` (enum)
          Type of summary function to apply to the column.
          Values: `sum`, `avg`, `count`, `min`, `max`
      - `visible` (boolean · default: true)
        When `false`, hides the column from the datatable.
      - `width` (number · min: 0)
        Column width in pixels.
    - `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
      - `alignment` (enum · default: left)
        Alignment of the rows.
        Values: `left`, `center`, `right`
      - `apply_color_to` (enum)
        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)
        When `true`, enables one-click filtering on cell values.
      - `collapse_by` (union anyOf)
        Aggregation function used to collapse a breakdown dimension into a single value.
        Values: `avg`, `sum`, `max`, `min`
      - `color` (union anyOf · default: {
  "type": "auto"
})
        - **Color Mapping**
          Color mapping for dimension values, either categorical (for specific values) or as a gradient.
        - **Auto Color**
          Coloring determined at runtime based on chart defaults
          - `type` (enum)
            Values: `auto`
      - `visible` (boolean · default: true)
        When `false`, hides the column from the datatable.
      - `width` (number · min: 0)
        Column width in pixels.
    - `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
      - `density` (object)
        Density configuration for the datatable.
        - `height` (object)
          - `header` (union anyOf)
            Number of lines before the header is truncated.
            - **type: auto**
              - `type` (enum)
                Values: `auto`
            - **type: custom**
              - `type` (enum)
                Values: `custom`
              - `max_lines` (number · min: 1 · max: 5 · default: 3)
          - `value` (union anyOf)
            Number of lines to display per table body cell.
            - **type: auto**
              - `type` (enum)
                Values: `auto`
            - **type: custom**
              - `type` (enum)
                Values: `custom`
              - `lines` (number · min: 1 · max: 20 · default: 1)
        - `mode` (enum · default: default)
          Display density mode.
          Values: `compact`, `default`, `expanded`
      - `paging` (enum)
        Rows per page. When set, pagination is enabled with the specified number of rows.
        Values: `10`, `20`, `30`, `50`, `100`
      - `row_numbers` (object)
        Configuration for row numbers
        - `visible` (boolean)
          When `true`, displays row numbers.
      - `sort_by` (union anyOf)
        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)
            Type of column to sort by.
            Values: `metric`, `row`
          - `direction` (enum)
            Direction
            Values: `asc`, `desc`
          - `index` (number · min: 0)
            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)
            Values: `pivoted_metric`
          - `direction` (enum)
            Direction
            Values: `asc`, `desc`
          - `index` (number · min: 0)
            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)
            Array of pivot values, one for each split_metrics_by column in order
    - `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)
      - **Data view reference** (`type: data_view_reference`)
        - `type` (enum)
          Values: `data_view_reference`
        - `ref_id` (string)
          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)
          Values: `data_view_spec`
        - `allow_hidden_indices` (boolean)
          When `true`, allows the data view to match hidden indices.
        - `field_filters` (string[] · max items: 10000)
          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)
        - `index_pattern` (string · min length: 1)
          The index pattern (Elasticsearch index expression) to use as the data source. Example: "my-index-*".
        - `name` (string · min length: 1 · max length: 256)
          The name of the data view. Example: "Sample data view".
        - `time_field` (string)
          The name of the time field in the index. Used for time-based filtering. Example: "@timestamp".
    - `description` (string)
      The description of the chart. Optional. Any string value or undefined.
    - `filters` (union[] · max items: 100)
      Filters applied to the panel
    - `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 · default: {
  "mapping": [],
  "mode": "categorical",
  "palette": "default"
})
        Color mapping for dimension values, either categorical (for specific values) or as a gradient.
        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)
      - **Data view reference** (`type: data_view_reference`)
        - `type` (enum)
          Values: `data_view_reference`
        - `ref_id` (string)
          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)
          Values: `data_view_spec`
        - `allow_hidden_indices` (boolean)
          When `true`, allows the data view to match hidden indices.
        - `field_filters` (string[] · max items: 10000)
          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)
        - `index_pattern` (string · min length: 1)
          The index pattern (Elasticsearch index expression) to use as the data source. Example: "my-index-*".
        - `name` (string · min length: 1 · max length: 256)
          The name of the data view. Example: "Sample data view".
        - `time_field` (string)
          The name of the time field in the index. Used for time-based filtering. Example: "@timestamp".
    - `description` (string)
      The description of the chart. Optional. Any string value or undefined.
    - `filters` (union[] · max items: 100)
      Filters applied to the panel
    - `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 · default: {
  "mapping": [],
  "mode": "categorical",
  "palette": "default"
})
        Color mapping for dimension values, either categorical (for specific values) or as a gradient.
        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)
      - **Data view reference** (`type: data_view_reference`)
        - `type` (enum)
          Values: `data_view_reference`
        - `ref_id` (string)
          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)
          Values: `data_view_spec`
        - `allow_hidden_indices` (boolean)
          When `true`, allows the data view to match hidden indices.
        - `field_filters` (string[] · max items: 10000)
          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)
        - `index_pattern` (string · min length: 1)
          The index pattern (Elasticsearch index expression) to use as the data source. Example: "my-index-*".
        - `name` (string · min length: 1 · max length: 256)
          The name of the data view. Example: "Sample data view".
        - `time_field` (string)
          The name of the time field in the index. Used for time-based filtering. Example: "@timestamp".
    - `description` (string)
      The description of the chart. Optional. Any string value or undefined.
    - `filters` (union[] · max items: 100)
      Filters applied to the panel
    - `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 · default: {
  "mapping": [],
  "mode": "categorical",
  "palette": "default"
})
        Color mapping for dimension values, either categorical (for specific values) or as a gradient.
        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)
      - **Data view reference** (`type: data_view_reference`)
        - `type` (enum)
          Values: `data_view_reference`
        - `ref_id` (string)
          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)
          Values: `data_view_spec`
        - `allow_hidden_indices` (boolean)
          When `true`, allows the data view to match hidden indices.
        - `field_filters` (string[] · max items: 10000)
          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)
        - `index_pattern` (string · min length: 1)
          The index pattern (Elasticsearch index expression) to use as the data source. Example: "my-index-*".
        - `name` (string · min length: 1 · max length: 256)
          The name of the data view. Example: "Sample data view".
        - `time_field` (string)
          The name of the time field in the index. Used for time-based filtering. Example: "@timestamp".
    - `description` (string)
      The description of the chart. Optional. Any string value or undefined.
    - `filters` (union[] · max items: 100)
      Filters applied to the panel
    - `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 · default: {
  "mapping": [],
  "mode": "categorical",
  "palette": "default"
})
        Color mapping for dimension values, either categorical (for specific values) or as a gradient.
        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

#### `404`

Resource not found

#### `500`

Internal Server Error

## Code examples

#### Console

```console
GET kbn:/api/visualizations/1e4f0a30-b3c5-11ef-bd7a-2b6b1a8c0f3d
```

#### curl

```curl
curl -X GET "${KIBANA_URL}/api/visualizations/1e4f0a30-b3c5-11ef-bd7a-2b6b1a8c0f3d" \
  -H "Authorization: ApiKey ${API_KEY}"
```

## Response examples

#### Get visualization response

The full visualization state including the chart configuration and metadata.

```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"
  }
}
```

