blob: a86724ead90d188573651cd493d354d0355f8fb9 [file] [log] [blame]
{
"components": {
"responses": {
"400": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Bad request"
},
"401": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Unauthorized"
},
"403": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Not found"
},
"422": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Could not process entity"
},
"500": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Fatal error"
}
},
"schemas": {
"AnnotationLayer": {
"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"
],
"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"
},
"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",
"format": "float",
"minimum": 0,
"type": "number"
}
},
"required": [
"name",
"show",
"showMarkers",
"value"
],
"type": "object"
},
"AnnotationLayerRestApi.get": {
"properties": {
"descr": {
"nullable": true,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"name": {
"maxLength": 250,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"AnnotationLayerRestApi.get_list": {
"properties": {
"changed_by": {
"$ref": "#/components/schemas/Meta4"
},
"changed_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"changed_on_delta_humanized": {
"readOnly": true
},
"created_by": {
"$ref": "#/components/schemas/Meta3"
},
"created_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"descr": {
"nullable": true,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"name": {
"maxLength": 250,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"AnnotationLayerRestApi.post": {
"properties": {
"descr": {
"description": "Give a description for this annotation layer",
"nullable": true,
"type": "string"
},
"name": {
"description": "The annotation layer name",
"maxLength": 250,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"AnnotationLayerRestApi.put": {
"properties": {
"descr": {
"description": "Give a description for this annotation layer",
"type": "string"
},
"name": {
"description": "The annotation layer name",
"maxLength": 250,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"AnnotationRestApi.get": {
"properties": {
"end_dttm": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"json_metadata": {
"nullable": true,
"type": "string"
},
"layer": {
"$ref": "#/components/schemas/Meta2"
},
"long_descr": {
"nullable": true,
"type": "string"
},
"short_descr": {
"maxLength": 500,
"nullable": true,
"type": "string"
},
"start_dttm": {
"format": "date-time",
"nullable": true,
"type": "string"
}
},
"required": [
"layer"
],
"type": "object"
},
"AnnotationRestApi.get_list": {
"properties": {
"changed_by": {
"$ref": "#/components/schemas/Meta1"
},
"changed_on_delta_humanized": {
"readOnly": true
},
"created_by": {
"$ref": "#/components/schemas/Meta"
},
"end_dttm": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"long_descr": {
"nullable": true,
"type": "string"
},
"short_descr": {
"maxLength": 500,
"nullable": true,
"type": "string"
},
"start_dttm": {
"format": "date-time",
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"AnnotationRestApi.post": {
"properties": {
"end_dttm": {
"description": "The annotation end date time",
"format": "date-time",
"type": "string"
},
"json_metadata": {
"description": "JSON metadata",
"nullable": true,
"type": "string"
},
"long_descr": {
"description": "A long description",
"nullable": true,
"type": "string"
},
"short_descr": {
"description": "A short description",
"maxLength": 500,
"minLength": 1,
"type": "string"
},
"start_dttm": {
"description": "The annotation start date time",
"format": "date-time",
"type": "string"
}
},
"type": "object"
},
"AnnotationRestApi.put": {
"properties": {
"end_dttm": {
"description": "The annotation end date time",
"format": "date-time",
"type": "string"
},
"json_metadata": {
"description": "JSON metadata",
"type": "string"
},
"long_descr": {
"description": "A long description",
"type": "string"
},
"short_descr": {
"description": "A short description",
"maxLength": 500,
"minLength": 1,
"type": "string"
},
"start_dttm": {
"description": "The annotation start date time",
"format": "date-time",
"type": "string"
}
},
"type": "object"
},
"CacheInvalidationRequestSchema": {
"properties": {
"datasource_uids": {
"description": "The uid of the dataset/datasource this new chart will use. A complete datasource identification needs `datasouce_uid` ",
"items": {
"type": "string"
},
"type": "array"
},
"datasources": {
"description": "A list of the data source and database names",
"items": {
"$ref": "#/components/schemas/Datasource"
},
"type": "array"
}
},
"type": "object"
},
"CacheRestApi.get": {
"properties": {
"id": {
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"CacheRestApi.get_list": {
"properties": {
"id": {
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"CacheRestApi.post": {
"properties": {
"id": {
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"CacheRestApi.put": {
"properties": {
"id": {
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"ChartCacheScreenshotResponseSchema": {
"properties": {
"cache_key": {
"description": "The cache key",
"type": "string"
},
"chart_url": {
"description": "The url to render the chart",
"type": "string"
},
"image_url": {
"description": "The url to fetch the screenshot",
"type": "string"
}
},
"type": "object"
},
"ChartDataAdhocMetricSchema": {
"properties": {
"aggregate": {
"description": "Aggregation operator. Only required for simple expression types.",
"enum": [
"AVG",
"COUNT",
"COUNT_DISTINCT",
"MAX",
"MIN",
"SUM"
],
"type": "string"
},
"column": {
"$ref": "#/components/schemas/ChartDataColumn"
},
"expressionType": {
"description": "Simple or SQL metric",
"enum": [
"SIMPLE",
"SQL"
],
"example": "SQL",
"type": "string"
},
"hasCustomLabel": {
"description": "When false, the label will be automatically generated based on the aggregate expression. When true, a custom label has to be specified.",
"example": true,
"type": "boolean"
},
"label": {
"description": "Label for the metric. Is automatically generated unless hasCustomLabel is true, in which case label must be defined.",
"example": "Weighted observations",
"type": "string"
},
"optionName": {
"description": "Unique identifier. Can be any string value, as long as all metrics have a unique identifier. If undefined, a random name will be generated.",
"example": "metric_aec60732-fac0-4b17-b736-93f1a5c93e30",
"type": "string"
},
"sqlExpression": {
"description": "The metric as defined by a SQL aggregate expression. Only required for SQL expression type.",
"example": "SUM(weight * observations) / SUM(weight)",
"type": "string"
}
},
"required": [
"expressionType"
],
"type": "object"
},
"ChartDataAggregateOptionsSchema": {
"properties": {
"aggregates": {
"description": "The keys are the name of the aggregate column to be created, and the values specify the details of how to apply the aggregation. If an operator requires additional options, these can be passed here to be unpacked in the operator call. The following numpy operators are supported: average, argmin, argmax, cumsum, cumprod, max, mean, median, nansum, nanmin, nanmax, nanmean, nanmedian, min, percentile, prod, product, std, sum, var. Any options required by the operator can be passed to the `options` object.\n\nIn the example, a new column `first_quantile` is created based on values in the column `my_col` using the `percentile` operator with the `q=0.25` parameter.",
"example": {
"first_quantile": {
"column": "my_col",
"operator": "percentile",
"options": {
"q": 0.25
}
}
},
"type": "object"
}
},
"type": "object"
},
"ChartDataAsyncResponseSchema": {
"properties": {
"channel_id": {
"description": "Unique session async channel ID",
"type": "string"
},
"job_id": {
"description": "Unique async job ID",
"type": "string"
},
"result_url": {
"description": "Unique result URL for fetching async query data",
"type": "string"
},
"status": {
"description": "Status value for async job",
"type": "string"
},
"user_id": {
"description": "Requesting user ID",
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"ChartDataBoxplotOptionsSchema": {
"properties": {
"groupby": {
"items": {
"description": "Columns by which to group the query.",
"type": "string"
},
"nullable": true,
"type": "array"
},
"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": {},
"type": "array"
},
"percentiles": {
"description": "Upper and lower percentiles for percentile whisker type.",
"example": [
1,
99
]
},
"whisker_type": {
"description": "Whisker type. Any numpy function will work.",
"enum": [
"tukey",
"min/max",
"percentile"
],
"example": "tukey",
"type": "string"
}
},
"required": [
"whisker_type"
],
"type": "object"
},
"ChartDataColumn": {
"properties": {
"column_name": {
"description": "The name of the target column",
"example": "mycol",
"type": "string"
},
"type": {
"description": "Type of target column",
"example": "BIGINT",
"type": "string"
}
},
"type": "object"
},
"ChartDataContributionOptionsSchema": {
"properties": {
"orientation": {
"description": "Should cell values be calculated across the row or column.",
"enum": [
"row",
"column"
],
"example": "row",
"type": "string"
}
},
"required": [
"orientation"
],
"type": "object"
},
"ChartDataDatasource": {
"properties": {
"id": {
"description": "Datasource id",
"format": "int32",
"type": "integer"
},
"type": {
"description": "Datasource type",
"enum": [
"druid",
"table"
],
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"ChartDataExtras": {
"properties": {
"druid_time_origin": {
"description": "Starting point for time grain counting on legacy Druid datasources. Used to change e.g. Monday/Sunday first-day-of-week.",
"nullable": true,
"type": "string"
},
"having": {
"description": "HAVING clause to be added to aggregate queries using AND operator.",
"type": "string"
},
"having_druid": {
"description": "HAVING filters to be added to legacy Druid datasource queries.",
"items": {
"$ref": "#/components/schemas/ChartDataFilter"
},
"type": "array"
},
"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",
"PT1M",
"PT5M",
"PT10M",
"PT15M",
"PT0.5H",
"PT1H",
"P1D",
"P1W",
"P1M",
"P0.25Y",
"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"
],
"example": "P1D",
"nullable": true,
"type": "string"
},
"time_range_endpoints": {
"items": {
"description": "A list with two values, stating if start/end should be inclusive/exclusive.",
"enum": [
"unknown",
"inclusive",
"exclusive"
],
"type": "string"
},
"type": "array"
},
"where": {
"description": "WHERE clause to be added to queries using AND operator.",
"type": "string"
}
},
"type": "object"
},
"ChartDataFilter": {
"properties": {
"col": {
"description": "The column to filter.",
"example": "country",
"type": "string"
},
"op": {
"description": "The comparison operator.",
"enum": [
"==",
"!=",
">",
"<",
">=",
"<=",
"LIKE",
"IS NULL",
"IS NOT NULL",
"IN",
"NOT IN",
"REGEX"
],
"example": "IN",
"type": "string"
},
"val": {
"description": "The value or values to compare against. Can be a string, integer, decimal or list, depending on the operator.",
"example": [
"China",
"France",
"Japan"
]
}
},
"required": [
"col",
"op"
],
"type": "object"
},
"ChartDataGeodeticParseOptionsSchema": {
"properties": {
"altitude": {
"description": "Name of target column for decoded altitude. If omitted, altitude information in geodetic string is ignored.",
"type": "string"
},
"geodetic": {
"description": "Name of source column containing geodetic point strings",
"type": "string"
},
"latitude": {
"description": "Name of target column for decoded latitude",
"type": "string"
},
"longitude": {
"description": "Name of target column for decoded longitude",
"type": "string"
}
},
"required": [
"geodetic",
"latitude",
"longitude"
],
"type": "object"
},
"ChartDataGeohashDecodeOptionsSchema": {
"properties": {
"geohash": {
"description": "Name of source column containing geohash string",
"type": "string"
},
"latitude": {
"description": "Name of target column for decoded latitude",
"type": "string"
},
"longitude": {
"description": "Name of target column for decoded longitude",
"type": "string"
}
},
"required": [
"geohash",
"latitude",
"longitude"
],
"type": "object"
},
"ChartDataGeohashEncodeOptionsSchema": {
"properties": {
"geohash": {
"description": "Name of target column for encoded geohash string",
"type": "string"
},
"latitude": {
"description": "Name of source latitude column",
"type": "string"
},
"longitude": {
"description": "Name of source longitude column",
"type": "string"
}
},
"required": [
"geohash",
"latitude",
"longitude"
],
"type": "object"
},
"ChartDataPivotOptionsSchema": {
"properties": {
"aggregates": {
"description": "The keys are the name of the aggregate column to be created, and the values specify the details of how to apply the aggregation. If an operator requires additional options, these can be passed here to be unpacked in the operator call. The following numpy operators are supported: average, argmin, argmax, cumsum, cumprod, max, mean, median, nansum, nanmin, nanmax, nanmean, nanmedian, min, percentile, prod, product, std, sum, var. Any options required by the operator can be passed to the `options` object.\n\nIn the example, a new column `first_quantile` is created based on values in the column `my_col` using the `percentile` operator with the `q=0.25` parameter.",
"example": {
"first_quantile": {
"column": "my_col",
"operator": "percentile",
"options": {
"q": 0.25
}
}
},
"type": "object"
},
"column_fill_value": {
"description": "Value to replace missing pivot columns names with.",
"type": "string"
},
"columns": {
"items": {
"description": "Columns to group by on the table columns",
"type": "string"
},
"type": "array"
},
"drop_missing_columns": {
"description": "Do not include columns whose entries are all missing (default: `true`).",
"type": "boolean"
},
"marginal_distribution_name": {
"description": "Name of marginal distribution row/column. (default: `All`)",
"type": "string"
},
"marginal_distributions": {
"description": "Add totals for row/column. (default: `false`)",
"type": "boolean"
},
"metric_fill_value": {
"description": "Value to replace missing values with in aggregate calculations.",
"type": "number"
}
},
"type": "object"
},
"ChartDataPostProcessingOperation": {
"properties": {
"operation": {
"description": "Post processing operation type",
"enum": [
"aggregate",
"boxplot",
"contribution",
"cum",
"geodetic_parse",
"geohash_decode",
"geohash_encode",
"pivot",
"prophet",
"rolling",
"select",
"sort"
],
"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"
},
"ChartDataProphetOptionsSchema": {
"properties": {
"confidence_interval": {
"description": "Width of predicted confidence interval",
"example": 0.8,
"format": "float",
"maximum": 1,
"minimum": 0,
"type": "number"
},
"monthly_seasonality": {
"description": "Should monthly seasonality be applied. An integer value will specify Fourier order of seasonality, `None` will automatically detect seasonality.",
"example": false
},
"periods": {
"example": 7,
"format": "int32",
"type": "integer"
},
"time_grain": {
"description": "Time grain used to specify time period increments in prediction. Supports [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Durations) durations.",
"enum": [
"PT1S",
"PT1M",
"PT5M",
"PT10M",
"PT15M",
"PT0.5H",
"PT1H",
"P1D",
"P1W",
"P1M",
"P0.25Y",
"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"
],
"example": "P1D",
"type": "string"
},
"weekly_seasonality": {
"description": "Should weekly seasonality be applied. An integer value will specify Fourier order of seasonality, `None` will automatically detect seasonality.",
"example": false
},
"yearly_seasonality": {
"description": "Should yearly seasonality be applied. An integer value will specify Fourier order of seasonality, `None` will automatically detect seasonality.",
"example": false
}
},
"required": [
"confidence_interval",
"periods",
"time_grain"
],
"type": "object"
},
"ChartDataQueryContextSchema": {
"properties": {
"datasource": {
"$ref": "#/components/schemas/ChartDataDatasource"
},
"force": {
"description": "Should the queries be forced to load from the source. Default: `false`",
"type": "boolean"
},
"queries": {
"items": {
"$ref": "#/components/schemas/ChartDataQueryObject"
},
"type": "array"
},
"result_format": {
"description": "Format of result payload",
"enum": [
"json",
"csv"
],
"type": "string"
},
"result_type": {
"description": "Type of results to return",
"enum": [
"full",
"query",
"results",
"samples"
],
"type": "string"
}
},
"type": "object"
},
"ChartDataQueryObject": {
"properties": {
"annotation_layers": {
"description": "Annotation layers to apply to chart",
"items": {
"$ref": "#/components/schemas/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"
},
"type": "object"
},
"columns": {
"description": "Columns which to select in the query.",
"items": {
"type": "string"
},
"nullable": true,
"type": "array"
},
"druid_time_origin": {
"description": "Starting point for time grain counting on legacy Druid datasources. Used to change e.g. Monday/Sunday first-day-of-week. This field is deprecated and should be passed to `extras` as `druid_time_origin`.",
"nullable": true,
"type": "string"
},
"extras": {
"allOf": [
{
"$ref": "#/components/schemas/ChartDataExtras"
}
],
"description": "Extra parameters to add to the query."
},
"filters": {
"items": {
"$ref": "#/components/schemas/ChartDataFilter"
},
"type": "array"
},
"granularity": {
"description": "Name of temporal column used for time filtering. For legacy Druid datasources this defines the time grain.",
"type": "string"
},
"granularity_sqla": {
"description": "Name of temporal column used for time filtering for SQL datasources. This field is deprecated, use `granularity` instead.",
"type": "string"
},
"groupby": {
"items": {
"description": "Columns by which to group the query.",
"type": "string"
},
"nullable": true,
"type": "array"
},
"having": {
"description": "HAVING clause to be added to aggregate queries using AND operator. This field is deprecated and should be passed to `extras`.",
"type": "string"
},
"having_filters": {
"description": "HAVING filters to be added to legacy Druid datasource queries. This field is deprecated and should be passed to `extras` as `having_druid`.",
"items": {
"$ref": "#/components/schemas/ChartDataFilter"
},
"type": "array"
},
"is_timeseries": {
"description": "Is the `query_object` a timeseries.",
"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": {},
"type": "array"
},
"order_desc": {
"description": "Reverse order. Default: `false`",
"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": {
"items": {},
"type": "array"
},
"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": [
{
"$ref": "#/components/schemas/ChartDataPostProcessingOperation"
}
],
"nullable": true
},
"type": "array"
},
"row_limit": {
"description": "Maximum row count. Default: `config[\"ROW_LIMIT\"]`",
"format": "int32",
"minimum": 1,
"type": "integer"
},
"row_offset": {
"description": "Number of rows to skip. Default: `0`",
"format": "int32",
"minimum": 0,
"type": "integer"
},
"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",
"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.",
"type": "string"
},
"timeseries_limit": {
"description": "Maximum row count for timeseries queries. Default: `0`",
"format": "int32",
"type": "integer"
},
"timeseries_limit_metric": {
"description": "Metric used to limit timeseries queries by.",
"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": {
"description": "WHERE clause to be added to queries using AND operator.This field is deprecated and should be passed to `extras`.",
"type": "string"
}
},
"type": "object"
},
"ChartDataResponseResult": {
"properties": {
"annotation_data": {
"description": "All requested annotation data",
"items": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"nullable": true,
"type": "array"
},
"applied_filters": {
"description": "A list with applied filters",
"items": {
"type": "object"
},
"type": "array"
},
"cache_key": {
"description": "Unique cache key for query object",
"nullable": true,
"type": "string"
},
"cache_timeout": {
"description": "Cache timeout in following order: custom timeout, datasource timeout, default config timeout.",
"format": "int32",
"nullable": true,
"type": "integer"
},
"cached_dttm": {
"description": "Cache timestamp",
"nullable": true,
"type": "string"
},
"data": {
"description": "A list with results",
"items": {
"type": "object"
},
"type": "array"
},
"error": {
"description": "Error",
"nullable": true,
"type": "string"
},
"is_cached": {
"description": "Is the result cached",
"type": "boolean"
},
"query": {
"description": "The executed query statement",
"type": "string"
},
"rejected_filters": {
"description": "A list with rejected filters",
"items": {
"type": "object"
},
"type": "array"
},
"rowcount": {
"description": "Amount of rows in result set",
"format": "int32",
"type": "integer"
},
"stacktrace": {
"nullable": true,
"type": "string"
},
"status": {
"description": "Status of the query",
"enum": [
"stopped",
"failed",
"pending",
"running",
"scheduled",
"success",
"timed_out"
],
"type": "string"
}
},
"required": [
"cache_key",
"cache_timeout",
"cached_dttm",
"is_cached",
"query"
],
"type": "object"
},
"ChartDataResponseSchema": {
"properties": {
"result": {
"description": "A list of results for each corresponding query in the request.",
"items": {
"$ref": "#/components/schemas/ChartDataResponseResult"
},
"type": "array"
}
},
"type": "object"
},
"ChartDataRollingOptionsSchema": {
"properties": {
"center": {
"description": "Should the label be at the center of the window. Default: `false`",
"example": false,
"type": "boolean"
},
"min_periods": {
"description": "The minimum amount of periods required for a row to be included in the result set.",
"example": 7,
"format": "int32",
"type": "integer"
},
"rolling_type": {
"description": "Type of rolling window. Any numpy function will work.",
"enum": [
"average",
"argmin",
"argmax",
"cumsum",
"cumprod",
"max",
"mean",
"median",
"nansum",
"nanmin",
"nanmax",
"nanmean",
"nanmedian",
"nanpercentile",
"min",
"percentile",
"prod",
"product",
"std",
"sum",
"var"
],
"example": "percentile",
"type": "string"
},
"rolling_type_options": {
"example": {},
"type": "object"
},
"win_type": {
"description": "Type of window function. See [SciPy window functions](https://docs.scipy.org/doc/scipy/reference/signal.windows.html#module-scipy.signal.windows) for more details. Some window functions require passing additional parameters to `rolling_type_options`. For instance, to use `gaussian`, the parameter `std` needs to be provided.",
"enum": [
"boxcar",
"triang",
"blackman",
"hamming",
"bartlett",
"parzen",
"bohman",
"blackmanharris",
"nuttall",
"barthann",
"kaiser",
"gaussian",
"general_gaussian",
"slepian",
"exponential"
],
"type": "string"
},
"window": {
"description": "Size of the rolling window in days.",
"example": 7,
"format": "int32",
"type": "integer"
}
},
"required": [
"rolling_type",
"window"
],
"type": "object"
},
"ChartDataSelectOptionsSchema": {
"properties": {
"columns": {
"description": "Columns which to select from the input data, in the desired order. If columns are renamed, the original column name should be referenced here.",
"example": [
"country",
"gender",
"age"
],
"items": {
"type": "string"
},
"type": "array"
},
"exclude": {
"description": "Columns to exclude from selection.",
"example": [
"my_temp_column"
],
"items": {
"type": "string"
},
"type": "array"
},
"rename": {
"description": "columns which to rename, mapping source column to target column. For instance, `{'y': 'y2'}` will rename the column `y` to `y2`.",
"example": [
{
"age": "average_age"
}
],
"items": {
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"ChartDataSortOptionsSchema": {
"properties": {
"aggregates": {
"description": "The keys are the name of the aggregate column to be created, and the values specify the details of how to apply the aggregation. If an operator requires additional options, these can be passed here to be unpacked in the operator call. The following numpy operators are supported: average, argmin, argmax, cumsum, cumprod, max, mean, median, nansum, nanmin, nanmax, nanmean, nanmedian, min, percentile, prod, product, std, sum, var. Any options required by the operator can be passed to the `options` object.\n\nIn the example, a new column `first_quantile` is created based on values in the column `my_col` using the `percentile` operator with the `q=0.25` parameter.",
"example": {
"first_quantile": {
"column": "my_col",
"operator": "percentile",
"options": {
"q": 0.25
}
}
},
"type": "object"
},
"columns": {
"description": "columns by by which to sort. The key specifies the column name, value specifies if sorting in ascending order.",
"example": {
"country": true,
"gender": false
},
"type": "object"
}
},
"required": [
"columns"
],
"type": "object"
},
"ChartFavStarResponseResult": {
"properties": {
"id": {
"description": "The Chart id",
"format": "int32",
"type": "integer"
},
"value": {
"description": "The FaveStar value",
"type": "boolean"
}
},
"type": "object"
},
"ChartGetDatasourceObjectDataResponse": {
"properties": {
"datasource_id": {
"description": "The datasource identifier",
"format": "int32",
"type": "integer"
},
"datasource_type": {
"description": "The datasource type",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"ChartGetDatasourceObjectResponse": {
"properties": {
"label": {
"description": "The name of the datasource",
"type": "string"
},
"value": {
"$ref": "#/components/schemas/ChartGetDatasourceObjectDataResponse"
}
},
"type": "object"
},
"ChartGetDatasourceResponseSchema": {
"properties": {
"count": {
"description": "The total number of datasources",
"format": "int32",
"type": "integer"
},
"result": {
"$ref": "#/components/schemas/ChartGetDatasourceObjectResponse"
}
},
"type": "object"
},
"ChartRestApi.get": {
"properties": {
"cache_timeout": {
"format": "int32",
"nullable": true,
"type": "integer"
},
"dashboards": {
"$ref": "#/components/schemas/Meta9"
},
"description": {
"nullable": true,
"type": "string"
},
"owners": {
"$ref": "#/components/schemas/Meta10"
},
"params": {
"nullable": true,
"type": "string"
},
"slice_name": {
"maxLength": 250,
"nullable": true,
"type": "string"
},
"viz_type": {
"maxLength": 250,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"ChartRestApi.get_list": {
"properties": {
"cache_timeout": {
"format": "int32",
"nullable": true,
"type": "integer"
},
"changed_by": {
"$ref": "#/components/schemas/Meta5"
},
"changed_by_name": {
"readOnly": true
},
"changed_by_url": {
"readOnly": true
},
"changed_on_delta_humanized": {
"readOnly": true
},
"changed_on_utc": {
"readOnly": true
},
"created_by": {
"$ref": "#/components/schemas/Meta6"
},
"datasource_id": {
"format": "int32",
"nullable": true,
"type": "integer"
},
"datasource_name_text": {
"readOnly": true
},
"datasource_type": {
"maxLength": 200,
"nullable": true,
"type": "string"
},
"datasource_url": {
"readOnly": true
},
"description": {
"nullable": true,
"type": "string"
},
"description_markeddown": {
"readOnly": true
},
"edit_url": {
"readOnly": true
},
"id": {
"format": "int32",
"type": "integer"
},
"owners": {
"$ref": "#/components/schemas/Meta7"
},
"params": {
"nullable": true,
"type": "string"
},
"slice_name": {
"maxLength": 250,
"nullable": true,
"type": "string"
},
"table": {
"$ref": "#/components/schemas/Meta8"
},
"thumbnail_url": {
"readOnly": true
},
"url": {
"readOnly": true
},
"viz_type": {
"maxLength": 250,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"ChartRestApi.post": {
"properties": {
"cache_timeout": {
"description": "Duration (in seconds) of the caching timeout for this chart. Note this defaults to the datasource/table timeout if undefined.",
"format": "int32",
"nullable": true,
"type": "integer"
},
"dashboards": {
"items": {
"description": "A list of dashboards to include this new chart to.",
"format": "int32",
"type": "integer"
},
"type": "array"
},
"datasource_id": {
"description": "The id of the dataset/datasource this new chart will use. A complete datasource identification needs `datasouce_id` and `datasource_type`.",
"format": "int32",
"type": "integer"
},
"datasource_name": {
"description": "The datasource name.",
"nullable": true,
"type": "string"
},
"datasource_type": {
"description": "The type of dataset/datasource identified on `datasource_id`.",
"enum": [
"druid",
"table",
"view"
],
"type": "string"
},
"description": {
"description": "A description of the chart propose.",
"nullable": true,
"type": "string"
},
"owners": {
"items": {
"description": "Owner are users ids allowed to delete or change this chart. If left empty you will be one of the owners of the chart.",
"format": "int32",
"type": "integer"
},
"type": "array"
},
"params": {
"description": "Parameters are generated dynamically when clicking the save or overwrite button in the explore view. This JSON object for power users who may want to alter specific parameters.",
"nullable": true,
"type": "string"
},
"slice_name": {
"description": "The name of the chart.",
"maxLength": 250,
"minLength": 1,
"type": "string"
},
"viz_type": {
"description": "The type of chart visualization used.",
"example": [
"bar",
"line_multi",
"area",
"table"
],
"maxLength": 250,
"minLength": 0,
"type": "string"
}
},
"required": [
"datasource_id",
"datasource_type",
"slice_name"
],
"type": "object"
},
"ChartRestApi.put": {
"properties": {
"cache_timeout": {
"description": "Duration (in seconds) of the caching timeout for this chart. Note this defaults to the datasource/table timeout if undefined.",
"format": "int32",
"nullable": true,
"type": "integer"
},
"dashboards": {
"items": {
"description": "A list of dashboards to include this new chart to.",
"format": "int32",
"type": "integer"
},
"type": "array"
},
"datasource_id": {
"description": "The id of the dataset/datasource this new chart will use. A complete datasource identification needs `datasouce_id` and `datasource_type`.",
"format": "int32",
"nullable": true,
"type": "integer"
},
"datasource_type": {
"description": "The type of dataset/datasource identified on `datasource_id`.",
"enum": [
"druid",
"table",
"view"
],
"nullable": true,
"type": "string"
},
"description": {
"description": "A description of the chart propose.",
"nullable": true,
"type": "string"
},
"owners": {
"items": {
"description": "Owner are users ids allowed to delete or change this chart. If left empty you will be one of the owners of the chart.",
"format": "int32",
"type": "integer"
},
"type": "array"
},
"params": {
"description": "Parameters are generated dynamically when clicking the save or overwrite button in the explore view. This JSON object for power users who may want to alter specific parameters.",
"nullable": true,
"type": "string"
},
"slice_name": {
"description": "The name of the chart.",
"maxLength": 250,
"minLength": 0,
"nullable": true,
"type": "string"
},
"viz_type": {
"description": "The type of chart visualization used.",
"example": [
"bar",
"line_multi",
"area",
"table"
],
"maxLength": 250,
"minLength": 0,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"CssTemplateRestApi.get": {
"properties": {
"created_by": {
"$ref": "#/components/schemas/Meta13"
},
"css": {
"nullable": true,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"template_name": {
"maxLength": 250,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"CssTemplateRestApi.get_list": {
"properties": {
"changed_by": {
"$ref": "#/components/schemas/Meta12"
},
"changed_on_delta_humanized": {
"readOnly": true
},
"created_by": {
"$ref": "#/components/schemas/Meta11"
},
"created_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"css": {
"nullable": true,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"template_name": {
"maxLength": 250,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"CssTemplateRestApi.post": {
"properties": {
"css": {
"nullable": true,
"type": "string"
},
"template_name": {
"maxLength": 250,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"CssTemplateRestApi.put": {
"properties": {
"css": {
"nullable": true,
"type": "string"
},
"template_name": {
"maxLength": 250,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"DashboardRestApi.get": {
"properties": {
"changed_by": {
"$ref": "#/components/schemas/Meta17"
},
"changed_by_name": {
"readOnly": true
},
"changed_by_url": {
"readOnly": true
},
"changed_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"charts": {
"readOnly": true
},
"css": {
"nullable": true,
"type": "string"
},
"dashboard_title": {
"maxLength": 500,
"nullable": true,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"json_metadata": {
"nullable": true,
"type": "string"
},
"owners": {
"$ref": "#/components/schemas/Meta18"
},
"position_json": {
"nullable": true,
"type": "string"
},
"published": {
"nullable": true,
"type": "boolean"
},
"slug": {
"maxLength": 255,
"nullable": true,
"type": "string"
},
"table_names": {
"readOnly": true
},
"thumbnail_url": {
"readOnly": true
},
"url": {
"readOnly": true
}
},
"type": "object"
},
"DashboardRestApi.get_list": {
"properties": {
"changed_by": {
"$ref": "#/components/schemas/Meta15"
},
"changed_by_name": {
"readOnly": true
},
"changed_by_url": {
"readOnly": true
},
"changed_on_delta_humanized": {
"readOnly": true
},
"changed_on_utc": {
"readOnly": true
},
"created_by": {
"$ref": "#/components/schemas/Meta14"
},
"css": {
"nullable": true,
"type": "string"
},
"dashboard_title": {
"maxLength": 500,
"nullable": true,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"json_metadata": {
"nullable": true,
"type": "string"
},
"owners": {
"$ref": "#/components/schemas/Meta16"
},
"position_json": {
"nullable": true,
"type": "string"
},
"published": {
"nullable": true,
"type": "boolean"
},
"slug": {
"maxLength": 255,
"nullable": true,
"type": "string"
},
"thumbnail_url": {
"readOnly": true
},
"url": {
"readOnly": true
}
},
"type": "object"
},
"DashboardRestApi.post": {
"properties": {
"css": {
"type": "string"
},
"dashboard_title": {
"description": "A title for the dashboard.",
"maxLength": 500,
"minLength": 0,
"nullable": true,
"type": "string"
},
"json_metadata": {
"description": "This JSON object is generated dynamically when clicking the save or overwrite button in the dashboard view. It is exposed here for reference and for power users who may want to alter specific parameters.",
"type": "string"
},
"owners": {
"items": {
"description": "Owner are users ids allowed to delete or change this dashboard. If left empty you will be one of the owners of the dashboard.",
"format": "int32",
"type": "integer"
},
"type": "array"
},
"position_json": {
"description": "This json object describes the positioning of the widgets in the dashboard. It is dynamically generated when adjusting the widgets size and positions by using drag & drop in the dashboard view",
"type": "string"
},
"published": {
"description": "Determines whether or not this dashboard is visible in the list of all dashboards.",
"type": "boolean"
},
"slug": {
"description": "Unique identifying part for the web address of the dashboard.",
"maxLength": 255,
"minLength": 1,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"DashboardRestApi.put": {
"properties": {
"css": {
"description": "Override CSS for the dashboard.",
"nullable": true,
"type": "string"
},
"dashboard_title": {
"description": "A title for the dashboard.",
"maxLength": 500,
"minLength": 0,
"nullable": true,
"type": "string"
},
"json_metadata": {
"description": "This JSON object is generated dynamically when clicking the save or overwrite button in the dashboard view. It is exposed here for reference and for power users who may want to alter specific parameters.",
"nullable": true,
"type": "string"
},
"owners": {
"items": {
"description": "Owner are users ids allowed to delete or change this dashboard. If left empty you will be one of the owners of the dashboard.",
"format": "int32",
"nullable": true,
"type": "integer"
},
"type": "array"
},
"position_json": {
"description": "This json object describes the positioning of the widgets in the dashboard. It is dynamically generated when adjusting the widgets size and positions by using drag & drop in the dashboard view",
"nullable": true,
"type": "string"
},
"published": {
"description": "Determines whether or not this dashboard is visible in the list of all dashboards.",
"nullable": true,
"type": "boolean"
},
"slug": {
"description": "Unique identifying part for the web address of the dashboard.",
"maxLength": 255,
"minLength": 0,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"DatabaseRelatedChart": {
"properties": {
"id": {
"format": "int32",
"type": "integer"
},
"slice_name": {
"type": "string"
},
"viz_type": {
"type": "string"
}
},
"type": "object"
},
"DatabaseRelatedCharts": {
"properties": {
"count": {
"description": "Chart count",
"format": "int32",
"type": "integer"
},
"result": {
"description": "A list of dashboards",
"items": {
"$ref": "#/components/schemas/DatabaseRelatedChart"
},
"type": "array"
}
},
"type": "object"
},
"DatabaseRelatedDashboard": {
"properties": {
"id": {
"format": "int32",
"type": "integer"
},
"json_metadata": {
"type": "object"
},
"slug": {
"type": "string"
},
"title": {
"type": "string"
}
},
"type": "object"
},
"DatabaseRelatedDashboards": {
"properties": {
"count": {
"description": "Dashboard count",
"format": "int32",
"type": "integer"
},
"result": {
"description": "A list of dashboards",
"items": {
"$ref": "#/components/schemas/DatabaseRelatedDashboard"
},
"type": "array"
}
},
"type": "object"
},
"DatabaseRelatedObjectsResponse": {
"properties": {
"charts": {
"$ref": "#/components/schemas/DatabaseRelatedCharts"
},
"dashboards": {
"$ref": "#/components/schemas/DatabaseRelatedDashboards"
}
},
"type": "object"
},
"DatabaseRestApi.get": {
"properties": {
"allow_csv_upload": {
"nullable": true,
"type": "boolean"
},
"allow_ctas": {
"nullable": true,
"type": "boolean"
},
"allow_cvas": {
"nullable": true,
"type": "boolean"
},
"allow_dml": {
"nullable": true,
"type": "boolean"
},
"allow_multi_schema_metadata_fetch": {
"nullable": true,
"type": "boolean"
},
"allow_run_async": {
"nullable": true,
"type": "boolean"
},
"cache_timeout": {
"format": "int32",
"nullable": true,
"type": "integer"
},
"database_name": {
"maxLength": 250,
"type": "string"
},
"encrypted_extra": {
"nullable": true,
"type": "string"
},
"expose_in_sqllab": {
"nullable": true,
"type": "boolean"
},
"extra": {
"nullable": true,
"type": "string"
},
"force_ctas_schema": {
"maxLength": 250,
"nullable": true,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"impersonate_user": {
"nullable": true,
"type": "boolean"
},
"server_cert": {
"nullable": true,
"type": "string"
},
"sqlalchemy_uri": {
"maxLength": 1024,
"type": "string"
}
},
"required": [
"database_name",
"sqlalchemy_uri"
],
"type": "object"
},
"DatabaseRestApi.get_list": {
"properties": {
"allow_csv_upload": {
"nullable": true,
"type": "boolean"
},
"allow_ctas": {
"nullable": true,
"type": "boolean"
},
"allow_cvas": {
"nullable": true,
"type": "boolean"
},
"allow_dml": {
"nullable": true,
"type": "boolean"
},
"allow_multi_schema_metadata_fetch": {
"nullable": true,
"type": "boolean"
},
"allow_run_async": {
"nullable": true,
"type": "boolean"
},
"allows_cost_estimate": {
"readOnly": true
},
"allows_subquery": {
"readOnly": true
},
"allows_virtual_table_explore": {
"readOnly": true
},
"backend": {
"readOnly": true
},
"changed_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"changed_on_delta_humanized": {
"readOnly": true
},
"created_by": {
"$ref": "#/components/schemas/Meta19"
},
"database_name": {
"maxLength": 250,
"type": "string"
},
"explore_database_id": {
"readOnly": true
},
"expose_in_sqllab": {
"nullable": true,
"type": "boolean"
},
"force_ctas_schema": {
"maxLength": 250,
"nullable": true,
"type": "string"
},
"function_names": {
"readOnly": true
},
"id": {
"format": "int32",
"type": "integer"
}
},
"required": [
"database_name"
],
"type": "object"
},
"DatabaseRestApi.post": {
"properties": {
"allow_csv_upload": {
"description": "Allow to upload CSV file data into this databaseIf selected, please set the schemas allowed for csv upload in Extra.",
"type": "boolean"
},
"allow_ctas": {
"description": "Allow CREATE TABLE AS option in SQL Lab",
"type": "boolean"
},
"allow_cvas": {
"description": "Allow CREATE VIEW AS option in SQL Lab",
"type": "boolean"
},
"allow_dml": {
"description": "Allow users to run non-SELECT statements (UPDATE, DELETE, CREATE, ...) in SQL Lab",
"type": "boolean"
},
"allow_multi_schema_metadata_fetch": {
"description": "Allow SQL Lab to fetch a list of all tables and all views across all database schemas. For large data warehouse with thousands of tables, this can be expensive and put strain on the system.",
"type": "boolean"
},
"allow_run_async": {
"description": "Operate the database in asynchronous mode, meaning that the queries are executed on remote workers as opposed to on the web server itself. This assumes that you have a Celery worker setup as well as a results backend. Refer to the installation docs for more information.",
"type": "boolean"
},
"cache_timeout": {
"description": "Duration (in seconds) of the caching timeout for charts of this database. A timeout of 0 indicates that the cache never expires. Note this defaults to the global timeout if undefined.",
"format": "int32",
"nullable": true,
"type": "integer"
},
"database_name": {
"description": "A database name to identify this connection.",
"maxLength": 250,
"minLength": 1,
"type": "string"
},
"encrypted_extra": {
"description": "<p>JSON string containing additional connection configuration.<br>This is used to provide connection information for systems like Hive, Presto, and BigQuery, which do not conform to the username:password syntax normally used by SQLAlchemy.</p>",
"nullable": true,
"type": "string"
},
"expose_in_sqllab": {
"description": "Expose this database to SQLLab",
"type": "boolean"
},
"extra": {
"description": "<p>JSON string containing extra configuration elements.<br>1. The <code>engine_params</code> object gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\">sqlalchemy.MetaData</a> call.<br>2. The <code>metadata_cache_timeout</code> is a cache timeout setting in seconds for metadata fetch of this database. Specify it as <strong>\"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}</strong>. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.<br>3. The <code>schemas_allowed_for_csv_upload</code> is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as <strong>\"schemas_allowed_for_csv_upload\": [\"public\", \"csv_upload\"]</strong>. If database flavor does not support schema or any schema is allowed to be accessed, just leave the list empty<br>4. the <code>version</code> field is a string specifying the this db's version. This should be used with Presto DBs so that the syntax is correct<br>5. The <code>allows_virtual_table_explore</code> field is a boolean specifying whether or not the Explore button in SQL Lab results is shown.</p>",
"type": "string"
},
"force_ctas_schema": {
"description": "When allowing CREATE TABLE AS option in SQL Lab, this option forces the table to be created in this schema",
"maxLength": 250,
"minLength": 0,
"nullable": true,
"type": "string"
},
"impersonate_user": {
"description": "If Presto, all the queries in SQL Lab are going to be executed as the currently logged on user who must have permission to run them.<br/>If Hive and hive.server2.enable.doAs is enabled, will run the queries as service account, but impersonate the currently logged on user via hive.server2.proxy.user property.",
"type": "boolean"
},
"server_cert": {
"description": "<p>Optional CA_BUNDLE contents to validate HTTPS requests. Only available on certain database engines.</p>",
"nullable": true,
"type": "string"
},
"sqlalchemy_uri": {
"description": "<p>Refer to the <a href=\"https://docs.sqlalchemy.org/en/rel_1_2/core/engines.html#database-urls\">SqlAlchemy docs</a> for more information on how to structure your URI.</p>",
"maxLength": 1024,
"minLength": 1,
"type": "string"
}
},
"required": [
"database_name",
"sqlalchemy_uri"
],
"type": "object"
},
"DatabaseRestApi.put": {
"properties": {
"allow_csv_upload": {
"description": "Allow to upload CSV file data into this databaseIf selected, please set the schemas allowed for csv upload in Extra.",
"type": "boolean"
},
"allow_ctas": {
"description": "Allow CREATE TABLE AS option in SQL Lab",
"type": "boolean"
},
"allow_cvas": {
"description": "Allow CREATE VIEW AS option in SQL Lab",
"type": "boolean"
},
"allow_dml": {
"description": "Allow users to run non-SELECT statements (UPDATE, DELETE, CREATE, ...) in SQL Lab",
"type": "boolean"
},
"allow_multi_schema_metadata_fetch": {
"description": "Allow SQL Lab to fetch a list of all tables and all views across all database schemas. For large data warehouse with thousands of tables, this can be expensive and put strain on the system.",
"type": "boolean"
},
"allow_run_async": {
"description": "Operate the database in asynchronous mode, meaning that the queries are executed on remote workers as opposed to on the web server itself. This assumes that you have a Celery worker setup as well as a results backend. Refer to the installation docs for more information.",
"type": "boolean"
},
"cache_timeout": {
"description": "Duration (in seconds) of the caching timeout for charts of this database. A timeout of 0 indicates that the cache never expires. Note this defaults to the global timeout if undefined.",
"format": "int32",
"nullable": true,
"type": "integer"
},
"database_name": {
"description": "A database name to identify this connection.",
"maxLength": 250,
"minLength": 1,
"nullable": true,
"type": "string"
},
"encrypted_extra": {
"description": "<p>JSON string containing additional connection configuration.<br>This is used to provide connection information for systems like Hive, Presto, and BigQuery, which do not conform to the username:password syntax normally used by SQLAlchemy.</p>",
"nullable": true,
"type": "string"
},
"expose_in_sqllab": {
"description": "Expose this database to SQLLab",
"type": "boolean"
},
"extra": {
"description": "<p>JSON string containing extra configuration elements.<br>1. The <code>engine_params</code> object gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\">sqlalchemy.MetaData</a> call.<br>2. The <code>metadata_cache_timeout</code> is a cache timeout setting in seconds for metadata fetch of this database. Specify it as <strong>\"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}</strong>. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.<br>3. The <code>schemas_allowed_for_csv_upload</code> is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as <strong>\"schemas_allowed_for_csv_upload\": [\"public\", \"csv_upload\"]</strong>. If database flavor does not support schema or any schema is allowed to be accessed, just leave the list empty<br>4. the <code>version</code> field is a string specifying the this db's version. This should be used with Presto DBs so that the syntax is correct<br>5. The <code>allows_virtual_table_explore</code> field is a boolean specifying whether or not the Explore button in SQL Lab results is shown.</p>",
"type": "string"
},
"force_ctas_schema": {
"description": "When allowing CREATE TABLE AS option in SQL Lab, this option forces the table to be created in this schema",
"maxLength": 250,
"minLength": 0,
"nullable": true,
"type": "string"
},
"impersonate_user": {
"description": "If Presto, all the queries in SQL Lab are going to be executed as the currently logged on user who must have permission to run them.<br/>If Hive and hive.server2.enable.doAs is enabled, will run the queries as service account, but impersonate the currently logged on user via hive.server2.proxy.user property.",
"type": "boolean"
},
"server_cert": {
"description": "<p>Optional CA_BUNDLE contents to validate HTTPS requests. Only available on certain database engines.</p>",
"nullable": true,
"type": "string"
},
"sqlalchemy_uri": {
"description": "<p>Refer to the <a href=\"https://docs.sqlalchemy.org/en/rel_1_2/core/engines.html#database-urls\">SqlAlchemy docs</a> for more information on how to structure your URI.</p>",
"maxLength": 1024,
"minLength": 0,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"DatabaseTestConnectionSchema": {
"properties": {
"database_name": {
"description": "A database name to identify this connection.",
"maxLength": 250,
"minLength": 1,
"nullable": true,
"type": "string"
},
"encrypted_extra": {
"description": "<p>JSON string containing additional connection configuration.<br>This is used to provide connection information for systems like Hive, Presto, and BigQuery, which do not conform to the username:password syntax normally used by SQLAlchemy.</p>",
"nullable": true,
"type": "string"
},
"extra": {
"description": "<p>JSON string containing extra configuration elements.<br>1. The <code>engine_params</code> object gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\">sqlalchemy.MetaData</a> call.<br>2. The <code>metadata_cache_timeout</code> is a cache timeout setting in seconds for metadata fetch of this database. Specify it as <strong>\"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}</strong>. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.<br>3. The <code>schemas_allowed_for_csv_upload</code> is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as <strong>\"schemas_allowed_for_csv_upload\": [\"public\", \"csv_upload\"]</strong>. If database flavor does not support schema or any schema is allowed to be accessed, just leave the list empty<br>4. the <code>version</code> field is a string specifying the this db's version. This should be used with Presto DBs so that the syntax is correct<br>5. The <code>allows_virtual_table_explore</code> field is a boolean specifying whether or not the Explore button in SQL Lab results is shown.</p>",
"type": "string"
},
"impersonate_user": {
"description": "If Presto, all the queries in SQL Lab are going to be executed as the currently logged on user who must have permission to run them.<br/>If Hive and hive.server2.enable.doAs is enabled, will run the queries as service account, but impersonate the currently logged on user via hive.server2.proxy.user property.",
"type": "boolean"
},
"server_cert": {
"description": "<p>Optional CA_BUNDLE contents to validate HTTPS requests. Only available on certain database engines.</p>",
"nullable": true,
"type": "string"
},
"sqlalchemy_uri": {
"description": "<p>Refer to the <a href=\"https://docs.sqlalchemy.org/en/rel_1_2/core/engines.html#database-urls\">SqlAlchemy docs</a> for more information on how to structure your URI.</p>",
"maxLength": 1024,
"minLength": 1,
"type": "string"
}
},
"required": [
"sqlalchemy_uri"
],
"type": "object"
},
"DatasetColumnsPut": {
"properties": {
"column_name": {
"maxLength": 255,
"minLength": 1,
"type": "string"
},
"description": {
"nullable": true,
"type": "string"
},
"expression": {
"nullable": true,
"type": "string"
},
"filterable": {
"type": "boolean"
},
"groupby": {
"type": "boolean"
},
"id": {
"format": "int32",
"type": "integer"
},
"is_active": {
"type": "boolean"
},
"is_dttm": {
"type": "boolean"
},
"python_date_format": {
"maxLength": 255,
"minLength": 1,
"nullable": true,
"type": "string"
},
"type": {
"maxLength": 32,
"minLength": 1,
"type": "string"
},
"uuid": {
"nullable": true,
"type": "string"
},
"verbose_name": {
"nullable": true,
"type": "string"
}
},
"required": [
"column_name"
],
"type": "object"
},
"DatasetMetricsPut": {
"properties": {
"d3format": {
"maxLength": 128,
"minLength": 1,
"nullable": true,
"type": "string"
},
"description": {
"nullable": true,
"type": "string"
},
"expression": {
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"metric_name": {
"maxLength": 255,
"minLength": 1,
"type": "string"
},
"metric_type": {
"maxLength": 32,
"minLength": 1,
"nullable": true,
"type": "string"
},
"warning_text": {
"nullable": true,
"type": "string"
}
},
"required": [
"expression",
"metric_name"
],
"type": "object"
},
"DatasetRelatedChart": {
"properties": {
"id": {
"format": "int32",
"type": "integer"
},
"slice_name": {
"type": "string"
},
"viz_type": {
"type": "string"
}
},
"type": "object"
},
"DatasetRelatedCharts": {
"properties": {
"count": {
"description": "Chart count",
"format": "int32",
"type": "integer"
},
"result": {
"description": "A list of dashboards",
"items": {
"$ref": "#/components/schemas/DatasetRelatedChart"
},
"type": "array"
}
},
"type": "object"
},
"DatasetRelatedDashboard": {
"properties": {
"id": {
"format": "int32",
"type": "integer"
},
"json_metadata": {
"type": "object"
},
"slug": {
"type": "string"
},
"title": {
"type": "string"
}
},
"type": "object"
},
"DatasetRelatedDashboards": {
"properties": {
"count": {
"description": "Dashboard count",
"format": "int32",
"type": "integer"
},
"result": {
"description": "A list of dashboards",
"items": {
"$ref": "#/components/schemas/DatasetRelatedDashboard"
},
"type": "array"
}
},
"type": "object"
},
"DatasetRelatedObjectsResponse": {
"properties": {
"charts": {
"$ref": "#/components/schemas/DatasetRelatedCharts"
},
"dashboards": {
"$ref": "#/components/schemas/DatasetRelatedDashboards"
}
},
"type": "object"
},
"DatasetRestApi.get": {
"properties": {
"cache_timeout": {
"format": "int32",
"nullable": true,
"type": "integer"
},
"columns": {
"$ref": "#/components/schemas/Meta23"
},
"database": {
"$ref": "#/components/schemas/Meta26"
},
"datasource_type": {
"readOnly": true
},
"default_endpoint": {
"nullable": true,
"type": "string"
},
"description": {
"nullable": true,
"type": "string"
},
"extra": {
"nullable": true,
"type": "string"
},
"fetch_values_predicate": {
"maxLength": 1000,
"nullable": true,
"type": "string"
},
"filter_select_enabled": {
"nullable": true,
"type": "boolean"
},
"id": {
"format": "int32",
"type": "integer"
},
"is_sqllab_view": {
"nullable": true,
"type": "boolean"
},
"main_dttm_col": {
"maxLength": 250,
"nullable": true,
"type": "string"
},
"metrics": {
"$ref": "#/components/schemas/Meta25"
},
"offset": {
"format": "int32",
"nullable": true,
"type": "integer"
},
"owners": {
"$ref": "#/components/schemas/Meta24"
},
"schema": {
"maxLength": 255,
"nullable": true,
"type": "string"
},
"sql": {
"nullable": true,
"type": "string"
},
"table_name": {
"maxLength": 250,
"type": "string"
},
"template_params": {
"nullable": true,
"type": "string"
},
"url": {
"readOnly": true
}
},
"required": [
"columns",
"database",
"metrics",
"table_name"
],
"type": "object"
},
"DatasetRestApi.get_list": {
"properties": {
"changed_by": {
"$ref": "#/components/schemas/Meta21"
},
"changed_by_name": {
"readOnly": true
},
"changed_by_url": {
"readOnly": true
},
"changed_on_delta_humanized": {
"readOnly": true
},
"changed_on_utc": {
"readOnly": true
},
"database": {
"$ref": "#/components/schemas/Meta22"
},
"default_endpoint": {
"nullable": true,
"type": "string"
},
"explore_url": {
"readOnly": true
},
"extra": {
"nullable": true,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"kind": {
"readOnly": true
},
"owners": {
"$ref": "#/components/schemas/Meta20"
},
"schema": {
"maxLength": 255,
"nullable": true,
"type": "string"
},
"sql": {
"nullable": true,
"type": "string"
},
"table_name": {
"maxLength": 250,
"type": "string"
}
},
"required": [
"database",
"table_name"
],
"type": "object"
},
"DatasetRestApi.post": {
"properties": {
"database": {
"format": "int32",
"type": "integer"
},
"owners": {
"items": {
"format": "int32",
"type": "integer"
},
"type": "array"
},
"schema": {
"maxLength": 250,
"minLength": 0,
"type": "string"
},
"table_name": {
"maxLength": 250,
"minLength": 1,
"type": "string"
}
},
"required": [
"database",
"table_name"
],
"type": "object"
},
"DatasetRestApi.put": {
"properties": {
"cache_timeout": {
"format": "int32",
"nullable": true,
"type": "integer"
},
"columns": {
"items": {
"$ref": "#/components/schemas/DatasetColumnsPut"
},
"type": "array"
},
"database_id": {
"format": "int32",
"type": "integer"
},
"default_endpoint": {
"nullable": true,
"type": "string"
},
"description": {
"nullable": true,
"type": "string"
},
"extra": {
"nullable": true,
"type": "string"
},
"fetch_values_predicate": {
"maxLength": 1000,
"minLength": 0,
"nullable": true,
"type": "string"
},
"filter_select_enabled": {
"nullable": true,
"type": "boolean"
},
"is_sqllab_view": {
"nullable": true,
"type": "boolean"
},
"main_dttm_col": {
"nullable": true,
"type": "string"
},
"metrics": {
"items": {
"$ref": "#/components/schemas/DatasetMetricsPut"
},
"type": "array"
},
"offset": {
"format": "int32",
"nullable": true,
"type": "integer"
},
"owners": {
"items": {
"format": "int32",
"type": "integer"
},
"type": "array"
},
"schema": {
"maxLength": 255,
"minLength": 0,
"nullable": true,
"type": "string"
},
"sql": {
"nullable": true,
"type": "string"
},
"table_name": {
"maxLength": 250,
"minLength": 1,
"nullable": true,
"type": "string"
},
"template_params": {
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"Datasource": {
"properties": {
"database_name": {
"description": "Datasource name",
"type": "string"
},
"datasource_name": {
"description": "The datasource name.",
"type": "string"
},
"datasource_type": {
"description": "The type of dataset/datasource identified on `datasource_id`.",
"enum": [
"druid",
"table",
"view"
],
"type": "string"
},
"schema": {
"description": "Datasource schema",
"type": "string"
}
},
"required": [
"datasource_type"
],
"type": "object"
},
"DistincResponseSchema": {
"properties": {
"count": {
"description": "The total number of distinct values",
"format": "int32",
"type": "integer"
},
"result": {
"items": {
"$ref": "#/components/schemas/DistinctResultResponse"
},
"type": "array"
}
},
"type": "object"
},
"DistinctResultResponse": {
"properties": {
"text": {
"description": "The distinct item",
"type": "string"
}
},
"type": "object"
},
"GetFavStarIdsSchema": {
"properties": {
"result": {
"description": "A list of results for each corresponding chart in the request",
"items": {
"$ref": "#/components/schemas/ChartFavStarResponseResult"
},
"type": "array"
}
},
"type": "object"
},
"LogRestApi.get": {
"properties": {
"action": {
"maxLength": 512,
"nullable": true,
"type": "string"
},
"dashboard_id": {
"format": "int32",
"nullable": true,
"type": "integer"
},
"dttm": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"duration_ms": {
"format": "int32",
"nullable": true,
"type": "integer"
},
"json": {
"nullable": true,
"type": "string"
},
"referrer": {
"maxLength": 1024,
"nullable": true,
"type": "string"
},
"slice_id": {
"format": "int32",
"nullable": true,
"type": "integer"
},
"user": {
"$ref": "#/components/schemas/Meta44"
},
"user_id": {
"format": "int32",
"nullable": true,
"type": "integer"
}
},
"type": "object"
},
"LogRestApi.get_list": {
"properties": {
"action": {
"maxLength": 512,
"nullable": true,
"type": "string"
},
"dashboard_id": {
"format": "int32",
"nullable": true,
"type": "integer"
},
"dttm": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"duration_ms": {
"format": "int32",
"nullable": true,
"type": "integer"
},
"json": {
"nullable": true,
"type": "string"
},
"referrer": {
"maxLength": 1024,
"nullable": true,
"type": "string"
},
"slice_id": {
"format": "int32",
"nullable": true,
"type": "integer"
},
"user": {
"$ref": "#/components/schemas/Meta43"
},
"user_id": {
"format": "int32",
"nullable": true,
"type": "integer"
}
},
"type": "object"
},
"LogRestApi.post": {
"properties": {
"id": {
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"LogRestApi.put": {
"properties": {
"action": {
"maxLength": 512,
"nullable": true,
"type": "string"
},
"dttm": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"json": {
"nullable": true,
"type": "string"
},
"user": {
"nullable": true
}
},
"type": "object"
},
"Meta": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
}
},
"required": [
"first_name"
],
"type": "object"
},
"Meta1": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
}
},
"required": [
"first_name"
],
"type": "object"
},
"Meta10": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
},
"username": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name",
"username"
],
"type": "object"
},
"Meta11": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"Meta12": {
"properties": {
"active": {
"nullable": true,
"type": "boolean"
},
"changed_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"created_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"email": {
"maxLength": 64,
"type": "string"
},
"fail_login_count": {
"format": "int32",
"nullable": true,
"type": "integer"
},
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"last_login": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"last_name": {
"maxLength": 64,
"type": "string"
},
"login_count": {
"format": "int32",
"nullable": true,
"type": "integer"
},
"password": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"username": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"email",
"first_name",
"last_name",
"username"
],
"type": "object"
},
"Meta13": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"Meta14": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"Meta15": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
},
"username": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name",
"username"
],
"type": "object"
},
"Meta16": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
},
"username": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name",
"username"
],
"type": "object"
},
"Meta17": {
"properties": {
"username": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"username"
],
"type": "object"
},
"Meta18": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
},
"username": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name",
"username"
],
"type": "object"
},
"Meta19": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"Meta2": {
"properties": {
"id": {
"format": "int32",
"type": "integer"
},
"name": {
"maxLength": 250,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"Meta20": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
},
"username": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name",
"username"
],
"type": "object"
},
"Meta21": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"username": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"username"
],
"type": "object"
},
"Meta22": {
"properties": {
"database_name": {
"maxLength": 250,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
}
},
"required": [
"database_name"
],
"type": "object"
},
"Meta23": {
"properties": {
"changed_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"column_name": {
"maxLength": 255,
"type": "string"
},
"created_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"description": {
"nullable": true,
"type": "string"
},
"expression": {
"nullable": true,
"type": "string"
},
"filterable": {
"nullable": true,
"type": "boolean"
},
"groupby": {
"nullable": true,
"type": "boolean"
},
"id": {
"format": "int32",
"type": "integer"
},
"is_active": {
"nullable": true,
"type": "boolean"
},
"is_dttm": {
"nullable": true,
"type": "boolean"
},
"python_date_format": {
"maxLength": 255,
"nullable": true,
"type": "string"
},
"type": {
"maxLength": 32,
"nullable": true,
"type": "string"
},
"uuid": {
"format": "uuid",
"nullable": true,
"type": "string"
},
"verbose_name": {
"maxLength": 1024,
"nullable": true,
"type": "string"
}
},
"required": [
"column_name"
],
"type": "object"
},
"Meta24": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
},
"username": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name",
"username"
],
"type": "object"
},
"Meta25": {
"properties": {
"changed_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"created_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"d3format": {
"maxLength": 128,
"nullable": true,
"type": "string"
},
"description": {
"nullable": true,
"type": "string"
},
"expression": {
"type": "string"
},
"extra": {
"nullable": true,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"metric_name": {
"maxLength": 255,
"type": "string"
},
"metric_type": {
"maxLength": 32,
"nullable": true,
"type": "string"
},
"uuid": {
"format": "uuid",
"nullable": true,
"type": "string"
},
"verbose_name": {
"maxLength": 1024,
"nullable": true,
"type": "string"
},
"warning_text": {
"nullable": true,
"type": "string"
}
},
"required": [
"expression",
"metric_name"
],
"type": "object"
},
"Meta26": {
"properties": {
"database_name": {
"maxLength": 250,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
}
},
"required": [
"database_name"
],
"type": "object"
},
"Meta27": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
},
"username": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name",
"username"
],
"type": "object"
},
"Meta28": {
"properties": {
"database_name": {
"maxLength": 250,
"type": "string"
}
},
"required": [
"database_name"
],
"type": "object"
},
"Meta29": {
"properties": {
"id": {
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"Meta3": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"Meta30": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"Meta31": {
"properties": {
"database_name": {
"maxLength": 250,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
}
},
"required": [
"database_name"
],
"type": "object"
},
"Meta32": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"Meta33": {
"properties": {
"database_name": {
"maxLength": 250,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
}
},
"required": [
"database_name"
],
"type": "object"
},
"Meta34": {
"properties": {
"id": {
"format": "int32",
"type": "integer"
},
"type": {
"maxLength": 50,
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
"Meta35": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"Meta36": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"Meta37": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"Meta38": {
"properties": {
"id": {
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"Meta39": {
"properties": {
"id": {
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"Meta4": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"Meta40": {
"properties": {
"id": {
"format": "int32",
"type": "integer"
},
"recipient_config_json": {
"nullable": true,
"type": "string"
},
"type": {
"maxLength": 50,
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
"Meta41": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"Meta42": {
"properties": {
"id": {
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"Meta43": {
"properties": {
"username": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"username"
],
"type": "object"
},
"Meta44": {
"properties": {
"username": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"username"
],
"type": "object"
},
"Meta5": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"Meta6": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"Meta7": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
},
"username": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name",
"username"
],
"type": "object"
},
"Meta8": {
"properties": {
"default_endpoint": {
"nullable": true,
"type": "string"
},
"table_name": {
"maxLength": 250,
"type": "string"
}
},
"required": [
"table_name"
],
"type": "object"
},
"Meta9": {
"properties": {
"dashboard_title": {
"maxLength": 500,
"nullable": true,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"QueryRestApi.get": {
"properties": {
"changed_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"client_id": {
"maxLength": 11,
"type": "string"
},
"database": {
"$ref": "#/components/schemas/Meta29"
},
"end_result_backend_time": {
"nullable": true,
"type": "number"
},
"end_time": {
"nullable": true,
"type": "number"
},
"error_message": {
"nullable": true,
"type": "string"
},
"executed_sql": {
"nullable": true,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"limit": {
"format": "int32",
"nullable": true,
"type": "integer"
},
"progress": {
"format": "int32",
"nullable": true,
"type": "integer"
},
"results_key": {
"maxLength": 64,
"nullable": true,
"type": "string"
},
"rows": {
"format": "int32",
"nullable": true,
"type": "integer"
},
"schema": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"select_as_cta": {
"nullable": true,
"type": "boolean"
},
"select_as_cta_used": {
"nullable": true,
"type": "boolean"
},
"select_sql": {
"nullable": true,
"type": "string"
},
"sql": {
"nullable": true,
"type": "string"
},
"sql_editor_id": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"start_running_time": {
"nullable": true,
"type": "number"
},
"start_time": {
"nullable": true,
"type": "number"
},
"status": {
"maxLength": 16,
"nullable": true,
"type": "string"
},
"tab_name": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"tmp_schema_name": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"tmp_table_name": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"tracking_url": {
"nullable": true,
"type": "string"
}
},
"required": [
"client_id",
"database"
],
"type": "object"
},
"QueryRestApi.get_list": {
"properties": {
"changed_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"database": {
"$ref": "#/components/schemas/Meta28"
},
"end_time": {
"nullable": true,
"type": "number"
},
"executed_sql": {
"nullable": true,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"rows": {
"format": "int32",
"nullable": true,
"type": "integer"
},
"schema": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"sql": {
"nullable": true,
"type": "string"
},
"sql_tables": {
"readOnly": true
},
"start_time": {
"nullable": true,
"type": "number"
},
"status": {
"maxLength": 16,
"nullable": true,
"type": "string"
},
"tab_name": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"tmp_table_name": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"tracking_url": {
"nullable": true,
"type": "string"
},
"user": {
"$ref": "#/components/schemas/Meta27"
}
},
"required": [
"database"
],
"type": "object"
},
"QueryRestApi.post": {
"properties": {
"id": {
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"QueryRestApi.put": {
"properties": {
"id": {
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"RelatedResponseSchema": {
"properties": {
"count": {
"description": "The total number of related values",
"format": "int32",
"type": "integer"
},
"result": {
"items": {
"$ref": "#/components/schemas/RelatedResultResponse"
},
"type": "array"
}
},
"type": "object"
},
"RelatedResultResponse": {
"properties": {
"text": {
"description": "The related item string representation",
"type": "string"
},
"value": {
"description": "The related item identifier",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"ReportExecutionLogRestApi.get": {
"properties": {
"end_dttm": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"error_message": {
"nullable": true,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"scheduled_dttm": {
"format": "date-time",
"type": "string"
},
"start_dttm": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"state": {
"maxLength": 50,
"type": "string"
},
"value": {
"format": "float",
"nullable": true,
"type": "number"
},
"value_row_json": {
"nullable": true,
"type": "string"
}
},
"required": [
"scheduled_dttm",
"state"
],
"type": "object"
},
"ReportExecutionLogRestApi.get_list": {
"properties": {
"end_dttm": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"error_message": {
"nullable": true,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"scheduled_dttm": {
"format": "date-time",
"type": "string"
},
"start_dttm": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"state": {
"maxLength": 50,
"type": "string"
},
"value": {
"format": "float",
"nullable": true,
"type": "number"
},
"value_row_json": {
"nullable": true,
"type": "string"
}
},
"required": [
"scheduled_dttm",
"state"
],
"type": "object"
},
"ReportExecutionLogRestApi.post": {
"properties": {
"id": {
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"ReportExecutionLogRestApi.put": {
"properties": {
"id": {
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"ReportRecipient": {
"properties": {
"recipient_config_json": {
"$ref": "#/components/schemas/ReportRecipientConfigJSON"
},
"type": {
"description": "The recipient type, check spec for valid options",
"enum": [
"Email",
"Slack"
],
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
"ReportRecipientConfigJSON": {
"properties": {
"target": {
"type": "string"
}
},
"type": "object"
},
"ReportScheduleRestApi.get": {
"properties": {
"active": {
"nullable": true,
"type": "boolean"
},
"chart": {
"$ref": "#/components/schemas/Meta39"
},
"context_markdown": {
"nullable": true,
"type": "string"
},
"crontab": {
"maxLength": 1000,
"type": "string"
},
"dashboard": {
"$ref": "#/components/schemas/Meta38"
},
"database": {
"$ref": "#/components/schemas/Meta42"
},
"description": {
"nullable": true,
"type": "string"
},
"grace_period": {
"format": "int32",
"nullable": true,
"type": "integer"
},
"id": {
"format": "int32",
"type": "integer"
},
"last_eval_dttm": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"last_state": {
"maxLength": 50,
"nullable": true,
"type": "string"
},
"last_value": {
"format": "float",
"nullable": true,
"type": "number"
},
"last_value_row_json": {
"nullable": true,
"type": "string"
},
"log_retention": {
"format": "int32",
"nullable": true,
"type": "integer"
},
"name": {
"maxLength": 150,
"type": "string"
},
"owners": {
"$ref": "#/components/schemas/Meta41"
},
"recipients": {
"$ref": "#/components/schemas/Meta40"
},
"sql": {
"nullable": true,
"type": "string"
},
"type": {
"maxLength": 50,
"type": "string"
},
"validator_config_json": {
"nullable": true,
"type": "string"
},
"validator_type": {
"maxLength": 100,
"nullable": true,
"type": "string"
},
"working_timeout": {
"format": "int32",
"nullable": true,
"type": "integer"
}
},
"required": [
"crontab",
"name",
"recipients",
"type"
],
"type": "object"
},
"ReportScheduleRestApi.get_list": {
"properties": {
"active": {
"nullable": true,
"type": "boolean"
},
"changed_by": {
"$ref": "#/components/schemas/Meta36"
},
"changed_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"changed_on_delta_humanized": {
"readOnly": true
},
"created_by": {
"$ref": "#/components/schemas/Meta35"
},
"created_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"crontab": {
"maxLength": 1000,
"type": "string"
},
"crontab_humanized": {
"readOnly": true
},
"id": {
"format": "int32",
"type": "integer"
},
"last_eval_dttm": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"last_state": {
"maxLength": 50,
"nullable": true,
"type": "string"
},
"name": {
"maxLength": 150,
"type": "string"
},
"owners": {
"$ref": "#/components/schemas/Meta37"
},
"recipients": {
"$ref": "#/components/schemas/Meta34"
},
"type": {
"maxLength": 50,
"type": "string"
}
},
"required": [
"crontab",
"name",
"recipients",
"type"
],
"type": "object"
},
"ReportScheduleRestApi.post": {
"properties": {
"active": {
"type": "boolean"
},
"chart": {
"format": "int32",
"type": "integer"
},
"context_markdown": {
"description": "Markdown description",
"nullable": true,
"type": "string"
},
"crontab": {
"description": "A CRON expression.[Crontab Guru](https://crontab.guru/) is a helpful resource that can help you craft a CRON expression.",
"example": "*/5 * * * *",
"maxLength": 1000,
"minLength": 1,
"type": "string"
},
"dashboard": {
"format": "int32",
"type": "integer"
},
"database": {
"format": "int32",
"type": "integer"
},
"description": {
"description": "Use a nice description to give context to this Alert/Report",
"example": "Daily sales dashboard to marketing",
"nullable": true,
"type": "string"
},
"grace_period": {
"description": "Once an alert is triggered, how long, in seconds, before Superset nags you again. (in seconds)",
"example": 14400,
"format": "int32",
"type": "integer"
},
"log_retention": {
"description": "How long to keep the logs around for this report (in days)",
"example": 90,
"format": "int32",
"type": "integer"
},
"name": {
"description": "The report schedule name.",
"example": "Daily dashboard email",
"maxLength": 150,
"minLength": 1,
"type": "string"
},
"owners": {
"items": {
"description": "Owner are users ids allowed to delete or change this report. If left empty you will be one of the owners of the report.",
"format": "int32",
"type": "integer"
},
"type": "array"
},
"recipients": {
"items": {
"$ref": "#/components/schemas/ReportRecipient"
},
"type": "array"
},
"sql": {
"description": "A SQL statement that defines whether the alert should get triggered or not. The query is expected to return either NULL or a number value.",
"example": "SELECT value FROM time_series_table",
"type": "string"
},
"type": {
"description": "The report schedule type",
"enum": [
"Alert",
"Report"
],
"type": "string"
},
"validator_config_json": {
"$ref": "#/components/schemas/ValidatorConfigJSON"
},
"validator_type": {
"description": "Determines when to trigger alert based off value from alert query. Alerts will be triggered with these validator types:\n- Not Null - When the return value is Not NULL, Empty, or 0\n- Operator - When `sql_return_value comparison_operator threshold` is True e.g. `50 <= 75`<br>Supports the comparison operators <, <=, >, >=, ==, and !=",
"enum": [
"not null",
"operator"
],
"type": "string"
},
"working_timeout": {
"description": "If an alert is staled at a working state, how long until it's state is reseted to error",
"example": 3600,
"format": "int32",
"type": "integer"
}
},
"required": [
"crontab",
"name",
"type"
],
"type": "object"
},
"ReportScheduleRestApi.put": {
"properties": {
"active": {
"type": "boolean"
},
"chart": {
"format": "int32",
"type": "integer"
},
"context_markdown": {
"description": "Markdown description",
"nullable": true,
"type": "string"
},
"crontab": {
"description": "A CRON expression.[Crontab Guru](https://crontab.guru/) is a helpful resource that can help you craft a CRON expression.",
"maxLength": 1000,
"minLength": 1,
"type": "string"
},
"dashboard": {
"format": "int32",
"type": "integer"
},
"database": {
"format": "int32",
"type": "integer"
},
"description": {
"description": "Use a nice description to give context to this Alert/Report",
"example": "Daily sales dashboard to marketing",
"nullable": true,
"type": "string"
},
"grace_period": {
"description": "Once an alert is triggered, how long, in seconds, before Superset nags you again. (in seconds)",
"example": 14400,
"format": "int32",
"type": "integer"
},
"log_retention": {
"description": "How long to keep the logs around for this report (in days)",
"example": 90,
"format": "int32",
"type": "integer"
},
"name": {
"description": "The report schedule name.",
"maxLength": 150,
"minLength": 1,
"type": "string"
},
"owners": {
"items": {
"description": "Owner are users ids allowed to delete or change this report. If left empty you will be one of the owners of the report.",
"format": "int32",
"type": "integer"
},
"type": "array"
},
"recipients": {
"items": {
"$ref": "#/components/schemas/ReportRecipient"
},
"type": "array"
},
"sql": {
"description": "A SQL statement that defines whether the alert should get triggered or not. The query is expected to return either NULL or a number value.",
"example": "SELECT value FROM time_series_table",
"nullable": true,
"type": "string"
},
"type": {
"description": "The report schedule type",
"enum": [
"Alert",
"Report"
],
"type": "string"
},
"validator_config_json": {
"$ref": "#/components/schemas/ValidatorConfigJSON"
},
"validator_type": {
"description": "Determines when to trigger alert based off value from alert query. Alerts will be triggered with these validator types:\n- Not Null - When the return value is Not NULL, Empty, or 0\n- Operator - When `sql_return_value comparison_operator threshold` is True e.g. `50 <= 75`<br>Supports the comparison operators <, <=, >, >=, ==, and !=",
"enum": [
"not null",
"operator"
],
"nullable": true,
"type": "string"
},
"working_timeout": {
"description": "If an alert is staled at a working state, how long until it's state is reseted to error",
"example": 3600,
"format": "int32",
"nullable": true,
"type": "integer"
}
},
"type": "object"
},
"SavedQueryRestApi.get": {
"properties": {
"created_by": {
"$ref": "#/components/schemas/Meta32"
},
"database": {
"$ref": "#/components/schemas/Meta33"
},
"description": {
"nullable": true,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"label": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"schema": {
"maxLength": 128,
"nullable": true,
"type": "string"
},
"sql": {
"nullable": true,
"type": "string"
},
"sql_tables": {
"readOnly": true
}
},
"type": "object"
},
"SavedQueryRestApi.get_list": {
"properties": {
"changed_on_delta_humanized": {
"readOnly": true
},
"created_by": {
"$ref": "#/components/schemas/Meta30"
},
"created_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"database": {
"$ref": "#/components/schemas/Meta31"
},
"db_id": {
"format": "int32",
"nullable": true,
"type": "integer"
},
"description": {
"nullable": true,
"type": "string"
},
"id": {
"format": "int32",
"type": "integer"
},
"label": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"last_run_delta_humanized": {
"readOnly": true
},
"rows": {
"format": "int32",
"nullable": true,
"type": "integer"
},
"schema": {
"maxLength": 128,
"nullable": true,
"type": "string"
},
"sql": {
"nullable": true,
"type": "string"
},
"sql_tables": {
"readOnly": true
}
},
"type": "object"
},
"SavedQueryRestApi.post": {
"properties": {
"db_id": {
"format": "int32",
"nullable": true,
"type": "integer"
},
"description": {
"nullable": true,
"type": "string"
},
"label": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"schema": {
"maxLength": 128,
"nullable": true,
"type": "string"
},
"sql": {
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"SavedQueryRestApi.put": {
"properties": {
"db_id": {
"format": "int32",
"nullable": true,
"type": "integer"
},
"description": {
"nullable": true,
"type": "string"
},
"label": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"schema": {
"maxLength": 128,
"nullable": true,
"type": "string"
},
"sql": {
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"SchemasResponseSchema": {
"properties": {
"result": {
"items": {
"description": "A database schema name",
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"SelectStarResponseSchema": {
"properties": {
"result": {
"description": "SQL select star",
"type": "string"
}
},
"type": "object"
},
"TableMetadataColumnsResponse": {
"properties": {
"duplicates_constraint": {
"type": "string"
},
"keys": {
"description": "",
"items": {
"type": "string"
},
"type": "array"
},
"longType": {
"description": "The actual backend long type for the column",
"type": "string"
},
"name": {
"description": "The column name",
"type": "string"
},
"type": {
"description": "The column type",
"type": "string"
}
},
"type": "object"
},
"TableMetadataForeignKeysIndexesResponse": {
"properties": {
"column_names": {
"items": {
"description": "A list of column names that compose the foreign key or index",
"type": "string"
},
"type": "array"
},
"name": {
"description": "The name of the foreign key or index",
"type": "string"
},
"options": {
"$ref": "#/components/schemas/TableMetadataOptionsResponse"
},
"referred_columns": {
"items": {
"type": "string"
},
"type": "array"
},
"referred_schema": {
"type": "string"
},
"referred_table": {
"type": "string"
},
"type": {
"type": "string"
}
},
"type": "object"
},
"TableMetadataOptionsResponse": {
"properties": {
"deferrable": {
"type": "boolean"
},
"initially": {
"type": "boolean"
},
"match": {
"type": "boolean"
},
"ondelete": {
"type": "boolean"
},
"onupdate": {
"type": "boolean"
}
},
"type": "object"
},
"TableMetadataPrimaryKeyResponse": {
"properties": {
"column_names": {
"items": {
"description": "A list of column names that compose the primary key",
"type": "string"
},
"type": "array"
},
"name": {
"description": "The primary key index name",
"type": "string"
},
"type": {
"type": "string"
}
},
"type": "object"
},
"TableMetadataResponseSchema": {
"properties": {
"columns": {
"description": "A list of columns and their metadata",
"items": {
"$ref": "#/components/schemas/TableMetadataColumnsResponse"
},
"type": "array"
},
"foreignKeys": {
"description": "A list of foreign keys and their metadata",
"items": {
"$ref": "#/components/schemas/TableMetadataForeignKeysIndexesResponse"
},
"type": "array"
},
"indexes": {
"description": "A list of indexes and their metadata",
"items": {
"$ref": "#/components/schemas/TableMetadataForeignKeysIndexesResponse"
},
"type": "array"
},
"name": {
"description": "The name of the table",
"type": "string"
},
"primaryKey": {
"allOf": [
{
"$ref": "#/components/schemas/TableMetadataPrimaryKeyResponse"
}
],
"description": "Primary keys metadata"
},
"selectStar": {
"description": "SQL select star",
"type": "string"
}
},
"type": "object"
},
"ValidatorConfigJSON": {
"properties": {
"op": {
"description": "The operation to compare with a threshold to apply to the SQL output\n",
"enum": [
"<",
"<=",
">",
">=",
"==",
"!="
],
"type": "string"
},
"threshold": {
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"database_schemas_query_schema": {
"properties": {
"force": {
"type": "boolean"
}
},
"type": "object"
},
"get_delete_ids_schema": {
"items": {
"type": "integer"
},
"type": "array"
},
"get_export_ids_schema": {
"items": {
"type": "integer"
},
"type": "array"
},
"get_fav_star_ids_schema": {
"items": {
"type": "integer"
},
"type": "array"
},
"get_info_schema": {
"properties": {
"add_columns": {
"additionalProperties": {
"properties": {
"page": {
"type": "integer"
},
"page_size": {
"type": "integer"
}
},
"type": "object"
},
"type": "object"
},
"edit_columns": {
"additionalProperties": {
"properties": {
"page": {
"type": "integer"
},
"page_size": {
"type": "integer"
}
},
"type": "object"
},
"type": "object"
},
"keys": {
"items": {
"enum": [
"add_columns",
"edit_columns",
"filters",
"permissions",
"add_title",
"edit_title",
"none"
],
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"get_item_schema": {
"properties": {
"columns": {
"items": {
"type": "string"
},
"type": "array"
},
"keys": {
"items": {
"enum": [
"show_columns",
"description_columns",
"label_columns",
"show_title",
"none"
],
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"get_list_schema": {
"properties": {
"columns": {
"items": {
"type": "string"
},
"type": "array"
},
"filters": {
"items": {
"properties": {
"col": {
"type": "string"
},
"opr": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "string"
},
{
"type": "boolean"
},
{
"type": "array"
}
]
}
},
"required": [
"col",
"opr",
"value"
],
"type": "object"
},
"type": "array"
},
"keys": {
"items": {
"enum": [
"list_columns",
"order_columns",
"label_columns",
"description_columns",
"list_title",
"none"
],
"type": "string"
},
"type": "array"
},
"order_column": {
"type": "string"
},
"order_direction": {
"enum": [
"asc",
"desc"
],
"type": "string"
},
"page": {
"type": "integer"
},
"page_size": {
"type": "integer"
}
},
"type": "object"
},
"get_related_schema": {
"properties": {
"filter": {
"type": "string"
},
"page": {
"type": "integer"
},
"page_size": {
"type": "integer"
}
},
"type": "object"
},
"screenshot_query_schema": {
"properties": {
"force": {
"type": "boolean"
},
"thumb_size": {
"items": {
"type": "integer"
},
"type": "array"
},
"window_size": {
"items": {
"type": "integer"
},
"type": "array"
}
},
"type": "object"
},
"thumbnail_query_schema": {
"properties": {
"force": {
"type": "boolean"
}
},
"type": "object"
}
},
"securitySchemes": {
"jwt": {
"bearerFormat": "JWT",
"scheme": "bearer",
"type": "http"
},
"jwt_refresh": {
"bearerFormat": "JWT",
"scheme": "bearer",
"type": "http"
}
}
},
"info": {
"description": "Superset",
"title": "Superset",
"version": "v1"
},
"openapi": "3.0.2",
"paths": {
"/annotation_layer/": {
"delete": {
"description": "Deletes multiple annotation layers in a bulk operation.",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_delete_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "CSS templates bulk delete"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Annotation Layers"
]
},
"get": {
"description": "Get a list of Annotation layers, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/AnnotationLayerRestApi.get_list"
},
"type": "array"
}
},
"type": "object"
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Annotation Layers"
]
},
"post": {
"description": "Create an Annotation layer",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AnnotationLayerRestApi.post"
}
}
},
"description": "Annotation Layer schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/AnnotationLayerRestApi.post"
}
},
"type": "object"
}
}
},
"description": "Annotation added"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Annotation Layers"
]
}
},
"/annotation_layer/_info": {
"get": {
"description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_info_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"add_columns": {
"type": "object"
},
"edit_columns": {
"type": "object"
},
"filters": {
"properties": {
"column_name": {
"items": {
"properties": {
"name": {
"description": "The filter name. Will be translated by babel",
"type": "string"
},
"operator": {
"description": "The filter operation key to use on list filters",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"permissions": {
"description": "The user permissions for this API resource",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Annotation Layers"
]
}
},
"/annotation_layer/related/{column_name}": {
"get": {
"parameters": [
{
"in": "path",
"name": "column_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_related_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RelatedResponseSchema"
}
}
},
"description": "Related column data"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Annotation Layers"
]
}
},
"/annotation_layer/{pk}": {
"delete": {
"description": "Delete Annotation layer",
"parameters": [
{
"description": "The annotation layer pk for this annotation",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Item deleted"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Annotation Layers"
]
},
"get": {
"description": "Get an Annotation layer",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"id": {
"description": "The item id",
"type": "string"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"result": {
"$ref": "#/components/schemas/AnnotationLayerRestApi.get"
},
"show_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"show_title": {
"description": "A title to render. Will be translated by babel",
"example": "Show Item Details",
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Annotation Layers"
]
},
"put": {
"description": "Update an Annotation layer",
"parameters": [
{
"description": "The annotation layer pk for this annotation",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AnnotationLayerRestApi.put"
}
}
},
"description": "Annotation schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/AnnotationLayerRestApi.put"
}
},
"type": "object"
}
}
},
"description": "Annotation changed"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Annotation Layers"
]
}
},
"/annotation_layer/{pk}/annotation/": {
"delete": {
"description": "Deletes multiple annotation in a bulk operation.",
"parameters": [
{
"description": "The annotation layer pk for this annotation",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_delete_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Annotations bulk delete"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Annotation Layers"
]
},
"get": {
"description": "Get a list of Annotation layers, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"description": "The annotation layer id for this annotation",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"ids": {
"description": "A list of annotation ids",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/AnnotationRestApi.get_list"
},
"type": "array"
}
},
"type": "object"
}
}
},
"description": "Items from Annotations"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Annotation Layers"
]
},
"post": {
"description": "Create an Annotation layer",
"parameters": [
{
"description": "The annotation layer pk for this annotation",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AnnotationRestApi.post"
}
}
},
"description": "Annotation schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/AnnotationRestApi.post"
}
},
"type": "object"
}
}
},
"description": "Annotation added"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Annotation Layers"
]
}
},
"/annotation_layer/{pk}/annotation/{annotation_id}": {
"delete": {
"description": "Delete Annotation layer",
"parameters": [
{
"description": "The annotation layer pk for this annotation",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "The annotation pk for this annotation",
"in": "path",
"name": "annotation_id",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Item deleted"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Annotation Layers"
]
},
"get": {
"description": "Get an Annotation layer",
"parameters": [
{
"description": "The annotation layer pk for this annotation",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "The annotation pk",
"in": "path",
"name": "annotation_id",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"description": "The item id",
"type": "string"
},
"result": {
"$ref": "#/components/schemas/AnnotationRestApi.get"
}
},
"type": "object"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Annotation Layers"
]
},
"put": {
"description": "Update an Annotation layer",
"parameters": [
{
"description": "The annotation layer pk for this annotation",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "The annotation pk for this annotation",
"in": "path",
"name": "annotation_id",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AnnotationRestApi.put"
}
}
},
"description": "Annotation schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/AnnotationRestApi.put"
}
},
"type": "object"
}
}
},
"description": "Annotation changed"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Annotation Layers"
]
}
},
"/async_event/": {
"get": {
"description": "Reads off of the Redis events stream, using the user's JWT token and optional query params for last event received.",
"parameters": [
{
"description": "Last ID received by the client",
"in": "query",
"name": "last_id",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"items": {
"properties": {
"channel_id": {
"type": "string"
},
"errors": {
"items": {
"type": "object"
},
"type": "array"
},
"id": {
"type": "string"
},
"job_id": {
"type": "string"
},
"result_url": {
"type": "string"
},
"status": {
"type": "string"
},
"user_id": {
"type": "integer"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
}
}
},
"description": "Async event results"
},
"401": {
"$ref": "#/components/responses/401"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"AsyncEventsRestApi"
]
}
},
"/cachekey/invalidate": {
"post": {
"description": "Takes a list of datasources, finds the associated cache records and invalidates them and removes the database records",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CacheInvalidationRequestSchema"
}
}
},
"description": "A list of datasources uuid or the tuples of database and datasource names",
"required": true
},
"responses": {
"201": {
"description": "cache was successfully invalidated"
},
"400": {
"$ref": "#/components/responses/400"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"CacheRestApi"
]
}
},
"/chart/": {
"delete": {
"description": "Deletes multiple Charts in a bulk operation.",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_delete_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Charts bulk delete"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Charts"
]
},
"get": {
"description": "Get a list of charts, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/ChartRestApi.get_list"
},
"type": "array"
}
},
"type": "object"
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Charts"
]
},
"post": {
"description": "Create a new Chart.",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChartRestApi.post"
}
}
},
"description": "Chart schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/ChartRestApi.post"
}
},
"type": "object"
}
}
},
"description": "Chart added"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Charts"
]
}
},
"/chart/_info": {
"get": {
"description": "Several metadata information about chart API endpoints.",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_info_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"add_columns": {
"type": "object"
},
"edit_columns": {
"type": "object"
},
"filters": {
"properties": {
"column_name": {
"items": {
"properties": {
"name": {
"description": "The filter name. Will be translated by babel",
"type": "string"
},
"operator": {
"description": "The filter operation key to use on list filters",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"permissions": {
"description": "The user permissions for this API resource",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Charts"
]
}
},
"/chart/data": {
"post": {
"description": "Takes a query context constructed in the client and returns payload data response for the given query.",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChartDataQueryContextSchema"
}
}
},
"description": "A query context consists of a datasource from which to fetch data and one or many query objects.",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChartDataResponseSchema"
}
}
},
"description": "Query result"
},
"202": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChartDataAsyncResponseSchema"
}
}
},
"description": "Async job details"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Charts"
]
}
},
"/chart/data/{cache_key}": {
"get": {
"description": "Takes a query context cache key and returns payload data response for the given query.",
"parameters": [
{
"in": "path",
"name": "cache_key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChartDataResponseSchema"
}
}
},
"description": "Query result"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Charts"
]
}
},
"/chart/export/": {
"get": {
"description": "Exports multiple charts and downloads them as YAML files",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_export_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/zip": {
"schema": {
"format": "binary",
"type": "string"
}
}
},
"description": "A zip file with chart(s), dataset(s) and database(s) as YAML"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Charts"
]
}
},
"/chart/favorite_status/": {
"get": {
"description": "Check favorited dashboards for current user",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_fav_star_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetFavStarIdsSchema"
}
}
},
"description": "None"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Charts"
]
}
},
"/chart/import/": {
"post": {
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"properties": {
"formData": {
"format": "binary",
"type": "string"
},
"overwrite": {
"type": "bool"
},
"passwords": {
"type": "string"
}
},
"type": "object"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Chart import result"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Charts"
]
}
},
"/chart/related/{column_name}": {
"get": {
"description": "Get a list of all possible owners for a chart.",
"parameters": [
{
"in": "path",
"name": "column_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_related_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RelatedResponseSchema"
}
}
},
"description": "Related column data"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Charts"
]
}
},
"/chart/{pk}": {
"delete": {
"description": "Deletes a Chart.",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Chart delete"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Charts"
]
},
"get": {
"description": "Get a chart detail information.",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"id": {
"description": "The item id",
"type": "string"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"result": {
"$ref": "#/components/schemas/ChartRestApi.get"
},
"show_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"show_title": {
"description": "A title to render. Will be translated by babel",
"example": "Show Item Details",
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Charts"
]
},
"put": {
"description": "Changes a Chart.",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChartRestApi.put"
}
}
},
"description": "Chart schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/ChartRestApi.put"
}
},
"type": "object"
}
}
},
"description": "Chart changed"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Charts"
]
}
},
"/chart/{pk}/cache_screenshot/": {
"get": {
"description": "Compute and cache a screenshot.",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/screenshot_query_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChartCacheScreenshotResponseSchema"
}
}
},
"description": "Chart async result"
},
"302": {
"description": "Redirects to the current digest"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Charts"
]
}
},
"/chart/{pk}/screenshot/{digest}/": {
"get": {
"description": "Get a computed screenshot from cache.",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"in": "path",
"name": "digest",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"image/*": {
"schema": {
"format": "binary",
"type": "string"
}
}
},
"description": "Chart thumbnail image"
},
"302": {
"description": "Redirects to the current digest"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Charts"
]
}
},
"/chart/{pk}/thumbnail/{digest}/": {
"get": {
"description": "Compute or get already computed chart thumbnail from cache.",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"in": "path",
"name": "digest",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"image/*": {
"schema": {
"format": "binary",
"type": "string"
}
}
},
"description": "Chart thumbnail image"
},
"302": {
"description": "Redirects to the current digest"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Charts"
]
}
},
"/css_template/": {
"delete": {
"description": "Deletes multiple css templates in a bulk operation.",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_delete_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "CSS templates bulk delete"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"CSS Templates"
]
},
"get": {
"description": "Get a list of CSS templates, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/CssTemplateRestApi.get_list"
},
"type": "array"
}
},
"type": "object"
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"CSS Templates"
]
},
"post": {
"description": "Create a CSS template",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CssTemplateRestApi.post"
}
}
},
"description": "Model schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "string"
},
"result": {
"$ref": "#/components/schemas/CssTemplateRestApi.post"
}
},
"type": "object"
}
}
},
"description": "Item inserted"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"CSS Templates"
]
}
},
"/css_template/_info": {
"get": {
"description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_info_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"add_columns": {
"type": "object"
},
"edit_columns": {
"type": "object"
},
"filters": {
"properties": {
"column_name": {
"items": {
"properties": {
"name": {
"description": "The filter name. Will be translated by babel",
"type": "string"
},
"operator": {
"description": "The filter operation key to use on list filters",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"permissions": {
"description": "The user permissions for this API resource",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"CSS Templates"
]
}
},
"/css_template/related/{column_name}": {
"get": {
"parameters": [
{
"in": "path",
"name": "column_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_related_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RelatedResponseSchema"
}
}
},
"description": "Related column data"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"CSS Templates"
]
}
},
"/css_template/{pk}": {
"delete": {
"description": "Delete CSS template",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Item deleted"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"CSS Templates"
]
},
"get": {
"description": "Get a CSS template",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"id": {
"description": "The item id",
"type": "string"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"result": {
"$ref": "#/components/schemas/CssTemplateRestApi.get"
},
"show_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"show_title": {
"description": "A title to render. Will be translated by babel",
"example": "Show Item Details",
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"CSS Templates"
]
},
"put": {
"description": "Update a CSS template",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CssTemplateRestApi.put"
}
}
},
"description": "Model schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"$ref": "#/components/schemas/CssTemplateRestApi.put"
}
},
"type": "object"
}
}
},
"description": "Item changed"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"CSS Templates"
]
}
},
"/dashboard/": {
"delete": {
"description": "Deletes multiple Dashboards in a bulk operation.",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_delete_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Dashboard bulk delete"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Dashboards"
]
},
"get": {
"description": "Get a list of dashboards, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/DashboardRestApi.get_list"
},
"type": "array"
}
},
"type": "object"
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Dashboards"
]
},
"post": {
"description": "Create a new Dashboard.",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DashboardRestApi.post"
}
}
},
"description": "Dashboard schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/DashboardRestApi.post"
}
},
"type": "object"
}
}
},
"description": "Dashboard added"
},
"302": {
"description": "Redirects to the current digest"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Dashboards"
]
}
},
"/dashboard/_info": {
"get": {
"description": "Several metadata information about dashboard API endpoints.",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_info_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"add_columns": {
"type": "object"
},
"edit_columns": {
"type": "object"
},
"filters": {
"properties": {
"column_name": {
"items": {
"properties": {
"name": {
"description": "The filter name. Will be translated by babel",
"type": "string"
},
"operator": {
"description": "The filter operation key to use on list filters",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"permissions": {
"description": "The user permissions for this API resource",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Dashboards"
]
}
},
"/dashboard/export/": {
"get": {
"description": "Exports multiple Dashboards and downloads them as YAML files.",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_export_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
},
"description": "Dashboard export"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Dashboards"
]
}
},
"/dashboard/favorite_status/": {
"get": {
"description": "Check favorited dashboards for current user",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_fav_star_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetFavStarIdsSchema"
}
}
},
"description": "None"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Dashboards"
]
}
},
"/dashboard/import/": {
"post": {
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"properties": {
"formData": {
"format": "binary",
"type": "string"
},
"overwrite": {
"type": "bool"
},
"passwords": {
"type": "string"
}
},
"type": "object"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Dashboard import result"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Dashboards"
]
}
},
"/dashboard/related/{column_name}": {
"get": {
"description": "Get a list of all possible owners for a dashboard.",
"parameters": [
{
"in": "path",
"name": "column_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_related_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RelatedResponseSchema"
}
}
},
"description": "Related column data"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Dashboards"
]
}
},
"/dashboard/{pk}": {
"delete": {
"description": "Deletes a Dashboard.",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Dashboard deleted"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Dashboards"
]
},
"get": {
"description": "Get a dashboard detail information.",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"id": {
"description": "The item id",
"type": "string"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"result": {
"$ref": "#/components/schemas/DashboardRestApi.get"
},
"show_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"show_title": {
"description": "A title to render. Will be translated by babel",
"example": "Show Item Details",
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Dashboards"
]
},
"put": {
"description": "Changes a Dashboard.",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DashboardRestApi.put"
}
}
},
"description": "Dashboard schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/DashboardRestApi.put"
}
},
"type": "object"
}
}
},
"description": "Dashboard changed"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Dashboards"
]
}
},
"/dashboard/{pk}/thumbnail/{digest}/": {
"get": {
"description": "Compute async or get already computed dashboard thumbnail from cache.",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "A hex digest that makes this dashboard unique",
"in": "path",
"name": "digest",
"required": true,
"schema": {
"type": "string"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/thumbnail_query_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"image/*": {
"schema": {
"format": "binary",
"type": "string"
}
}
},
"description": "Dashboard thumbnail image"
},
"202": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Thumbnail does not exist on cache, fired async to compute"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Dashboards"
]
}
},
"/database/": {
"get": {
"description": "Get a list of models",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/DatabaseRestApi.get_list"
},
"type": "array"
}
},
"type": "object"
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Database"
]
},
"post": {
"description": "Create a new Database.",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatabaseRestApi.post"
}
}
},
"description": "Database schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/DatabaseRestApi.post"
}
},
"type": "object"
}
}
},
"description": "Database added"
},
"302": {
"description": "Redirects to the current digest"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Database"
]
}
},
"/database/_info": {
"get": {
"description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_info_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"add_columns": {
"type": "object"
},
"edit_columns": {
"type": "object"
},
"filters": {
"properties": {
"column_name": {
"items": {
"properties": {
"name": {
"description": "The filter name. Will be translated by babel",
"type": "string"
},
"operator": {
"description": "The filter operation key to use on list filters",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"permissions": {
"description": "The user permissions for this API resource",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Database"
]
}
},
"/database/export/": {
"get": {
"description": "Download database(s) and associated dataset(s) as a zip file",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_export_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/zip": {
"schema": {
"format": "binary",
"type": "string"
}
}
},
"description": "A zip file with database(s) and dataset(s) as YAML"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Database"
]
}
},
"/database/import/": {
"post": {
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"properties": {
"formData": {
"format": "binary",
"type": "string"
},
"overwrite": {
"type": "bool"
},
"passwords": {
"type": "string"
}
},
"type": "object"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Database import result"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Database"
]
}
},
"/database/test_connection": {
"post": {
"description": "Tests a database connection",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatabaseTestConnectionSchema"
}
}
},
"description": "Database schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Database Test Connection"
},
"400": {
"$ref": "#/components/responses/400"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Database"
]
}
},
"/database/{pk}": {
"delete": {
"description": "Deletes a Database.",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Database deleted"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Database"
]
},
"get": {
"description": "Get an item model",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"id": {
"description": "The item id",
"type": "string"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"result": {
"$ref": "#/components/schemas/DatabaseRestApi.get"
},
"show_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"show_title": {
"description": "A title to render. Will be translated by babel",
"example": "Show Item Details",
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Database"
]
},
"put": {
"description": "Changes a Database.",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatabaseRestApi.put"
}
}
},
"description": "Database schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/DatabaseRestApi.put"
}
},
"type": "object"
}
}
},
"description": "Database changed"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Database"
]
}
},
"/database/{pk}/related_objects/": {
"get": {
"description": "Get charts and dashboards count associated to a database",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatabaseRelatedObjectsResponse"
}
}
},
"description": "Query result"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Database"
]
}
},
"/database/{pk}/schemas/": {
"get": {
"description": "Get all schemas from a database",
"parameters": [
{
"description": "The database id",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/database_schemas_query_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SchemasResponseSchema"
}
}
},
"description": "A List of all schemas from the database"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Database"
]
}
},
"/database/{pk}/select_star/{table_name}/": {
"get": {
"description": "Get database select star for table",
"parameters": [
{
"description": "The database id",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "Table name",
"in": "path",
"name": "table_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "Table schema",
"in": "path",
"name": "schema_name",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SelectStarResponseSchema"
}
}
},
"description": "SQL statement for a select star for table"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Database"
]
}
},
"/database/{pk}/select_star/{table_name}/{schema_name}/": {
"get": {
"description": "Get database select star for table",
"parameters": [
{
"description": "The database id",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "Table name",
"in": "path",
"name": "table_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "Table schema",
"in": "path",
"name": "schema_name",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SelectStarResponseSchema"
}
}
},
"description": "SQL statement for a select star for table"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Database"
]
}
},
"/database/{pk}/table/{table_name}/{schema_name}/": {
"get": {
"description": "Get database table metadata",
"parameters": [
{
"description": "The database id",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "Table name",
"in": "path",
"name": "table_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "Table schema",
"in": "path",
"name": "schema_name",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TableMetadataResponseSchema"
}
}
},
"description": "Table metadata information"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Database"
]
}
},
"/dataset/": {
"delete": {
"description": "Deletes multiple Datasets in a bulk operation.",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_delete_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Dataset bulk delete"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Datasets"
]
},
"get": {
"description": "Get a list of models",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/DatasetRestApi.get_list"
},
"type": "array"
}
},
"type": "object"
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Datasets"
]
},
"post": {
"description": "Create a new Dataset",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatasetRestApi.post"
}
}
},
"description": "Dataset schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/DatasetRestApi.post"
}
},
"type": "object"
}
}
},
"description": "Dataset added"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Datasets"
]
}
},
"/dataset/_info": {
"get": {
"description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_info_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"add_columns": {
"type": "object"
},
"edit_columns": {
"type": "object"
},
"filters": {
"properties": {
"column_name": {
"items": {
"properties": {
"name": {
"description": "The filter name. Will be translated by babel",
"type": "string"
},
"operator": {
"description": "The filter operation key to use on list filters",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"permissions": {
"description": "The user permissions for this API resource",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Datasets"
]
}
},
"/dataset/distinct/{column_name}": {
"get": {
"parameters": [
{
"in": "path",
"name": "column_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_related_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DistincResponseSchema"
}
}
},
"description": "Distinct field data"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Datasets"
]
}
},
"/dataset/export/": {
"get": {
"description": "Exports multiple datasets and downloads them as YAML files",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_export_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
},
"description": "Dataset export"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Datasets"
]
}
},
"/dataset/import/": {
"post": {
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"properties": {
"formData": {
"format": "binary",
"type": "string"
},
"overwrite": {
"type": "bool"
},
"passwords": {
"type": "string"
}
},
"type": "object"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Dataset import result"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Datasets"
]
}
},
"/dataset/related/{column_name}": {
"get": {
"parameters": [
{
"in": "path",
"name": "column_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_related_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RelatedResponseSchema"
}
}
},
"description": "Related column data"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Datasets"
]
}
},
"/dataset/{pk}": {
"delete": {
"description": "Deletes a Dataset",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Dataset delete"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Datasets"
]
},
"get": {
"description": "Get an item model",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"id": {
"description": "The item id",
"type": "string"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"result": {
"$ref": "#/components/schemas/DatasetRestApi.get"
},
"show_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"show_title": {
"description": "A title to render. Will be translated by babel",
"example": "Show Item Details",
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Datasets"
]
},
"put": {
"description": "Changes a Dataset",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"in": "path",
"name": "override_columns",
"required": true,
"schema": {
"type": "bool"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatasetRestApi.put"
}
}
},
"description": "Dataset schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/DatasetRestApi.put"
}
},
"type": "object"
}
}
},
"description": "Dataset changed"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Datasets"
]
}
},
"/dataset/{pk}/refresh": {
"put": {
"description": "Refreshes and updates columns of a dataset",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Dataset delete"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Datasets"
]
}
},
"/dataset/{pk}/related_objects": {
"get": {
"description": "Get charts and dashboards count associated to a dataset",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatasetRelatedObjectsResponse"
}
}
},
"description": "Query result"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Datasets"
]
}
},
"/log/": {
"get": {
"description": "Get a list of models",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/LogRestApi.get_list"
},
"type": "array"
}
},
"type": "object"
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"LogRestApi"
]
},
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LogRestApi.post"
}
}
},
"description": "Model schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "string"
},
"result": {
"$ref": "#/components/schemas/LogRestApi.post"
}
},
"type": "object"
}
}
},
"description": "Item inserted"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"LogRestApi"
]
}
},
"/log/{pk}": {
"get": {
"description": "Get an item model",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"id": {
"description": "The item id",
"type": "string"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"result": {
"$ref": "#/components/schemas/LogRestApi.get"
},
"show_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"show_title": {
"description": "A title to render. Will be translated by babel",
"example": "Show Item Details",
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"LogRestApi"
]
}
},
"/menu/": {
"get": {
"description": "Get the menu data structure. Returns a forest like structure with the menu the user has access to",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"description": "Menu items in a forest like data structure",
"items": {
"properties": {
"childs": {
"items": {
"type": "object"
},
"type": "array"
},
"icon": {
"description": "Icon name to show for this menu item",
"type": "string"
},
"label": {
"description": "Pretty name for the menu item",
"type": "string"
},
"name": {
"description": "The internal menu item name, maps to permission_name",
"type": "string"
},
"url": {
"description": "The URL for the menu item",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
}
}
},
"description": "Get menu data"
},
"401": {
"$ref": "#/components/responses/401"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Menu"
]
}
},
"/openapi/{version}/_openapi": {
"get": {
"description": "Get the OpenAPI spec for a specific API version",
"parameters": [
{
"in": "path",
"name": "version",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
},
"description": "The OpenAPI spec"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"OpenApi"
]
}
},
"/query/": {
"get": {
"description": "Get a list of queries, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/QueryRestApi.get_list"
},
"type": "array"
}
},
"type": "object"
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Queries"
]
}
},
"/query/distinct/{column_name}": {
"get": {
"parameters": [
{
"in": "path",
"name": "column_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_related_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DistincResponseSchema"
}
}
},
"description": "Distinct field data"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Queries"
]
}
},
"/query/related/{column_name}": {
"get": {
"parameters": [
{
"in": "path",
"name": "column_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_related_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RelatedResponseSchema"
}
}
},
"description": "Related column data"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Queries"
]
}
},
"/query/{pk}": {
"get": {
"description": "Get query detail information.",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"id": {
"description": "The item id",
"type": "string"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"result": {
"$ref": "#/components/schemas/QueryRestApi.get"
},
"show_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"show_title": {
"description": "A title to render. Will be translated by babel",
"example": "Show Item Details",
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Queries"
]
}
},
"/report/": {
"delete": {
"description": "Deletes multiple report schedules in a bulk operation.",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_delete_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Report Schedule bulk delete"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Report Schedules"
]
},
"get": {
"description": "Get a list of report schedules, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/ReportScheduleRestApi.get_list"
},
"type": "array"
}
},
"type": "object"
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Report Schedules"
]
},
"post": {
"description": "Create a report schedule",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ReportScheduleRestApi.post"
}
}
},
"description": "Report Schedule schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/ReportScheduleRestApi.post"
}
},
"type": "object"
}
}
},
"description": "Report schedule added"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Report Schedules"
]
}
},
"/report/_info": {
"get": {
"description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_info_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"add_columns": {
"type": "object"
},
"edit_columns": {
"type": "object"
},
"filters": {
"properties": {
"column_name": {
"items": {
"properties": {
"name": {
"description": "The filter name. Will be translated by babel",
"type": "string"
},
"operator": {
"description": "The filter operation key to use on list filters",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"permissions": {
"description": "The user permissions for this API resource",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Report Schedules"
]
}
},
"/report/related/{column_name}": {
"get": {
"parameters": [
{
"in": "path",
"name": "column_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_related_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RelatedResponseSchema"
}
}
},
"description": "Related column data"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Report Schedules"
]
}
},
"/report/{pk}": {
"delete": {
"description": "Delete a report schedule",
"parameters": [
{
"description": "The report schedule pk",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Item deleted"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Report Schedules"
]
},
"get": {
"description": "Get a report schedule",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"id": {
"description": "The item id",
"type": "string"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"result": {
"$ref": "#/components/schemas/ReportScheduleRestApi.get"
},
"show_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"show_title": {
"description": "A title to render. Will be translated by babel",
"example": "Show Item Details",
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Report Schedules"
]
},
"put": {
"description": "Update a report schedule",
"parameters": [
{
"description": "The Report Schedule pk",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ReportScheduleRestApi.put"
}
}
},
"description": "Report Schedule schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/ReportScheduleRestApi.put"
}
},
"type": "object"
}
}
},
"description": "Report Schedule changed"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Report Schedules"
]
}
},
"/report/{pk}/log/": {
"get": {
"description": "Get a list of report schedule logs, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"description": "The report schedule id for these logs",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"ids": {
"description": "A list of log ids",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/ReportExecutionLogRestApi.get_list"
},
"type": "array"
}
},
"type": "object"
}
}
},
"description": "Items from logs"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Report Schedules"
]
}
},
"/report/{pk}/log/{log_id}": {
"get": {
"description": "Get a report schedule log",
"parameters": [
{
"description": "The report schedule pk for log",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "The log pk",
"in": "path",
"name": "log_id",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"description": "The log id",
"type": "string"
},
"result": {
"$ref": "#/components/schemas/ReportExecutionLogRestApi.get"
}
},
"type": "object"
}
}
},
"description": "Item log"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Report Schedules"
]
}
},
"/saved_query/": {
"delete": {
"description": "Deletes multiple saved queries in a bulk operation.",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_delete_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Saved queries bulk delete"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Queries"
]
},
"get": {
"description": "Get a list of saved queries, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/SavedQueryRestApi.get_list"
},
"type": "array"
}
},
"type": "object"
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Queries"
]
},
"post": {
"description": "Create a saved query",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SavedQueryRestApi.post"
}
}
},
"description": "Model schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "string"
},
"result": {
"$ref": "#/components/schemas/SavedQueryRestApi.post"
}
},
"type": "object"
}
}
},
"description": "Item inserted"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Queries"
]
}
},
"/saved_query/_info": {
"get": {
"description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_info_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"add_columns": {
"type": "object"
},
"edit_columns": {
"type": "object"
},
"filters": {
"properties": {
"column_name": {
"items": {
"properties": {
"name": {
"description": "The filter name. Will be translated by babel",
"type": "string"
},
"operator": {
"description": "The filter operation key to use on list filters",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"permissions": {
"description": "The user permissions for this API resource",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Queries"
]
}
},
"/saved_query/distinct/{column_name}": {
"get": {
"parameters": [
{
"in": "path",
"name": "column_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_related_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DistincResponseSchema"
}
}
},
"description": "Distinct field data"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Queries"
]
}
},
"/saved_query/export/": {
"get": {
"description": "Exports multiple saved queries and downloads them as YAML files",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_export_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/zip": {
"schema": {
"format": "binary",
"type": "string"
}
}
},
"description": "A zip file with saved query(ies) and database(s) as YAML"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Queries"
]
}
},
"/saved_query/related/{column_name}": {
"get": {
"parameters": [
{
"in": "path",
"name": "column_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_related_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RelatedResponseSchema"
}
}
},
"description": "Related column data"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Queries"
]
}
},
"/saved_query/{pk}": {
"delete": {
"description": "Delete saved query",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Item deleted"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Queries"
]
},
"get": {
"description": "Get a saved query",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"id": {
"description": "The item id",
"type": "string"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"result": {
"$ref": "#/components/schemas/SavedQueryRestApi.get"
},
"show_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"show_title": {
"description": "A title to render. Will be translated by babel",
"example": "Show Item Details",
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Queries"
]
},
"put": {
"description": "Update a saved query",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SavedQueryRestApi.put"
}
}
},
"description": "Model schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"$ref": "#/components/schemas/SavedQueryRestApi.put"
}
},
"type": "object"
}
}
},
"description": "Item changed"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Queries"
]
}
},
"/security/login": {
"post": {
"description": "Authenticate and get a JWT access and refresh token",
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"password": {
"description": "The password for authentication",
"example": "complex-password",
"type": "string"
},
"provider": {
"description": "Choose an authentication provider",
"enum": [
"db",
"ldap"
],
"example": "db",
"type": "string"
},
"refresh": {
"description": "If true a refresh token is provided also",
"example": true,
"type": "boolean"
},
"username": {
"description": "The username for authentication",
"example": "admin",
"type": "string"
}
},
"type": "object"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"access_token": {
"type": "string"
},
"refresh_token": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Authentication Successful"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"tags": [
"Security"
]
}
},
"/security/refresh": {
"post": {
"description": "Use the refresh token to get a new JWT access token",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"access_token": {
"description": "A new refreshed access token",
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Refresh Successful"
},
"401": {
"$ref": "#/components/responses/401"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt_refresh": []
}
],
"tags": [
"Security"
]
}
}
},
"servers": [
{
"url": "/api/v1"
}
]
}