From bf56a327f4f3720f1b3f24fea3e7ee47bfb4da31 Mon Sep 17 00:00:00 2001
From: Ville Brofeldt <33317356+villebro@users.noreply.github.com>
Date: Thu, 12 Dec 2024 17:54:10 -0800
Subject: [PATCH] fix(tags): clean up bulk create api and schema (#31427)
---
docs/static/resources/openapi.json | 5986 +++++++++++++++++++++++-----
superset/tags/api.py | 31 +-
superset/tags/schemas.py | 34 +-
3 files changed, 5118 insertions(+), 933 deletions(-)
diff --git a/docs/static/resources/openapi.json b/docs/static/resources/openapi.json
index 39ce30517..60c25fc51 100644
--- a/docs/static/resources/openapi.json
+++ b/docs/static/resources/openapi.json
@@ -100,8 +100,13 @@
"QUERY_SECURITY_ACCESS_ERROR",
"MISSING_OWNERSHIP_ERROR",
"USER_ACTIVITY_SECURITY_ACCESS_ERROR",
+ "DASHBOARD_SECURITY_ACCESS_ERROR",
+ "CHART_SECURITY_ACCESS_ERROR",
+ "OAUTH2_REDIRECT",
+ "OAUTH2_REDIRECT_ERROR",
"BACKEND_TIMEOUT_ERROR",
"DATABASE_NOT_FOUND_ERROR",
+ "TABLE_NOT_FOUND_ERROR",
"MISSING_TEMPLATE_PARAMS_ERROR",
"INVALID_TEMPLATE_PARAMS_ERROR",
"RESULTS_BACKEND_NOT_CONFIGURED_ERROR",
@@ -112,12 +117,14 @@
"RESULTS_BACKEND_ERROR",
"ASYNC_WORKERS_ERROR",
"ADHOC_SUBQUERY_NOT_ALLOWED_ERROR",
+ "INVALID_SQL_ERROR",
+ "RESULT_TOO_LARGE_ERROR",
"GENERIC_COMMAND_ERROR",
"GENERIC_BACKEND_ERROR",
"INVALID_PAYLOAD_FORMAT_ERROR",
"INVALID_PAYLOAD_SCHEMA_ERROR",
- "REPORT_NOTIFICATION_ERROR",
- "RESULT_TOO_LARGE_ERROR"
+ "MARSHMALLOW_ERROR",
+ "REPORT_NOTIFICATION_ERROR"
],
"type": "string"
},
@@ -125,7 +132,11 @@
"type": "object"
},
"level": {
- "enum": ["info", "warning", "error"],
+ "enum": [
+ "info",
+ "warning",
+ "error"
+ ],
"type": "string"
},
"message": {
@@ -207,7 +218,12 @@
"properties": {
"annotationType": {
"description": "Type of annotation layer",
- "enum": ["FORMULA", "INTERVAL", "EVENT", "TIME_SERIES"],
+ "enum": [
+ "FORMULA",
+ "INTERVAL",
+ "EVENT",
+ "TIME_SERIES"
+ ],
"type": "string"
},
"color": {
@@ -238,7 +254,12 @@
},
"opacity": {
"description": "Opacity of layer",
- "enum": ["", "opacityLow", "opacityMedium", "opacityHigh"],
+ "enum": [
+ "",
+ "opacityLow",
+ "opacityMedium",
+ "opacityHigh"
+ ],
"nullable": true,
"type": "string"
},
@@ -265,12 +286,22 @@
},
"sourceType": {
"description": "Type of source for annotation data",
- "enum": ["", "line", "NATIVE", "table"],
+ "enum": [
+ "",
+ "line",
+ "NATIVE",
+ "table"
+ ],
"type": "string"
},
"style": {
"description": "Line style. Only applies to time-series annotations",
- "enum": ["dashed", "dotted", "solid", "longDashed"],
+ "enum": [
+ "dashed",
+ "dotted",
+ "solid",
+ "longDashed"
+ ],
"type": "string"
},
"timeColumn": {
@@ -292,7 +323,12 @@
"type": "number"
}
},
- "required": ["name", "show", "showMarkers", "value"],
+ "required": [
+ "name",
+ "show",
+ "showMarkers",
+ "value"
+ ],
"type": "object"
},
"AnnotationLayerRestApi.get": {
@@ -359,7 +395,10 @@
"type": "string"
}
},
- "required": ["first_name", "last_name"],
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
"AnnotationLayerRestApi.get_list.User1": {
@@ -373,7 +412,10 @@
"type": "string"
}
},
- "required": ["first_name", "last_name"],
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
"AnnotationLayerRestApi.post": {
@@ -390,7 +432,9 @@
"type": "string"
}
},
- "required": ["name"],
+ "required": [
+ "name"
+ ],
"type": "object"
},
"AnnotationLayerRestApi.put": {
@@ -440,7 +484,9 @@
"type": "string"
}
},
- "required": ["layer"],
+ "required": [
+ "layer"
+ ],
"type": "object"
},
"AnnotationRestApi.get.AnnotationLayer": {
@@ -459,13 +505,13 @@
"AnnotationRestApi.get_list": {
"properties": {
"changed_by": {
- "$ref": "#/components/schemas/AnnotationRestApi.get_list.User1"
+ "$ref": "#/components/schemas/AnnotationRestApi.get_list.User"
},
"changed_on_delta_humanized": {
"readOnly": true
},
"created_by": {
- "$ref": "#/components/schemas/AnnotationRestApi.get_list.User"
+ "$ref": "#/components/schemas/AnnotationRestApi.get_list.User1"
},
"end_dttm": {
"format": "date-time",
@@ -502,7 +548,9 @@
"type": "integer"
}
},
- "required": ["first_name"],
+ "required": [
+ "first_name"
+ ],
"type": "object"
},
"AnnotationRestApi.get_list.User1": {
@@ -515,7 +563,9 @@
"type": "integer"
}
},
- "required": ["first_name"],
+ "required": [
+ "first_name"
+ ],
"type": "object"
},
"AnnotationRestApi.post": {
@@ -547,7 +597,11 @@
"type": "string"
}
},
- "required": ["end_dttm", "short_descr", "start_dttm"],
+ "required": [
+ "end_dttm",
+ "short_descr",
+ "start_dttm"
+ ],
"type": "object"
},
"AnnotationRestApi.put": {
@@ -581,6 +635,37 @@
},
"type": "object"
},
+ "AppleHealthResponseSchema": {
+ "properties": {
+ "cache_message": {
+ "description": "Human readable status message for the cache connection",
+ "type": "string"
+ },
+ "cache_status": {
+ "description": "The status of the cache",
+ "enum": [
+ "NA",
+ "HEALTHY",
+ "ERROR"
+ ],
+ "type": "string"
+ },
+ "metastore_message": {
+ "description": "Human readable status message for the metastore connection",
+ "type": "string"
+ },
+ "metastore_status": {
+ "description": "The status of the metastore",
+ "enum": [
+ "NA",
+ "HEALTHY",
+ "ERROR"
+ ],
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
"AvailableDomainsSchema": {
"properties": {
"domains": {
@@ -592,10 +677,136 @@
},
"type": "object"
},
+ "CSVMetadataUploadFilePostSchema": {
+ "properties": {
+ "delimiter": {
+ "description": "The delimiter of the CSV file",
+ "type": "string"
+ },
+ "file": {
+ "description": "The file to upload",
+ "format": "binary",
+ "type": "string"
+ },
+ "header_row": {
+ "description": "Row containing the headers to use as column names(0 is first line of data). Leave empty if there is no header row.",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "file"
+ ],
+ "type": "object"
+ },
+ "CSVUploadPostSchema": {
+ "properties": {
+ "already_exists": {
+ "default": "fail",
+ "description": "What to do if the table already exists accepts: fail, replace, append",
+ "enum": [
+ "fail",
+ "replace",
+ "append"
+ ],
+ "type": "string"
+ },
+ "column_data_types": {
+ "description": "A dictionary with column names and their data types if you need to change the defaults. Example: {'user_id':'int'}. Check Python Pandas library for supported data types",
+ "type": "string"
+ },
+ "column_dates": {
+ "description": "A list of column names that should be parsed as dates. Example: date,timestamp",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "columns_read": {
+ "description": "A List of the column names that should be read",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "dataframe_index": {
+ "description": "Write dataframe index as a column.",
+ "type": "boolean"
+ },
+ "day_first": {
+ "description": "DD/MM format dates, international and European format",
+ "type": "boolean"
+ },
+ "decimal_character": {
+ "description": "Character to recognize as decimal point. Default is '.'",
+ "type": "string"
+ },
+ "delimiter": {
+ "description": "The delimiter of the CSV file",
+ "type": "string"
+ },
+ "file": {
+ "description": "The CSV file to upload",
+ "format": "text/csv",
+ "type": "string"
+ },
+ "header_row": {
+ "description": "Row containing the headers to use as column names(0 is first line of data). Leave empty if there is no header row.",
+ "type": "integer"
+ },
+ "index_column": {
+ "description": "Column to use as the row labels of the dataframe. Leave empty if no index column",
+ "type": "string"
+ },
+ "index_label": {
+ "description": "Index label for index column.",
+ "type": "string"
+ },
+ "null_values": {
+ "description": "A list of strings that should be treated as null. Examples: '' for empty strings, 'None', 'N/A',Warning: Hive database supports only a single value",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "rows_to_read": {
+ "description": "Number of rows to read from the file. If None, reads all rows.",
+ "minimum": 1,
+ "nullable": true,
+ "type": "integer"
+ },
+ "schema": {
+ "description": "The schema to upload the data file to.",
+ "type": "string"
+ },
+ "skip_blank_lines": {
+ "description": "Skip blank lines in the CSV file.",
+ "type": "boolean"
+ },
+ "skip_initial_space": {
+ "description": "Skip spaces after delimiter.",
+ "type": "boolean"
+ },
+ "skip_rows": {
+ "description": "Number of rows to skip at start of file.",
+ "type": "integer"
+ },
+ "table_name": {
+ "description": "The name of the table to be created/appended",
+ "maxLength": 10000,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "file",
+ "table_name"
+ ],
+ "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` ",
+ "description": "The uid of the dataset/datasource this new chart will use. A complete datasource identification needs `datasource_uid` ",
"items": {
"type": "string"
},
@@ -643,6 +854,18 @@
},
"type": "object"
},
+ "CatalogsResponseSchema": {
+ "properties": {
+ "result": {
+ "items": {
+ "description": "A database catalog name",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
"ChartCacheScreenshotResponseSchema": {
"properties": {
"cache_key": {
@@ -675,7 +898,9 @@
"type": "string"
}
},
- "required": ["chart_id"],
+ "required": [
+ "chart_id"
+ ],
"type": "object"
},
"ChartCacheWarmUpResponseSchema": {
@@ -711,7 +936,14 @@
"properties": {
"aggregate": {
"description": "Aggregation operator.Only required for simple expression types.",
- "enum": ["AVG", "COUNT", "COUNT_DISTINCT", "MAX", "MIN", "SUM"],
+ "enum": [
+ "AVG",
+ "COUNT",
+ "COUNT_DISTINCT",
+ "MAX",
+ "MIN",
+ "SUM"
+ ],
"type": "string"
},
"column": {
@@ -719,7 +951,10 @@
},
"expressionType": {
"description": "Simple or SQL metric",
- "enum": ["SIMPLE", "SQL"],
+ "enum": [
+ "SIMPLE",
+ "SQL"
+ ],
"example": "SQL",
"type": "string"
},
@@ -753,7 +988,9 @@
"type": "string"
}
},
- "required": ["expressionType"],
+ "required": [
+ "expressionType"
+ ],
"type": "object"
},
"ChartDataAggregateOptionsSchema": {
@@ -818,16 +1055,25 @@
},
"percentiles": {
"description": "Upper and lower percentiles for percentile whisker type.",
- "example": [1, 99]
+ "example": [
+ 1,
+ 99
+ ]
},
"whisker_type": {
"description": "Whisker type. Any numpy function will work.",
- "enum": ["tukey", "min/max", "percentile"],
+ "enum": [
+ "tukey",
+ "min/max",
+ "percentile"
+ ],
"example": "tukey",
"type": "string"
}
},
- "required": ["whisker_type"],
+ "required": [
+ "whisker_type"
+ ],
"type": "object"
},
"ChartDataColumn": {
@@ -849,12 +1095,17 @@
"properties": {
"orientation": {
"description": "Should cell values be calculated across the row or column.",
- "enum": ["row", "column"],
+ "enum": [
+ "row",
+ "column"
+ ],
"example": "row",
"type": "string"
}
},
- "required": ["orientation"],
+ "required": [
+ "orientation"
+ ],
"type": "object"
},
"ChartDataDatasource": {
@@ -866,7 +1117,6 @@
"type": {
"description": "Datasource type",
"enum": [
- "sl_table",
"table",
"dataset",
"query",
@@ -876,7 +1126,9 @@
"type": "string"
}
},
- "required": ["id"],
+ "required": [
+ "id"
+ ],
"type": "object"
},
"ChartDataExtras": {
@@ -885,14 +1137,25 @@
"description": "HAVING clause to be added to aggregate queries using AND operator.",
"type": "string"
},
+ "instant_time_comparison_range": {
+ "description": "This is only set using the new time comparison controls that is made available in some plugins behind the experimental feature flag.",
+ "nullable": true,
+ "type": "string"
+ },
"relative_end": {
"description": "End time for relative time deltas. Default: `config[\"DEFAULT_RELATIVE_START_TIME\"]`",
- "enum": ["today", "now"],
+ "enum": [
+ "today",
+ "now"
+ ],
"type": "string"
},
"relative_start": {
"description": "Start time for relative time deltas. Default: `config[\"DEFAULT_RELATIVE_START_TIME\"]`",
- "enum": ["today", "now"],
+ "enum": [
+ "today",
+ "now"
+ ],
"type": "string"
},
"time_grain_sqla": {
@@ -916,12 +1179,7 @@
"1969-12-28T00:00:00Z/P1W",
"1969-12-29T00:00:00Z/P1W",
"P1W/1970-01-03T00:00:00Z",
- "P1W/1970-01-04T00:00:00Z",
- "PT2H",
- "PT4H",
- "PT8H",
- "PT10H",
- "PT12H"
+ "P1W/1970-01-04T00:00:00Z"
],
"example": "P1D",
"nullable": true,
@@ -959,6 +1217,7 @@
">=",
"<=",
"LIKE",
+ "NOT LIKE",
"ILIKE",
"IS NULL",
"IS NOT NULL",
@@ -973,11 +1232,18 @@
},
"val": {
"description": "The value or values to compare against. Can be a string, integer, decimal, None or list, depending on the operator.",
- "example": ["China", "France", "Japan"],
+ "example": [
+ "China",
+ "France",
+ "Japan"
+ ],
"nullable": true
}
},
- "required": ["col", "op"],
+ "required": [
+ "col",
+ "op"
+ ],
"type": "object"
},
"ChartDataGeodeticParseOptionsSchema": {
@@ -999,7 +1265,11 @@
"type": "string"
}
},
- "required": ["geodetic", "latitude", "longitude"],
+ "required": [
+ "geodetic",
+ "latitude",
+ "longitude"
+ ],
"type": "object"
},
"ChartDataGeohashDecodeOptionsSchema": {
@@ -1017,7 +1287,11 @@
"type": "string"
}
},
- "required": ["geohash", "latitude", "longitude"],
+ "required": [
+ "geohash",
+ "latitude",
+ "longitude"
+ ],
"type": "object"
},
"ChartDataGeohashEncodeOptionsSchema": {
@@ -1035,7 +1309,11 @@
"type": "string"
}
},
- "required": ["geohash", "latitude", "longitude"],
+ "required": [
+ "geohash",
+ "latitude",
+ "longitude"
+ ],
"type": "object"
},
"ChartDataPivotOptionsSchema": {
@@ -1099,8 +1377,10 @@
"geodetic_parse",
"geohash_decode",
"geohash_encode",
+ "histogram",
"pivot",
"prophet",
+ "rank",
"rename",
"resample",
"rolling",
@@ -1127,12 +1407,17 @@
}
}
},
- "groupby": ["country", "gender"]
+ "groupby": [
+ "country",
+ "gender"
+ ]
},
"type": "object"
}
},
- "required": ["operation"],
+ "required": [
+ "operation"
+ ],
"type": "object"
},
"ChartDataProphetOptionsSchema": {
@@ -1174,12 +1459,7 @@
"1969-12-28T00:00:00Z/P1W",
"1969-12-29T00:00:00Z/P1W",
"P1W/1970-01-03T00:00:00Z",
- "P1W/1970-01-04T00:00:00Z",
- "PT2H",
- "PT4H",
- "PT8H",
- "PT10H",
- "PT12H"
+ "P1W/1970-01-04T00:00:00Z"
],
"example": "P1D",
"type": "string"
@@ -1193,7 +1473,11 @@
"example": false
}
},
- "required": ["confidence_interval", "periods", "time_grain"],
+ "required": [
+ "confidence_interval",
+ "periods",
+ "time_grain"
+ ],
"type": "object"
},
"ChartDataQueryContextSchema": {
@@ -1221,7 +1505,11 @@
"type": "array"
},
"result_format": {
- "enum": ["csv", "json", "xlsx"]
+ "enum": [
+ "csv",
+ "json",
+ "xlsx"
+ ]
},
"result_type": {
"enum": [
@@ -1338,8 +1626,14 @@
"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]
+ [
+ "my_col_1",
+ false
+ ],
+ [
+ "my_col_2",
+ true
+ ]
],
"items": {},
"nullable": true,
@@ -1604,7 +1898,7 @@
"type": "boolean"
},
"owners": {
- "$ref": "#/components/schemas/ChartDataRestApi.get.User"
+ "$ref": "#/components/schemas/ChartDataRestApi.get.AppleUser"
},
"params": {
"nullable": true,
@@ -1636,6 +1930,26 @@
},
"type": "object"
},
+ "ChartDataRestApi.get.AppleUser": {
+ "properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": [
+ "first_name",
+ "last_name"
+ ],
+ "type": "object"
+ },
"ChartDataRestApi.get.Dashboard": {
"properties": {
"dashboard_title": {
@@ -1664,28 +1978,16 @@
"type": "string"
},
"type": {
- "enum": [1, 2, 3, 4]
+ "enum": [
+ 1,
+ 2,
+ 3,
+ 4
+ ]
}
},
"type": "object"
},
- "ChartDataRestApi.get.User": {
- "properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
- },
- "id": {
- "type": "integer"
- },
- "last_name": {
- "maxLength": 64,
- "type": "string"
- }
- },
- "required": ["first_name", "last_name"],
- "type": "object"
- },
"ChartDataRestApi.get_list": {
"properties": {
"cache_timeout": {
@@ -1701,7 +2003,7 @@
"type": "string"
},
"changed_by": {
- "$ref": "#/components/schemas/ChartDataRestApi.get_list.User3"
+ "$ref": "#/components/schemas/ChartDataRestApi.get_list.User"
},
"changed_by_name": {
"readOnly": true
@@ -1716,7 +2018,7 @@
"readOnly": true
},
"created_by": {
- "$ref": "#/components/schemas/ChartDataRestApi.get_list.User"
+ "$ref": "#/components/schemas/ChartDataRestApi.get_list.User1"
},
"created_by_name": {
"readOnly": true
@@ -1767,10 +2069,10 @@
"type": "string"
},
"last_saved_by": {
- "$ref": "#/components/schemas/ChartDataRestApi.get_list.User2"
+ "$ref": "#/components/schemas/ChartDataRestApi.get_list.AppleUser"
},
"owners": {
- "$ref": "#/components/schemas/ChartDataRestApi.get_list.User1"
+ "$ref": "#/components/schemas/ChartDataRestApi.get_list.AppleUser1"
},
"params": {
"nullable": true,
@@ -1804,6 +2106,46 @@
},
"type": "object"
},
+ "ChartDataRestApi.get_list.AppleUser": {
+ "properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": [
+ "first_name",
+ "last_name"
+ ],
+ "type": "object"
+ },
+ "ChartDataRestApi.get_list.AppleUser1": {
+ "properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": [
+ "first_name",
+ "last_name"
+ ],
+ "type": "object"
+ },
"ChartDataRestApi.get_list.Dashboard": {
"properties": {
"dashboard_title": {
@@ -1828,7 +2170,9 @@
"type": "string"
}
},
- "required": ["table_name"],
+ "required": [
+ "table_name"
+ ],
"type": "object"
},
"ChartDataRestApi.get_list.Tag": {
@@ -1842,7 +2186,12 @@
"type": "string"
},
"type": {
- "enum": [1, 2, 3, 4]
+ "enum": [
+ 1,
+ 2,
+ 3,
+ 4
+ ]
}
},
"type": "object"
@@ -1861,7 +2210,10 @@
"type": "string"
}
},
- "required": ["first_name", "last_name"],
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
"ChartDataRestApi.get_list.User1": {
@@ -1878,38 +2230,10 @@
"type": "string"
}
},
- "required": ["first_name", "last_name"],
- "type": "object"
- },
- "ChartDataRestApi.get_list.User2": {
- "properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
- },
- "id": {
- "type": "integer"
- },
- "last_name": {
- "maxLength": 64,
- "type": "string"
- }
- },
- "required": ["first_name", "last_name"],
- "type": "object"
- },
- "ChartDataRestApi.get_list.User3": {
- "properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
- },
- "last_name": {
- "maxLength": 64,
- "type": "string"
- }
- },
- "required": ["first_name", "last_name"],
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
"ChartDataRestApi.post": {
@@ -1948,7 +2272,6 @@
"datasource_type": {
"description": "The type of dataset/datasource identified on `datasource_id`.",
"enum": [
- "sl_table",
"table",
"dataset",
"query",
@@ -1988,7 +2311,7 @@
"type": "string"
},
"query_context_generation": {
- "description": "The query context generation represents whether the query_contextis user generated or not so that it does not update user modfiedstate.",
+ "description": "The query context generation represents whether the query_contextis user generated or not so that it does not update user modifiedstate.",
"nullable": true,
"type": "boolean"
},
@@ -2000,13 +2323,21 @@
},
"viz_type": {
"description": "The type of chart visualization used.",
- "example": ["bar", "area", "table"],
+ "example": [
+ "bar",
+ "area",
+ "table"
+ ],
"maxLength": 250,
"minLength": 0,
"type": "string"
}
},
- "required": ["datasource_id", "datasource_type", "slice_name"],
+ "required": [
+ "datasource_id",
+ "datasource_type",
+ "slice_name"
+ ],
"type": "object"
},
"ChartDataRestApi.put": {
@@ -2041,7 +2372,6 @@
"datasource_type": {
"description": "The type of dataset/datasource identified on `datasource_id`.",
"enum": [
- "sl_table",
"table",
"dataset",
"query",
@@ -2082,7 +2412,7 @@
"type": "string"
},
"query_context_generation": {
- "description": "The query context generation represents whether the query_contextis user generated or not so that it does not update user modfiedstate.",
+ "description": "The query context generation represents whether the query_contextis user generated or not so that it does not update user modifiedstate.",
"nullable": true,
"type": "boolean"
},
@@ -2095,13 +2425,18 @@
},
"tags": {
"items": {
- "$ref": "#/components/schemas/Tag"
+ "description": "Tags to be associated with the chart",
+ "type": "integer"
},
"type": "array"
},
"viz_type": {
"description": "The type of chart visualization used.",
- "example": ["bar", "area", "table"],
+ "example": [
+ "bar",
+ "area",
+ "table"
+ ],
"maxLength": 250,
"minLength": 0,
"nullable": true,
@@ -2182,14 +2517,21 @@
"type": "integer"
}
},
- "required": ["rolling_type", "window"],
+ "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"],
+ "example": [
+ "country",
+ "gender",
+ "age"
+ ],
"items": {
"type": "string"
},
@@ -2197,7 +2539,9 @@
},
"exclude": {
"description": "Columns to exclude from selection.",
- "example": ["my_temp_column"],
+ "example": [
+ "my_temp_column"
+ ],
"items": {
"type": "string"
},
@@ -2242,7 +2586,9 @@
"type": "object"
}
},
- "required": ["columns"],
+ "required": [
+ "columns"
+ ],
"type": "object"
},
"ChartEntityResponseSchema": {
@@ -2372,7 +2718,7 @@
"type": "boolean"
},
"owners": {
- "$ref": "#/components/schemas/ChartRestApi.get.User"
+ "$ref": "#/components/schemas/ChartRestApi.get.AppleUser"
},
"params": {
"nullable": true,
@@ -2404,6 +2750,26 @@
},
"type": "object"
},
+ "ChartRestApi.get.AppleUser": {
+ "properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": [
+ "first_name",
+ "last_name"
+ ],
+ "type": "object"
+ },
"ChartRestApi.get.Dashboard": {
"properties": {
"dashboard_title": {
@@ -2432,28 +2798,16 @@
"type": "string"
},
"type": {
- "enum": [1, 2, 3, 4]
+ "enum": [
+ 1,
+ 2,
+ 3,
+ 4
+ ]
}
},
"type": "object"
},
- "ChartRestApi.get.User": {
- "properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
- },
- "id": {
- "type": "integer"
- },
- "last_name": {
- "maxLength": 64,
- "type": "string"
- }
- },
- "required": ["first_name", "last_name"],
- "type": "object"
- },
"ChartRestApi.get_list": {
"properties": {
"cache_timeout": {
@@ -2469,7 +2823,7 @@
"type": "string"
},
"changed_by": {
- "$ref": "#/components/schemas/ChartRestApi.get_list.User3"
+ "$ref": "#/components/schemas/ChartRestApi.get_list.User"
},
"changed_by_name": {
"readOnly": true
@@ -2484,7 +2838,7 @@
"readOnly": true
},
"created_by": {
- "$ref": "#/components/schemas/ChartRestApi.get_list.User"
+ "$ref": "#/components/schemas/ChartRestApi.get_list.User1"
},
"created_by_name": {
"readOnly": true
@@ -2535,10 +2889,10 @@
"type": "string"
},
"last_saved_by": {
- "$ref": "#/components/schemas/ChartRestApi.get_list.User2"
+ "$ref": "#/components/schemas/ChartRestApi.get_list.AppleUser"
},
"owners": {
- "$ref": "#/components/schemas/ChartRestApi.get_list.User1"
+ "$ref": "#/components/schemas/ChartRestApi.get_list.AppleUser1"
},
"params": {
"nullable": true,
@@ -2572,6 +2926,46 @@
},
"type": "object"
},
+ "ChartRestApi.get_list.AppleUser": {
+ "properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": [
+ "first_name",
+ "last_name"
+ ],
+ "type": "object"
+ },
+ "ChartRestApi.get_list.AppleUser1": {
+ "properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": [
+ "first_name",
+ "last_name"
+ ],
+ "type": "object"
+ },
"ChartRestApi.get_list.Dashboard": {
"properties": {
"dashboard_title": {
@@ -2596,7 +2990,9 @@
"type": "string"
}
},
- "required": ["table_name"],
+ "required": [
+ "table_name"
+ ],
"type": "object"
},
"ChartRestApi.get_list.Tag": {
@@ -2610,7 +3006,12 @@
"type": "string"
},
"type": {
- "enum": [1, 2, 3, 4]
+ "enum": [
+ 1,
+ 2,
+ 3,
+ 4
+ ]
}
},
"type": "object"
@@ -2629,7 +3030,10 @@
"type": "string"
}
},
- "required": ["first_name", "last_name"],
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
"ChartRestApi.get_list.User1": {
@@ -2646,38 +3050,10 @@
"type": "string"
}
},
- "required": ["first_name", "last_name"],
- "type": "object"
- },
- "ChartRestApi.get_list.User2": {
- "properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
- },
- "id": {
- "type": "integer"
- },
- "last_name": {
- "maxLength": 64,
- "type": "string"
- }
- },
- "required": ["first_name", "last_name"],
- "type": "object"
- },
- "ChartRestApi.get_list.User3": {
- "properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
- },
- "last_name": {
- "maxLength": 64,
- "type": "string"
- }
- },
- "required": ["first_name", "last_name"],
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
"ChartRestApi.post": {
@@ -2716,7 +3092,6 @@
"datasource_type": {
"description": "The type of dataset/datasource identified on `datasource_id`.",
"enum": [
- "sl_table",
"table",
"dataset",
"query",
@@ -2756,7 +3131,7 @@
"type": "string"
},
"query_context_generation": {
- "description": "The query context generation represents whether the query_contextis user generated or not so that it does not update user modfiedstate.",
+ "description": "The query context generation represents whether the query_contextis user generated or not so that it does not update user modifiedstate.",
"nullable": true,
"type": "boolean"
},
@@ -2768,13 +3143,21 @@
},
"viz_type": {
"description": "The type of chart visualization used.",
- "example": ["bar", "area", "table"],
+ "example": [
+ "bar",
+ "area",
+ "table"
+ ],
"maxLength": 250,
"minLength": 0,
"type": "string"
}
},
- "required": ["datasource_id", "datasource_type", "slice_name"],
+ "required": [
+ "datasource_id",
+ "datasource_type",
+ "slice_name"
+ ],
"type": "object"
},
"ChartRestApi.put": {
@@ -2809,7 +3192,6 @@
"datasource_type": {
"description": "The type of dataset/datasource identified on `datasource_id`.",
"enum": [
- "sl_table",
"table",
"dataset",
"query",
@@ -2850,7 +3232,7 @@
"type": "string"
},
"query_context_generation": {
- "description": "The query context generation represents whether the query_contextis user generated or not so that it does not update user modfiedstate.",
+ "description": "The query context generation represents whether the query_contextis user generated or not so that it does not update user modifiedstate.",
"nullable": true,
"type": "boolean"
},
@@ -2863,13 +3245,18 @@
},
"tags": {
"items": {
- "$ref": "#/components/schemas/Tag"
+ "description": "Tags to be associated with the chart",
+ "type": "integer"
},
"type": "array"
},
"viz_type": {
"description": "The type of chart visualization used.",
- "example": ["bar", "area", "table"],
+ "example": [
+ "bar",
+ "area",
+ "table"
+ ],
"maxLength": 250,
"minLength": 0,
"nullable": true,
@@ -2878,11 +3265,79 @@
},
"type": "object"
},
+ "ColumnarMetadataUploadFilePostSchema": {
+ "properties": {
+ "file": {
+ "description": "The file to upload",
+ "format": "binary",
+ "type": "string"
+ }
+ },
+ "required": [
+ "file"
+ ],
+ "type": "object"
+ },
+ "ColumnarUploadPostSchema": {
+ "properties": {
+ "already_exists": {
+ "default": "fail",
+ "description": "What to do if the table already exists accepts: fail, replace, append",
+ "enum": [
+ "fail",
+ "replace",
+ "append"
+ ],
+ "type": "string"
+ },
+ "columns_read": {
+ "description": "A List of the column names that should be read",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "dataframe_index": {
+ "description": "Write dataframe index as a column.",
+ "type": "boolean"
+ },
+ "file": {
+ "description": "The Columnar file to upload",
+ "format": "binary",
+ "type": "string"
+ },
+ "index_label": {
+ "description": "Index label for index column.",
+ "type": "string"
+ },
+ "schema": {
+ "description": "The schema to upload the data file to.",
+ "type": "string"
+ },
+ "table_name": {
+ "description": "The name of the table to be created/appended",
+ "maxLength": 10000,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "file",
+ "table_name"
+ ],
+ "type": "object"
+ },
"CssTemplateRestApi.get": {
"properties": {
- "created_by": {
+ "changed_by": {
"$ref": "#/components/schemas/CssTemplateRestApi.get.User"
},
+ "changed_on_delta_humanized": {
+ "readOnly": true
+ },
+ "created_by": {
+ "$ref": "#/components/schemas/CssTemplateRestApi.get.User1"
+ },
"css": {
"nullable": true,
"type": "string"
@@ -2912,19 +3367,42 @@
"type": "string"
}
},
- "required": ["first_name", "last_name"],
+ "required": [
+ "first_name",
+ "last_name"
+ ],
+ "type": "object"
+ },
+ "CssTemplateRestApi.get.User1": {
+ "properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
"CssTemplateRestApi.get_list": {
"properties": {
"changed_by": {
- "$ref": "#/components/schemas/CssTemplateRestApi.get_list.User1"
+ "$ref": "#/components/schemas/CssTemplateRestApi.get_list.User"
},
"changed_on_delta_humanized": {
"readOnly": true
},
"created_by": {
- "$ref": "#/components/schemas/CssTemplateRestApi.get_list.User"
+ "$ref": "#/components/schemas/CssTemplateRestApi.get_list.User1"
},
"created_on": {
"format": "date-time",
@@ -2960,7 +3438,10 @@
"type": "string"
}
},
- "required": ["first_name", "last_name"],
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
"CssTemplateRestApi.get_list.User1": {
@@ -2977,7 +3458,10 @@
"type": "string"
}
},
- "required": ["first_name", "last_name"],
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
"CssTemplateRestApi.post": {
@@ -3008,31 +3492,21 @@
},
"type": "object"
},
- "DashboardNativeFiltersConfigUpdateSchema": {
+ "DashboardCacheScreenshotResponseSchema": {
"properties": {
- "deleted": {
- "description": "List of filter ids to delete",
- "items": {
- "type": "integer"
- },
- "type": "array"
+ "cache_key": {
+ "description": "The cache key",
+ "type": "string"
},
- "modified": {
- "description": "List of filter objects to update",
- "items": {
- "type": "object"
- },
- "type": "array"
+ "dashboard_url": {
+ "description": "The url to render the dashboard",
+ "type": "string"
},
- "reordered": {
- "description": "List of filter ids in the new order",
- "items": {
- "type": "integer"
- },
- "type": "array"
+ "image_url": {
+ "description": "The url to fetch the screenshot",
+ "type": "string"
}
},
- "required": ["deleted", "modified", "reordered"],
"type": "object"
},
"DashboardCopySchema": {
@@ -3057,17 +3531,28 @@
"type": "string"
}
},
- "required": ["json_metadata"],
+ "required": [
+ "json_metadata"
+ ],
"type": "object"
},
"DashboardDatasetSchema": {
"properties": {
+ "always_filter_main_dttm": {
+ "type": "boolean"
+ },
"cache_timeout": {
"type": "integer"
},
"column_formats": {
"type": "object"
},
+ "column_names": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
"column_types": {
"items": {
"type": "integer"
@@ -3080,12 +3565,6 @@
},
"type": "array"
},
- "column_names": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
"currency_formats": {
"type": "object"
},
@@ -3140,6 +3619,9 @@
"name": {
"type": "string"
},
+ "normalize_columns": {
+ "type": "boolean"
+ },
"offset": {
"type": "integer"
},
@@ -3233,6 +3715,12 @@
},
"type": "array"
},
+ "created_by": {
+ "$ref": "#/components/schemas/User"
+ },
+ "created_on_delta_humanized": {
+ "type": "string"
+ },
"css": {
"description": "Override CSS for the dashboard.",
"type": "string"
@@ -3276,7 +3764,7 @@
},
"tags": {
"items": {
- "$ref": "#/components/schemas/Tag1"
+ "$ref": "#/components/schemas/Tag"
},
"type": "array"
},
@@ -3340,7 +3828,7 @@
"type": "string"
},
"changed_by": {
- "$ref": "#/components/schemas/DashboardRestApi.get_list.User2"
+ "$ref": "#/components/schemas/DashboardRestApi.get_list.User"
},
"changed_by_name": {
"readOnly": true
@@ -3352,7 +3840,7 @@
"readOnly": true
},
"created_by": {
- "$ref": "#/components/schemas/DashboardRestApi.get_list.User"
+ "$ref": "#/components/schemas/DashboardRestApi.get_list.User1"
},
"created_on_delta_humanized": {
"readOnly": true
@@ -3377,7 +3865,7 @@
"type": "string"
},
"owners": {
- "$ref": "#/components/schemas/DashboardRestApi.get_list.User1"
+ "$ref": "#/components/schemas/DashboardRestApi.get_list.AppleUser"
},
"position_json": {
"nullable": true,
@@ -3410,6 +3898,26 @@
},
"type": "object"
},
+ "DashboardRestApi.get_list.AppleUser": {
+ "properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": [
+ "first_name",
+ "last_name"
+ ],
+ "type": "object"
+ },
"DashboardRestApi.get_list.Role": {
"properties": {
"id": {
@@ -3420,7 +3928,9 @@
"type": "string"
}
},
- "required": ["name"],
+ "required": [
+ "name"
+ ],
"type": "object"
},
"DashboardRestApi.get_list.Tag": {
@@ -3434,7 +3944,12 @@
"type": "string"
},
"type": {
- "enum": [1, 2, 3, 4]
+ "enum": [
+ 1,
+ 2,
+ 3,
+ 4
+ ]
}
},
"type": "object"
@@ -3453,7 +3968,10 @@
"type": "string"
}
},
- "required": ["first_name", "last_name"],
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
"DashboardRestApi.get_list.User1": {
@@ -3470,24 +3988,10 @@
"type": "string"
}
},
- "required": ["first_name", "last_name"],
- "type": "object"
- },
- "DashboardRestApi.get_list.User2": {
- "properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
- },
- "id": {
- "type": "integer"
- },
- "last_name": {
- "maxLength": 64,
- "type": "string"
- }
- },
- "required": ["first_name", "last_name"],
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
"DashboardRestApi.post": {
@@ -3626,12 +4130,23 @@
"minLength": 0,
"nullable": true,
"type": "string"
+ },
+ "tags": {
+ "items": {
+ "description": "Tags to be associated with the dashboard",
+ "nullable": true,
+ "type": "integer"
+ },
+ "type": "array"
}
},
"type": "object"
},
"Database": {
"properties": {
+ "allow_multi_catalog": {
+ "type": "boolean"
+ },
"allows_cost_estimate": {
"type": "boolean"
},
@@ -3719,15 +4234,14 @@
"type": "string"
},
"engine_information": {
- "additionalProperties": {},
- "type": "object"
+ "$ref": "#/components/schemas/EngineInformation"
},
"expose_in_sqllab": {
"description": "Expose this database to SQLLab",
"type": "boolean"
},
"extra": {
- "description": "
JSON string containing extra configuration elements.
1. The engine_params object gets unpacked into the sqlalchemy.create_engine call, while the metadata_params gets unpacked into the sqlalchemy.MetaData call.
2. The metadata_cache_timeout is a cache timeout setting in seconds for metadata fetch of this database. Specify it as \"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.
3. The schemas_allowed_for_file_upload is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as \"schemas_allowed_for_file_upload\": [\"public\", \"csv_upload\"]. If database flavor does not support schema or any schema is allowed to be accessed, just leave the list empty
4. The version field is a string specifying the this db's version. This should be used with Presto DBs so that the syntax is correct
5. The allows_virtual_table_explore field is a boolean specifying whether or not the Explore button in SQL Lab results is shown.
6. The disable_data_preview field is a boolean specifying whether or not data preview queries will be run when fetching table metadata in SQL Lab.
",
+ "description": "JSON string containing extra configuration elements.
1. The engine_params object gets unpacked into the sqlalchemy.create_engine call, while the metadata_params gets unpacked into the sqlalchemy.MetaData call.
2. The metadata_cache_timeout is a cache timeout setting in seconds for metadata fetch of this database. Specify it as \"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.
3. The schemas_allowed_for_file_upload is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as \"schemas_allowed_for_file_upload\": [\"public\", \"csv_upload\"]. If database flavor does not support schema or any schema is allowed to be accessed, just leave the list empty
4. The version field is a string specifying the this db's version. This should be used with Presto DBs so that the syntax is correct
5. The allows_virtual_table_explore field is a boolean specifying whether or not the Explore button in SQL Lab results is shown.
6. The disable_data_preview field is a boolean specifying whether or not data preview queries will be run when fetching table metadata in SQL Lab.7. The disable_drill_to_detail field is a boolean specifying whether or notdrill to detail is disabled for the database.8. The allow_multi_catalog indicates if the database allows changing the default catalog when running queries and creating datasets.
",
"type": "string"
},
"force_ctas_schema": {
@@ -3943,7 +4457,9 @@
"type": "string"
}
},
- "required": ["database_name"],
+ "required": [
+ "database_name"
+ ],
"type": "object"
},
"DatabaseRestApi.get_list": {
@@ -3964,6 +4480,9 @@
"nullable": true,
"type": "boolean"
},
+ "allow_multi_catalog": {
+ "readOnly": true
+ },
"allow_run_async": {
"nullable": true,
"type": "boolean"
@@ -3980,6 +4499,9 @@
"backend": {
"readOnly": true
},
+ "changed_by": {
+ "$ref": "#/components/schemas/DatabaseRestApi.get_list.User"
+ },
"changed_on": {
"format": "date-time",
"nullable": true,
@@ -3989,7 +4511,7 @@
"readOnly": true
},
"created_by": {
- "$ref": "#/components/schemas/DatabaseRestApi.get_list.User"
+ "$ref": "#/components/schemas/DatabaseRestApi.get_list.User1"
},
"database_name": {
"maxLength": 250,
@@ -3998,6 +4520,9 @@
"disable_data_preview": {
"readOnly": true
},
+ "disable_drill_to_detail": {
+ "readOnly": true
+ },
"engine_information": {
"readOnly": true
},
@@ -4026,7 +4551,9 @@
"type": "string"
}
},
- "required": ["database_name"],
+ "required": [
+ "database_name"
+ ],
"type": "object"
},
"DatabaseRestApi.get_list.User": {
@@ -4040,7 +4567,27 @@
"type": "string"
}
},
- "required": ["first_name", "last_name"],
+ "required": [
+ "first_name",
+ "last_name"
+ ],
+ "type": "object"
+ },
+ "DatabaseRestApi.get_list.User1": {
+ "properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
"DatabaseRestApi.post": {
@@ -4073,7 +4620,10 @@
"configuration_method": {
"default": "sqlalchemy_form",
"description": "Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri.",
- "enum": ["sqlalchemy_form", "dynamic_form"]
+ "enum": [
+ "sqlalchemy_form",
+ "dynamic_form"
+ ]
},
"database_name": {
"description": "A database name to identify this connection.",
@@ -4100,7 +4650,7 @@
"type": "string"
},
"extra": {
- "description": "JSON string containing extra configuration elements.
1. The engine_params object gets unpacked into the sqlalchemy.create_engine call, while the metadata_params gets unpacked into the sqlalchemy.MetaData call.
2. The metadata_cache_timeout is a cache timeout setting in seconds for metadata fetch of this database. Specify it as \"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.
3. The schemas_allowed_for_file_upload is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as \"schemas_allowed_for_file_upload\": [\"public\", \"csv_upload\"]. If database flavor does not support schema or any schema is allowed to be accessed, just leave the list empty
4. The version field is a string specifying the this db's version. This should be used with Presto DBs so that the syntax is correct
5. The allows_virtual_table_explore field is a boolean specifying whether or not the Explore button in SQL Lab results is shown.
6. The disable_data_preview field is a boolean specifying whether or not data preview queries will be run when fetching table metadata in SQL Lab.
",
+ "description": "JSON string containing extra configuration elements.
1. The engine_params object gets unpacked into the sqlalchemy.create_engine call, while the metadata_params gets unpacked into the sqlalchemy.MetaData call.
2. The metadata_cache_timeout is a cache timeout setting in seconds for metadata fetch of this database. Specify it as \"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.
3. The schemas_allowed_for_file_upload is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as \"schemas_allowed_for_file_upload\": [\"public\", \"csv_upload\"]. If database flavor does not support schema or any schema is allowed to be accessed, just leave the list empty
4. The version field is a string specifying the this db's version. This should be used with Presto DBs so that the syntax is correct
5. The allows_virtual_table_explore field is a boolean specifying whether or not the Explore button in SQL Lab results is shown.
6. The disable_data_preview field is a boolean specifying whether or not data preview queries will be run when fetching table metadata in SQL Lab.7. The disable_drill_to_detail field is a boolean specifying whether or notdrill to detail is disabled for the database.8. The allow_multi_catalog indicates if the database allows changing the default catalog when running queries and creating datasets.
",
"type": "string"
},
"force_ctas_schema": {
@@ -4151,7 +4701,9 @@
"type": "string"
}
},
- "required": ["database_name"],
+ "required": [
+ "database_name"
+ ],
"type": "object"
},
"DatabaseRestApi.put": {
@@ -4184,7 +4736,10 @@
"configuration_method": {
"default": "sqlalchemy_form",
"description": "Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri.",
- "enum": ["sqlalchemy_form", "dynamic_form"]
+ "enum": [
+ "sqlalchemy_form",
+ "dynamic_form"
+ ]
},
"database_name": {
"description": "A database name to identify this connection.",
@@ -4212,7 +4767,7 @@
"type": "string"
},
"extra": {
- "description": "JSON string containing extra configuration elements.
1. The engine_params object gets unpacked into the sqlalchemy.create_engine call, while the metadata_params gets unpacked into the sqlalchemy.MetaData call.
2. The metadata_cache_timeout is a cache timeout setting in seconds for metadata fetch of this database. Specify it as \"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.
3. The schemas_allowed_for_file_upload is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as \"schemas_allowed_for_file_upload\": [\"public\", \"csv_upload\"]. If database flavor does not support schema or any schema is allowed to be accessed, just leave the list empty
4. The version field is a string specifying the this db's version. This should be used with Presto DBs so that the syntax is correct
5. The allows_virtual_table_explore field is a boolean specifying whether or not the Explore button in SQL Lab results is shown.
6. The disable_data_preview field is a boolean specifying whether or not data preview queries will be run when fetching table metadata in SQL Lab.
",
+ "description": "JSON string containing extra configuration elements.
1. The engine_params object gets unpacked into the sqlalchemy.create_engine call, while the metadata_params gets unpacked into the sqlalchemy.MetaData call.
2. The metadata_cache_timeout is a cache timeout setting in seconds for metadata fetch of this database. Specify it as \"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.
3. The schemas_allowed_for_file_upload is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as \"schemas_allowed_for_file_upload\": [\"public\", \"csv_upload\"]. If database flavor does not support schema or any schema is allowed to be accessed, just leave the list empty
4. The version field is a string specifying the this db's version. This should be used with Presto DBs so that the syntax is correct
5. The allows_virtual_table_explore field is a boolean specifying whether or not the Explore button in SQL Lab results is shown.
6. The disable_data_preview field is a boolean specifying whether or not data preview queries will be run when fetching table metadata in SQL Lab.7. The disable_drill_to_detail field is a boolean specifying whether or notdrill to detail is disabled for the database.8. The allow_multi_catalog indicates if the database allows changing the default catalog when running queries and creating datasets.
",
"type": "string"
},
"force_ctas_schema": {
@@ -4327,7 +4882,10 @@
"configuration_method": {
"default": "sqlalchemy_form",
"description": "Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri.",
- "enum": ["sqlalchemy_form", "dynamic_form"]
+ "enum": [
+ "sqlalchemy_form",
+ "dynamic_form"
+ ]
},
"database_name": {
"description": "A database name to identify this connection.",
@@ -4347,7 +4905,7 @@
"type": "string"
},
"extra": {
- "description": "JSON string containing extra configuration elements.
1. The engine_params object gets unpacked into the sqlalchemy.create_engine call, while the metadata_params gets unpacked into the sqlalchemy.MetaData call.
2. The metadata_cache_timeout is a cache timeout setting in seconds for metadata fetch of this database. Specify it as \"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.
3. The schemas_allowed_for_file_upload is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as \"schemas_allowed_for_file_upload\": [\"public\", \"csv_upload\"]. If database flavor does not support schema or any schema is allowed to be accessed, just leave the list empty
4. The version field is a string specifying the this db's version. This should be used with Presto DBs so that the syntax is correct
5. The allows_virtual_table_explore field is a boolean specifying whether or not the Explore button in SQL Lab results is shown.
6. The disable_data_preview field is a boolean specifying whether or not data preview queries will be run when fetching table metadata in SQL Lab.
",
+ "description": "JSON string containing extra configuration elements.
1. The engine_params object gets unpacked into the sqlalchemy.create_engine call, while the metadata_params gets unpacked into the sqlalchemy.MetaData call.
2. The metadata_cache_timeout is a cache timeout setting in seconds for metadata fetch of this database. Specify it as \"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.
3. The schemas_allowed_for_file_upload is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as \"schemas_allowed_for_file_upload\": [\"public\", \"csv_upload\"]. If database flavor does not support schema or any schema is allowed to be accessed, just leave the list empty
4. The version field is a string specifying the this db's version. This should be used with Presto DBs so that the syntax is correct
5. The allows_virtual_table_explore field is a boolean specifying whether or not the Explore button in SQL Lab results is shown.
6. The disable_data_preview field is a boolean specifying whether or not data preview queries will be run when fetching table metadata in SQL Lab.7. The disable_drill_to_detail field is a boolean specifying whether or notdrill to detail is disabled for the database.8. The allow_multi_catalog indicates if the database allows changing the default catalog when running queries and creating datasets.
",
"type": "string"
},
"impersonate_user": {
@@ -4397,7 +4955,10 @@
},
"configuration_method": {
"description": "Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri.",
- "enum": ["sqlalchemy_form", "dynamic_form"]
+ "enum": [
+ "sqlalchemy_form",
+ "dynamic_form"
+ ]
},
"database_name": {
"description": "A database name to identify this connection.",
@@ -4416,7 +4977,7 @@
"type": "string"
},
"extra": {
- "description": "JSON string containing extra configuration elements.
1. The engine_params object gets unpacked into the sqlalchemy.create_engine call, while the metadata_params gets unpacked into the sqlalchemy.MetaData call.
2. The metadata_cache_timeout is a cache timeout setting in seconds for metadata fetch of this database. Specify it as \"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.
3. The schemas_allowed_for_file_upload is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as \"schemas_allowed_for_file_upload\": [\"public\", \"csv_upload\"]. If database flavor does not support schema or any schema is allowed to be accessed, just leave the list empty
4. The version field is a string specifying the this db's version. This should be used with Presto DBs so that the syntax is correct
5. The allows_virtual_table_explore field is a boolean specifying whether or not the Explore button in SQL Lab results is shown.
6. The disable_data_preview field is a boolean specifying whether or not data preview queries will be run when fetching table metadata in SQL Lab.
",
+ "description": "JSON string containing extra configuration elements.
1. The engine_params object gets unpacked into the sqlalchemy.create_engine call, while the metadata_params gets unpacked into the sqlalchemy.MetaData call.
2. The metadata_cache_timeout is a cache timeout setting in seconds for metadata fetch of this database. Specify it as \"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.
3. The schemas_allowed_for_file_upload is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as \"schemas_allowed_for_file_upload\": [\"public\", \"csv_upload\"]. If database flavor does not support schema or any schema is allowed to be accessed, just leave the list empty
4. The version field is a string specifying the this db's version. This should be used with Presto DBs so that the syntax is correct
5. The allows_virtual_table_explore field is a boolean specifying whether or not the Explore button in SQL Lab results is shown.
6. The disable_data_preview field is a boolean specifying whether or not data preview queries will be run when fetching table metadata in SQL Lab.7. The disable_drill_to_detail field is a boolean specifying whether or notdrill to detail is disabled for the database.8. The allow_multi_catalog indicates if the database allows changing the default catalog when running queries and creating datasets.
",
"type": "string"
},
"id": {
@@ -4446,7 +5007,10 @@
"type": "string"
}
},
- "required": ["configuration_method", "engine"],
+ "required": [
+ "configuration_method",
+ "engine"
+ ],
"type": "object"
},
"Dataset": {
@@ -4636,7 +5200,10 @@
"type": "string"
}
},
- "required": ["db_name", "table_name"],
+ "required": [
+ "db_name",
+ "table_name"
+ ],
"type": "object"
},
"DatasetCacheWarmUpResponseSchema": {
@@ -4730,7 +5297,9 @@
"type": "string"
}
},
- "required": ["column_name"],
+ "required": [
+ "column_name"
+ ],
"type": "object"
},
"DatasetColumnsRestApi.get": {
@@ -4776,7 +5345,10 @@
"type": "string"
}
},
- "required": ["base_model_id", "table_name"],
+ "required": [
+ "base_model_id",
+ "table_name"
+ ],
"type": "object"
},
"DatasetMetricRestApi.get": {
@@ -4864,7 +5436,10 @@
"type": "string"
}
},
- "required": ["expression", "metric_name"],
+ "required": [
+ "expression",
+ "metric_name"
+ ],
"type": "object"
},
"DatasetRelatedChart": {
@@ -4943,12 +5518,21 @@
},
"DatasetRestApi.get": {
"properties": {
+ "always_filter_main_dttm": {
+ "nullable": true,
+ "type": "boolean"
+ },
"cache_timeout": {
"nullable": true,
"type": "integer"
},
+ "catalog": {
+ "maxLength": 256,
+ "nullable": true,
+ "type": "string"
+ },
"changed_by": {
- "$ref": "#/components/schemas/DatasetRestApi.get.User2"
+ "$ref": "#/components/schemas/DatasetRestApi.get.User1"
},
"changed_on": {
"format": "date-time",
@@ -5034,6 +5618,10 @@
"name": {
"readOnly": true
},
+ "normalize_columns": {
+ "nullable": true,
+ "type": "boolean"
+ },
"offset": {
"nullable": true,
"type": "integer"
@@ -5042,7 +5630,7 @@
"readOnly": true
},
"owners": {
- "$ref": "#/components/schemas/DatasetRestApi.get.User1"
+ "$ref": "#/components/schemas/DatasetRestApi.get.AppleUser"
},
"schema": {
"maxLength": 255,
@@ -5077,11 +5665,39 @@
"readOnly": true
}
},
- "required": ["columns", "database", "metrics", "table_name"],
+ "required": [
+ "columns",
+ "database",
+ "metrics",
+ "table_name"
+ ],
+ "type": "object"
+ },
+ "DatasetRestApi.get.AppleUser": {
+ "properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
"DatasetRestApi.get.Database": {
"properties": {
+ "allow_multi_catalog": {
+ "readOnly": true
+ },
"backend": {
"readOnly": true
},
@@ -5093,7 +5709,9 @@
"type": "integer"
}
},
- "required": ["database_name"],
+ "required": [
+ "database_name"
+ ],
"type": "object"
},
"DatasetRestApi.get.SqlMetric": {
@@ -5151,7 +5769,10 @@
"type": "string"
}
},
- "required": ["expression", "metric_name"],
+ "required": [
+ "expression",
+ "metric_name"
+ ],
"type": "object"
},
"DatasetRestApi.get.TableColumn": {
@@ -5229,7 +5850,9 @@
"type": "string"
}
},
- "required": ["column_name"],
+ "required": [
+ "column_name"
+ ],
"type": "object"
},
"DatasetRestApi.get.User": {
@@ -5243,7 +5866,10 @@
"type": "string"
}
},
- "required": ["first_name", "last_name"],
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
"DatasetRestApi.get.User1": {
@@ -5252,35 +5878,26 @@
"maxLength": 64,
"type": "string"
},
- "id": {
- "type": "integer"
- },
"last_name": {
"maxLength": 64,
"type": "string"
}
},
- "required": ["first_name", "last_name"],
- "type": "object"
- },
- "DatasetRestApi.get.User2": {
- "properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
- },
- "last_name": {
- "maxLength": 64,
- "type": "string"
- }
- },
- "required": ["first_name", "last_name"],
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
"DatasetRestApi.get_list": {
"properties": {
+ "catalog": {
+ "maxLength": 256,
+ "nullable": true,
+ "type": "string"
+ },
"changed_by": {
- "$ref": "#/components/schemas/DatasetRestApi.get_list.User1"
+ "$ref": "#/components/schemas/DatasetRestApi.get_list.User"
},
"changed_by_name": {
"readOnly": true
@@ -5319,7 +5936,7 @@
"readOnly": true
},
"owners": {
- "$ref": "#/components/schemas/DatasetRestApi.get_list.User"
+ "$ref": "#/components/schemas/DatasetRestApi.get_list.AppleUser"
},
"schema": {
"maxLength": 255,
@@ -5335,7 +5952,30 @@
"type": "string"
}
},
- "required": ["database", "table_name"],
+ "required": [
+ "database",
+ "table_name"
+ ],
+ "type": "object"
+ },
+ "DatasetRestApi.get_list.AppleUser": {
+ "properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
"DatasetRestApi.get_list.Database": {
@@ -5348,7 +5988,9 @@
"type": "integer"
}
},
- "required": ["database_name"],
+ "required": [
+ "database_name"
+ ],
"type": "object"
},
"DatasetRestApi.get_list.User": {
@@ -5365,25 +6007,24 @@
"type": "string"
}
},
- "required": ["first_name", "last_name"],
- "type": "object"
- },
- "DatasetRestApi.get_list.User1": {
- "properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
- },
- "last_name": {
- "maxLength": 64,
- "type": "string"
- }
- },
- "required": ["first_name", "last_name"],
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
"DatasetRestApi.post": {
"properties": {
+ "always_filter_main_dttm": {
+ "default": false,
+ "type": "boolean"
+ },
+ "catalog": {
+ "maxLength": 250,
+ "minLength": 0,
+ "nullable": true,
+ "type": "string"
+ },
"database": {
"type": "integer"
},
@@ -5395,6 +6036,10 @@
"nullable": true,
"type": "boolean"
},
+ "normalize_columns": {
+ "default": false,
+ "type": "boolean"
+ },
"owners": {
"items": {
"type": "integer"
@@ -5417,15 +6062,28 @@
"type": "string"
}
},
- "required": ["database", "table_name"],
+ "required": [
+ "database",
+ "table_name"
+ ],
"type": "object"
},
"DatasetRestApi.put": {
"properties": {
+ "always_filter_main_dttm": {
+ "default": false,
+ "type": "boolean"
+ },
"cache_timeout": {
"nullable": true,
"type": "integer"
},
+ "catalog": {
+ "maxLength": 250,
+ "minLength": 0,
+ "nullable": true,
+ "type": "string"
+ },
"columns": {
"items": {
"$ref": "#/components/schemas/DatasetColumnsPut"
@@ -5479,6 +6137,10 @@
},
"type": "array"
},
+ "normalize_columns": {
+ "nullable": true,
+ "type": "boolean"
+ },
"offset": {
"nullable": true,
"type": "integer"
@@ -5514,6 +6176,11 @@
},
"Datasource": {
"properties": {
+ "catalog": {
+ "description": "Datasource catalog",
+ "nullable": true,
+ "type": "string"
+ },
"database_name": {
"description": "Datasource name",
"type": "string"
@@ -5525,7 +6192,6 @@
"datasource_type": {
"description": "The type of dataset/datasource identified on `datasource_id`.",
"enum": [
- "sl_table",
"table",
"dataset",
"query",
@@ -5539,7 +6205,9 @@
"type": "string"
}
},
- "required": ["datasource_type"],
+ "required": [
+ "datasource_type"
+ ],
"type": "object"
},
"DistincResponseSchema": {
@@ -5575,7 +6243,9 @@
"type": "array"
}
},
- "required": ["allowed_domains"],
+ "required": [
+ "allowed_domains"
+ ],
"type": "object"
},
"EmbeddedDashboardResponseSchema": {
@@ -5638,8 +6308,34 @@
},
"type": "object"
},
+ "EngineInformation": {
+ "properties": {
+ "disable_ssh_tunneling": {
+ "description": "SSH tunnel is not available to the database",
+ "type": "boolean"
+ },
+ "supports_dynamic_catalog": {
+ "description": "The database supports multiple catalogs in a single connection",
+ "type": "boolean"
+ },
+ "supports_file_upload": {
+ "description": "Users can upload files to the database",
+ "type": "boolean"
+ },
+ "supports_oauth2": {
+ "description": "The database supports OAuth2",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
"EstimateQueryCostSchema": {
"properties": {
+ "catalog": {
+ "description": "The database catalog",
+ "nullable": true,
+ "type": "string"
+ },
"database_id": {
"description": "The database id",
"type": "integer"
@@ -5658,11 +6354,124 @@
"type": "object"
}
},
- "required": ["database_id", "sql"],
+ "required": [
+ "database_id",
+ "sql"
+ ],
+ "type": "object"
+ },
+ "ExcelMetadataUploadFilePostSchema": {
+ "properties": {
+ "file": {
+ "description": "The file to upload",
+ "format": "binary",
+ "type": "string"
+ },
+ "header_row": {
+ "description": "Row containing the headers to use as column names(0 is first line of data). Leave empty if there is no header row.",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "file"
+ ],
+ "type": "object"
+ },
+ "ExcelUploadPostSchema": {
+ "properties": {
+ "already_exists": {
+ "default": "fail",
+ "description": "What to do if the table already exists accepts: fail, replace, append",
+ "enum": [
+ "fail",
+ "replace",
+ "append"
+ ],
+ "type": "string"
+ },
+ "column_dates": {
+ "description": "A list of column names that should be parsed as dates. Example: date,timestamp",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "columns_read": {
+ "description": "A List of the column names that should be read",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "dataframe_index": {
+ "description": "Write dataframe index as a column.",
+ "type": "boolean"
+ },
+ "decimal_character": {
+ "description": "Character to recognize as decimal point. Default is '.'",
+ "type": "string"
+ },
+ "file": {
+ "description": "The Excel file to upload",
+ "format": "binary",
+ "type": "string"
+ },
+ "header_row": {
+ "description": "Row containing the headers to use as column names(0 is first line of data). Leave empty if there is no header row.",
+ "type": "integer"
+ },
+ "index_column": {
+ "description": "Column to use as the row labels of the dataframe. Leave empty if no index column",
+ "type": "string"
+ },
+ "index_label": {
+ "description": "Index label for index column.",
+ "type": "string"
+ },
+ "null_values": {
+ "description": "A list of strings that should be treated as null. Examples: '' for empty strings, 'None', 'N/A',Warning: Hive database supports only a single value",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "rows_to_read": {
+ "description": "Number of rows to read from the file. If None, reads all rows.",
+ "minimum": 1,
+ "nullable": true,
+ "type": "integer"
+ },
+ "schema": {
+ "description": "The schema to upload the data file to.",
+ "type": "string"
+ },
+ "sheet_name": {
+ "description": "Strings used for sheet names (default is the first sheet).",
+ "type": "string"
+ },
+ "skip_rows": {
+ "description": "Number of rows to skip at start of file.",
+ "type": "integer"
+ },
+ "table_name": {
+ "description": "The name of the table to be created/appended",
+ "maxLength": 10000,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "file",
+ "table_name"
+ ],
"type": "object"
},
"ExecutePayloadSchema": {
"properties": {
+ "catalog": {
+ "nullable": true,
+ "type": "string"
+ },
"client_id": {
"nullable": true,
"type": "string"
@@ -5718,7 +6527,10 @@
"type": "string"
}
},
- "required": ["database_id", "sql"],
+ "required": [
+ "database_id",
+ "sql"
+ ],
"type": "object"
},
"ExploreContextSchema": {
@@ -5756,7 +6568,9 @@
"type": "array"
}
},
- "required": ["formData"],
+ "required": [
+ "formData"
+ ],
"type": "object"
},
"FormDataPostSchema": {
@@ -5772,7 +6586,6 @@
"datasource_type": {
"description": "The datasource type",
"enum": [
- "sl_table",
"table",
"dataset",
"query",
@@ -5786,7 +6599,11 @@
"type": "string"
}
},
- "required": ["datasource_id", "datasource_type", "form_data"],
+ "required": [
+ "datasource_id",
+ "datasource_type",
+ "form_data"
+ ],
"type": "object"
},
"FormDataPutSchema": {
@@ -5802,7 +6619,6 @@
"datasource_type": {
"description": "The datasource type",
"enum": [
- "sl_table",
"table",
"dataset",
"query",
@@ -5816,7 +6632,11 @@
"type": "string"
}
},
- "required": ["datasource_id", "datasource_type", "form_data"],
+ "required": [
+ "datasource_id",
+ "datasource_type",
+ "form_data"
+ ],
"type": "object"
},
"GetFavStarIdsSchema": {
@@ -5833,10 +6653,25 @@
},
"GetOrCreateDatasetSchema": {
"properties": {
+ "always_filter_main_dttm": {
+ "default": false,
+ "type": "boolean"
+ },
+ "catalog": {
+ "description": "The catalog the table belongs to",
+ "maxLength": 250,
+ "minLength": 0,
+ "nullable": true,
+ "type": "string"
+ },
"database_id": {
"description": "ID of database table belongs to",
"type": "integer"
},
+ "normalize_columns": {
+ "default": false,
+ "type": "boolean"
+ },
"schema": {
"description": "The schema the table belongs to",
"maxLength": 250,
@@ -5853,7 +6688,10 @@
"type": "string"
}
},
- "required": ["database_id", "table_name"],
+ "required": [
+ "database_id",
+ "table_name"
+ ],
"type": "object"
},
"GuestTokenCreate": {
@@ -5874,7 +6712,557 @@
"$ref": "#/components/schemas/User2"
}
},
- "required": ["resources", "rls"],
+ "required": [
+ "resources",
+ "rls"
+ ],
+ "type": "object"
+ },
+ "IASLoginTokenRequestSchema": {
+ "properties": {
+ "access_token": {
+ "description": "IAS Access token. Can be requested by adding `token` to the `responseTypes`.",
+ "nullable": true,
+ "type": "string"
+ },
+ "client_id": {
+ "description": "IAS client id. Only needed if `refresh_token` is provided.",
+ "nullable": true,
+ "type": "string"
+ },
+ "client_secret": {
+ "description": "IAS client secret. Only needed if `refresh_token` and `client_id` is provided.",
+ "nullable": true,
+ "type": "string"
+ },
+ "id_token": {
+ "description": "IAS ID token. Can be requested by adding `id_token` to the `responseTypes`. The following scopes should be added:`iam:ds:groups`, `corpds:ds:username`, `corpds:ds:firstName`, `corpds:ds:lastName`, `corpds:ds:email`, `corpds:ds:uidNumber`, `iam:ds:explicitgroups`.",
+ "type": "string"
+ },
+ "refresh_token": {
+ "description": "IAS refresh token. This can be requested by adding `offline` to `scopes`. To be able to refresh the token, the IAS `client_id` and `client_secret` need to be added, as the same client needs to be used for refreshing as logging in.",
+ "nullable": true,
+ "type": "string"
+ }
+ },
+ "required": [
+ "id_token"
+ ],
+ "type": "object"
+ },
+ "IASLoginTokenResponseSchema": {
+ "properties": {
+ "access_token": {
+ "description": "Access that can be used access the Superset API",
+ "type": "string"
+ },
+ "refresh_token": {
+ "description": "Refresh token that can be used to refresh the `access_token`",
+ "type": "string"
+ }
+ },
+ "required": [
+ "access_token"
+ ],
+ "type": "object"
+ },
+ "IASProfileResponse": {
+ "properties": {
+ "client_id": {
+ "description": "The client id",
+ "type": "string"
+ },
+ "profile": {
+ "description": "The IAS profile",
+ "type": "string"
+ },
+ "scope": {
+ "description": "The scope of the client",
+ "type": "string"
+ }
+ },
+ "required": [
+ "client_id",
+ "profile"
+ ],
+ "type": "object"
+ },
+ "IASProfilesResponseSchema": {
+ "properties": {
+ "result": {
+ "description": "A list of all available IAS profiles",
+ "items": {
+ "$ref": "#/components/schemas/IASProfileResponse"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "IASTokenResponse": {
+ "properties": {
+ "access_token": {
+ "description": "The access token",
+ "type": "string"
+ },
+ "has_client_credentials": {
+ "description": "Are the original client credentials available or not",
+ "type": "boolean"
+ },
+ "has_refresh_token": {
+ "description": "Is there a refresh token available or not",
+ "type": "boolean"
+ },
+ "ias_profile": {
+ "description": "The IAS profile",
+ "type": "string"
+ },
+ "id_token": {
+ "description": "The id token",
+ "type": "string"
+ }
+ },
+ "required": [
+ "has_client_credentials",
+ "has_refresh_token",
+ "ias_profile",
+ "id_token"
+ ],
+ "type": "object"
+ },
+ "IASTokensResponseSchema": {
+ "properties": {
+ "result": {
+ "description": "A list of all requested tokens",
+ "items": {
+ "$ref": "#/components/schemas/IASTokenResponse"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "ImportV1Database": {
+ "properties": {
+ "allow_csv_upload": {
+ "type": "boolean"
+ },
+ "allow_ctas": {
+ "type": "boolean"
+ },
+ "allow_cvas": {
+ "type": "boolean"
+ },
+ "allow_dml": {
+ "type": "boolean"
+ },
+ "allow_run_async": {
+ "type": "boolean"
+ },
+ "cache_timeout": {
+ "nullable": true,
+ "type": "integer"
+ },
+ "database_name": {
+ "type": "string"
+ },
+ "expose_in_sqllab": {
+ "type": "boolean"
+ },
+ "external_url": {
+ "nullable": true,
+ "type": "string"
+ },
+ "extra": {
+ "$ref": "#/components/schemas/ImportV1DatabaseExtra"
+ },
+ "impersonate_user": {
+ "type": "boolean"
+ },
+ "is_managed_externally": {
+ "nullable": true,
+ "type": "boolean"
+ },
+ "password": {
+ "nullable": true,
+ "type": "string"
+ },
+ "sqlalchemy_uri": {
+ "type": "string"
+ },
+ "ssh_tunnel": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/DatabaseSSHTunnel"
+ }
+ ],
+ "nullable": true
+ },
+ "uuid": {
+ "format": "uuid",
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "database_name",
+ "sqlalchemy_uri",
+ "uuid",
+ "version"
+ ],
+ "type": "object"
+ },
+ "ImportV1DatabaseExtra": {
+ "properties": {
+ "allow_multi_catalog": {
+ "type": "boolean"
+ },
+ "allows_virtual_table_explore": {
+ "type": "boolean"
+ },
+ "cancel_query_on_windows_unload": {
+ "type": "boolean"
+ },
+ "cost_estimate_enabled": {
+ "type": "boolean"
+ },
+ "disable_data_preview": {
+ "type": "boolean"
+ },
+ "disable_drill_to_detail": {
+ "type": "boolean"
+ },
+ "engine_params": {
+ "additionalProperties": {},
+ "type": "object"
+ },
+ "metadata_cache_timeout": {
+ "additionalProperties": {
+ "type": "integer"
+ },
+ "type": "object"
+ },
+ "metadata_params": {
+ "additionalProperties": {},
+ "type": "object"
+ },
+ "schemas_allowed_for_csv_upload": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "version": {
+ "nullable": true,
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "LakehouseCatalog": {
+ "properties": {
+ "database_id": {
+ "description": "The numerical id of the database",
+ "type": "integer"
+ },
+ "database_name": {
+ "description": "The name of the database",
+ "type": "string"
+ },
+ "id": {
+ "description": "The numerical id of the catalog",
+ "type": "integer"
+ },
+ "name": {
+ "description": "The name of the catalog",
+ "type": "string"
+ },
+ "sqlalchemy_uri": {
+ "description": "The SQLAlchemy URI",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "LakehouseConnectRequestSchema": {
+ "properties": {
+ "catalogs": {
+ "description": "A list of catalogs to connect to. If empty or undefined, connect all available catalogs.",
+ "example": [
+ "my_catalog"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
+ },
+ "database_names": {
+ "description": "Custom catalog-database name mappings. If undefined, the default naming convention will be used",
+ "example": {
+ "my_catalog": "my_database"
+ },
+ "nullable": true,
+ "type": "object"
+ },
+ "dry_run": {
+ "description": "Should the task be executed in dry run mode. Useful for testing.",
+ "example": false,
+ "type": "boolean"
+ },
+ "engine_type": {
+ "description": "The type of the engine (only trino is currently supported)",
+ "enum": [
+ "trino"
+ ],
+ "example": "trino",
+ "type": "string"
+ },
+ "engine_url": {
+ "description": "The URL to the engine",
+ "example": "https://myengine.corp.apple.com",
+ "type": "string"
+ },
+ "environment": {
+ "description": "Prod or Int",
+ "enum": [
+ "int",
+ "prod"
+ ],
+ "example": "int",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the Lakehouse (subject to change over time). If left undefined, use lakehouse id",
+ "example": "My Lakehouse",
+ "nullable": true,
+ "type": "string"
+ },
+ "superset_url": {
+ "description": "The URL of the Superset instance connecting to",
+ "example": "http://localhost:8088",
+ "type": "string"
+ }
+ },
+ "required": [
+ "engine_type",
+ "engine_url",
+ "environment",
+ "superset_url"
+ ],
+ "type": "object"
+ },
+ "LakehouseConnectResponseSchema": {
+ "properties": {
+ "task_id": {
+ "description": "The id of the connection task",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "LakehouseConnectResultResponseSchema": {
+ "properties": {
+ "existing_catalogs": {
+ "description": "A list of connected catalogs before the connect operation",
+ "items": {
+ "description": "Catalogs",
+ "items": {
+ "$ref": "#/components/schemas/LakehouseCatalog"
+ },
+ "type": "array"
+ },
+ "type": "array"
+ },
+ "lakehouse": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/LakehouseGetResponseSchema"
+ }
+ ],
+ "description": "The connected Lakehouse",
+ "nullable": true
+ },
+ "message": {
+ "description": "A message to provide additional context on what has happened",
+ "type": "string"
+ },
+ "new_catalogs": {
+ "description": "A list of newly connected catalogs after the connect operation",
+ "items": {
+ "description": "Catalogs",
+ "items": {
+ "$ref": "#/components/schemas/LakehouseCatalog"
+ },
+ "type": "array"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "The status of the task",
+ "enum": [
+ "scheduled",
+ "running",
+ "completed",
+ "failed",
+ "reconnect_failed",
+ "cancelled"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "lakehouse"
+ ],
+ "type": "object"
+ },
+ "LakehouseConnectStatusResponseSchema": {
+ "properties": {
+ "message": {
+ "description": "A message to provide additional context on what has happened",
+ "type": "string"
+ },
+ "status": {
+ "description": "The status of the task",
+ "enum": [
+ "scheduled",
+ "running",
+ "completed",
+ "failed",
+ "reconnect_failed",
+ "cancelled"
+ ],
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "LakehouseDatasetListResponseSchema": {
+ "properties": {
+ "name": {
+ "description": "The name of the dataset",
+ "type": "string"
+ },
+ "schema": {
+ "description": "The schema",
+ "nullable": true,
+ "type": "string"
+ },
+ "sql": {
+ "description": "The virtual dataset query",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "sql"
+ ],
+ "type": "object"
+ },
+ "LakehouseDatasetRequestSchema": {
+ "properties": {
+ "catalog": {
+ "description": "The catalog. If left empty, uses an arbitrary connected catalog.",
+ "nullable": true,
+ "type": "string"
+ },
+ "lakehouse_id": {
+ "description": "Deprecated, not used for anything",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the dataset to be created",
+ "type": "string"
+ },
+ "overwrite": {
+ "default": false,
+ "description": "Should the virtual dataset be overwritten if it already exists",
+ "type": "boolean"
+ },
+ "schema": {
+ "description": "The schema",
+ "nullable": true,
+ "type": "string"
+ },
+ "sql": {
+ "description": "The virtual dataset query",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "sql"
+ ],
+ "type": "object"
+ },
+ "LakehouseDatasetResponseSchema": {
+ "properties": {
+ "url": {
+ "description": "The url for exploring the virtual dataset",
+ "type": "string"
+ }
+ },
+ "required": [
+ "url"
+ ],
+ "type": "object"
+ },
+ "LakehouseDisconnectResponseSchema": {
+ "properties": {
+ "lakehouse": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/LakehouseGetResponseSchema"
+ }
+ ],
+ "description": "A list of disconnected lakehouses"
+ }
+ },
+ "type": "object"
+ },
+ "LakehouseGetListResponseSchema": {
+ "properties": {
+ "lakehouses": {
+ "description": "A list of connected lakehouses",
+ "items": {
+ "$ref": "#/components/schemas/LakehouseGetResponseSchema"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "LakehouseGetResponseSchema": {
+ "properties": {
+ "catalogs": {
+ "description": "A list of connected catalogs",
+ "items": {
+ "description": "Catalogs",
+ "items": {
+ "$ref": "#/components/schemas/LakehouseCatalog"
+ },
+ "type": "array"
+ },
+ "type": "array"
+ },
+ "engine_url": {
+ "description": "The URL uf the engine",
+ "type": "string"
+ },
+ "id": {
+ "description": "The unique id of the Lakehouse",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "superset_url": {
+ "description": "The URL uf the Superset instance",
+ "type": "string"
+ }
+ },
"type": "object"
},
"LogRestApi.get": {
@@ -5911,7 +7299,7 @@
"type": "integer"
},
"user": {
- "$ref": "#/components/schemas/LogRestApi.get.User"
+ "$ref": "#/components/schemas/LogRestApi.get.AppleUser"
},
"user_id": {
"nullable": true,
@@ -5920,14 +7308,16 @@
},
"type": "object"
},
- "LogRestApi.get.User": {
+ "LogRestApi.get.AppleUser": {
"properties": {
"username": {
"maxLength": 64,
"type": "string"
}
},
- "required": ["username"],
+ "required": [
+ "username"
+ ],
"type": "object"
},
"LogRestApi.get_list": {
@@ -5964,7 +7354,7 @@
"type": "integer"
},
"user": {
- "$ref": "#/components/schemas/LogRestApi.get_list.User"
+ "$ref": "#/components/schemas/LogRestApi.get_list.AppleUser"
},
"user_id": {
"nullable": true,
@@ -5973,14 +7363,16 @@
},
"type": "object"
},
- "LogRestApi.get_list.User": {
+ "LogRestApi.get_list.AppleUser": {
"properties": {
"username": {
"maxLength": 64,
"type": "string"
}
},
- "required": ["username"],
+ "required": [
+ "username"
+ ],
"type": "object"
},
"LogRestApi.post": {
@@ -6159,7 +7551,10 @@
"readOnly": true
}
},
- "required": ["client_id", "database"],
+ "required": [
+ "client_id",
+ "database"
+ ],
"type": "object"
},
"QueryRestApi.get.Database": {
@@ -6340,7 +7735,10 @@
},
"filter_type": {
"description": "filter_type_description",
- "enum": ["Regular", "Base"],
+ "enum": [
+ "Regular",
+ "Base"
+ ],
"type": "string"
},
"group_key": {
@@ -6372,6 +7770,9 @@
},
"RLSRestApi.get_list": {
"properties": {
+ "changed_by": {
+ "$ref": "#/components/schemas/User"
+ },
"changed_on_delta_humanized": {
"readOnly": true
},
@@ -6385,7 +7786,10 @@
},
"filter_type": {
"description": "filter_type_description",
- "enum": ["Regular", "Base"],
+ "enum": [
+ "Regular",
+ "Base"
+ ],
"type": "string"
},
"group_key": {
@@ -6428,7 +7832,10 @@
},
"filter_type": {
"description": "filter_type_description",
- "enum": ["Regular", "Base"],
+ "enum": [
+ "Regular",
+ "Base"
+ ],
"type": "string"
},
"group_key": {
@@ -6458,7 +7865,13 @@
"type": "array"
}
},
- "required": ["clause", "filter_type", "name", "roles", "tables"],
+ "required": [
+ "clause",
+ "filter_type",
+ "name",
+ "roles",
+ "tables"
+ ],
"type": "object"
},
"RLSRestApi.put": {
@@ -6474,7 +7887,10 @@
},
"filter_type": {
"description": "filter_type_description",
- "enum": ["Regular", "Base"],
+ "enum": [
+ "Regular",
+ "Base"
+ ],
"type": "string"
},
"group_key": {
@@ -6648,7 +8064,10 @@
"type": "string"
}
},
- "required": ["scheduled_dttm", "state"],
+ "required": [
+ "scheduled_dttm",
+ "state"
+ ],
"type": "object"
},
"ReportExecutionLogRestApi.get_list": {
@@ -6692,7 +8111,10 @@
"type": "string"
}
},
- "required": ["scheduled_dttm", "state"],
+ "required": [
+ "scheduled_dttm",
+ "state"
+ ],
"type": "object"
},
"ReportExecutionLogRestApi.post": {
@@ -6718,15 +8140,27 @@
},
"type": {
"description": "The recipient type, check spec for valid options",
- "enum": ["Email", "Slack"],
+ "enum": [
+ "Email",
+ "Slack",
+ "SlackV2"
+ ],
"type": "string"
}
},
- "required": ["type"],
+ "required": [
+ "type"
+ ],
"type": "object"
},
"ReportRecipientConfigJSON": {
"properties": {
+ "bccTarget": {
+ "type": "string"
+ },
+ "ccTarget": {
+ "type": "string"
+ },
"target": {
"type": "string"
}
@@ -6769,6 +8203,11 @@
"nullable": true,
"type": "string"
},
+ "email_subject": {
+ "maxLength": 255,
+ "nullable": true,
+ "type": "string"
+ },
"extra": {
"readOnly": true
},
@@ -6810,7 +8249,7 @@
"type": "string"
},
"owners": {
- "$ref": "#/components/schemas/ReportScheduleRestApi.get.User"
+ "$ref": "#/components/schemas/ReportScheduleRestApi.get.AppleUser"
},
"recipients": {
"$ref": "#/components/schemas/ReportScheduleRestApi.get.ReportRecipients"
@@ -6846,7 +8285,32 @@
"type": "integer"
}
},
- "required": ["crontab", "name", "recipients", "type"],
+ "required": [
+ "crontab",
+ "name",
+ "recipients",
+ "type"
+ ],
+ "type": "object"
+ },
+ "ReportScheduleRestApi.get.AppleUser": {
+ "properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
"ReportScheduleRestApi.get.Dashboard": {
@@ -6872,7 +8336,9 @@
"type": "integer"
}
},
- "required": ["database_name"],
+ "required": [
+ "database_name"
+ ],
"type": "object"
},
"ReportScheduleRestApi.get.ReportRecipients": {
@@ -6889,7 +8355,9 @@
"type": "string"
}
},
- "required": ["type"],
+ "required": [
+ "type"
+ ],
"type": "object"
},
"ReportScheduleRestApi.get.Slice": {
@@ -6910,23 +8378,6 @@
},
"type": "object"
},
- "ReportScheduleRestApi.get.User": {
- "properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
- },
- "id": {
- "type": "integer"
- },
- "last_name": {
- "maxLength": 64,
- "type": "string"
- }
- },
- "required": ["first_name", "last_name"],
- "type": "object"
- },
"ReportScheduleRestApi.get_list": {
"properties": {
"active": {
@@ -6934,7 +8385,7 @@
"type": "boolean"
},
"changed_by": {
- "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User2"
+ "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User"
},
"changed_on": {
"format": "date-time",
@@ -6949,7 +8400,7 @@
"type": "integer"
},
"created_by": {
- "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User"
+ "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User1"
},
"created_on": {
"format": "date-time",
@@ -6997,7 +8448,7 @@
"type": "string"
},
"owners": {
- "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User1"
+ "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.AppleUser"
},
"recipients": {
"$ref": "#/components/schemas/ReportScheduleRestApi.get_list.ReportRecipients"
@@ -7011,7 +8462,32 @@
"type": "string"
}
},
- "required": ["crontab", "name", "recipients", "type"],
+ "required": [
+ "crontab",
+ "name",
+ "recipients",
+ "type"
+ ],
+ "type": "object"
+ },
+ "ReportScheduleRestApi.get_list.AppleUser": {
+ "properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
"ReportScheduleRestApi.get_list.ReportRecipients": {
@@ -7024,7 +8500,9 @@
"type": "string"
}
},
- "required": ["type"],
+ "required": [
+ "type"
+ ],
"type": "object"
},
"ReportScheduleRestApi.get_list.User": {
@@ -7038,7 +8516,10 @@
"type": "string"
}
},
- "required": ["first_name", "last_name"],
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
"ReportScheduleRestApi.get_list.User1": {
@@ -7047,29 +8528,15 @@
"maxLength": 64,
"type": "string"
},
- "id": {
- "type": "integer"
- },
"last_name": {
"maxLength": 64,
"type": "string"
}
},
- "required": ["first_name", "last_name"],
- "type": "object"
- },
- "ReportScheduleRestApi.get_list.User2": {
- "properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
- },
- "last_name": {
- "maxLength": 64,
- "type": "string"
- }
- },
- "required": ["first_name", "last_name"],
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
"ReportScheduleRestApi.post": {
@@ -7088,7 +8555,11 @@
},
"creation_method": {
"description": "Creation method is used to inform the frontend whether the report/alert was created in the dashboard, chart, or alerts and reports UI.",
- "enum": ["charts", "dashboards", "alerts_reports"]
+ "enum": [
+ "charts",
+ "dashboards",
+ "alerts_reports"
+ ]
},
"crontab": {
"description": "A CRON expression.[Crontab Guru](https://crontab.guru/) is a helpful resource that can help you craft a CRON expression.",
@@ -7116,6 +8587,12 @@
"nullable": true,
"type": "string"
},
+ "email_subject": {
+ "description": "The report schedule subject line",
+ "example": "[Report] Report name: Dashboard or chart name",
+ "nullable": true,
+ "type": "string"
+ },
"extra": {
"type": "object"
},
@@ -7155,7 +8632,12 @@
"type": "array"
},
"report_format": {
- "enum": ["PNG", "CSV", "TEXT"],
+ "enum": [
+ "PDF",
+ "PNG",
+ "CSV",
+ "TEXT"
+ ],
"type": "string"
},
"selected_tabs": {
@@ -7268,6 +8750,7 @@
"America/Cayman",
"America/Chicago",
"America/Chihuahua",
+ "America/Ciudad_Juarez",
"America/Coral_Harbour",
"America/Cordoba",
"America/Costa_Rica",
@@ -7620,8 +9103,9 @@
"Europe/Istanbul",
"Europe/Jersey",
"Europe/Kaliningrad",
- "Europe/Kyiv",
+ "Europe/Kiev",
"Europe/Kirov",
+ "Europe/Kyiv",
"Europe/Lisbon",
"Europe/Ljubljana",
"Europe/London",
@@ -7772,7 +9256,10 @@
},
"type": {
"description": "The report schedule type",
- "enum": ["Alert", "Report"],
+ "enum": [
+ "Alert",
+ "Report"
+ ],
"type": "string"
},
"validator_config_json": {
@@ -7780,17 +9267,24 @@
},
"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`
Supports the comparison operators <, <=, >, >=, ==, and !=",
- "enum": ["not null", "operator"],
+ "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",
+ "description": "If an alert is staled at a working state, how long until it's state is reset to error",
"example": 3600,
"minimum": 1,
"type": "integer"
}
},
- "required": ["crontab", "name", "type"],
+ "required": [
+ "crontab",
+ "name",
+ "type"
+ ],
"type": "object"
},
"ReportScheduleRestApi.put": {
@@ -7809,7 +9303,11 @@
},
"creation_method": {
"description": "Creation method is used to inform the frontend whether the report/alert was created in the dashboard, chart, or alerts and reports UI.",
- "enum": ["charts", "dashboards", "alerts_reports"],
+ "enum": [
+ "charts",
+ "dashboards",
+ "alerts_reports"
+ ],
"nullable": true
},
"crontab": {
@@ -7837,6 +9335,12 @@
"nullable": true,
"type": "string"
},
+ "email_subject": {
+ "description": "The report schedule subject line",
+ "example": "[Report] Report name: Dashboard or chart name",
+ "nullable": true,
+ "type": "string"
+ },
"extra": {
"type": "object"
},
@@ -7852,7 +9356,7 @@
"log_retention": {
"description": "How long to keep the logs around for this report (in days)",
"example": 90,
- "minimum": 1,
+ "minimum": 0,
"type": "integer"
},
"name": {
@@ -7875,7 +9379,12 @@
"type": "array"
},
"report_format": {
- "enum": ["PNG", "CSV", "TEXT"],
+ "enum": [
+ "PDF",
+ "PNG",
+ "CSV",
+ "TEXT"
+ ],
"type": "string"
},
"sql": {
@@ -7982,6 +9491,7 @@
"America/Cayman",
"America/Chicago",
"America/Chihuahua",
+ "America/Ciudad_Juarez",
"America/Coral_Harbour",
"America/Cordoba",
"America/Costa_Rica",
@@ -8334,8 +9844,9 @@
"Europe/Istanbul",
"Europe/Jersey",
"Europe/Kaliningrad",
- "Europe/Kyiv",
+ "Europe/Kiev",
"Europe/Kirov",
+ "Europe/Kyiv",
"Europe/Lisbon",
"Europe/Ljubljana",
"Europe/London",
@@ -8486,7 +9997,10 @@
},
"type": {
"description": "The report schedule type",
- "enum": ["Alert", "Report"],
+ "enum": [
+ "Alert",
+ "Report"
+ ],
"type": "string"
},
"validator_config_json": {
@@ -8494,12 +10008,15 @@
},
"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`
Supports the comparison operators <, <=, >, >=, ==, and !=",
- "enum": ["not null", "operator"],
+ "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",
+ "description": "If an alert is staled at a working state, how long until it's state is reset to error",
"example": 3600,
"minimum": 1,
"nullable": true,
@@ -8514,10 +10031,15 @@
"type": "string"
},
"type": {
- "enum": ["dashboard"]
+ "enum": [
+ "dashboard"
+ ]
}
},
- "required": ["id", "type"],
+ "required": [
+ "id",
+ "type"
+ ],
"type": "object"
},
"RlsRule": {
@@ -8529,7 +10051,9 @@
"type": "integer"
}
},
- "required": ["clause"],
+ "required": [
+ "clause"
+ ],
"type": "object"
},
"Roles": {
@@ -8554,13 +10078,52 @@
},
"type": "object"
},
+ "SQLLabBootstrapSchema": {
+ "properties": {
+ "active_tab": {
+ "$ref": "#/components/schemas/TabState"
+ },
+ "databases": {
+ "additionalProperties": {
+ "$ref": "#/components/schemas/ImportV1Database"
+ },
+ "type": "object"
+ },
+ "queries": {
+ "additionalProperties": {
+ "$ref": "#/components/schemas/QueryResult"
+ },
+ "type": "object"
+ },
+ "tab_state_ids": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
"SavedQueryRestApi.get": {
"properties": {
+ "catalog": {
+ "maxLength": 256,
+ "nullable": true,
+ "type": "string"
+ },
+ "changed_by": {
+ "$ref": "#/components/schemas/SavedQueryRestApi.get.User"
+ },
+ "changed_on": {
+ "format": "date-time",
+ "nullable": true,
+ "type": "string"
+ },
"changed_on_delta_humanized": {
"readOnly": true
},
"created_by": {
- "$ref": "#/components/schemas/SavedQueryRestApi.get.User"
+ "$ref": "#/components/schemas/SavedQueryRestApi.get.User1"
},
"database": {
"$ref": "#/components/schemas/SavedQueryRestApi.get.Database"
@@ -8606,7 +10169,9 @@
"type": "integer"
}
},
- "required": ["database_name"],
+ "required": [
+ "database_name"
+ ],
"type": "object"
},
"SavedQueryRestApi.get.User": {
@@ -8623,16 +10188,52 @@
"type": "string"
}
},
- "required": ["first_name", "last_name"],
+ "required": [
+ "first_name",
+ "last_name"
+ ],
+ "type": "object"
+ },
+ "SavedQueryRestApi.get.User1": {
+ "properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
"SavedQueryRestApi.get_list": {
"properties": {
+ "catalog": {
+ "maxLength": 256,
+ "nullable": true,
+ "type": "string"
+ },
+ "changed_by": {
+ "$ref": "#/components/schemas/SavedQueryRestApi.get_list.User"
+ },
+ "changed_on": {
+ "format": "date-time",
+ "nullable": true,
+ "type": "string"
+ },
"changed_on_delta_humanized": {
"readOnly": true
},
"created_by": {
- "$ref": "#/components/schemas/SavedQueryRestApi.get_list.User"
+ "$ref": "#/components/schemas/SavedQueryRestApi.get_list.User1"
},
"created_on": {
"format": "date-time",
@@ -8696,7 +10297,9 @@
"type": "integer"
}
},
- "required": ["database_name"],
+ "required": [
+ "database_name"
+ ],
"type": "object"
},
"SavedQueryRestApi.get_list.Tag": {
@@ -8710,7 +10313,12 @@
"type": "string"
},
"type": {
- "enum": [1, 2, 3, 4]
+ "enum": [
+ 1,
+ 2,
+ 3,
+ 4
+ ]
}
},
"type": "object"
@@ -8729,11 +10337,39 @@
"type": "string"
}
},
- "required": ["first_name", "last_name"],
+ "required": [
+ "first_name",
+ "last_name"
+ ],
+ "type": "object"
+ },
+ "SavedQueryRestApi.get_list.User1": {
+ "properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
"SavedQueryRestApi.post": {
"properties": {
+ "catalog": {
+ "maxLength": 256,
+ "nullable": true,
+ "type": "string"
+ },
"db_id": {
"nullable": true,
"type": "integer"
@@ -8742,6 +10378,10 @@
"nullable": true,
"type": "string"
},
+ "extra_json": {
+ "nullable": true,
+ "type": "string"
+ },
"label": {
"maxLength": 256,
"nullable": true,
@@ -8765,6 +10405,11 @@
},
"SavedQueryRestApi.put": {
"properties": {
+ "catalog": {
+ "maxLength": 256,
+ "nullable": true,
+ "type": "string"
+ },
"db_id": {
"nullable": true,
"type": "integer"
@@ -8773,6 +10418,10 @@
"nullable": true,
"type": "string"
},
+ "extra_json": {
+ "nullable": true,
+ "type": "string"
+ },
"label": {
"maxLength": 256,
"nullable": true,
@@ -8900,6 +10549,106 @@
},
"type": "object"
},
+ "Tab": {
+ "properties": {
+ "children": {
+ "items": {
+ "$ref": "#/components/schemas/Tab"
+ },
+ "type": "array"
+ },
+ "parents": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "title": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "TabState": {
+ "properties": {
+ "active": {
+ "type": "boolean"
+ },
+ "autorun": {
+ "type": "boolean"
+ },
+ "database_id": {
+ "type": "integer"
+ },
+ "extra_json": {
+ "type": "object"
+ },
+ "hide_left_bar": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string"
+ },
+ "latest_query": {
+ "$ref": "#/components/schemas/QueryResult"
+ },
+ "query_limit": {
+ "type": "integer"
+ },
+ "saved_query": {
+ "nullable": true,
+ "type": "object"
+ },
+ "schema": {
+ "type": "string"
+ },
+ "sql": {
+ "type": "string"
+ },
+ "table_schemas": {
+ "items": {
+ "$ref": "#/components/schemas/Table"
+ },
+ "type": "array"
+ },
+ "user_id": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "Table": {
+ "properties": {
+ "database_id": {
+ "type": "integer"
+ },
+ "description": {
+ "type": "string"
+ },
+ "expanded": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "schema": {
+ "type": "string"
+ },
+ "tab_state_id": {
+ "type": "integer"
+ },
+ "table": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
"TableExtraMetadataResponseSchema": {
"properties": {
"clustering": {
@@ -9070,6 +10819,23 @@
},
"type": "object"
},
+ "TabsPayloadSchema": {
+ "properties": {
+ "all_tabs": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "tab_tree": {
+ "items": {
+ "$ref": "#/components/schemas/Tab"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
"Tag": {
"properties": {
"id": {
@@ -9079,21 +10845,12 @@
"type": "string"
},
"type": {
- "enum": [1, 2, 3, 4]
- }
- },
- "type": "object"
- },
- "Tag1": {
- "properties": {
- "id": {
- "type": "integer"
- },
- "name": {
- "type": "string"
- },
- "type": {
- "enum": [1, 2, 3, 4]
+ "enum": [
+ 1,
+ 2,
+ 3,
+ 4
+ ]
}
},
"type": "object"
@@ -9112,16 +10869,75 @@
},
"type": "object"
},
+ "TagObject": {
+ "properties": {
+ "description": {
+ "nullable": true,
+ "type": "string"
+ },
+ "name": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "objects_to_tag": {
+ "description": "Objects to tag",
+ "items": {},
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "TagPostBulkResponseObject": {
+ "properties": {
+ "objects_skipped": {
+ "description": "Objects to tag",
+ "items": {},
+ "type": "array"
+ },
+ "objects_tagged": {
+ "description": "Objects to tag",
+ "items": {},
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "TagPostBulkResponseSchema": {
+ "properties": {
+ "result": {
+ "$ref": "#/components/schemas/TagPostBulkResponseObject"
+ }
+ },
+ "type": "object"
+ },
+ "TagPostBulkSchema": {
+ "properties": {
+ "tags": {
+ "items": {
+ "$ref": "#/components/schemas/TagObject"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
"TagRestApi.get": {
"properties": {
"changed_by": {
- "$ref": "#/components/schemas/TagRestApi.get.User1"
+ "$ref": "#/components/schemas/TagRestApi.get.User"
},
"changed_on_delta_humanized": {
"readOnly": true
},
"created_by": {
- "$ref": "#/components/schemas/TagRestApi.get.User"
+ "$ref": "#/components/schemas/TagRestApi.get.User1"
+ },
+ "created_on_delta_humanized": {
+ "readOnly": true
+ },
+ "description": {
+ "nullable": true,
+ "type": "string"
},
"id": {
"type": "integer"
@@ -9132,12 +10948,34 @@
"type": "string"
},
"type": {
- "enum": [1, 2, 3, 4]
+ "enum": [
+ 1,
+ 2,
+ 3,
+ 4
+ ]
}
},
"type": "object"
},
"TagRestApi.get.User": {
+ "properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": [
+ "first_name",
+ "last_name"
+ ],
+ "type": "object"
+ },
+ "TagRestApi.get.User1": {
"properties": {
"active": {
"nullable": true,
@@ -9154,7 +10992,7 @@
"type": "string"
},
"email": {
- "maxLength": 64,
+ "maxLength": 320,
"type": "string"
},
"fail_login_count": {
@@ -9191,33 +11029,31 @@
"type": "string"
}
},
- "required": ["email", "first_name", "last_name", "username"],
- "type": "object"
- },
- "TagRestApi.get.User1": {
- "properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
- },
- "last_name": {
- "maxLength": 64,
- "type": "string"
- }
- },
- "required": ["first_name", "last_name"],
+ "required": [
+ "email",
+ "first_name",
+ "last_name",
+ "username"
+ ],
"type": "object"
},
"TagRestApi.get_list": {
"properties": {
"changed_by": {
- "$ref": "#/components/schemas/TagRestApi.get_list.User1"
+ "$ref": "#/components/schemas/TagRestApi.get_list.User"
},
"changed_on_delta_humanized": {
"readOnly": true
},
"created_by": {
- "$ref": "#/components/schemas/TagRestApi.get_list.User"
+ "$ref": "#/components/schemas/TagRestApi.get_list.User1"
+ },
+ "created_on_delta_humanized": {
+ "readOnly": true
+ },
+ "description": {
+ "nullable": true,
+ "type": "string"
},
"id": {
"type": "integer"
@@ -9228,7 +11064,12 @@
"type": "string"
},
"type": {
- "enum": [1, 2, 3, 4]
+ "enum": [
+ 1,
+ 2,
+ 3,
+ 4
+ ]
}
},
"type": "object"
@@ -9244,7 +11085,10 @@
"type": "string"
}
},
- "required": ["first_name", "last_name"],
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
"TagRestApi.get_list.User1": {
@@ -9258,15 +11102,25 @@
"type": "string"
}
},
- "required": ["first_name", "last_name"],
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
"TagRestApi.post": {
"properties": {
- "tags": {
- "items": {
- "type": "string"
- },
+ "description": {
+ "nullable": true,
+ "type": "string"
+ },
+ "name": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "objects_to_tag": {
+ "description": "Objects to tag",
+ "items": {},
"type": "array"
}
},
@@ -9274,8 +11128,18 @@
},
"TagRestApi.put": {
"properties": {
- "id": {
- "type": "integer"
+ "description": {
+ "nullable": true,
+ "type": "string"
+ },
+ "name": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "objects_to_tag": {
+ "description": "Objects to tag",
+ "items": {},
+ "type": "array"
}
},
"type": "object"
@@ -9298,6 +11162,18 @@
"name": {
"type": "string"
},
+ "owners": {
+ "items": {
+ "$ref": "#/components/schemas/User1"
+ },
+ "type": "array"
+ },
+ "tags": {
+ "items": {
+ "$ref": "#/components/schemas/TagGetResponseSchema"
+ },
+ "type": "array"
+ },
"type": {
"type": "string"
},
@@ -9314,7 +11190,9 @@
"type": "string"
}
},
- "required": ["value"],
+ "required": [
+ "value"
+ ],
"type": "object"
},
"TemporaryCachePutSchema": {
@@ -9324,7 +11202,36 @@
"type": "string"
}
},
- "required": ["value"],
+ "required": [
+ "value"
+ ],
+ "type": "object"
+ },
+ "UploadFileMetadata": {
+ "properties": {
+ "items": {
+ "items": {
+ "$ref": "#/components/schemas/UploadFileMetadataItem"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "UploadFileMetadataItem": {
+ "properties": {
+ "column_names": {
+ "description": "A list of columns names in the sheet",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "sheet_name": {
+ "description": "The name of the sheet",
+ "type": "string"
+ }
+ },
"type": "object"
},
"User": {
@@ -9400,6 +11307,10 @@
},
"ValidateSQLRequest": {
"properties": {
+ "catalog": {
+ "nullable": true,
+ "type": "string"
+ },
"schema": {
"nullable": true,
"type": "string"
@@ -9413,7 +11324,9 @@
"type": "object"
}
},
- "required": ["sql"],
+ "required": [
+ "sql"
+ ],
"type": "object"
},
"ValidateSQLResponse": {
@@ -9437,7 +11350,14 @@
"properties": {
"op": {
"description": "The operation to compare with a threshold to apply to the SQL output\n",
- "enum": ["<", "<=", ">", ">=", "==", "!="],
+ "enum": [
+ "<",
+ "<=",
+ ">",
+ ">=",
+ "==",
+ "!="
+ ],
"type": "string"
},
"threshold": {
@@ -9460,11 +11380,25 @@
"type": "array"
}
},
- "required": ["type", "values"],
+ "required": [
+ "type",
+ "values"
+ ],
+ "type": "object"
+ },
+ "database_catalogs_query_schema": {
+ "properties": {
+ "force": {
+ "type": "boolean"
+ }
+ },
"type": "object"
},
"database_schemas_query_schema": {
"properties": {
+ "catalog": {
+ "type": "string"
+ },
"force": {
"type": "boolean"
}
@@ -9473,6 +11407,9 @@
},
"database_tables_query_schema": {
"properties": {
+ "catalog_name": {
+ "type": "string"
+ },
"force": {
"type": "boolean"
},
@@ -9480,7 +11417,9 @@
"type": "string"
}
},
- "required": ["schema_name"],
+ "required": [
+ "schema_name"
+ ],
"type": "object"
},
"delete_tags_schema": {
@@ -9613,7 +11552,11 @@
]
}
},
- "required": ["col", "opr", "value"],
+ "required": [
+ "col",
+ "opr",
+ "value"
+ ],
"type": "object"
},
"type": "array"
@@ -9636,7 +11579,10 @@
"type": "string"
},
"order_direction": {
- "enum": ["asc", "desc"],
+ "enum": [
+ "asc",
+ "desc"
+ ],
"type": "string"
},
"page": {
@@ -9644,6 +11590,12 @@
},
"page_size": {
"type": "integer"
+ },
+ "select_columns": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
}
},
"type": "object"
@@ -9694,7 +11646,9 @@
"type": "number"
}
},
- "required": ["last_updated_ms"],
+ "required": [
+ "last_updated_ms"
+ ],
"type": "object"
},
"screenshot_query_schema": {
@@ -9723,7 +11677,9 @@
"type": "string"
}
},
- "required": ["key"],
+ "required": [
+ "key"
+ ],
"type": "object"
},
"thumbnail_query_schema": {
@@ -9757,6 +11713,7 @@
"paths": {
"/api/v1/advanced_data_type/convert": {
"get": {
+ "description": "Returns an AdvancedDataTypeResponse object populated with the passed in args.",
"parameters": [
{
"content": {
@@ -9787,6 +11744,9 @@
"401": {
"$ref": "#/components/responses/401"
},
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
"404": {
"$ref": "#/components/responses/404"
},
@@ -9799,13 +11759,14 @@
"jwt": []
}
],
- "summary": "Returns a AdvancedDataTypeResponse object populated with the passed in args.",
- "tags": ["Advanced Data Type"]
+ "summary": "Return an AdvancedDataTypeResponse",
+ "tags": [
+ "Advanced Data Type"
+ ]
}
},
"/api/v1/advanced_data_type/types": {
"get": {
- "description": "Returns a list of available advanced data types.",
"responses": {
"200": {
"content": {
@@ -9828,6 +11789,9 @@
"401": {
"$ref": "#/components/responses/401"
},
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
"404": {
"$ref": "#/components/responses/404"
},
@@ -9840,12 +11804,14 @@
"jwt": []
}
],
- "tags": ["Advanced Data Type"]
+ "summary": "Return a list of available advanced data types",
+ "tags": [
+ "Advanced Data Type"
+ ]
}
},
"/api/v1/annotation_layer/": {
"delete": {
- "description": "Deletes multiple annotation layers in a bulk operation.",
"parameters": [
{
"content": {
@@ -9893,10 +11859,13 @@
"jwt": []
}
],
- "tags": ["Annotation Layers"]
+ "summary": "Delete multiple annotation layers in a bulk operation",
+ "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.",
+ "description": "Gets a list of annotation layers, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
@@ -9998,10 +11967,12 @@
"jwt": []
}
],
- "tags": ["Annotation Layers"]
+ "summary": "Get a list of annotation layers",
+ "tags": [
+ "Annotation Layers"
+ ]
},
"post": {
- "description": "Create an Annotation layer",
"requestBody": {
"content": {
"application/json": {
@@ -10050,7 +12021,10 @@
"jwt": []
}
],
- "tags": ["Annotation Layers"]
+ "summary": "Create an annotation layer",
+ "tags": [
+ "Annotation Layers"
+ ]
}
},
"/api/v1/annotation_layer/_info": {
@@ -10134,7 +12108,10 @@
"jwt": []
}
],
- "tags": ["Annotation Layers"]
+ "summary": "Get metadata information about this API resource",
+ "tags": [
+ "Annotation Layers"
+ ]
}
},
"/api/v1/annotation_layer/related/{column_name}": {
@@ -10189,12 +12166,14 @@
"jwt": []
}
],
- "tags": ["Annotation Layers"]
+ "summary": "Get related fields data",
+ "tags": [
+ "Annotation Layers"
+ ]
}
},
"/api/v1/annotation_layer/{pk}": {
"delete": {
- "description": "Delete Annotation layer",
"parameters": [
{
"description": "The annotation layer pk for this annotation",
@@ -10237,10 +12216,13 @@
"jwt": []
}
],
- "tags": ["Annotation Layers"]
+ "summary": "Delete annotation layer",
+ "tags": [
+ "Annotation Layers"
+ ]
},
"get": {
- "description": "Get an Annotation layer",
+ "description": "Get an item model",
"parameters": [
{
"in": "path",
@@ -10335,10 +12317,12 @@
"jwt": []
}
],
- "tags": ["Annotation Layers"]
+ "summary": "Get an annotation layer",
+ "tags": [
+ "Annotation Layers"
+ ]
},
"put": {
- "description": "Update an Annotation layer",
"parameters": [
{
"description": "The annotation layer pk for this annotation",
@@ -10398,12 +12382,14 @@
"jwt": []
}
],
- "tags": ["Annotation Layers"]
+ "summary": "Update an annotation layer",
+ "tags": [
+ "Annotation Layers"
+ ]
}
},
"/api/v1/annotation_layer/{pk}/annotation/": {
"delete": {
- "description": "Deletes multiple annotation in a bulk operation.",
"parameters": [
{
"description": "The annotation layer pk for this annotation",
@@ -10460,10 +12446,13 @@
"jwt": []
}
],
- "tags": ["Annotation Layers"]
+ "summary": "Bulk delete annotation layers",
+ "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.",
+ "description": "Gets 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",
@@ -10535,10 +12524,12 @@
"jwt": []
}
],
- "tags": ["Annotation Layers"]
+ "summary": "Get a list of annotation layers",
+ "tags": [
+ "Annotation Layers"
+ ]
},
"post": {
- "description": "Create an Annotation layer",
"parameters": [
{
"description": "The annotation layer pk for this annotation",
@@ -10598,12 +12589,14 @@
"jwt": []
}
],
- "tags": ["Annotation Layers"]
+ "summary": "Create an annotation layer",
+ "tags": [
+ "Annotation Layers"
+ ]
}
},
"/api/v1/annotation_layer/{pk}/annotation/{annotation_id}": {
"delete": {
- "description": "Delete Annotation layer",
"parameters": [
{
"description": "The annotation layer pk for this annotation",
@@ -10655,10 +12648,12 @@
"jwt": []
}
],
- "tags": ["Annotation Layers"]
+ "summary": "Delete annotation layer",
+ "tags": [
+ "Annotation Layers"
+ ]
},
"get": {
- "description": "Get an Annotation layer",
"parameters": [
{
"description": "The annotation layer pk for this annotation",
@@ -10731,10 +12726,12 @@
"jwt": []
}
],
- "tags": ["Annotation Layers"]
+ "summary": "Get an annotation layer",
+ "tags": [
+ "Annotation Layers"
+ ]
},
"put": {
- "description": "Update an Annotation layer",
"parameters": [
{
"description": "The annotation layer pk for this annotation",
@@ -10803,12 +12800,48 @@
"jwt": []
}
],
- "tags": ["Annotation Layers"]
+ "summary": "Update an annotation layer",
+ "tags": [
+ "Annotation Layers"
+ ]
+ }
+ },
+ "/api/v1/apple/health": {
+ "get": {
+ "description": "Endpoint for checking the health status of the metastore and cache",
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AppleHealthResponseSchema"
+ }
+ }
+ },
+ "description": "The"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "summary": "Get the health status of the metastore and cache",
+ "tags": [
+ "Apple"
+ ]
}
},
"/api/v1/assets/export/": {
"get": {
- "description": "Returns a ZIP file with all the Superset assets (databases, datasets, charts, dashboards, saved queries) as YAML files.",
+ "description": "Gets a ZIP file with all the Superset assets (databases, datasets, charts, dashboards, saved queries) as YAML files.",
"responses": {
"200": {
"content": {
@@ -10836,7 +12869,10 @@
"jwt": []
}
],
- "tags": ["Import/export"]
+ "summary": "Export all assets",
+ "tags": [
+ "Import/export"
+ ]
}
},
"/api/v1/assets/import/": {
@@ -10908,7 +12944,10 @@
"jwt": []
}
],
- "tags": ["Import/export"]
+ "summary": "Import multiple assets",
+ "tags": [
+ "Import/export"
+ ]
}
},
"/api/v1/async_event/": {
@@ -10981,12 +13020,14 @@
"jwt": []
}
],
- "tags": ["AsyncEventsRestApi"]
+ "summary": "Read off of the Redis events stream",
+ "tags": [
+ "AsyncEventsRestApi"
+ ]
}
},
"/api/v1/available_domains/": {
"get": {
- "description": "Get all available domains",
"responses": {
"200": {
"content": {
@@ -11015,12 +13056,15 @@
"jwt": []
}
],
- "tags": ["Available Domains"]
+ "summary": "Get all available domains",
+ "tags": [
+ "Available Domains"
+ ]
}
},
"/api/v1/cachekey/invalidate": {
"post": {
- "description": "Takes a list of datasources, finds the associated cache records and invalidates them and removes the database records",
+ "description": "Takes a list of datasources, finds and invalidates the associated cache records and removes the database records.",
"requestBody": {
"content": {
"application/json": {
@@ -11048,12 +13092,14 @@
"jwt": []
}
],
- "tags": ["CacheRestApi"]
+ "summary": "Invalidate cache records and remove the database records",
+ "tags": [
+ "CacheRestApi"
+ ]
}
},
"/api/v1/chart/": {
"delete": {
- "description": "Deletes multiple Charts in a bulk operation.",
"parameters": [
{
"content": {
@@ -11104,10 +13150,13 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Bulk delete charts",
+ "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.",
+ "description": "Gets a list of charts, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
@@ -11209,10 +13258,12 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Get a list of charts",
+ "tags": [
+ "Charts"
+ ]
},
"post": {
- "description": "Create a new Chart.",
"requestBody": {
"content": {
"application/json": {
@@ -11264,12 +13315,15 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Create a new chart",
+ "tags": [
+ "Charts"
+ ]
}
},
"/api/v1/chart/_info": {
"get": {
- "description": "Several metadata information about chart API endpoints.",
+ "description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
@@ -11348,7 +13402,10 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Get metadata information about this API resource",
+ "tags": [
+ "Charts"
+ ]
}
},
"/api/v1/chart/data": {
@@ -11401,7 +13458,10 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Return payload data response for the given query",
+ "tags": [
+ "Charts"
+ ]
}
},
"/api/v1/chart/data/{cache_key}": {
@@ -11449,12 +13509,14 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Return payload data response for the given query",
+ "tags": [
+ "Charts"
+ ]
}
},
"/api/v1/chart/export/": {
"get": {
- "description": "Exports multiple charts and downloads them as YAML files",
"parameters": [
{
"content": {
@@ -11498,12 +13560,14 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Download multiple charts as YAML files",
+ "tags": [
+ "Charts"
+ ]
}
},
"/api/v1/chart/favorite_status/": {
"get": {
- "description": "Check favorited dashboards for current user",
"parameters": [
{
"content": {
@@ -11546,7 +13610,10 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Check favorited charts for current user",
+ "tags": [
+ "Charts"
+ ]
}
},
"/api/v1/chart/import/": {
@@ -11622,7 +13689,10 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Import chart(s) with associated datasets and databases",
+ "tags": [
+ "Charts"
+ ]
}
},
"/api/v1/chart/related/{column_name}": {
@@ -11678,7 +13748,10 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Get related fields data",
+ "tags": [
+ "Charts"
+ ]
}
},
"/api/v1/chart/warm_up_cache": {
@@ -11721,13 +13794,14 @@
"jwt": []
}
],
- "summary": "Warms up the cache for the chart",
- "tags": ["Charts"]
+ "summary": "Warm up the cache for the chart",
+ "tags": [
+ "Charts"
+ ]
}
},
"/api/v1/chart/{pk}": {
"delete": {
- "description": "Deletes a Chart.",
"parameters": [
{
"in": "path",
@@ -11775,10 +13849,13 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Delete a chart",
+ "tags": [
+ "Charts"
+ ]
},
"get": {
- "description": "Get a chart detail information.",
+ "description": "Get an item model",
"parameters": [
{
"in": "path",
@@ -11873,10 +13950,12 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Get a chart detail information",
+ "tags": [
+ "Charts"
+ ]
},
"put": {
- "description": "Changes a Chart.",
"parameters": [
{
"in": "path",
@@ -11941,12 +14020,14 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Update a chart",
+ "tags": [
+ "Charts"
+ ]
}
},
"/api/v1/chart/{pk}/cache_screenshot/": {
"get": {
- "description": "Compute and cache a screenshot.",
"parameters": [
{
"in": "path",
@@ -11997,7 +14078,10 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Compute and cache a screenshot",
+ "tags": [
+ "Charts"
+ ]
}
},
"/api/v1/chart/{pk}/data/": {
@@ -12074,12 +14158,14 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Return payload data response for a chart",
+ "tags": [
+ "Charts"
+ ]
}
},
"/api/v1/chart/{pk}/favorites/": {
"delete": {
- "description": "Remove the chart from the user favorite list",
"parameters": [
{
"in": "path",
@@ -12121,10 +14207,12 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Remove the chart from the user favorite list",
+ "tags": [
+ "Charts"
+ ]
},
"post": {
- "description": "Marks the chart as favorite for the current user",
"parameters": [
{
"in": "path",
@@ -12166,12 +14254,14 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Mark the chart as favorite for the current user",
+ "tags": [
+ "Charts"
+ ]
}
},
"/api/v1/chart/{pk}/screenshot/{digest}/": {
"get": {
- "description": "Get a computed screenshot from cache.",
"parameters": [
{
"in": "path",
@@ -12220,7 +14310,10 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Get a computed screenshot from cache",
+ "tags": [
+ "Charts"
+ ]
}
},
"/api/v1/chart/{pk}/thumbnail/{digest}/": {
@@ -12277,12 +14370,14 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Get chart thumbnail",
+ "tags": [
+ "Charts"
+ ]
}
},
"/api/v1/css_template/": {
"delete": {
- "description": "Deletes multiple css templates in a bulk operation.",
"parameters": [
{
"content": {
@@ -12330,10 +14425,13 @@
"jwt": []
}
],
- "tags": ["CSS Templates"]
+ "summary": "Bulk delete CSS templates",
+ "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.",
+ "description": "Gets a list of CSS templates, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
@@ -12435,10 +14533,12 @@
"jwt": []
}
],
- "tags": ["CSS Templates"]
+ "summary": "Get a list of CSS templates",
+ "tags": [
+ "CSS Templates"
+ ]
},
"post": {
- "description": "Create a CSS template",
"requestBody": {
"content": {
"application/json": {
@@ -12487,7 +14587,10 @@
"jwt": []
}
],
- "tags": ["CSS Templates"]
+ "summary": "Create a CSS template",
+ "tags": [
+ "CSS Templates"
+ ]
}
},
"/api/v1/css_template/_info": {
@@ -12571,7 +14674,10 @@
"jwt": []
}
],
- "tags": ["CSS Templates"]
+ "summary": "Get metadata information about this API resource",
+ "tags": [
+ "CSS Templates"
+ ]
}
},
"/api/v1/css_template/related/{column_name}": {
@@ -12626,12 +14732,14 @@
"jwt": []
}
],
- "tags": ["CSS Templates"]
+ "summary": "Get related fields data",
+ "tags": [
+ "CSS Templates"
+ ]
}
},
"/api/v1/css_template/{pk}": {
"delete": {
- "description": "Delete CSS template",
"parameters": [
{
"in": "path",
@@ -12673,10 +14781,13 @@
"jwt": []
}
],
- "tags": ["CSS Templates"]
+ "summary": "Delete a CSS template",
+ "tags": [
+ "CSS Templates"
+ ]
},
"get": {
- "description": "Get a CSS template",
+ "description": "Get an item model",
"parameters": [
{
"in": "path",
@@ -12771,10 +14882,12 @@
"jwt": []
}
],
- "tags": ["CSS Templates"]
+ "summary": "Get a CSS template",
+ "tags": [
+ "CSS Templates"
+ ]
},
"put": {
- "description": "Update a CSS template",
"parameters": [
{
"in": "path",
@@ -12833,12 +14946,14 @@
"jwt": []
}
],
- "tags": ["CSS Templates"]
+ "summary": "Update a CSS template",
+ "tags": [
+ "CSS Templates"
+ ]
}
},
"/api/v1/dashboard/": {
"delete": {
- "description": "Deletes multiple Dashboards in a bulk operation.",
"parameters": [
{
"content": {
@@ -12889,10 +15004,13 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Bulk delete dashboards",
+ "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.",
+ "description": "Gets a list of dashboards, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
@@ -12994,10 +15112,12 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Get a list of dashboards",
+ "tags": [
+ "Dashboards"
+ ]
},
"post": {
- "description": "Create a new Dashboard.",
"requestBody": {
"content": {
"application/json": {
@@ -13046,12 +15166,15 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Create a new dashboard",
+ "tags": [
+ "Dashboards"
+ ]
}
},
"/api/v1/dashboard/_info": {
"get": {
- "description": "Several metadata information about dashboard API endpoints.",
+ "description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
@@ -13130,12 +15253,14 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Get metadata information about this API resource",
+ "tags": [
+ "Dashboards"
+ ]
}
},
"/api/v1/dashboard/export/": {
"get": {
- "description": "Exports multiple Dashboards and downloads them as YAML files.",
"parameters": [
{
"content": {
@@ -13181,12 +15306,14 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Download multiple dashboards as YAML files",
+ "tags": [
+ "Dashboards"
+ ]
}
},
"/api/v1/dashboard/favorite_status/": {
"get": {
- "description": "Check favorited dashboards for current user",
"parameters": [
{
"content": {
@@ -13229,7 +15356,10 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Check favorited dashboards for current user",
+ "tags": [
+ "Dashboards"
+ ]
}
},
"/api/v1/dashboard/import/": {
@@ -13305,12 +15435,14 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Import dashboard(s) with associated charts/datasets/databases",
+ "tags": [
+ "Dashboards"
+ ]
}
},
"/api/v1/dashboard/permalink/{key}": {
"get": {
- "description": "Retrives dashboard state associated with a permanent link.",
"parameters": [
{
"in": "path",
@@ -13359,7 +15491,10 @@
"jwt": []
}
],
- "tags": ["Dashboard Permanent Link"]
+ "summary": "Get dashboard's permanent link state",
+ "tags": [
+ "Dashboard Permanent Link"
+ ]
}
},
"/api/v1/dashboard/related/{column_name}": {
@@ -13415,12 +15550,14 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Get related fields data",
+ "tags": [
+ "Dashboards"
+ ]
}
},
"/api/v1/dashboard/{id_or_slug}": {
"get": {
- "description": "Get a dashboard detail information.",
"parameters": [
{
"description": "Either the id of the dashboard, or its slug",
@@ -13466,12 +15603,14 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Get a dashboard detail information",
+ "tags": [
+ "Dashboards"
+ ]
}
},
"/api/v1/dashboard/{id_or_slug}/charts": {
"get": {
- "description": "Get the chart definitions for a given dashboard",
"parameters": [
{
"in": "path",
@@ -13519,73 +15658,10 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
- }
- },
- "/api/v1/dashboard/{id_or_slug}/filters/": {
- "put": {
- "description": "Update the filters for a given dashboard",
- "parameters": [
- {
- "in": "path",
- "name": "id_or_slug",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/DashboardNativeFiltersConfigUpdateSchema"
- }
- }
- },
- "required": true
- },
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "properties": {
- "result": {
- "type": "array",
- "items": {
- "type": "object"
- }
- }
- },
- "type": "object"
- }
- }
- },
- "description": "Successfully updated the filters"
- },
- "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": ["Dashboards"]
+ "summary": "Get a dashboard's chart definitions.",
+ "tags": [
+ "Dashboards"
+ ]
}
},
"/api/v1/dashboard/{id_or_slug}/copy/": {
@@ -13651,8 +15727,10 @@
"jwt": []
}
],
- "summary": "Makes a copy of an existing dashboard",
- "tags": ["Dashboards"]
+ "summary": "Create a copy of an existing dashboard",
+ "tags": [
+ "Dashboards"
+ ]
}
},
"/api/v1/dashboard/{id_or_slug}/datasets": {
@@ -13706,12 +15784,14 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Get dashboard's datasets",
+ "tags": [
+ "Dashboards"
+ ]
}
},
"/api/v1/dashboard/{id_or_slug}/embedded": {
"delete": {
- "description": "Removes a dashboard's embedded configuration.",
"parameters": [
{
"description": "The dashboard id or slug",
@@ -13751,10 +15831,12 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Delete a dashboard's embedded configuration",
+ "tags": [
+ "Dashboards"
+ ]
},
"get": {
- "description": "Returns the dashboard's embedded configuration",
"parameters": [
{
"description": "The dashboard id or slug",
@@ -13794,10 +15876,12 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Get the dashboard's embedded configuration",
+ "tags": [
+ "Dashboards"
+ ]
},
"post": {
- "description": "Sets a dashboard's embedded configuration.",
"parameters": [
{
"description": "The dashboard id or slug",
@@ -13848,7 +15932,10 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Set a dashboard's embedded configuration",
+ "tags": [
+ "Dashboards"
+ ]
},
"put": {
"description": "Sets a dashboard's embedded configuration.",
@@ -13902,12 +15989,70 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "tags": [
+ "Dashboards"
+ ]
+ }
+ },
+ "/api/v1/dashboard/{id_or_slug}/tabs": {
+ "get": {
+ "description": "Returns a list of a dashboard's tabs and dashboard's nested tree structure for associated tabs.",
+ "parameters": [
+ {
+ "description": "Either the id of the dashboard, or its slug",
+ "in": "path",
+ "name": "id_or_slug",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "items": {
+ "$ref": "#/components/schemas/TabsPayloadSchema"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Dashboard tabs"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get dashboard's tabs",
+ "tags": [
+ "Dashboards"
+ ]
}
},
"/api/v1/dashboard/{pk}": {
"delete": {
- "description": "Deletes a Dashboard.",
"parameters": [
{
"in": "path",
@@ -13955,10 +16100,12 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Delete a dashboard",
+ "tags": [
+ "Dashboards"
+ ]
},
"put": {
- "description": "Changes a Dashboard.",
"parameters": [
{
"in": "path",
@@ -14026,12 +16173,70 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Update a dashboard",
+ "tags": [
+ "Dashboards"
+ ]
+ }
+ },
+ "/api/v1/dashboard/{pk}/cache_dashboard_screenshot/": {
+ "post": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DashboardScreenshotPostSchema"
+ }
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DashboardCacheScreenshotResponseSchema"
+ }
+ }
+ },
+ "description": "Dashboard async result"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Compute and cache a screenshot",
+ "tags": [
+ "Dashboards"
+ ]
}
},
"/api/v1/dashboard/{pk}/favorites/": {
"delete": {
- "description": "Remove the dashboard from the user favorite list",
"parameters": [
{
"in": "path",
@@ -14073,10 +16278,12 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Remove the dashboard from the user favorite list",
+ "tags": [
+ "Dashboards"
+ ]
},
"post": {
- "description": "Marks the dashboard as favorite for the current user",
"parameters": [
{
"in": "path",
@@ -14118,12 +16325,14 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Mark the dashboard as favorite for the current user",
+ "tags": [
+ "Dashboards"
+ ]
}
},
"/api/v1/dashboard/{pk}/filter_state": {
"post": {
- "description": "Stores a new value.",
"parameters": [
{
"in": "path",
@@ -14186,12 +16395,14 @@
"jwt": []
}
],
- "tags": ["Dashboard Filter State"]
+ "summary": "Create a dashboard's filter state",
+ "tags": [
+ "Dashboard Filter State"
+ ]
}
},
"/api/v1/dashboard/{pk}/filter_state/{key}": {
"delete": {
- "description": "Deletes a value.",
"parameters": [
{
"in": "path",
@@ -14249,10 +16460,12 @@
"jwt": []
}
],
- "tags": ["Dashboard Filter State"]
+ "summary": "Delete a dashboard's filter state value",
+ "tags": [
+ "Dashboard Filter State"
+ ]
},
"get": {
- "description": "Retrives a value.",
"parameters": [
{
"in": "path",
@@ -14309,10 +16522,12 @@
"jwt": []
}
],
- "tags": ["Dashboard Filter State"]
+ "summary": "Get a dashboard's filter state value",
+ "tags": [
+ "Dashboard Filter State"
+ ]
},
"put": {
- "description": "Updates an existing value.",
"parameters": [
{
"in": "path",
@@ -14386,12 +16601,83 @@
"jwt": []
}
],
- "tags": ["Dashboard Filter State"]
+ "summary": "Update a dashboard's filter state value",
+ "tags": [
+ "Dashboard Filter State"
+ ]
+ }
+ },
+ "/api/v1/dashboard/{pk}/filters": {
+ "put": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DashboardNativeFiltersConfigUpdateSchema"
+ }
+ }
+ },
+ "description": "Native filters configuration",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "type": "array"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Dashboard native filters updated"
+ },
+ "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": []
+ }
+ ],
+ "summary": "Update native filters configuration for a dashboard.",
+ "tags": [
+ "Dashboards"
+ ]
}
},
"/api/v1/dashboard/{pk}/permalink": {
"post": {
- "description": "Stores a new permanent link.",
"parameters": [
{
"in": "path",
@@ -14451,12 +16737,71 @@
"jwt": []
}
],
- "tags": ["Dashboard Permanent Link"]
+ "summary": "Create a new dashboard's permanent link",
+ "tags": [
+ "Dashboard Permanent Link"
+ ]
+ }
+ },
+ "/api/v1/dashboard/{pk}/screenshot/{digest}/": {
+ "get": {
+ "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": "Dashboard thumbnail image"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get a computed screenshot from cache",
+ "tags": [
+ "Dashboards"
+ ]
}
},
"/api/v1/dashboard/{pk}/thumbnail/{digest}/": {
"get": {
- "description": "Compute async or get already computed dashboard thumbnail from cache.",
+ "description": "Computes async or get already computed dashboard thumbnail from cache.",
"parameters": [
{
"in": "path",
@@ -14535,12 +16880,15 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Get dashboard's thumbnail",
+ "tags": [
+ "Dashboards"
+ ]
}
},
"/api/v1/database/": {
"get": {
- "description": "Get a list of models",
+ "description": "Gets a list of databases, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
@@ -14642,10 +16990,12 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Get a list of databases",
+ "tags": [
+ "Database"
+ ]
},
"post": {
- "description": "Create a new Database.",
"requestBody": {
"content": {
"application/json": {
@@ -14694,7 +17044,10 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Create a new database",
+ "tags": [
+ "Database"
+ ]
}
},
"/api/v1/database/_info": {
@@ -14778,12 +17131,14 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Get metadata information about this API resource",
+ "tags": [
+ "Database"
+ ]
}
},
"/api/v1/database/available/": {
"get": {
- "description": "Get names of databases currently available",
"responses": {
"200": {
"content": {
@@ -14857,12 +17212,170 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Get names of databases currently available",
+ "tags": [
+ "Database"
+ ]
+ }
+ },
+ "/api/v1/database/columnar_metadata/": {
+ "post": {
+ "requestBody": {
+ "content": {
+ "multipart/form-data": {
+ "schema": {
+ "$ref": "#/components/schemas/ColumnarMetadataUploadFilePostSchema"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "$ref": "#/components/schemas/UploadFileMetadata"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Columnar upload response"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Upload a Columnar file and returns file metadata",
+ "tags": [
+ "Database"
+ ]
+ }
+ },
+ "/api/v1/database/csv_metadata/": {
+ "post": {
+ "requestBody": {
+ "content": {
+ "multipart/form-data": {
+ "schema": {
+ "$ref": "#/components/schemas/CSVMetadataUploadFilePostSchema"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "$ref": "#/components/schemas/UploadFileMetadata"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Columnar upload response"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Upload an CSV file and returns file metadata",
+ "tags": [
+ "Database"
+ ]
+ }
+ },
+ "/api/v1/database/excel_metadata/": {
+ "post": {
+ "requestBody": {
+ "content": {
+ "multipart/form-data": {
+ "schema": {
+ "$ref": "#/components/schemas/ExcelMetadataUploadFilePostSchema"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "$ref": "#/components/schemas/UploadFileMetadata"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Columnar upload response"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Upload an Excel file and returns file metadata",
+ "tags": [
+ "Database"
+ ]
}
},
"/api/v1/database/export/": {
"get": {
- "description": "Download database(s) and associated dataset(s) as a zip file",
"parameters": [
{
"content": {
@@ -14903,7 +17416,10 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Download database(s) and associated dataset(s) as a zip file",
+ "tags": [
+ "Database"
+ ]
}
},
"/api/v1/database/import/": {
@@ -14979,12 +17495,137 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Import database(s) with associated datasets",
+ "tags": [
+ "Database"
+ ]
+ }
+ },
+ "/api/v1/database/oauth2/": {
+ "get": {
+ "description": "-> Receive and store personal access tokens from OAuth for user-level authorization",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "state",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "code",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "scope",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "error",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "text/html": {
+ "schema": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "A dummy self-closing HTML page"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Receive personal access tokens from OAuth2",
+ "tags": [
+ "Database"
+ ]
+ }
+ },
+ "/api/v1/database/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": []
+ }
+ ],
+ "summary": "Get related fields data",
+ "tags": [
+ "Database"
+ ]
}
},
"/api/v1/database/test_connection/": {
"post": {
- "description": "Tests a database connection",
"requestBody": {
"content": {
"application/json": {
@@ -15027,12 +17668,14 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Test a database connection",
+ "tags": [
+ "Database"
+ ]
}
},
"/api/v1/database/validate_parameters/": {
"post": {
- "description": "Validates parameters used to connect to a database",
"requestBody": {
"content": {
"application/json": {
@@ -15075,12 +17718,14 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Validate database connection parameters",
+ "tags": [
+ "Database"
+ ]
}
},
"/api/v1/database/{pk}": {
"delete": {
- "description": "Deletes a Database.",
"parameters": [
{
"in": "path",
@@ -15128,10 +17773,12 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Delete a database",
+ "tags": [
+ "Database"
+ ]
},
"get": {
- "description": "Get a database",
"parameters": [
{
"description": "The database id",
@@ -15172,10 +17819,12 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Get a database",
+ "tags": [
+ "Database"
+ ]
},
"put": {
- "description": "Changes a Database.",
"parameters": [
{
"in": "path",
@@ -15240,7 +17889,134 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Change a database",
+ "tags": [
+ "Database"
+ ]
+ }
+ },
+ "/api/v1/database/{pk}/catalogs/": {
+ "get": {
+ "parameters": [
+ {
+ "description": "The database id",
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/database_catalogs_query_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CatalogsResponseSchema"
+ }
+ }
+ },
+ "description": "A List of all catalogs 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": []
+ }
+ ],
+ "summary": "Get all catalogs from a database",
+ "tags": [
+ "Database"
+ ]
+ }
+ },
+ "/api/v1/database/{pk}/columnar_upload/": {
+ "post": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "multipart/form-data": {
+ "schema": {
+ "$ref": "#/components/schemas/ColumnarUploadPostSchema"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Columnar upload response"
+ },
+ "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": []
+ }
+ ],
+ "summary": "Upload a Columnar file to a database table",
+ "tags": [
+ "Database"
+ ]
}
},
"/api/v1/database/{pk}/connection": {
@@ -15286,12 +18062,143 @@
}
],
"summary": "Get a database connection info",
- "tags": ["Database"]
+ "tags": [
+ "Database"
+ ]
+ }
+ },
+ "/api/v1/database/{pk}/csv_upload/": {
+ "post": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "multipart/form-data": {
+ "schema": {
+ "$ref": "#/components/schemas/CSVUploadPostSchema"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "CSV upload response"
+ },
+ "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": []
+ }
+ ],
+ "summary": "Upload a CSV file to a database table",
+ "tags": [
+ "Database"
+ ]
+ }
+ },
+ "/api/v1/database/{pk}/excel_upload/": {
+ "post": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "multipart/form-data": {
+ "schema": {
+ "$ref": "#/components/schemas/ExcelUploadPostSchema"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Excel upload response"
+ },
+ "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": []
+ }
+ ],
+ "summary": "Upload an Excel file to a database table",
+ "tags": [
+ "Database"
+ ]
}
},
"/api/v1/database/{pk}/function_names/": {
"get": {
- "description": "Get function names supported by a database",
"parameters": [
{
"in": "path",
@@ -15328,12 +18235,14 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Get function names supported by a database",
+ "tags": [
+ "Database"
+ ]
}
},
"/api/v1/database/{pk}/related_objects/": {
"get": {
- "description": "Get charts and dashboards count associated to a database",
"parameters": [
{
"in": "path",
@@ -15370,12 +18279,14 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Get charts and dashboards count associated to a database",
+ "tags": [
+ "Database"
+ ]
}
},
"/api/v1/database/{pk}/schemas/": {
"get": {
- "description": "Get all schemas from a database",
"parameters": [
{
"description": "The database id",
@@ -15427,7 +18338,10 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Get all schemas from a database",
+ "tags": [
+ "Database"
+ ]
}
},
"/api/v1/database/{pk}/schemas_access_for_file_upload/": {
@@ -15469,12 +18383,13 @@
}
],
"summary": "The list of the database schemas where to upload information",
- "tags": ["Database"]
+ "tags": [
+ "Database"
+ ]
}
},
"/api/v1/database/{pk}/select_star/{table_name}/": {
"get": {
- "description": "Get database select star for table",
"parameters": [
{
"description": "The database id",
@@ -15536,12 +18451,14 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Get database select star for table",
+ "tags": [
+ "Database"
+ ]
}
},
"/api/v1/database/{pk}/select_star/{table_name}/{schema_name}/": {
"get": {
- "description": "Get database select star for table",
"parameters": [
{
"description": "The database id",
@@ -15603,12 +18520,14 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Get database select star for table",
+ "tags": [
+ "Database"
+ ]
}
},
"/api/v1/database/{pk}/ssh_tunnel/": {
"delete": {
- "description": "Deletes a SSH Tunnel.",
"parameters": [
{
"in": "path",
@@ -15656,12 +18575,14 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Delete a SSH tunnel",
+ "tags": [
+ "Database"
+ ]
}
},
"/api/v1/database/{pk}/table/{table_name}/{schema_name}/": {
"get": {
- "description": "Get database table metadata",
"parameters": [
{
"description": "The database id",
@@ -15723,12 +18644,15 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Get database table metadata",
+ "tags": [
+ "Database"
+ ]
}
},
"/api/v1/database/{pk}/table_extra/{table_name}/{schema_name}/": {
"get": {
- "description": "Response depends on each DB engine spec normally focused on partitions",
+ "description": "Response depends on each DB engine spec normally focused on partitions.",
"parameters": [
{
"description": "The database id",
@@ -15791,7 +18715,151 @@
}
],
"summary": "Get table extra metadata",
- "tags": ["Database"]
+ "tags": [
+ "Database"
+ ]
+ }
+ },
+ "/api/v1/database/{pk}/table_metadata/": {
+ "get": {
+ "description": "Metadata associated with the table (columns, indexes, etc.)",
+ "parameters": [
+ {
+ "description": "The database id",
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "description": "Table name",
+ "in": "query",
+ "name": "table",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Optional table schema, if not passed default schema will be used",
+ "in": "query",
+ "name": "schema",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Optional table catalog, if not passed default catalog will be used",
+ "in": "query",
+ "name": "catalog",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TableExtraMetadataResponseSchema"
+ }
+ }
+ },
+ "description": "Table metadata information"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get table metadata",
+ "tags": [
+ "Database"
+ ]
+ }
+ },
+ "/api/v1/database/{pk}/table_metadata/extra/": {
+ "get": {
+ "description": "Extra metadata associated with the table (partitions, description, etc.)",
+ "parameters": [
+ {
+ "description": "The database id",
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "description": "Table name",
+ "in": "query",
+ "name": "name",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Optional table schema, if not passed the schema configured in the database will be used",
+ "in": "query",
+ "name": "schema",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Optional table catalog, if not passed the catalog configured in the database will be used",
+ "in": "query",
+ "name": "catalog",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TableExtraMetadataResponseSchema"
+ }
+ }
+ },
+ "description": "Table extra metadata information"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get table extra metadata",
+ "tags": [
+ "Database"
+ ]
}
},
"/api/v1/database/{pk}/tables/": {
@@ -15863,12 +18931,14 @@
}
],
"summary": "Get a list of tables for given database",
- "tags": ["Database"]
+ "tags": [
+ "Database"
+ ]
}
},
"/api/v1/database/{pk}/validate_sql/": {
"post": {
- "description": "Validates arbitrary SQL.",
+ "description": "Validates that arbitrary SQL is acceptable for the given database.",
"parameters": [
{
"in": "path",
@@ -15928,13 +18998,14 @@
"jwt": []
}
],
- "summary": "Validates that arbitrary sql is acceptable for the given database",
- "tags": ["Database"]
+ "summary": "Validate arbitrary SQL",
+ "tags": [
+ "Database"
+ ]
}
},
"/api/v1/dataset/": {
"delete": {
- "description": "Deletes multiple Datasets in a bulk operation.",
"parameters": [
{
"content": {
@@ -15988,10 +19059,13 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Bulk delete datasets",
+ "tags": [
+ "Datasets"
+ ]
},
"get": {
- "description": "Get a list of models",
+ "description": "Gets a list of datasets, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
@@ -16093,10 +19167,12 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Get a list of datasets",
+ "tags": [
+ "Datasets"
+ ]
},
"post": {
- "description": "Create a new Dataset",
"requestBody": {
"content": {
"application/json": {
@@ -16145,7 +19221,10 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Create a new dataset",
+ "tags": [
+ "Datasets"
+ ]
}
},
"/api/v1/dataset/_info": {
@@ -16229,7 +19308,10 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Get metadata information about this API resource",
+ "tags": [
+ "Datasets"
+ ]
}
},
"/api/v1/dataset/distinct/{column_name}": {
@@ -16284,12 +19366,14 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Get distinct values from field data",
+ "tags": [
+ "Datasets"
+ ]
}
},
"/api/v1/dataset/duplicate": {
"post": {
- "description": "Duplicates a Dataset",
"requestBody": {
"content": {
"application/json": {
@@ -16344,12 +19428,14 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Duplicate a dataset",
+ "tags": [
+ "Datasets"
+ ]
}
},
"/api/v1/dataset/export/": {
"get": {
- "description": "Exports multiple datasets and downloads them as YAML files",
"parameters": [
{
"content": {
@@ -16392,7 +19478,10 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Download multiple datasets as YAML files",
+ "tags": [
+ "Datasets"
+ ]
}
},
"/api/v1/dataset/get_or_create/": {
@@ -16447,7 +19536,9 @@
}
],
"summary": "Retrieve a table by name, or create it if it does not exist",
- "tags": ["Datasets"]
+ "tags": [
+ "Datasets"
+ ]
}
},
"/api/v1/dataset/import/": {
@@ -16531,7 +19622,10 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Import dataset(s) with associated databases",
+ "tags": [
+ "Datasets"
+ ]
}
},
"/api/v1/dataset/related/{column_name}": {
@@ -16586,7 +19680,10 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Get related fields data",
+ "tags": [
+ "Datasets"
+ ]
}
},
"/api/v1/dataset/warm_up_cache": {
@@ -16629,13 +19726,14 @@
"jwt": []
}
],
- "summary": "Warms up the cache for each chart powered by the given table",
- "tags": ["Datasets"]
+ "summary": "Warm up the cache for each chart powered by the given table",
+ "tags": [
+ "Datasets"
+ ]
}
},
"/api/v1/dataset/{pk}": {
"delete": {
- "description": "Deletes a Dataset",
"parameters": [
{
"in": "path",
@@ -16683,12 +19781,16 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Delete a dataset",
+ "tags": [
+ "Datasets"
+ ]
},
"get": {
- "description": "Get an item model",
+ "description": "Get a dataset by ID",
"parameters": [
{
+ "description": "The dataset ID",
"in": "path",
"name": "pk",
"required": true,
@@ -16706,6 +19808,14 @@
},
"in": "query",
"name": "q"
+ },
+ {
+ "description": "Should Jinja macros from sql, metrics and columns be rendered and included in the response",
+ "in": "query",
+ "name": "include_rendered_sql",
+ "schema": {
+ "type": "boolean"
+ }
}
],
"responses": {
@@ -16714,51 +19824,19 @@
"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"
+ "description": "Dataset object has been returned."
},
"400": {
"$ref": "#/components/responses/400"
@@ -16766,9 +19844,6 @@
"401": {
"$ref": "#/components/responses/401"
},
- "404": {
- "$ref": "#/components/responses/404"
- },
"422": {
"$ref": "#/components/responses/422"
},
@@ -16781,10 +19856,12 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Get a dataset",
+ "tags": [
+ "Datasets"
+ ]
},
"put": {
- "description": "Changes a Dataset",
"parameters": [
{
"in": "path",
@@ -16856,12 +19933,14 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Update a dataset",
+ "tags": [
+ "Datasets"
+ ]
}
},
"/api/v1/dataset/{pk}/column/{column_id}": {
"delete": {
- "description": "Delete a Dataset column",
"parameters": [
{
"description": "The dataset pk for this column",
@@ -16919,12 +19998,14 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Delete a dataset column",
+ "tags": [
+ "Datasets"
+ ]
}
},
"/api/v1/dataset/{pk}/metric/{metric_id}": {
"delete": {
- "description": "Delete a Dataset metric",
"parameters": [
{
"description": "The dataset pk for this column",
@@ -16982,12 +20063,14 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Delete a dataset metric",
+ "tags": [
+ "Datasets"
+ ]
}
},
"/api/v1/dataset/{pk}/refresh": {
"put": {
- "description": "Refreshes and updates columns of a dataset",
"parameters": [
{
"in": "path",
@@ -17035,12 +20118,14 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Refresh and update columns of a dataset",
+ "tags": [
+ "Datasets"
+ ]
}
},
"/api/v1/dataset/{pk}/related_objects": {
"get": {
- "description": "Get charts and dashboards count associated to a dataset",
"parameters": [
{
"in": "path",
@@ -17077,7 +20162,10 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Get charts and dashboards count associated to a dataset",
+ "tags": [
+ "Datasets"
+ ]
}
},
"/api/v1/datasource/{datasource_type}/{datasource_id}/column/{column_name}/values/": {
@@ -17168,12 +20256,13 @@
}
],
"summary": "Get possible values for a datasource column",
- "tags": ["Datasources"]
+ "tags": [
+ "Datasources"
+ ]
}
},
"/api/v1/embedded_dashboard/{uuid}": {
"get": {
- "description": "Get a report schedule log",
"parameters": [
{
"description": "The embedded configuration uuid",
@@ -17216,12 +20305,15 @@
"jwt": []
}
],
- "tags": ["Embedded Dashboard"]
+ "summary": "Get a report schedule log",
+ "tags": [
+ "Embedded Dashboard"
+ ]
}
},
"/api/v1/explore/": {
"get": {
- "description": "Assembles Explore related information (form_data, slice, dataset)\\n in a single endpoint.
\\nThe information can be assembled from:
- The cache using a form_data_key
- The metadata database using a permalink_key
- Build from scratch using dataset or slice identifiers.",
+ "description": "Assembles Explore related information (form_data, slice, dataset) in a single endpoint.
The information can be assembled from:
- The cache using a form_data_key
- The metadata database using a permalink_key
- Build from scratch using dataset or slice identifiers.",
"parameters": [
{
"in": "query",
@@ -17291,13 +20383,14 @@
"jwt": []
}
],
- "summary": "Assembles Explore related information (form_data, slice, dataset)\\n in a single endpoint.",
- "tags": ["Explore"]
+ "summary": "Assemble Explore related information in a single endpoint",
+ "tags": [
+ "Explore"
+ ]
}
},
"/api/v1/explore/form_data": {
"post": {
- "description": "Stores a new form_data.",
"parameters": [
{
"in": "query",
@@ -17352,12 +20445,14 @@
"jwt": []
}
],
- "tags": ["Explore Form Data"]
+ "summary": "Create a new form_data",
+ "tags": [
+ "Explore Form Data"
+ ]
}
},
"/api/v1/explore/form_data/{key}": {
"delete": {
- "description": "Deletes a form_data.",
"parameters": [
{
"description": "The form_data key.",
@@ -17407,10 +20502,12 @@
"jwt": []
}
],
- "tags": ["Explore Form Data"]
+ "summary": "Delete a form_data",
+ "tags": [
+ "Explore Form Data"
+ ]
},
"get": {
- "description": "Retrives a form_data.",
"parameters": [
{
"in": "path",
@@ -17459,10 +20556,12 @@
"jwt": []
}
],
- "tags": ["Explore Form Data"]
+ "summary": "Get a form_data",
+ "tags": [
+ "Explore Form Data"
+ ]
},
"put": {
- "description": "Updates an existing form_data.",
"parameters": [
{
"in": "path",
@@ -17528,12 +20627,14 @@
"jwt": []
}
],
- "tags": ["Explore Form Data"]
+ "summary": "Update an existing form_data",
+ "tags": [
+ "Explore Form Data"
+ ]
}
},
"/api/v1/explore/permalink": {
"post": {
- "description": "Stores a new permanent link.",
"requestBody": {
"content": {
"application/json": {
@@ -17583,12 +20684,14 @@
"jwt": []
}
],
- "tags": ["Explore Permanent Link"]
+ "summary": "Create a new permanent link",
+ "tags": [
+ "Explore Permanent Link"
+ ]
}
},
"/api/v1/explore/permalink/{key}": {
"get": {
- "description": "Retrives chart state associated with a permanent link.",
"parameters": [
{
"in": "path",
@@ -17637,12 +20740,672 @@
"jwt": []
}
],
- "tags": ["Explore Permanent Link"]
+ "summary": "Get chart's permanent link state",
+ "tags": [
+ "Explore Permanent Link"
+ ]
+ }
+ },
+ "/api/v1/ias/login_token": {
+ "post": {
+ "description": "Endpoint for exchanging IAS tokens for Superset API tokens. IAS Tokens should be requested from the `acssuperset` IAS application, typically using [client credential flow](https://docs.aci.apple.com/ias/tutorials/client_credentials/index.html). At a minimum, an `id_token` needs to be provided, but by providing a `refresh_token` Superset will be able to automatically refresh the token after the initial one expires. However, to be able to refresh the token, `client_id` and `client_secret` must be provided, as the token needs to be refreshed with the same client that was used for logging in. Unless `refresh_token`, `client_id` and `client_secret` are provided, a `refresh_token` will not be returned.\\nThe following scope should be requested in the token request: `offline openid iam:ds:groups corpds:ds:username corpds:ds:firstName corpds:ds:lastName corpds:ds:email iam:ds:explicitgroups`",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IASLoginTokenRequestSchema"
+ }
+ }
+ },
+ "description": "Payload containing IAS tokens.",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IASLoginTokenResponseSchema"
+ }
+ }
+ },
+ "description": "Query result"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "tags": [
+ "IAS"
+ ]
+ }
+ },
+ "/api/v1/ias/profiles": {
+ "get": {
+ "description": "Endpoint for retrieving available IAS profiles.",
+ "parameters": [
+ {
+ "description": "The name of the IAS profile",
+ "in": "query",
+ "name": "profile",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IASProfilesResponseSchema"
+ }
+ }
+ },
+ "description": "IAS Tokens"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "tags": [
+ "IAS"
+ ]
+ }
+ },
+ "/api/v1/ias/tokens": {
+ "get": {
+ "description": "Endpoint for retrieving IAS tokens for the logged in user. If no token is provided, all tokens are returned.",
+ "parameters": [
+ {
+ "description": "The name of the IAS profile",
+ "in": "query",
+ "name": "profile",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IASTokensResponseSchema"
+ }
+ }
+ },
+ "description": "IAS Tokens"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "tags": [
+ "IAS"
+ ]
+ }
+ },
+ "/api/v1/ias/tokens/{pk}": {
+ "get": {
+ "description": "Endpoint for retrieving IAS tokens for a specific user. If no token is provided, all tokens are returned. Only Admin users are able to view other users' tokens.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "The name of the IAS profile",
+ "in": "query",
+ "name": "profile",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IASTokensResponseSchema"
+ }
+ }
+ },
+ "description": "IAS Tokens"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "tags": [
+ "IAS"
+ ]
+ }
+ },
+ "/api/v1/lakehouse": {
+ "get": {
+ "description": "Disconnect a Lakehouse.",
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LakehouseGetListResponseSchema"
+ }
+ }
+ },
+ "description": "Lakehouse has been deleted"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get a list of all connected Lakehouses",
+ "tags": [
+ "Lakehouse"
+ ]
+ }
+ },
+ "/api/v1/lakehouse/{lakehouse_id}": {
+ "delete": {
+ "description": "Disconnect a Lakehouse.",
+ "parameters": [
+ {
+ "description": "The unique id of the lakehouse",
+ "in": "path",
+ "name": "lakehouse_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LakehouseDisconnectResponseSchema"
+ }
+ }
+ },
+ "description": "Lakehouse has been deleted"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Disconnect a Lakehouse and all catalogs",
+ "tags": [
+ "Lakehouse"
+ ]
+ },
+ "get": {
+ "description": "Get information regarding a connected Lakehouse",
+ "parameters": [
+ {
+ "description": "The unique id of the lakehouse",
+ "in": "path",
+ "name": "lakehouse_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LakehouseGetResponseSchema"
+ }
+ }
+ },
+ "description": "Lakehouses"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get information about a specific Lakehouse",
+ "tags": [
+ "Lakehouse"
+ ]
+ },
+ "post": {
+ "description": "Endpoint for connecting a Lakehouse and associated catalogs to the ACS Superset instance.",
+ "parameters": [
+ {
+ "description": "The unique id of the lakehouse",
+ "in": "path",
+ "name": "lakehouse_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LakehouseConnectRequestSchema"
+ }
+ }
+ },
+ "description": "Payload containing connection parameters.",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LakehouseConnectResponseSchema"
+ }
+ }
+ },
+ "description": "The connection task has been scheduled."
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Schedule a task to connect a Lakehouse and catalogs",
+ "tags": [
+ "Lakehouse"
+ ]
+ }
+ },
+ "/api/v1/lakehouse/{lakehouse_id}/dataset": {
+ "get": {
+ "description": "Endpoint for listing all virtual datasets on a Lakehouse",
+ "parameters": [
+ {
+ "description": "The unique id of the lakehouse",
+ "in": "path",
+ "name": "lakehouse_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "The catalog. Leave empty for all catalogs",
+ "in": "query",
+ "name": "catalog",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "The schema. Leave empty for all schemas",
+ "in": "query",
+ "name": "schema",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LakehouseDatasetListResponseSchema"
+ }
+ }
+ },
+ "description": "All virtual datasets satisfying the query params."
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get a list of virtual datasets",
+ "tags": [
+ "Lakehouse"
+ ]
+ },
+ "post": {
+ "description": "Endpoint for creating a virtual dataset from a query",
+ "parameters": [
+ {
+ "description": "The unique id of the lakehouse",
+ "in": "path",
+ "name": "lakehouse_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LakehouseDatasetRequestSchema"
+ }
+ }
+ },
+ "description": "Payload containing virtual dataset parameters.",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LakehouseDatasetResponseSchema"
+ }
+ }
+ },
+ "description": "The virtual dataset has been created."
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Create a virtual dataset out of a query",
+ "tags": [
+ "Lakehouse"
+ ]
+ }
+ },
+ "/api/v1/lakehouse/{lakehouse_id}/task/{task_id}/cancel": {
+ "post": {
+ "description": "Endpoint for cancelling a scheduled connection request.",
+ "parameters": [
+ {
+ "description": "The unique id of the lakehouse",
+ "in": "path",
+ "name": "lakehouse_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "The id of the connection task",
+ "in": "path",
+ "name": "task_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LakehouseConnectStatusResponseSchema"
+ }
+ }
+ },
+ "description": "The status of the task."
+ },
+ "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": []
+ }
+ ],
+ "summary": "Cancel a running task",
+ "tags": [
+ "Lakehouse"
+ ]
+ }
+ },
+ "/api/v1/lakehouse/{lakehouse_id}/task/{task_id}/result": {
+ "get": {
+ "description": "Endpoint for retrieving the payload of a scheduled connection request.",
+ "parameters": [
+ {
+ "description": "The unique id of the lakehouse",
+ "in": "path",
+ "name": "lakehouse_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "The id of the connection task",
+ "in": "path",
+ "name": "task_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LakehouseConnectResultResponseSchema"
+ }
+ }
+ },
+ "description": "The status of the task."
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get the payload of a completed connection task",
+ "tags": [
+ "Lakehouse"
+ ]
+ }
+ },
+ "/api/v1/lakehouse/{lakehouse_id}/task/{task_id}/status": {
+ "get": {
+ "description": "Endpoint for checking what the status of a scheduled connection request is.",
+ "parameters": [
+ {
+ "description": "The unique id of the lakehouse",
+ "in": "path",
+ "name": "lakehouse_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "The id of the connection task",
+ "in": "path",
+ "name": "task_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LakehouseConnectStatusResponseSchema"
+ }
+ }
+ },
+ "description": "The status of the task."
+ },
+ "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": []
+ }
+ ],
+ "summary": "Check the status of a connection task",
+ "tags": [
+ "Lakehouse"
+ ]
}
},
"/api/v1/log/": {
"get": {
- "description": "Get a list of models",
+ "description": "Gets a list of logs, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
@@ -17744,7 +21507,10 @@
"jwt": []
}
],
- "tags": ["LogRestApi"]
+ "summary": "Get a list of logs",
+ "tags": [
+ "LogRestApi"
+ ]
},
"post": {
"requestBody": {
@@ -17795,7 +21561,9 @@
"jwt": []
}
],
- "tags": ["LogRestApi"]
+ "tags": [
+ "LogRestApi"
+ ]
}
},
"/api/v1/log/recent_activity/": {
@@ -17852,7 +21620,9 @@
}
],
"summary": "Get recent activity data for a user",
- "tags": ["LogRestApi"]
+ "tags": [
+ "LogRestApi"
+ ]
}
},
"/api/v1/log/{pk}": {
@@ -17952,12 +21722,15 @@
"jwt": []
}
],
- "tags": ["LogRestApi"]
+ "summary": "Get a log detail information",
+ "tags": [
+ "LogRestApi"
+ ]
}
},
"/api/v1/me/": {
"get": {
- "description": "Returns the user object corresponding to the agent making the request, or returns a 401 error if the user is unauthenticated.",
+ "description": "Gets the user object corresponding to the agent making the request, or returns a 401 error if the user is unauthenticated.",
"responses": {
"200": {
"content": {
@@ -17978,12 +21751,15 @@
"$ref": "#/components/responses/401"
}
},
- "tags": ["Current User"]
+ "summary": "Get the user object",
+ "tags": [
+ "Current User"
+ ]
}
},
"/api/v1/me/roles/": {
"get": {
- "description": "Returns the user roles corresponding to the agent making the request, or returns a 401 error if the user is unauthenticated.",
+ "description": "Gets the user roles corresponding to the agent making the request, or returns a 401 error if the user is unauthenticated.",
"responses": {
"200": {
"content": {
@@ -18004,7 +21780,10 @@
"$ref": "#/components/responses/401"
}
},
- "tags": ["Current User"]
+ "summary": "Get the user roles",
+ "tags": [
+ "Current User"
+ ]
}
},
"/api/v1/menu/": {
@@ -18063,12 +21842,14 @@
"jwt": []
}
],
- "tags": ["Menu"]
+ "tags": [
+ "Menu"
+ ]
}
},
"/api/v1/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.",
+ "description": "Gets a list of queries, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
@@ -18170,7 +21951,10 @@
"jwt": []
}
],
- "tags": ["Queries"]
+ "summary": "Get a list of queries",
+ "tags": [
+ "Queries"
+ ]
}
},
"/api/v1/query/distinct/{column_name}": {
@@ -18225,7 +22009,10 @@
"jwt": []
}
],
- "tags": ["Queries"]
+ "summary": "Get distinct values from field data",
+ "tags": [
+ "Queries"
+ ]
}
},
"/api/v1/query/related/{column_name}": {
@@ -18280,7 +22067,10 @@
"jwt": []
}
],
- "tags": ["Queries"]
+ "summary": "Get related fields data",
+ "tags": [
+ "Queries"
+ ]
}
},
"/api/v1/query/stop": {
@@ -18331,7 +22121,9 @@
}
],
"summary": "Manually stop a query with client_id",
- "tags": ["Queries"]
+ "tags": [
+ "Queries"
+ ]
}
},
"/api/v1/query/updated_since": {
@@ -18388,12 +22180,14 @@
}
],
"summary": "Get a list of queries that changed after last_updated_ms",
- "tags": ["Queries"]
+ "tags": [
+ "Queries"
+ ]
}
},
"/api/v1/query/{pk}": {
"get": {
- "description": "Get query detail information.",
+ "description": "Get an item model",
"parameters": [
{
"in": "path",
@@ -18488,12 +22282,14 @@
"jwt": []
}
],
- "tags": ["Queries"]
+ "summary": "Get query detail information",
+ "tags": [
+ "Queries"
+ ]
}
},
"/api/v1/report/": {
"delete": {
- "description": "Deletes multiple report schedules in a bulk operation.",
"parameters": [
{
"content": {
@@ -18544,10 +22340,13 @@
"jwt": []
}
],
- "tags": ["Report Schedules"]
+ "summary": "Bulk delete report schedules",
+ "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.",
+ "description": "Gets a list of report schedules, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
@@ -18649,10 +22448,12 @@
"jwt": []
}
],
- "tags": ["Report Schedules"]
+ "summary": "Get a list of report schedules",
+ "tags": [
+ "Report Schedules"
+ ]
},
"post": {
- "description": "Create a report schedule",
"requestBody": {
"content": {
"application/json": {
@@ -18704,7 +22505,10 @@
"jwt": []
}
],
- "tags": ["Report Schedules"]
+ "summary": "Create a report schedule",
+ "tags": [
+ "Report Schedules"
+ ]
}
},
"/api/v1/report/_info": {
@@ -18788,7 +22592,10 @@
"jwt": []
}
],
- "tags": ["Report Schedules"]
+ "summary": "Get metadata information about this API resource",
+ "tags": [
+ "Report Schedules"
+ ]
}
},
"/api/v1/report/related/{column_name}": {
@@ -18843,12 +22650,84 @@
"jwt": []
}
],
- "tags": ["Report Schedules"]
+ "summary": "Get related fields data",
+ "tags": [
+ "Report Schedules"
+ ]
+ }
+ },
+ "/api/v1/report/slack_channels/": {
+ "get": {
+ "description": "Get slack channels",
+ "parameters": [
+ {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/get_slack_channels_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Slack channels"
+ },
+ "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": []
+ }
+ ],
+ "summary": "Get slack channels",
+ "tags": [
+ "Report Schedules"
+ ]
}
},
"/api/v1/report/{pk}": {
"delete": {
- "description": "Delete a report schedule",
"parameters": [
{
"description": "The report schedule pk",
@@ -18894,10 +22773,13 @@
"jwt": []
}
],
- "tags": ["Report Schedules"]
+ "summary": "Delete a report schedule",
+ "tags": [
+ "Report Schedules"
+ ]
},
"get": {
- "description": "Get a report schedule",
+ "description": "Get an item model",
"parameters": [
{
"in": "path",
@@ -18992,10 +22874,12 @@
"jwt": []
}
],
- "tags": ["Report Schedules"]
+ "summary": "Get a report schedule",
+ "tags": [
+ "Report Schedules"
+ ]
},
"put": {
- "description": "Update a report schedule",
"parameters": [
{
"description": "The Report Schedule pk",
@@ -19061,12 +22945,15 @@
"jwt": []
}
],
- "tags": ["Report Schedules"]
+ "summary": "Update a report schedule",
+ "tags": [
+ "Report Schedules"
+ ]
}
},
"/api/v1/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.",
+ "description": "Gets 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",
@@ -19138,12 +23025,14 @@
"jwt": []
}
],
- "tags": ["Report Schedules"]
+ "summary": "Get a list of report schedule logs",
+ "tags": [
+ "Report Schedules"
+ ]
}
},
"/api/v1/report/{pk}/log/{log_id}": {
"get": {
- "description": "Get a report schedule log",
"parameters": [
{
"description": "The report schedule pk for log",
@@ -19216,12 +23105,14 @@
"jwt": []
}
],
- "tags": ["Report Schedules"]
+ "summary": "Get a report schedule log",
+ "tags": [
+ "Report Schedules"
+ ]
}
},
"/api/v1/rowlevelsecurity/": {
"delete": {
- "description": "Deletes multiple RLS rules in a bulk operation.",
"parameters": [
{
"content": {
@@ -19272,10 +23163,13 @@
"jwt": []
}
],
- "tags": ["Row Level Security"]
+ "summary": "Bulk delete RLS rules",
+ "tags": [
+ "Row Level Security"
+ ]
},
"get": {
- "description": "Get a list of models",
+ "description": "Gets a list of RLS, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
@@ -19377,10 +23271,12 @@
"jwt": []
}
],
- "tags": ["Row Level Security"]
+ "summary": "Get a list of RLS",
+ "tags": [
+ "Row Level Security"
+ ]
},
"post": {
- "description": "Create a new RLS Rule",
"requestBody": {
"content": {
"application/json": {
@@ -19432,7 +23328,10 @@
"jwt": []
}
],
- "tags": ["Row Level Security"]
+ "summary": "Create a new RLS rule",
+ "tags": [
+ "Row Level Security"
+ ]
}
},
"/api/v1/rowlevelsecurity/_info": {
@@ -19516,7 +23415,10 @@
"jwt": []
}
],
- "tags": ["Row Level Security"]
+ "summary": "Get metadata information about this API resource",
+ "tags": [
+ "Row Level Security"
+ ]
}
},
"/api/v1/rowlevelsecurity/related/{column_name}": {
@@ -19571,7 +23473,10 @@
"jwt": []
}
],
- "tags": ["Row Level Security"]
+ "summary": "Get related fields data",
+ "tags": [
+ "Row Level Security"
+ ]
}
},
"/api/v1/rowlevelsecurity/{pk}": {
@@ -19617,7 +23522,10 @@
"jwt": []
}
],
- "tags": ["Row Level Security"]
+ "summary": "Delete an RLS",
+ "tags": [
+ "Row Level Security"
+ ]
},
"get": {
"description": "Get an item model",
@@ -19715,10 +23623,12 @@
"jwt": []
}
],
- "tags": ["Row Level Security"]
+ "summary": "Get an RLS",
+ "tags": [
+ "Row Level Security"
+ ]
},
"put": {
- "description": "Updates an RLS Rule",
"parameters": [
{
"description": "The Rule pk",
@@ -19784,12 +23694,14 @@
"jwt": []
}
],
- "tags": ["Row Level Security"]
+ "summary": "Update an RLS rule",
+ "tags": [
+ "Row Level Security"
+ ]
}
},
"/api/v1/saved_query/": {
"delete": {
- "description": "Deletes multiple saved queries in a bulk operation.",
"parameters": [
{
"content": {
@@ -19837,10 +23749,13 @@
"jwt": []
}
],
- "tags": ["Queries"]
+ "summary": "Bulk delete saved queries",
+ "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.",
+ "description": "Gets a list of saved queries, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
@@ -19942,10 +23857,12 @@
"jwt": []
}
],
- "tags": ["Queries"]
+ "summary": "Get a list of saved queries",
+ "tags": [
+ "Queries"
+ ]
},
"post": {
- "description": "Create a saved query",
"requestBody": {
"content": {
"application/json": {
@@ -19994,7 +23911,10 @@
"jwt": []
}
],
- "tags": ["Queries"]
+ "summary": "Create a saved query",
+ "tags": [
+ "Queries"
+ ]
}
},
"/api/v1/saved_query/_info": {
@@ -20078,7 +23998,10 @@
"jwt": []
}
],
- "tags": ["Queries"]
+ "summary": "Get metadata information about this API resource",
+ "tags": [
+ "Queries"
+ ]
}
},
"/api/v1/saved_query/distinct/{column_name}": {
@@ -20133,12 +24056,14 @@
"jwt": []
}
],
- "tags": ["Queries"]
+ "summary": "Get distinct values from field data",
+ "tags": [
+ "Queries"
+ ]
}
},
"/api/v1/saved_query/export/": {
"get": {
- "description": "Exports multiple saved queries and downloads them as YAML files",
"parameters": [
{
"content": {
@@ -20182,7 +24107,10 @@
"jwt": []
}
],
- "tags": ["Queries"]
+ "summary": "Download multiple saved queries as YAML files",
+ "tags": [
+ "Queries"
+ ]
}
},
"/api/v1/saved_query/import/": {
@@ -20258,7 +24186,10 @@
"jwt": []
}
],
- "tags": ["Queries"]
+ "summary": "Import saved queries with associated databases",
+ "tags": [
+ "Queries"
+ ]
}
},
"/api/v1/saved_query/related/{column_name}": {
@@ -20313,12 +24244,14 @@
"jwt": []
}
],
- "tags": ["Queries"]
+ "summary": "Get related fields data",
+ "tags": [
+ "Queries"
+ ]
}
},
"/api/v1/saved_query/{pk}": {
"delete": {
- "description": "Delete saved query",
"parameters": [
{
"in": "path",
@@ -20360,10 +24293,13 @@
"jwt": []
}
],
- "tags": ["Queries"]
+ "summary": "Delete a saved query",
+ "tags": [
+ "Queries"
+ ]
},
"get": {
- "description": "Get a saved query",
+ "description": "Get an item model",
"parameters": [
{
"in": "path",
@@ -20458,10 +24394,12 @@
"jwt": []
}
],
- "tags": ["Queries"]
+ "summary": "Get a saved query",
+ "tags": [
+ "Queries"
+ ]
},
"put": {
- "description": "Update a saved query",
"parameters": [
{
"in": "path",
@@ -20520,12 +24458,14 @@
"jwt": []
}
],
- "tags": ["Queries"]
+ "summary": "Update a saved query",
+ "tags": [
+ "Queries"
+ ]
}
},
"/api/v1/security/csrf_token/": {
"get": {
- "description": "Fetch the CSRF token",
"responses": {
"200": {
"content": {
@@ -20554,12 +24494,14 @@
"jwt": []
}
],
- "tags": ["Security"]
+ "summary": "Get the CSRF token",
+ "tags": [
+ "Security"
+ ]
}
},
"/api/v1/security/guest_token/": {
"post": {
- "description": "Fetches a guest token",
"requestBody": {
"content": {
"application/json": {
@@ -20602,7 +24544,10 @@
"jwt": []
}
],
- "tags": ["Security"]
+ "summary": "Get a guest token",
+ "tags": [
+ "Security"
+ ]
}
},
"/api/v1/security/login": {
@@ -20620,7 +24565,10 @@
},
"provider": {
"description": "Choose an authentication provider",
- "enum": ["db", "ldap"],
+ "enum": [
+ "db",
+ "ldap"
+ ],
"example": "db",
"type": "string"
},
@@ -20670,7 +24618,9 @@
"$ref": "#/components/responses/500"
}
},
- "tags": ["Security"]
+ "tags": [
+ "Security"
+ ]
}
},
"/api/v1/security/refresh": {
@@ -20705,7 +24655,47 @@
"jwt_refresh": []
}
],
- "tags": ["Security"]
+ "tags": [
+ "Security"
+ ]
+ }
+ },
+ "/api/v1/sqllab/": {
+ "get": {
+ "description": "Assembles SQLLab bootstrap data (active_tab, databases, queries, tab_state_ids) in a single endpoint. The data can be assembled from the current user's id.",
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SQLLabBootstrapSchema"
+ }
+ }
+ },
+ "description": "Returns the initial bootstrap data for SqlLab"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get the bootstrap data for SqlLab page",
+ "tags": [
+ "SQL Lab"
+ ]
}
},
"/api/v1/sqllab/estimate/": {
@@ -20755,13 +24745,14 @@
"jwt": []
}
],
- "summary": "Estimates the SQL query execution cost",
- "tags": ["SQL Lab"]
+ "summary": "Estimate the SQL query execution cost",
+ "tags": [
+ "SQL Lab"
+ ]
}
},
"/api/v1/sqllab/execute/": {
"post": {
- "description": "Starts the execution of a SQL query",
"requestBody": {
"content": {
"application/json": {
@@ -20815,7 +24806,10 @@
"jwt": []
}
],
- "tags": ["SQL Lab"]
+ "summary": "Execute a SQL query",
+ "tags": [
+ "SQL Lab"
+ ]
}
},
"/api/v1/sqllab/export/{client_id}/": {
@@ -20863,8 +24857,63 @@
"jwt": []
}
],
- "summary": "Exports the SQL query results to a CSV",
- "tags": ["SQL Lab"]
+ "summary": "Export the SQL query results to a CSV",
+ "tags": [
+ "SQL Lab"
+ ]
+ }
+ },
+ "/api/v1/sqllab/format_sql/": {
+ "post": {
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FormatQueryPayloadSchema"
+ }
+ }
+ },
+ "description": "SQL query",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Format SQL result"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Format SQL code",
+ "tags": [
+ "SQL Lab"
+ ]
}
},
"/api/v1/sqllab/results/": {
@@ -20917,13 +24966,15 @@
"jwt": []
}
],
- "summary": "Gets the result of a SQL query execution",
- "tags": ["SQL Lab"]
+ "summary": "Get the result of a SQL query execution",
+ "tags": [
+ "SQL Lab"
+ ]
}
},
"/api/v1/tag/": {
"delete": {
- "description": "Deletes multiple Tags. This will remove all tagged objects with this tag",
+ "description": "Bulk deletes tags. This will remove all tagged objects with this tag.",
"parameters": [
{
"content": {
@@ -20974,7 +25025,10 @@
"jwt": []
}
],
- "tags": ["Tags"]
+ "summary": "Bulk delete tags",
+ "tags": [
+ "Tags"
+ ]
},
"get": {
"description": "Get a list of tags, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
@@ -21079,9 +25133,13 @@
"jwt": []
}
],
- "tags": ["Tags"]
+ "summary": "Get a list of tags",
+ "tags": [
+ "Tags"
+ ]
},
"post": {
+ "description": "Create a new Tag",
"requestBody": {
"content": {
"application/json": {
@@ -21090,7 +25148,7 @@
}
}
},
- "description": "Model schema",
+ "description": "Tag schema",
"required": true
},
"responses": {
@@ -21100,7 +25158,7 @@
"schema": {
"properties": {
"id": {
- "type": "string"
+ "type": "number"
},
"result": {
"$ref": "#/components/schemas/TagRestApi.post"
@@ -21110,7 +25168,7 @@
}
}
},
- "description": "Item inserted"
+ "description": "Tag added"
},
"400": {
"$ref": "#/components/responses/400"
@@ -21130,12 +25188,15 @@
"jwt": []
}
],
- "tags": ["Tags"]
+ "summary": "Create a tag",
+ "tags": [
+ "Tags"
+ ]
}
},
"/api/v1/tag/_info": {
"get": {
- "description": "Several metadata information about tag API endpoints.",
+ "description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
@@ -21214,12 +25275,66 @@
"jwt": []
}
],
- "tags": ["Tags"]
+ "summary": "Get metadata information about tag API endpoints",
+ "tags": [
+ "Tags"
+ ]
+ }
+ },
+ "/api/v1/tag/bulk_create": {
+ "post": {
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TagPostBulkSchema"
+ }
+ }
+ },
+ "description": "Tag schema",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TagPostBulkResponseSchema"
+ }
+ }
+ },
+ "description": "Bulk created tags and tagged objects"
+ },
+ "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": []
+ }
+ ],
+ "summary": "Bulk create tags and tagged objects",
+ "tags": [
+ "Tags"
+ ]
}
},
"/api/v1/tag/favorite_status/": {
"get": {
- "description": "Check favorited dashboards for current user",
+ "description": "Get favorited tags for current user",
"parameters": [
{
"content": {
@@ -21262,12 +25377,13 @@
"jwt": []
}
],
- "tags": ["Tags"]
+ "tags": [
+ "Tags"
+ ]
}
},
"/api/v1/tag/get_objects/": {
"get": {
- "description": "Gets all objects associated with a Tag.",
"parameters": [
{
"in": "path",
@@ -21318,7 +25434,10 @@
"jwt": []
}
],
- "tags": ["Tags"]
+ "summary": "Get all objects associated with a tag",
+ "tags": [
+ "Tags"
+ ]
}
},
"/api/v1/tag/related/{column_name}": {
@@ -21373,12 +25492,15 @@
"jwt": []
}
],
- "tags": ["Tags"]
+ "summary": "Get related fields data",
+ "tags": [
+ "Tags"
+ ]
}
},
"/api/v1/tag/{object_type}/{object_id}/": {
"post": {
- "description": "Add tags to an object..",
+ "description": "Adds tags to an object. Creates new tags if they do not already exist.",
"parameters": [
{
"in": "path",
@@ -21442,12 +25564,14 @@
"jwt": []
}
],
- "tags": ["Tags"]
+ "summary": "Add tags to an object",
+ "tags": [
+ "Tags"
+ ]
}
},
"/api/v1/tag/{object_type}/{object_id}/{tag}/": {
"delete": {
- "description": "Deletes a Tagged Object.",
"parameters": [
{
"in": "path",
@@ -21511,7 +25635,10 @@
"jwt": []
}
],
- "tags": ["Tags"]
+ "summary": "Delete a tagged object",
+ "tags": [
+ "Tags"
+ ]
}
},
"/api/v1/tag/{pk}": {
@@ -21557,10 +25684,13 @@
"jwt": []
}
],
- "tags": ["Tags"]
+ "summary": "Delete a tag",
+ "tags": [
+ "Tags"
+ ]
},
"get": {
- "description": "Get a tag detail information.",
+ "description": "Get an item model",
"parameters": [
{
"in": "path",
@@ -21655,9 +25785,13 @@
"jwt": []
}
],
- "tags": ["Tags"]
+ "summary": "Get a tag detail information",
+ "tags": [
+ "Tags"
+ ]
},
"put": {
+ "description": "Changes a Tag.",
"parameters": [
{
"in": "path",
@@ -21676,7 +25810,7 @@
}
}
},
- "description": "Model schema",
+ "description": "Chart schema",
"required": true
},
"responses": {
@@ -21685,6 +25819,9 @@
"application/json": {
"schema": {
"properties": {
+ "id": {
+ "type": "number"
+ },
"result": {
"$ref": "#/components/schemas/TagRestApi.put"
}
@@ -21693,7 +25830,7 @@
}
}
},
- "description": "Item changed"
+ "description": "Tag changed"
},
"400": {
"$ref": "#/components/responses/400"
@@ -21701,6 +25838,9 @@
"401": {
"$ref": "#/components/responses/401"
},
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
"404": {
"$ref": "#/components/responses/404"
},
@@ -21716,7 +25856,10 @@
"jwt": []
}
],
- "tags": ["Tags"]
+ "summary": "Update a tag",
+ "tags": [
+ "Tags"
+ ]
}
},
"/api/v1/tag/{pk}/favorites/": {
@@ -21766,7 +25909,9 @@
"jwt": []
}
],
- "tags": ["Tags"]
+ "tags": [
+ "Tags"
+ ]
},
"post": {
"description": "Marks the tag as favorite for the current user",
@@ -21814,7 +25959,40 @@
"jwt": []
}
],
- "tags": ["Tags"]
+ "tags": [
+ "Tags"
+ ]
+ }
+ },
+ "/api/v1/user/{user_id}/avatar.png": {
+ "get": {
+ "description": "Gets the avatar URL for the user with the given ID, or returns a 401 error if the user is unauthenticated.",
+ "parameters": [
+ {
+ "description": "The ID of the user",
+ "in": "path",
+ "name": "user_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "301": {
+ "description": "A redirect to the user's avatar URL"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ }
+ },
+ "summary": "Get the user avatar",
+ "tags": [
+ "User"
+ ]
}
},
"/api/{version}/_openapi": {
@@ -21853,7 +26031,9 @@
"jwt": []
}
],
- "tags": ["OpenApi"]
+ "tags": [
+ "OpenApi"
+ ]
}
}
},
diff --git a/superset/tags/api.py b/superset/tags/api.py
index ad25ffe7c..7351a39a0 100644
--- a/superset/tags/api.py
+++ b/superset/tags/api.py
@@ -47,6 +47,7 @@ from superset.tags.schemas import (
openapi_spec_methods_override,
TaggedObjectEntityResponseSchema,
TagGetResponseSchema,
+ TagPostBulkResponseSchema,
TagPostBulkSchema,
TagPostSchema,
TagPutSchema,
@@ -132,6 +133,8 @@ class TagRestApi(BaseSupersetModelRestApi):
openapi_spec_component_schemas = (
TagGetResponseSchema,
TaggedObjectEntityResponseSchema,
+ TagPostBulkResponseSchema,
+ TagPostBulkSchema,
)
apispec_parameter_schemas = {
"delete_tags_schema": delete_tags_schema,
@@ -211,40 +214,21 @@ class TagRestApi(BaseSupersetModelRestApi):
"""Bulk create tags and tagged objects
---
post:
- summary: Get all objects associated with a tag
- parameters:
- - in: path
- schema:
- type: integer
- name: tag_id
+ summary: Bulk create tags and tagged objects
requestBody:
description: Tag schema
required: true
content:
application/json:
schema:
- type: object
- properties:
- tags:
- description: list of tag names to add to object
- type: array
- items:
- type: string
- objects_to_tag:
- description: list of object names to add to object
- type: array
- items:
- type: array
+ $ref: '#/components/schemas/TagPostBulkSchema'
responses:
200:
- description: Tag added to favorites
+ description: Bulk created tags and tagged objects
content:
application/json:
schema:
- type: object
- properties:
- result:
- type: object
+ $ref: '#/components/schemas/TagPostBulkResponseSchema'
302:
description: Redirects to the current digest
400:
@@ -267,6 +251,7 @@ class TagRestApi(BaseSupersetModelRestApi):
tagged_item: dict[str, Any] = self.add_model_schema.load(
{
"name": tag.get("name"),
+ "description": tag.get("description"),
"objects_to_tag": tag.get("objects_to_tag"),
}
)
diff --git a/superset/tags/schemas.py b/superset/tags/schemas.py
index 38676b429..89a5d4f46 100644
--- a/superset/tags/schemas.py
+++ b/superset/tags/schemas.py
@@ -53,21 +53,41 @@ class TaggedObjectEntityResponseSchema(Schema):
changed_on = fields.DateTime()
created_by = fields.Nested(UserSchema(exclude=["username"]))
creator = fields.String()
- tags = fields.List(fields.Nested(TagGetResponseSchema))
- owners = fields.List(fields.Nested(UserSchema))
+ tags = fields.List(fields.Nested(TagGetResponseSchema()))
+ owners = fields.List(fields.Nested(UserSchema()))
+
+
+objects_to_tag_field = fields.List(
+ fields.Tuple(
+ (
+ fields.String(metadata={"description": "type of resource"}),
+ fields.Int(validate=Range(min=1), metadata={"description": "resource id"}),
+ ),
+ ),
+ metadata={
+ "description": "Objects to tag",
+ },
+ required=False,
+)
class TagObjectSchema(Schema):
name = fields.String(validate=Length(min=1))
description = fields.String(required=False, allow_none=True)
- objects_to_tag = fields.List(
- fields.Tuple((fields.String(), fields.Int(validate=Range(min=1)))),
- required=False,
- )
+ objects_to_tag = objects_to_tag_field
class TagPostBulkSchema(Schema):
- tags = fields.List(fields.Nested(TagObjectSchema))
+ tags = fields.List(fields.Nested(TagObjectSchema()))
+
+
+class TagPostBulkResponseObjectSchema(Schema):
+ objects_tagged = objects_to_tag_field
+ objects_skipped = objects_to_tag_field
+
+
+class TagPostBulkResponseSchema(Schema):
+ result = fields.Nested(TagPostBulkResponseObjectSchema())
class TagPostSchema(TagObjectSchema):