{ "schema": { "properties": { "annotation_layers": { "description": "Annotation layers to apply to chart", "items": { "properties": { "annotationType": { "description": "Type of annotation layer", "enum": ["FORMULA", "INTERVAL", "EVENT", "TIME_SERIES"], "type": "string" }, "color": { "description": "Layer color", "nullable": true, "type": "string" }, "descriptionColumns": { "description": "Columns to use as the description. If none are provided, all will be shown.", "items": { "type": "string" }, "type": "array" }, "hideLine": { "description": "Should line be hidden. Only applies to line annotations", "nullable": true, "type": "boolean" }, "intervalEndColumn": { "description": "Column containing end of interval. Only applies to interval layers", "nullable": true, "type": "string" }, "name": { "description": "Name of layer", "type": "string" }, "opacity": { "description": "Opacity of layer", "enum": ["", "opacityLow", "opacityMedium", "opacityHigh", null], "nullable": true, "type": "string" }, "overrides": { "additionalProperties": { "nullable": true }, "description": "which properties should be overridable", "nullable": true, "type": "object" }, "show": { "description": "Should the layer be shown", "type": "boolean" }, "showLabel": { "description": "Should the label always be shown", "nullable": true, "type": "boolean" }, "showMarkers": { "description": "Should markers be shown. Only applies to line annotations.", "type": "boolean" }, "sourceType": { "description": "Type of source for annotation data", "enum": ["", "line", "NATIVE", "table"], "type": "string" }, "style": { "description": "Line style. Only applies to time-series annotations", "enum": ["dashed", "dotted", "solid", "longDashed"], "type": "string" }, "timeColumn": { "description": "Column with event date or interval start date", "nullable": true, "type": "string" }, "titleColumn": { "description": "Column with title", "nullable": true, "type": "string" }, "value": { "description": "For formula annotations, this contains the formula. For other types, this is the primary key of the source object." }, "width": { "description": "Width of annotation line", "minimum": 0, "type": "number" } }, "required": ["name", "show", "showMarkers", "value"], "type": "object", "title": "AnnotationLayer" }, "nullable": true, "type": "array" }, "applied_time_extras": { "description": "A mapping of temporal extras that have been applied to the query", "example": { "__time_range": "1 year ago : now" }, "nullable": true, "type": "object" }, "apply_fetch_values_predicate": { "description": "Add fetch values predicate (where clause) to query if defined in datasource", "nullable": true, "type": "boolean" }, "columns": { "description": "Columns which to select in the query.", "items": {}, "nullable": true, "type": "array" }, "datasource": { "allOf": [ { "properties": { "id": { "description": "Datasource id or uuid" }, "type": { "description": "Datasource type", "enum": ["table", "dataset", "query", "saved_query", "view"], "type": "string" } }, "required": ["id"], "type": "object", "title": "ChartDataDatasource" } ], "nullable": true }, "extras": { "allOf": [ { "properties": { "column_order": { "description": "Ordered list of column names for result ordering. Used to preserve user's column reordering (including mixed dimension columns and metrics)", "items": { "type": "string" }, "nullable": true, "type": "array" }, "having": { "description": "HAVING clause to be added to aggregate queries using AND operator.", "type": "string" }, "instant_time_comparison_range": { "description": "This is only set using the new time comparison controls that is made available in some plugins behind the experimental feature flag.", "nullable": true, "type": "string" }, "relative_end": { "description": "End time for relative time deltas. Default: `config[\"DEFAULT_RELATIVE_START_TIME\"]`", "enum": ["today", "now"], "type": "string" }, "relative_start": { "description": "Start time for relative time deltas. Default: `config[\"DEFAULT_RELATIVE_START_TIME\"]`", "enum": ["today", "now"], "type": "string" }, "time_grain_sqla": { "description": "To what level of granularity should the temporal column be aggregated. Supports [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Durations) durations.", "enum": [ "PT1S", "PT5S", "PT30S", "PT1M", "PT5M", "PT10M", "PT15M", "PT30M", "PT1H", "PT6H", "P1D", "P1W", "P1M", "P3M", "P1Y", "1969-12-28T00:00:00Z/P1W", "1969-12-29T00:00:00Z/P1W", "P1W/1970-01-03T00:00:00Z", "P1W/1970-01-04T00:00:00Z", null ], "example": "P1D", "nullable": true, "type": "string" }, "transpile_to_dialect": { "description": "If true, WHERE/HAVING clauses will be transpiled to the target database dialect using SQLGlot.", "nullable": true, "type": "boolean" }, "where": { "description": "WHERE clause to be added to queries using AND operator.", "type": "string" } }, "type": "object", "title": "ChartDataExtras" } ], "description": "Extra parameters to add to the query.", "nullable": true }, "filters": { "items": { "properties": { "col": { "description": "The column to filter by. Can be either a string (physical or saved expression) or an object (adhoc column)", "example": "country" }, "grain": { "description": "Optional time grain for temporal filters", "example": "PT1M", "type": "string" }, "isExtra": { "description": "Indicates if the filter has been added by a filter component as opposed to being a part of the original query.", "type": "boolean" }, "op": { "description": "The comparison operator.", "enum": [ "==", "!=", ">", "<", ">=", "<=", "LIKE", "NOT LIKE", "ILIKE", "NOT ILIKE", "IS NULL", "IS NOT NULL", "IN", "NOT IN", "IS TRUE", "IS FALSE", "TEMPORAL_RANGE" ], "example": "IN", "type": "string" }, "val": { "description": "The value or values to compare against. Can be a string, integer, decimal, None or list, depending on the operator.", "example": ["China", "France", "Japan"], "nullable": true } }, "required": ["col", "op"], "type": "object", "title": "ChartDataFilter" }, "nullable": true, "type": "array" }, "granularity": { "description": "Name of temporal column used for time filtering. ", "nullable": true, "type": "string" }, "granularity_sqla": { "deprecated": true, "description": "Name of temporal column used for time filtering for SQL datasources. This field is deprecated, use `granularity` instead.", "nullable": true, "type": "string" }, "group_others_when_limit_reached": { "default": false, "description": "When true, groups remaining series into an 'Others' category when series limit is reached. Prevents incomplete data.", "nullable": true, "type": "boolean" }, "groupby": { "description": "Columns by which to group the query. This field is deprecated, use `columns` instead.", "items": {}, "nullable": true, "type": "array" }, "having": { "deprecated": true, "description": "HAVING clause to be added to aggregate queries using AND operator. This field is deprecated and should be passed to `extras`.", "nullable": true, "type": "string" }, "is_rowcount": { "description": "Should the rowcount of the actual query be returned", "nullable": true, "type": "boolean" }, "is_timeseries": { "description": "Is the `query_object` a timeseries.", "nullable": true, "type": "boolean" }, "metrics": { "description": "Aggregate expressions. Metrics can be passed as both references to datasource metrics (strings), or ad-hoc metricswhich are defined only within the query object. See `ChartDataAdhocMetricSchema` for the structure of ad-hoc metrics.", "items": {}, "nullable": true, "type": "array" }, "order_desc": { "description": "Reverse order. Default: `false`", "nullable": true, "type": "boolean" }, "orderby": { "description": "Expects a list of lists where the first element is the column name which to sort by, and the second element is a boolean.", "example": [ ["my_col_1", false], ["my_col_2", true] ], "items": {}, "nullable": true, "type": "array" }, "post_processing": { "description": "Post processing operations to be applied to the result set. Operations are applied to the result set in sequential order.", "items": { "allOf": [ { "properties": { "operation": { "description": "Post processing operation type", "enum": [ "aggregate", "boxplot", "compare", "contribution", "cum", "diff", "escape_separator", "flatten", "geodetic_parse", "geohash_decode", "geohash_encode", "histogram", "pivot", "prophet", "rank", "rename", "resample", "rolling", "select", "sort", "unescape_separator" ], "example": "aggregate", "type": "string" }, "options": { "description": "Options specifying how to perform the operation. Please refer to the respective post processing operation option schemas. For example, `ChartDataPostProcessingOperationOptions` specifies the required options for the pivot operation.", "example": { "aggregates": { "age_mean": { "column": "age", "operator": "mean" }, "age_q1": { "column": "age", "operator": "percentile", "options": { "q": 0.25 } } }, "groupby": ["country", "gender"] }, "type": "object" } }, "required": ["operation"], "type": "object", "title": "ChartDataPostProcessingOperation" } ], "nullable": true }, "nullable": true, "type": "array" }, "result_type": { "enum": [ "columns", "full", "query", "results", "samples", "timegrains", "post_processed", "drill_detail", null ], "nullable": true }, "row_limit": { "description": "Maximum row count (0=disabled). Default: `config[\"ROW_LIMIT\"]`", "minimum": 0, "nullable": true, "type": "integer" }, "row_offset": { "description": "Number of rows to skip. Default: `0`", "minimum": 0, "nullable": true, "type": "integer" }, "series_columns": { "description": "Columns to use when limiting series count. All columns must be present in the `columns` property. Requires `series_limit` and `series_limit_metric` to be set.", "items": {}, "nullable": true, "type": "array" }, "series_limit": { "description": "Maximum number of series. Requires `series` and `series_limit_metric` to be set.", "nullable": true, "type": "integer" }, "series_limit_metric": { "description": "Metric used to limit timeseries queries by. Requires `series` and `series_limit` to be set.", "nullable": true }, "time_offsets": { "items": { "type": "string" }, "nullable": true, "type": "array" }, "time_range": { "description": "A time rage, either expressed as a colon separated string `since : until` or human readable freeform. Valid formats for `since` and `until` are: \n- ISO 8601\n- X days/years/hours/day/year/weeks\n- X days/years/hours/day/year/weeks ago\n- X days/years/hours/day/year/weeks from now\n\nAdditionally, the following freeform can be used:\n\n- Last day\n- Last week\n- Last month\n- Last quarter\n- Last year\n- No filter\n- Last X seconds/minutes/hours/days/weeks/months/years\n- Next X seconds/minutes/hours/days/weeks/months/years\n", "example": "Last week", "nullable": true, "type": "string" }, "time_shift": { "description": "A human-readable date/time string. Please refer to [parsdatetime](https://github.com/bear/parsedatetime) documentation for details on valid values.", "nullable": true, "type": "string" }, "timeseries_limit": { "description": "Maximum row count for timeseries queries. This field is deprecated, use `series_limit` instead.Default: `0`", "nullable": true, "type": "integer" }, "timeseries_limit_metric": { "description": "Metric used to limit timeseries queries by. This field is deprecated, use `series_limit_metric` instead.", "nullable": true }, "url_params": { "additionalProperties": { "description": "The value of the query parameter", "type": "string" }, "description": "Optional query parameters passed to a dashboard or Explore view", "nullable": true, "type": "object" }, "where": { "deprecated": true, "description": "WHERE clause to be added to queries using AND operator.This field is deprecated and should be passed to `extras`.", "nullable": true, "type": "string" } }, "type": "object", "title": "ChartDataQueryObject" }, "schemaType": "response" }