Dashboard¶
Dashboard configuration and compilation.
Configuration Model¶
Dashboard
pydantic-model
¶
A dashboard with filters, controls, panels and more.
Attributes:
| Name | Type | Description |
|---|---|---|
name |
str
|
The name of the dashboard. |
id |
str | None
|
An optional unique identifier for the dashboard, useful for giving the generated dashboard a specific ID. |
description |
str | None
|
A brief description of the dashboard's purpose or content. |
minimum_kibana_version |
str | None
|
Optional minimum Kibana version required for this dashboard (e.g., '9.2.0'). |
time_range |
TimeRange | None
|
A default time range to apply when opening the dashboard. |
settings |
DashboardSettings
|
Global settings for a dashboard with options for margins, synchronization of colors. |
query |
LegacyQueryTypes | None
|
A query (KQL or Lucene) applied to the dashboard. |
filters |
list[FilterTypes]
|
A list of filters applied to the dashboard. |
controls |
list[ControlTypes]
|
A list of Controls for the dashboard. |
panels |
list[DashboardPanelTypes]
|
A list of Panels defining the content and layout of the dashboard. |
sample_data |
SampleData | None
|
Optional sample data to bundle with the dashboard for testing and demonstration. |
Show JSON schema:
{
"$defs": {
"AndFilter": {
"additionalProperties": false,
"description": "Represents an 'and' filter configuration in the Config schema.\n\nThis filter matches documents that satisfy all of the specified filters.",
"properties": {
"alias": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional alias for the filter, used for display purposes.",
"title": "Alias"
},
"disabled": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Indicates whether the filter is disabled. If `true`, the filter will not be applied.",
"title": "Disabled"
},
"and": {
"description": "A list of filters. All filters must match for a document to be included.",
"items": {
"$ref": "#/$defs/FilterTypes"
},
"title": "And",
"type": "array"
}
},
"required": [
"and"
],
"title": "AndFilter",
"type": "object"
},
"AreaChartAppearance": {
"additionalProperties": false,
"description": "Represents area chart appearance formatting options.",
"properties": {
"x_axis": {
"anyOf": [
{
"$ref": "#/$defs/AxisConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for the X-axis."
},
"y_left_axis": {
"anyOf": [
{
"$ref": "#/$defs/AxisConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for the left Y-axis."
},
"y_right_axis": {
"anyOf": [
{
"$ref": "#/$defs/AxisConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for the right Y-axis."
},
"values": {
"anyOf": [
{
"$ref": "#/$defs/XYValuesConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for value labels on data points."
},
"missing_values": {
"anyOf": [
{
"enum": [
"none",
"linear",
"carry",
"lookahead",
"average",
"nearest"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "How to handle missing data points. Controls interpolation for gaps in your data.",
"title": "Missing Values"
},
"show_as_dotted": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, visually distinguish interpolated data from real data points. Defaults to `false`.",
"title": "Show As Dotted"
},
"end_values": {
"anyOf": [
{
"enum": [
"none",
"zero",
"nearest"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "How to handle the end of the time range in line/area charts.",
"title": "End Values"
},
"line_style": {
"anyOf": [
{
"enum": [
"linear",
"monotone-x",
"step-after"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The line style for line/area charts. Only 3 types are supported by Kibana: linear (straight), monotone-x (smooth), step-after (stepped).",
"title": "Line Style"
},
"show_current_time_marker": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to show a vertical line at the current time in time series charts.",
"title": "Show Current Time Marker"
},
"hide_endzones": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to hide end zones in time series charts (areas where data is incomplete).",
"title": "Hide Endzones"
},
"fill_opacity": {
"anyOf": [
{
"maximum": 1.0,
"minimum": 0.0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "The fill opacity for area charts (0.0 to 1.0).",
"title": "Fill Opacity"
}
},
"title": "AreaChartAppearance",
"type": "object"
},
"AxisConfig": {
"additionalProperties": false,
"description": "Represents configuration for a single axis in XY charts.",
"properties": {
"title": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Axis title mode/value: True=auto, False=hidden, string=custom title.",
"title": "Title"
},
"scale": {
"anyOf": [
{
"enum": [
"linear",
"log",
"sqrt",
"time"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Scale type for the axis. Defaults to 'linear'.",
"title": "Scale"
},
"extent": {
"anyOf": [
{
"$ref": "#/$defs/AxisExtent"
},
{
"type": "null"
}
],
"default": null,
"description": "Extent/bounds configuration for the axis."
}
},
"title": "AxisConfig",
"type": "object"
},
"AxisExtent": {
"additionalProperties": false,
"description": "Represents axis extent (bounds) configuration for XY chart axes.\n\nControls the range of values displayed on an axis. Can be set to:\n- 'full': Use the full extent of the data\n- 'custom': Specify custom bounds with min/max values\n- 'data_bounds': Fit to the actual data bounds",
"properties": {
"mode": {
"default": "full",
"description": "The extent mode for the axis. Defaults to 'full'.",
"enum": [
"full",
"custom",
"data_bounds"
],
"title": "Mode",
"type": "string"
},
"min": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Minimum value for the axis (only used when mode is 'custom').",
"title": "Min"
},
"max": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum value for the axis (only used when mode is 'custom').",
"title": "Max"
},
"enforce": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to enforce the bounds strictly. Defaults to false.",
"title": "Enforce"
},
"nice_values": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to use nice rounded values for bounds. Defaults to true.",
"title": "Nice Values"
}
},
"title": "AxisExtent",
"type": "object"
},
"BarChartAppearance": {
"additionalProperties": false,
"description": "Represents bar chart appearance formatting options.\n\nExtends BaseXYChartAppearance to include bar-specific options.",
"properties": {
"x_axis": {
"anyOf": [
{
"$ref": "#/$defs/AxisConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for the X-axis."
},
"y_left_axis": {
"anyOf": [
{
"$ref": "#/$defs/AxisConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for the left Y-axis."
},
"y_right_axis": {
"anyOf": [
{
"$ref": "#/$defs/AxisConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for the right Y-axis."
},
"values": {
"anyOf": [
{
"$ref": "#/$defs/XYValuesConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for value labels on data points."
},
"min_bar_height": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "The minimum height for bars in bar charts.",
"title": "Min Bar Height"
}
},
"title": "BarChartAppearance",
"type": "object"
},
"CollapseAggregationEnum": {
"description": "The aggregation to use for the dimension.",
"enum": [
"sum",
"min",
"max",
"avg"
],
"title": "CollapseAggregationEnum",
"type": "string"
},
"CollapsiblePanel": {
"additionalProperties": false,
"description": "A collapsible section that groups panels under a named, expandable header.\n\nIn the outer dashboard grid, a collapsible panel occupies a single full-width row\n(the section header). Its inner panels are laid out in a separate coordinate space\nrelative to the section.\n\nExamples:\n ```yaml\n dashboards:\n - name: \"Dashboard with Sections\"\n panels:\n - title: \"Overview\"\n size: { w: 48, h: 6 }\n markdown:\n content: \"# Overview\"\n - title: \"Details\"\n section:\n collapsed: true\n panels:\n - title: \"CPU Usage\"\n size: { w: 48, h: 12 }\n markdown:\n content: \"# CPU\"\n ```",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier for the panel. If not provided, one may be generated during compilation.",
"title": "Id"
},
"title": {
"default": "",
"description": "The title displayed on the panel header. Can be an empty string.",
"title": "Title",
"type": "string"
},
"hide_title": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, the panel title will be hidden. Defaults to `false` (title is shown).",
"title": "Hide Title"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A brief description of the panel's content or purpose. Defaults to an empty string.",
"title": "Description"
},
"size": {
"$ref": "#/$defs/Size",
"description": "Section header size. Defaults to full width (48) and 1 row tall."
},
"position": {
"$ref": "#/$defs/Position",
"description": "Defines the panel's position on the dashboard grid. If not specified, position will be auto-calculated."
},
"drilldowns": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/DrilldownTypes"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional list of drilldowns to attach to this panel.",
"title": "Drilldowns"
},
"section": {
"$ref": "#/$defs/SectionConfig",
"description": "Section configuration including collapsed state and inner panels."
}
},
"required": [
"section"
],
"title": "CollapsiblePanel",
"type": "object"
},
"ColorRangeMapping": {
"additionalProperties": false,
"description": "Range/threshold-based color mapping for numeric values.",
"properties": {
"range_type": {
"default": "number",
"description": "How threshold values are interpreted by Kibana.",
"enum": [
"number",
"percent"
],
"title": "Range Type",
"type": "string"
},
"range_min": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": 0,
"description": "Optional lower bound for the palette domain. Use null for auto/open lower bound.",
"title": "Range Min"
},
"range_max": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional upper bound for the palette domain. Use null for auto/open upper bound.",
"title": "Range Max"
},
"thresholds": {
"description": "Ordered threshold bands used to build gauge-style color palettes.",
"items": {
"$ref": "#/$defs/ColorThreshold"
},
"minItems": 1,
"title": "Thresholds",
"type": "array"
}
},
"required": [
"thresholds"
],
"title": "ColorRangeMapping",
"type": "object"
},
"ColorThreshold": {
"additionalProperties": false,
"description": "Single threshold band in a range-based color map.",
"properties": {
"up_to": {
"description": "Upper bound for this threshold band.",
"title": "Up To",
"type": "number"
},
"color": {
"description": "The color applied within this threshold band (hex color code).",
"title": "Color",
"type": "string"
}
},
"required": [
"up_to",
"color"
],
"title": "ColorThreshold",
"type": "object"
},
"ColorValueAssignment": {
"additionalProperties": false,
"description": "Manual color assignment to specific categorical values.",
"properties": {
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A single category value to assign a color to.",
"title": "Value"
},
"values": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Multiple category values to assign the same color to.",
"title": "Values"
},
"color": {
"description": "The hex color code to assign (e.g., '#FF0000').",
"title": "Color",
"type": "string"
}
},
"required": [
"color"
],
"title": "ColorValueAssignment",
"type": "object"
},
"ColorValueMapping": {
"additionalProperties": false,
"description": "Categorical color mapping for charts keyed by exact values.",
"properties": {
"palette": {
"default": "eui_amsterdam_color_blind",
"description": "The palette ID to use for unassigned colors.\n\nAvailable palettes:\n- 'default' - Standard EUI palette\n- 'eui_amsterdam_color_blind' - Color-blind safe palette (default)\n- 'kibana_palette' or 'legacy' - Legacy Kibana colors\n- 'elastic_brand' - Elastic brand colors\n- 'gray' - Grayscale palette",
"title": "Palette",
"type": "string"
},
"assignments": {
"description": "Manual color assignments to specific data values.",
"items": {
"$ref": "#/$defs/ColorValueAssignment"
},
"title": "Assignments",
"type": "array"
}
},
"title": "ColorValueMapping",
"type": "object"
},
"ControlSettings": {
"additionalProperties": false,
"description": "Settings for controls in a dashboard, defining their behavior and appearance.",
"properties": {
"label_position": {
"anyOf": [
{
"enum": [
"inline",
"above"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The position of the control label, either 'inline' or 'above'. Defaults to 'inline' if not set.",
"title": "Label Position"
},
"apply_global_filters": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to apply global filters to the control. Defaults to true if not set.",
"title": "Apply Global Filters"
},
"apply_global_timerange": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to apply the global time range to the control. Defaults to true if not set.",
"title": "Apply Global Timerange"
},
"ignore_zero_results": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to ignore controls that return zero results. Defaults to true if not set.",
"title": "Ignore Zero Results"
},
"chain_controls": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to chain controls together, allowing one control's selection to filter the next. Defaults to true if not set.",
"title": "Chain Controls"
},
"click_to_apply": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to require users to click the apply button before applying changes. Defaults to false if not set.",
"title": "Click To Apply"
}
},
"title": "ControlSettings",
"type": "object"
},
"ControlTypes": {
"anyOf": [
{
"$ref": "#/$defs/RangeSliderControl"
},
{
"$ref": "#/$defs/OptionsListControl"
},
{
"$ref": "#/$defs/TimeSliderControl"
},
{
"$ref": "#/$defs/ESQLFieldControl"
},
{
"$ref": "#/$defs/ESQLFunctionControl"
},
{
"$ref": "#/$defs/ESQLStaticSingleSelectControl"
},
{
"$ref": "#/$defs/ESQLStaticMultiSelectControl"
},
{
"$ref": "#/$defs/ESQLQuerySingleSelectControl"
},
{
"$ref": "#/$defs/ESQLQueryMultiSelectControl"
}
]
},
"CustomFilter": {
"additionalProperties": false,
"description": "Represents a custom filter configuration in the Config schema.\n\nThis filter allows for custom query definitions that do not fit into the standard filters.",
"properties": {
"alias": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional alias for the filter, used for display purposes.",
"title": "Alias"
},
"disabled": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Indicates whether the filter is disabled. If `true`, the filter will not be applied.",
"title": "Disabled"
},
"dsl": {
"additionalProperties": true,
"description": "The custom query definition. This should be a valid Elasticsearch query object.",
"title": "Dsl",
"type": "object"
}
},
"required": [
"dsl"
],
"title": "CustomFilter",
"type": "object"
},
"DashboardDrilldown": {
"additionalProperties": false,
"description": "Dashboard-to-dashboard drilldown configuration.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional unique identifier for the drilldown. If not provided, one will be generated.",
"title": "Id"
},
"name": {
"description": "Display name for the drilldown.",
"title": "Name",
"type": "string"
},
"triggers": {
"description": "List of triggers that activate this drilldown. Defaults to ['click'].",
"items": {
"$ref": "#/$defs/DrilldownTrigger"
},
"title": "Triggers",
"type": "array"
},
"dashboard": {
"description": "Target dashboard ID or friendly identifier.",
"title": "Dashboard",
"type": "string"
},
"with_filters": {
"default": true,
"description": "Whether to carry over current filters to the target dashboard. Defaults to True.",
"title": "With Filters",
"type": "boolean"
},
"with_time": {
"default": true,
"description": "Whether to carry over current time range to the target dashboard. Defaults to True.",
"title": "With Time",
"type": "boolean"
}
},
"required": [
"name",
"dashboard"
],
"title": "DashboardDrilldown",
"type": "object"
},
"DashboardLink": {
"additionalProperties": false,
"description": "Represents a link to another dashboard within a Links panel.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional unique identifier for the link. Not normally required.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The text that will be displayed for the link. Kibana defaults to showing the URL if not set.",
"title": "Label"
},
"dashboard": {
"description": "The ID of the dashboard that the link points to.",
"title": "Dashboard",
"type": "string"
},
"new_tab": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, links will open in a new browser tab. Kibana defaults to `false` if not set.",
"title": "New Tab"
},
"with_time": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, the links will inherit the time range from the dashboard. Kibana defaults to `True` if not set.",
"title": "With Time"
},
"with_filters": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, the links will inherit the filters from the dashboard. Kibana defaults to `True` if not set.",
"title": "With Filters"
}
},
"required": [
"dashboard"
],
"title": "DashboardLink",
"type": "object"
},
"DashboardPanelTypes": {
"oneOf": [
{
"$ref": "#/$defs/MarkdownPanel"
},
{
"$ref": "#/$defs/SearchPanel"
},
{
"$ref": "#/$defs/LinksPanel"
},
{
"$ref": "#/$defs/ImagePanel"
},
{
"$ref": "#/$defs/LensPanel"
},
{
"$ref": "#/$defs/ESQLPanel"
},
{
"$ref": "#/$defs/VegaPanel"
},
{
"$ref": "#/$defs/CollapsiblePanel"
}
]
},
"DashboardSettings": {
"additionalProperties": false,
"description": "Global settings for a dashboard with options for margins, synchronization of colors.",
"properties": {
"margins": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to put space between panels in the dashboard. Defaults to true if not set.",
"title": "Margins"
},
"sync": {
"$ref": "#/$defs/DashboardSyncSettings"
},
"controls": {
"$ref": "#/$defs/ControlSettings"
},
"titles": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to display the titles in the panel headers. Defaults to true if not set.",
"title": "Titles"
},
"layout_algorithm": {
"default": "up-left",
"description": "The auto-layout algorithm to use for positioning panels without explicit coordinates. Defaults to 'up-left'.",
"enum": [
"up-left",
"left-right",
"blocked",
"first-available-gap"
],
"title": "Layout Algorithm",
"type": "string"
}
},
"title": "DashboardSettings",
"type": "object"
},
"DashboardSyncSettings": {
"additionalProperties": false,
"description": "Configure whether cursor, tooltips, and colors should sync across panels.",
"properties": {
"cursor": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to synchronize the cursor across related panels. Defaults to true if not set.",
"title": "Cursor"
},
"tooltips": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to synchronize tooltips across related panels. Defaults to false if not set.",
"title": "Tooltips"
},
"colors": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to apply the same color palette to all panels on the dashboard. Defaults to false if not set.",
"title": "Colors"
}
},
"title": "DashboardSyncSettings",
"type": "object"
},
"DatatableAlignmentEnum": {
"description": "Alignment options for datatable columns.",
"enum": [
"left",
"right",
"center"
],
"title": "DatatableAlignmentEnum",
"type": "string"
},
"DatatableAppearance": {
"additionalProperties": false,
"description": "Appearance settings for datatable visualization.",
"properties": {
"row_height": {
"$ref": "#/$defs/DatatableRowHeightEnum",
"default": "auto",
"description": "Row height mode."
},
"row_height_lines": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Number of lines for custom row height (only used with row_height='custom').",
"title": "Row Height Lines"
},
"header_row_height": {
"$ref": "#/$defs/DatatableRowHeightEnum",
"default": "auto",
"description": "Header row height mode."
},
"header_row_height_lines": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Number of lines for custom header row height (only used with header_row_height='custom').",
"title": "Header Row Height Lines"
},
"density": {
"$ref": "#/$defs/DatatableDensityEnum",
"default": "normal",
"description": "Grid density setting."
}
},
"title": "DatatableAppearance",
"type": "object"
},
"DatatableColorModeEnum": {
"description": "Color mode options for datatable columns.",
"enum": [
"none",
"cell",
"text"
],
"title": "DatatableColorModeEnum",
"type": "string"
},
"DatatableColumnAppearance": {
"additionalProperties": false,
"description": "Appearance options shared by datatable metric and dimension columns.",
"properties": {
"width": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Column width in pixels.",
"title": "Width"
},
"hidden": {
"default": false,
"description": "Whether to hide this column.",
"title": "Hidden",
"type": "boolean"
},
"one_click_filter": {
"default": false,
"description": "Enable one-click filtering for this column.",
"title": "One Click Filter",
"type": "boolean"
},
"alignment": {
"anyOf": [
{
"$ref": "#/$defs/DatatableAlignmentEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Text alignment for the column."
}
},
"title": "DatatableColumnAppearance",
"type": "object"
},
"DatatableDensityEnum": {
"description": "Density options for datatable.",
"enum": [
"compact",
"normal",
"expanded"
],
"title": "DatatableDensityEnum",
"type": "string"
},
"DatatableLensCountAggregatedMetric": {
"additionalProperties": false,
"description": "Datatable count metric with appearance options.",
"properties": {
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/DatatableMetricAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Presentation options for this metric (width, alignment, summary row, etc.)."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/DatatableMetricColor"
},
{
"type": "null"
}
],
"default": null,
"description": "Color display mode and optional range mapping for this metric."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"default": "count",
"enum": [
"count",
"unique_count"
],
"title": "Aggregation",
"type": "string"
},
"field": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The field to count. If not provided, the count will be of all documents in the data view.",
"title": "Field"
},
"exclude_zeros": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to exclude zero values from the count. Kibana defaults to true if not specified.",
"title": "Exclude Zeros"
}
},
"title": "DatatableLensCountAggregatedMetric",
"type": "object"
},
"DatatableLensDateHistogramBreakdown": {
"additionalProperties": false,
"description": "Datatable date-histogram breakdown with appearance options and collapse support.",
"properties": {
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/DatatableColumnAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Presentation options for this dimension."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the dimension. If not provided, a label may be inferred from the field and type.",
"title": "Label"
},
"type": {
"const": "date_histogram",
"default": "date_histogram",
"title": "Type",
"type": "string"
},
"field": {
"description": "The name of the field in the data view that this dimension is based on.",
"title": "Field",
"type": "string"
},
"minimum_interval": {
"anyOf": [
{
"$ref": "#/$defs/LensDateMathMinimumInterval"
},
{
"type": "null"
}
],
"default": null,
"description": "The minimum interval using Elasticsearch date math format (e.g. `1m`, `1h`). Defaults to `auto`."
},
"partial_intervals": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, show partial intervals. Kibana defaults to `true` if not specified.",
"title": "Partial Intervals"
},
"collapse": {
"anyOf": [
{
"$ref": "#/$defs/CollapseAggregationEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Aggregate all breakdown values into a single bucket using this function (sum, avg, min, max)."
}
},
"required": [
"field"
],
"title": "DatatableLensDateHistogramBreakdown",
"type": "object"
},
"DatatableLensDateHistogramDimension": {
"additionalProperties": false,
"description": "Datatable date-histogram dimension with appearance options.",
"properties": {
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/DatatableColumnAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Presentation options for this dimension."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the dimension. If not provided, a label may be inferred from the field and type.",
"title": "Label"
},
"type": {
"const": "date_histogram",
"default": "date_histogram",
"title": "Type",
"type": "string"
},
"field": {
"description": "The name of the field in the data view that this dimension is based on.",
"title": "Field",
"type": "string"
},
"minimum_interval": {
"anyOf": [
{
"$ref": "#/$defs/LensDateMathMinimumInterval"
},
{
"type": "null"
}
],
"default": null,
"description": "The minimum interval using Elasticsearch date math format (e.g. `1m`, `1h`). Defaults to `auto`."
},
"partial_intervals": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, show partial intervals. Kibana defaults to `true` if not specified.",
"title": "Partial Intervals"
}
},
"required": [
"field"
],
"title": "DatatableLensDateHistogramDimension",
"type": "object"
},
"DatatableLensFiltersBreakdown": {
"additionalProperties": false,
"description": "Datatable filters breakdown with appearance options and collapse support.",
"properties": {
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/DatatableColumnAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Presentation options for this dimension."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the dimension. If not provided, a label may be inferred from the field and type.",
"title": "Label"
},
"type": {
"const": "filters",
"default": "filters",
"title": "Type",
"type": "string"
},
"filters": {
"description": "The filters to use for the dimension.",
"items": {
"$ref": "#/$defs/LensFiltersDimensionFilter"
},
"title": "Filters",
"type": "array"
},
"collapse": {
"anyOf": [
{
"$ref": "#/$defs/CollapseAggregationEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Aggregate all breakdown values into a single bucket using this function (sum, avg, min, max)."
}
},
"required": [
"filters"
],
"title": "DatatableLensFiltersBreakdown",
"type": "object"
},
"DatatableLensFiltersDimension": {
"additionalProperties": false,
"description": "Datatable filters dimension with appearance options.",
"properties": {
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/DatatableColumnAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Presentation options for this dimension."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the dimension. If not provided, a label may be inferred from the field and type.",
"title": "Label"
},
"type": {
"const": "filters",
"default": "filters",
"title": "Type",
"type": "string"
},
"filters": {
"description": "The filters to use for the dimension.",
"items": {
"$ref": "#/$defs/LensFiltersDimensionFilter"
},
"title": "Filters",
"type": "array"
}
},
"required": [
"filters"
],
"title": "DatatableLensFiltersDimension",
"type": "object"
},
"DatatableLensFormulaMetric": {
"additionalProperties": false,
"description": "Datatable formula metric with appearance options.",
"properties": {
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/DatatableMetricAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Presentation options for this metric (width, alignment, summary row, etc.)."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/DatatableMetricColor"
},
{
"type": "null"
}
],
"default": null,
"description": "Color display mode and optional range mapping for this metric."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"formula": {
"description": "The formula string to be evaluated for this metric.",
"title": "Formula",
"type": "string"
}
},
"required": [
"formula"
],
"title": "DatatableLensFormulaMetric",
"type": "object"
},
"DatatableLensIntervalsBreakdown": {
"additionalProperties": false,
"description": "Datatable intervals breakdown with appearance options and collapse support.",
"properties": {
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/DatatableColumnAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Presentation options for this dimension."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the dimension. If not provided, a label may be inferred from the field and type.",
"title": "Label"
},
"type": {
"const": "intervals",
"default": "intervals",
"title": "Type",
"type": "string"
},
"field": {
"description": "The name of the field in the data view that this dimension is based on.",
"title": "Field",
"type": "string"
},
"intervals": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/LensIntervalsDimensionInterval"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "The intervals to use for the dimension. If not provided, intervals will be automatically picked.",
"title": "Intervals"
},
"granularity": {
"anyOf": [
{
"maximum": 7,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Interval granularity divides the field into evenly spaced intervals based on the minimum and maximum values for the field.\nKibana defaults to 4 if not specified.",
"title": "Granularity"
},
"include_empty_intervals": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, include empty histogram buckets. Defaults to `true`.",
"title": "Include Empty Intervals"
},
"collapse": {
"anyOf": [
{
"$ref": "#/$defs/CollapseAggregationEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Aggregate all breakdown values into a single bucket using this function (sum, avg, min, max)."
}
},
"required": [
"field"
],
"title": "DatatableLensIntervalsBreakdown",
"type": "object"
},
"DatatableLensIntervalsDimension": {
"additionalProperties": false,
"description": "Datatable intervals dimension with appearance options.",
"properties": {
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/DatatableColumnAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Presentation options for this dimension."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the dimension. If not provided, a label may be inferred from the field and type.",
"title": "Label"
},
"type": {
"const": "intervals",
"default": "intervals",
"title": "Type",
"type": "string"
},
"field": {
"description": "The name of the field in the data view that this dimension is based on.",
"title": "Field",
"type": "string"
},
"intervals": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/LensIntervalsDimensionInterval"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "The intervals to use for the dimension. If not provided, intervals will be automatically picked.",
"title": "Intervals"
},
"granularity": {
"anyOf": [
{
"maximum": 7,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Interval granularity divides the field into evenly spaced intervals based on the minimum and maximum values for the field.\nKibana defaults to 4 if not specified.",
"title": "Granularity"
},
"include_empty_intervals": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, include empty histogram buckets. Defaults to `true`.",
"title": "Include Empty Intervals"
}
},
"required": [
"field"
],
"title": "DatatableLensIntervalsDimension",
"type": "object"
},
"DatatableLensLastValueAggregatedMetric": {
"additionalProperties": false,
"description": "Datatable last-value metric with appearance options.",
"properties": {
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/DatatableMetricAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Presentation options for this metric (width, alignment, summary row, etc.)."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/DatatableMetricColor"
},
{
"type": "null"
}
],
"default": null,
"description": "Color display mode and optional range mapping for this metric."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"const": "last_value",
"default": "last_value",
"title": "Aggregation",
"type": "string"
},
"field": {
"title": "Field",
"type": "string"
},
"date_field": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The field used to determine the 'last' value.",
"title": "Date Field"
}
},
"required": [
"field"
],
"title": "DatatableLensLastValueAggregatedMetric",
"type": "object"
},
"DatatableLensMultiTermsBreakdown": {
"additionalProperties": false,
"description": "Datatable multi-terms breakdown with appearance options and collapse support.",
"properties": {
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/DatatableColumnAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Presentation options for this dimension."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the dimension. If not provided, a label may be inferred from the field and type.",
"title": "Label"
},
"type": {
"const": "values",
"default": "values",
"title": "Type",
"type": "string"
},
"size": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The number of top terms to display.",
"title": "Size"
},
"sort": {
"anyOf": [
{
"$ref": "#/$defs/Sort"
},
{
"type": "null"
}
],
"default": null,
"description": "The sort configuration for the terms."
},
"show_other_bucket": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, show a bucket for terms not included in the top size. Defaults to `true`.",
"title": "Show Other Bucket"
},
"include_missing_values": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, show a bucket for documents with a missing value for the field. Defaults to `false`.",
"title": "Include Missing Values"
},
"include": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of terms to include. Can be used with or without `include_is_regex`.",
"title": "Include"
},
"exclude": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of terms to exclude. Can be used with or without `exclude_is_regex`.",
"title": "Exclude"
},
"include_is_regex": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, treat the values in the `include` list as regular expressions. Defaults to `false`.",
"title": "Include Is Regex"
},
"exclude_is_regex": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, treat the values in the `exclude` list as regular expressions. Defaults to `false`.",
"title": "Exclude Is Regex"
},
"fields": {
"description": "List of field names for multi-field aggregation. Requires at least 2 fields.",
"items": {
"type": "string"
},
"minItems": 2,
"title": "Fields",
"type": "array"
},
"collapse": {
"anyOf": [
{
"$ref": "#/$defs/CollapseAggregationEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Aggregate all breakdown values into a single bucket using this function (sum, avg, min, max)."
}
},
"required": [
"fields"
],
"title": "DatatableLensMultiTermsBreakdown",
"type": "object"
},
"DatatableLensMultiTermsDimension": {
"additionalProperties": false,
"description": "Datatable multi-terms dimension with appearance options.",
"properties": {
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/DatatableColumnAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Presentation options for this dimension."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the dimension. If not provided, a label may be inferred from the field and type.",
"title": "Label"
},
"type": {
"const": "values",
"default": "values",
"title": "Type",
"type": "string"
},
"size": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The number of top terms to display.",
"title": "Size"
},
"sort": {
"anyOf": [
{
"$ref": "#/$defs/Sort"
},
{
"type": "null"
}
],
"default": null,
"description": "The sort configuration for the terms."
},
"show_other_bucket": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, show a bucket for terms not included in the top size. Defaults to `true`.",
"title": "Show Other Bucket"
},
"include_missing_values": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, show a bucket for documents with a missing value for the field. Defaults to `false`.",
"title": "Include Missing Values"
},
"include": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of terms to include. Can be used with or without `include_is_regex`.",
"title": "Include"
},
"exclude": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of terms to exclude. Can be used with or without `exclude_is_regex`.",
"title": "Exclude"
},
"include_is_regex": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, treat the values in the `include` list as regular expressions. Defaults to `false`.",
"title": "Include Is Regex"
},
"exclude_is_regex": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, treat the values in the `exclude` list as regular expressions. Defaults to `false`.",
"title": "Exclude Is Regex"
},
"fields": {
"description": "List of field names for multi-field aggregation. Requires at least 2 fields.",
"items": {
"type": "string"
},
"minItems": 2,
"title": "Fields",
"type": "array"
}
},
"required": [
"fields"
],
"title": "DatatableLensMultiTermsDimension",
"type": "object"
},
"DatatableLensOtherAggregatedMetric": {
"additionalProperties": false,
"description": "Datatable min/max/median/average metric with appearance options.",
"properties": {
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/DatatableMetricAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Presentation options for this metric (width, alignment, summary row, etc.)."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/DatatableMetricColor"
},
{
"type": "null"
}
],
"default": null,
"description": "Color display mode and optional range mapping for this metric."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"description": "The aggregation type for the metric (e.g., 'min', 'max', 'median', 'average', 'standard_deviation').",
"enum": [
"min",
"max",
"median",
"average",
"standard_deviation"
],
"title": "Aggregation",
"type": "string"
},
"field": {
"title": "Field",
"type": "string"
}
},
"required": [
"aggregation",
"field"
],
"title": "DatatableLensOtherAggregatedMetric",
"type": "object"
},
"DatatableLensPercentileAggregatedMetric": {
"additionalProperties": false,
"description": "Datatable percentile metric with appearance options.",
"properties": {
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/DatatableMetricAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Presentation options for this metric (width, alignment, summary row, etc.)."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/DatatableMetricColor"
},
{
"type": "null"
}
],
"default": null,
"description": "Color display mode and optional range mapping for this metric."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"const": "percentile",
"default": "percentile",
"title": "Aggregation",
"type": "string"
},
"field": {
"title": "Field",
"type": "string"
},
"percentile": {
"title": "Percentile",
"type": "integer"
}
},
"required": [
"field",
"percentile"
],
"title": "DatatableLensPercentileAggregatedMetric",
"type": "object"
},
"DatatableLensPercentileRankAggregatedMetric": {
"additionalProperties": false,
"description": "Datatable percentile-rank metric with appearance options.",
"properties": {
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/DatatableMetricAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Presentation options for this metric (width, alignment, summary row, etc.)."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/DatatableMetricColor"
},
{
"type": "null"
}
],
"default": null,
"description": "Color display mode and optional range mapping for this metric."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"const": "percentile_rank",
"default": "percentile_rank",
"title": "Aggregation",
"type": "string"
},
"field": {
"title": "Field",
"type": "string"
},
"rank": {
"title": "Rank",
"type": "integer"
}
},
"required": [
"field",
"rank"
],
"title": "DatatableLensPercentileRankAggregatedMetric",
"type": "object"
},
"DatatableLensSumAggregatedMetric": {
"additionalProperties": false,
"description": "Datatable sum metric with appearance options.",
"properties": {
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/DatatableMetricAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Presentation options for this metric (width, alignment, summary row, etc.)."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/DatatableMetricColor"
},
{
"type": "null"
}
],
"default": null,
"description": "Color display mode and optional range mapping for this metric."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"const": "sum",
"default": "sum",
"title": "Aggregation",
"type": "string"
},
"field": {
"title": "Field",
"type": "string"
},
"exclude_zeros": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to exclude zero values from the sum. Kibana defaults to true if not specified.",
"title": "Exclude Zeros"
}
},
"required": [
"field"
],
"title": "DatatableLensSumAggregatedMetric",
"type": "object"
},
"DatatableLensTermsBreakdown": {
"additionalProperties": false,
"description": "Datatable top-values breakdown with appearance options and collapse support.",
"properties": {
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/DatatableColumnAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Presentation options for this dimension."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the dimension. If not provided, a label may be inferred from the field and type.",
"title": "Label"
},
"type": {
"const": "values",
"default": "values",
"title": "Type",
"type": "string"
},
"size": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The number of top terms to display.",
"title": "Size"
},
"sort": {
"anyOf": [
{
"$ref": "#/$defs/Sort"
},
{
"type": "null"
}
],
"default": null,
"description": "The sort configuration for the terms."
},
"show_other_bucket": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, show a bucket for terms not included in the top size. Defaults to `true`.",
"title": "Show Other Bucket"
},
"include_missing_values": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, show a bucket for documents with a missing value for the field. Defaults to `false`.",
"title": "Include Missing Values"
},
"include": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of terms to include. Can be used with or without `include_is_regex`.",
"title": "Include"
},
"exclude": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of terms to exclude. Can be used with or without `exclude_is_regex`.",
"title": "Exclude"
},
"include_is_regex": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, treat the values in the `include` list as regular expressions. Defaults to `false`.",
"title": "Include Is Regex"
},
"exclude_is_regex": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, treat the values in the `exclude` list as regular expressions. Defaults to `false`.",
"title": "Exclude Is Regex"
},
"field": {
"description": "The name of the field in the data view that this dimension is based on.",
"title": "Field",
"type": "string"
},
"collapse": {
"anyOf": [
{
"$ref": "#/$defs/CollapseAggregationEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Aggregate all breakdown values into a single bucket using this function (sum, avg, min, max)."
}
},
"required": [
"field"
],
"title": "DatatableLensTermsBreakdown",
"type": "object"
},
"DatatableLensTermsDimension": {
"additionalProperties": false,
"description": "Datatable top-values dimension with appearance options.",
"properties": {
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/DatatableColumnAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Presentation options for this dimension."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the dimension. If not provided, a label may be inferred from the field and type.",
"title": "Label"
},
"type": {
"const": "values",
"default": "values",
"title": "Type",
"type": "string"
},
"size": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The number of top terms to display.",
"title": "Size"
},
"sort": {
"anyOf": [
{
"$ref": "#/$defs/Sort"
},
{
"type": "null"
}
],
"default": null,
"description": "The sort configuration for the terms."
},
"show_other_bucket": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, show a bucket for terms not included in the top size. Defaults to `true`.",
"title": "Show Other Bucket"
},
"include_missing_values": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, show a bucket for documents with a missing value for the field. Defaults to `false`.",
"title": "Include Missing Values"
},
"include": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of terms to include. Can be used with or without `include_is_regex`.",
"title": "Include"
},
"exclude": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of terms to exclude. Can be used with or without `exclude_is_regex`.",
"title": "Exclude"
},
"include_is_regex": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, treat the values in the `include` list as regular expressions. Defaults to `false`.",
"title": "Include Is Regex"
},
"exclude_is_regex": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, treat the values in the `exclude` list as regular expressions. Defaults to `false`.",
"title": "Exclude Is Regex"
},
"field": {
"description": "The name of the field in the data view that this dimension is based on.",
"title": "Field",
"type": "string"
}
},
"required": [
"field"
],
"title": "DatatableLensTermsDimension",
"type": "object"
},
"DatatableMetricAppearance": {
"additionalProperties": false,
"description": "Appearance options specific to datatable metric columns.",
"properties": {
"width": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Column width in pixels.",
"title": "Width"
},
"hidden": {
"default": false,
"description": "Whether to hide this column.",
"title": "Hidden",
"type": "boolean"
},
"one_click_filter": {
"default": false,
"description": "Enable one-click filtering for this column.",
"title": "One Click Filter",
"type": "boolean"
},
"alignment": {
"anyOf": [
{
"$ref": "#/$defs/DatatableAlignmentEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Text alignment for the column."
},
"summary_row": {
"anyOf": [
{
"$ref": "#/$defs/DatatableSummaryRowEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Summary function to display at the bottom of the metric column."
},
"summary_label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Custom label for the summary row.",
"title": "Summary Label"
}
},
"title": "DatatableMetricAppearance",
"type": "object"
},
"DatatableMetricColor": {
"additionalProperties": false,
"description": "Color settings for datatable metric appearance.",
"properties": {
"apply_to": {
"anyOf": [
{
"$ref": "#/$defs/DatatableColorModeEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "How to apply colors to the metric column."
},
"range_type": {
"default": "number",
"description": "How threshold values are interpreted by Kibana.",
"enum": [
"number",
"percent"
],
"title": "Range Type",
"type": "string"
},
"range_min": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": 0,
"description": "Optional lower bound for the palette domain.",
"title": "Range Min"
},
"range_max": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional upper bound for the palette domain.",
"title": "Range Max"
},
"thresholds": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/ColorThreshold"
},
"minItems": 1,
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Ordered threshold bands used to build datatable palettes.",
"title": "Thresholds"
}
},
"title": "DatatableMetricColor",
"type": "object"
},
"DatatablePagingConfig": {
"additionalProperties": false,
"description": "Pagination configuration for datatable.",
"properties": {
"enabled": {
"default": true,
"description": "Whether pagination is enabled.",
"title": "Enabled",
"type": "boolean"
},
"page_size": {
"default": 10,
"description": "Number of rows per page.",
"title": "Page Size",
"type": "integer"
}
},
"title": "DatatablePagingConfig",
"type": "object"
},
"DatatableRowHeightEnum": {
"description": "Row height options for datatable.",
"enum": [
"auto",
"single",
"custom"
],
"title": "DatatableRowHeightEnum",
"type": "string"
},
"DatatableSortingConfig": {
"additionalProperties": false,
"description": "Sorting configuration for datatable.",
"properties": {
"column_id": {
"description": "The ID of the column to sort by.",
"title": "Column Id",
"type": "string"
},
"direction": {
"default": "asc",
"description": "Sort direction.",
"enum": [
"asc",
"desc"
],
"title": "Direction",
"type": "string"
}
},
"required": [
"column_id"
],
"title": "DatatableSortingConfig",
"type": "object"
},
"DatatableSummaryRowEnum": {
"description": "Summary row options for datatable columns.",
"enum": [
"none",
"sum",
"avg",
"count",
"min",
"max"
],
"title": "DatatableSummaryRowEnum",
"type": "string"
},
"DrilldownTrigger": {
"description": "User-facing drilldown trigger types.",
"enum": [
"click",
"filter",
"range"
],
"title": "DrilldownTrigger",
"type": "string"
},
"DrilldownTypes": {
"anyOf": [
{
"$ref": "#/$defs/DashboardDrilldown"
},
{
"$ref": "#/$defs/UrlDrilldown"
}
]
},
"ESQLAreaPanelConfig": {
"additionalProperties": false,
"description": "Configuration for an ES|QL area panel.",
"properties": {
"query": {
"$ref": "#/$defs/ESQLQueryTypes",
"description": "The ES|QL query to execute."
},
"time_field": {
"default": "@timestamp",
"description": "The time field to use for the dashboard time picker. Defaults to '@timestamp'.",
"title": "Time Field",
"type": "string"
},
"dimension": {
"anyOf": [
{
"$ref": "#/$defs/ESQLDimensionTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "Defines the X-axis dimension for the chart. XY charts support 0 or 1 dimension."
},
"metrics": {
"description": "Defines the metrics for the chart. At least one metric is required.",
"items": {
"$ref": "#/$defs/ESQLXYMetricTypes"
},
"minItems": 1,
"title": "Metrics",
"type": "array"
},
"breakdown": {
"anyOf": [
{
"$ref": "#/$defs/ESQLBreakdownTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional dimension to split the series by. If provided, it will be used to break down the data into multiple series."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"legend": {
"anyOf": [
{
"$ref": "#/$defs/XYLegend"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart legend."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/ColorValueMapping"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart color palette."
},
"type": {
"const": "area",
"default": "area",
"description": "The type of XY chart to display. Defaults to 'area'.",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/AreaChartAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart appearance. AreaChartAppearance includes all line chart options plus fill_opacity."
},
"mode": {
"default": "stacked",
"description": "The stacking mode for bar and area charts. Defaults to 'stacked'.",
"enum": [
"stacked",
"unstacked",
"percentage"
],
"title": "Mode",
"type": "string"
}
},
"required": [
"query",
"metrics"
],
"title": "ESQLAreaPanelConfig",
"type": "object"
},
"ESQLBarPanelConfig": {
"additionalProperties": false,
"description": "Configuration for an ES|QL bar panel.",
"properties": {
"query": {
"$ref": "#/$defs/ESQLQueryTypes",
"description": "The ES|QL query to execute."
},
"time_field": {
"default": "@timestamp",
"description": "The time field to use for the dashboard time picker. Defaults to '@timestamp'.",
"title": "Time Field",
"type": "string"
},
"dimension": {
"anyOf": [
{
"$ref": "#/$defs/ESQLDimensionTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "Defines the X-axis dimension for the chart. XY charts support 0 or 1 dimension."
},
"metrics": {
"description": "Defines the metrics for the chart. At least one metric is required.",
"items": {
"$ref": "#/$defs/ESQLXYMetricTypes"
},
"minItems": 1,
"title": "Metrics",
"type": "array"
},
"breakdown": {
"anyOf": [
{
"$ref": "#/$defs/ESQLBreakdownTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional dimension to split the series by. If provided, it will be used to break down the data into multiple series."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"legend": {
"anyOf": [
{
"$ref": "#/$defs/XYLegend"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart legend."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/ColorValueMapping"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart color palette."
},
"type": {
"const": "bar",
"default": "bar",
"description": "The type of XY chart to display. Defaults to 'bar'.",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/BarChartAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart appearance."
},
"mode": {
"default": "stacked",
"description": "The stacking mode for bar and area charts. Defaults to 'stacked'.",
"enum": [
"stacked",
"unstacked",
"percentage"
],
"title": "Mode",
"type": "string"
}
},
"required": [
"query",
"metrics"
],
"title": "ESQLBarPanelConfig",
"type": "object"
},
"ESQLBreakdownTypes": {
"additionalProperties": false,
"description": "A breakdown dimension for ESQL charts that supports collapse aggregation.\n\nBreakdowns slice data into categories (e.g. bar segments, waffle sections).\nUnlike plain dimensions, breakdowns support the ``collapse`` aggregation\nwhich merges multiple dimension values into a single bucket using a summary function.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"field": {
"description": "The field to use for the dimension.",
"title": "Field",
"type": "string"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional display label for the dimension.",
"title": "Label"
},
"data_type": {
"anyOf": [
{
"const": "date",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The data type of the field. Set to 'date' for time/date fields to enable proper sorting and formatting.",
"title": "Data Type"
},
"collapse": {
"anyOf": [
{
"$ref": "#/$defs/CollapseAggregationEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Aggregate all breakdown values into a single bucket using this function (sum, avg, min, max)."
}
},
"required": [
"field"
],
"title": "ESQLBreakdown",
"type": "object"
},
"ESQLCustomMetricFormat": {
"additionalProperties": false,
"description": "Custom format configuration for ES|QL metrics.\n\nAllows specifying a custom number format pattern.\nThis is separate from LensCustomMetricFormat as ES|QL and Lens formatting may diverge in the future.",
"properties": {
"type": {
"const": "custom",
"default": "custom",
"title": "Type",
"type": "string"
},
"pattern": {
"description": "The pattern to display the number in.",
"title": "Pattern",
"type": "string"
}
},
"required": [
"pattern"
],
"title": "ESQLCustomMetricFormat",
"type": "object"
},
"ESQLDatatableBreakdownTypes": {
"additionalProperties": false,
"description": "Datatable ES|QL dimension with appearance options.",
"properties": {
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/DatatableColumnAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Presentation options for this dimension."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"field": {
"description": "The field to use for the dimension.",
"title": "Field",
"type": "string"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional display label for the dimension.",
"title": "Label"
},
"data_type": {
"anyOf": [
{
"const": "date",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The data type of the field. Set to 'date' for time/date fields to enable proper sorting and formatting.",
"title": "Data Type"
}
},
"required": [
"field"
],
"title": "DatatableESQLDimension",
"type": "object"
},
"ESQLDatatableDimensionTypes": {
"additionalProperties": false,
"description": "Datatable ES|QL dimension with appearance options.",
"properties": {
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/DatatableColumnAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Presentation options for this dimension."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"field": {
"description": "The field to use for the dimension.",
"title": "Field",
"type": "string"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional display label for the dimension.",
"title": "Label"
},
"data_type": {
"anyOf": [
{
"const": "date",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The data type of the field. Set to 'date' for time/date fields to enable proper sorting and formatting.",
"title": "Data Type"
}
},
"required": [
"field"
],
"title": "DatatableESQLDimension",
"type": "object"
},
"ESQLDatatableMetricTypes": {
"additionalProperties": false,
"description": "Datatable ES|QL metric with appearance options.",
"properties": {
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/DatatableMetricAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Presentation options for this metric (width, alignment, summary row, etc.)."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/DatatableMetricColor"
},
{
"type": "null"
}
],
"default": null,
"description": "Color display mode and optional range mapping for this metric."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"field": {
"description": "The field in the data view that this metric is based on.",
"title": "Field",
"type": "string"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional display label for the metric.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/ESQLMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric (number, bytes, bits, percent, duration, or custom)."
}
},
"required": [
"field"
],
"title": "DatatableESQLMetric",
"type": "object"
},
"ESQLDatatablePanelConfig": {
"additionalProperties": false,
"description": "Configuration for an ES|QL datatable panel.",
"properties": {
"query": {
"$ref": "#/$defs/ESQLQueryTypes",
"description": "The ES|QL query to execute."
},
"time_field": {
"default": "@timestamp",
"description": "The time field to use for the dashboard time picker. Defaults to '@timestamp'.",
"title": "Time Field",
"type": "string"
},
"type": {
"const": "datatable",
"default": "datatable",
"description": "The type of chart, which is 'datatable' for this visualization.",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/DatatableAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Appearance settings for the datatable."
},
"sorting": {
"anyOf": [
{
"$ref": "#/$defs/DatatableSortingConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional sorting configuration."
},
"paging": {
"anyOf": [
{
"$ref": "#/$defs/DatatablePagingConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional pagination configuration."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"metrics": {
"description": "List of ESQL metrics to display as columns.",
"items": {
"anyOf": [
{
"$ref": "#/$defs/ESQLDatatableMetricTypes"
},
{
"$ref": "#/$defs/ESQLMetricTypes"
}
]
},
"title": "Metrics",
"type": "array"
},
"breakdowns": {
"description": "List of ESQL breakdowns to use as row groupings.",
"items": {
"anyOf": [
{
"$ref": "#/$defs/ESQLDatatableBreakdownTypes"
},
{
"$ref": "#/$defs/ESQLDimensionTypes"
}
]
},
"title": "Breakdowns",
"type": "array"
},
"metrics_split_by": {
"anyOf": [
{
"items": {
"anyOf": [
{
"$ref": "#/$defs/ESQLDatatableDimensionTypes"
},
{
"$ref": "#/$defs/ESQLDimensionTypes"
}
]
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional split-metrics-by dimensions (creates separate metric columns for each dimension value).",
"title": "Metrics Split By"
}
},
"required": [
"query"
],
"title": "ESQLDatatablePanelConfig",
"type": "object"
},
"ESQLDimensionTypes": {
"additionalProperties": false,
"description": "A dimension that is defined in the ESQL query.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"field": {
"description": "The field to use for the dimension.",
"title": "Field",
"type": "string"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional display label for the dimension.",
"title": "Label"
},
"data_type": {
"anyOf": [
{
"const": "date",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The data type of the field. Set to 'date' for time/date fields to enable proper sorting and formatting.",
"title": "Data Type"
}
},
"required": [
"field"
],
"title": "ESQLDimension",
"type": "object"
},
"ESQLFieldControl": {
"additionalProperties": false,
"description": "ES|QL control for single field selection from static list.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"width": {
"anyOf": [
{
"enum": [
"small",
"medium",
"large"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The width of the control in the dashboard layout. If not set, defaults to 'medium'.",
"title": "Width"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the control. If not provided, a label may be inferred.",
"title": "Label"
},
"type": {
"const": "esql",
"default": "esql",
"title": "Type",
"type": "string"
},
"variable_name": {
"description": "The name of the ES|QL variable.",
"title": "Variable Name",
"type": "string"
},
"variable_type": {
"const": "fields",
"default": "fields",
"description": "The type of variable ('fields').",
"title": "Variable Type",
"type": "string"
},
"choices": {
"description": "The static list of available fields for this control.",
"items": {
"type": "string"
},
"title": "Choices",
"type": "array"
},
"default": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Default selected field.",
"title": "Default"
}
},
"required": [
"variable_name",
"choices"
],
"title": "ESQLFieldControl",
"type": "object"
},
"ESQLFunctionControl": {
"additionalProperties": false,
"description": "ES|QL control for single function selection from static list.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"width": {
"anyOf": [
{
"enum": [
"small",
"medium",
"large"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The width of the control in the dashboard layout. If not set, defaults to 'medium'.",
"title": "Width"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the control. If not provided, a label may be inferred.",
"title": "Label"
},
"type": {
"const": "esql",
"default": "esql",
"title": "Type",
"type": "string"
},
"variable_name": {
"description": "The name of the ES|QL variable.",
"title": "Variable Name",
"type": "string"
},
"variable_type": {
"const": "functions",
"default": "functions",
"description": "The type of variable ('functions').",
"title": "Variable Type",
"type": "string"
},
"choices": {
"description": "The static list of available functions for this control.",
"items": {
"type": "string"
},
"title": "Choices",
"type": "array"
},
"default": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Default selected function.",
"title": "Default"
}
},
"required": [
"variable_name",
"choices"
],
"title": "ESQLFunctionControl",
"type": "object"
},
"ESQLGaugePanelConfig": {
"additionalProperties": false,
"description": "Configuration for an ES|QL gauge panel.",
"properties": {
"query": {
"$ref": "#/$defs/ESQLQueryTypes",
"description": "The ES|QL query to execute."
},
"time_field": {
"default": "@timestamp",
"description": "The time field to use for the dashboard time picker. Defaults to '@timestamp'.",
"title": "Time Field",
"type": "string"
},
"type": {
"const": "gauge",
"default": "gauge",
"description": "The type of chart, which is 'gauge' for this visualization.",
"title": "Type",
"type": "string"
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/ColorRangeMapping"
},
{
"type": "null"
}
],
"default": null,
"description": "Range-based palette configuration for gauge thresholds. When set, enables palette color mode."
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/GaugeAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Visual appearance configuration for the gauge."
},
"titles_and_text": {
"anyOf": [
{
"$ref": "#/$defs/GaugeTitlesAndText"
},
{
"type": "null"
}
],
"default": null,
"description": "Title and subtitle options mapped to gauge `label_major` and `label_minor`."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"metric": {
"$ref": "#/$defs/ESQLMetric",
"description": "The primary metric to display in the gauge. This is the main value shown."
},
"minimum": {
"anyOf": [
{
"$ref": "#/$defs/ESQLMetric"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional minimum value for the gauge range, referenced from an ESQL query field."
},
"maximum": {
"anyOf": [
{
"$ref": "#/$defs/ESQLMetric"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional maximum value for the gauge range, referenced from an ESQL query field."
},
"goal": {
"anyOf": [
{
"$ref": "#/$defs/ESQLMetric"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional goal/target value to display as a reference, referenced from an ESQL query field."
}
},
"required": [
"query",
"metric"
],
"title": "ESQLGaugePanelConfig",
"type": "object"
},
"ESQLHeatmapPanelConfig": {
"additionalProperties": false,
"description": "Configuration for an ES|QL heatmap panel.",
"properties": {
"query": {
"$ref": "#/$defs/ESQLQueryTypes",
"description": "The ES|QL query to execute."
},
"time_field": {
"default": "@timestamp",
"description": "The time field to use for the dashboard time picker. Defaults to '@timestamp'.",
"title": "Time Field",
"type": "string"
},
"type": {
"const": "heatmap",
"default": "heatmap",
"description": "The type of chart, which is 'heatmap' for this visualization.",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/HeatmapAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart appearance."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/ColorRangeMapping"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional range-based palette configuration for heatmap cell coloring."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"x_axis": {
"$ref": "#/$defs/ESQLDimensionTypes",
"description": "The dimension to display on the X-axis (horizontal)."
},
"y_axis": {
"anyOf": [
{
"$ref": "#/$defs/ESQLDimensionTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The dimension to display on the Y-axis (vertical). Optional for 1D heatmaps."
},
"metric": {
"$ref": "#/$defs/ESQLMetricTypes",
"description": "The metric that determines cell color intensity."
}
},
"required": [
"query",
"x_axis",
"metric"
],
"title": "ESQLHeatmapPanelConfig",
"type": "object"
},
"ESQLLinePanelConfig": {
"additionalProperties": false,
"description": "Configuration for an ES|QL line panel.",
"properties": {
"query": {
"$ref": "#/$defs/ESQLQueryTypes",
"description": "The ES|QL query to execute."
},
"time_field": {
"default": "@timestamp",
"description": "The time field to use for the dashboard time picker. Defaults to '@timestamp'.",
"title": "Time Field",
"type": "string"
},
"dimension": {
"anyOf": [
{
"$ref": "#/$defs/ESQLDimensionTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "Defines the X-axis dimension for the chart. XY charts support 0 or 1 dimension."
},
"metrics": {
"description": "Defines the metrics for the chart. At least one metric is required.",
"items": {
"$ref": "#/$defs/ESQLXYMetricTypes"
},
"minItems": 1,
"title": "Metrics",
"type": "array"
},
"breakdown": {
"anyOf": [
{
"$ref": "#/$defs/ESQLBreakdownTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional dimension to split the series by. If provided, it will be used to break down the data into multiple series."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"legend": {
"anyOf": [
{
"$ref": "#/$defs/XYLegend"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart legend."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/ColorValueMapping"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart color palette."
},
"type": {
"const": "line",
"default": "line",
"description": "The type of XY chart to display. Defaults to 'line'.",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/LineChartAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart appearance."
}
},
"required": [
"query",
"metrics"
],
"title": "ESQLLinePanelConfig",
"type": "object"
},
"ESQLMetric": {
"additionalProperties": false,
"description": "A metric that is defined in the ESQL query.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"field": {
"description": "The field in the data view that this metric is based on.",
"title": "Field",
"type": "string"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional display label for the metric.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/ESQLMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric (number, bytes, bits, percent, duration, or custom)."
}
},
"required": [
"field"
],
"title": "ESQLMetric",
"type": "object"
},
"ESQLMetricChartMetricTypes": {
"additionalProperties": false,
"description": "Metric chart ES|QL metric with color options.",
"properties": {
"color": {
"anyOf": [
{
"$ref": "#/$defs/MetricChartColor"
},
{
"type": "null"
}
],
"default": null,
"description": "Color range mapping and application mode for this metric."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"field": {
"description": "The field in the data view that this metric is based on.",
"title": "Field",
"type": "string"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional display label for the metric.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/ESQLMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric (number, bytes, bits, percent, duration, or custom)."
}
},
"required": [
"field"
],
"title": "MetricESQLMetric",
"type": "object"
},
"ESQLMetricFormat": {
"additionalProperties": false,
"description": "The format configuration for ES|QL metrics.\n\nSupports standard format types like number, bytes, bits, percent, and duration.\nThis is separate from LensMetricFormat as ES|QL and Lens formatting may diverge in the future.",
"properties": {
"type": {
"enum": [
"number",
"bytes",
"bits",
"percent",
"duration"
],
"title": "Type",
"type": "string"
},
"decimals": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The number of decimal places to display. If not specified, defaults to 2 for number/bytes/percent/duration, 0 for bits.",
"title": "Decimals"
},
"suffix": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The suffix to display after the number.",
"title": "Suffix"
},
"compact": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to display the number in a compact format.",
"title": "Compact"
},
"pattern": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The pattern to display the number in.",
"title": "Pattern"
}
},
"required": [
"type"
],
"title": "ESQLMetricFormat",
"type": "object"
},
"ESQLMetricFormatTypes": {
"anyOf": [
{
"$ref": "#/$defs/ESQLMetricFormat"
},
{
"$ref": "#/$defs/ESQLCustomMetricFormat"
}
]
},
"ESQLMetricPanelConfig": {
"additionalProperties": false,
"description": "Configuration for an ES|QL metric panel.",
"properties": {
"query": {
"$ref": "#/$defs/ESQLQueryTypes",
"description": "The ES|QL query to execute."
},
"time_field": {
"default": "@timestamp",
"description": "The time field to use for the dashboard time picker. Defaults to '@timestamp'.",
"title": "Time Field",
"type": "string"
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"type": {
"const": "metric",
"default": "metric",
"description": "The type of chart, which is 'metric' for this visualization.",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/MetricAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Visual appearance configuration for the metric."
},
"titles_and_text": {
"anyOf": [
{
"$ref": "#/$defs/MetricTitlesAndText"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart titles and text."
},
"primary": {
"$ref": "#/$defs/ESQLMetricChartMetricTypes",
"description": "The primary metric to display in the chart. This is the main value shown in the metric visualization."
},
"secondary": {
"anyOf": [
{
"$ref": "#/$defs/ESQLMetricChartMetricTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional secondary metric to display alongside the primary metric."
},
"maximum": {
"anyOf": [
{
"$ref": "#/$defs/ESQLMetricTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional maximum metric to display, often used for comparison or thresholds."
},
"breakdown": {
"anyOf": [
{
"$ref": "#/$defs/ESQLBreakdownTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional breakdown dimension to split metric values by category."
}
},
"required": [
"query",
"primary"
],
"title": "ESQLMetricPanelConfig",
"type": "object"
},
"ESQLMetricTypes": {
"additionalProperties": false,
"description": "A metric that is defined in the ESQL query.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"field": {
"description": "The field in the data view that this metric is based on.",
"title": "Field",
"type": "string"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional display label for the metric.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/ESQLMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric (number, bytes, bits, percent, duration, or custom)."
}
},
"required": [
"field"
],
"title": "ESQLMetric",
"type": "object"
},
"ESQLMosaicPanelConfig": {
"additionalProperties": false,
"description": "Configuration for an ES|QL mosaic panel.",
"properties": {
"query": {
"$ref": "#/$defs/ESQLQueryTypes",
"description": "The ES|QL query to execute."
},
"time_field": {
"default": "@timestamp",
"description": "The time field to use for the dashboard time picker. Defaults to '@timestamp'.",
"title": "Time Field",
"type": "string"
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"type": {
"const": "mosaic",
"default": "mosaic",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/MosaicAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart appearance."
},
"legend": {
"anyOf": [
{
"$ref": "#/$defs/MosaicLegend"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart legend."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/ColorValueMapping"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart color."
},
"metric": {
"$ref": "#/$defs/ESQLMetricTypes",
"description": "Metric that determines the size of rectangles. Mosaic charts support only one metric."
},
"dimension": {
"$ref": "#/$defs/ESQLDimensionTypes",
"description": "Primary dimension for grouping data. Mosaic charts support only one dimension."
},
"breakdown": {
"anyOf": [
{
"$ref": "#/$defs/ESQLBreakdownTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional secondary breakdown for splitting the mosaic into sub-groups."
}
},
"required": [
"query",
"metric",
"dimension"
],
"title": "ESQLMosaicPanelConfig",
"type": "object"
},
"ESQLPanel": {
"additionalProperties": false,
"description": "Represents an ES|QL chart panel.\n\nThe esql field contains a discriminated union of ES|QL chart panel configurations.\nThe chart type is determined by the 'type' field.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier for the panel. If not provided, one may be generated during compilation.",
"title": "Id"
},
"title": {
"default": "",
"description": "The title displayed on the panel header. Can be an empty string.",
"title": "Title",
"type": "string"
},
"hide_title": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, the panel title will be hidden. Defaults to `false` (title is shown).",
"title": "Hide Title"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A brief description of the panel's content or purpose. Defaults to an empty string.",
"title": "Description"
},
"size": {
"$ref": "#/$defs/Size",
"description": "Defines the panel's size on the dashboard grid."
},
"position": {
"$ref": "#/$defs/Position",
"description": "Defines the panel's position on the dashboard grid. If not specified, position will be auto-calculated."
},
"drilldowns": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/DrilldownTypes"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional list of drilldowns to attach to this panel.",
"title": "Drilldowns"
},
"esql": {
"$ref": "#/$defs/ESQLPanelConfig",
"description": "ES|QL panel configuration."
}
},
"required": [
"esql"
],
"title": "ESQLPanel",
"type": "object"
},
"ESQLPanelConfig": {
"discriminator": {
"mapping": {
"area": "#/$defs/ESQLAreaPanelConfig",
"bar": "#/$defs/ESQLBarPanelConfig",
"datatable": "#/$defs/ESQLDatatablePanelConfig",
"gauge": "#/$defs/ESQLGaugePanelConfig",
"heatmap": "#/$defs/ESQLHeatmapPanelConfig",
"line": "#/$defs/ESQLLinePanelConfig",
"metric": "#/$defs/ESQLMetricPanelConfig",
"mosaic": "#/$defs/ESQLMosaicPanelConfig",
"pie": "#/$defs/ESQLPiePanelConfig",
"tagcloud": "#/$defs/ESQLTagcloudPanelConfig",
"treemap": "#/$defs/ESQLTreemapPanelConfig",
"waffle": "#/$defs/ESQLWafflePanelConfig"
},
"propertyName": "type"
},
"oneOf": [
{
"$ref": "#/$defs/ESQLMetricPanelConfig"
},
{
"$ref": "#/$defs/ESQLGaugePanelConfig"
},
{
"$ref": "#/$defs/ESQLHeatmapPanelConfig"
},
{
"$ref": "#/$defs/ESQLPiePanelConfig"
},
{
"$ref": "#/$defs/ESQLLinePanelConfig"
},
{
"$ref": "#/$defs/ESQLBarPanelConfig"
},
{
"$ref": "#/$defs/ESQLAreaPanelConfig"
},
{
"$ref": "#/$defs/ESQLTagcloudPanelConfig"
},
{
"$ref": "#/$defs/ESQLDatatablePanelConfig"
},
{
"$ref": "#/$defs/ESQLMosaicPanelConfig"
},
{
"$ref": "#/$defs/ESQLTreemapPanelConfig"
},
{
"$ref": "#/$defs/ESQLWafflePanelConfig"
}
]
},
"ESQLPiePanelConfig": {
"additionalProperties": false,
"description": "Configuration for an ES|QL pie panel.",
"properties": {
"query": {
"$ref": "#/$defs/ESQLQueryTypes",
"description": "The ES|QL query to execute."
},
"time_field": {
"default": "@timestamp",
"description": "The time field to use for the dashboard time picker. Defaults to '@timestamp'.",
"title": "Time Field",
"type": "string"
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"type": {
"const": "pie",
"default": "pie",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/PieChartAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart appearance, including donut size."
},
"legend": {
"anyOf": [
{
"$ref": "#/$defs/PieLegend"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart legend."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/ColorValueMapping"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart color."
},
"metrics": {
"description": "Metrics that determine the size of slices.",
"items": {
"$ref": "#/$defs/ESQLMetricTypes"
},
"minItems": 1,
"title": "Metrics",
"type": "array"
},
"breakdowns": {
"description": "The breakdowns that determine the slices of the pie chart. First breakdown is primary, additional breakdowns are secondary.",
"items": {
"$ref": "#/$defs/ESQLDimensionTypes"
},
"title": "Breakdowns",
"type": "array"
}
},
"required": [
"query",
"metrics",
"breakdowns"
],
"title": "ESQLPiePanelConfig",
"type": "object"
},
"ESQLQueryMultiSelectControl": {
"additionalProperties": false,
"description": "Represents an ES|QL control with query-driven values for multiple selection.\n\nThis control dynamically fetches available values from an ES|QL query\nto filter ES|QL visualizations via variables.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"width": {
"anyOf": [
{
"enum": [
"small",
"medium",
"large"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The width of the control in the dashboard layout. If not set, defaults to 'medium'.",
"title": "Width"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the control. If not provided, a label may be inferred.",
"title": "Label"
},
"type": {
"const": "esql",
"default": "esql",
"title": "Type",
"type": "string"
},
"variable_name": {
"description": "The name of the ES|QL variable (e.g., 'status_code').",
"title": "Variable Name",
"type": "string"
},
"variable_type": {
"$ref": "#/$defs/ESQLVariableType",
"default": "values",
"description": "The type of variable ('time_literal', 'fields', 'values', 'multi_values', 'functions')."
},
"query": {
"description": "The ES|QL query that returns the available values for this control.",
"minLength": 1,
"title": "Query",
"type": "string"
},
"multiple": {
"const": true,
"default": true,
"description": "Must be True for multi-select.",
"title": "Multiple",
"type": "boolean"
},
"default": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Default selected values.",
"title": "Default"
}
},
"required": [
"variable_name",
"query"
],
"title": "ESQLQueryMultiSelectControl",
"type": "object"
},
"ESQLQuerySingleSelectControl": {
"additionalProperties": false,
"description": "Represents an ES|QL control with query-driven values for single selection.\n\nThis control dynamically fetches available values from an ES|QL query\nto filter ES|QL visualizations via variables.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"width": {
"anyOf": [
{
"enum": [
"small",
"medium",
"large"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The width of the control in the dashboard layout. If not set, defaults to 'medium'.",
"title": "Width"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the control. If not provided, a label may be inferred.",
"title": "Label"
},
"type": {
"const": "esql",
"default": "esql",
"title": "Type",
"type": "string"
},
"variable_name": {
"description": "The name of the ES|QL variable (e.g., 'status_code').",
"title": "Variable Name",
"type": "string"
},
"variable_type": {
"$ref": "#/$defs/ESQLVariableType",
"default": "values",
"description": "The type of variable ('time_literal', 'fields', 'values', 'multi_values', 'functions')."
},
"query": {
"description": "The ES|QL query that returns the available values for this control.",
"minLength": 1,
"title": "Query",
"type": "string"
},
"multiple": {
"anyOf": [
{
"const": false,
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Must be None or False for single-select.",
"title": "Multiple"
},
"default": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Default selected value.",
"title": "Default"
}
},
"required": [
"variable_name",
"query"
],
"title": "ESQLQuerySingleSelectControl",
"type": "object"
},
"ESQLQueryTypes": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"anyOf": [
{
"type": "string"
},
{
"items": {},
"type": "array"
}
]
},
"type": "array"
}
],
"description": "Represents an ESQL (Elasticsearch Query Language) query configuration.\n\nESQL is a powerful query language for Elasticsearch that provides a flexible syntax for filtering data.\n\nThe query can be provided as either:\n- A string: The complete ESQL query\n- A list of strings: Query parts that will be concatenated with pipe characters (|)\n\nThe list format supports YAML anchors for query reuse. When anchors reference arrays,\nthey create nested lists which are automatically flattened before concatenation.\n\nExample with YAML anchors:\n .base: &base_query\n - FROM logs-*\n - WHERE @timestamp > NOW() - 1h\n\n query:\n - *base_query\n - STATS count = COUNT()\n\n # Results in:\n # FROM logs-*\n # | WHERE @timestamp > NOW() - 1h\n # | STATS count = COUNT()",
"title": "ESQLQuery"
},
"ESQLStaticMultiSelectControl": {
"additionalProperties": false,
"description": "Represents an ES|QL control with static values for multiple selection.\n\nThis control allows users to select multiple values from a predefined list\nto filter ES|QL visualizations via variables.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"width": {
"anyOf": [
{
"enum": [
"small",
"medium",
"large"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The width of the control in the dashboard layout. If not set, defaults to 'medium'.",
"title": "Width"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the control. If not provided, a label may be inferred.",
"title": "Label"
},
"type": {
"const": "esql",
"default": "esql",
"title": "Type",
"type": "string"
},
"variable_name": {
"description": "The name of the ES|QL variable (e.g., 'status_code').",
"title": "Variable Name",
"type": "string"
},
"variable_type": {
"$ref": "#/$defs/ESQLVariableType",
"default": "values",
"description": "The type of variable ('time_literal', 'fields', 'values', 'multi_values', 'functions')."
},
"choices": {
"description": "The static list of available values for this control.",
"items": {
"type": "string"
},
"title": "Choices",
"type": "array"
},
"default": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Default selected values.",
"title": "Default"
},
"multiple": {
"const": true,
"default": true,
"description": "Must be True for this control type.",
"title": "Multiple",
"type": "boolean"
}
},
"required": [
"variable_name",
"choices"
],
"title": "ESQLStaticMultiSelectControl",
"type": "object"
},
"ESQLStaticSingleSelectControl": {
"additionalProperties": false,
"description": "Represents an ES|QL control with static values for single selection.\n\nThis control allows users to select a single value from a predefined list\nto filter ES|QL visualizations via variables.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"width": {
"anyOf": [
{
"enum": [
"small",
"medium",
"large"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The width of the control in the dashboard layout. If not set, defaults to 'medium'.",
"title": "Width"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the control. If not provided, a label may be inferred.",
"title": "Label"
},
"type": {
"const": "esql",
"default": "esql",
"title": "Type",
"type": "string"
},
"variable_name": {
"description": "The name of the ES|QL variable (e.g., 'status_code').",
"title": "Variable Name",
"type": "string"
},
"variable_type": {
"$ref": "#/$defs/ESQLVariableType",
"default": "values",
"description": "The type of variable ('time_literal', 'fields', 'values', 'multi_values', 'functions')."
},
"choices": {
"description": "The static list of available values for this control.",
"items": {
"type": "string"
},
"title": "Choices",
"type": "array"
},
"default": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Default selected value.",
"title": "Default"
},
"multiple": {
"anyOf": [
{
"const": false,
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If true, allow multiple selection. Must be None or False for this control type.",
"title": "Multiple"
}
},
"required": [
"variable_name",
"choices"
],
"title": "ESQLStaticSingleSelectControl",
"type": "object"
},
"ESQLTagcloudPanelConfig": {
"additionalProperties": false,
"description": "Configuration for an ES|QL tagcloud panel.",
"properties": {
"query": {
"$ref": "#/$defs/ESQLQueryTypes",
"description": "The ES|QL query to execute."
},
"time_field": {
"default": "@timestamp",
"description": "The time field to use for the dashboard time picker. Defaults to '@timestamp'.",
"title": "Time Field",
"type": "string"
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"type": {
"const": "tagcloud",
"default": "tagcloud",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/TagcloudAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart appearance."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/ColorValueMapping"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart colors."
},
"dimension": {
"$ref": "#/$defs/ESQLDimensionTypes",
"description": "The dimension for grouping (terms). This determines the tags shown in the cloud."
},
"metric": {
"$ref": "#/$defs/ESQLMetricTypes",
"description": "The metric for sizing. This determines the size of each tag."
}
},
"required": [
"query",
"dimension",
"metric"
],
"title": "ESQLTagcloudPanelConfig",
"type": "object"
},
"ESQLTreemapBreakdownTypes": {
"additionalProperties": false,
"description": "A dimension that is defined in the ESQL query.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"field": {
"description": "The field to use for the dimension.",
"title": "Field",
"type": "string"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional display label for the dimension.",
"title": "Label"
},
"data_type": {
"anyOf": [
{
"const": "date",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The data type of the field. Set to 'date' for time/date fields to enable proper sorting and formatting.",
"title": "Data Type"
}
},
"required": [
"field"
],
"title": "ESQLDimension",
"type": "object"
},
"ESQLTreemapPanelConfig": {
"additionalProperties": false,
"description": "Configuration for an ES|QL treemap panel.",
"properties": {
"query": {
"$ref": "#/$defs/ESQLQueryTypes",
"description": "The ES|QL query to execute."
},
"time_field": {
"default": "@timestamp",
"description": "The time field to use for the dashboard time picker. Defaults to '@timestamp'.",
"title": "Time Field",
"type": "string"
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"type": {
"const": "treemap",
"default": "treemap",
"description": "The type of chart, which is 'treemap' for this visualization.",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/TreemapAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart appearance."
},
"legend": {
"anyOf": [
{
"$ref": "#/$defs/TreemapLegend"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart legend."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/ColorValueMapping"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart color."
},
"metric": {
"$ref": "#/$defs/ESQLMetricTypes",
"description": "Metric that determines the rectangle sizes. Treemap supports only one metric."
},
"breakdowns": {
"description": "Breakdowns that determine treemap grouping levels. Maximum 2 breakdowns supported.",
"items": {
"$ref": "#/$defs/ESQLTreemapBreakdownTypes"
},
"maxItems": 2,
"title": "Breakdowns",
"type": "array"
}
},
"required": [
"query",
"metric",
"breakdowns"
],
"title": "ESQLTreemapPanelConfig",
"type": "object"
},
"ESQLVariableType": {
"description": "Types of ES|QL variables.\n\nThese match the ESQLVariableType enum from Kibana's kbn-esql-types package.",
"enum": [
"time_literal",
"fields",
"values",
"multi_values",
"functions"
],
"title": "ESQLVariableType",
"type": "string"
},
"ESQLWafflePanelConfig": {
"additionalProperties": false,
"description": "Configuration for an ES|QL waffle panel.",
"properties": {
"query": {
"$ref": "#/$defs/ESQLQueryTypes",
"description": "The ES|QL query to execute."
},
"time_field": {
"default": "@timestamp",
"description": "The time field to use for the dashboard time picker. Defaults to '@timestamp'.",
"title": "Time Field",
"type": "string"
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"type": {
"const": "waffle",
"default": "waffle",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/WaffleAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart appearance."
},
"legend": {
"anyOf": [
{
"$ref": "#/$defs/WaffleLegend"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart legend."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/ColorValueMapping"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart color."
},
"metric": {
"$ref": "#/$defs/ESQLMetricTypes",
"description": "Metric that determines the size of squares. Waffle charts support only one metric."
},
"breakdown": {
"anyOf": [
{
"$ref": "#/$defs/ESQLBreakdownTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional breakdown for grouping data. Waffle charts support only one breakdown."
}
},
"required": [
"query",
"metric"
],
"title": "ESQLWafflePanelConfig",
"type": "object"
},
"ESQLXYMetricTypes": {
"additionalProperties": false,
"description": "XY chart ESQL metric with appearance options.\n\nExtends ESQLMetric to include axis and color configuration\nfor use in XY charts.",
"properties": {
"axis": {
"anyOf": [
{
"enum": [
"left",
"right"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Which Y-axis to assign this metric to ('left' or 'right').",
"title": "Axis"
},
"color": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Custom color for this metric series (hex color code, e.g., '#2196F3').",
"title": "Color"
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"field": {
"description": "The field in the data view that this metric is based on.",
"title": "Field",
"type": "string"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional display label for the metric.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/ESQLMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric (number, bytes, bits, percent, duration, or custom)."
}
},
"required": [
"field"
],
"title": "XYESQLMetric",
"type": "object"
},
"ExistsFilter": {
"additionalProperties": false,
"description": "Represents an 'exists' filter configuration in the Config schema.\n\nThis filter checks for the existence or non-existence of a specific field.",
"properties": {
"alias": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional alias for the filter, used for display purposes.",
"title": "Alias"
},
"disabled": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Indicates whether the filter is disabled. If `true`, the filter will not be applied.",
"title": "Disabled"
},
"exists": {
"description": "The field name to check for existence. If the field exists in a document, it will match that document.",
"title": "Exists",
"type": "string"
}
},
"required": [
"exists"
],
"title": "ExistsFilter",
"type": "object"
},
"FilterScalar": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
},
{
"type": "boolean"
}
]
},
"FilterTypes": {
"oneOf": [
{
"$ref": "#/$defs/ExistsFilter"
},
{
"$ref": "#/$defs/PhraseFilter"
},
{
"$ref": "#/$defs/PhrasesFilter"
},
{
"$ref": "#/$defs/RangeFilter"
},
{
"$ref": "#/$defs/CustomFilter"
},
{
"$ref": "#/$defs/AndFilter"
},
{
"$ref": "#/$defs/OrFilter"
},
{
"$ref": "#/$defs/NegateFilter"
}
]
},
"GaugeAppearance": {
"additionalProperties": false,
"description": "Appearance configuration for gauge visualizations.\n\nGroups all visual styling options for gauge charts including shape, tick positioning,\nand label configuration.",
"properties": {
"shape": {
"anyOf": [
{
"enum": [
"horizontal_bullet",
"vertical_bullet",
"arc",
"circle",
"semi_circle"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The shape of the gauge visualization.",
"title": "Shape"
},
"ticks_position": {
"anyOf": [
{
"enum": [
"auto",
"bands",
"hidden"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Position of tick marks on the gauge.",
"title": "Ticks Position"
},
"label_major": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Major label text to display on the gauge.",
"title": "Label Major"
},
"label_minor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Minor label text to display on the gauge.",
"title": "Label Minor"
}
},
"title": "GaugeAppearance",
"type": "object"
},
"GaugeTitlesAndText": {
"additionalProperties": false,
"description": "Title and subtitle display options for gauges.\n\nThese fields map to Kibana gauge `labelMajor` (title) and `labelMinor` (subtitle).\n\n- ``None`` (omit): Kibana default (auto for title, hidden for subtitle)\n- ``False``: explicitly hidden\n- ``str``: custom text",
"properties": {
"title": {
"anyOf": [
{
"type": "string"
},
{
"const": false,
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Gauge title. Omit for Kibana default, ``False`` to hide, or a string for custom text.",
"title": "Title"
},
"subtitle": {
"anyOf": [
{
"type": "string"
},
{
"const": false,
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Gauge subtitle. Omit for no subtitle, ``False`` to hide, or a string for custom text.",
"title": "Subtitle"
}
},
"title": "GaugeTitlesAndText",
"type": "object"
},
"HeatmapAppearance": {
"additionalProperties": false,
"description": "Formatting options for the chart appearance.",
"properties": {
"values": {
"anyOf": [
{
"$ref": "#/$defs/HeatmapValuesConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for numeric values shown in heatmap cells."
},
"x_axis": {
"anyOf": [
{
"$ref": "#/$defs/HeatmapAxisAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for the X-axis labels and title."
},
"y_axis": {
"anyOf": [
{
"$ref": "#/$defs/HeatmapAxisAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for the Y-axis labels and title."
},
"legend": {
"anyOf": [
{
"$ref": "#/$defs/HeatmapLegendConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for the color legend."
}
},
"title": "HeatmapAppearance",
"type": "object"
},
"HeatmapAxisAppearance": {
"additionalProperties": false,
"description": "Appearance configuration for a heatmap axis.",
"properties": {
"labels": {
"anyOf": [
{
"$ref": "#/$defs/HeatmapAxisLabelsConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for axis tick labels."
},
"title": {
"anyOf": [
{
"$ref": "#/$defs/HeatmapAxisTitleConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for axis title visibility."
}
},
"title": "HeatmapAxisAppearance",
"type": "object"
},
"HeatmapAxisLabelsConfig": {
"additionalProperties": false,
"description": "Configuration for heatmap axis tick labels.",
"properties": {
"visible": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to show tick labels on the axis.",
"title": "Visible"
}
},
"title": "HeatmapAxisLabelsConfig",
"type": "object"
},
"HeatmapAxisTitleConfig": {
"additionalProperties": false,
"description": "Configuration for heatmap axis titles.",
"properties": {
"visible": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to show the axis title.",
"title": "Visible"
}
},
"title": "HeatmapAxisTitleConfig",
"type": "object"
},
"HeatmapLegendConfig": {
"additionalProperties": false,
"description": "Legend configuration for heatmap visualizations.\n\nControls the visibility and position of the color legend.\nNote: Heatmaps only support 'show' and 'hide' visibility options (not 'auto').",
"properties": {
"visible": {
"anyOf": [
{
"$ref": "#/$defs/LegendVisibleEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Visibility of the legend. Kibana defaults vary by chart type."
},
"position": {
"anyOf": [
{
"enum": [
"top",
"right",
"bottom",
"left"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Position of the legend.",
"title": "Position"
},
"width": {
"anyOf": [
{
"$ref": "#/$defs/LegendWidthEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Width of the legend."
}
},
"title": "HeatmapLegendConfig",
"type": "object"
},
"HeatmapValuesConfig": {
"additionalProperties": false,
"description": "Configuration for heatmap numeric values.",
"properties": {
"visible": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to show numeric values inside heatmap cells.",
"title": "Visible"
}
},
"title": "HeatmapValuesConfig",
"type": "object"
},
"ImagePanel": {
"additionalProperties": false,
"description": "Represents an Image panel configuration.\n\nImage panels are used to display images.\n\nExamples:\n Minimal image panel:\n ```yaml\n dashboards:\n - name: \"Branded Dashboard\"\n panels:\n - title: \"Company Logo\"\n size: { w: 16, h: 3 }\n image:\n from_url: \"https://example.com/path/to/your/logo.png\"\n ```\n\n Image panel with custom fit and background:\n ```yaml\n dashboards:\n - name: \"Dashboard with Diagram\"\n panels:\n - title: \"System Architecture Diagram\"\n size: { w: 48, h: 6 }\n image:\n from_url: \"https://example.com/path/to/architecture.svg\"\n fit: \"contain\"\n background_color: \"#f0f0f0\"\n ```",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier for the panel. If not provided, one may be generated during compilation.",
"title": "Id"
},
"title": {
"default": "",
"description": "The title displayed on the panel header. Can be an empty string.",
"title": "Title",
"type": "string"
},
"hide_title": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, the panel title will be hidden. Defaults to `false` (title is shown).",
"title": "Hide Title"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A brief description of the panel's content or purpose. Defaults to an empty string.",
"title": "Description"
},
"size": {
"$ref": "#/$defs/Size",
"description": "Defines the panel's size on the dashboard grid."
},
"position": {
"$ref": "#/$defs/Position",
"description": "Defines the panel's position on the dashboard grid. If not specified, position will be auto-calculated."
},
"drilldowns": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/DrilldownTypes"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional list of drilldowns to attach to this panel.",
"title": "Drilldowns"
},
"image": {
"$ref": "#/$defs/ImagePanelConfig",
"description": "Image panel configuration."
}
},
"required": [
"image"
],
"title": "ImagePanel",
"type": "object"
},
"ImagePanelConfig": {
"additionalProperties": false,
"description": "Configuration specific to Image panels.",
"properties": {
"from_url": {
"description": "The URL of the image to be displayed in the panel. This is a required field.",
"title": "From Url",
"type": "string"
},
"fit": {
"anyOf": [
{
"enum": [
"contain",
"cover",
"fill",
"none"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Controls how the image is sized within the panel. Defaults to \"contain\".\n\n- **contain**: Scales to fit within the panel while maintaining aspect ratio. Entire image visible.\n- **cover**: Scales to fill the panel while maintaining aspect ratio. May be cropped.\n- **fill**: Stretches or compresses to fill the panel, potentially altering aspect ratio.\n- **none**: Displays at original size. Cropped if larger, unchanged if smaller than panel.",
"title": "Fit"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Alternative text for the image, used for accessibility. Defaults to an empty string if not set.",
"title": "Description"
},
"background_color": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Background color for the image panel. Defaults to an empty string if not set.",
"title": "Background Color"
}
},
"required": [
"from_url"
],
"title": "ImagePanelConfig",
"type": "object"
},
"KqlQuery": {
"additionalProperties": false,
"description": "Represents a KQL (Kibana Query Language) query configuration.\n\nKQL is the default query language in Kibana and provides a simplified syntax for filtering data.",
"properties": {
"kql": {
"description": "The Kibana Query Language (KQL) query string to apply.",
"title": "Kql",
"type": "string"
}
},
"required": [
"kql"
],
"title": "KqlQuery",
"type": "object"
},
"LegacyQueryTypes": {
"oneOf": [
{
"$ref": "#/$defs/KqlQuery"
},
{
"$ref": "#/$defs/LuceneQuery"
}
]
},
"LegendVisibleEnum": {
"description": "Represents the possible values for the visibility of the legend in a pie chart.",
"enum": [
"show",
"hide",
"auto"
],
"title": "LegendVisibleEnum",
"type": "string"
},
"LegendWidthEnum": {
"description": "Represents the possible values for the width/size of the legend.",
"enum": [
"small",
"medium",
"large",
"extra_large"
],
"title": "LegendWidthEnum",
"type": "string"
},
"LensAggregatedMetricTypes": {
"anyOf": [
{
"$ref": "#/$defs/LensOtherAggregatedMetric"
},
{
"$ref": "#/$defs/LensLastValueAggregatedMetric"
},
{
"$ref": "#/$defs/LensCountAggregatedMetric"
},
{
"$ref": "#/$defs/LensSumAggregatedMetric"
},
{
"$ref": "#/$defs/LensPercentileRankAggregatedMetric"
},
{
"$ref": "#/$defs/LensPercentileAggregatedMetric"
}
]
},
"LensAreaChart": {
"additionalProperties": false,
"description": "Represents an Area chart configuration within a Lens panel.\n\nExamples:\n Simple area chart with time series:\n ```yaml\n lens:\n type: area\n data_view: \"logs-*\"\n dimension:\n type: date_histogram\n field: \"@timestamp\"\n metrics:\n - aggregation: count\n ```\n\n Stacked area chart with percentage mode:\n ```yaml\n lens:\n type: area\n mode: percentage\n data_view: \"metrics-*\"\n dimension:\n type: date_histogram\n field: \"@timestamp\"\n breakdown:\n type: values\n field: \"service.name\"\n metrics:\n - aggregation: count\n ```",
"properties": {
"data_view": {
"description": "The data view to use for the chart.",
"title": "Data View",
"type": "string"
},
"dimension": {
"anyOf": [
{
"$ref": "#/$defs/LensDimensionTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "Defines the X-axis dimension for the chart. XY charts support 0 or 1 dimension."
},
"metrics": {
"description": "Defines the metrics for the chart. At least one metric is required.",
"items": {
"$ref": "#/$defs/LensXYMetricTypes"
},
"minItems": 1,
"title": "Metrics",
"type": "array"
},
"breakdown": {
"anyOf": [
{
"$ref": "#/$defs/LensBreakdownTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional breakdown to split the series by. If provided, it will be used to break down the data into multiple series."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"legend": {
"anyOf": [
{
"$ref": "#/$defs/XYLegend"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart legend."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/ColorValueMapping"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart color palette."
},
"type": {
"const": "area",
"default": "area",
"description": "The type of XY chart to display. Defaults to 'area'.",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/AreaChartAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart appearance. AreaChartAppearance includes all line chart options plus fill_opacity."
},
"mode": {
"default": "stacked",
"description": "The stacking mode for bar and area charts. Defaults to 'stacked'.",
"enum": [
"stacked",
"unstacked",
"percentage"
],
"title": "Mode",
"type": "string"
}
},
"required": [
"data_view",
"metrics"
],
"title": "LensAreaChart",
"type": "object"
},
"LensAreaPanelConfig": {
"additionalProperties": false,
"description": "Configuration for a Lens area panel.",
"properties": {
"filters": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/FilterTypes"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of filters to apply to the panel.",
"title": "Filters"
},
"query": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The query to be executed."
},
"layers": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/MultiLayerChartTypes"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional additional layers for multi-layer XY charts (including reference lines).",
"title": "Layers"
},
"data_view": {
"description": "The data view to use for the chart.",
"title": "Data View",
"type": "string"
},
"dimension": {
"anyOf": [
{
"$ref": "#/$defs/LensDimensionTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "Defines the X-axis dimension for the chart. XY charts support 0 or 1 dimension."
},
"metrics": {
"description": "Defines the metrics for the chart. At least one metric is required.",
"items": {
"$ref": "#/$defs/LensXYMetricTypes"
},
"minItems": 1,
"title": "Metrics",
"type": "array"
},
"breakdown": {
"anyOf": [
{
"$ref": "#/$defs/LensBreakdownTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional breakdown to split the series by. If provided, it will be used to break down the data into multiple series."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"legend": {
"anyOf": [
{
"$ref": "#/$defs/XYLegend"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart legend."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/ColorValueMapping"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart color palette."
},
"type": {
"const": "area",
"default": "area",
"description": "The type of XY chart to display. Defaults to 'area'.",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/AreaChartAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart appearance. AreaChartAppearance includes all line chart options plus fill_opacity."
},
"mode": {
"default": "stacked",
"description": "The stacking mode for bar and area charts. Defaults to 'stacked'.",
"enum": [
"stacked",
"unstacked",
"percentage"
],
"title": "Mode",
"type": "string"
}
},
"required": [
"data_view",
"metrics"
],
"title": "LensAreaPanelConfig",
"type": "object"
},
"LensBarChart": {
"additionalProperties": false,
"description": "Represents a Bar chart configuration within a Lens panel.\n\nExamples:\n Simple bar chart with time series:\n ```yaml\n lens:\n type: bar\n data_view: \"logs-*\"\n dimension:\n type: date_histogram\n field: \"@timestamp\"\n metrics:\n - aggregation: count\n ```\n\n Stacked bar chart with breakdown:\n ```yaml\n lens:\n type: bar\n mode: stacked\n data_view: \"logs-*\"\n dimension:\n type: date_histogram\n field: \"@timestamp\"\n breakdown:\n type: values\n field: \"service.name\"\n metrics:\n - aggregation: count\n ```",
"properties": {
"data_view": {
"description": "The data view to use for the chart.",
"title": "Data View",
"type": "string"
},
"dimension": {
"anyOf": [
{
"$ref": "#/$defs/LensDimensionTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "Defines the X-axis dimension for the chart. XY charts support 0 or 1 dimension."
},
"metrics": {
"description": "Defines the metrics for the chart. At least one metric is required.",
"items": {
"$ref": "#/$defs/LensXYMetricTypes"
},
"minItems": 1,
"title": "Metrics",
"type": "array"
},
"breakdown": {
"anyOf": [
{
"$ref": "#/$defs/LensBreakdownTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional breakdown to split the series by. If provided, it will be used to break down the data into multiple series."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"legend": {
"anyOf": [
{
"$ref": "#/$defs/XYLegend"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart legend."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/ColorValueMapping"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart color palette."
},
"type": {
"const": "bar",
"default": "bar",
"description": "The type of XY chart to display. Defaults to 'bar'.",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/BarChartAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart appearance."
},
"mode": {
"default": "stacked",
"description": "The stacking mode for bar and area charts. Defaults to 'stacked'.",
"enum": [
"stacked",
"unstacked",
"percentage"
],
"title": "Mode",
"type": "string"
}
},
"required": [
"data_view",
"metrics"
],
"title": "LensBarChart",
"type": "object"
},
"LensBarPanelConfig": {
"additionalProperties": false,
"description": "Configuration for a Lens bar panel.",
"properties": {
"filters": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/FilterTypes"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of filters to apply to the panel.",
"title": "Filters"
},
"query": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The query to be executed."
},
"layers": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/MultiLayerChartTypes"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional additional layers for multi-layer XY charts (including reference lines).",
"title": "Layers"
},
"data_view": {
"description": "The data view to use for the chart.",
"title": "Data View",
"type": "string"
},
"dimension": {
"anyOf": [
{
"$ref": "#/$defs/LensDimensionTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "Defines the X-axis dimension for the chart. XY charts support 0 or 1 dimension."
},
"metrics": {
"description": "Defines the metrics for the chart. At least one metric is required.",
"items": {
"$ref": "#/$defs/LensXYMetricTypes"
},
"minItems": 1,
"title": "Metrics",
"type": "array"
},
"breakdown": {
"anyOf": [
{
"$ref": "#/$defs/LensBreakdownTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional breakdown to split the series by. If provided, it will be used to break down the data into multiple series."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"legend": {
"anyOf": [
{
"$ref": "#/$defs/XYLegend"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart legend."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/ColorValueMapping"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart color palette."
},
"type": {
"const": "bar",
"default": "bar",
"description": "The type of XY chart to display. Defaults to 'bar'.",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/BarChartAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart appearance."
},
"mode": {
"default": "stacked",
"description": "The stacking mode for bar and area charts. Defaults to 'stacked'.",
"enum": [
"stacked",
"unstacked",
"percentage"
],
"title": "Mode",
"type": "string"
}
},
"required": [
"data_view",
"metrics"
],
"title": "LensBarPanelConfig",
"type": "object"
},
"LensBreakdownTypes": {
"anyOf": [
{
"$ref": "#/$defs/LensTermsBreakdown"
},
{
"$ref": "#/$defs/LensMultiTermsBreakdown"
},
{
"$ref": "#/$defs/LensDateHistogramBreakdown"
},
{
"$ref": "#/$defs/LensFiltersBreakdown"
},
{
"$ref": "#/$defs/LensIntervalsBreakdown"
}
]
},
"LensCountAggregatedMetric": {
"additionalProperties": false,
"description": "Represents a count metric configuration within a Lens chart.\n\nCount metrics are used to count the number of documents in a data view.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"default": "count",
"enum": [
"count",
"unique_count"
],
"title": "Aggregation",
"type": "string"
},
"field": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The field to count. If not provided, the count will be of all documents in the data view.",
"title": "Field"
},
"exclude_zeros": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to exclude zero values from the count. Kibana defaults to true if not specified.",
"title": "Exclude Zeros"
}
},
"title": "LensCountAggregatedMetric",
"type": "object"
},
"LensCustomMetricFormat": {
"additionalProperties": false,
"description": "Custom format configuration for metrics using numeral.js patterns.\n\nUse this for complete control over numeric formatting with numeral.js syntax.",
"properties": {
"type": {
"const": "custom",
"default": "custom",
"description": "Format type identifier. Must be 'custom' for custom formats.",
"title": "Type",
"type": "string"
},
"decimals": {
"anyOf": [
{
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The number of decimal places to display. If not specified, defaults to 0.",
"title": "Decimals"
},
"pattern": {
"description": "numeral.js format pattern (e.g., \"0,0.00\" for comma-separated numbers with 2 decimals).",
"title": "Pattern",
"type": "string"
},
"suffix": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional suffix to display after the formatted number (e.g., \" requests\", \" users\").",
"title": "Suffix"
},
"compact": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to use compact notation (e.g., 1.2K instead of 1200). Defaults to Kibana's behavior.",
"title": "Compact"
}
},
"required": [
"pattern"
],
"title": "LensCustomMetricFormat",
"type": "object"
},
"LensDataMetricTypes": {
"anyOf": [
{
"$ref": "#/$defs/LensFormulaMetric"
},
{
"$ref": "#/$defs/LensAggregatedMetricTypes"
}
]
},
"LensDatatableBreakdownTypes": {
"anyOf": [
{
"$ref": "#/$defs/DatatableLensTermsBreakdown"
},
{
"$ref": "#/$defs/DatatableLensMultiTermsBreakdown"
},
{
"$ref": "#/$defs/DatatableLensDateHistogramBreakdown"
},
{
"$ref": "#/$defs/DatatableLensFiltersBreakdown"
},
{
"$ref": "#/$defs/DatatableLensIntervalsBreakdown"
}
]
},
"LensDatatableDimensionTypes": {
"anyOf": [
{
"$ref": "#/$defs/DatatableLensTermsDimension"
},
{
"$ref": "#/$defs/DatatableLensMultiTermsDimension"
},
{
"$ref": "#/$defs/DatatableLensDateHistogramDimension"
},
{
"$ref": "#/$defs/DatatableLensFiltersDimension"
},
{
"$ref": "#/$defs/DatatableLensIntervalsDimension"
}
]
},
"LensDatatableMetricTypes": {
"anyOf": [
{
"$ref": "#/$defs/DatatableLensFormulaMetric"
},
{
"$ref": "#/$defs/DatatableLensCountAggregatedMetric"
},
{
"$ref": "#/$defs/DatatableLensSumAggregatedMetric"
},
{
"$ref": "#/$defs/DatatableLensOtherAggregatedMetric"
},
{
"$ref": "#/$defs/DatatableLensLastValueAggregatedMetric"
},
{
"$ref": "#/$defs/DatatableLensPercentileRankAggregatedMetric"
},
{
"$ref": "#/$defs/DatatableLensPercentileAggregatedMetric"
}
]
},
"LensDatatablePanelConfig": {
"additionalProperties": false,
"description": "Configuration for a Lens datatable panel.",
"properties": {
"filters": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/FilterTypes"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of filters to apply to the panel.",
"title": "Filters"
},
"query": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The query to be executed."
},
"type": {
"const": "datatable",
"default": "datatable",
"description": "The type of chart, which is 'datatable' for this visualization.",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/DatatableAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Appearance settings for the datatable."
},
"sorting": {
"anyOf": [
{
"$ref": "#/$defs/DatatableSortingConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional sorting configuration."
},
"paging": {
"anyOf": [
{
"$ref": "#/$defs/DatatablePagingConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional pagination configuration."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"data_view": {
"description": "The data view that determines the data for the datatable chart.",
"title": "Data View",
"type": "string"
},
"metrics": {
"description": "List of metrics to display as columns.",
"items": {
"anyOf": [
{
"$ref": "#/$defs/LensDatatableMetricTypes"
},
{
"$ref": "#/$defs/LensDataMetricTypes"
}
]
},
"title": "Metrics",
"type": "array"
},
"breakdowns": {
"description": "List of breakdowns to use as row groupings.",
"items": {
"anyOf": [
{
"$ref": "#/$defs/LensDatatableBreakdownTypes"
},
{
"$ref": "#/$defs/LensBreakdownTypes"
}
]
},
"title": "Breakdowns",
"type": "array"
},
"metrics_split_by": {
"anyOf": [
{
"items": {
"anyOf": [
{
"$ref": "#/$defs/LensDatatableDimensionTypes"
},
{
"$ref": "#/$defs/LensDimensionTypes"
}
]
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional split-metrics-by dimensions (creates separate metric columns for each dimension value).",
"title": "Metrics Split By"
}
},
"required": [
"data_view"
],
"title": "LensDatatablePanelConfig",
"type": "object"
},
"LensDateHistogramBreakdown": {
"additionalProperties": false,
"description": "Date histogram breakdown with optional collapse aggregation.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the dimension. If not provided, a label may be inferred from the field and type.",
"title": "Label"
},
"type": {
"const": "date_histogram",
"default": "date_histogram",
"title": "Type",
"type": "string"
},
"field": {
"description": "The name of the field in the data view that this dimension is based on.",
"title": "Field",
"type": "string"
},
"minimum_interval": {
"anyOf": [
{
"$ref": "#/$defs/LensDateMathMinimumInterval"
},
{
"type": "null"
}
],
"default": null,
"description": "The minimum interval using Elasticsearch date math format (e.g. `1m`, `1h`). Defaults to `auto`."
},
"partial_intervals": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, show partial intervals. Kibana defaults to `true` if not specified.",
"title": "Partial Intervals"
},
"collapse": {
"anyOf": [
{
"$ref": "#/$defs/CollapseAggregationEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Aggregate all breakdown values into a single bucket using this function (sum, avg, min, max)."
}
},
"required": [
"field"
],
"title": "LensDateHistogramBreakdown",
"type": "object"
},
"LensDateHistogramDimension": {
"additionalProperties": false,
"description": "Represents a histogram dimension configuration within a Lens chart.\n\nDate histogram dimensions are used for aggregating data into buckets based on numeric ranges.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the dimension. If not provided, a label may be inferred from the field and type.",
"title": "Label"
},
"type": {
"const": "date_histogram",
"default": "date_histogram",
"title": "Type",
"type": "string"
},
"field": {
"description": "The name of the field in the data view that this dimension is based on.",
"title": "Field",
"type": "string"
},
"minimum_interval": {
"anyOf": [
{
"$ref": "#/$defs/LensDateMathMinimumInterval"
},
{
"type": "null"
}
],
"default": null,
"description": "The minimum interval using Elasticsearch date math format (e.g. `1m`, `1h`). Defaults to `auto`."
},
"partial_intervals": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, show partial intervals. Kibana defaults to `true` if not specified.",
"title": "Partial Intervals"
}
},
"required": [
"field"
],
"title": "LensDateHistogramDimension",
"type": "object"
},
"LensDateMathMinimumInterval": {
"anyOf": [
{
"const": "auto",
"type": "string"
},
{
"pattern": "^[1-9][0-9]*(ms|s|m|h|d|w|M|q|y)$",
"type": "string"
}
]
},
"LensDimensionTypes": {
"anyOf": [
{
"$ref": "#/$defs/LensTermsDimension"
},
{
"$ref": "#/$defs/LensMultiTermsDimension"
},
{
"$ref": "#/$defs/LensDateHistogramDimension"
},
{
"$ref": "#/$defs/LensFiltersDimension"
},
{
"$ref": "#/$defs/LensIntervalsDimension"
}
]
},
"LensFiltersBreakdown": {
"additionalProperties": false,
"description": "Filters breakdown with optional collapse aggregation.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the dimension. If not provided, a label may be inferred from the field and type.",
"title": "Label"
},
"type": {
"const": "filters",
"default": "filters",
"title": "Type",
"type": "string"
},
"filters": {
"description": "The filters to use for the dimension.",
"items": {
"$ref": "#/$defs/LensFiltersDimensionFilter"
},
"title": "Filters",
"type": "array"
},
"collapse": {
"anyOf": [
{
"$ref": "#/$defs/CollapseAggregationEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Aggregate all breakdown values into a single bucket using this function (sum, avg, min, max)."
}
},
"required": [
"filters"
],
"title": "LensFiltersBreakdown",
"type": "object"
},
"LensFiltersDimension": {
"additionalProperties": false,
"description": "Represents a filters dimension configuration within a Lens chart.\n\nFilters dimensions are used for filtering data based on a field.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the dimension. If not provided, a label may be inferred from the field and type.",
"title": "Label"
},
"type": {
"const": "filters",
"default": "filters",
"title": "Type",
"type": "string"
},
"filters": {
"description": "The filters to use for the dimension.",
"items": {
"$ref": "#/$defs/LensFiltersDimensionFilter"
},
"title": "Filters",
"type": "array"
}
},
"required": [
"filters"
],
"title": "LensFiltersDimension",
"type": "object"
},
"LensFiltersDimensionFilter": {
"additionalProperties": false,
"description": "A filter for a filters dimension.",
"properties": {
"query": {
"$ref": "#/$defs/LegacyQueryTypes",
"description": "The query to use for the dimension."
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the filter. If not provided, the query will be used as the label.",
"title": "Label"
}
},
"required": [
"query"
],
"title": "LensFiltersDimensionFilter",
"type": "object"
},
"LensFormulaMetric": {
"additionalProperties": false,
"description": "Represents a formula metric configuration within a Lens chart.\n\nFormula metrics allow for custom calculations using Kibana's formula syntax.\nThe formula string is passed directly to Kibana, which handles parsing and\nAST generation internally.\n\nExample formulas:\n- Simple arithmetic: \"count() / 100\"\n- Field aggregations: \"(max(response.time) - min(response.time)) / average(response.time)\"\n- With filters: \"count(kql='status:error') / count() * 100\"",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"formula": {
"description": "The formula string to be evaluated for this metric.",
"title": "Formula",
"type": "string"
}
},
"required": [
"formula"
],
"title": "LensFormulaMetric",
"type": "object"
},
"LensGaugePanelConfig": {
"additionalProperties": false,
"description": "Configuration for a Lens gauge panel.",
"properties": {
"filters": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/FilterTypes"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of filters to apply to the panel.",
"title": "Filters"
},
"query": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The query to be executed."
},
"type": {
"const": "gauge",
"default": "gauge",
"description": "The type of chart, which is 'gauge' for this visualization.",
"title": "Type",
"type": "string"
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/ColorRangeMapping"
},
{
"type": "null"
}
],
"default": null,
"description": "Range-based palette configuration for gauge thresholds. When set, enables palette color mode."
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/GaugeAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Visual appearance configuration for the gauge."
},
"titles_and_text": {
"anyOf": [
{
"$ref": "#/$defs/GaugeTitlesAndText"
},
{
"type": "null"
}
],
"default": null,
"description": "Title and subtitle options mapped to gauge `label_major` and `label_minor`."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"data_view": {
"description": "The data view that determines the data for the gauge chart.",
"title": "Data View",
"type": "string"
},
"metric": {
"$ref": "#/$defs/LensDataMetricTypes",
"description": "The primary metric to display in the gauge. This is the main value shown."
},
"minimum": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricTypes"
},
{
"type": "integer"
},
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional minimum value for the gauge range. Can be a metric (field-based) or a static numeric value.",
"title": "Minimum"
},
"maximum": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricTypes"
},
{
"type": "integer"
},
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional maximum value for the gauge range. Can be a metric (field-based) or a static numeric value.",
"title": "Maximum"
},
"goal": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricTypes"
},
{
"type": "integer"
},
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional goal/target value to display as a reference. Can be a metric (field-based) or a static numeric value.",
"title": "Goal"
}
},
"required": [
"data_view",
"metric"
],
"title": "LensGaugePanelConfig",
"type": "object"
},
"LensHeatmapPanelConfig": {
"additionalProperties": false,
"description": "Configuration for a Lens heatmap panel.",
"properties": {
"filters": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/FilterTypes"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of filters to apply to the panel.",
"title": "Filters"
},
"query": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The query to be executed."
},
"type": {
"const": "heatmap",
"default": "heatmap",
"description": "The type of chart, which is 'heatmap' for this visualization.",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/HeatmapAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart appearance."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/ColorRangeMapping"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional range-based palette configuration for heatmap cell coloring."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"data_view": {
"description": "The data view that determines the data for the heatmap chart.",
"title": "Data View",
"type": "string"
},
"x_axis": {
"$ref": "#/$defs/LensDimensionTypes",
"description": "The dimension to display on the X-axis (horizontal)."
},
"y_axis": {
"anyOf": [
{
"$ref": "#/$defs/LensDimensionTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The dimension to display on the Y-axis (vertical). Optional for 1D heatmaps."
},
"metric": {
"$ref": "#/$defs/LensDataMetricTypes",
"description": "The metric that determines cell color intensity."
}
},
"required": [
"data_view",
"x_axis",
"metric"
],
"title": "LensHeatmapPanelConfig",
"type": "object"
},
"LensIntervalsBreakdown": {
"additionalProperties": false,
"description": "Intervals breakdown with optional collapse aggregation.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the dimension. If not provided, a label may be inferred from the field and type.",
"title": "Label"
},
"type": {
"const": "intervals",
"default": "intervals",
"title": "Type",
"type": "string"
},
"field": {
"description": "The name of the field in the data view that this dimension is based on.",
"title": "Field",
"type": "string"
},
"intervals": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/LensIntervalsDimensionInterval"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "The intervals to use for the dimension. If not provided, intervals will be automatically picked.",
"title": "Intervals"
},
"granularity": {
"anyOf": [
{
"maximum": 7,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Interval granularity divides the field into evenly spaced intervals based on the minimum and maximum values for the field.\nKibana defaults to 4 if not specified.",
"title": "Granularity"
},
"include_empty_intervals": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, include empty histogram buckets. Defaults to `true`.",
"title": "Include Empty Intervals"
},
"collapse": {
"anyOf": [
{
"$ref": "#/$defs/CollapseAggregationEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Aggregate all breakdown values into a single bucket using this function (sum, avg, min, max)."
}
},
"required": [
"field"
],
"title": "LensIntervalsBreakdown",
"type": "object"
},
"LensIntervalsDimension": {
"additionalProperties": false,
"description": "Represents an intervals dimension configuration within a Lens chart.\n\nIntervals dimensions are used for aggregating data based on numeric ranges.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the dimension. If not provided, a label may be inferred from the field and type.",
"title": "Label"
},
"type": {
"const": "intervals",
"default": "intervals",
"title": "Type",
"type": "string"
},
"field": {
"description": "The name of the field in the data view that this dimension is based on.",
"title": "Field",
"type": "string"
},
"intervals": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/LensIntervalsDimensionInterval"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "The intervals to use for the dimension. If not provided, intervals will be automatically picked.",
"title": "Intervals"
},
"granularity": {
"anyOf": [
{
"maximum": 7,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Interval granularity divides the field into evenly spaced intervals based on the minimum and maximum values for the field.\nKibana defaults to 4 if not specified.",
"title": "Granularity"
},
"include_empty_intervals": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, include empty histogram buckets. Defaults to `true`.",
"title": "Include Empty Intervals"
}
},
"required": [
"field"
],
"title": "LensIntervalsDimension",
"type": "object"
},
"LensIntervalsDimensionInterval": {
"additionalProperties": false,
"description": "A single interval for an intervals dimension.",
"properties": {
"from": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The start of the interval.",
"title": "From"
},
"to": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The end of the interval.",
"title": "To"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The label for the interval.",
"title": "Label"
}
},
"title": "LensIntervalsDimensionInterval",
"type": "object"
},
"LensLastValueAggregatedMetric": {
"additionalProperties": false,
"description": "Represents a last value metric configuration within a Lens chart.\n\nLast value metrics are used to retrieve the most recent value of a field based on a specified sort order.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"const": "last_value",
"default": "last_value",
"title": "Aggregation",
"type": "string"
},
"field": {
"title": "Field",
"type": "string"
},
"date_field": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The field used to determine the 'last' value.",
"title": "Date Field"
}
},
"required": [
"field"
],
"title": "LensLastValueAggregatedMetric",
"type": "object"
},
"LensLineChart": {
"additionalProperties": false,
"description": "Represents a Line chart configuration within a Lens panel.\n\nExamples:\n Simple line chart with time series:\n ```yaml\n lens:\n type: line\n data_view: \"metrics-*\"\n dimension:\n type: date_histogram\n field: \"@timestamp\"\n metrics:\n - aggregation: average\n field: response_time\n ```\n\n Line chart with dual Y-axes:\n ```yaml\n lens:\n type: line\n data_view: \"logs-*\"\n dimension:\n type: date_histogram\n field: \"@timestamp\"\n metrics:\n - aggregation: count\n id: \"request_count\"\n axis: left\n - aggregation: average\n field: \"error.rate\"\n id: \"error_rate\"\n axis: right\n ```",
"properties": {
"data_view": {
"description": "The data view to use for the chart.",
"title": "Data View",
"type": "string"
},
"dimension": {
"anyOf": [
{
"$ref": "#/$defs/LensDimensionTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "Defines the X-axis dimension for the chart. XY charts support 0 or 1 dimension."
},
"metrics": {
"description": "Defines the metrics for the chart. At least one metric is required.",
"items": {
"$ref": "#/$defs/LensXYMetricTypes"
},
"minItems": 1,
"title": "Metrics",
"type": "array"
},
"breakdown": {
"anyOf": [
{
"$ref": "#/$defs/LensBreakdownTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional breakdown to split the series by. If provided, it will be used to break down the data into multiple series."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"legend": {
"anyOf": [
{
"$ref": "#/$defs/XYLegend"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart legend."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/ColorValueMapping"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart color palette."
},
"type": {
"const": "line",
"default": "line",
"description": "The type of XY chart to display. Defaults to 'line'.",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/LineChartAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart appearance."
}
},
"required": [
"data_view",
"metrics"
],
"title": "LensLineChart",
"type": "object"
},
"LensLinePanelConfig": {
"additionalProperties": false,
"description": "Configuration for a Lens line panel.",
"properties": {
"filters": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/FilterTypes"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of filters to apply to the panel.",
"title": "Filters"
},
"query": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The query to be executed."
},
"layers": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/MultiLayerChartTypes"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional additional layers for multi-layer XY charts (including reference lines).",
"title": "Layers"
},
"data_view": {
"description": "The data view to use for the chart.",
"title": "Data View",
"type": "string"
},
"dimension": {
"anyOf": [
{
"$ref": "#/$defs/LensDimensionTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "Defines the X-axis dimension for the chart. XY charts support 0 or 1 dimension."
},
"metrics": {
"description": "Defines the metrics for the chart. At least one metric is required.",
"items": {
"$ref": "#/$defs/LensXYMetricTypes"
},
"minItems": 1,
"title": "Metrics",
"type": "array"
},
"breakdown": {
"anyOf": [
{
"$ref": "#/$defs/LensBreakdownTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional breakdown to split the series by. If provided, it will be used to break down the data into multiple series."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"legend": {
"anyOf": [
{
"$ref": "#/$defs/XYLegend"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart legend."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/ColorValueMapping"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart color palette."
},
"type": {
"const": "line",
"default": "line",
"description": "The type of XY chart to display. Defaults to 'line'.",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/LineChartAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart appearance."
}
},
"required": [
"data_view",
"metrics"
],
"title": "LensLinePanelConfig",
"type": "object"
},
"LensMetricChartMetricTypes": {
"anyOf": [
{
"$ref": "#/$defs/MetricLensFormulaMetric"
},
{
"$ref": "#/$defs/MetricLensCountAggregatedMetric"
},
{
"$ref": "#/$defs/MetricLensSumAggregatedMetric"
},
{
"$ref": "#/$defs/MetricLensOtherAggregatedMetric"
},
{
"$ref": "#/$defs/MetricLensLastValueAggregatedMetric"
},
{
"$ref": "#/$defs/MetricLensPercentileRankAggregatedMetric"
},
{
"$ref": "#/$defs/MetricLensPercentileAggregatedMetric"
}
]
},
"LensMetricFormat": {
"additionalProperties": false,
"description": "Standard format configuration for displaying metric values.\n\nSupports common numeric formats with optional suffix and compact notation.",
"properties": {
"type": {
"description": "The format type for the metric value.\n\nAvailable formats:\n- **number**: Plain numeric value with optional decimal places\n- **bytes**: Byte size formatting (B, KB, MB, GB, TB)\n- **bits**: Bit size formatting (b, Kb, Mb, Gb, Tb)\n- **percent**: Percentage formatting with % symbol\n- **duration**: Time duration formatting (ms, s, m, h, d)",
"enum": [
"number",
"bytes",
"bits",
"percent",
"duration"
],
"title": "Type",
"type": "string"
},
"decimals": {
"anyOf": [
{
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The number of decimal places to display. If not specified, defaults to 2 for number/bytes/percent, 0 for bits/duration.",
"title": "Decimals"
},
"suffix": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional suffix to display after the formatted number (e.g., \" requests\", \" users\").",
"title": "Suffix"
},
"compact": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to use compact notation (e.g., 1.2K instead of 1200). Defaults to Kibana's behavior.",
"title": "Compact"
}
},
"required": [
"type"
],
"title": "LensMetricFormat",
"type": "object"
},
"LensMetricFormatTypes": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormat"
},
{
"$ref": "#/$defs/LensCustomMetricFormat"
}
]
},
"LensMetricPanelConfig": {
"additionalProperties": false,
"description": "Configuration for a Lens metric panel.",
"properties": {
"filters": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/FilterTypes"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of filters to apply to the panel.",
"title": "Filters"
},
"query": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The query to be executed."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"type": {
"const": "metric",
"default": "metric",
"description": "The type of chart, which is 'metric' for this visualization.",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/MetricAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Visual appearance configuration for the metric."
},
"titles_and_text": {
"anyOf": [
{
"$ref": "#/$defs/MetricTitlesAndText"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart titles and text."
},
"data_view": {
"description": "The data view that determines the data for the metric chart.",
"title": "Data View",
"type": "string"
},
"primary": {
"$ref": "#/$defs/LensMetricChartMetricTypes",
"description": "The primary metric to display in the chart. This is the main value shown in the metric visualization."
},
"secondary": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricChartMetricTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional secondary metric to display alongside the primary metric."
},
"maximum": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional maximum metric to display, often used for comparison or thresholds."
},
"breakdown": {
"anyOf": [
{
"$ref": "#/$defs/LensBreakdownTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional breakdown dimension to split metric values by category."
}
},
"required": [
"data_view",
"primary"
],
"title": "LensMetricPanelConfig",
"type": "object"
},
"LensMetricTypes": {
"anyOf": [
{
"$ref": "#/$defs/LensFormulaMetric"
},
{
"$ref": "#/$defs/LensAggregatedMetricTypes"
},
{
"$ref": "#/$defs/LensStaticValue"
}
]
},
"LensMosaicPanelConfig": {
"additionalProperties": false,
"description": "Configuration for a Lens mosaic panel.",
"properties": {
"filters": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/FilterTypes"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of filters to apply to the panel.",
"title": "Filters"
},
"query": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The query to be executed."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"type": {
"const": "mosaic",
"default": "mosaic",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/MosaicAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart appearance."
},
"legend": {
"anyOf": [
{
"$ref": "#/$defs/MosaicLegend"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart legend."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/ColorValueMapping"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart color."
},
"data_view": {
"description": "The data view that determines the data for the mosaic chart.",
"title": "Data View",
"type": "string"
},
"metric": {
"$ref": "#/$defs/LensDataMetricTypes",
"description": "Metric that determines the size of rectangles. Mosaic charts support only one metric."
},
"dimension": {
"$ref": "#/$defs/LensDimensionTypes",
"description": "Primary dimension for grouping data. Mosaic charts support only one dimension."
},
"breakdown": {
"anyOf": [
{
"$ref": "#/$defs/LensBreakdownTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional secondary breakdown for splitting the mosaic into sub-groups."
}
},
"required": [
"data_view",
"metric",
"dimension"
],
"title": "LensMosaicPanelConfig",
"type": "object"
},
"LensMultiTermsBreakdown": {
"additionalProperties": false,
"description": "Multi-field top-values breakdown with optional collapse aggregation.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the dimension. If not provided, a label may be inferred from the field and type.",
"title": "Label"
},
"type": {
"const": "values",
"default": "values",
"title": "Type",
"type": "string"
},
"size": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The number of top terms to display.",
"title": "Size"
},
"sort": {
"anyOf": [
{
"$ref": "#/$defs/Sort"
},
{
"type": "null"
}
],
"default": null,
"description": "The sort configuration for the terms."
},
"show_other_bucket": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, show a bucket for terms not included in the top size. Defaults to `true`.",
"title": "Show Other Bucket"
},
"include_missing_values": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, show a bucket for documents with a missing value for the field. Defaults to `false`.",
"title": "Include Missing Values"
},
"include": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of terms to include. Can be used with or without `include_is_regex`.",
"title": "Include"
},
"exclude": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of terms to exclude. Can be used with or without `exclude_is_regex`.",
"title": "Exclude"
},
"include_is_regex": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, treat the values in the `include` list as regular expressions. Defaults to `false`.",
"title": "Include Is Regex"
},
"exclude_is_regex": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, treat the values in the `exclude` list as regular expressions. Defaults to `false`.",
"title": "Exclude Is Regex"
},
"fields": {
"description": "List of field names for multi-field aggregation. Requires at least 2 fields.",
"items": {
"type": "string"
},
"minItems": 2,
"title": "Fields",
"type": "array"
},
"collapse": {
"anyOf": [
{
"$ref": "#/$defs/CollapseAggregationEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Aggregate all breakdown values into a single bucket using this function (sum, avg, min, max)."
}
},
"required": [
"fields"
],
"title": "LensMultiTermsBreakdown",
"type": "object"
},
"LensMultiTermsDimension": {
"additionalProperties": false,
"description": "Represents a multi-field top values dimension configuration within a Lens chart.\n\nMulti-terms dimensions are used for aggregating data based on unique combinations\nof values across multiple fields.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the dimension. If not provided, a label may be inferred from the field and type.",
"title": "Label"
},
"type": {
"const": "values",
"default": "values",
"title": "Type",
"type": "string"
},
"size": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The number of top terms to display.",
"title": "Size"
},
"sort": {
"anyOf": [
{
"$ref": "#/$defs/Sort"
},
{
"type": "null"
}
],
"default": null,
"description": "The sort configuration for the terms."
},
"show_other_bucket": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, show a bucket for terms not included in the top size. Defaults to `true`.",
"title": "Show Other Bucket"
},
"include_missing_values": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, show a bucket for documents with a missing value for the field. Defaults to `false`.",
"title": "Include Missing Values"
},
"include": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of terms to include. Can be used with or without `include_is_regex`.",
"title": "Include"
},
"exclude": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of terms to exclude. Can be used with or without `exclude_is_regex`.",
"title": "Exclude"
},
"include_is_regex": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, treat the values in the `include` list as regular expressions. Defaults to `false`.",
"title": "Include Is Regex"
},
"exclude_is_regex": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, treat the values in the `exclude` list as regular expressions. Defaults to `false`.",
"title": "Exclude Is Regex"
},
"fields": {
"description": "List of field names for multi-field aggregation. Requires at least 2 fields.",
"items": {
"type": "string"
},
"minItems": 2,
"title": "Fields",
"type": "array"
}
},
"required": [
"fields"
],
"title": "LensMultiTermsDimension",
"type": "object"
},
"LensOtherAggregatedMetric": {
"additionalProperties": false,
"description": "Represents various aggregated metric configurations within a Lens chart.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"description": "The aggregation type for the metric (e.g., 'min', 'max', 'median', 'average', 'standard_deviation').",
"enum": [
"min",
"max",
"median",
"average",
"standard_deviation"
],
"title": "Aggregation",
"type": "string"
},
"field": {
"title": "Field",
"type": "string"
}
},
"required": [
"aggregation",
"field"
],
"title": "LensOtherAggregatedMetric",
"type": "object"
},
"LensPanel": {
"additionalProperties": false,
"description": "Represents a Lens chart panel (single or multi-layer).\n\nThe lens field contains a discriminated union of chart panel configurations.\nThe chart type is determined by the 'type' field.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier for the panel. If not provided, one may be generated during compilation.",
"title": "Id"
},
"title": {
"default": "",
"description": "The title displayed on the panel header. Can be an empty string.",
"title": "Title",
"type": "string"
},
"hide_title": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, the panel title will be hidden. Defaults to `false` (title is shown).",
"title": "Hide Title"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A brief description of the panel's content or purpose. Defaults to an empty string.",
"title": "Description"
},
"size": {
"$ref": "#/$defs/Size",
"description": "Defines the panel's size on the dashboard grid."
},
"position": {
"$ref": "#/$defs/Position",
"description": "Defines the panel's position on the dashboard grid. If not specified, position will be auto-calculated."
},
"drilldowns": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/DrilldownTypes"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional list of drilldowns to attach to this panel.",
"title": "Drilldowns"
},
"lens": {
"$ref": "#/$defs/LensPanelConfig",
"description": "Lens panel configuration."
}
},
"required": [
"lens"
],
"title": "LensPanel",
"type": "object"
},
"LensPanelConfig": {
"discriminator": {
"mapping": {
"area": "#/$defs/LensAreaPanelConfig",
"bar": "#/$defs/LensBarPanelConfig",
"datatable": "#/$defs/LensDatatablePanelConfig",
"gauge": "#/$defs/LensGaugePanelConfig",
"heatmap": "#/$defs/LensHeatmapPanelConfig",
"line": "#/$defs/LensLinePanelConfig",
"metric": "#/$defs/LensMetricPanelConfig",
"mosaic": "#/$defs/LensMosaicPanelConfig",
"pie": "#/$defs/LensPiePanelConfig",
"tagcloud": "#/$defs/LensTagcloudPanelConfig",
"treemap": "#/$defs/LensTreemapPanelConfig",
"waffle": "#/$defs/LensWafflePanelConfig"
},
"propertyName": "type"
},
"oneOf": [
{
"$ref": "#/$defs/LensMetricPanelConfig"
},
{
"$ref": "#/$defs/LensGaugePanelConfig"
},
{
"$ref": "#/$defs/LensHeatmapPanelConfig"
},
{
"$ref": "#/$defs/LensPiePanelConfig"
},
{
"$ref": "#/$defs/LensLinePanelConfig"
},
{
"$ref": "#/$defs/LensBarPanelConfig"
},
{
"$ref": "#/$defs/LensAreaPanelConfig"
},
{
"$ref": "#/$defs/LensTagcloudPanelConfig"
},
{
"$ref": "#/$defs/LensDatatablePanelConfig"
},
{
"$ref": "#/$defs/LensMosaicPanelConfig"
},
{
"$ref": "#/$defs/LensTreemapPanelConfig"
},
{
"$ref": "#/$defs/LensWafflePanelConfig"
}
]
},
"LensPercentileAggregatedMetric": {
"additionalProperties": false,
"description": "Represents a percentile metric configuration within a Lens chart.\n\nPercentile metrics are used to determine the value at a specific percentile in a data set.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"const": "percentile",
"default": "percentile",
"title": "Aggregation",
"type": "string"
},
"field": {
"title": "Field",
"type": "string"
},
"percentile": {
"title": "Percentile",
"type": "integer"
}
},
"required": [
"field",
"percentile"
],
"title": "LensPercentileAggregatedMetric",
"type": "object"
},
"LensPercentileRankAggregatedMetric": {
"additionalProperties": false,
"description": "Represents a percentile rank metric configuration within a Lens chart.\n\nPercentile rank metrics are used to determine the rank of a value in a data set.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"const": "percentile_rank",
"default": "percentile_rank",
"title": "Aggregation",
"type": "string"
},
"field": {
"title": "Field",
"type": "string"
},
"rank": {
"title": "Rank",
"type": "integer"
}
},
"required": [
"field",
"rank"
],
"title": "LensPercentileRankAggregatedMetric",
"type": "object"
},
"LensPieChart": {
"additionalProperties": false,
"description": "Represents a Pie chart configuration within a Lens panel.\n\nPie charts are used to visualize the proportion of categories.\n\nExamples:\n Simple pie chart showing traffic sources:\n ```yaml\n lens:\n type: pie\n data_view: \"logs-*\"\n breakdowns:\n - field: \"source.geo.country_name\"\n type: values\n metrics:\n - aggregation: count\n ```\n\n Pie chart with custom colors:\n ```yaml\n lens:\n type: pie\n data_view: \"metrics-*\"\n breakdowns:\n - field: \"resource.attributes.os.type\"\n type: values\n metrics:\n - aggregation: unique_count\n field: resource.attributes.host.name\n color:\n palette: 'eui_amsterdam_color_blind'\n assignments:\n - values: ['linux']\n color: '#00BF6F'\n - values: ['windows']\n color: '#006BB4'\n ```",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"type": {
"const": "pie",
"default": "pie",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/PieChartAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart appearance, including donut size."
},
"legend": {
"anyOf": [
{
"$ref": "#/$defs/PieLegend"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart legend."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/ColorValueMapping"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart color."
},
"data_view": {
"description": "The data view that determines the data for the pie chart.",
"title": "Data View",
"type": "string"
},
"metrics": {
"description": "Metrics that determine the size of slices.",
"items": {
"$ref": "#/$defs/LensDataMetricTypes"
},
"minItems": 1,
"title": "Metrics",
"type": "array"
},
"breakdowns": {
"description": "The breakdowns that determine the slices of the pie chart. First breakdown is primary, additional breakdowns are secondary.",
"items": {
"$ref": "#/$defs/LensBreakdownTypes"
},
"title": "Breakdowns",
"type": "array"
}
},
"required": [
"data_view",
"metrics",
"breakdowns"
],
"title": "LensPieChart",
"type": "object"
},
"LensPiePanelConfig": {
"additionalProperties": false,
"description": "Configuration for a Lens pie panel.",
"properties": {
"filters": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/FilterTypes"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of filters to apply to the panel.",
"title": "Filters"
},
"query": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The query to be executed."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"type": {
"const": "pie",
"default": "pie",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/PieChartAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart appearance, including donut size."
},
"legend": {
"anyOf": [
{
"$ref": "#/$defs/PieLegend"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart legend."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/ColorValueMapping"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart color."
},
"data_view": {
"description": "The data view that determines the data for the pie chart.",
"title": "Data View",
"type": "string"
},
"metrics": {
"description": "Metrics that determine the size of slices.",
"items": {
"$ref": "#/$defs/LensDataMetricTypes"
},
"minItems": 1,
"title": "Metrics",
"type": "array"
},
"breakdowns": {
"description": "The breakdowns that determine the slices of the pie chart. First breakdown is primary, additional breakdowns are secondary.",
"items": {
"$ref": "#/$defs/LensBreakdownTypes"
},
"title": "Breakdowns",
"type": "array"
}
},
"required": [
"data_view",
"metrics",
"breakdowns"
],
"title": "LensPiePanelConfig",
"type": "object"
},
"LensReferenceLineLayer": {
"additionalProperties": false,
"description": "Represents a reference line layer configuration for multi-layer panels.\n\nReference lines display static threshold values, SLA targets, or baseline values\non XY charts. They appear as horizontal or vertical lines with optional styling,\nlabels, and icons.\n\nUnlike data layers, reference lines don't query data - they display static values\nfor visual context and comparison.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"type": {
"const": "reference_line",
"default": "reference_line",
"description": "The type of layer. Always 'reference_line'.",
"title": "Type",
"type": "string"
},
"data_view": {
"description": "The data view to use for the layer (required for Kibana compatibility).",
"title": "Data View",
"type": "string"
},
"reference_lines": {
"description": "List of reference lines to display in this layer.",
"items": {
"$ref": "#/$defs/XYReferenceLine"
},
"title": "Reference Lines",
"type": "array"
}
},
"required": [
"data_view"
],
"title": "LensReferenceLineLayer",
"type": "object"
},
"LensStaticValue": {
"additionalProperties": false,
"description": "Represents a static numeric value metric in Lens charts.\n\nUsed to display a fixed numeric value rather than aggregating from data.\nCommonly used for gauge min/max/goal values or reference lines.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"value": {
"anyOf": [
{
"type": "integer"
},
{
"type": "number"
}
],
"description": "The static numeric value to display.",
"title": "Value"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional label for the static value.",
"title": "Label"
}
},
"required": [
"value"
],
"title": "LensStaticValue",
"type": "object"
},
"LensSumAggregatedMetric": {
"additionalProperties": false,
"description": "Represents a sum metric configuration within a Lens chart.\n\nSum metrics are used to sum the values of a field.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"const": "sum",
"default": "sum",
"title": "Aggregation",
"type": "string"
},
"field": {
"title": "Field",
"type": "string"
},
"exclude_zeros": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to exclude zero values from the sum. Kibana defaults to true if not specified.",
"title": "Exclude Zeros"
}
},
"required": [
"field"
],
"title": "LensSumAggregatedMetric",
"type": "object"
},
"LensTagcloudChart": {
"additionalProperties": false,
"description": "Represents a Tagcloud chart configuration within a Lens panel.\n\nTagcloud charts are used to visualize term frequency as word/tag clouds.\n\nExamples:\n Minimal tagcloud:\n ```yaml\n dashboards:\n - name: \"Log Analysis\"\n panels:\n - title: \"Top Error Messages\"\n size: { w: 48, h: 6 }\n lens:\n type: tagcloud\n data_view: \"logs-*\"\n dimension:\n type: values\n field: \"error.message\"\n metric:\n aggregation: count\n ```\n\n Advanced tagcloud with appearance customization:\n ```yaml\n dashboards:\n - name: \"Advanced Tag Cloud\"\n panels:\n - title: \"Service Labels\"\n size: { w: 48, h: 8 }\n lens:\n type: tagcloud\n data_view: \"logs-*\"\n dimension:\n type: values\n field: \"service.name\"\n metric:\n aggregation: count\n appearance:\n min_font_size: 12\n max_font_size: 96\n orientation: \"multiple\"\n labels:\n visible: false\n color:\n palette: \"kibana_palette\"\n ```",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"type": {
"const": "tagcloud",
"default": "tagcloud",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/TagcloudAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart appearance."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/ColorValueMapping"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart colors."
},
"data_view": {
"description": "The data view that determines the data for the tagcloud chart.",
"title": "Data View",
"type": "string"
},
"dimension": {
"$ref": "#/$defs/LensDimensionTypes",
"description": "The dimension for grouping (terms). This determines the tags shown in the cloud."
},
"metric": {
"$ref": "#/$defs/LensDataMetricTypes",
"description": "The metric for sizing. This determines the size of each tag."
}
},
"required": [
"data_view",
"dimension",
"metric"
],
"title": "LensTagcloudChart",
"type": "object"
},
"LensTagcloudPanelConfig": {
"additionalProperties": false,
"description": "Configuration for a Lens tagcloud panel.",
"properties": {
"filters": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/FilterTypes"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of filters to apply to the panel.",
"title": "Filters"
},
"query": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The query to be executed."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"type": {
"const": "tagcloud",
"default": "tagcloud",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/TagcloudAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart appearance."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/ColorValueMapping"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart colors."
},
"data_view": {
"description": "The data view that determines the data for the tagcloud chart.",
"title": "Data View",
"type": "string"
},
"dimension": {
"$ref": "#/$defs/LensDimensionTypes",
"description": "The dimension for grouping (terms). This determines the tags shown in the cloud."
},
"metric": {
"$ref": "#/$defs/LensDataMetricTypes",
"description": "The metric for sizing. This determines the size of each tag."
}
},
"required": [
"data_view",
"dimension",
"metric"
],
"title": "LensTagcloudPanelConfig",
"type": "object"
},
"LensTermsBreakdown": {
"additionalProperties": false,
"description": "Top-values breakdown with optional collapse aggregation.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the dimension. If not provided, a label may be inferred from the field and type.",
"title": "Label"
},
"type": {
"const": "values",
"default": "values",
"title": "Type",
"type": "string"
},
"size": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The number of top terms to display.",
"title": "Size"
},
"sort": {
"anyOf": [
{
"$ref": "#/$defs/Sort"
},
{
"type": "null"
}
],
"default": null,
"description": "The sort configuration for the terms."
},
"show_other_bucket": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, show a bucket for terms not included in the top size. Defaults to `true`.",
"title": "Show Other Bucket"
},
"include_missing_values": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, show a bucket for documents with a missing value for the field. Defaults to `false`.",
"title": "Include Missing Values"
},
"include": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of terms to include. Can be used with or without `include_is_regex`.",
"title": "Include"
},
"exclude": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of terms to exclude. Can be used with or without `exclude_is_regex`.",
"title": "Exclude"
},
"include_is_regex": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, treat the values in the `include` list as regular expressions. Defaults to `false`.",
"title": "Include Is Regex"
},
"exclude_is_regex": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, treat the values in the `exclude` list as regular expressions. Defaults to `false`.",
"title": "Exclude Is Regex"
},
"field": {
"description": "The name of the field in the data view that this dimension is based on.",
"title": "Field",
"type": "string"
},
"collapse": {
"anyOf": [
{
"$ref": "#/$defs/CollapseAggregationEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Aggregate all breakdown values into a single bucket using this function (sum, avg, min, max)."
}
},
"required": [
"field"
],
"title": "LensTermsBreakdown",
"type": "object"
},
"LensTermsDimension": {
"additionalProperties": false,
"description": "Represents a single-field top values dimension configuration within a Lens chart.\n\nTerms dimensions are used for aggregating data based on unique values of a single field.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the dimension. If not provided, a label may be inferred from the field and type.",
"title": "Label"
},
"type": {
"const": "values",
"default": "values",
"title": "Type",
"type": "string"
},
"size": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The number of top terms to display.",
"title": "Size"
},
"sort": {
"anyOf": [
{
"$ref": "#/$defs/Sort"
},
{
"type": "null"
}
],
"default": null,
"description": "The sort configuration for the terms."
},
"show_other_bucket": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, show a bucket for terms not included in the top size. Defaults to `true`.",
"title": "Show Other Bucket"
},
"include_missing_values": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, show a bucket for documents with a missing value for the field. Defaults to `false`.",
"title": "Include Missing Values"
},
"include": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of terms to include. Can be used with or without `include_is_regex`.",
"title": "Include"
},
"exclude": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of terms to exclude. Can be used with or without `exclude_is_regex`.",
"title": "Exclude"
},
"include_is_regex": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, treat the values in the `include` list as regular expressions. Defaults to `false`.",
"title": "Include Is Regex"
},
"exclude_is_regex": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, treat the values in the `exclude` list as regular expressions. Defaults to `false`.",
"title": "Exclude Is Regex"
},
"field": {
"description": "The name of the field in the data view that this dimension is based on.",
"title": "Field",
"type": "string"
}
},
"required": [
"field"
],
"title": "LensTermsDimension",
"type": "object"
},
"LensTreemapPanelConfig": {
"additionalProperties": false,
"description": "Configuration for a Lens treemap panel.",
"properties": {
"filters": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/FilterTypes"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of filters to apply to the panel.",
"title": "Filters"
},
"query": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The query to be executed."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"type": {
"const": "treemap",
"default": "treemap",
"description": "The type of chart, which is 'treemap' for this visualization.",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/TreemapAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart appearance."
},
"legend": {
"anyOf": [
{
"$ref": "#/$defs/TreemapLegend"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart legend."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/ColorValueMapping"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart color."
},
"data_view": {
"description": "The data view that determines the data for the treemap chart.",
"title": "Data View",
"type": "string"
},
"metric": {
"$ref": "#/$defs/LensDataMetricTypes",
"description": "Metric that determines the rectangle sizes. Treemap supports only one metric."
},
"breakdowns": {
"description": "Breakdowns that determine treemap grouping levels. Maximum 2 breakdowns supported.",
"items": {
"$ref": "#/$defs/LensBreakdownTypes"
},
"maxItems": 2,
"title": "Breakdowns",
"type": "array"
}
},
"required": [
"data_view",
"metric",
"breakdowns"
],
"title": "LensTreemapPanelConfig",
"type": "object"
},
"LensWafflePanelConfig": {
"additionalProperties": false,
"description": "Configuration for a Lens waffle panel.",
"properties": {
"filters": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/FilterTypes"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of filters to apply to the panel.",
"title": "Filters"
},
"query": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The query to be executed."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"type": {
"const": "waffle",
"default": "waffle",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/WaffleAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart appearance."
},
"legend": {
"anyOf": [
{
"$ref": "#/$defs/WaffleLegend"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart legend."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/ColorValueMapping"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart color."
},
"data_view": {
"description": "The data view that determines the data for the waffle chart.",
"title": "Data View",
"type": "string"
},
"metric": {
"$ref": "#/$defs/LensDataMetricTypes",
"description": "Metric that determines the size of squares. Waffle charts support only one metric."
},
"breakdown": {
"anyOf": [
{
"$ref": "#/$defs/LensBreakdownTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional breakdown for grouping data. Waffle charts support only one breakdown."
}
},
"required": [
"data_view",
"metric"
],
"title": "LensWafflePanelConfig",
"type": "object"
},
"LensXYMetricTypes": {
"anyOf": [
{
"$ref": "#/$defs/XYLensFormulaMetric"
},
{
"$ref": "#/$defs/XYLensCountAggregatedMetric"
},
{
"$ref": "#/$defs/XYLensSumAggregatedMetric"
},
{
"$ref": "#/$defs/XYLensOtherAggregatedMetric"
},
{
"$ref": "#/$defs/XYLensLastValueAggregatedMetric"
},
{
"$ref": "#/$defs/XYLensPercentileRankAggregatedMetric"
},
{
"$ref": "#/$defs/XYLensPercentileAggregatedMetric"
}
]
},
"LineChartAppearance": {
"additionalProperties": false,
"description": "Represents line chart appearance formatting options.\n\nExtends BaseXYChartAppearance to include line-specific options.",
"properties": {
"x_axis": {
"anyOf": [
{
"$ref": "#/$defs/AxisConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for the X-axis."
},
"y_left_axis": {
"anyOf": [
{
"$ref": "#/$defs/AxisConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for the left Y-axis."
},
"y_right_axis": {
"anyOf": [
{
"$ref": "#/$defs/AxisConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for the right Y-axis."
},
"values": {
"anyOf": [
{
"$ref": "#/$defs/XYValuesConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for value labels on data points."
},
"missing_values": {
"anyOf": [
{
"enum": [
"none",
"linear",
"carry",
"lookahead",
"average",
"nearest"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "How to handle missing data points. Controls interpolation for gaps in your data.",
"title": "Missing Values"
},
"show_as_dotted": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, visually distinguish interpolated data from real data points. Defaults to `false`.",
"title": "Show As Dotted"
},
"end_values": {
"anyOf": [
{
"enum": [
"none",
"zero",
"nearest"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "How to handle the end of the time range in line/area charts.",
"title": "End Values"
},
"line_style": {
"anyOf": [
{
"enum": [
"linear",
"monotone-x",
"step-after"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The line style for line/area charts. Only 3 types are supported by Kibana: linear (straight), monotone-x (smooth), step-after (stepped).",
"title": "Line Style"
},
"show_current_time_marker": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to show a vertical line at the current time in time series charts.",
"title": "Show Current Time Marker"
},
"hide_endzones": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to hide end zones in time series charts (areas where data is incomplete).",
"title": "Hide Endzones"
}
},
"title": "LineChartAppearance",
"type": "object"
},
"LinkTypes": {
"oneOf": [
{
"$ref": "#/$defs/DashboardLink"
},
{
"$ref": "#/$defs/UrlLink"
}
]
},
"LinksPanel": {
"additionalProperties": false,
"description": "Represents a Links panel configuration.\n\nLinks panels are used to display a collection of links to other dashboards,\nsaved objects, or external URLs.\n\nExamples:\n Linking to another Dashboard:\n ```yaml\n dashboards:\n - name: \"Main Overview\"\n panels:\n - title: \"Navigate to User Details\"\n size: { w: 24, h: 2 }\n links:\n items:\n - label: \"View User Activity Dashboard\"\n dashboard: \"user-activity-dashboard-id\"\n ```\n\n Linking to an External URL:\n ```yaml\n dashboards:\n - name: \"Main Overview\"\n panels:\n - title: \"External Resources\"\n size: { w: 24, h: 2 }\n links:\n items:\n - label: \"Project Documentation\"\n url: \"https://docs.example.com/project-alpha\"\n new_tab: true\n ```\n\n Complex configuration with multiple link types:\n ```yaml\n dashboards:\n - name: \"Operations Hub\"\n panels:\n - title: \"Quick Access\"\n size: { w: 48, h: 3 }\n links:\n layout: \"vertical\"\n items:\n - label: \"Service Health Dashboard\"\n dashboard: \"service-health-monitor-v2\"\n - label: \"Runbook Wiki\"\n url: \"https://internal.wiki/ops/runbooks\"\n new_tab: true\n ```",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier for the panel. If not provided, one may be generated during compilation.",
"title": "Id"
},
"title": {
"default": "",
"description": "The title displayed on the panel header. Can be an empty string.",
"title": "Title",
"type": "string"
},
"hide_title": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, the panel title will be hidden. Defaults to `false` (title is shown).",
"title": "Hide Title"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A brief description of the panel's content or purpose. Defaults to an empty string.",
"title": "Description"
},
"size": {
"$ref": "#/$defs/Size",
"description": "Defines the panel's size on the dashboard grid."
},
"position": {
"$ref": "#/$defs/Position",
"description": "Defines the panel's position on the dashboard grid. If not specified, position will be auto-calculated."
},
"drilldowns": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/DrilldownTypes"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional list of drilldowns to attach to this panel.",
"title": "Drilldowns"
},
"links": {
"$ref": "#/$defs/LinksPanelConfig",
"description": "Links panel configuration."
}
},
"required": [
"links"
],
"title": "LinksPanel",
"type": "object"
},
"LinksPanelConfig": {
"additionalProperties": false,
"description": "Configuration specific to Links panels.",
"properties": {
"layout": {
"anyOf": [
{
"enum": [
"horizontal",
"vertical"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The layout of the links in the panel, either 'horizontal' or 'vertical'. Kibana defaults to 'horizontal' if not set.",
"title": "Layout"
},
"items": {
"description": "A list of link objects to be displayed in the panel.",
"items": {
"$ref": "#/$defs/LinkTypes"
},
"title": "Items",
"type": "array"
}
},
"title": "LinksPanelConfig",
"type": "object"
},
"LuceneQuery": {
"additionalProperties": false,
"description": "Represents a Lucene query configuration.\n\nLucene provides a more powerful and flexible, but less friendly, syntax for querying data compared to KQL.",
"properties": {
"lucene": {
"description": "The Lucene query string to apply.",
"title": "Lucene",
"type": "string"
}
},
"required": [
"lucene"
],
"title": "LuceneQuery",
"type": "object"
},
"MarkdownPanel": {
"additionalProperties": false,
"description": "Represents a Markdown panel configuration.\n\nMarkdown panels are used to display rich text content using Markdown syntax.\n\nExamples:\n Minimal Markdown panel:\n ```yaml\n dashboards:\n - name: \"Dashboard with Markdown\"\n panels:\n - title: \"Welcome Note\"\n size: { w: 48, h: 3 }\n markdown:\n content: |\n ## Welcome to the Dashboard!\n This panel provides an overview of the key metrics and reports available.\n\n - Item 1\n - Item 2\n ```\n\n Markdown panel with custom font size:\n ```yaml\n dashboards:\n - name: \"Informational Dashboard\"\n panels:\n - title: \"Important Instructions\"\n size: { w: 32, h: 5 }\n markdown:\n content: |\n # Setup Guide\n\n Please follow the [official documentation](https://strawgate.github.io/kb-yaml-to-lens/) for setup instructions.\n\n Key steps:\n 1. **Download** the installer.\n 2. **Configure** the `config.yaml` file.\n 3. **Run** the start script.\n font_size: 14\n ```",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier for the panel. If not provided, one may be generated during compilation.",
"title": "Id"
},
"title": {
"default": "",
"description": "The title displayed on the panel header. Can be an empty string.",
"title": "Title",
"type": "string"
},
"hide_title": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, the panel title will be hidden. Defaults to `false` (title is shown).",
"title": "Hide Title"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A brief description of the panel's content or purpose. Defaults to an empty string.",
"title": "Description"
},
"size": {
"$ref": "#/$defs/Size",
"description": "Defines the panel's size on the dashboard grid."
},
"position": {
"$ref": "#/$defs/Position",
"description": "Defines the panel's position on the dashboard grid. If not specified, position will be auto-calculated."
},
"drilldowns": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/DrilldownTypes"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional list of drilldowns to attach to this panel.",
"title": "Drilldowns"
},
"markdown": {
"$ref": "#/$defs/MarkdownPanelConfig",
"description": "Markdown panel configuration."
}
},
"required": [
"markdown"
],
"title": "MarkdownPanel",
"type": "object"
},
"MarkdownPanelConfig": {
"additionalProperties": false,
"description": "Configuration specific to Markdown panels.",
"properties": {
"content": {
"description": "The Markdown content to be displayed in the panel.",
"title": "Content",
"type": "string"
},
"font_size": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The font size for the Markdown content, in pixels. Defaults to 12 if not set.",
"title": "Font Size"
},
"links_in_new_tab": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If true, links in the Markdown content will open in a new tab. Defaults to false if not set.",
"title": "Links In New Tab"
}
},
"required": [
"content"
],
"title": "MarkdownPanelConfig",
"type": "object"
},
"MatchTechnique": {
"description": "Enumeration for match techniques used in options list controls.",
"enum": [
"prefix",
"contains",
"exact"
],
"title": "MatchTechnique",
"type": "string"
},
"MetricAppearance": {
"additionalProperties": false,
"description": "Grouped appearance configuration for metric chart visualizations.\n\nGroups all visual styling options for metric charts including icons, progress bars,\nlayout, and font configuration.",
"properties": {
"primary": {
"anyOf": [
{
"$ref": "#/$defs/MetricPrimaryAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Primary metric appearance options."
},
"secondary": {
"anyOf": [
{
"$ref": "#/$defs/MetricSecondaryAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Secondary metric appearance options."
},
"breakdown": {
"anyOf": [
{
"$ref": "#/$defs/MetricBreakdownAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Breakdown layout options."
}
},
"title": "MetricAppearance",
"type": "object"
},
"MetricBackgroundChart": {
"additionalProperties": false,
"description": "Background chart options for the primary metric value.",
"properties": {
"type": {
"default": "line",
"description": "Background chart mode. `none` hides the background chart.",
"enum": [
"line",
"bar",
"none"
],
"title": "Type",
"type": "string"
},
"direction": {
"anyOf": [
{
"enum": [
"horizontal",
"vertical"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Bar direction. Only valid when `type` is `bar`.",
"title": "Direction"
}
},
"title": "MetricBackgroundChart",
"type": "object"
},
"MetricBreakdownAppearance": {
"additionalProperties": false,
"description": "Breakdown layout options.",
"properties": {
"column_count": {
"anyOf": [
{
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Maximum number of columns when displaying broken-down metric values.",
"title": "Column Count"
}
},
"title": "MetricBreakdownAppearance",
"type": "object"
},
"MetricChartColor": {
"additionalProperties": false,
"description": "Color settings for metric chart metrics, including thresholds and application mode.",
"properties": {
"apply_to": {
"anyOf": [
{
"enum": [
"value",
"background"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Controls where metric colors are applied: value text or background.",
"title": "Apply To"
},
"range_type": {
"default": "number",
"description": "How threshold values are interpreted by Kibana.",
"enum": [
"number",
"percent"
],
"title": "Range Type",
"type": "string"
},
"range_min": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": 0,
"description": "Optional lower bound for the palette domain.",
"title": "Range Min"
},
"range_max": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional upper bound for the palette domain.",
"title": "Range Max"
},
"thresholds": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/ColorThreshold"
},
"minItems": 1,
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Ordered threshold bands used to build color palettes.",
"title": "Thresholds"
}
},
"title": "MetricChartColor",
"type": "object"
},
"MetricLensCountAggregatedMetric": {
"additionalProperties": false,
"description": "Metric chart count metric with color options.",
"properties": {
"color": {
"anyOf": [
{
"$ref": "#/$defs/MetricChartColor"
},
{
"type": "null"
}
],
"default": null,
"description": "Color range mapping and application mode for this metric."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"default": "count",
"enum": [
"count",
"unique_count"
],
"title": "Aggregation",
"type": "string"
},
"field": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The field to count. If not provided, the count will be of all documents in the data view.",
"title": "Field"
},
"exclude_zeros": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to exclude zero values from the count. Kibana defaults to true if not specified.",
"title": "Exclude Zeros"
}
},
"title": "MetricLensCountAggregatedMetric",
"type": "object"
},
"MetricLensFormulaMetric": {
"additionalProperties": false,
"description": "Metric chart formula metric with color options.",
"properties": {
"color": {
"anyOf": [
{
"$ref": "#/$defs/MetricChartColor"
},
{
"type": "null"
}
],
"default": null,
"description": "Color range mapping and application mode for this metric."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"formula": {
"description": "The formula string to be evaluated for this metric.",
"title": "Formula",
"type": "string"
}
},
"required": [
"formula"
],
"title": "MetricLensFormulaMetric",
"type": "object"
},
"MetricLensLastValueAggregatedMetric": {
"additionalProperties": false,
"description": "Metric chart last value metric with color options.",
"properties": {
"color": {
"anyOf": [
{
"$ref": "#/$defs/MetricChartColor"
},
{
"type": "null"
}
],
"default": null,
"description": "Color range mapping and application mode for this metric."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"const": "last_value",
"default": "last_value",
"title": "Aggregation",
"type": "string"
},
"field": {
"title": "Field",
"type": "string"
},
"date_field": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The field used to determine the 'last' value.",
"title": "Date Field"
}
},
"required": [
"field"
],
"title": "MetricLensLastValueAggregatedMetric",
"type": "object"
},
"MetricLensOtherAggregatedMetric": {
"additionalProperties": false,
"description": "Metric chart aggregated metric with color options.",
"properties": {
"color": {
"anyOf": [
{
"$ref": "#/$defs/MetricChartColor"
},
{
"type": "null"
}
],
"default": null,
"description": "Color range mapping and application mode for this metric."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"description": "The aggregation type for the metric (e.g., 'min', 'max', 'median', 'average', 'standard_deviation').",
"enum": [
"min",
"max",
"median",
"average",
"standard_deviation"
],
"title": "Aggregation",
"type": "string"
},
"field": {
"title": "Field",
"type": "string"
}
},
"required": [
"aggregation",
"field"
],
"title": "MetricLensOtherAggregatedMetric",
"type": "object"
},
"MetricLensPercentileAggregatedMetric": {
"additionalProperties": false,
"description": "Metric chart percentile metric with color options.",
"properties": {
"color": {
"anyOf": [
{
"$ref": "#/$defs/MetricChartColor"
},
{
"type": "null"
}
],
"default": null,
"description": "Color range mapping and application mode for this metric."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"const": "percentile",
"default": "percentile",
"title": "Aggregation",
"type": "string"
},
"field": {
"title": "Field",
"type": "string"
},
"percentile": {
"title": "Percentile",
"type": "integer"
}
},
"required": [
"field",
"percentile"
],
"title": "MetricLensPercentileAggregatedMetric",
"type": "object"
},
"MetricLensPercentileRankAggregatedMetric": {
"additionalProperties": false,
"description": "Metric chart percentile rank metric with color options.",
"properties": {
"color": {
"anyOf": [
{
"$ref": "#/$defs/MetricChartColor"
},
{
"type": "null"
}
],
"default": null,
"description": "Color range mapping and application mode for this metric."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"const": "percentile_rank",
"default": "percentile_rank",
"title": "Aggregation",
"type": "string"
},
"field": {
"title": "Field",
"type": "string"
},
"rank": {
"title": "Rank",
"type": "integer"
}
},
"required": [
"field",
"rank"
],
"title": "MetricLensPercentileRankAggregatedMetric",
"type": "object"
},
"MetricLensSumAggregatedMetric": {
"additionalProperties": false,
"description": "Metric chart sum metric with color options.",
"properties": {
"color": {
"anyOf": [
{
"$ref": "#/$defs/MetricChartColor"
},
{
"type": "null"
}
],
"default": null,
"description": "Color range mapping and application mode for this metric."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"const": "sum",
"default": "sum",
"title": "Aggregation",
"type": "string"
},
"field": {
"title": "Field",
"type": "string"
},
"exclude_zeros": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to exclude zero values from the sum. Kibana defaults to true if not specified.",
"title": "Exclude Zeros"
}
},
"required": [
"field"
],
"title": "MetricLensSumAggregatedMetric",
"type": "object"
},
"MetricPrimaryAppearance": {
"additionalProperties": false,
"description": "Primary metric appearance options.",
"properties": {
"icon": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Icon identifier to display alongside the primary metric value.",
"title": "Icon"
},
"icon_position": {
"anyOf": [
{
"enum": [
"left",
"right"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Horizontal icon alignment relative to the primary metric value.",
"title": "Icon Position"
},
"background_chart": {
"anyOf": [
{
"$ref": "#/$defs/MetricBackgroundChart"
},
{
"type": "null"
}
],
"default": null,
"description": "Background chart options for the primary metric value."
},
"font_size": {
"anyOf": [
{
"enum": [
"default",
"fit",
"custom"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Font size mode for the primary metric value.",
"title": "Font Size"
},
"position": {
"anyOf": [
{
"enum": [
"top",
"bottom"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Vertical position of the primary metric value within the panel.",
"title": "Position"
},
"alignment": {
"anyOf": [
{
"enum": [
"left",
"center",
"right"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Text alignment for the primary metric value.",
"title": "Alignment"
}
},
"title": "MetricPrimaryAppearance",
"type": "object"
},
"MetricSecondaryAppearance": {
"additionalProperties": false,
"description": "Secondary metric appearance options.",
"properties": {
"alignment": {
"anyOf": [
{
"enum": [
"left",
"center",
"right"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Text alignment for the secondary metric value.",
"title": "Alignment"
},
"label": {
"anyOf": [
{
"$ref": "#/$defs/MetricSecondaryLabelAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Custom secondary label configuration."
}
},
"title": "MetricSecondaryAppearance",
"type": "object"
},
"MetricSecondaryLabelAppearance": {
"additionalProperties": false,
"description": "Secondary metric label appearance options.",
"properties": {
"text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Custom label text for the secondary metric, overriding its default label.",
"title": "Text"
},
"position": {
"anyOf": [
{
"enum": [
"before",
"after"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Position of secondary label relative to the metric value.",
"title": "Position"
}
},
"title": "MetricSecondaryLabelAppearance",
"type": "object"
},
"MetricTitlesAndText": {
"additionalProperties": false,
"description": "Titles and text formatting options for metric charts.",
"properties": {
"subtitle": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Custom subtitle text displayed below the metric title.",
"title": "Subtitle"
},
"alignment": {
"anyOf": [
{
"enum": [
"left",
"center",
"right"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Text alignment for the metric title and subtitle.",
"title": "Alignment"
},
"weight": {
"anyOf": [
{
"enum": [
"bold",
"normal",
"lighter"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Font weight for the metric title.",
"title": "Weight"
}
},
"title": "MetricTitlesAndText",
"type": "object"
},
"MosaicAppearance": {
"additionalProperties": false,
"description": "Formatting options for value labels.",
"properties": {
"values": {
"anyOf": [
{
"$ref": "#/$defs/MosaicValuesConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for numeric values."
}
},
"title": "MosaicAppearance",
"type": "object"
},
"MosaicLegend": {
"additionalProperties": false,
"description": "Represents legend formatting options for mosaic charts.",
"properties": {
"visible": {
"anyOf": [
{
"$ref": "#/$defs/LegendVisibleEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Visibility of the legend. Kibana defaults vary by chart type."
},
"position": {
"anyOf": [
{
"enum": [
"top",
"right",
"bottom",
"left"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Position of the legend.",
"title": "Position"
},
"width": {
"anyOf": [
{
"$ref": "#/$defs/LegendWidthEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Width of the legend."
},
"truncate_labels": {
"anyOf": [
{
"maximum": 5,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Number of lines to truncate the legend labels to. Kibana defaults to 1 if not specified. Set to 0 to disable truncation.",
"title": "Truncate Labels"
},
"nested": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to show legend in nested format for multi-level mosaic charts. Kibana defaults to False if not specified.",
"title": "Nested"
},
"show_single_series": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to show legend when there is only one series. Kibana defaults to false if not specified.",
"title": "Show Single Series"
}
},
"title": "MosaicLegend",
"type": "object"
},
"MosaicValuesConfig": {
"additionalProperties": false,
"description": "Formatting options for value labels.",
"properties": {
"format": {
"anyOf": [
{
"enum": [
"percent",
"value",
"hide"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Controls how values are displayed in the mosaic chart. Kibana defaults to 'percent' if not specified.",
"title": "Format"
},
"decimal_places": {
"anyOf": [
{
"maximum": 10,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Controls the number of decimal places for values in the mosaic chart. Kibana defaults to 2 if not specified.",
"title": "Decimal Places"
}
},
"title": "MosaicValuesConfig",
"type": "object"
},
"MultiLayerChartTypes": {
"anyOf": [
{
"$ref": "#/$defs/LensPieChart"
},
{
"$ref": "#/$defs/LensLineChart"
},
{
"$ref": "#/$defs/LensBarChart"
},
{
"$ref": "#/$defs/LensAreaChart"
},
{
"$ref": "#/$defs/LensTagcloudChart"
},
{
"$ref": "#/$defs/LensReferenceLineLayer"
}
]
},
"NegateFilter": {
"additionalProperties": false,
"description": "Represents a negated filter configuration in the Config schema.\n\nThis allows for excluding documents that match the nested filter.\n\nNote: Unlike other filter types, NegateFilter extends BaseCfgModel directly\nrather than BaseFilter, so it does not support 'alias' or 'disabled' fields.\nThis is intentional - negation is a logical modifier that wraps another filter,\nand aliasing/disabling should be applied to the wrapped filter itself.",
"properties": {
"not": {
"$ref": "#/$defs/FilterTypes",
"description": "The filter to negate. Can be a phrase, phrases, or range filter."
}
},
"required": [
"not"
],
"title": "NegateFilter",
"type": "object"
},
"OptionsListControl": {
"additionalProperties": false,
"description": "Represents an Options List control.\n\nThis control allows users to select one or more values from a list\nto filter data.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"width": {
"anyOf": [
{
"enum": [
"small",
"medium",
"large"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The width of the control in the dashboard layout. If not set, defaults to 'medium'.",
"title": "Width"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the control. If not provided, a label may be inferred.",
"title": "Label"
},
"type": {
"const": "options",
"default": "options",
"title": "Type",
"type": "string"
},
"field": {
"description": "The name of the field within the data view that the control is associated with.",
"title": "Field",
"type": "string"
},
"fill_width": {
"default": false,
"description": "If true, the control will automatically adjust its width to fill available space.",
"title": "Fill Width",
"type": "boolean"
},
"match_technique": {
"anyOf": [
{
"$ref": "#/$defs/MatchTechnique"
},
{
"type": "null"
}
],
"default": null,
"description": "The search technique used for filtering options (e.g., 'prefix', 'contains', 'exact')."
},
"wait_for_results": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If set to true, delay the display of the list of values until the results are fully loaded.",
"title": "Wait For Results"
},
"preselected": {
"description": "A list of options that are preselected when the control is initialized.",
"items": {
"type": "string"
},
"title": "Preselected",
"type": "array"
},
"multiple": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If true, allow multiple selection.",
"title": "Multiple"
},
"data_view": {
"description": "The ID or title of the data view (index pattern) the control operates on.",
"title": "Data View",
"type": "string"
}
},
"required": [
"field",
"data_view"
],
"title": "OptionsListControl",
"type": "object"
},
"OrFilter": {
"additionalProperties": false,
"description": "Represents an 'or' filter configuration in the Config schema.\n\nThis filter matches documents that satisfy at least one of the specified filters.",
"properties": {
"alias": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional alias for the filter, used for display purposes.",
"title": "Alias"
},
"disabled": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Indicates whether the filter is disabled. If `true`, the filter will not be applied.",
"title": "Disabled"
},
"or": {
"description": "A list of filters. At least one filter must match for a document to be included.",
"items": {
"$ref": "#/$defs/FilterTypes"
},
"title": "Or",
"type": "array"
}
},
"required": [
"or"
],
"title": "OrFilter",
"type": "object"
},
"PanelTypes": {
"oneOf": [
{
"$ref": "#/$defs/MarkdownPanel"
},
{
"$ref": "#/$defs/SearchPanel"
},
{
"$ref": "#/$defs/LinksPanel"
},
{
"$ref": "#/$defs/ImagePanel"
},
{
"$ref": "#/$defs/LensPanel"
},
{
"$ref": "#/$defs/ESQLPanel"
},
{
"$ref": "#/$defs/VegaPanel"
}
]
},
"PhraseFilter": {
"additionalProperties": false,
"description": "Represents a 'phrase' filter configuration in the Config schema.\n\nThis filter matches documents where a specific field contains an exact phrase.",
"properties": {
"alias": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional alias for the filter, used for display purposes.",
"title": "Alias"
},
"disabled": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Indicates whether the filter is disabled. If `true`, the filter will not be applied.",
"title": "Disabled"
},
"field": {
"description": "The field name to apply the filter to.",
"title": "Field",
"type": "string"
},
"equals": {
"$ref": "#/$defs/FilterScalar",
"description": "The exact phrase value that the field must match."
}
},
"required": [
"field",
"equals"
],
"title": "PhraseFilter",
"type": "object"
},
"PhrasesFilter": {
"additionalProperties": false,
"description": "Represents a 'phrases' filter configuration in the Config schema.\n\nThis filter matches documents where a specific field contains one or more\nof the specified phrases.",
"properties": {
"alias": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional alias for the filter, used for display purposes.",
"title": "Alias"
},
"disabled": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Indicates whether the filter is disabled. If `true`, the filter will not be applied.",
"title": "Disabled"
},
"field": {
"description": "The field name to apply the filter to.",
"title": "Field",
"type": "string"
},
"in": {
"description": "A list of phrases. Documents must match at least one of these phrases in the specified field.",
"items": {
"$ref": "#/$defs/FilterScalar"
},
"title": "In",
"type": "array"
}
},
"required": [
"field",
"in"
],
"title": "PhrasesFilter",
"type": "object"
},
"PieCategoriesConfig": {
"additionalProperties": false,
"description": "Formatting options for category labels.",
"properties": {
"position": {
"anyOf": [
{
"$ref": "#/$defs/PieSliceLabelsEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Controls the visibility of category labels in the pie chart. Kibana defaults to 'auto' if not specified."
}
},
"title": "PieCategoriesConfig",
"type": "object"
},
"PieChartAppearance": {
"additionalProperties": false,
"description": "Represents chart appearance formatting options for Pie charts.",
"properties": {
"donut": {
"anyOf": [
{
"enum": [
"small",
"medium",
"large"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Controls the size of the donut hole in the pie chart. Kibana defaults to 'medium' if not specified.",
"title": "Donut"
},
"categories": {
"anyOf": [
{
"$ref": "#/$defs/PieCategoriesConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for category labels."
},
"values": {
"anyOf": [
{
"$ref": "#/$defs/PieValuesConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for numeric values."
}
},
"title": "PieChartAppearance",
"type": "object"
},
"PieLegend": {
"additionalProperties": false,
"description": "Represents legend formatting options for pie charts.",
"properties": {
"visible": {
"anyOf": [
{
"$ref": "#/$defs/LegendVisibleEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Visibility of the legend. Kibana defaults vary by chart type."
},
"position": {
"anyOf": [
{
"enum": [
"top",
"right",
"bottom",
"left"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Position of the legend.",
"title": "Position"
},
"width": {
"anyOf": [
{
"$ref": "#/$defs/LegendWidthEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Width of the legend."
},
"truncate_labels": {
"anyOf": [
{
"maximum": 5,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Number of lines to truncate the legend labels to. Kibana defaults to 1 if not specified. Set to 0 to disable truncation.",
"title": "Truncate Labels"
},
"nested": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to show legend in nested format for multi-level pie charts. Kibana defaults to False if not specified.",
"title": "Nested"
},
"show_single_series": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to show legend when there is only one series. Kibana defaults to false if not specified.",
"title": "Show Single Series"
}
},
"title": "PieLegend",
"type": "object"
},
"PieSliceLabelsEnum": {
"description": "Represents the possible values for slice labels in a pie chart.",
"enum": [
"hide",
"inside",
"auto"
],
"title": "PieSliceLabelsEnum",
"type": "string"
},
"PieSliceValuesEnum": {
"description": "Represents the possible values for slice values in a pie chart.",
"enum": [
"hide",
"integer",
"percent"
],
"title": "PieSliceValuesEnum",
"type": "string"
},
"PieValuesConfig": {
"additionalProperties": false,
"description": "Formatting options for numeric values.",
"properties": {
"format": {
"anyOf": [
{
"$ref": "#/$defs/PieSliceValuesEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Controls the display of values in the pie chart. Kibana defaults to percent if not specified."
},
"decimal_places": {
"anyOf": [
{
"maximum": 10,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Controls the number of decimal places for values in the pie chart. Kibana defaults to 2 if not specified.",
"title": "Decimal Places"
}
},
"title": "PieValuesConfig",
"type": "object"
},
"Position": {
"additionalProperties": false,
"description": "Panel position configuration.\n\nDetermines the x/y coordinates of a panel on the dashboard grid.\nIf not specified, the panel will be auto-positioned.",
"properties": {
"x": {
"anyOf": [
{
"maximum": 48,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The horizontal starting position of the panel on the grid (0-based). If None, position will be auto-calculated.",
"title": "X"
},
"y": {
"anyOf": [
{
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The vertical starting position of the panel on the grid (0-based). If None, position will be auto-calculated.",
"title": "Y"
}
},
"title": "Position",
"type": "object"
},
"RangeFilter": {
"additionalProperties": false,
"description": "Represents a 'range' filter configuration in the Config schema.\n\nThis filter matches documents where a numeric or date field falls within a specified range.",
"properties": {
"alias": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional alias for the filter, used for display purposes.",
"title": "Alias"
},
"disabled": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Indicates whether the filter is disabled. If `true`, the filter will not be applied.",
"title": "Disabled"
},
"field": {
"description": "The field name to apply the filter to.",
"title": "Field",
"type": "string"
},
"gte": {
"anyOf": [
{
"$ref": "#/$defs/FilterScalar"
},
{
"type": "null"
}
],
"default": null,
"description": "Greater than or equal to value for the range filter."
},
"lte": {
"anyOf": [
{
"$ref": "#/$defs/FilterScalar"
},
{
"type": "null"
}
],
"default": null,
"description": "Less than or equal to value for the range filter."
},
"lt": {
"anyOf": [
{
"$ref": "#/$defs/FilterScalar"
},
{
"type": "null"
}
],
"default": null,
"description": "Less than value for the range filter."
},
"gt": {
"anyOf": [
{
"$ref": "#/$defs/FilterScalar"
},
{
"type": "null"
}
],
"default": null,
"description": "Greater than value for the range filter."
}
},
"required": [
"field"
],
"title": "RangeFilter",
"type": "object"
},
"RangeSliderControl": {
"additionalProperties": false,
"description": "Represents a Range Slider control.\n\nThis control allows users to select a range of numeric or date values\nto filter data.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"width": {
"anyOf": [
{
"enum": [
"small",
"medium",
"large"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The width of the control in the dashboard layout. If not set, defaults to 'medium'.",
"title": "Width"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the control. If not provided, a label may be inferred.",
"title": "Label"
},
"type": {
"const": "range",
"default": "range",
"title": "Type",
"type": "string"
},
"fill_width": {
"default": false,
"description": "If true, the control will automatically adjust its width to fill available space.",
"title": "Fill Width",
"type": "boolean"
},
"field": {
"description": "The name of the field within the data view that the control is associated with.",
"title": "Field",
"type": "string"
},
"step": {
"anyOf": [
{
"type": "integer"
},
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "The step value for the range, defining the granularity of selections.",
"title": "Step"
},
"data_view": {
"description": "The ID or title of the data view (index pattern) the control operates on.",
"title": "Data View",
"type": "string"
}
},
"required": [
"field",
"data_view"
],
"title": "RangeSliderControl",
"type": "object"
},
"ReferenceLineIcon": {
"enum": [
"empty",
"alert",
"asterisk",
"bell",
"bolt",
"bug",
"circle",
"editor_comment",
"flag",
"heart",
"map_marker",
"pin_filled",
"star_empty",
"tag",
"triangle"
],
"type": "string"
},
"SampleData": {
"additionalProperties": false,
"description": "Sample data configuration for dashboards.",
"properties": {
"source": {
"description": "Whether sample data is inline in YAML or in an external file.",
"enum": [
"inline",
"file"
],
"title": "Source",
"type": "string"
},
"index_pattern": {
"description": "Target index pattern for sample data (e.g., 'logs-*', 'metrics-*').",
"title": "Index Pattern",
"type": "string"
},
"documents": {
"anyOf": [
{
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Inline sample documents (when source='inline').",
"title": "Documents"
},
"file_path": {
"anyOf": [
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Path to NDJSON file with sample data (when source='file').",
"title": "File Path"
},
"timestamp_transform": {
"anyOf": [
{
"$ref": "#/$defs/TimestampTransform"
},
{
"type": "null"
}
],
"description": "Timestamp transformation configuration. Enabled by default to shift max timestamp to 'now'."
},
"create_index_template": {
"default": false,
"description": "Whether to create an index template for sample data.",
"title": "Create Index Template",
"type": "boolean"
},
"index_template": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "Index template configuration (mappings, settings).",
"title": "Index Template"
}
},
"required": [
"source",
"index_pattern"
],
"title": "SampleData",
"type": "object"
},
"SearchPanel": {
"additionalProperties": false,
"description": "Represents a Search panel configuration.\n\nSearch panels are used to display the results of a saved Kibana search.\n\nExamples:\n Minimal search panel:\n ```yaml\n dashboards:\n - name: \"Log Monitoring Dashboard\"\n panels:\n - title: \"All System Logs\"\n size: { w: 48, h: 10 }\n search:\n saved_search_id: \"a1b2c3d4-e5f6-7890-1234-567890abcdef\"\n ```\n\n Search panel with hidden title:\n ```yaml\n dashboards:\n - name: \"Security Incidents Overview\"\n panels:\n - hide_title: true\n description: \"Critical security alerts from the last 24 hours\"\n size: { w: 48, h: 8 }\n search:\n saved_search_id: \"critical-security-alerts-saved-search\"\n ```",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier for the panel. If not provided, one may be generated during compilation.",
"title": "Id"
},
"title": {
"default": "",
"description": "The title displayed on the panel header. Can be an empty string.",
"title": "Title",
"type": "string"
},
"hide_title": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, the panel title will be hidden. Defaults to `false` (title is shown).",
"title": "Hide Title"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A brief description of the panel's content or purpose. Defaults to an empty string.",
"title": "Description"
},
"size": {
"$ref": "#/$defs/Size",
"description": "Defines the panel's size on the dashboard grid."
},
"position": {
"$ref": "#/$defs/Position",
"description": "Defines the panel's position on the dashboard grid. If not specified, position will be auto-calculated."
},
"drilldowns": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/DrilldownTypes"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional list of drilldowns to attach to this panel.",
"title": "Drilldowns"
},
"search": {
"$ref": "#/$defs/SearchPanelConfig",
"description": "Search panel configuration."
}
},
"required": [
"search"
],
"title": "SearchPanel",
"type": "object"
},
"SearchPanelConfig": {
"additionalProperties": false,
"description": "Configuration specific to Search panels.",
"properties": {
"saved_search_id": {
"description": "The ID of the saved Kibana search object to display in the panel.",
"title": "Saved Search Id",
"type": "string"
}
},
"required": [
"saved_search_id"
],
"title": "SearchPanelConfig",
"type": "object"
},
"SectionConfig": {
"additionalProperties": false,
"description": "Configuration for a collapsible section's content and behavior.",
"properties": {
"collapsed": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether the section is collapsed by default in Kibana.",
"title": "Collapsed"
},
"panels": {
"description": "Panels contained within this collapsible section.\n\nInner panels use a **relative** coordinate space \u2014 their (x, y) positions\nstart at (0, 0) within the section body, independent of the section's\nabsolute position in the outer dashboard grid.\n\nNested CollapsiblePanels are not supported and will be rejected by the\nDashboard-level discriminator.",
"items": {
"$ref": "#/$defs/PanelTypes"
},
"title": "Panels",
"type": "array"
}
},
"title": "SectionConfig",
"type": "object"
},
"Size": {
"additionalProperties": false,
"description": "Panel size configuration.\n\nDetermines the width and height of a panel on the dashboard grid.\nWidth accepts semantic values ('whole', 'half', etc.) or integers.",
"properties": {
"w": {
"anyOf": [
{
"type": "integer"
},
{
"enum": [
"whole",
"half",
"third",
"quarter",
"sixth",
"eighth"
],
"type": "string"
}
],
"default": 12,
"description": "The width of the panel in grid units.\n\nDefaults to 12 (quarter width). Accepts semantic values ('whole', 'half', 'third', 'quarter', 'sixth', 'eighth') or integers (1-48).",
"title": "W"
},
"h": {
"default": 8,
"description": "The height of the panel in grid units. Defaults to 8.",
"exclusiveMinimum": 0,
"title": "H",
"type": "integer"
}
},
"title": "Size",
"type": "object"
},
"Sort": {
"additionalProperties": false,
"description": "Represents a sort configuration in the Config schema.",
"properties": {
"by": {
"description": "The field name to sort the data by.",
"title": "By",
"type": "string"
},
"direction": {
"description": "The sort direction. Must be either 'asc' for ascending or 'desc' for descending.",
"enum": [
"asc",
"desc"
],
"title": "Direction",
"type": "string"
}
},
"required": [
"by",
"direction"
],
"title": "Sort",
"type": "object"
},
"TagcloudAppearance": {
"additionalProperties": false,
"description": "Appearance settings for tagcloud.",
"properties": {
"min_font_size": {
"anyOf": [
{
"maximum": 100,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": 12,
"description": "Minimum font size for tags. Defaults to 12.",
"title": "Min Font Size"
},
"max_font_size": {
"anyOf": [
{
"maximum": 200,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": 72,
"description": "Maximum font size for tags. Defaults to 72.",
"title": "Max Font Size"
},
"orientation": {
"anyOf": [
{
"$ref": "#/$defs/TagcloudOrientationEnum"
},
{
"type": "null"
}
],
"default": "single",
"description": "Text orientation configuration. Defaults to 'single'."
},
"labels": {
"anyOf": [
{
"$ref": "#/$defs/TagcloudLabelsConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Label visibility configuration."
}
},
"title": "TagcloudAppearance",
"type": "object"
},
"TagcloudLabelsConfig": {
"additionalProperties": false,
"description": "Label visibility settings for tagcloud.",
"properties": {
"visible": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": true,
"description": "Toggle for label visibility. Defaults to True.",
"title": "Visible"
}
},
"title": "TagcloudLabelsConfig",
"type": "object"
},
"TagcloudOrientationEnum": {
"description": "Text orientation options for tagcloud visualizations.\n\nControls how tags are rotated in the word cloud display.",
"enum": [
"single",
"right angled",
"multiple"
],
"title": "TagcloudOrientationEnum",
"type": "string"
},
"TimeRange": {
"additionalProperties": false,
"description": "Configure a default time range for the dashboard.",
"properties": {
"from": {
"description": "The start of the time range (e.g., 'now-30d/d', 'now-1h').",
"title": "From",
"type": "string"
},
"to": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The end of the time range.",
"title": "To"
}
},
"required": [
"from"
],
"title": "TimeRange",
"type": "object"
},
"TimeSliderControl": {
"additionalProperties": false,
"description": "Represents a Time Slider control.\n\nThis control allows users to select a time range to filter data\nby adjusting start and end offsets within the global time range.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"width": {
"anyOf": [
{
"enum": [
"small",
"medium",
"large"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The width of the control in the dashboard layout. If not set, defaults to 'medium'.",
"title": "Width"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the control. If not provided, a label may be inferred.",
"title": "Label"
},
"type": {
"const": "time",
"default": "time",
"title": "Type",
"type": "string"
},
"start_offset": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "The start offset for the time range as a %, defining the beginning of the selection.",
"title": "Start Offset"
},
"end_offset": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "The end offset for the time range as a %, defining the end of the selection.",
"title": "End Offset"
}
},
"title": "TimeSliderControl",
"type": "object"
},
"TimestampTransform": {
"additionalProperties": false,
"description": "Configuration for timestamp transformation in sample data.",
"properties": {
"field": {
"default": "@timestamp",
"description": "Name of the timestamp field to transform.",
"title": "Field",
"type": "string"
},
"enabled": {
"default": true,
"description": "Whether to apply timestamp transformation.\n\nWhen enabled, shifts all timestamps so the maximum becomes 'now'.",
"title": "Enabled",
"type": "boolean"
}
},
"title": "TimestampTransform",
"type": "object"
},
"TreemapAppearance": {
"additionalProperties": false,
"description": "Formatting options for treemap appearance.",
"properties": {
"categories": {
"anyOf": [
{
"$ref": "#/$defs/TreemapCategoriesConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for category labels."
},
"values": {
"anyOf": [
{
"$ref": "#/$defs/TreemapValuesConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for numeric values."
}
},
"title": "TreemapAppearance",
"type": "object"
},
"TreemapCategoriesConfig": {
"additionalProperties": false,
"description": "Formatting options for category labels.",
"properties": {
"position": {
"anyOf": [
{
"$ref": "#/$defs/TreemapSliceLabelsEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Controls the visibility of category labels. Defaults to show when not specified."
}
},
"title": "TreemapCategoriesConfig",
"type": "object"
},
"TreemapLegend": {
"additionalProperties": false,
"description": "Represents legend formatting options for treemap charts.",
"properties": {
"visible": {
"anyOf": [
{
"$ref": "#/$defs/LegendVisibleEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Visibility of the legend. Kibana defaults vary by chart type."
},
"position": {
"anyOf": [
{
"enum": [
"top",
"right",
"bottom",
"left"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Position of the legend.",
"title": "Position"
},
"width": {
"anyOf": [
{
"$ref": "#/$defs/LegendWidthEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Width of the legend."
},
"truncate_labels": {
"anyOf": [
{
"maximum": 5,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Number of lines to truncate the legend labels to. Kibana defaults to 1 if not specified. Set to 0 to disable truncation.",
"title": "Truncate Labels"
},
"nested": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to show legend in nested format for multi-level pie charts. Kibana defaults to False if not specified.",
"title": "Nested"
},
"show_single_series": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to show legend when there is only one series. Kibana defaults to false if not specified.",
"title": "Show Single Series"
}
},
"title": "TreemapLegend",
"type": "object"
},
"TreemapSliceLabelsEnum": {
"description": "Represents the possible values for treemap slice labels.",
"enum": [
"hide",
"show"
],
"title": "TreemapSliceLabelsEnum",
"type": "string"
},
"TreemapValuesConfig": {
"additionalProperties": false,
"description": "Formatting options for numeric values.",
"properties": {
"format": {
"anyOf": [
{
"$ref": "#/$defs/PieSliceValuesEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Controls the display of values in treemap rectangles. Defaults to percent."
},
"decimal_places": {
"anyOf": [
{
"maximum": 10,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Controls the number of decimal places for values.",
"title": "Decimal Places"
}
},
"title": "TreemapValuesConfig",
"type": "object"
},
"UrlDrilldown": {
"additionalProperties": false,
"description": "URL drilldown configuration.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional unique identifier for the drilldown. If not provided, one will be generated.",
"title": "Id"
},
"name": {
"description": "Display name for the drilldown.",
"title": "Name",
"type": "string"
},
"triggers": {
"description": "List of triggers that activate this drilldown. Defaults to ['click'].",
"items": {
"$ref": "#/$defs/DrilldownTrigger"
},
"title": "Triggers",
"type": "array"
},
"url": {
"description": "Target URL template. Can include Kibana template variables.",
"title": "Url",
"type": "string"
},
"new_tab": {
"default": false,
"description": "Whether to open the URL in a new tab. Defaults to False.",
"title": "New Tab",
"type": "boolean"
},
"encode_url": {
"default": true,
"description": "Whether to URL-encode the template variables. Defaults to True.",
"title": "Encode Url",
"type": "boolean"
}
},
"required": [
"name",
"url"
],
"title": "UrlDrilldown",
"type": "object"
},
"UrlLink": {
"additionalProperties": false,
"description": "Represents a link to an external URL within a Links panel.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional unique identifier for the link. Not normally required.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The text that will be displayed for the link. Kibana defaults to showing the URL if not set.",
"title": "Label"
},
"url": {
"description": "The Web URL that the link points to.",
"title": "Url",
"type": "string"
},
"encode": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, the URL will be URL-encoded. Kibana defaults to `True` if not set.",
"title": "Encode"
},
"new_tab": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, the link will open in a new browser tab. Kibana defaults to `false` if not set.",
"title": "New Tab"
}
},
"required": [
"url"
],
"title": "UrlLink",
"type": "object"
},
"VegaPanel": {
"additionalProperties": false,
"description": "Represents a Vega panel configuration.\n\nVega panels are used to create custom visualizations using the Vega grammar.\n\nExamples:\n Minimal Vega panel:\n ```yaml\n dashboards:\n - name: \"Dashboard with Vega\"\n panels:\n - title: \"Hello Vega\"\n size: { w: 24, h: 15 }\n vega:\n spec:\n $schema: https://vega.github.io/schema/vega/v3.json\n width: 100\n height: 30\n marks:\n - type: text\n encode:\n update:\n text:\n value: \"Hello Vega!\"\n ```\n\n Vega panel with Elasticsearch data:\n ```yaml\n dashboards:\n - name: \"Vega Data Dashboard\"\n panels:\n - title: \"Custom Chart\"\n size: { w: 48, h: 20 }\n vega:\n spec:\n $schema: https://vega.github.io/schema/vega-lite/v5.json\n data:\n url:\n index: logs-*\n body:\n size: 0\n aggs:\n time_buckets:\n date_histogram:\n field: \"@timestamp\"\n fixed_interval: 1h\n mark: line\n encoding:\n x:\n field: key\n type: temporal\n y:\n field: doc_count\n type: quantitative\n ```",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier for the panel. If not provided, one may be generated during compilation.",
"title": "Id"
},
"title": {
"default": "",
"description": "The title displayed on the panel header. Can be an empty string.",
"title": "Title",
"type": "string"
},
"hide_title": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, the panel title will be hidden. Defaults to `false` (title is shown).",
"title": "Hide Title"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A brief description of the panel's content or purpose. Defaults to an empty string.",
"title": "Description"
},
"size": {
"$ref": "#/$defs/Size",
"description": "Defines the panel's size on the dashboard grid."
},
"position": {
"$ref": "#/$defs/Position",
"description": "Defines the panel's position on the dashboard grid. If not specified, position will be auto-calculated."
},
"drilldowns": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/DrilldownTypes"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional list of drilldowns to attach to this panel.",
"title": "Drilldowns"
},
"vega": {
"$ref": "#/$defs/VegaPanelConfig",
"description": "Vega panel configuration."
}
},
"required": [
"vega"
],
"title": "VegaPanel",
"type": "object"
},
"VegaPanelConfig": {
"additionalProperties": false,
"description": "Configuration specific to Vega panels.",
"properties": {
"spec": {
"additionalProperties": true,
"description": "The Vega specification as a structured YAML/JSON object.",
"title": "Spec",
"type": "object"
}
},
"required": [
"spec"
],
"title": "VegaPanelConfig",
"type": "object"
},
"WaffleAppearance": {
"additionalProperties": false,
"description": "Formatting options for value labels.",
"properties": {
"values": {
"anyOf": [
{
"$ref": "#/$defs/WaffleValuesConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for numeric values."
}
},
"title": "WaffleAppearance",
"type": "object"
},
"WaffleLegend": {
"additionalProperties": false,
"description": "Represents legend formatting options for waffle charts.",
"properties": {
"visible": {
"anyOf": [
{
"$ref": "#/$defs/LegendVisibleEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Visibility of the legend. Kibana defaults vary by chart type."
},
"position": {
"anyOf": [
{
"enum": [
"top",
"right",
"bottom",
"left"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Position of the legend.",
"title": "Position"
},
"width": {
"anyOf": [
{
"$ref": "#/$defs/LegendWidthEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Width of the legend."
},
"truncate_labels": {
"anyOf": [
{
"maximum": 5,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Number of lines to truncate the legend labels to. Kibana defaults to 1 if not specified. Set to 0 to disable truncation.",
"title": "Truncate Labels"
},
"nested": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to show legend in nested format for multi-level waffle charts. Kibana defaults to False if not specified.",
"title": "Nested"
},
"show_single_series": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to show legend when there is only one series. Kibana defaults to false if not specified.",
"title": "Show Single Series"
}
},
"title": "WaffleLegend",
"type": "object"
},
"WaffleValuesConfig": {
"additionalProperties": false,
"description": "Formatting options for value labels.",
"properties": {
"format": {
"anyOf": [
{
"enum": [
"percent",
"value",
"hide"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Controls how values are displayed in the waffle chart. Kibana defaults to 'percent' if not specified.",
"title": "Format"
},
"decimal_places": {
"anyOf": [
{
"maximum": 10,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Controls the number of decimal places for values in the waffle chart. Kibana defaults to 2 if not specified.",
"title": "Decimal Places"
}
},
"title": "WaffleValuesConfig",
"type": "object"
},
"XYLegend": {
"additionalProperties": false,
"description": "Represents legend formatting options for XY charts.",
"properties": {
"visible": {
"anyOf": [
{
"$ref": "#/$defs/LegendVisibleEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Visibility of the legend. Kibana defaults vary by chart type."
},
"position": {
"anyOf": [
{
"enum": [
"top",
"right",
"bottom",
"left"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Position of the legend.",
"title": "Position"
},
"width": {
"anyOf": [
{
"$ref": "#/$defs/LegendWidthEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Width of the legend."
},
"show_single_series": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to show legend when there is only one series. Kibana defaults to false if not specified.",
"title": "Show Single Series"
},
"truncate_labels": {
"anyOf": [
{
"maximum": 5,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Number of lines to truncate legend labels to. Set to 0 to disable truncation. Kibana defaults to 1 if not specified.",
"title": "Truncate Labels"
}
},
"title": "XYLegend",
"type": "object"
},
"XYLensCountAggregatedMetric": {
"additionalProperties": false,
"description": "XY chart count metric with appearance options.\n\nExtends LensCountAggregatedMetric to include axis and color configuration\nfor use in XY charts.",
"properties": {
"axis": {
"anyOf": [
{
"enum": [
"left",
"right"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Which Y-axis to assign this metric to ('left' or 'right').",
"title": "Axis"
},
"color": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Custom color for this metric series (hex color code, e.g., '#2196F3').",
"title": "Color"
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"default": "count",
"enum": [
"count",
"unique_count"
],
"title": "Aggregation",
"type": "string"
},
"field": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The field to count. If not provided, the count will be of all documents in the data view.",
"title": "Field"
},
"exclude_zeros": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to exclude zero values from the count. Kibana defaults to true if not specified.",
"title": "Exclude Zeros"
}
},
"title": "XYLensCountAggregatedMetric",
"type": "object"
},
"XYLensFormulaMetric": {
"additionalProperties": false,
"description": "XY chart formula metric with appearance options.\n\nExtends LensFormulaMetric to include axis and color configuration\nfor use in XY charts.",
"properties": {
"axis": {
"anyOf": [
{
"enum": [
"left",
"right"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Which Y-axis to assign this metric to ('left' or 'right').",
"title": "Axis"
},
"color": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Custom color for this metric series (hex color code, e.g., '#2196F3').",
"title": "Color"
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"formula": {
"description": "The formula string to be evaluated for this metric.",
"title": "Formula",
"type": "string"
}
},
"required": [
"formula"
],
"title": "XYLensFormulaMetric",
"type": "object"
},
"XYLensLastValueAggregatedMetric": {
"additionalProperties": false,
"description": "XY chart last value metric with appearance options.\n\nExtends LensLastValueAggregatedMetric to include axis and color configuration\nfor use in XY charts.",
"properties": {
"axis": {
"anyOf": [
{
"enum": [
"left",
"right"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Which Y-axis to assign this metric to ('left' or 'right').",
"title": "Axis"
},
"color": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Custom color for this metric series (hex color code, e.g., '#2196F3').",
"title": "Color"
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"const": "last_value",
"default": "last_value",
"title": "Aggregation",
"type": "string"
},
"field": {
"title": "Field",
"type": "string"
},
"date_field": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The field used to determine the 'last' value.",
"title": "Date Field"
}
},
"required": [
"field"
],
"title": "XYLensLastValueAggregatedMetric",
"type": "object"
},
"XYLensOtherAggregatedMetric": {
"additionalProperties": false,
"description": "XY chart aggregated metric with appearance options.\n\nExtends LensOtherAggregatedMetric to include axis and color configuration\nfor use in XY charts. Supports min, max, median, and average aggregations.",
"properties": {
"axis": {
"anyOf": [
{
"enum": [
"left",
"right"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Which Y-axis to assign this metric to ('left' or 'right').",
"title": "Axis"
},
"color": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Custom color for this metric series (hex color code, e.g., '#2196F3').",
"title": "Color"
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"description": "The aggregation type for the metric (e.g., 'min', 'max', 'median', 'average', 'standard_deviation').",
"enum": [
"min",
"max",
"median",
"average",
"standard_deviation"
],
"title": "Aggregation",
"type": "string"
},
"field": {
"title": "Field",
"type": "string"
}
},
"required": [
"aggregation",
"field"
],
"title": "XYLensOtherAggregatedMetric",
"type": "object"
},
"XYLensPercentileAggregatedMetric": {
"additionalProperties": false,
"description": "XY chart percentile metric with appearance options.\n\nExtends LensPercentileAggregatedMetric to include axis and color configuration\nfor use in XY charts.",
"properties": {
"axis": {
"anyOf": [
{
"enum": [
"left",
"right"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Which Y-axis to assign this metric to ('left' or 'right').",
"title": "Axis"
},
"color": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Custom color for this metric series (hex color code, e.g., '#2196F3').",
"title": "Color"
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"const": "percentile",
"default": "percentile",
"title": "Aggregation",
"type": "string"
},
"field": {
"title": "Field",
"type": "string"
},
"percentile": {
"title": "Percentile",
"type": "integer"
}
},
"required": [
"field",
"percentile"
],
"title": "XYLensPercentileAggregatedMetric",
"type": "object"
},
"XYLensPercentileRankAggregatedMetric": {
"additionalProperties": false,
"description": "XY chart percentile rank metric with appearance options.\n\nExtends LensPercentileRankAggregatedMetric to include axis and color configuration\nfor use in XY charts.",
"properties": {
"axis": {
"anyOf": [
{
"enum": [
"left",
"right"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Which Y-axis to assign this metric to ('left' or 'right').",
"title": "Axis"
},
"color": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Custom color for this metric series (hex color code, e.g., '#2196F3').",
"title": "Color"
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"const": "percentile_rank",
"default": "percentile_rank",
"title": "Aggregation",
"type": "string"
},
"field": {
"title": "Field",
"type": "string"
},
"rank": {
"title": "Rank",
"type": "integer"
}
},
"required": [
"field",
"rank"
],
"title": "XYLensPercentileRankAggregatedMetric",
"type": "object"
},
"XYLensSumAggregatedMetric": {
"additionalProperties": false,
"description": "XY chart sum metric with appearance options.\n\nExtends LensSumAggregatedMetric to include axis and color configuration\nfor use in XY charts.",
"properties": {
"axis": {
"anyOf": [
{
"enum": [
"left",
"right"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Which Y-axis to assign this metric to ('left' or 'right').",
"title": "Axis"
},
"color": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Custom color for this metric series (hex color code, e.g., '#2196F3').",
"title": "Color"
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"const": "sum",
"default": "sum",
"title": "Aggregation",
"type": "string"
},
"field": {
"title": "Field",
"type": "string"
},
"exclude_zeros": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to exclude zero values from the sum. Kibana defaults to true if not specified.",
"title": "Exclude Zeros"
}
},
"required": [
"field"
],
"title": "XYLensSumAggregatedMetric",
"type": "object"
},
"XYReferenceLine": {
"additionalProperties": false,
"description": "Configuration for a single reference line in an XY chart.\n\nInherits from BaseIdentifiableModel for automatic deterministic ID generation.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional label for the reference line.",
"title": "Label"
},
"value": {
"anyOf": [
{
"$ref": "#/$defs/XYReferenceLineValue"
},
{
"type": "number"
}
],
"description": "The value for the reference line. Can be a float or XYReferenceLineValue object.",
"title": "Value"
},
"axis": {
"anyOf": [
{
"enum": [
"left",
"right"
],
"type": "string"
},
{
"type": "null"
}
],
"default": "left",
"description": "The axis to assign the reference line to.",
"title": "Axis"
},
"color": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The color of the reference line.",
"title": "Color"
},
"line_width": {
"anyOf": [
{
"maximum": 10,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The width of the reference line (1-10).",
"title": "Line Width"
},
"line_style": {
"anyOf": [
{
"enum": [
"solid",
"dashed",
"dotted"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The style of the reference line.",
"title": "Line Style"
},
"fill": {
"anyOf": [
{
"enum": [
"above",
"below",
"none"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Fill area above or below the line.",
"title": "Fill"
},
"icon": {
"anyOf": [
{
"$ref": "#/$defs/ReferenceLineIcon"
},
{
"type": "null"
}
],
"default": null,
"description": "Icon to display on the reference line."
},
"icon_position": {
"anyOf": [
{
"enum": [
"auto",
"left",
"right",
"above",
"below"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Position of the icon on the reference line.",
"title": "Icon Position"
}
},
"required": [
"value"
],
"title": "XYReferenceLine",
"type": "object"
},
"XYReferenceLineValue": {
"additionalProperties": false,
"description": "Defines the value for a reference line.",
"properties": {
"type": {
"const": "static",
"default": "static",
"description": "The type of value (always 'static' for now).",
"title": "Type",
"type": "string"
},
"value": {
"description": "The static value for the reference line.",
"title": "Value",
"type": "number"
}
},
"required": [
"value"
],
"title": "XYReferenceLineValue",
"type": "object"
},
"XYValuesConfig": {
"additionalProperties": false,
"description": "Formatting options for value labels on data points.",
"properties": {
"visible": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Controls whether value labels are shown on data points (e.g., on top of bars). Kibana defaults to hidden if not specified.",
"title": "Visible"
}
},
"title": "XYValuesConfig",
"type": "object"
}
},
"additionalProperties": false,
"description": "A dashboard with filters, controls, panels and more.",
"properties": {
"name": {
"description": "The name of the dashboard.",
"title": "Name",
"type": "string"
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "An optional unique identifier for the dashboard, useful for giving the generated dashboard a specific ID.",
"title": "Id"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A brief description of the dashboard's purpose or content.",
"title": "Description"
},
"minimum_kibana_version": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional minimum Kibana version required for this dashboard (e.g., '9.2.0').",
"title": "Minimum Kibana Version"
},
"time_range": {
"anyOf": [
{
"$ref": "#/$defs/TimeRange"
},
{
"type": "null"
}
],
"default": null,
"description": "A default time range to apply when opening the dashboard."
},
"settings": {
"$ref": "#/$defs/DashboardSettings"
},
"query": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A query (KQL or Lucene) applied to the dashboard."
},
"filters": {
"description": "A list of filters applied to the dashboard.",
"items": {
"$ref": "#/$defs/FilterTypes"
},
"title": "Filters",
"type": "array"
},
"controls": {
"description": "A list of Controls for the dashboard.",
"items": {
"$ref": "#/$defs/ControlTypes"
},
"title": "Controls",
"type": "array"
},
"panels": {
"description": "A list of Panels defining the content and layout of the dashboard.",
"items": {
"$ref": "#/$defs/DashboardPanelTypes"
},
"title": "Panels",
"type": "array"
},
"sample_data": {
"anyOf": [
{
"$ref": "#/$defs/SampleData"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional sample data to bundle with the dashboard for testing and demonstration."
}
},
"required": [
"name"
],
"title": "Dashboard",
"type": "object"
}
Source code in kb_dashboard_core/dashboard/config.py
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 | |
add_filter
¶
Add a filter to the dashboard's global filters list.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
filter
|
FilterTypes
|
The filter object to add. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
Self |
Self
|
The current instance of the Dashboard for method chaining. |
Source code in kb_dashboard_core/dashboard/config.py
add_control
¶
Add a control panel configuration to the dashboard's controls list.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
control
|
ControlTypes
|
The control object to add. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
Self |
Self
|
The current instance of the Dashboard for method chaining. |
Source code in kb_dashboard_core/dashboard/config.py
add_panel
¶
Add a panel object to the dashboard's panels list.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
panel
|
DashboardPanelTypes
|
The panel object to add. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
Self |
Self
|
The current instance of the Dashboard for method chaining. |
Source code in kb_dashboard_core/dashboard/config.py
Compilation¶
compile
¶
Compile a Dashboard into its Kibana view model representation.
compile_dashboard
¶
Compile a Dashboard object into its Kibana view model representation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dashboard
|
Dashboard
|
The Dashboard object to compile. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
KbnDashboard |
KbnDashboard
|
The compiled Kibana dashboard view model. |