import {z} from 'zod' export type AnnotationSourceMode = 'builder' | 'sql'; export type StreamType = 'logs' | 'metrics' | 'traces' | 'profiles' | 'service_graph' | 'enrichment_tables' | 'file_list' | 'metadata' | 'index'; export type AnnotationSource = {color?: (string | null) | undefined, description?: (string | null) | undefined, enabled?: boolean | undefined, endTimeField?: (string | null) | undefined, filters?: Record | undefined, id?: string | undefined, mode?: AnnotationSourceMode | undefined, name?: string | undefined, panels?: (Array | null) | undefined, query?: (string | null) | undefined, stream?: string | undefined, streamType?: StreamType | undefined, title?: string | undefined}; export type DateTimeOptions = {endTime?: (number | null) | undefined, relativeTimePeriod?: (string | null) | undefined, startTime?: (number | null) | undefined, type?: string | undefined}; export type BackgroundValue = {color: string}; export type Background = {type: string, value?: (BackgroundValue | null) | undefined}; export type BaseMap = {type?: (string | null) | undefined}; export type ColorBySeries = {color?: (string | null) | undefined, type?: (string | null) | undefined, value?: (string | null) | undefined}; export type ColorCfg = {colorBySeries?: (Array | null) | undefined, fixedColor?: (Array | null) | undefined, mode?: (string | null) | undefined, seriesBy?: (string | null) | undefined}; export type DrillDownVariables = {name?: (string | null) | undefined, value?: (string | null) | undefined}; export type DrillDownData = {dashboard?: (string | null) | undefined, folder?: (string | null) | undefined, logsMode?: (string | null) | undefined, logsQuery?: (string | null) | undefined, passAllVariables?: (boolean | null) | undefined, tab?: (string | null) | undefined, url?: (string | null) | undefined, variables?: (Array | null) | undefined}; export type DrillDown = {data?: (DrillDownData | null) | undefined, findBy?: (string | null) | undefined, name?: (string | null) | undefined, targetBlank?: (boolean | null) | undefined, type?: (string | null) | undefined}; export type HeatmapYBucket = {base?: (number | null) | undefined, mode?: (string | null) | undefined, size?: (number | null) | undefined}; export type LabelPosition = 'top' | 'left' | 'right' | 'bottom' | 'inside' | 'insideLeft' | 'insideRight' | 'insideTop' | 'insideBottom' | 'insideTopLeft' | 'insideBottomLeft' | 'insideTopRight' | 'insideBottomRight' | 'outside'; export type LabelOption = {position?: (LabelPosition | null) | undefined, rotate?: (number | null) | undefined}; export type LegendHeight = {unit?: (string | null) | undefined, value?: (number | null) | undefined}; export type LegendWidth = {unit?: (string | null) | undefined, value?: (number | null) | undefined}; export type LineInterpolation = 'smooth' | 'linear' | 'step-start' | 'step-end' | 'step-middle'; export type SizeByValue = {max?: number | undefined, min?: number | undefined}; export type MapSymbolStyle = {size?: string | undefined, size_by_value?: (SizeByValue | null) | undefined, size_fixed?: number | undefined}; export type MapType = {type?: (string | null) | undefined}; export type MapView = {lat?: number | undefined, lng?: number | undefined, zoom?: number | undefined}; export type Mapping = {color?: (string | null) | undefined, from?: (string | null) | undefined, match?: (string | null) | undefined, pattern?: (string | null) | undefined, text?: (string | null) | undefined, textColor?: (string | null) | undefined, to?: (string | null) | undefined, type?: (string | null) | undefined, value?: (string | null) | undefined}; export type MarkArea = {axis?: (string | null) | undefined, color?: (string | null) | undefined, from?: (string | null) | undefined, name?: (string | null) | undefined, to?: (string | null) | undefined}; export type MarkLine = {name?: (string | null) | undefined, type?: (string | null) | undefined, value?: (string | null) | undefined}; export type ConditionalRule = {bgColor?: (string | null) | undefined, operator?: string | undefined, textColor?: (string | null) | undefined, threshold?: number | undefined}; export type ThresholdStep = {color?: (string | null) | undefined, value?: (number | null) | undefined}; export type Thresholds = {baseColor?: (string | null) | undefined, mode?: (string | null) | undefined, showAs?: (string | null) | undefined, steps?: (Array | null) | undefined}; export type SeriesHideFrom = {chart?: (boolean | null) | undefined, legend?: (boolean | null) | undefined, tooltip?: (boolean | null) | undefined}; export type Config = {type: 'unit', value: unknown} | {autoColor?: boolean | undefined, type: 'unique_value_color'} | {type: 'alignment', value?: (string | null) | undefined} | {type: 'text_color', value?: (string | null) | undefined} | {type: 'background_color', value?: (string | null) | undefined} | {type: 'field_type', value?: (string | null) | undefined} | {rules?: (Array | null) | undefined, type: 'conditional_styles'} | {type: 'decimals', value?: (number | null) | undefined} | {type: 'display_name', value?: (string | null) | undefined} | {type: 'series_color', value?: (string | null) | undefined} | {type: 'thresholds', value?: (Thresholds | null) | undefined} | {type: 'value_mappings', value?: (Array | null) | undefined} | {type: 'line_style', value?: (string | null) | undefined} | {type: 'line_width', value?: (number | null) | undefined} | {type: 'fill_opacity', value?: (number | null) | undefined} | {type: 'show_points', value?: (boolean | null) | undefined} | {type: 'transform', value?: (string | null) | undefined} | {type: 'draw_style', value?: (string | null) | undefined} | {type: 'stack_group', value?: (string | null) | undefined} | {type: 'y_axis', value?: (string | null) | undefined} | {type: 'hide_from', value?: (SeriesHideFrom | null) | undefined}; export type Field = {matchBy?: string | undefined, value?: string | undefined}; export type OverrideConfig = {config?: (Array | null) | undefined, field?: (Field | null) | undefined}; export type Sparkline = {color?: (string | null) | undefined, enabled?: boolean | undefined, fillOpacity?: (number | null) | undefined, layout?: (string | null) | undefined, lineWidth?: (number | null) | undefined, type?: (string | null) | undefined}; export type Trellis = {group_by_y_axis?: (boolean | null) | undefined, layout?: (string | null) | undefined, num_of_columns?: number | undefined}; export type PanelConfig = {aggregation?: (string | null) | undefined, alert_list_folder?: (string | null) | undefined, alert_list_max?: (number | null) | undefined, alert_list_sort?: (string | null) | undefined, alert_list_state?: (Array | null) | undefined, axis_border_show?: (boolean | null) | undefined, axis_label_mode?: (string | null) | undefined, axis_label_rotate?: (number | null) | undefined, axis_label_truncate_width?: (number | null) | undefined, axis_width?: (number | null) | undefined, background?: (Background | null) | undefined, bar_gauge_mode?: (string | null) | undefined, bar_gauge_orientation?: (string | null) | undefined, bar_gauge_show_unfilled?: (boolean | null) | undefined, bar_radius?: (number | null) | undefined, bar_width?: (number | null) | undefined, base_map?: (BaseMap | null) | undefined, boxplot_whisker?: (string | null) | undefined, bucket_unit?: (string | null) | undefined, bucket_unit_custom?: (string | null) | undefined, chart_align?: (string | null) | undefined, color?: (ColorCfg | null) | undefined, column_order?: (Array | null) | undefined, connect_nulls?: (boolean | null) | undefined, connect_nulls_threshold?: (number | null) | undefined, decimals?: (number | null) | undefined, distribution_bucket_count?: (number | null) | undefined, distribution_bucket_offset?: (number | null) | undefined, distribution_bucket_size?: (number | null) | undefined, donut_inner_radius?: (number | null) | undefined, drilldown?: (Array | null) | undefined, enable_roam?: (boolean | null) | undefined, fill_gradient?: (boolean | null) | undefined, fill_opacity?: (number | null) | undefined, flame_graph_stack_field?: (string | null) | undefined, flame_graph_value_field?: (string | null) | undefined, funnel_orient?: (string | null) | undefined, funnel_show_percent?: (boolean | null) | undefined, funnel_sort?: (string | null) | undefined, gauge_neutral?: (number | null) | undefined, gauge_round_cap?: (boolean | null) | undefined, gauge_segments?: (number | null) | undefined, gauge_style?: (string | null) | undefined, heatmap_cell_gap?: (number | null) | undefined, heatmap_color_max?: (number | null) | undefined, heatmap_color_min?: (number | null) | undefined, heatmap_color_scale?: (string | null) | undefined, heatmap_hide_below?: (number | null) | undefined, heatmap_mode?: (string | null) | undefined, heatmap_palette?: (string | null) | undefined, heatmap_palette_reverse?: (boolean | null) | undefined, heatmap_y_bucket?: (HeatmapYBucket | null) | undefined, heatmap_y_max?: (number | null) | undefined, heatmap_y_min?: (number | null) | undefined, heatmap_y_sort?: (string | null) | undefined, hidden_columns?: (Array | null) | undefined, hostmap_cell_label?: (string | null) | undefined, hostmap_cell_shape?: (string | null) | undefined, hostmap_cell_sort?: (string | null) | undefined, hostmap_entity_label?: (string | null) | undefined, hostmap_group_by?: (Array | null) | undefined, hostmap_group_sort?: (string | null) | undefined, hostmap_reduction?: (string | null) | undefined, label_option?: (LabelOption | null) | undefined, lat_label?: (string | null) | undefined, legend_height?: (LegendHeight | null) | undefined, legend_values?: (Array | null) | undefined, legend_width?: (LegendWidth | null) | undefined, legends_position?: (string | null) | undefined, legends_type?: (string | null) | undefined, line_interpolation?: (LineInterpolation | null) | undefined, line_style?: (string | null) | undefined, line_thickness?: (number | null) | undefined, logs_level_field?: (string | null) | undefined, logs_message_field?: (string | null) | undefined, logs_order?: (string | null) | undefined, logs_prettify_json?: (boolean | null) | undefined, logs_show_time?: (boolean | null) | undefined, logs_time_field?: (string | null) | undefined, logs_wrap?: (boolean | null) | undefined, lon_label?: (string | null) | undefined, map_cluster?: (boolean | null) | undefined, map_cluster_radius?: (number | null) | undefined, map_symbol_style?: (MapSymbolStyle | null) | undefined, map_type?: (MapType | null) | undefined, map_view?: (MapView | null) | undefined, mappings?: (Array | null) | undefined, mark_area?: (Array | null) | undefined, mark_line?: (Array | null) | undefined, merge_gaps?: (number | null) | undefined, name_label?: (string | null) | undefined, no_data_text?: (string | null) | undefined, no_value_replacement?: (string | null) | undefined, node_graph_layout?: (string | null) | undefined, node_graph_show_edge_labels?: (boolean | null) | undefined, override_config?: (Array | null) | undefined, panel_time_enabled?: (boolean | null) | undefined, panel_time_range?: (DateTimeOptions | null) | undefined, pie_label_content?: (Array | null) | undefined, pie_other_threshold?: (number | null) | undefined, promql_series_limit?: (number | null) | undefined, promql_table_mode?: (string | null) | undefined, row_gap?: (number | null) | undefined, row_height?: (number | null) | undefined, row_sort?: (string | null) | undefined, scatter_color_field?: (string | null) | undefined, scatter_size_field?: (string | null) | undefined, scatter_size_max?: (number | null) | undefined, scatter_size_min?: (number | null) | undefined, show_bar_track?: (boolean | null) | undefined, show_exemplars?: (boolean | null) | undefined, show_gauge_end_labels?: (boolean | null) | undefined, show_gridlines?: (boolean | null) | undefined, show_legends: boolean, show_state_text?: (boolean | null) | undefined, show_symbol?: (boolean | null) | undefined, sort_order?: (string | null) | undefined, sparkline?: (Sparkline | null) | undefined, stack_mode?: (string | null) | undefined, stat_text_mode?: (string | null) | undefined, state_timeline_display?: (string | null) | undefined, state_value_align?: (string | null) | undefined, step_value?: (string | null) | undefined, sticky_columns?: (Array | null) | undefined, sticky_first_column?: (boolean | null) | undefined, sunburst_show_labels?: (boolean | null) | undefined, symbol_opacity?: (number | null) | undefined, symbol_size?: (number | null) | undefined, table_aggregations?: (Array | null) | undefined, table_density?: (string | null) | undefined, table_dynamic_columns?: (boolean | null) | undefined, table_expandable_rows?: (boolean | null) | undefined, table_filtering?: (boolean | null) | undefined, table_footer_calcs?: (Array | null) | undefined, table_pagination?: (boolean | null) | undefined, table_pagination_rows_per_page?: (number | null) | undefined, table_pivot_show_col_totals?: (boolean | null) | undefined, table_pivot_show_row_totals?: (boolean | null) | undefined, table_pivot_sticky_col_totals?: (boolean | null) | undefined, table_pivot_sticky_row_totals?: (boolean | null) | undefined, table_transpose?: (boolean | null) | undefined, thresholds?: (Thresholds | null) | undefined, tooltip_mode?: (string | null) | undefined, tooltip_sort?: (string | null) | undefined, top_results?: (number | null) | undefined, top_results_others?: (boolean | null) | undefined, treemap_show_breadcrumb?: (boolean | null) | undefined, trellis?: (Trellis | null) | undefined, unit?: (string | null) | undefined, unit_custom?: (string | null) | undefined, value_font_size?: (number | null) | undefined, visible_columns?: (Array | null) | undefined, weight_label?: (string | null) | undefined, wrap_table_cells?: (boolean | null) | undefined, y_axis_hard_max?: (number | null) | undefined, y_axis_hard_min?: (number | null) | undefined, y_axis_label?: (string | null) | undefined, y_axis_log_base?: (number | null) | undefined, y_axis_max?: (number | null) | undefined, y_axis_min?: (number | null) | undefined, y_axis_min_interval?: (number | null) | undefined, y_axis_scale?: (string | null) | undefined}; export type Layout = {h?: number | undefined, i?: number | undefined, w?: number | undefined, x?: number | undefined, y?: number | undefined}; export type TimeShift = {offSet?: (string | null) | undefined}; export type QueryConfig = {formula?: (string | null) | undefined, hide?: (boolean | null) | undefined, layer_type?: (string | null) | undefined, limit?: (number | null) | undefined, max?: (number | null) | undefined, min?: (number | null) | undefined, promql_legend: string, promql_legend_fallback?: (string | null) | undefined, query_label?: (string | null) | undefined, query_type?: (string | null) | undefined, range_mode?: (string | null) | undefined, ref?: (string | null) | undefined, step_value?: (string | null) | undefined, time_shift?: (Array | null) | undefined, weight_fixed?: (number | null) | undefined}; export type AxisArgFunction = {args: Array>, functionName?: (string | null) | undefined}; export type AxisArgValue = {field?: (string | null) | undefined, streamAlias?: (string | null) | undefined}; export type AxisArgValueWrapper = AxisArgFunction | AxisArgValue | string | number; export type AxisArg = {type?: (string | null) | undefined, value?: (AxisArgValueWrapper | null) | undefined}; export type HavingConditions = {operator?: (string | null) | undefined, value?: (number | null) | undefined}; export type AxisType = 'build' | 'raw' | 'custom'; export type AxisItem = {alias: string, args?: (Array | null) | undefined, color?: (string | null) | undefined, column?: (string | null) | undefined, functionName?: (string | null) | undefined, havingConditions?: (Array | null) | undefined, isDerived?: (boolean | null) | undefined, label: string, rawQuery?: (string | null) | undefined, showFieldAsJson?: (boolean | null) | undefined, sortBy?: (string | null) | undefined, treatAsNonTimestamp?: (boolean | null) | undefined, type?: (AxisType | null) | undefined}; export type StreamFieldObj = {field?: (string | null) | undefined, streamAlias?: (string | null) | undefined}; export type FilterCondition = {column?: (StreamFieldObj | null) | undefined, emptyLiteral?: (boolean | null) | undefined, filterType: string, logicalOperator: string, operator?: (string | null) | undefined, type: string, value?: (string | null) | undefined, values: Array}; export type GroupType = {conditions: Array>, filterType: string, logicalOperator: string}; export type PanelFilter = FilterCondition | GroupType; export type PromQLLabelFilter = {group?: (number | null) | undefined, label?: string | undefined, negate?: (boolean | null) | undefined, op?: string | undefined, value?: string | undefined}; export type PromQLOperationParam = Array | string | number | boolean; export type PromQLOperation = {id?: string | undefined, params?: (Array | null) | undefined}; export type PanelFields = {breakdown?: (Array | null) | undefined, filter: PanelFilter, latitude?: (AxisItem | null) | undefined, longitude?: (AxisItem | null) | undefined, name?: (AxisItem | null) | undefined, promql_labels?: Array | undefined, promql_operations?: Array | undefined, source?: (AxisItem | null) | undefined, stream: string, stream_type: StreamType, target?: (AxisItem | null) | undefined, value?: (AxisItem | null) | undefined, value_for_maps?: (AxisItem | null) | undefined, weight?: (AxisItem | null) | undefined, x: Array, y: Array, z?: Array | undefined}; export type SelectedField = {field: string, streamAlias?: (string | null) | undefined}; export type JoinCondition = {leftField: SelectedField, operation: string, rightField: SelectedField}; export type Join = {conditions: Array, joinType: string, stream: string, streamAlias: string}; export type Query = {config: QueryConfig, customQuery: boolean, fields: PanelFields, joins?: (Array | null) | undefined, query?: (string | null) | undefined, tabName?: (string | null) | undefined, vrlFunctionQuery?: (string | null) | undefined}; export type Panel = {config: PanelConfig, customChartContent?: (string | null) | undefined, description: string, htmlContent?: (string | null) | undefined, id: string, layout?: (Layout | null) | undefined, markdownContent?: (string | null) | undefined, queries: Array, queryType?: string | undefined, title: string, type: string}; export type Tab = {name: string, panels?: Array | undefined, tabId: string}; export type CustomFieldsOption = {label?: string | undefined, selected?: (boolean | null) | undefined, value?: string | undefined}; export type Filters = {name?: (string | null) | undefined, operator?: (string | null) | undefined, value?: string | undefined}; export type QueryData = {field?: string | undefined, filter?: (Array | null) | undefined, max_record_size?: (number | null) | undefined, stream?: string | undefined, stream_type?: StreamType | undefined}; export type VariableList = {customMultiSelectValue?: (Array | null) | undefined, dateFormat?: (string | null) | undefined, escapeSingleQuotes?: (boolean | null) | undefined, hideOnDashboard?: (boolean | null) | undefined, label?: string | undefined, multiSelect?: (boolean | null) | undefined, name?: string | undefined, options?: (Array | null) | undefined, panels?: (Array | null) | undefined, query_data?: (QueryData | null) | undefined, scope?: (string | null) | undefined, selectAllValueForMultiSelect?: (string | null) | undefined, tabs?: (Array | null) | undefined, type?: string | undefined, value?: (string | null) | undefined}; export type Variables = {list?: Array | undefined, showDynamicFilters?: (boolean | null) | undefined}; export type Dashboard = {annotationSources?: (Array | null) | undefined, created?: string | undefined, dashboardId?: string | undefined, defaultDatetimeDuration?: (DateTimeOptions | null) | undefined, defaultRefreshInterval?: (number | null) | undefined, description: string, owner?: string | undefined, role?: string | undefined, tabs?: Array | undefined, title: string, variables?: (Variables | null) | undefined, version?: number | undefined}; export type CreateApiApiOrgIdDashboardsArgs = {org_id: string, folder?: string | undefined, body: Dashboard | Dashboard | Dashboard | Dashboard | Dashboard | Dashboard | Dashboard | Dashboard}; export type CreateApiApiOrgIdDashboardsOptions = {baseUrl: string, Authorization?: string | undefined, fetch?: typeof fetch | undefined}; export const annotationSourceMode = z.enum(["builder", "sql"]); export const streamType = z.enum(["logs", "metrics", "traces", "profiles", "service_graph", "enrichment_tables", "file_list", "metadata", "index"]); export const annotationSource = z.object({color: z.string().nullable().optional(), description: z.string().nullable().optional(), enabled: z.boolean().optional(), endTimeField: z.string().nullable().optional(), filters: z.object({}).optional(), id: z.string().optional(), mode: annotationSourceMode.optional(), name: z.string().optional(), panels: z.array(z.string()).nullable().optional(), query: z.string().nullable().optional(), stream: z.string().optional(), streamType: streamType.optional(), title: z.string().optional()}); export const dateTimeOptions = z.object({endTime: z.number().int().nullable().optional(), relativeTimePeriod: z.string().nullable().optional(), startTime: z.number().int().nullable().optional(), type: z.string().optional()}); export const backgroundValue = z.object({color: z.string()}); export const background = z.object({type: z.string(), value: backgroundValue.nullable().optional()}); export const baseMap = z.object({type: z.string().nullable().optional()}); export const colorBySeries = z.object({color: z.string().nullable().optional(), type: z.string().nullable().optional(), value: z.string().nullable().optional()}); export const colorCfg = z.object({colorBySeries: z.array(colorBySeries).nullable().optional(), fixedColor: z.array(z.string()).nullable().optional(), mode: z.string().nullable().optional(), seriesBy: z.string().nullable().optional()}); export const drillDownVariables = z.object({name: z.string().nullable().optional(), value: z.string().nullable().optional()}); export const drillDownData = z.object({dashboard: z.string().nullable().optional(), folder: z.string().nullable().optional(), logsMode: z.string().nullable().optional(), logsQuery: z.string().nullable().optional(), passAllVariables: z.boolean().nullable().optional(), tab: z.string().nullable().optional(), url: z.string().nullable().optional(), variables: z.array(drillDownVariables).nullable().optional()}); export const drillDown = z.object({data: drillDownData.nullable().optional(), findBy: z.string().nullable().optional(), name: z.string().nullable().optional(), targetBlank: z.boolean().nullable().optional(), type: z.string().nullable().optional()}); export const heatmapYBucket = z.object({base: z.number().nullable().optional(), mode: z.string().nullable().optional(), size: z.number().nullable().optional()}); export const labelPosition = z.enum(["top", "left", "right", "bottom", "inside", "insideLeft", "insideRight", "insideTop", "insideBottom", "insideTopLeft", "insideBottomLeft", "insideTopRight", "insideBottomRight", "outside"]); export const labelOption = z.object({position: labelPosition.nullable().optional(), rotate: z.number().nullable().optional()}); export const legendHeight = z.object({unit: z.string().nullable().optional(), value: z.number().nullable().optional()}); export const legendWidth = z.object({unit: z.string().nullable().optional(), value: z.number().nullable().optional()}); export const lineInterpolation = z.enum(["smooth", "linear", "step-start", "step-end", "step-middle"]); export const sizeByValue = z.object({max: z.number().optional(), min: z.number().optional()}); export const mapSymbolStyle = z.object({size: z.string().optional(), size_by_value: sizeByValue.nullable().optional(), size_fixed: z.number().optional()}); export const mapType = z.object({type: z.string().nullable().optional()}); export const mapView = z.object({lat: z.number().optional(), lng: z.number().optional(), zoom: z.number().optional()}); export const mapping = z.object({color: z.string().nullable().optional(), from: z.string().nullable().optional(), match: z.string().nullable().optional(), pattern: z.string().nullable().optional(), text: z.string().nullable().optional(), textColor: z.string().nullable().optional(), to: z.string().nullable().optional(), type: z.string().nullable().optional(), value: z.string().nullable().optional()}); export const markArea = z.object({axis: z.string().nullable().optional(), color: z.string().nullable().optional(), from: z.string().nullable().optional(), name: z.string().nullable().optional(), to: z.string().nullable().optional()}); export const markLine = z.object({name: z.string().nullable().optional(), type: z.string().nullable().optional(), value: z.string().nullable().optional()}); export const conditionalRule = z.object({bgColor: z.string().nullable().optional(), operator: z.string().optional(), textColor: z.string().nullable().optional(), threshold: z.number().optional()}); export const thresholdStep = z.object({color: z.string().nullable().optional(), value: z.number().nullable().optional()}); export const thresholds = z.object({baseColor: z.string().nullable().optional(), mode: z.string().nullable().optional(), showAs: z.string().nullable().optional(), steps: z.array(thresholdStep).nullable().optional()}); export const seriesHideFrom = z.object({chart: z.boolean().nullable().optional(), legend: z.boolean().nullable().optional(), tooltip: z.boolean().nullable().optional()}); export const config = z.union([z.object({type: z.literal("unit"), value: z.unknown()}), z.object({autoColor: z.boolean().optional(), type: z.literal("unique_value_color")}), z.object({type: z.literal("alignment"), value: z.string().nullable().optional()}), z.object({type: z.literal("text_color"), value: z.string().nullable().optional()}), z.object({type: z.literal("background_color"), value: z.string().nullable().optional()}), z.object({type: z.literal("field_type"), value: z.string().nullable().optional()}), z.object({rules: z.array(conditionalRule).nullable().optional(), type: z.literal("conditional_styles")}), z.object({type: z.literal("decimals"), value: z.number().nullable().optional()}), z.object({type: z.literal("display_name"), value: z.string().nullable().optional()}), z.object({type: z.literal("series_color"), value: z.string().nullable().optional()}), z.object({type: z.literal("thresholds"), value: thresholds.nullable().optional()}), z.object({type: z.literal("value_mappings"), value: z.array(mapping).nullable().optional()}), z.object({type: z.literal("line_style"), value: z.string().nullable().optional()}), z.object({type: z.literal("line_width"), value: z.number().nullable().optional()}), z.object({type: z.literal("fill_opacity"), value: z.number().nullable().optional()}), z.object({type: z.literal("show_points"), value: z.boolean().nullable().optional()}), z.object({type: z.literal("transform"), value: z.string().nullable().optional()}), z.object({type: z.literal("draw_style"), value: z.string().nullable().optional()}), z.object({type: z.literal("stack_group"), value: z.string().nullable().optional()}), z.object({type: z.literal("y_axis"), value: z.string().nullable().optional()}), z.object({type: z.literal("hide_from"), value: seriesHideFrom.nullable().optional()})]); export const field = z.object({matchBy: z.string().optional(), value: z.string().optional()}); export const overrideConfig = z.object({config: z.array(config).nullable().optional(), field: field.nullable().optional()}); export const sparkline = z.object({color: z.string().nullable().optional(), enabled: z.boolean().optional(), fillOpacity: z.number().nullable().optional(), layout: z.string().nullable().optional(), lineWidth: z.number().nullable().optional(), type: z.string().nullable().optional()}); export const trellis = z.object({group_by_y_axis: z.boolean().nullable().optional(), layout: z.string().nullable().optional(), num_of_columns: z.number().int().optional()}); export const panelConfig = z.object({aggregation: z.string().nullable().optional(), alert_list_folder: z.string().nullable().optional(), alert_list_max: z.number().nullable().optional(), alert_list_sort: z.string().nullable().optional(), alert_list_state: z.array(z.string()).nullable().optional(), axis_border_show: z.boolean().nullable().optional(), axis_label_mode: z.string().nullable().optional(), axis_label_rotate: z.number().nullable().optional(), axis_label_truncate_width: z.number().nullable().optional(), axis_width: z.number().nullable().optional(), background: background.nullable().optional(), bar_gauge_mode: z.string().nullable().optional(), bar_gauge_orientation: z.string().nullable().optional(), bar_gauge_show_unfilled: z.boolean().nullable().optional(), bar_radius: z.number().nullable().optional(), bar_width: z.number().nullable().optional(), base_map: baseMap.nullable().optional(), boxplot_whisker: z.string().nullable().optional(), bucket_unit: z.string().nullable().optional(), bucket_unit_custom: z.string().nullable().optional(), chart_align: z.string().nullable().optional(), color: colorCfg.nullable().optional(), column_order: z.array(z.string()).nullable().optional(), connect_nulls: z.boolean().nullable().optional(), connect_nulls_threshold: z.number().nullable().optional(), decimals: z.number().nullable().optional(), distribution_bucket_count: z.number().nullable().optional(), distribution_bucket_offset: z.number().nullable().optional(), distribution_bucket_size: z.number().nullable().optional(), donut_inner_radius: z.number().nullable().optional(), drilldown: z.array(drillDown).nullable().optional(), enable_roam: z.boolean().nullable().optional(), fill_gradient: z.boolean().nullable().optional(), fill_opacity: z.number().nullable().optional(), flame_graph_stack_field: z.string().nullable().optional(), flame_graph_value_field: z.string().nullable().optional(), funnel_orient: z.string().nullable().optional(), funnel_show_percent: z.boolean().nullable().optional(), funnel_sort: z.string().nullable().optional(), gauge_neutral: z.number().nullable().optional(), gauge_round_cap: z.boolean().nullable().optional(), gauge_segments: z.number().nullable().optional(), gauge_style: z.string().nullable().optional(), heatmap_cell_gap: z.number().nullable().optional(), heatmap_color_max: z.number().nullable().optional(), heatmap_color_min: z.number().nullable().optional(), heatmap_color_scale: z.string().nullable().optional(), heatmap_hide_below: z.number().nullable().optional(), heatmap_mode: z.string().nullable().optional(), heatmap_palette: z.string().nullable().optional(), heatmap_palette_reverse: z.boolean().nullable().optional(), heatmap_y_bucket: heatmapYBucket.nullable().optional(), heatmap_y_max: z.number().nullable().optional(), heatmap_y_min: z.number().nullable().optional(), heatmap_y_sort: z.string().nullable().optional(), hidden_columns: z.array(z.string()).nullable().optional(), hostmap_cell_label: z.string().nullable().optional(), hostmap_cell_shape: z.string().nullable().optional(), hostmap_cell_sort: z.string().nullable().optional(), hostmap_entity_label: z.string().nullable().optional(), hostmap_group_by: z.array(z.string()).nullable().optional(), hostmap_group_sort: z.string().nullable().optional(), hostmap_reduction: z.string().nullable().optional(), label_option: labelOption.nullable().optional(), lat_label: z.string().nullable().optional(), legend_height: legendHeight.nullable().optional(), legend_values: z.array(z.string()).nullable().optional(), legend_width: legendWidth.nullable().optional(), legends_position: z.string().nullable().optional(), legends_type: z.string().nullable().optional(), line_interpolation: lineInterpolation.nullable().optional(), line_style: z.string().nullable().optional(), line_thickness: z.number().nullable().optional(), logs_level_field: z.string().nullable().optional(), logs_message_field: z.string().nullable().optional(), logs_order: z.string().nullable().optional(), logs_prettify_json: z.boolean().nullable().optional(), logs_show_time: z.boolean().nullable().optional(), logs_time_field: z.string().nullable().optional(), logs_wrap: z.boolean().nullable().optional(), lon_label: z.string().nullable().optional(), map_cluster: z.boolean().nullable().optional(), map_cluster_radius: z.number().nullable().optional(), map_symbol_style: mapSymbolStyle.nullable().optional(), map_type: mapType.nullable().optional(), map_view: mapView.nullable().optional(), mappings: z.array(mapping).nullable().optional(), mark_area: z.array(markArea).nullable().optional(), mark_line: z.array(markLine).nullable().optional(), merge_gaps: z.number().nullable().optional(), name_label: z.string().nullable().optional(), no_data_text: z.string().nullable().optional(), no_value_replacement: z.string().nullable().optional(), node_graph_layout: z.string().nullable().optional(), node_graph_show_edge_labels: z.boolean().nullable().optional(), override_config: z.array(overrideConfig).nullable().optional(), panel_time_enabled: z.boolean().nullable().optional(), panel_time_range: dateTimeOptions.nullable().optional(), pie_label_content: z.array(z.string()).nullable().optional(), pie_other_threshold: z.number().nullable().optional(), promql_series_limit: z.number().nullable().optional(), promql_table_mode: z.string().nullable().optional(), row_gap: z.number().nullable().optional(), row_height: z.number().nullable().optional(), row_sort: z.string().nullable().optional(), scatter_color_field: z.string().nullable().optional(), scatter_size_field: z.string().nullable().optional(), scatter_size_max: z.number().nullable().optional(), scatter_size_min: z.number().nullable().optional(), show_bar_track: z.boolean().nullable().optional(), show_exemplars: z.boolean().nullable().optional(), show_gauge_end_labels: z.boolean().nullable().optional(), show_gridlines: z.boolean().nullable().optional(), show_legends: z.boolean(), show_state_text: z.boolean().nullable().optional(), show_symbol: z.boolean().nullable().optional(), sort_order: z.string().nullable().optional(), sparkline: sparkline.nullable().optional(), stack_mode: z.string().nullable().optional(), stat_text_mode: z.string().nullable().optional(), state_timeline_display: z.string().nullable().optional(), state_value_align: z.string().nullable().optional(), step_value: z.string().nullable().optional(), sticky_columns: z.array(z.string()).nullable().optional(), sticky_first_column: z.boolean().nullable().optional(), sunburst_show_labels: z.boolean().nullable().optional(), symbol_opacity: z.number().nullable().optional(), symbol_size: z.number().nullable().optional(), table_aggregations: z.array(z.string()).nullable().optional(), table_density: z.string().nullable().optional(), table_dynamic_columns: z.boolean().nullable().optional(), table_expandable_rows: z.boolean().nullable().optional(), table_filtering: z.boolean().nullable().optional(), table_footer_calcs: z.array(z.string()).nullable().optional(), table_pagination: z.boolean().nullable().optional(), table_pagination_rows_per_page: z.number().int().nullable().optional(), table_pivot_show_col_totals: z.boolean().nullable().optional(), table_pivot_show_row_totals: z.boolean().nullable().optional(), table_pivot_sticky_col_totals: z.boolean().nullable().optional(), table_pivot_sticky_row_totals: z.boolean().nullable().optional(), table_transpose: z.boolean().nullable().optional(), thresholds: thresholds.nullable().optional(), tooltip_mode: z.string().nullable().optional(), tooltip_sort: z.string().nullable().optional(), top_results: z.number().nullable().optional(), top_results_others: z.boolean().nullable().optional(), treemap_show_breadcrumb: z.boolean().nullable().optional(), trellis: trellis.nullable().optional(), unit: z.string().nullable().optional(), unit_custom: z.string().nullable().optional(), value_font_size: z.number().nullable().optional(), visible_columns: z.array(z.string()).nullable().optional(), weight_label: z.string().nullable().optional(), wrap_table_cells: z.boolean().nullable().optional(), y_axis_hard_max: z.number().nullable().optional(), y_axis_hard_min: z.number().nullable().optional(), y_axis_label: z.string().nullable().optional(), y_axis_log_base: z.number().nullable().optional(), y_axis_max: z.number().nullable().optional(), y_axis_min: z.number().nullable().optional(), y_axis_min_interval: z.number().nullable().optional(), y_axis_scale: z.string().nullable().optional()}); export const layout = z.object({h: z.number().int().optional(), i: z.number().int().optional(), w: z.number().int().optional(), x: z.number().int().optional(), y: z.number().int().optional()}); export const timeShift = z.object({offSet: z.string().nullable().optional()}); export const queryConfig = z.object({formula: z.string().nullable().optional(), hide: z.boolean().nullable().optional(), layer_type: z.string().nullable().optional(), limit: z.number().nullable().optional(), max: z.number().nullable().optional(), min: z.number().nullable().optional(), promql_legend: z.string(), promql_legend_fallback: z.string().nullable().optional(), query_label: z.string().nullable().optional(), query_type: z.string().nullable().optional(), range_mode: z.string().nullable().optional(), ref: z.string().nullable().optional(), step_value: z.string().nullable().optional(), time_shift: z.array(timeShift).nullable().optional(), weight_fixed: z.number().nullable().optional()}); export const axisArgFunction = z.object({args: z.array(z.object({})), functionName: z.string().nullable().optional()}); export const axisArgValue = z.object({field: z.string().nullable().optional(), streamAlias: z.string().nullable().optional()}); export const axisArgValueWrapper = z.union([axisArgFunction, axisArgValue, z.string(), z.number()]); export const axisArg = z.object({type: z.string().nullable().optional(), value: axisArgValueWrapper.nullable().optional()}); export const havingConditions = z.object({operator: z.string().nullable().optional(), value: z.number().nullable().optional()}); export const axisType = z.enum(["build", "raw", "custom"]); export const axisItem = z.object({alias: z.string(), args: z.array(axisArg).nullable().optional(), color: z.string().nullable().optional(), column: z.string().nullable().optional(), functionName: z.string().nullable().optional(), havingConditions: z.array(havingConditions).nullable().optional(), isDerived: z.boolean().nullable().optional(), label: z.string(), rawQuery: z.string().nullable().optional(), showFieldAsJson: z.boolean().nullable().optional(), sortBy: z.string().nullable().optional(), treatAsNonTimestamp: z.boolean().nullable().optional(), type: axisType.nullable().optional()}); export const streamFieldObj = z.object({field: z.string().nullable().optional(), streamAlias: z.string().nullable().optional()}); export const filterCondition = z.object({column: streamFieldObj.nullable().optional(), emptyLiteral: z.boolean().nullable().optional(), filterType: z.string(), logicalOperator: z.string(), operator: z.string().nullable().optional(), type: z.string(), value: z.string().nullable().optional(), values: z.array(z.string())}); export const groupType = z.object({conditions: z.array(z.object({})), filterType: z.string(), logicalOperator: z.string()}); export const panelFilter = z.union([filterCondition, groupType]); export const promQLLabelFilter = z.object({group: z.number().int().gte(0).nullable().optional(), label: z.string().optional(), negate: z.boolean().nullable().optional(), op: z.string().optional(), value: z.string().optional()}); export const promQLOperationParam = z.union([z.array(z.string()), z.string(), z.number(), z.boolean()]); export const promQLOperation = z.object({id: z.string().optional(), params: z.array(promQLOperationParam).nullable().optional()}); export const panelFields = z.object({breakdown: z.array(axisItem).nullable().optional(), filter: panelFilter, latitude: axisItem.nullable().optional(), longitude: axisItem.nullable().optional(), name: axisItem.nullable().optional(), promql_labels: z.array(promQLLabelFilter).optional(), promql_operations: z.array(promQLOperation).optional(), source: axisItem.nullable().optional(), stream: z.string(), stream_type: streamType, target: axisItem.nullable().optional(), value: axisItem.nullable().optional(), value_for_maps: axisItem.nullable().optional(), weight: axisItem.nullable().optional(), x: z.array(axisItem), y: z.array(axisItem), z: z.array(axisItem).optional()}); export const selectedField = z.object({field: z.string(), streamAlias: z.string().nullable().optional()}); export const joinCondition = z.object({leftField: selectedField, operation: z.string(), rightField: selectedField}); export const join = z.object({conditions: z.array(joinCondition), joinType: z.string(), stream: z.string(), streamAlias: z.string()}); export const query = z.object({config: queryConfig, customQuery: z.boolean(), fields: panelFields, joins: z.array(join).nullable().optional(), query: z.string().nullable().optional(), tabName: z.string().nullable().optional(), vrlFunctionQuery: z.string().nullable().optional()}); export const panel = z.object({config: panelConfig, customChartContent: z.string().nullable().optional(), description: z.string(), htmlContent: z.string().nullable().optional(), id: z.string(), layout: layout.nullable().optional(), markdownContent: z.string().nullable().optional(), queries: z.array(query), queryType: z.string().optional(), title: z.string(), type: z.string()}); export const tab = z.object({name: z.string(), panels: z.array(panel).optional(), tabId: z.string()}); export const customFieldsOption = z.object({label: z.string().optional(), selected: z.boolean().nullable().optional(), value: z.string().optional()}); export const filters = z.object({name: z.string().nullable().optional(), operator: z.string().nullable().optional(), value: z.string().optional()}); export const queryData = z.object({field: z.string().optional(), filter: z.array(filters).nullable().optional(), max_record_size: z.number().int().nullable().optional(), stream: z.string().optional(), stream_type: streamType.optional()}); export const variableList = z.object({customMultiSelectValue: z.array(z.string()).nullable().optional(), dateFormat: z.string().nullable().optional(), escapeSingleQuotes: z.boolean().nullable().optional(), hideOnDashboard: z.boolean().nullable().optional(), label: z.string().optional(), multiSelect: z.boolean().nullable().optional(), name: z.string().optional(), options: z.array(customFieldsOption).nullable().optional(), panels: z.array(z.string()).nullable().optional(), query_data: queryData.nullable().optional(), scope: z.string().nullable().optional(), selectAllValueForMultiSelect: z.string().nullable().optional(), tabs: z.array(z.string()).nullable().optional(), type: z.string().optional(), value: z.string().nullable().optional()}); export const variables = z.object({list: z.array(variableList).optional(), showDynamicFilters: z.boolean().nullable().optional()}); export const dashboard = z.object({annotationSources: z.array(annotationSource).nullable().optional(), created: z.string().optional(), dashboardId: z.string().optional(), defaultDatetimeDuration: dateTimeOptions.nullable().optional(), defaultRefreshInterval: z.number().int().gte(0).nullable().optional(), description: z.string(), owner: z.string().optional(), role: z.string().optional(), tabs: z.array(tab).optional(), title: z.string(), variables: variables.nullable().optional(), version: z.number().int().optional()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Create new dashboard * * POST /api/{org_id}/dashboards */ export const createApiApiOrgIdDashboards = async (args: CreateApiApiOrgIdDashboardsArgs, options: CreateApiApiOrgIdDashboardsOptions) => { const {baseUrl, fetch: fetchFn = fetch, Authorization} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (args.folder != null) query.append("folder", String(args.folder)) if (Authorization !== undefined) headers.set("Authorization", Authorization) const url = `${baseUrl.replace(/\/+$/, '')}/api/${encodeURIComponent(String(args.org_id))}/dashboards${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(dashboard, await res.json()) };