diff --git a/docs/static/resources/openapi.json b/docs/static/resources/openapi.json
index 39ce305170b12..60c25fc5190d1 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,26 +1978,14 @@
"type": "string"
},
"type": {
- "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"
+ "enum": [
+ 1,
+ 2,
+ 3,
+ 4
+ ]
}
},
- "required": ["first_name", "last_name"],
"type": "object"
},
"ChartDataRestApi.get_list": {
@@ -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,41 +2230,13 @@
"type": "string"
}
},
- "required": ["first_name", "last_name"],
+ "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"],
- "type": "object"
- },
- "ChartDataRestApi.post": {
+ "ChartDataRestApi.post": {
"properties": {
"cache_timeout": {
"description": "Duration (in seconds) of the caching timeout for this chart. Note this defaults to the datasource/table timeout if undefined.",
@@ -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,26 +2798,14 @@
"type": "string"
},
"type": {
- "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"
+ "enum": [
+ 1,
+ 2,
+ 3,
+ 4
+ ]
}
},
- "required": ["first_name", "last_name"],
"type": "object"
},
"ChartRestApi.get_list": {
@@ -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,53 +3898,63 @@
},
"type": "object"
},
- "DashboardRestApi.get_list.Role": {
+ "DashboardRestApi.get_list.AppleUser": {
"properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
"id": {
"type": "integer"
},
- "name": {
+ "last_name": {
"maxLength": 64,
"type": "string"
}
},
- "required": ["name"],
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
- "DashboardRestApi.get_list.Tag": {
+ "DashboardRestApi.get_list.Role": {
"properties": {
"id": {
"type": "integer"
},
"name": {
- "maxLength": 250,
- "nullable": true,
+ "maxLength": 64,
"type": "string"
- },
- "type": {
- "enum": [1, 2, 3, 4]
}
},
+ "required": [
+ "name"
+ ],
"type": "object"
},
- "DashboardRestApi.get_list.User": {
+ "DashboardRestApi.get_list.Tag": {
"properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
- },
"id": {
"type": "integer"
},
- "last_name": {
- "maxLength": 64,
+ "name": {
+ "maxLength": 250,
+ "nullable": true,
"type": "string"
+ },
+ "type": {
+ "enum": [
+ 1,
+ 2,
+ 3,
+ 4
+ ]
}
},
- "required": ["first_name", "last_name"],
"type": "object"
},
- "DashboardRestApi.get_list.User1": {
+ "DashboardRestApi.get_list.User": {
"properties": {
"first_name": {
"maxLength": 64,
@@ -3470,10 +3968,13 @@
"type": "string"
}
},
- "required": ["first_name", "last_name"],
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
- "DashboardRestApi.get_list.User2": {
+ "DashboardRestApi.get_list.User1": {
"properties": {
"first_name": {
"maxLength": 64,
@@ -3487,7 +3988,10 @@
"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"],
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
- "DatasetRestApi.get.User2": {
+ "DatasetRestApi.get_list": {
"properties": {
- "first_name": {
- "maxLength": 64,
+ "catalog": {
+ "maxLength": 256,
+ "nullable": true,
"type": "string"
},
- "last_name": {
- "maxLength": 64,
- "type": "string"
- }
- },
- "required": ["first_name", "last_name"],
- "type": "object"
- },
- "DatasetRestApi.get_list": {
- "properties": {
"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,55 +5952,79 @@
"type": "string"
}
},
- "required": ["database", "table_name"],
+ "required": [
+ "database",
+ "table_name"
+ ],
"type": "object"
},
- "DatasetRestApi.get_list.Database": {
+ "DatasetRestApi.get_list.AppleUser": {
"properties": {
- "database_name": {
- "maxLength": 250,
+ "first_name": {
+ "maxLength": 64,
"type": "string"
},
"id": {
"type": "integer"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
}
},
- "required": ["database_name"],
+ "required": [
+ "first_name",
+ "last_name"
+ ],
"type": "object"
},
- "DatasetRestApi.get_list.User": {
+ "DatasetRestApi.get_list.Database": {
"properties": {
- "first_name": {
- "maxLength": 64,
+ "database_name": {
+ "maxLength": 250,
"type": "string"
},
"id": {
"type": "integer"
- },
- "last_name": {
- "maxLength": 64,
- "type": "string"
}
},
- "required": ["first_name", "last_name"],
+ "required": [
+ "database_name"
+ ],
"type": "object"
},
- "DatasetRestApi.get_list.User1": {
+ "DatasetRestApi.get_list.User": {
"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"
},
"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,18 +6308,44 @@
},
"type": "object"
},
- "EstimateQueryCostSchema": {
+ "EngineInformation": {
"properties": {
- "database_id": {
- "description": "The database id",
- "type": "integer"
+ "disable_ssh_tunneling": {
+ "description": "SSH tunnel is not available to the database",
+ "type": "boolean"
},
- "schema": {
- "description": "The database schema",
- "nullable": true,
- "type": "string"
+ "supports_dynamic_catalog": {
+ "description": "The database supports multiple catalogs in a single connection",
+ "type": "boolean"
},
- "sql": {
+ "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"
+ },
+ "schema": {
+ "description": "The database schema",
+ "nullable": true,
+ "type": "string"
+ },
+ "sql": {
"description": "The SQL query to estimate",
"type": "string"
},
@@ -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,1435 +6712,2080 @@
"$ref": "#/components/schemas/User2"
}
},
- "required": ["resources", "rls"],
+ "required": [
+ "resources",
+ "rls"
+ ],
"type": "object"
},
- "LogRestApi.get": {
+ "IASLoginTokenRequestSchema": {
"properties": {
- "action": {
- "maxLength": 512,
+ "access_token": {
+ "description": "IAS Access token. Can be requested by adding `token` to the `responseTypes`.",
"nullable": true,
"type": "string"
},
- "dashboard_id": {
- "nullable": true,
- "type": "integer"
- },
- "dttm": {
- "format": "date-time",
+ "client_id": {
+ "description": "IAS client id. Only needed if `refresh_token` is provided.",
"nullable": true,
"type": "string"
},
- "duration_ms": {
- "nullable": true,
- "type": "integer"
- },
- "json": {
+ "client_secret": {
+ "description": "IAS client secret. Only needed if `refresh_token` and `client_id` is provided.",
"nullable": true,
"type": "string"
},
- "referrer": {
- "maxLength": 1024,
- "nullable": true,
+ "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"
},
- "slice_id": {
- "nullable": true,
- "type": "integer"
- },
- "user": {
- "$ref": "#/components/schemas/LogRestApi.get.User"
- },
- "user_id": {
+ "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": "integer"
+ "type": "string"
}
},
+ "required": [
+ "id_token"
+ ],
"type": "object"
},
- "LogRestApi.get.User": {
+ "IASLoginTokenResponseSchema": {
"properties": {
- "username": {
- "maxLength": 64,
+ "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": ["username"],
+ "required": [
+ "access_token"
+ ],
"type": "object"
},
- "LogRestApi.get_list": {
+ "IASProfileResponse": {
"properties": {
- "action": {
- "maxLength": 512,
- "nullable": true,
- "type": "string"
- },
- "dashboard_id": {
- "nullable": true,
- "type": "integer"
- },
- "dttm": {
- "format": "date-time",
- "nullable": true,
- "type": "string"
- },
- "duration_ms": {
- "nullable": true,
- "type": "integer"
- },
- "json": {
- "nullable": true,
+ "client_id": {
+ "description": "The client id",
"type": "string"
},
- "referrer": {
- "maxLength": 1024,
- "nullable": true,
+ "profile": {
+ "description": "The IAS profile",
"type": "string"
},
- "slice_id": {
- "nullable": true,
- "type": "integer"
- },
- "user": {
- "$ref": "#/components/schemas/LogRestApi.get_list.User"
- },
- "user_id": {
- "nullable": true,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "LogRestApi.get_list.User": {
- "properties": {
- "username": {
- "maxLength": 64,
+ "scope": {
+ "description": "The scope of the client",
"type": "string"
}
},
- "required": ["username"],
+ "required": [
+ "client_id",
+ "profile"
+ ],
"type": "object"
},
- "LogRestApi.post": {
+ "IASProfilesResponseSchema": {
"properties": {
- "id": {
- "type": "integer"
+ "result": {
+ "description": "A list of all available IAS profiles",
+ "items": {
+ "$ref": "#/components/schemas/IASProfileResponse"
+ },
+ "type": "array"
}
},
"type": "object"
},
- "LogRestApi.put": {
+ "IASTokenResponse": {
"properties": {
- "action": {
- "maxLength": 512,
- "nullable": true,
+ "access_token": {
+ "description": "The access token",
"type": "string"
},
- "dttm": {
- "format": "date-time",
- "nullable": true,
- "type": "string"
+ "has_client_credentials": {
+ "description": "Are the original client credentials available or not",
+ "type": "boolean"
},
- "json": {
- "nullable": true,
+ "has_refresh_token": {
+ "description": "Is there a refresh token available or not",
+ "type": "boolean"
+ },
+ "ias_profile": {
+ "description": "The IAS profile",
"type": "string"
},
- "user": {
- "nullable": true
+ "id_token": {
+ "description": "The id token",
+ "type": "string"
}
},
+ "required": [
+ "has_client_credentials",
+ "has_refresh_token",
+ "ias_profile",
+ "id_token"
+ ],
"type": "object"
},
- "QueryExecutionResponseSchema": {
+ "IASTokensResponseSchema": {
"properties": {
- "columns": {
- "items": {
- "type": "object"
- },
- "type": "array"
- },
- "data": {
- "items": {
- "type": "object"
- },
- "type": "array"
- },
- "expanded_columns": {
- "items": {
- "type": "object"
- },
- "type": "array"
- },
- "query": {
- "$ref": "#/components/schemas/QueryResult"
- },
- "query_id": {
- "type": "integer"
- },
- "selected_columns": {
+ "result": {
+ "description": "A list of all requested tokens",
"items": {
- "type": "object"
+ "$ref": "#/components/schemas/IASTokenResponse"
},
"type": "array"
- },
- "status": {
- "type": "string"
}
},
"type": "object"
},
- "QueryRestApi.get": {
+ "ImportV1Database": {
"properties": {
- "changed_on": {
- "format": "date-time",
- "nullable": true,
- "type": "string"
+ "allow_csv_upload": {
+ "type": "boolean"
},
- "client_id": {
- "maxLength": 11,
- "type": "string"
+ "allow_ctas": {
+ "type": "boolean"
},
- "database": {
- "$ref": "#/components/schemas/QueryRestApi.get.Database"
+ "allow_cvas": {
+ "type": "boolean"
},
- "end_result_backend_time": {
- "nullable": true,
- "type": "number"
+ "allow_dml": {
+ "type": "boolean"
},
- "end_time": {
- "nullable": true,
- "type": "number"
+ "allow_run_async": {
+ "type": "boolean"
},
- "error_message": {
+ "cache_timeout": {
"nullable": true,
+ "type": "integer"
+ },
+ "database_name": {
"type": "string"
},
- "executed_sql": {
+ "expose_in_sqllab": {
+ "type": "boolean"
+ },
+ "external_url": {
"nullable": true,
"type": "string"
},
- "id": {
- "type": "integer"
+ "extra": {
+ "$ref": "#/components/schemas/ImportV1DatabaseExtra"
},
- "limit": {
- "nullable": true,
- "type": "integer"
+ "impersonate_user": {
+ "type": "boolean"
},
- "progress": {
+ "is_managed_externally": {
"nullable": true,
- "type": "integer"
+ "type": "boolean"
},
- "results_key": {
- "maxLength": 64,
+ "password": {
"nullable": true,
"type": "string"
},
- "rows": {
- "nullable": true,
- "type": "integer"
+ "sqlalchemy_uri": {
+ "type": "string"
},
- "schema": {
- "maxLength": 256,
- "nullable": true,
+ "ssh_tunnel": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/DatabaseSSHTunnel"
+ }
+ ],
+ "nullable": true
+ },
+ "uuid": {
+ "format": "uuid",
"type": "string"
},
- "select_as_cta": {
- "nullable": true,
+ "version": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "database_name",
+ "sqlalchemy_uri",
+ "uuid",
+ "version"
+ ],
+ "type": "object"
+ },
+ "ImportV1DatabaseExtra": {
+ "properties": {
+ "allow_multi_catalog": {
"type": "boolean"
},
- "select_as_cta_used": {
- "nullable": true,
+ "allows_virtual_table_explore": {
"type": "boolean"
},
- "select_sql": {
- "nullable": true,
- "type": "string"
+ "cancel_query_on_windows_unload": {
+ "type": "boolean"
},
- "sql": {
- "nullable": true,
- "type": "string"
+ "cost_estimate_enabled": {
+ "type": "boolean"
},
- "sql_editor_id": {
- "maxLength": 256,
- "nullable": true,
- "type": "string"
+ "disable_data_preview": {
+ "type": "boolean"
},
- "start_running_time": {
- "nullable": true,
- "type": "number"
+ "disable_drill_to_detail": {
+ "type": "boolean"
},
- "start_time": {
- "nullable": true,
- "type": "number"
+ "engine_params": {
+ "additionalProperties": {},
+ "type": "object"
},
- "status": {
- "maxLength": 16,
- "nullable": true,
- "type": "string"
+ "metadata_cache_timeout": {
+ "additionalProperties": {
+ "type": "integer"
+ },
+ "type": "object"
},
- "tab_name": {
- "maxLength": 256,
- "nullable": true,
- "type": "string"
+ "metadata_params": {
+ "additionalProperties": {},
+ "type": "object"
},
- "tmp_schema_name": {
- "maxLength": 256,
- "nullable": true,
- "type": "string"
+ "schemas_allowed_for_csv_upload": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
},
- "tmp_table_name": {
- "maxLength": 256,
+ "version": {
"nullable": true,
"type": "string"
- },
- "tracking_url": {
- "readOnly": true
}
},
- "required": ["client_id", "database"],
"type": "object"
},
- "QueryRestApi.get.Database": {
+ "LakehouseCatalog": {
"properties": {
- "id": {
+ "database_id": {
+ "description": "The numerical id of the database",
"type": "integer"
- }
- },
- "type": "object"
- },
- "QueryRestApi.get_list": {
- "properties": {
- "changed_on": {
- "format": "date-time",
- "type": "string"
- },
- "database": {
- "$ref": "#/components/schemas/Database1"
- },
- "end_time": {
- "type": "number"
},
- "executed_sql": {
+ "database_name": {
+ "description": "The name of the database",
"type": "string"
},
"id": {
+ "description": "The numerical id of the catalog",
"type": "integer"
},
- "rows": {
- "type": "integer"
- },
- "schema": {
+ "name": {
+ "description": "The name of the catalog",
"type": "string"
},
- "sql": {
+ "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"
},
- "sql_tables": {
- "readOnly": true
+ "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"
},
- "start_time": {
- "type": "number"
+ "dry_run": {
+ "description": "Should the task be executed in dry run mode. Useful for testing.",
+ "example": false,
+ "type": "boolean"
},
- "status": {
+ "engine_type": {
+ "description": "The type of the engine (only trino is currently supported)",
+ "enum": [
+ "trino"
+ ],
+ "example": "trino",
"type": "string"
},
- "tab_name": {
+ "engine_url": {
+ "description": "The URL to the engine",
+ "example": "https://myengine.corp.apple.com",
"type": "string"
},
- "tmp_table_name": {
+ "environment": {
+ "description": "Prod or Int",
+ "enum": [
+ "int",
+ "prod"
+ ],
+ "example": "int",
"type": "string"
},
- "tracking_url": {
+ "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"
},
- "user": {
- "$ref": "#/components/schemas/User"
+ "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"
},
- "QueryRestApi.post": {
+ "LakehouseConnectResponseSchema": {
"properties": {
- "id": {
- "type": "integer"
+ "task_id": {
+ "description": "The id of the connection task",
+ "type": "string"
}
},
"type": "object"
},
- "QueryRestApi.put": {
+ "LakehouseConnectResultResponseSchema": {
"properties": {
- "id": {
- "type": "integer"
+ "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"
},
- "QueryResult": {
+ "LakehouseConnectStatusResponseSchema": {
"properties": {
- "changed_on": {
- "format": "date-time",
+ "message": {
+ "description": "A message to provide additional context on what has happened",
"type": "string"
},
- "ctas": {
- "type": "boolean"
- },
- "db": {
+ "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"
},
- "dbId": {
- "type": "integer"
- },
- "endDttm": {
- "type": "number"
- },
- "errorMessage": {
+ "schema": {
+ "description": "The schema",
"nullable": true,
"type": "string"
},
- "executedSql": {
+ "sql": {
+ "description": "The virtual dataset query",
"type": "string"
- },
- "extra": {
- "type": "object"
- },
- "id": {
+ }
+ },
+ "required": [
+ "name",
+ "sql"
+ ],
+ "type": "object"
+ },
+ "LakehouseDatasetRequestSchema": {
+ "properties": {
+ "catalog": {
+ "description": "The catalog. If left empty, uses an arbitrary connected catalog.",
+ "nullable": true,
"type": "string"
},
- "limit": {
- "type": "integer"
- },
- "limitingFactor": {
+ "lakehouse_id": {
+ "description": "Deprecated, not used for anything",
"type": "string"
},
- "progress": {
- "type": "integer"
- },
- "queryId": {
- "type": "integer"
- },
- "resultsKey": {
+ "name": {
+ "description": "The name of the dataset to be created",
"type": "string"
},
- "rows": {
- "type": "integer"
+ "overwrite": {
+ "default": false,
+ "description": "Should the virtual dataset be overwritten if it already exists",
+ "type": "boolean"
},
"schema": {
+ "description": "The schema",
+ "nullable": true,
"type": "string"
},
- "serverId": {
- "type": "integer"
- },
"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"
},
- "sqlEditorId": {
+ "engine_url": {
+ "description": "The URL uf the engine",
"type": "string"
},
- "startDttm": {
- "type": "number"
+ "id": {
+ "description": "The unique id of the Lakehouse",
+ "type": "string"
},
- "state": {
+ "name": {
"type": "string"
},
- "tab": {
+ "superset_url": {
+ "description": "The URL uf the Superset instance",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "LogRestApi.get": {
+ "properties": {
+ "action": {
+ "maxLength": 512,
+ "nullable": true,
"type": "string"
},
- "tempSchema": {
+ "dashboard_id": {
+ "nullable": true,
+ "type": "integer"
+ },
+ "dttm": {
+ "format": "date-time",
"nullable": true,
"type": "string"
},
- "tempTable": {
+ "duration_ms": {
+ "nullable": true,
+ "type": "integer"
+ },
+ "json": {
"nullable": true,
"type": "string"
},
- "trackingUrl": {
+ "referrer": {
+ "maxLength": 1024,
"nullable": true,
"type": "string"
},
+ "slice_id": {
+ "nullable": true,
+ "type": "integer"
+ },
"user": {
- "type": "string"
+ "$ref": "#/components/schemas/LogRestApi.get.AppleUser"
},
- "userId": {
+ "user_id": {
+ "nullable": true,
"type": "integer"
}
},
"type": "object"
},
- "RLSRestApi.get": {
+ "LogRestApi.get.AppleUser": {
"properties": {
- "clause": {
- "description": "clause_description",
+ "username": {
+ "maxLength": 64,
"type": "string"
- },
- "description": {
- "description": "description_description",
+ }
+ },
+ "required": [
+ "username"
+ ],
+ "type": "object"
+ },
+ "LogRestApi.get_list": {
+ "properties": {
+ "action": {
+ "maxLength": 512,
+ "nullable": true,
"type": "string"
},
- "filter_type": {
- "description": "filter_type_description",
- "enum": ["Regular", "Base"],
- "type": "string"
+ "dashboard_id": {
+ "nullable": true,
+ "type": "integer"
},
- "group_key": {
- "description": "group_key_description",
+ "dttm": {
+ "format": "date-time",
+ "nullable": true,
"type": "string"
},
- "id": {
- "description": "id_description",
+ "duration_ms": {
+ "nullable": true,
"type": "integer"
},
- "name": {
- "description": "name_description",
+ "json": {
+ "nullable": true,
"type": "string"
},
- "roles": {
- "items": {
- "$ref": "#/components/schemas/Roles1"
- },
- "type": "array"
+ "referrer": {
+ "maxLength": 1024,
+ "nullable": true,
+ "type": "string"
},
- "tables": {
- "items": {
- "$ref": "#/components/schemas/Tables"
- },
- "type": "array"
+ "slice_id": {
+ "nullable": true,
+ "type": "integer"
+ },
+ "user": {
+ "$ref": "#/components/schemas/LogRestApi.get_list.AppleUser"
+ },
+ "user_id": {
+ "nullable": true,
+ "type": "integer"
}
},
"type": "object"
},
- "RLSRestApi.get_list": {
+ "LogRestApi.get_list.AppleUser": {
"properties": {
- "changed_on_delta_humanized": {
- "readOnly": true
- },
- "clause": {
- "description": "clause_description",
+ "username": {
+ "maxLength": 64,
"type": "string"
- },
- "description": {
- "description": "description_description",
+ }
+ },
+ "required": [
+ "username"
+ ],
+ "type": "object"
+ },
+ "LogRestApi.post": {
+ "properties": {
+ "id": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "LogRestApi.put": {
+ "properties": {
+ "action": {
+ "maxLength": 512,
+ "nullable": true,
"type": "string"
},
- "filter_type": {
- "description": "filter_type_description",
- "enum": ["Regular", "Base"],
+ "dttm": {
+ "format": "date-time",
+ "nullable": true,
"type": "string"
},
- "group_key": {
- "description": "group_key_description",
+ "json": {
+ "nullable": true,
"type": "string"
},
- "id": {
- "description": "id_description",
- "type": "integer"
+ "user": {
+ "nullable": true
+ }
+ },
+ "type": "object"
+ },
+ "QueryExecutionResponseSchema": {
+ "properties": {
+ "columns": {
+ "items": {
+ "type": "object"
+ },
+ "type": "array"
},
- "name": {
- "description": "name_description",
- "type": "string"
+ "data": {
+ "items": {
+ "type": "object"
+ },
+ "type": "array"
},
- "roles": {
+ "expanded_columns": {
"items": {
- "$ref": "#/components/schemas/Roles1"
+ "type": "object"
},
"type": "array"
},
- "tables": {
+ "query": {
+ "$ref": "#/components/schemas/QueryResult"
+ },
+ "query_id": {
+ "type": "integer"
+ },
+ "selected_columns": {
"items": {
- "$ref": "#/components/schemas/Tables"
+ "type": "object"
},
"type": "array"
+ },
+ "status": {
+ "type": "string"
}
},
"type": "object"
},
- "RLSRestApi.post": {
+ "QueryRestApi.get": {
"properties": {
- "clause": {
- "description": "clause_description",
- "type": "string"
- },
- "description": {
- "description": "description_description",
+ "changed_on": {
+ "format": "date-time",
"nullable": true,
"type": "string"
},
- "filter_type": {
- "description": "filter_type_description",
- "enum": ["Regular", "Base"],
+ "client_id": {
+ "maxLength": 11,
"type": "string"
},
- "group_key": {
- "description": "group_key_description",
+ "database": {
+ "$ref": "#/components/schemas/QueryRestApi.get.Database"
+ },
+ "end_result_backend_time": {
+ "nullable": true,
+ "type": "number"
+ },
+ "end_time": {
+ "nullable": true,
+ "type": "number"
+ },
+ "error_message": {
"nullable": true,
"type": "string"
},
- "name": {
- "description": "name_description",
- "maxLength": 255,
- "minLength": 1,
+ "executed_sql": {
+ "nullable": true,
"type": "string"
},
- "roles": {
- "description": "roles_description",
- "items": {
- "type": "integer"
- },
- "type": "array"
+ "id": {
+ "type": "integer"
},
- "tables": {
- "description": "tables_description",
- "items": {
- "type": "integer"
- },
- "minItems": 1,
- "type": "array"
- }
- },
- "required": ["clause", "filter_type", "name", "roles", "tables"],
- "type": "object"
- },
- "RLSRestApi.put": {
- "properties": {
- "clause": {
- "description": "clause_description",
+ "limit": {
+ "nullable": true,
+ "type": "integer"
+ },
+ "progress": {
+ "nullable": true,
+ "type": "integer"
+ },
+ "results_key": {
+ "maxLength": 64,
+ "nullable": true,
"type": "string"
},
- "description": {
- "description": "description_description",
+ "rows": {
+ "nullable": true,
+ "type": "integer"
+ },
+ "schema": {
+ "maxLength": 256,
"nullable": true,
"type": "string"
},
- "filter_type": {
- "description": "filter_type_description",
- "enum": ["Regular", "Base"],
+ "select_as_cta": {
+ "nullable": true,
+ "type": "boolean"
+ },
+ "select_as_cta_used": {
+ "nullable": true,
+ "type": "boolean"
+ },
+ "select_sql": {
+ "nullable": true,
"type": "string"
},
- "group_key": {
- "description": "group_key_description",
+ "sql": {
"nullable": true,
"type": "string"
},
- "name": {
- "description": "name_description",
- "maxLength": 255,
- "minLength": 1,
+ "sql_editor_id": {
+ "maxLength": 256,
+ "nullable": true,
"type": "string"
},
- "roles": {
- "description": "roles_description",
- "items": {
- "type": "integer"
- },
- "type": "array"
+ "start_running_time": {
+ "nullable": true,
+ "type": "number"
},
- "tables": {
- "description": "tables_description",
- "items": {
- "type": "integer"
- },
- "type": "array"
- }
- },
- "type": "object"
- },
- "RecentActivity": {
- "properties": {
- "action": {
- "description": "Action taken describing type of activity",
- "type": "string"
+ "start_time": {
+ "nullable": true,
+ "type": "number"
},
- "item_title": {
- "description": "Title of item",
+ "status": {
+ "maxLength": 16,
+ "nullable": true,
"type": "string"
},
- "item_type": {
- "description": "Type of item, e.g. slice or dashboard",
+ "tab_name": {
+ "maxLength": 256,
+ "nullable": true,
"type": "string"
},
- "item_url": {
- "description": "URL to item",
+ "tmp_schema_name": {
+ "maxLength": 256,
+ "nullable": true,
"type": "string"
},
- "time": {
- "description": "Time of activity, in epoch milliseconds",
- "type": "number"
- },
- "time_delta_humanized": {
- "description": "Human-readable description of how long ago activity took place.",
+ "tmp_table_name": {
+ "maxLength": 256,
+ "nullable": true,
"type": "string"
+ },
+ "tracking_url": {
+ "readOnly": true
}
},
+ "required": [
+ "client_id",
+ "database"
+ ],
"type": "object"
},
- "RecentActivityResponseSchema": {
+ "QueryRestApi.get.Database": {
"properties": {
- "result": {
- "description": "A list of recent activity objects",
- "items": {
- "$ref": "#/components/schemas/RecentActivity"
- },
- "type": "array"
+ "id": {
+ "type": "integer"
}
},
"type": "object"
},
- "RecentActivitySchema": {
+ "QueryRestApi.get_list": {
"properties": {
- "action": {
- "description": "Action taken describing type of activity",
+ "changed_on": {
+ "format": "date-time",
"type": "string"
},
- "item_title": {
- "description": "Title of item",
+ "database": {
+ "$ref": "#/components/schemas/Database1"
+ },
+ "end_time": {
+ "type": "number"
+ },
+ "executed_sql": {
"type": "string"
},
- "item_type": {
- "description": "Type of item, e.g. slice or dashboard",
+ "id": {
+ "type": "integer"
+ },
+ "rows": {
+ "type": "integer"
+ },
+ "schema": {
"type": "string"
},
- "item_url": {
- "description": "URL to item",
+ "sql": {
"type": "string"
},
- "time": {
- "description": "Time of activity, in epoch milliseconds",
+ "sql_tables": {
+ "readOnly": true
+ },
+ "start_time": {
"type": "number"
},
- "time_delta_humanized": {
- "description": "Human-readable description of how long ago activity took place.",
+ "status": {
+ "type": "string"
+ },
+ "tab_name": {
+ "type": "string"
+ },
+ "tmp_table_name": {
+ "type": "string"
+ },
+ "tracking_url": {
"type": "string"
+ },
+ "user": {
+ "$ref": "#/components/schemas/User"
}
},
"type": "object"
},
- "RelatedResponseSchema": {
+ "QueryRestApi.post": {
"properties": {
- "count": {
- "description": "The total number of related values",
+ "id": {
"type": "integer"
- },
- "result": {
- "items": {
- "$ref": "#/components/schemas/RelatedResultResponse"
- },
- "type": "array"
}
},
"type": "object"
},
- "RelatedResultResponse": {
+ "QueryRestApi.put": {
"properties": {
- "extra": {
- "description": "The extra metadata for related item",
- "type": "object"
- },
- "text": {
- "description": "The related item string representation",
- "type": "string"
- },
- "value": {
- "description": "The related item identifier",
+ "id": {
"type": "integer"
}
},
"type": "object"
},
- "ReportExecutionLogRestApi.get": {
+ "QueryResult": {
"properties": {
- "end_dttm": {
+ "changed_on": {
"format": "date-time",
- "nullable": true,
"type": "string"
},
- "error_message": {
- "nullable": true,
+ "ctas": {
+ "type": "boolean"
+ },
+ "db": {
"type": "string"
},
- "id": {
+ "dbId": {
"type": "integer"
},
- "scheduled_dttm": {
- "format": "date-time",
+ "endDttm": {
+ "type": "number"
+ },
+ "errorMessage": {
+ "nullable": true,
"type": "string"
},
- "start_dttm": {
- "format": "date-time",
- "nullable": true,
+ "executedSql": {
"type": "string"
},
- "state": {
- "maxLength": 50,
- "type": "string"
+ "extra": {
+ "type": "object"
},
- "uuid": {
- "format": "uuid",
- "nullable": true,
+ "id": {
"type": "string"
},
- "value": {
- "nullable": true,
- "type": "number"
+ "limit": {
+ "type": "integer"
},
- "value_row_json": {
- "nullable": true,
+ "limitingFactor": {
"type": "string"
- }
- },
- "required": ["scheduled_dttm", "state"],
- "type": "object"
- },
- "ReportExecutionLogRestApi.get_list": {
- "properties": {
- "end_dttm": {
- "format": "date-time",
- "nullable": true,
+ },
+ "progress": {
+ "type": "integer"
+ },
+ "queryId": {
+ "type": "integer"
+ },
+ "resultsKey": {
"type": "string"
},
- "error_message": {
- "nullable": true,
+ "rows": {
+ "type": "integer"
+ },
+ "schema": {
"type": "string"
},
- "id": {
+ "serverId": {
"type": "integer"
},
- "scheduled_dttm": {
- "format": "date-time",
+ "sql": {
"type": "string"
},
- "start_dttm": {
- "format": "date-time",
- "nullable": true,
+ "sqlEditorId": {
"type": "string"
},
+ "startDttm": {
+ "type": "number"
+ },
"state": {
- "maxLength": 50,
"type": "string"
},
- "uuid": {
- "format": "uuid",
+ "tab": {
+ "type": "string"
+ },
+ "tempSchema": {
"nullable": true,
"type": "string"
},
- "value": {
+ "tempTable": {
"nullable": true,
- "type": "number"
+ "type": "string"
},
- "value_row_json": {
+ "trackingUrl": {
"nullable": true,
"type": "string"
- }
- },
- "required": ["scheduled_dttm", "state"],
- "type": "object"
- },
- "ReportExecutionLogRestApi.post": {
- "properties": {
- "id": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "ReportExecutionLogRestApi.put": {
- "properties": {
- "id": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "ReportRecipient": {
- "properties": {
- "recipient_config_json": {
- "$ref": "#/components/schemas/ReportRecipientConfigJSON"
},
- "type": {
- "description": "The recipient type, check spec for valid options",
- "enum": ["Email", "Slack"],
+ "user": {
"type": "string"
+ },
+ "userId": {
+ "type": "integer"
}
},
- "required": ["type"],
"type": "object"
},
- "ReportRecipientConfigJSON": {
+ "RLSRestApi.get": {
"properties": {
- "target": {
+ "clause": {
+ "description": "clause_description",
"type": "string"
- }
- },
- "type": "object"
- },
- "ReportScheduleRestApi.get": {
- "properties": {
- "active": {
- "nullable": true,
- "type": "boolean"
- },
- "chart": {
- "$ref": "#/components/schemas/ReportScheduleRestApi.get.Slice"
},
- "context_markdown": {
- "nullable": true,
+ "description": {
+ "description": "description_description",
"type": "string"
},
- "creation_method": {
- "maxLength": 255,
- "nullable": true,
+ "filter_type": {
+ "description": "filter_type_description",
+ "enum": [
+ "Regular",
+ "Base"
+ ],
"type": "string"
},
- "crontab": {
- "maxLength": 1000,
+ "group_key": {
+ "description": "group_key_description",
"type": "string"
},
- "custom_width": {
- "nullable": true,
+ "id": {
+ "description": "id_description",
"type": "integer"
},
- "dashboard": {
- "$ref": "#/components/schemas/ReportScheduleRestApi.get.Dashboard"
- },
- "database": {
- "$ref": "#/components/schemas/ReportScheduleRestApi.get.Database"
- },
- "description": {
- "nullable": true,
+ "name": {
+ "description": "name_description",
"type": "string"
},
- "extra": {
- "readOnly": true
- },
- "force_screenshot": {
- "nullable": true,
- "type": "boolean"
+ "roles": {
+ "items": {
+ "$ref": "#/components/schemas/Roles1"
+ },
+ "type": "array"
},
- "grace_period": {
- "nullable": true,
- "type": "integer"
+ "tables": {
+ "items": {
+ "$ref": "#/components/schemas/Tables"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "RLSRestApi.get_list": {
+ "properties": {
+ "changed_by": {
+ "$ref": "#/components/schemas/User"
},
- "id": {
- "type": "integer"
+ "changed_on_delta_humanized": {
+ "readOnly": true
},
- "last_eval_dttm": {
- "format": "date-time",
- "nullable": true,
+ "clause": {
+ "description": "clause_description",
"type": "string"
},
- "last_state": {
- "maxLength": 50,
- "nullable": true,
+ "description": {
+ "description": "description_description",
"type": "string"
},
- "last_value": {
- "nullable": true,
- "type": "number"
+ "filter_type": {
+ "description": "filter_type_description",
+ "enum": [
+ "Regular",
+ "Base"
+ ],
+ "type": "string"
},
- "last_value_row_json": {
- "nullable": true,
+ "group_key": {
+ "description": "group_key_description",
"type": "string"
},
- "log_retention": {
- "nullable": true,
+ "id": {
+ "description": "id_description",
"type": "integer"
},
"name": {
- "maxLength": 150,
+ "description": "name_description",
"type": "string"
},
- "owners": {
- "$ref": "#/components/schemas/ReportScheduleRestApi.get.User"
- },
- "recipients": {
- "$ref": "#/components/schemas/ReportScheduleRestApi.get.ReportRecipients"
+ "roles": {
+ "items": {
+ "$ref": "#/components/schemas/Roles1"
+ },
+ "type": "array"
},
- "report_format": {
- "maxLength": 50,
- "nullable": true,
+ "tables": {
+ "items": {
+ "$ref": "#/components/schemas/Tables"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "RLSRestApi.post": {
+ "properties": {
+ "clause": {
+ "description": "clause_description",
"type": "string"
},
- "sql": {
+ "description": {
+ "description": "description_description",
"nullable": true,
"type": "string"
},
- "timezone": {
- "maxLength": 100,
- "type": "string"
- },
- "type": {
- "maxLength": 50,
+ "filter_type": {
+ "description": "filter_type_description",
+ "enum": [
+ "Regular",
+ "Base"
+ ],
"type": "string"
},
- "validator_config_json": {
+ "group_key": {
+ "description": "group_key_description",
"nullable": true,
"type": "string"
},
- "validator_type": {
- "maxLength": 100,
- "nullable": true,
+ "name": {
+ "description": "name_description",
+ "maxLength": 255,
+ "minLength": 1,
"type": "string"
},
- "working_timeout": {
- "nullable": true,
- "type": "integer"
- }
+ "roles": {
+ "description": "roles_description",
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ "tables": {
+ "description": "tables_description",
+ "items": {
+ "type": "integer"
+ },
+ "minItems": 1,
+ "type": "array"
+ }
},
- "required": ["crontab", "name", "recipients", "type"],
+ "required": [
+ "clause",
+ "filter_type",
+ "name",
+ "roles",
+ "tables"
+ ],
"type": "object"
},
- "ReportScheduleRestApi.get.Dashboard": {
+ "RLSRestApi.put": {
"properties": {
- "dashboard_title": {
- "maxLength": 500,
+ "clause": {
+ "description": "clause_description",
+ "type": "string"
+ },
+ "description": {
+ "description": "description_description",
"nullable": true,
"type": "string"
},
- "id": {
- "type": "integer"
+ "filter_type": {
+ "description": "filter_type_description",
+ "enum": [
+ "Regular",
+ "Base"
+ ],
+ "type": "string"
+ },
+ "group_key": {
+ "description": "group_key_description",
+ "nullable": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "name_description",
+ "maxLength": 255,
+ "minLength": 1,
+ "type": "string"
+ },
+ "roles": {
+ "description": "roles_description",
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ "tables": {
+ "description": "tables_description",
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
}
},
"type": "object"
},
- "ReportScheduleRestApi.get.Database": {
+ "RecentActivity": {
"properties": {
- "database_name": {
- "maxLength": 250,
+ "action": {
+ "description": "Action taken describing type of activity",
"type": "string"
},
- "id": {
- "type": "integer"
+ "item_title": {
+ "description": "Title of item",
+ "type": "string"
+ },
+ "item_type": {
+ "description": "Type of item, e.g. slice or dashboard",
+ "type": "string"
+ },
+ "item_url": {
+ "description": "URL to item",
+ "type": "string"
+ },
+ "time": {
+ "description": "Time of activity, in epoch milliseconds",
+ "type": "number"
+ },
+ "time_delta_humanized": {
+ "description": "Human-readable description of how long ago activity took place.",
+ "type": "string"
}
},
- "required": ["database_name"],
"type": "object"
},
- "ReportScheduleRestApi.get.ReportRecipients": {
+ "RecentActivityResponseSchema": {
"properties": {
- "id": {
- "type": "integer"
+ "result": {
+ "description": "A list of recent activity objects",
+ "items": {
+ "$ref": "#/components/schemas/RecentActivity"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "RecentActivitySchema": {
+ "properties": {
+ "action": {
+ "description": "Action taken describing type of activity",
+ "type": "string"
},
- "recipient_config_json": {
- "nullable": true,
+ "item_title": {
+ "description": "Title of item",
"type": "string"
},
- "type": {
- "maxLength": 50,
+ "item_type": {
+ "description": "Type of item, e.g. slice or dashboard",
+ "type": "string"
+ },
+ "item_url": {
+ "description": "URL to item",
+ "type": "string"
+ },
+ "time": {
+ "description": "Time of activity, in epoch milliseconds",
+ "type": "number"
+ },
+ "time_delta_humanized": {
+ "description": "Human-readable description of how long ago activity took place.",
"type": "string"
}
},
- "required": ["type"],
"type": "object"
},
- "ReportScheduleRestApi.get.Slice": {
+ "RelatedResponseSchema": {
"properties": {
- "id": {
+ "count": {
+ "description": "The total number of related values",
"type": "integer"
},
- "slice_name": {
- "maxLength": 250,
- "nullable": true,
- "type": "string"
- },
- "viz_type": {
- "maxLength": 250,
- "nullable": true,
- "type": "string"
+ "result": {
+ "items": {
+ "$ref": "#/components/schemas/RelatedResultResponse"
+ },
+ "type": "array"
}
},
"type": "object"
},
- "ReportScheduleRestApi.get.User": {
+ "RelatedResultResponse": {
"properties": {
- "first_name": {
- "maxLength": 64,
+ "extra": {
+ "description": "The extra metadata for related item",
+ "type": "object"
+ },
+ "text": {
+ "description": "The related item string representation",
"type": "string"
},
- "id": {
+ "value": {
+ "description": "The related item identifier",
"type": "integer"
- },
- "last_name": {
- "maxLength": 64,
- "type": "string"
}
},
- "required": ["first_name", "last_name"],
"type": "object"
},
- "ReportScheduleRestApi.get_list": {
+ "ReportExecutionLogRestApi.get": {
"properties": {
- "active": {
- "nullable": true,
- "type": "boolean"
- },
- "changed_by": {
- "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User2"
- },
- "changed_on": {
+ "end_dttm": {
"format": "date-time",
"nullable": true,
"type": "string"
},
- "changed_on_delta_humanized": {
- "readOnly": true
- },
- "chart_id": {
+ "error_message": {
"nullable": true,
- "type": "integer"
+ "type": "string"
},
- "created_by": {
- "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User"
+ "id": {
+ "type": "integer"
},
- "created_on": {
+ "scheduled_dttm": {
"format": "date-time",
- "nullable": true,
"type": "string"
},
- "creation_method": {
- "maxLength": 255,
+ "start_dttm": {
+ "format": "date-time",
"nullable": true,
"type": "string"
},
- "crontab": {
- "maxLength": 1000,
+ "state": {
+ "maxLength": 50,
"type": "string"
},
- "crontab_humanized": {
- "readOnly": true
+ "uuid": {
+ "format": "uuid",
+ "nullable": true,
+ "type": "string"
},
- "dashboard_id": {
+ "value": {
"nullable": true,
- "type": "integer"
+ "type": "number"
},
- "description": {
+ "value_row_json": {
+ "nullable": true,
+ "type": "string"
+ }
+ },
+ "required": [
+ "scheduled_dttm",
+ "state"
+ ],
+ "type": "object"
+ },
+ "ReportExecutionLogRestApi.get_list": {
+ "properties": {
+ "end_dttm": {
+ "format": "date-time",
"nullable": true,
"type": "string"
},
- "extra": {
- "readOnly": true
+ "error_message": {
+ "nullable": true,
+ "type": "string"
},
"id": {
"type": "integer"
},
- "last_eval_dttm": {
+ "scheduled_dttm": {
"format": "date-time",
- "nullable": true,
"type": "string"
},
- "last_state": {
- "maxLength": 50,
+ "start_dttm": {
+ "format": "date-time",
"nullable": true,
"type": "string"
},
- "name": {
- "maxLength": 150,
+ "state": {
+ "maxLength": 50,
"type": "string"
},
- "owners": {
- "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User1"
- },
- "recipients": {
- "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.ReportRecipients"
- },
- "timezone": {
- "maxLength": 100,
+ "uuid": {
+ "format": "uuid",
+ "nullable": true,
"type": "string"
},
- "type": {
- "maxLength": 50,
+ "value": {
+ "nullable": true,
+ "type": "number"
+ },
+ "value_row_json": {
+ "nullable": true,
"type": "string"
}
},
- "required": ["crontab", "name", "recipients", "type"],
+ "required": [
+ "scheduled_dttm",
+ "state"
+ ],
"type": "object"
},
- "ReportScheduleRestApi.get_list.ReportRecipients": {
+ "ReportExecutionLogRestApi.post": {
"properties": {
"id": {
"type": "integer"
- },
- "type": {
- "maxLength": 50,
- "type": "string"
}
},
- "required": ["type"],
"type": "object"
},
- "ReportScheduleRestApi.get_list.User": {
+ "ReportExecutionLogRestApi.put": {
"properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
- },
- "last_name": {
- "maxLength": 64,
- "type": "string"
+ "id": {
+ "type": "integer"
}
},
- "required": ["first_name", "last_name"],
"type": "object"
},
- "ReportScheduleRestApi.get_list.User1": {
+ "ReportRecipient": {
"properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
- },
- "id": {
- "type": "integer"
+ "recipient_config_json": {
+ "$ref": "#/components/schemas/ReportRecipientConfigJSON"
},
- "last_name": {
- "maxLength": 64,
+ "type": {
+ "description": "The recipient type, check spec for valid options",
+ "enum": [
+ "Email",
+ "Slack",
+ "SlackV2"
+ ],
"type": "string"
}
},
- "required": ["first_name", "last_name"],
+ "required": [
+ "type"
+ ],
"type": "object"
},
- "ReportScheduleRestApi.get_list.User2": {
+ "ReportRecipientConfigJSON": {
"properties": {
- "first_name": {
- "maxLength": 64,
+ "bccTarget": {
"type": "string"
},
- "last_name": {
- "maxLength": 64,
+ "ccTarget": {
+ "type": "string"
+ },
+ "target": {
"type": "string"
}
},
- "required": ["first_name", "last_name"],
"type": "object"
},
- "ReportScheduleRestApi.post": {
+ "ReportScheduleRestApi.get": {
"properties": {
"active": {
+ "nullable": true,
"type": "boolean"
},
"chart": {
- "nullable": true,
- "type": "integer"
+ "$ref": "#/components/schemas/ReportScheduleRestApi.get.Slice"
},
"context_markdown": {
- "description": "Markdown description",
"nullable": true,
"type": "string"
},
"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"]
+ "maxLength": 255,
+ "nullable": true,
+ "type": "string"
},
"crontab": {
- "description": "A CRON expression.[Crontab Guru](https://crontab.guru/) is a helpful resource that can help you craft a CRON expression.",
- "example": "*/5 * * * *",
"maxLength": 1000,
- "minLength": 1,
"type": "string"
},
"custom_width": {
- "description": "Custom width of the screenshot in pixels",
- "example": 1000,
"nullable": true,
"type": "integer"
},
"dashboard": {
- "nullable": true,
- "type": "integer"
+ "$ref": "#/components/schemas/ReportScheduleRestApi.get.Dashboard"
},
"database": {
- "type": "integer"
+ "$ref": "#/components/schemas/ReportScheduleRestApi.get.Database"
},
"description": {
- "description": "Use a nice description to give context to this Alert/Report",
- "example": "Daily sales dashboard to marketing",
+ "nullable": true,
+ "type": "string"
+ },
+ "email_subject": {
+ "maxLength": 255,
"nullable": true,
"type": "string"
},
"extra": {
- "type": "object"
+ "readOnly": true
},
"force_screenshot": {
+ "nullable": true,
"type": "boolean"
},
"grace_period": {
- "description": "Once an alert is triggered, how long, in seconds, before Superset nags you again. (in seconds)",
- "example": 14400,
- "minimum": 1,
+ "nullable": true,
+ "type": "integer"
+ },
+ "id": {
"type": "integer"
},
+ "last_eval_dttm": {
+ "format": "date-time",
+ "nullable": true,
+ "type": "string"
+ },
+ "last_state": {
+ "maxLength": 50,
+ "nullable": true,
+ "type": "string"
+ },
+ "last_value": {
+ "nullable": true,
+ "type": "number"
+ },
+ "last_value_row_json": {
+ "nullable": true,
+ "type": "string"
+ },
"log_retention": {
- "description": "How long to keep the logs around for this report (in days)",
- "example": 90,
- "minimum": 1,
+ "nullable": true,
"type": "integer"
},
"name": {
- "description": "The report schedule name.",
- "example": "Daily dashboard email",
"maxLength": 150,
- "minLength": 1,
"type": "string"
},
"owners": {
- "items": {
- "description": "Owner are users ids allowed to delete or change this report. If left empty you will be one of the owners of the report.",
- "type": "integer"
- },
- "type": "array"
+ "$ref": "#/components/schemas/ReportScheduleRestApi.get.AppleUser"
},
"recipients": {
- "items": {
- "$ref": "#/components/schemas/ReportRecipient"
- },
- "type": "array"
+ "$ref": "#/components/schemas/ReportScheduleRestApi.get.ReportRecipients"
},
"report_format": {
- "enum": ["PNG", "CSV", "TEXT"],
- "type": "string"
- },
- "selected_tabs": {
- "items": {
- "type": "integer"
- },
+ "maxLength": 50,
"nullable": true,
- "type": "array"
+ "type": "string"
},
"sql": {
- "description": "A SQL statement that defines whether the alert should get triggered or not. The query is expected to return either NULL or a number value.",
- "example": "SELECT value FROM time_series_table",
+ "nullable": true,
"type": "string"
},
"timezone": {
- "description": "A timezone string that represents the location of the timezone.",
- "enum": [
- "Africa/Abidjan",
- "Africa/Accra",
- "Africa/Addis_Ababa",
- "Africa/Algiers",
- "Africa/Asmara",
- "Africa/Asmera",
- "Africa/Bamako",
- "Africa/Bangui",
- "Africa/Banjul",
- "Africa/Bissau",
- "Africa/Blantyre",
- "Africa/Brazzaville",
- "Africa/Bujumbura",
- "Africa/Cairo",
- "Africa/Casablanca",
- "Africa/Ceuta",
- "Africa/Conakry",
- "Africa/Dakar",
- "Africa/Dar_es_Salaam",
- "Africa/Djibouti",
- "Africa/Douala",
- "Africa/El_Aaiun",
- "Africa/Freetown",
- "Africa/Gaborone",
- "Africa/Harare",
- "Africa/Johannesburg",
- "Africa/Juba",
- "Africa/Kampala",
- "Africa/Khartoum",
- "Africa/Kigali",
- "Africa/Kinshasa",
- "Africa/Lagos",
- "Africa/Libreville",
- "Africa/Lome",
- "Africa/Luanda",
- "Africa/Lubumbashi",
- "Africa/Lusaka",
- "Africa/Malabo",
- "Africa/Maputo",
- "Africa/Maseru",
- "Africa/Mbabane",
- "Africa/Mogadishu",
- "Africa/Monrovia",
- "Africa/Nairobi",
- "Africa/Ndjamena",
- "Africa/Niamey",
- "Africa/Nouakchott",
- "Africa/Ouagadougou",
- "Africa/Porto-Novo",
- "Africa/Sao_Tome",
- "Africa/Timbuktu",
- "Africa/Tripoli",
- "Africa/Tunis",
- "Africa/Windhoek",
- "America/Adak",
- "America/Anchorage",
- "America/Anguilla",
- "America/Antigua",
- "America/Araguaina",
- "America/Argentina/Buenos_Aires",
- "America/Argentina/Catamarca",
- "America/Argentina/ComodRivadavia",
- "America/Argentina/Cordoba",
- "America/Argentina/Jujuy",
- "America/Argentina/La_Rioja",
- "America/Argentina/Mendoza",
- "America/Argentina/Rio_Gallegos",
- "America/Argentina/Salta",
- "America/Argentina/San_Juan",
- "America/Argentina/San_Luis",
- "America/Argentina/Tucuman",
- "America/Argentina/Ushuaia",
- "America/Aruba",
- "America/Asuncion",
- "America/Atikokan",
- "America/Atka",
- "America/Bahia",
- "America/Bahia_Banderas",
- "America/Barbados",
- "America/Belem",
- "America/Belize",
- "America/Blanc-Sablon",
- "America/Boa_Vista",
- "America/Bogota",
- "America/Boise",
- "America/Buenos_Aires",
- "America/Cambridge_Bay",
- "America/Campo_Grande",
- "America/Cancun",
- "America/Caracas",
- "America/Catamarca",
- "America/Cayenne",
- "America/Cayman",
- "America/Chicago",
- "America/Chihuahua",
- "America/Coral_Harbour",
- "America/Cordoba",
- "America/Costa_Rica",
- "America/Creston",
- "America/Cuiaba",
- "America/Curacao",
- "America/Danmarkshavn",
- "America/Dawson",
- "America/Dawson_Creek",
- "America/Denver",
- "America/Detroit",
- "America/Dominica",
- "America/Edmonton",
- "America/Eirunepe",
- "America/El_Salvador",
- "America/Ensenada",
- "America/Fort_Nelson",
- "America/Fort_Wayne",
- "America/Fortaleza",
- "America/Glace_Bay",
- "America/Godthab",
- "America/Goose_Bay",
- "America/Grand_Turk",
- "America/Grenada",
- "America/Guadeloupe",
- "America/Guatemala",
- "America/Guayaquil",
- "America/Guyana",
- "America/Halifax",
- "America/Havana",
- "America/Hermosillo",
- "America/Indiana/Indianapolis",
- "America/Indiana/Knox",
- "America/Indiana/Marengo",
- "America/Indiana/Petersburg",
+ "maxLength": 100,
+ "type": "string"
+ },
+ "type": {
+ "maxLength": 50,
+ "type": "string"
+ },
+ "validator_config_json": {
+ "nullable": true,
+ "type": "string"
+ },
+ "validator_type": {
+ "maxLength": 100,
+ "nullable": true,
+ "type": "string"
+ },
+ "working_timeout": {
+ "nullable": true,
+ "type": "integer"
+ }
+ },
+ "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": {
+ "properties": {
+ "dashboard_title": {
+ "maxLength": 500,
+ "nullable": true,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "ReportScheduleRestApi.get.Database": {
+ "properties": {
+ "database_name": {
+ "maxLength": 250,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "database_name"
+ ],
+ "type": "object"
+ },
+ "ReportScheduleRestApi.get.ReportRecipients": {
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "recipient_config_json": {
+ "nullable": true,
+ "type": "string"
+ },
+ "type": {
+ "maxLength": 50,
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ },
+ "ReportScheduleRestApi.get.Slice": {
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "slice_name": {
+ "maxLength": 250,
+ "nullable": true,
+ "type": "string"
+ },
+ "viz_type": {
+ "maxLength": 250,
+ "nullable": true,
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "ReportScheduleRestApi.get_list": {
+ "properties": {
+ "active": {
+ "nullable": true,
+ "type": "boolean"
+ },
+ "changed_by": {
+ "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User"
+ },
+ "changed_on": {
+ "format": "date-time",
+ "nullable": true,
+ "type": "string"
+ },
+ "changed_on_delta_humanized": {
+ "readOnly": true
+ },
+ "chart_id": {
+ "nullable": true,
+ "type": "integer"
+ },
+ "created_by": {
+ "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User1"
+ },
+ "created_on": {
+ "format": "date-time",
+ "nullable": true,
+ "type": "string"
+ },
+ "creation_method": {
+ "maxLength": 255,
+ "nullable": true,
+ "type": "string"
+ },
+ "crontab": {
+ "maxLength": 1000,
+ "type": "string"
+ },
+ "crontab_humanized": {
+ "readOnly": true
+ },
+ "dashboard_id": {
+ "nullable": true,
+ "type": "integer"
+ },
+ "description": {
+ "nullable": true,
+ "type": "string"
+ },
+ "extra": {
+ "readOnly": true
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_eval_dttm": {
+ "format": "date-time",
+ "nullable": true,
+ "type": "string"
+ },
+ "last_state": {
+ "maxLength": 50,
+ "nullable": true,
+ "type": "string"
+ },
+ "name": {
+ "maxLength": 150,
+ "type": "string"
+ },
+ "owners": {
+ "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.AppleUser"
+ },
+ "recipients": {
+ "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.ReportRecipients"
+ },
+ "timezone": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "type": {
+ "maxLength": 50,
+ "type": "string"
+ }
+ },
+ "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": {
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "type": {
+ "maxLength": 50,
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ },
+ "ReportScheduleRestApi.get_list.User": {
+ "properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": [
+ "first_name",
+ "last_name"
+ ],
+ "type": "object"
+ },
+ "ReportScheduleRestApi.get_list.User1": {
+ "properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": [
+ "first_name",
+ "last_name"
+ ],
+ "type": "object"
+ },
+ "ReportScheduleRestApi.post": {
+ "properties": {
+ "active": {
+ "type": "boolean"
+ },
+ "chart": {
+ "nullable": true,
+ "type": "integer"
+ },
+ "context_markdown": {
+ "description": "Markdown description",
+ "nullable": true,
+ "type": "string"
+ },
+ "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"
+ ]
+ },
+ "crontab": {
+ "description": "A CRON expression.[Crontab Guru](https://crontab.guru/) is a helpful resource that can help you craft a CRON expression.",
+ "example": "*/5 * * * *",
+ "maxLength": 1000,
+ "minLength": 1,
+ "type": "string"
+ },
+ "custom_width": {
+ "description": "Custom width of the screenshot in pixels",
+ "example": 1000,
+ "nullable": true,
+ "type": "integer"
+ },
+ "dashboard": {
+ "nullable": true,
+ "type": "integer"
+ },
+ "database": {
+ "type": "integer"
+ },
+ "description": {
+ "description": "Use a nice description to give context to this Alert/Report",
+ "example": "Daily sales dashboard to marketing",
+ "nullable": true,
+ "type": "string"
+ },
+ "email_subject": {
+ "description": "The report schedule subject line",
+ "example": "[Report] Report name: Dashboard or chart name",
+ "nullable": true,
+ "type": "string"
+ },
+ "extra": {
+ "type": "object"
+ },
+ "force_screenshot": {
+ "type": "boolean"
+ },
+ "grace_period": {
+ "description": "Once an alert is triggered, how long, in seconds, before Superset nags you again. (in seconds)",
+ "example": 14400,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "log_retention": {
+ "description": "How long to keep the logs around for this report (in days)",
+ "example": 90,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "name": {
+ "description": "The report schedule name.",
+ "example": "Daily dashboard email",
+ "maxLength": 150,
+ "minLength": 1,
+ "type": "string"
+ },
+ "owners": {
+ "items": {
+ "description": "Owner are users ids allowed to delete or change this report. If left empty you will be one of the owners of the report.",
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ "recipients": {
+ "items": {
+ "$ref": "#/components/schemas/ReportRecipient"
+ },
+ "type": "array"
+ },
+ "report_format": {
+ "enum": [
+ "PDF",
+ "PNG",
+ "CSV",
+ "TEXT"
+ ],
+ "type": "string"
+ },
+ "selected_tabs": {
+ "items": {
+ "type": "integer"
+ },
+ "nullable": true,
+ "type": "array"
+ },
+ "sql": {
+ "description": "A SQL statement that defines whether the alert should get triggered or not. The query is expected to return either NULL or a number value.",
+ "example": "SELECT value FROM time_series_table",
+ "type": "string"
+ },
+ "timezone": {
+ "description": "A timezone string that represents the location of the timezone.",
+ "enum": [
+ "Africa/Abidjan",
+ "Africa/Accra",
+ "Africa/Addis_Ababa",
+ "Africa/Algiers",
+ "Africa/Asmara",
+ "Africa/Asmera",
+ "Africa/Bamako",
+ "Africa/Bangui",
+ "Africa/Banjul",
+ "Africa/Bissau",
+ "Africa/Blantyre",
+ "Africa/Brazzaville",
+ "Africa/Bujumbura",
+ "Africa/Cairo",
+ "Africa/Casablanca",
+ "Africa/Ceuta",
+ "Africa/Conakry",
+ "Africa/Dakar",
+ "Africa/Dar_es_Salaam",
+ "Africa/Djibouti",
+ "Africa/Douala",
+ "Africa/El_Aaiun",
+ "Africa/Freetown",
+ "Africa/Gaborone",
+ "Africa/Harare",
+ "Africa/Johannesburg",
+ "Africa/Juba",
+ "Africa/Kampala",
+ "Africa/Khartoum",
+ "Africa/Kigali",
+ "Africa/Kinshasa",
+ "Africa/Lagos",
+ "Africa/Libreville",
+ "Africa/Lome",
+ "Africa/Luanda",
+ "Africa/Lubumbashi",
+ "Africa/Lusaka",
+ "Africa/Malabo",
+ "Africa/Maputo",
+ "Africa/Maseru",
+ "Africa/Mbabane",
+ "Africa/Mogadishu",
+ "Africa/Monrovia",
+ "Africa/Nairobi",
+ "Africa/Ndjamena",
+ "Africa/Niamey",
+ "Africa/Nouakchott",
+ "Africa/Ouagadougou",
+ "Africa/Porto-Novo",
+ "Africa/Sao_Tome",
+ "Africa/Timbuktu",
+ "Africa/Tripoli",
+ "Africa/Tunis",
+ "Africa/Windhoek",
+ "America/Adak",
+ "America/Anchorage",
+ "America/Anguilla",
+ "America/Antigua",
+ "America/Araguaina",
+ "America/Argentina/Buenos_Aires",
+ "America/Argentina/Catamarca",
+ "America/Argentina/ComodRivadavia",
+ "America/Argentina/Cordoba",
+ "America/Argentina/Jujuy",
+ "America/Argentina/La_Rioja",
+ "America/Argentina/Mendoza",
+ "America/Argentina/Rio_Gallegos",
+ "America/Argentina/Salta",
+ "America/Argentina/San_Juan",
+ "America/Argentina/San_Luis",
+ "America/Argentina/Tucuman",
+ "America/Argentina/Ushuaia",
+ "America/Aruba",
+ "America/Asuncion",
+ "America/Atikokan",
+ "America/Atka",
+ "America/Bahia",
+ "America/Bahia_Banderas",
+ "America/Barbados",
+ "America/Belem",
+ "America/Belize",
+ "America/Blanc-Sablon",
+ "America/Boa_Vista",
+ "America/Bogota",
+ "America/Boise",
+ "America/Buenos_Aires",
+ "America/Cambridge_Bay",
+ "America/Campo_Grande",
+ "America/Cancun",
+ "America/Caracas",
+ "America/Catamarca",
+ "America/Cayenne",
+ "America/Cayman",
+ "America/Chicago",
+ "America/Chihuahua",
+ "America/Ciudad_Juarez",
+ "America/Coral_Harbour",
+ "America/Cordoba",
+ "America/Costa_Rica",
+ "America/Creston",
+ "America/Cuiaba",
+ "America/Curacao",
+ "America/Danmarkshavn",
+ "America/Dawson",
+ "America/Dawson_Creek",
+ "America/Denver",
+ "America/Detroit",
+ "America/Dominica",
+ "America/Edmonton",
+ "America/Eirunepe",
+ "America/El_Salvador",
+ "America/Ensenada",
+ "America/Fort_Nelson",
+ "America/Fort_Wayne",
+ "America/Fortaleza",
+ "America/Glace_Bay",
+ "America/Godthab",
+ "America/Goose_Bay",
+ "America/Grand_Turk",
+ "America/Grenada",
+ "America/Guadeloupe",
+ "America/Guatemala",
+ "America/Guayaquil",
+ "America/Guyana",
+ "America/Halifax",
+ "America/Havana",
+ "America/Hermosillo",
+ "America/Indiana/Indianapolis",
+ "America/Indiana/Knox",
+ "America/Indiana/Marengo",
+ "America/Indiana/Petersburg",
"America/Indiana/Tell_City",
"America/Indiana/Vevay",
"America/Indiana/Vincennes",
@@ -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",
@@ -8484,1285 +9995,3341 @@
],
"type": "string"
},
- "type": {
- "description": "The report schedule type",
- "enum": ["Alert", "Report"],
+ "type": {
+ "description": "The report schedule type",
+ "enum": [
+ "Alert",
+ "Report"
+ ],
+ "type": "string"
+ },
+ "validator_config_json": {
+ "$ref": "#/components/schemas/ValidatorConfigJSON"
+ },
+ "validator_type": {
+ "description": "Determines when to trigger alert based off value from alert query. Alerts will be triggered with these validator types:\n- Not Null - When the return value is Not NULL, Empty, or 0\n- Operator - When `sql_return_value comparison_operator threshold` is True e.g. `50 <= 75`
Supports the comparison operators <, <=, >, >=, ==, and !=",
+ "enum": [
+ "not null",
+ "operator"
+ ],
+ "nullable": true,
+ "type": "string"
+ },
+ "working_timeout": {
+ "description": "If an alert is staled at a working state, how long until it's state is reset to error",
+ "example": 3600,
+ "minimum": 1,
+ "nullable": true,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "Resource": {
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "dashboard"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "RlsRule": {
+ "properties": {
+ "clause": {
+ "type": "string"
+ },
+ "dataset": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "clause"
+ ],
+ "type": "object"
+ },
+ "Roles": {
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "Roles1": {
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "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.User1"
+ },
+ "database": {
+ "$ref": "#/components/schemas/SavedQueryRestApi.get.Database"
+ },
+ "description": {
+ "nullable": true,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "label": {
+ "maxLength": 256,
+ "nullable": true,
+ "type": "string"
+ },
+ "schema": {
+ "maxLength": 128,
+ "nullable": true,
+ "type": "string"
+ },
+ "sql": {
+ "nullable": true,
+ "type": "string"
+ },
+ "sql_tables": {
+ "readOnly": true
+ },
+ "template_parameters": {
+ "nullable": true,
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "SavedQueryRestApi.get.Database": {
+ "properties": {
+ "database_name": {
+ "maxLength": 250,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "database_name"
+ ],
+ "type": "object"
+ },
+ "SavedQueryRestApi.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"
+ },
+ "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.User1"
+ },
+ "created_on": {
+ "format": "date-time",
+ "nullable": true,
+ "type": "string"
+ },
+ "database": {
+ "$ref": "#/components/schemas/SavedQueryRestApi.get_list.Database"
+ },
+ "db_id": {
+ "nullable": true,
+ "type": "integer"
+ },
+ "description": {
+ "nullable": true,
+ "type": "string"
+ },
+ "extra": {
+ "readOnly": true
+ },
+ "id": {
+ "type": "integer"
+ },
+ "label": {
+ "maxLength": 256,
+ "nullable": true,
+ "type": "string"
+ },
+ "last_run_delta_humanized": {
+ "readOnly": true
+ },
+ "rows": {
+ "nullable": true,
+ "type": "integer"
+ },
+ "schema": {
+ "maxLength": 128,
+ "nullable": true,
+ "type": "string"
+ },
+ "sql": {
+ "nullable": true,
+ "type": "string"
+ },
+ "sql_tables": {
+ "readOnly": true
+ },
+ "tags": {
+ "$ref": "#/components/schemas/SavedQueryRestApi.get_list.Tag"
+ }
+ },
+ "type": "object"
+ },
+ "SavedQueryRestApi.get_list.Database": {
+ "properties": {
+ "database_name": {
+ "maxLength": 250,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "database_name"
+ ],
+ "type": "object"
+ },
+ "SavedQueryRestApi.get_list.Tag": {
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "maxLength": 250,
+ "nullable": true,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ 1,
+ 2,
+ 3,
+ 4
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "SavedQueryRestApi.get_list.User": {
+ "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.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"
+ },
+ "description": {
+ "nullable": true,
+ "type": "string"
+ },
+ "extra_json": {
+ "nullable": true,
+ "type": "string"
+ },
+ "label": {
+ "maxLength": 256,
+ "nullable": true,
+ "type": "string"
+ },
+ "schema": {
+ "maxLength": 128,
+ "nullable": true,
+ "type": "string"
+ },
+ "sql": {
+ "nullable": true,
+ "type": "string"
+ },
+ "template_parameters": {
+ "nullable": true,
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "SavedQueryRestApi.put": {
+ "properties": {
+ "catalog": {
+ "maxLength": 256,
+ "nullable": true,
+ "type": "string"
+ },
+ "db_id": {
+ "nullable": true,
+ "type": "integer"
+ },
+ "description": {
+ "nullable": true,
+ "type": "string"
+ },
+ "extra_json": {
+ "nullable": true,
+ "type": "string"
+ },
+ "label": {
+ "maxLength": 256,
+ "nullable": true,
+ "type": "string"
+ },
+ "schema": {
+ "maxLength": 128,
+ "nullable": true,
+ "type": "string"
+ },
+ "sql": {
+ "nullable": true,
+ "type": "string"
+ },
+ "template_parameters": {
+ "nullable": true,
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "SchemasResponseSchema": {
+ "properties": {
+ "result": {
+ "items": {
+ "description": "A database schema name",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "SelectStarResponseSchema": {
+ "properties": {
+ "result": {
+ "description": "SQL select star",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "Slice": {
+ "properties": {
+ "cache_timeout": {
+ "description": "Duration (in seconds) of the caching timeout for this chart.",
+ "type": "integer"
+ },
+ "certification_details": {
+ "description": "Details of the certification.",
+ "type": "string"
+ },
+ "certified_by": {
+ "description": "Person or group that has certified this dashboard.",
+ "type": "string"
+ },
+ "changed_on": {
+ "description": "Timestamp of the last modification.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "changed_on_humanized": {
+ "description": "Timestamp of the last modification in human readable form.",
+ "type": "string"
+ },
+ "datasource": {
+ "description": "Datasource identifier.",
+ "type": "string"
+ },
+ "description": {
+ "description": "Slice description.",
+ "type": "string"
+ },
+ "description_markeddown": {
+ "description": "Sanitized HTML version of the chart description.",
+ "type": "string"
+ },
+ "edit_url": {
+ "description": "The URL for editing the slice.",
+ "type": "string"
+ },
+ "form_data": {
+ "description": "Form data associated with the slice.",
+ "type": "object"
+ },
+ "is_managed_externally": {
+ "description": "If the chart is managed outside externally.",
+ "type": "boolean"
+ },
+ "modified": {
+ "description": "Last modification in human readable form.",
+ "type": "string"
+ },
+ "owners": {
+ "description": "Owners identifiers.",
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ "query_context": {
+ "description": "The context associated with the query.",
+ "type": "object"
+ },
+ "slice_id": {
+ "description": "The slice ID.",
+ "type": "integer"
+ },
+ "slice_name": {
+ "description": "The slice name.",
+ "type": "string"
+ },
+ "slice_url": {
+ "description": "The slice URL.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "StopQuerySchema": {
+ "properties": {
+ "client_id": {
+ "type": "string"
+ }
+ },
+ "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": {
+ "type": "object"
+ },
+ "metadata": {
+ "type": "object"
+ },
+ "partitions": {
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "TableMetadataColumnsResponse": {
+ "properties": {
+ "duplicates_constraint": {
+ "type": "string"
+ },
+ "keys": {
+ "description": "",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "longType": {
+ "description": "The actual backend long type for the column",
+ "type": "string"
+ },
+ "name": {
+ "description": "The column name",
+ "type": "string"
+ },
+ "type": {
+ "description": "The column type",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "TableMetadataForeignKeysIndexesResponse": {
+ "properties": {
+ "column_names": {
+ "items": {
+ "description": "A list of column names that compose the foreign key or index",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "The name of the foreign key or index",
+ "type": "string"
+ },
+ "options": {
+ "$ref": "#/components/schemas/TableMetadataOptionsResponse"
+ },
+ "referred_columns": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "referred_schema": {
+ "type": "string"
+ },
+ "referred_table": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "TableMetadataOptionsResponse": {
+ "properties": {
+ "deferrable": {
+ "type": "boolean"
+ },
+ "initially": {
+ "type": "boolean"
+ },
+ "match": {
+ "type": "boolean"
+ },
+ "ondelete": {
+ "type": "boolean"
+ },
+ "onupdate": {
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "TableMetadataPrimaryKeyResponse": {
+ "properties": {
+ "column_names": {
+ "items": {
+ "description": "A list of column names that compose the primary key",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "The primary key index name",
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "TableMetadataResponseSchema": {
+ "properties": {
+ "columns": {
+ "description": "A list of columns and their metadata",
+ "items": {
+ "$ref": "#/components/schemas/TableMetadataColumnsResponse"
+ },
+ "type": "array"
+ },
+ "foreignKeys": {
+ "description": "A list of foreign keys and their metadata",
+ "items": {
+ "$ref": "#/components/schemas/TableMetadataForeignKeysIndexesResponse"
+ },
+ "type": "array"
+ },
+ "indexes": {
+ "description": "A list of indexes and their metadata",
+ "items": {
+ "$ref": "#/components/schemas/TableMetadataForeignKeysIndexesResponse"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "The name of the table",
+ "type": "string"
+ },
+ "primaryKey": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/TableMetadataPrimaryKeyResponse"
+ }
+ ],
+ "description": "Primary keys metadata"
+ },
+ "selectStar": {
+ "description": "SQL select star",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "Tables": {
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "schema": {
+ "type": "string"
+ },
+ "table_name": {
+ "type": "string"
+ }
+ },
+ "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": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ 1,
+ 2,
+ 3,
+ 4
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "TagGetResponseSchema": {
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ }
+ },
+ "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.User"
+ },
+ "changed_on_delta_humanized": {
+ "readOnly": true
+ },
+ "created_by": {
+ "$ref": "#/components/schemas/TagRestApi.get.User1"
+ },
+ "created_on_delta_humanized": {
+ "readOnly": true
+ },
+ "description": {
+ "nullable": true,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "maxLength": 250,
+ "nullable": true,
+ "type": "string"
+ },
+ "type": {
+ "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,
+ "type": "boolean"
+ },
+ "changed_on": {
+ "format": "date-time",
+ "nullable": true,
+ "type": "string"
+ },
+ "created_on": {
+ "format": "date-time",
+ "nullable": true,
+ "type": "string"
+ },
+ "email": {
+ "maxLength": 320,
+ "type": "string"
+ },
+ "fail_login_count": {
+ "nullable": true,
+ "type": "integer"
+ },
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_login": {
+ "format": "date-time",
+ "nullable": true,
+ "type": "string"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "login_count": {
+ "nullable": true,
+ "type": "integer"
+ },
+ "password": {
+ "maxLength": 256,
+ "nullable": true,
+ "type": "string"
+ },
+ "username": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": [
+ "email",
+ "first_name",
+ "last_name",
+ "username"
+ ],
+ "type": "object"
+ },
+ "TagRestApi.get_list": {
+ "properties": {
+ "changed_by": {
+ "$ref": "#/components/schemas/TagRestApi.get_list.User"
+ },
+ "changed_on_delta_humanized": {
+ "readOnly": true
+ },
+ "created_by": {
+ "$ref": "#/components/schemas/TagRestApi.get_list.User1"
+ },
+ "created_on_delta_humanized": {
+ "readOnly": true
+ },
+ "description": {
+ "nullable": true,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "maxLength": 250,
+ "nullable": true,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ 1,
+ 2,
+ 3,
+ 4
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "TagRestApi.get_list.User": {
+ "properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": [
+ "first_name",
+ "last_name"
+ ],
+ "type": "object"
+ },
+ "TagRestApi.get_list.User1": {
+ "properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": [
+ "first_name",
+ "last_name"
+ ],
+ "type": "object"
+ },
+ "TagRestApi.post": {
+ "properties": {
+ "description": {
+ "nullable": true,
+ "type": "string"
+ },
+ "name": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "objects_to_tag": {
+ "description": "Objects to tag",
+ "items": {},
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "TagRestApi.put": {
+ "properties": {
+ "description": {
+ "nullable": true,
+ "type": "string"
+ },
+ "name": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "objects_to_tag": {
+ "description": "Objects to tag",
+ "items": {},
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "TaggedObjectEntityResponseSchema": {
+ "properties": {
+ "changed_on": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "created_by": {
+ "$ref": "#/components/schemas/User"
+ },
+ "creator": {
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
+ },
+ "owners": {
+ "items": {
+ "$ref": "#/components/schemas/User1"
+ },
+ "type": "array"
+ },
+ "tags": {
+ "items": {
+ "$ref": "#/components/schemas/TagGetResponseSchema"
+ },
+ "type": "array"
+ },
+ "type": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "TemporaryCachePostSchema": {
+ "properties": {
+ "value": {
+ "description": "Any type of JSON supported text.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "value"
+ ],
+ "type": "object"
+ },
+ "TemporaryCachePutSchema": {
+ "properties": {
+ "value": {
+ "description": "Any type of JSON supported text.",
+ "type": "string"
+ }
+ },
+ "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": {
+ "properties": {
+ "first_name": {
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_name": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "User1": {
+ "properties": {
+ "first_name": {
"type": "string"
},
- "validator_config_json": {
- "$ref": "#/components/schemas/ValidatorConfigJSON"
+ "id": {
+ "type": "integer"
},
- "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"],
+ "last_name": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "User2": {
+ "properties": {
+ "first_name": {
+ "type": "string"
+ },
+ "last_name": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "UserResponseSchema": {
+ "properties": {
+ "email": {
+ "type": "string"
+ },
+ "first_name": {
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "is_active": {
+ "type": "boolean"
+ },
+ "is_anonymous": {
+ "type": "boolean"
+ },
+ "last_name": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "ValidateSQLRequest": {
+ "properties": {
+ "catalog": {
"nullable": true,
"type": "string"
},
- "working_timeout": {
- "description": "If an alert is staled at a working state, how long until it's state is reseted to error",
- "example": 3600,
- "minimum": 1,
+ "schema": {
+ "nullable": true,
+ "type": "string"
+ },
+ "sql": {
+ "description": "SQL statement to validate",
+ "type": "string"
+ },
+ "template_params": {
"nullable": true,
+ "type": "object"
+ }
+ },
+ "required": [
+ "sql"
+ ],
+ "type": "object"
+ },
+ "ValidateSQLResponse": {
+ "properties": {
+ "end_column": {
+ "type": "integer"
+ },
+ "line_number": {
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "start_column": {
"type": "integer"
}
},
"type": "object"
},
- "Resource": {
+ "ValidatorConfigJSON": {
+ "properties": {
+ "op": {
+ "description": "The operation to compare with a threshold to apply to the SQL output\n",
+ "enum": [
+ "<",
+ "<=",
+ ">",
+ ">=",
+ "==",
+ "!="
+ ],
+ "type": "string"
+ },
+ "threshold": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "advanced_data_type_convert_schema": {
+ "properties": {
+ "type": {
+ "default": "port",
+ "type": "string"
+ },
+ "values": {
+ "items": {
+ "default": "http"
+ },
+ "minItems": 1,
+ "type": "array"
+ }
+ },
+ "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"
+ }
+ },
+ "type": "object"
+ },
+ "database_tables_query_schema": {
+ "properties": {
+ "catalog_name": {
+ "type": "string"
+ },
+ "force": {
+ "type": "boolean"
+ },
+ "schema_name": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "schema_name"
+ ],
+ "type": "object"
+ },
+ "delete_tags_schema": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "get_delete_ids_schema": {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ "get_export_ids_schema": {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ "get_fav_star_ids_schema": {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ "get_info_schema": {
+ "properties": {
+ "add_columns": {
+ "additionalProperties": {
+ "properties": {
+ "page": {
+ "type": "integer"
+ },
+ "page_size": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": "object"
+ },
+ "edit_columns": {
+ "additionalProperties": {
+ "properties": {
+ "page": {
+ "type": "integer"
+ },
+ "page_size": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": "object"
+ },
+ "keys": {
+ "items": {
+ "enum": [
+ "add_columns",
+ "edit_columns",
+ "filters",
+ "permissions",
+ "add_title",
+ "edit_title",
+ "none"
+ ],
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "get_item_schema": {
"properties": {
- "id": {
- "type": "string"
+ "columns": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
},
- "type": {
- "enum": ["dashboard"]
+ "keys": {
+ "items": {
+ "enum": [
+ "show_columns",
+ "description_columns",
+ "label_columns",
+ "show_title",
+ "none"
+ ],
+ "type": "string"
+ },
+ "type": "array"
}
},
- "required": ["id", "type"],
"type": "object"
},
- "RlsRule": {
+ "get_list_schema": {
"properties": {
- "clause": {
+ "columns": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "filters": {
+ "items": {
+ "properties": {
+ "col": {
+ "type": "string"
+ },
+ "opr": {
+ "type": "string"
+ },
+ "value": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "string"
+ },
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "array"
+ }
+ ]
+ }
+ },
+ "required": [
+ "col",
+ "opr",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "keys": {
+ "items": {
+ "enum": [
+ "list_columns",
+ "order_columns",
+ "label_columns",
+ "description_columns",
+ "list_title",
+ "none"
+ ],
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "order_column": {
"type": "string"
},
- "dataset": {
+ "order_direction": {
+ "enum": [
+ "asc",
+ "desc"
+ ],
+ "type": "string"
+ },
+ "page": {
"type": "integer"
- }
- },
- "required": ["clause"],
- "type": "object"
- },
- "Roles": {
- "properties": {
- "id": {
+ },
+ "page_size": {
"type": "integer"
},
- "name": {
- "type": "string"
+ "select_columns": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
}
},
"type": "object"
},
- "Roles1": {
+ "get_recent_activity_schema": {
"properties": {
- "id": {
- "type": "integer"
+ "actions": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
},
- "name": {
- "type": "string"
+ "distinct": {
+ "type": "boolean"
+ },
+ "page": {
+ "type": "number"
+ },
+ "page_size": {
+ "type": "number"
}
},
"type": "object"
},
- "SavedQueryRestApi.get": {
+ "get_related_schema": {
"properties": {
- "changed_on_delta_humanized": {
- "readOnly": true
- },
- "created_by": {
- "$ref": "#/components/schemas/SavedQueryRestApi.get.User"
- },
- "database": {
- "$ref": "#/components/schemas/SavedQueryRestApi.get.Database"
- },
- "description": {
- "nullable": true,
- "type": "string"
- },
- "id": {
- "type": "integer"
- },
- "label": {
- "maxLength": 256,
- "nullable": true,
- "type": "string"
- },
- "schema": {
- "maxLength": 128,
- "nullable": true,
+ "filter": {
"type": "string"
},
- "sql": {
- "nullable": true,
- "type": "string"
+ "include_ids": {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
},
- "sql_tables": {
- "readOnly": true
+ "page": {
+ "type": "integer"
},
- "template_parameters": {
- "nullable": true,
- "type": "string"
+ "page_size": {
+ "type": "integer"
}
},
"type": "object"
},
- "SavedQueryRestApi.get.Database": {
+ "queries_get_updated_since_schema": {
"properties": {
- "database_name": {
- "maxLength": 250,
- "type": "string"
- },
- "id": {
- "type": "integer"
+ "last_updated_ms": {
+ "type": "number"
}
},
- "required": ["database_name"],
+ "required": [
+ "last_updated_ms"
+ ],
"type": "object"
},
- "SavedQueryRestApi.get.User": {
+ "screenshot_query_schema": {
"properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
+ "force": {
+ "type": "boolean"
},
- "id": {
- "type": "integer"
+ "thumb_size": {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
},
- "last_name": {
- "maxLength": 64,
- "type": "string"
+ "window_size": {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
}
},
- "required": ["first_name", "last_name"],
"type": "object"
},
- "SavedQueryRestApi.get_list": {
+ "sql_lab_get_results_schema": {
"properties": {
- "changed_on_delta_humanized": {
- "readOnly": true
- },
- "created_by": {
- "$ref": "#/components/schemas/SavedQueryRestApi.get_list.User"
- },
- "created_on": {
- "format": "date-time",
- "nullable": true,
- "type": "string"
- },
- "database": {
- "$ref": "#/components/schemas/SavedQueryRestApi.get_list.Database"
- },
- "db_id": {
- "nullable": true,
- "type": "integer"
- },
- "description": {
- "nullable": true,
+ "key": {
"type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ],
+ "type": "object"
+ },
+ "thumbnail_query_schema": {
+ "properties": {
+ "force": {
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "securitySchemes": {
+ "jwt": {
+ "bearerFormat": "JWT",
+ "scheme": "bearer",
+ "type": "http"
+ },
+ "jwt_refresh": {
+ "bearerFormat": "JWT",
+ "scheme": "bearer",
+ "type": "http"
+ }
+ }
+ },
+ "info": {
+ "description": "Superset",
+ "title": "Superset",
+ "version": "v1"
+ },
+ "openapi": "3.0.2",
+ "paths": {
+ "/api/v1/advanced_data_type/convert": {
+ "get": {
+ "description": "Returns an AdvancedDataTypeResponse object populated with the passed in args.",
+ "parameters": [
+ {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/advanced_data_type_convert_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AdvancedDataTypeSchema"
+ }
+ }
+ },
+ "description": "AdvancedDataTypeResponse object has been returned."
},
- "extra": {
- "readOnly": true
+ "400": {
+ "$ref": "#/components/responses/400"
},
- "id": {
- "type": "integer"
+ "401": {
+ "$ref": "#/components/responses/401"
},
- "label": {
- "maxLength": 256,
- "nullable": true,
- "type": "string"
+ "403": {
+ "$ref": "#/components/responses/403"
},
- "last_run_delta_humanized": {
- "readOnly": true
+ "404": {
+ "$ref": "#/components/responses/404"
},
- "rows": {
- "nullable": true,
- "type": "integer"
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Return an AdvancedDataTypeResponse",
+ "tags": [
+ "Advanced Data Type"
+ ]
+ }
+ },
+ "/api/v1/advanced_data_type/types": {
+ "get": {
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "a successful return of the available advanced data types has taken place."
},
- "schema": {
- "maxLength": 128,
- "nullable": true,
- "type": "string"
+ "401": {
+ "$ref": "#/components/responses/401"
},
- "sql": {
- "nullable": true,
- "type": "string"
+ "403": {
+ "$ref": "#/components/responses/403"
},
- "sql_tables": {
- "readOnly": true
+ "404": {
+ "$ref": "#/components/responses/404"
},
- "tags": {
- "$ref": "#/components/schemas/SavedQueryRestApi.get_list.Tag"
+ "500": {
+ "$ref": "#/components/responses/500"
}
},
- "type": "object"
- },
- "SavedQueryRestApi.get_list.Database": {
- "properties": {
- "database_name": {
- "maxLength": 250,
- "type": "string"
- },
- "id": {
- "type": "integer"
+ "security": [
+ {
+ "jwt": []
}
- },
- "required": ["database_name"],
- "type": "object"
- },
- "SavedQueryRestApi.get_list.Tag": {
- "properties": {
- "id": {
- "type": "integer"
+ ],
+ "summary": "Return a list of available advanced data types",
+ "tags": [
+ "Advanced Data Type"
+ ]
+ }
+ },
+ "/api/v1/annotation_layer/": {
+ "delete": {
+ "parameters": [
+ {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/get_delete_ids_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "CSS templates bulk delete"
},
- "name": {
- "maxLength": 250,
- "nullable": true,
- "type": "string"
+ "401": {
+ "$ref": "#/components/responses/401"
},
- "type": {
- "enum": [1, 2, 3, 4]
- }
- },
- "type": "object"
- },
- "SavedQueryRestApi.get_list.User": {
- "properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
+ "404": {
+ "$ref": "#/components/responses/404"
},
- "id": {
- "type": "integer"
+ "422": {
+ "$ref": "#/components/responses/422"
},
- "last_name": {
- "maxLength": 64,
- "type": "string"
+ "500": {
+ "$ref": "#/components/responses/500"
}
},
- "required": ["first_name", "last_name"],
- "type": "object"
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Delete multiple annotation layers in a bulk operation",
+ "tags": [
+ "Annotation Layers"
+ ]
},
- "SavedQueryRestApi.post": {
- "properties": {
- "db_id": {
- "nullable": true,
- "type": "integer"
- },
- "description": {
- "nullable": true,
- "type": "string"
+ "get": {
+ "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": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/get_list_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "count": {
+ "description": "The total record count on the backend",
+ "type": "number"
+ },
+ "description_columns": {
+ "properties": {
+ "column_name": {
+ "description": "The description for the column name. Will be translated by babel",
+ "example": "A Nice description for the column",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "ids": {
+ "description": "A list of item ids, useful when you don't know the column id",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "label_columns": {
+ "properties": {
+ "column_name": {
+ "description": "The label for the column name. Will be translated by babel",
+ "example": "A Nice label for the column",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "list_columns": {
+ "description": "A list of columns",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "list_title": {
+ "description": "A title to render. Will be translated by babel",
+ "example": "List Items",
+ "type": "string"
+ },
+ "order_columns": {
+ "description": "A list of allowed columns to sort",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "result": {
+ "description": "The result from the get list query",
+ "items": {
+ "$ref": "#/components/schemas/AnnotationLayerRestApi.get_list"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Items from Model"
},
- "label": {
- "maxLength": 256,
- "nullable": true,
- "type": "string"
+ "400": {
+ "$ref": "#/components/responses/400"
},
- "schema": {
- "maxLength": 128,
- "nullable": true,
- "type": "string"
+ "401": {
+ "$ref": "#/components/responses/401"
},
- "sql": {
- "nullable": true,
- "type": "string"
+ "422": {
+ "$ref": "#/components/responses/422"
},
- "template_parameters": {
- "nullable": true,
- "type": "string"
+ "500": {
+ "$ref": "#/components/responses/500"
}
},
- "type": "object"
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get a list of annotation layers",
+ "tags": [
+ "Annotation Layers"
+ ]
},
- "SavedQueryRestApi.put": {
- "properties": {
- "db_id": {
- "nullable": true,
- "type": "integer"
+ "post": {
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AnnotationLayerRestApi.post"
+ }
+ }
},
- "description": {
- "nullable": true,
- "type": "string"
+ "description": "Annotation Layer schema",
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "id": {
+ "type": "number"
+ },
+ "result": {
+ "$ref": "#/components/schemas/AnnotationLayerRestApi.post"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Annotation added"
},
- "label": {
- "maxLength": 256,
- "nullable": true,
- "type": "string"
+ "400": {
+ "$ref": "#/components/responses/400"
},
- "schema": {
- "maxLength": 128,
- "nullable": true,
- "type": "string"
+ "401": {
+ "$ref": "#/components/responses/401"
},
- "sql": {
- "nullable": true,
- "type": "string"
+ "404": {
+ "$ref": "#/components/responses/404"
},
- "template_parameters": {
- "nullable": true,
- "type": "string"
+ "500": {
+ "$ref": "#/components/responses/500"
}
},
- "type": "object"
- },
- "SchemasResponseSchema": {
- "properties": {
- "result": {
- "items": {
- "description": "A database schema name",
- "type": "string"
- },
- "type": "array"
+ "security": [
+ {
+ "jwt": []
}
- },
- "type": "object"
- },
- "SelectStarResponseSchema": {
- "properties": {
- "result": {
- "description": "SQL select star",
- "type": "string"
+ ],
+ "summary": "Create an annotation layer",
+ "tags": [
+ "Annotation Layers"
+ ]
+ }
+ },
+ "/api/v1/annotation_layer/_info": {
+ "get": {
+ "description": "Get metadata information about this API resource",
+ "parameters": [
+ {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/get_info_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
}
- },
- "type": "object"
- },
- "Slice": {
- "properties": {
- "cache_timeout": {
- "description": "Duration (in seconds) of the caching timeout for this chart.",
- "type": "integer"
- },
- "certification_details": {
- "description": "Details of the certification.",
- "type": "string"
- },
- "certified_by": {
- "description": "Person or group that has certified this dashboard.",
- "type": "string"
- },
- "changed_on": {
- "description": "Timestamp of the last modification.",
- "format": "date-time",
- "type": "string"
- },
- "changed_on_humanized": {
- "description": "Timestamp of the last modification in human readable form.",
- "type": "string"
- },
- "datasource": {
- "description": "Datasource identifier.",
- "type": "string"
- },
- "description": {
- "description": "Slice description.",
- "type": "string"
- },
- "description_markeddown": {
- "description": "Sanitized HTML version of the chart description.",
- "type": "string"
- },
- "edit_url": {
- "description": "The URL for editing the slice.",
- "type": "string"
- },
- "form_data": {
- "description": "Form data associated with the slice.",
- "type": "object"
- },
- "is_managed_externally": {
- "description": "If the chart is managed outside externally.",
- "type": "boolean"
- },
- "modified": {
- "description": "Last modification in human readable form.",
- "type": "string"
- },
- "owners": {
- "description": "Owners identifiers.",
- "items": {
- "type": "integer"
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "add_columns": {
+ "type": "object"
+ },
+ "edit_columns": {
+ "type": "object"
+ },
+ "filters": {
+ "properties": {
+ "column_name": {
+ "items": {
+ "properties": {
+ "name": {
+ "description": "The filter name. Will be translated by babel",
+ "type": "string"
+ },
+ "operator": {
+ "description": "The filter operation key to use on list filters",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "permissions": {
+ "description": "The user permissions for this API resource",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ }
+ }
},
- "type": "array"
+ "description": "Item from Model"
},
- "query_context": {
- "description": "The context associated with the query.",
- "type": "object"
+ "400": {
+ "$ref": "#/components/responses/400"
},
- "slice_id": {
- "description": "The slice ID.",
- "type": "integer"
+ "401": {
+ "$ref": "#/components/responses/401"
},
- "slice_name": {
- "description": "The slice name.",
- "type": "string"
+ "422": {
+ "$ref": "#/components/responses/422"
},
- "slice_url": {
- "description": "The slice URL.",
- "type": "string"
+ "500": {
+ "$ref": "#/components/responses/500"
}
},
- "type": "object"
- },
- "StopQuerySchema": {
- "properties": {
- "client_id": {
- "type": "string"
+ "security": [
+ {
+ "jwt": []
}
- },
- "type": "object"
- },
- "TableExtraMetadataResponseSchema": {
- "properties": {
- "clustering": {
- "type": "object"
- },
- "metadata": {
- "type": "object"
+ ],
+ "summary": "Get metadata information about this API resource",
+ "tags": [
+ "Annotation Layers"
+ ]
+ }
+ },
+ "/api/v1/annotation_layer/related/{column_name}": {
+ "get": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "column_name",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
},
- "partitions": {
- "type": "object"
+ {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/get_related_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
}
- },
- "type": "object"
- },
- "TableMetadataColumnsResponse": {
- "properties": {
- "duplicates_constraint": {
- "type": "string"
- },
- "keys": {
- "description": "",
- "items": {
- "type": "string"
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RelatedResponseSchema"
+ }
+ }
},
- "type": "array"
+ "description": "Related column data"
},
- "longType": {
- "description": "The actual backend long type for the column",
- "type": "string"
+ "400": {
+ "$ref": "#/components/responses/400"
},
- "name": {
- "description": "The column name",
- "type": "string"
+ "401": {
+ "$ref": "#/components/responses/401"
},
- "type": {
- "description": "The column type",
- "type": "string"
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
}
},
- "type": "object"
- },
- "TableMetadataForeignKeysIndexesResponse": {
- "properties": {
- "column_names": {
- "items": {
- "description": "A list of column names that compose the foreign key or index",
- "type": "string"
- },
- "type": "array"
- },
- "name": {
- "description": "The name of the foreign key or index",
- "type": "string"
- },
- "options": {
- "$ref": "#/components/schemas/TableMetadataOptionsResponse"
- },
- "referred_columns": {
- "items": {
- "type": "string"
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get related fields data",
+ "tags": [
+ "Annotation Layers"
+ ]
+ }
+ },
+ "/api/v1/annotation_layer/{pk}": {
+ "delete": {
+ "parameters": [
+ {
+ "description": "The annotation layer pk for this annotation",
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ }
},
- "type": "array"
+ "description": "Item deleted"
},
- "referred_schema": {
- "type": "string"
+ "404": {
+ "$ref": "#/components/responses/404"
},
- "referred_table": {
- "type": "string"
+ "422": {
+ "$ref": "#/components/responses/422"
},
- "type": {
- "type": "string"
+ "500": {
+ "$ref": "#/components/responses/500"
}
},
- "type": "object"
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Delete annotation layer",
+ "tags": [
+ "Annotation Layers"
+ ]
},
- "TableMetadataOptionsResponse": {
- "properties": {
- "deferrable": {
- "type": "boolean"
+ "get": {
+ "description": "Get an item model",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
},
- "initially": {
- "type": "boolean"
+ {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/get_item_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "description_columns": {
+ "properties": {
+ "column_name": {
+ "description": "The description for the column name. Will be translated by babel",
+ "example": "A Nice description for the column",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The item id",
+ "type": "string"
+ },
+ "label_columns": {
+ "properties": {
+ "column_name": {
+ "description": "The label for the column name. Will be translated by babel",
+ "example": "A Nice label for the column",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "result": {
+ "$ref": "#/components/schemas/AnnotationLayerRestApi.get"
+ },
+ "show_columns": {
+ "description": "A list of columns",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "show_title": {
+ "description": "A title to render. Will be translated by babel",
+ "example": "Show Item Details",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Item from Model"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
},
- "match": {
- "type": "boolean"
+ "401": {
+ "$ref": "#/components/responses/401"
},
- "ondelete": {
- "type": "boolean"
+ "404": {
+ "$ref": "#/components/responses/404"
},
- "onupdate": {
- "type": "boolean"
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
}
},
- "type": "object"
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get an annotation layer",
+ "tags": [
+ "Annotation Layers"
+ ]
},
- "TableMetadataPrimaryKeyResponse": {
- "properties": {
- "column_names": {
- "items": {
- "description": "A list of column names that compose the primary key",
- "type": "string"
+ "put": {
+ "parameters": [
+ {
+ "description": "The annotation layer pk for this annotation",
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AnnotationLayerRestApi.put"
+ }
+ }
+ },
+ "description": "Annotation schema",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "id": {
+ "type": "number"
+ },
+ "result": {
+ "$ref": "#/components/schemas/AnnotationLayerRestApi.put"
+ }
+ },
+ "type": "object"
+ }
+ }
},
- "type": "array"
+ "description": "Annotation changed"
},
- "name": {
- "description": "The primary key index name",
- "type": "string"
+ "400": {
+ "$ref": "#/components/responses/400"
},
- "type": {
- "type": "string"
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
}
},
- "type": "object"
- },
- "TableMetadataResponseSchema": {
- "properties": {
- "columns": {
- "description": "A list of columns and their metadata",
- "items": {
- "$ref": "#/components/schemas/TableMetadataColumnsResponse"
- },
- "type": "array"
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Update an annotation layer",
+ "tags": [
+ "Annotation Layers"
+ ]
+ }
+ },
+ "/api/v1/annotation_layer/{pk}/annotation/": {
+ "delete": {
+ "parameters": [
+ {
+ "description": "The annotation layer pk for this annotation",
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
},
- "foreignKeys": {
- "description": "A list of foreign keys and their metadata",
- "items": {
- "$ref": "#/components/schemas/TableMetadataForeignKeysIndexesResponse"
+ {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/get_delete_ids_schema"
+ }
+ }
},
- "type": "array"
- },
- "indexes": {
- "description": "A list of indexes and their metadata",
- "items": {
- "$ref": "#/components/schemas/TableMetadataForeignKeysIndexesResponse"
+ "in": "query",
+ "name": "q"
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ }
},
- "type": "array"
- },
- "name": {
- "description": "The name of the table",
- "type": "string"
+ "description": "Annotations bulk delete"
},
- "primaryKey": {
- "allOf": [
- {
- "$ref": "#/components/schemas/TableMetadataPrimaryKeyResponse"
- }
- ],
- "description": "Primary keys metadata"
+ "401": {
+ "$ref": "#/components/responses/401"
},
- "selectStar": {
- "description": "SQL select star",
- "type": "string"
- }
- },
- "type": "object"
- },
- "Tables": {
- "properties": {
- "id": {
- "type": "integer"
+ "404": {
+ "$ref": "#/components/responses/404"
},
- "schema": {
- "type": "string"
+ "422": {
+ "$ref": "#/components/responses/422"
},
- "table_name": {
- "type": "string"
+ "500": {
+ "$ref": "#/components/responses/500"
}
},
- "type": "object"
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Bulk delete annotation layers",
+ "tags": [
+ "Annotation Layers"
+ ]
},
- "Tag": {
- "properties": {
- "id": {
- "type": "integer"
- },
- "name": {
- "type": "string"
+ "get": {
+ "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",
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
},
- "type": {
- "enum": [1, 2, 3, 4]
+ {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/get_list_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
}
- },
- "type": "object"
- },
- "Tag1": {
- "properties": {
- "id": {
- "type": "integer"
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "count": {
+ "description": "The total record count on the backend",
+ "type": "number"
+ },
+ "ids": {
+ "description": "A list of annotation ids",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "result": {
+ "description": "The result from the get list query",
+ "items": {
+ "$ref": "#/components/schemas/AnnotationRestApi.get_list"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Items from Annotations"
},
- "name": {
- "type": "string"
+ "400": {
+ "$ref": "#/components/responses/400"
},
- "type": {
- "enum": [1, 2, 3, 4]
- }
- },
- "type": "object"
- },
- "TagGetResponseSchema": {
- "properties": {
- "id": {
- "type": "integer"
+ "401": {
+ "$ref": "#/components/responses/401"
},
- "name": {
- "type": "string"
+ "422": {
+ "$ref": "#/components/responses/422"
},
- "type": {
- "type": "string"
+ "500": {
+ "$ref": "#/components/responses/500"
}
},
- "type": "object"
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get a list of annotation layers",
+ "tags": [
+ "Annotation Layers"
+ ]
},
- "TagRestApi.get": {
- "properties": {
- "changed_by": {
- "$ref": "#/components/schemas/TagRestApi.get.User1"
+ "post": {
+ "parameters": [
+ {
+ "description": "The annotation layer pk for this annotation",
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AnnotationRestApi.post"
+ }
+ }
},
- "changed_on_delta_humanized": {
- "readOnly": true
+ "description": "Annotation schema",
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "id": {
+ "type": "number"
+ },
+ "result": {
+ "$ref": "#/components/schemas/AnnotationRestApi.post"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Annotation added"
},
- "created_by": {
- "$ref": "#/components/schemas/TagRestApi.get.User"
+ "400": {
+ "$ref": "#/components/responses/400"
},
- "id": {
- "type": "integer"
+ "401": {
+ "$ref": "#/components/responses/401"
},
- "name": {
- "maxLength": 250,
- "nullable": true,
- "type": "string"
+ "404": {
+ "$ref": "#/components/responses/404"
},
- "type": {
- "enum": [1, 2, 3, 4]
+ "500": {
+ "$ref": "#/components/responses/500"
}
},
- "type": "object"
- },
- "TagRestApi.get.User": {
- "properties": {
- "active": {
- "nullable": true,
- "type": "boolean"
- },
- "changed_on": {
- "format": "date-time",
- "nullable": true,
- "type": "string"
- },
- "created_on": {
- "format": "date-time",
- "nullable": true,
- "type": "string"
- },
- "email": {
- "maxLength": 64,
- "type": "string"
- },
- "fail_login_count": {
- "nullable": true,
- "type": "integer"
- },
- "first_name": {
- "maxLength": 64,
- "type": "string"
- },
- "id": {
- "type": "integer"
- },
- "last_login": {
- "format": "date-time",
- "nullable": true,
- "type": "string"
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Create an annotation layer",
+ "tags": [
+ "Annotation Layers"
+ ]
+ }
+ },
+ "/api/v1/annotation_layer/{pk}/annotation/{annotation_id}": {
+ "delete": {
+ "parameters": [
+ {
+ "description": "The annotation layer pk for this annotation",
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
},
- "last_name": {
- "maxLength": 64,
- "type": "string"
+ {
+ "description": "The annotation pk for this annotation",
+ "in": "path",
+ "name": "annotation_id",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Item deleted"
},
- "login_count": {
- "nullable": true,
- "type": "integer"
+ "404": {
+ "$ref": "#/components/responses/404"
},
- "password": {
- "maxLength": 256,
- "nullable": true,
- "type": "string"
+ "422": {
+ "$ref": "#/components/responses/422"
},
- "username": {
- "maxLength": 64,
- "type": "string"
+ "500": {
+ "$ref": "#/components/responses/500"
}
},
- "required": ["email", "first_name", "last_name", "username"],
- "type": "object"
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Delete annotation layer",
+ "tags": [
+ "Annotation Layers"
+ ]
},
- "TagRestApi.get.User1": {
- "properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
+ "get": {
+ "parameters": [
+ {
+ "description": "The annotation layer pk for this annotation",
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
},
- "last_name": {
- "maxLength": 64,
- "type": "string"
+ {
+ "description": "The annotation pk",
+ "in": "path",
+ "name": "annotation_id",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/get_item_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
}
- },
- "required": ["first_name", "last_name"],
- "type": "object"
- },
- "TagRestApi.get_list": {
- "properties": {
- "changed_by": {
- "$ref": "#/components/schemas/TagRestApi.get_list.User1"
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "id": {
+ "description": "The item id",
+ "type": "string"
+ },
+ "result": {
+ "$ref": "#/components/schemas/AnnotationRestApi.get"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Item from Model"
},
- "changed_on_delta_humanized": {
- "readOnly": true
+ "400": {
+ "$ref": "#/components/responses/400"
},
- "created_by": {
- "$ref": "#/components/schemas/TagRestApi.get_list.User"
+ "401": {
+ "$ref": "#/components/responses/401"
},
- "id": {
- "type": "integer"
+ "404": {
+ "$ref": "#/components/responses/404"
},
- "name": {
- "maxLength": 250,
- "nullable": true,
- "type": "string"
+ "422": {
+ "$ref": "#/components/responses/422"
},
- "type": {
- "enum": [1, 2, 3, 4]
+ "500": {
+ "$ref": "#/components/responses/500"
}
},
- "type": "object"
- },
- "TagRestApi.get_list.User": {
- "properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
- },
- "last_name": {
- "maxLength": 64,
- "type": "string"
+ "security": [
+ {
+ "jwt": []
}
- },
- "required": ["first_name", "last_name"],
- "type": "object"
+ ],
+ "summary": "Get an annotation layer",
+ "tags": [
+ "Annotation Layers"
+ ]
},
- "TagRestApi.get_list.User1": {
- "properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
+ "put": {
+ "parameters": [
+ {
+ "description": "The annotation layer pk for this annotation",
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
},
- "last_name": {
- "maxLength": 64,
- "type": "string"
+ {
+ "description": "The annotation pk for this annotation",
+ "in": "path",
+ "name": "annotation_id",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
}
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AnnotationRestApi.put"
+ }
+ }
+ },
+ "description": "Annotation schema",
+ "required": true
},
- "required": ["first_name", "last_name"],
- "type": "object"
- },
- "TagRestApi.post": {
- "properties": {
- "tags": {
- "items": {
- "type": "string"
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "id": {
+ "type": "number"
+ },
+ "result": {
+ "$ref": "#/components/schemas/AnnotationRestApi.put"
+ }
+ },
+ "type": "object"
+ }
+ }
},
- "type": "array"
- }
- },
- "type": "object"
- },
- "TagRestApi.put": {
- "properties": {
- "id": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "TaggedObjectEntityResponseSchema": {
- "properties": {
- "changed_on": {
- "format": "date-time",
- "type": "string"
- },
- "created_by": {
- "$ref": "#/components/schemas/User"
- },
- "creator": {
- "type": "string"
+ "description": "Annotation changed"
},
- "id": {
- "type": "integer"
+ "400": {
+ "$ref": "#/components/responses/400"
},
- "name": {
- "type": "string"
+ "401": {
+ "$ref": "#/components/responses/401"
},
- "type": {
- "type": "string"
+ "404": {
+ "$ref": "#/components/responses/404"
},
- "url": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "TemporaryCachePostSchema": {
- "properties": {
- "value": {
- "description": "Any type of JSON supported text.",
- "type": "string"
- }
- },
- "required": ["value"],
- "type": "object"
- },
- "TemporaryCachePutSchema": {
- "properties": {
- "value": {
- "description": "Any type of JSON supported text.",
- "type": "string"
+ "500": {
+ "$ref": "#/components/responses/500"
}
},
- "required": ["value"],
- "type": "object"
- },
- "User": {
- "properties": {
- "first_name": {
- "type": "string"
- },
- "id": {
- "type": "integer"
- },
- "last_name": {
- "type": "string"
+ "security": [
+ {
+ "jwt": []
}
- },
- "type": "object"
- },
- "User1": {
- "properties": {
- "first_name": {
- "type": "string"
- },
- "id": {
- "type": "integer"
+ ],
+ "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"
},
- "last_name": {
- "type": "string"
+ "400": {
+ "$ref": "#/components/responses/400"
},
- "username": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "User2": {
- "properties": {
- "first_name": {
- "type": "string"
+ "401": {
+ "$ref": "#/components/responses/401"
},
- "last_name": {
- "type": "string"
+ "403": {
+ "$ref": "#/components/responses/403"
},
- "username": {
- "type": "string"
+ "500": {
+ "$ref": "#/components/responses/500"
}
},
- "type": "object"
- },
- "UserResponseSchema": {
- "properties": {
- "email": {
- "type": "string"
- },
- "first_name": {
- "type": "string"
- },
- "id": {
- "type": "integer"
- },
- "is_active": {
- "type": "boolean"
+ "summary": "Get the health status of the metastore and cache",
+ "tags": [
+ "Apple"
+ ]
+ }
+ },
+ "/api/v1/assets/export/": {
+ "get": {
+ "description": "Gets a ZIP file with all the Superset assets (databases, datasets, charts, dashboards, saved queries) as YAML files.",
+ "responses": {
+ "200": {
+ "content": {
+ "application/zip": {
+ "schema": {
+ "format": "binary",
+ "type": "string"
+ }
+ }
+ },
+ "description": "ZIP file"
},
- "is_anonymous": {
- "type": "boolean"
+ "401": {
+ "$ref": "#/components/responses/401"
},
- "last_name": {
- "type": "string"
+ "404": {
+ "$ref": "#/components/responses/404"
},
- "username": {
- "type": "string"
+ "500": {
+ "$ref": "#/components/responses/500"
}
},
- "type": "object"
- },
- "ValidateSQLRequest": {
- "properties": {
- "schema": {
- "nullable": true,
- "type": "string"
- },
- "sql": {
- "description": "SQL statement to validate",
- "type": "string"
- },
- "template_params": {
- "nullable": true,
- "type": "object"
+ "security": [
+ {
+ "jwt": []
}
+ ],
+ "summary": "Export all assets",
+ "tags": [
+ "Import/export"
+ ]
+ }
+ },
+ "/api/v1/assets/import/": {
+ "post": {
+ "requestBody": {
+ "content": {
+ "multipart/form-data": {
+ "schema": {
+ "properties": {
+ "bundle": {
+ "description": "upload file (ZIP or JSON)",
+ "format": "binary",
+ "type": "string"
+ },
+ "passwords": {
+ "description": "JSON map of passwords for each featured database in the ZIP file. If the ZIP includes a database config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
+ "type": "string"
+ },
+ "ssh_tunnel_passwords": {
+ "description": "JSON map of passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
+ "type": "string"
+ },
+ "ssh_tunnel_private_key_passwords": {
+ "description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
+ "type": "string"
+ },
+ "ssh_tunnel_private_keys": {
+ "description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "required": true
},
- "required": ["sql"],
- "type": "object"
- },
- "ValidateSQLResponse": {
- "properties": {
- "end_column": {
- "type": "integer"
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Assets import result"
},
- "line_number": {
- "type": "integer"
+ "400": {
+ "$ref": "#/components/responses/400"
},
- "message": {
- "type": "string"
+ "401": {
+ "$ref": "#/components/responses/401"
},
- "start_column": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "ValidatorConfigJSON": {
- "properties": {
- "op": {
- "description": "The operation to compare with a threshold to apply to the SQL output\n",
- "enum": ["<", "<=", ">", ">=", "==", "!="],
- "type": "string"
+ "422": {
+ "$ref": "#/components/responses/422"
},
- "threshold": {
- "type": "number"
+ "500": {
+ "$ref": "#/components/responses/500"
}
},
- "type": "object"
- },
- "advanced_data_type_convert_schema": {
- "properties": {
- "type": {
- "default": "port",
- "type": "string"
- },
- "values": {
- "items": {
- "default": "http"
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Import multiple assets",
+ "tags": [
+ "Import/export"
+ ]
+ }
+ },
+ "/api/v1/async_event/": {
+ "get": {
+ "description": "Reads off of the Redis events stream, using the user's JWT token and optional query params for last event received.",
+ "parameters": [
+ {
+ "description": "Last ID received by the client",
+ "in": "query",
+ "name": "last_id",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "items": {
+ "properties": {
+ "channel_id": {
+ "type": "string"
+ },
+ "errors": {
+ "items": {
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "id": {
+ "type": "string"
+ },
+ "job_id": {
+ "type": "string"
+ },
+ "result_url": {
+ "type": "string"
+ },
+ "status": {
+ "type": "string"
+ },
+ "user_id": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ }
+ }
},
- "minItems": 1,
- "type": "array"
+ "description": "Async event results"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
}
},
- "required": ["type", "values"],
- "type": "object"
- },
- "database_schemas_query_schema": {
- "properties": {
- "force": {
- "type": "boolean"
+ "security": [
+ {
+ "jwt": []
}
- },
- "type": "object"
- },
- "database_tables_query_schema": {
- "properties": {
- "force": {
- "type": "boolean"
+ ],
+ "summary": "Read off of the Redis events stream",
+ "tags": [
+ "AsyncEventsRestApi"
+ ]
+ }
+ },
+ "/api/v1/available_domains/": {
+ "get": {
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "$ref": "#/components/schemas/AvailableDomainsSchema"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "a list of available domains"
},
- "schema_name": {
- "type": "string"
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
}
},
- "required": ["schema_name"],
- "type": "object"
- },
- "delete_tags_schema": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "get_delete_ids_schema": {
- "items": {
- "type": "integer"
- },
- "type": "array"
- },
- "get_export_ids_schema": {
- "items": {
- "type": "integer"
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get all available domains",
+ "tags": [
+ "Available Domains"
+ ]
+ }
+ },
+ "/api/v1/cachekey/invalidate": {
+ "post": {
+ "description": "Takes a list of datasources, finds and invalidates the associated cache records and removes the database records.",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CacheInvalidationRequestSchema"
+ }
+ }
+ },
+ "description": "A list of datasources uuid or the tuples of database and datasource names",
+ "required": true
},
- "type": "array"
- },
- "get_fav_star_ids_schema": {
- "items": {
- "type": "integer"
+ "responses": {
+ "201": {
+ "description": "cache was successfully invalidated"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
},
- "type": "array"
- },
- "get_info_schema": {
- "properties": {
- "add_columns": {
- "additionalProperties": {
- "properties": {
- "page": {
- "type": "integer"
- },
- "page_size": {
- "type": "integer"
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Invalidate cache records and remove the database records",
+ "tags": [
+ "CacheRestApi"
+ ]
+ }
+ },
+ "/api/v1/chart/": {
+ "delete": {
+ "parameters": [
+ {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/get_delete_ids_schema"
}
- },
- "type": "object"
+ }
},
- "type": "object"
- },
- "edit_columns": {
- "additionalProperties": {
- "properties": {
- "page": {
- "type": "integer"
- },
- "page_size": {
- "type": "integer"
+ "in": "query",
+ "name": "q"
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "type": "object"
}
- },
- "type": "object"
+ }
},
- "type": "object"
+ "description": "Charts bulk delete"
},
- "keys": {
- "items": {
- "enum": [
- "add_columns",
- "edit_columns",
- "filters",
- "permissions",
- "add_title",
- "edit_title",
- "none"
- ],
- "type": "string"
- },
- "type": "array"
- }
- },
- "type": "object"
- },
- "get_item_schema": {
- "properties": {
- "columns": {
- "items": {
- "type": "string"
- },
- "type": "array"
+ "401": {
+ "$ref": "#/components/responses/401"
},
- "keys": {
- "items": {
- "enum": [
- "show_columns",
- "description_columns",
- "label_columns",
- "show_title",
- "none"
- ],
- "type": "string"
- },
- "type": "array"
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
}
},
- "type": "object"
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Bulk delete charts",
+ "tags": [
+ "Charts"
+ ]
},
- "get_list_schema": {
- "properties": {
- "columns": {
- "items": {
- "type": "string"
+ "get": {
+ "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": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/get_list_schema"
+ }
+ }
},
- "type": "array"
- },
- "filters": {
- "items": {
- "properties": {
- "col": {
- "type": "string"
- },
- "opr": {
- "type": "string"
- },
- "value": {
- "anyOf": [
- {
+ "in": "query",
+ "name": "q"
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "count": {
+ "description": "The total record count on the backend",
"type": "number"
},
- {
+ "description_columns": {
+ "properties": {
+ "column_name": {
+ "description": "The description for the column name. Will be translated by babel",
+ "example": "A Nice description for the column",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "ids": {
+ "description": "A list of item ids, useful when you don't know the column id",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "label_columns": {
+ "properties": {
+ "column_name": {
+ "description": "The label for the column name. Will be translated by babel",
+ "example": "A Nice label for the column",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "list_columns": {
+ "description": "A list of columns",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "list_title": {
+ "description": "A title to render. Will be translated by babel",
+ "example": "List Items",
"type": "string"
},
- {
- "type": "boolean"
+ "order_columns": {
+ "description": "A list of allowed columns to sort",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
},
- {
+ "result": {
+ "description": "The result from the get list query",
+ "items": {
+ "$ref": "#/components/schemas/ChartRestApi.get_list"
+ },
"type": "array"
}
- ]
+ },
+ "type": "object"
}
- },
- "required": ["col", "opr", "value"],
- "type": "object"
- },
- "type": "array"
- },
- "keys": {
- "items": {
- "enum": [
- "list_columns",
- "order_columns",
- "label_columns",
- "description_columns",
- "list_title",
- "none"
- ],
- "type": "string"
+ }
},
- "type": "array"
+ "description": "Items from Model"
},
- "order_column": {
- "type": "string"
+ "400": {
+ "$ref": "#/components/responses/400"
},
- "order_direction": {
- "enum": ["asc", "desc"],
- "type": "string"
+ "401": {
+ "$ref": "#/components/responses/401"
},
- "page": {
- "type": "integer"
+ "422": {
+ "$ref": "#/components/responses/422"
},
- "page_size": {
- "type": "integer"
+ "500": {
+ "$ref": "#/components/responses/500"
}
},
- "type": "object"
- },
- "get_recent_activity_schema": {
- "properties": {
- "actions": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "distinct": {
- "type": "boolean"
- },
- "page": {
- "type": "number"
- },
- "page_size": {
- "type": "number"
+ "security": [
+ {
+ "jwt": []
}
- },
- "type": "object"
+ ],
+ "summary": "Get a list of charts",
+ "tags": [
+ "Charts"
+ ]
},
- "get_related_schema": {
- "properties": {
- "filter": {
- "type": "string"
+ "post": {
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ChartRestApi.post"
+ }
+ }
},
- "include_ids": {
- "items": {
- "type": "integer"
+ "description": "Chart schema",
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "id": {
+ "type": "number"
+ },
+ "result": {
+ "$ref": "#/components/schemas/ChartRestApi.post"
+ }
+ },
+ "type": "object"
+ }
+ }
},
- "type": "array"
+ "description": "Chart added"
},
- "page": {
- "type": "integer"
+ "400": {
+ "$ref": "#/components/responses/400"
},
- "page_size": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "queries_get_updated_since_schema": {
- "properties": {
- "last_updated_ms": {
- "type": "number"
- }
- },
- "required": ["last_updated_ms"],
- "type": "object"
- },
- "screenshot_query_schema": {
- "properties": {
- "force": {
- "type": "boolean"
+ "401": {
+ "$ref": "#/components/responses/401"
},
- "thumb_size": {
- "items": {
- "type": "integer"
- },
- "type": "array"
+ "403": {
+ "$ref": "#/components/responses/403"
},
- "window_size": {
- "items": {
- "type": "integer"
- },
- "type": "array"
- }
- },
- "type": "object"
- },
- "sql_lab_get_results_schema": {
- "properties": {
- "key": {
- "type": "string"
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
}
},
- "required": ["key"],
- "type": "object"
- },
- "thumbnail_query_schema": {
- "properties": {
- "force": {
- "type": "boolean"
+ "security": [
+ {
+ "jwt": []
}
- },
- "type": "object"
+ ],
+ "summary": "Create a new chart",
+ "tags": [
+ "Charts"
+ ]
}
},
- "securitySchemes": {
- "jwt": {
- "bearerFormat": "JWT",
- "scheme": "bearer",
- "type": "http"
- },
- "jwt_refresh": {
- "bearerFormat": "JWT",
- "scheme": "bearer",
- "type": "http"
- }
- }
- },
- "info": {
- "description": "Superset",
- "title": "Superset",
- "version": "v1"
- },
- "openapi": "3.0.2",
- "paths": {
- "/api/v1/advanced_data_type/convert": {
+ "/api/v1/chart/_info": {
"get": {
+ "description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/advanced_data_type_convert_schema"
+ "$ref": "#/components/schemas/get_info_schema"
}
}
},
@@ -9775,11 +13342,106 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/AdvancedDataTypeSchema"
+ "properties": {
+ "add_columns": {
+ "type": "object"
+ },
+ "edit_columns": {
+ "type": "object"
+ },
+ "filters": {
+ "properties": {
+ "column_name": {
+ "items": {
+ "properties": {
+ "name": {
+ "description": "The filter name. Will be translated by babel",
+ "type": "string"
+ },
+ "operator": {
+ "description": "The filter operation key to use on list filters",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "permissions": {
+ "description": "The user permissions for this API resource",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
}
}
},
- "description": "AdvancedDataTypeResponse object has been returned."
+ "description": "Item from Model"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get metadata information about this API resource",
+ "tags": [
+ "Charts"
+ ]
+ }
+ },
+ "/api/v1/chart/data": {
+ "post": {
+ "description": "Takes a query context constructed in the client and returns payload data response for the given query.",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ChartDataQueryContextSchema"
+ }
+ }
+ },
+ "description": "A query context consists of a datasource from which to fetch data and one or many query objects.",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ChartDataResponseSchema"
+ }
+ }
+ },
+ "description": "Query result"
+ },
+ "202": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ChartDataAsyncResponseSchema"
+ }
+ }
+ },
+ "description": "Async job details"
},
"400": {
"$ref": "#/components/responses/400"
@@ -9787,9 +13449,6 @@
"401": {
"$ref": "#/components/responses/401"
},
- "404": {
- "$ref": "#/components/responses/404"
- },
"500": {
"$ref": "#/components/responses/500"
}
@@ -9799,31 +13458,38 @@
"jwt": []
}
],
- "summary": "Returns a AdvancedDataTypeResponse object populated with the passed in args.",
- "tags": ["Advanced Data Type"]
+ "summary": "Return payload data response for the given query",
+ "tags": [
+ "Charts"
+ ]
}
},
- "/api/v1/advanced_data_type/types": {
+ "/api/v1/chart/data/{cache_key}": {
"get": {
- "description": "Returns a list of available advanced data types.",
+ "description": "Takes a query context cache key and returns payload data response for the given query.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "cache_key",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
- "properties": {
- "result": {
- "items": {
- "type": "string"
- },
- "type": "array"
- }
- },
- "type": "object"
+ "$ref": "#/components/schemas/ChartDataResponseSchema"
}
}
},
- "description": "a successful return of the available advanced data types has taken place."
+ "description": "Query result"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
@@ -9831,6 +13497,9 @@
"404": {
"$ref": "#/components/responses/404"
},
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
"500": {
"$ref": "#/components/responses/500"
}
@@ -9840,18 +13509,20 @@
"jwt": []
}
],
- "tags": ["Advanced Data Type"]
+ "summary": "Return payload data response for the given query",
+ "tags": [
+ "Charts"
+ ]
}
},
- "/api/v1/annotation_layer/": {
- "delete": {
- "description": "Deletes multiple annotation layers in a bulk operation.",
+ "/api/v1/chart/export/": {
+ "get": {
"parameters": [
{
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/get_delete_ids_schema"
+ "$ref": "#/components/schemas/get_export_ids_schema"
}
}
},
@@ -9862,18 +13533,17 @@
"responses": {
"200": {
"content": {
- "application/json": {
+ "application/zip": {
"schema": {
- "properties": {
- "message": {
- "type": "string"
- }
- },
- "type": "object"
+ "format": "binary",
+ "type": "string"
}
}
},
- "description": "CSS templates bulk delete"
+ "description": "A zip file with chart(s), dataset(s) and database(s) as YAML"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
@@ -9881,9 +13551,6 @@
"404": {
"$ref": "#/components/responses/404"
},
- "422": {
- "$ref": "#/components/responses/422"
- },
"500": {
"$ref": "#/components/responses/500"
}
@@ -9893,16 +13560,20 @@
"jwt": []
}
],
- "tags": ["Annotation Layers"]
- },
+ "summary": "Download multiple charts as YAML files",
+ "tags": [
+ "Charts"
+ ]
+ }
+ },
+ "/api/v1/chart/favorite_status/": {
"get": {
- "description": "Get a list of Annotation layers, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/get_list_schema"
+ "$ref": "#/components/schemas/get_fav_star_ids_schema"
}
}
},
@@ -9915,70 +13586,11 @@
"content": {
"application/json": {
"schema": {
- "properties": {
- "count": {
- "description": "The total record count on the backend",
- "type": "number"
- },
- "description_columns": {
- "properties": {
- "column_name": {
- "description": "The description for the column name. Will be translated by babel",
- "example": "A Nice description for the column",
- "type": "string"
- }
- },
- "type": "object"
- },
- "ids": {
- "description": "A list of item ids, useful when you don't know the column id",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "label_columns": {
- "properties": {
- "column_name": {
- "description": "The label for the column name. Will be translated by babel",
- "example": "A Nice label for the column",
- "type": "string"
- }
- },
- "type": "object"
- },
- "list_columns": {
- "description": "A list of columns",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "list_title": {
- "description": "A title to render. Will be translated by babel",
- "example": "List Items",
- "type": "string"
- },
- "order_columns": {
- "description": "A list of allowed columns to sort",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "result": {
- "description": "The result from the get list query",
- "items": {
- "$ref": "#/components/schemas/AnnotationLayerRestApi.get_list"
- },
- "type": "array"
- }
- },
- "type": "object"
+ "$ref": "#/components/schemas/GetFavStarIdsSchema"
}
}
},
- "description": "Items from Model"
+ "description": "None"
},
"400": {
"$ref": "#/components/responses/400"
@@ -9986,8 +13598,8 @@
"401": {
"$ref": "#/components/responses/401"
},
- "422": {
- "$ref": "#/components/responses/422"
+ "404": {
+ "$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
@@ -9998,123 +13610,66 @@
"jwt": []
}
],
- "tags": ["Annotation Layers"]
- },
+ "summary": "Check favorited charts for current user",
+ "tags": [
+ "Charts"
+ ]
+ }
+ },
+ "/api/v1/chart/import/": {
"post": {
- "description": "Create an Annotation layer",
"requestBody": {
"content": {
- "application/json": {
+ "multipart/form-data": {
"schema": {
- "$ref": "#/components/schemas/AnnotationLayerRestApi.post"
+ "properties": {
+ "formData": {
+ "description": "upload file (ZIP)",
+ "format": "binary",
+ "type": "string"
+ },
+ "overwrite": {
+ "description": "overwrite existing charts?",
+ "type": "boolean"
+ },
+ "passwords": {
+ "description": "JSON map of passwords for each featured database in the ZIP file. If the ZIP includes a database config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
+ "type": "string"
+ },
+ "ssh_tunnel_passwords": {
+ "description": "JSON map of passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
+ "type": "string"
+ },
+ "ssh_tunnel_private_key_passwords": {
+ "description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
+ "type": "string"
+ },
+ "ssh_tunnel_private_keys": {
+ "description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
}
}
},
- "description": "Annotation Layer schema",
"required": true
},
- "responses": {
- "201": {
- "content": {
- "application/json": {
- "schema": {
- "properties": {
- "id": {
- "type": "number"
- },
- "result": {
- "$ref": "#/components/schemas/AnnotationLayerRestApi.post"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "Annotation added"
- },
- "400": {
- "$ref": "#/components/responses/400"
- },
- "401": {
- "$ref": "#/components/responses/401"
- },
- "404": {
- "$ref": "#/components/responses/404"
- },
- "500": {
- "$ref": "#/components/responses/500"
- }
- },
- "security": [
- {
- "jwt": []
- }
- ],
- "tags": ["Annotation Layers"]
- }
- },
- "/api/v1/annotation_layer/_info": {
- "get": {
- "description": "Get metadata information about this API resource",
- "parameters": [
- {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/get_info_schema"
- }
- }
- },
- "in": "query",
- "name": "q"
- }
- ],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
- "add_columns": {
- "type": "object"
- },
- "edit_columns": {
- "type": "object"
- },
- "filters": {
- "properties": {
- "column_name": {
- "items": {
- "properties": {
- "name": {
- "description": "The filter name. Will be translated by babel",
- "type": "string"
- },
- "operator": {
- "description": "The filter operation key to use on list filters",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- }
- },
- "type": "object"
- },
- "permissions": {
- "description": "The user permissions for this API resource",
- "items": {
- "type": "string"
- },
- "type": "array"
+ "message": {
+ "type": "string"
}
},
"type": "object"
}
}
},
- "description": "Item from Model"
+ "description": "Chart import result"
},
"400": {
"$ref": "#/components/responses/400"
@@ -10134,11 +13689,15 @@
"jwt": []
}
],
- "tags": ["Annotation Layers"]
+ "summary": "Import chart(s) with associated datasets and databases",
+ "tags": [
+ "Charts"
+ ]
}
},
- "/api/v1/annotation_layer/related/{column_name}": {
+ "/api/v1/chart/related/{column_name}": {
"get": {
+ "description": "Get a list of all possible owners for a chart. Use `owners` has the `column_name` parameter",
"parameters": [
{
"in": "path",
@@ -10189,15 +13748,62 @@
"jwt": []
}
],
- "tags": ["Annotation Layers"]
+ "summary": "Get related fields data",
+ "tags": [
+ "Charts"
+ ]
}
},
- "/api/v1/annotation_layer/{pk}": {
+ "/api/v1/chart/warm_up_cache": {
+ "put": {
+ "description": "Warms up the cache for the chart. Note for slices a force refresh occurs. In terms of the `extra_filters` these can be obtained from records in the JSON encoded `logs.json` column associated with the `explore_json` action.",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ChartCacheWarmUpRequestSchema"
+ }
+ }
+ },
+ "description": "Identifies the chart to warm up cache for, and any additional dashboard or filter context to use.",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ChartCacheWarmUpResponseSchema"
+ }
+ }
+ },
+ "description": "Each chart's warmup status"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Warm up the cache for the chart",
+ "tags": [
+ "Charts"
+ ]
+ }
+ },
+ "/api/v1/chart/{pk}": {
"delete": {
- "description": "Delete Annotation layer",
"parameters": [
{
- "description": "The annotation layer pk for this annotation",
"in": "path",
"name": "pk",
"required": true,
@@ -10220,7 +13826,13 @@
}
}
},
- "description": "Item deleted"
+ "description": "Chart delete"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
@@ -10237,10 +13849,13 @@
"jwt": []
}
],
- "tags": ["Annotation Layers"]
+ "summary": "Delete a chart",
+ "tags": [
+ "Charts"
+ ]
},
"get": {
- "description": "Get an Annotation layer",
+ "description": "Get an item model",
"parameters": [
{
"in": "path",
@@ -10293,7 +13908,7 @@
"type": "object"
},
"result": {
- "$ref": "#/components/schemas/AnnotationLayerRestApi.get"
+ "$ref": "#/components/schemas/ChartRestApi.get"
},
"show_columns": {
"description": "A list of columns",
@@ -10335,13 +13950,224 @@
"jwt": []
}
],
- "tags": ["Annotation Layers"]
- },
- "put": {
- "description": "Update an Annotation layer",
+ "summary": "Get a chart detail information",
+ "tags": [
+ "Charts"
+ ]
+ },
+ "put": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ChartRestApi.put"
+ }
+ }
+ },
+ "description": "Chart schema",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "id": {
+ "type": "number"
+ },
+ "result": {
+ "$ref": "#/components/schemas/ChartRestApi.put"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Chart changed"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Update a chart",
+ "tags": [
+ "Charts"
+ ]
+ }
+ },
+ "/api/v1/chart/{pk}/cache_screenshot/": {
+ "get": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/screenshot_query_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
+ }
+ ],
+ "responses": {
+ "202": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ChartCacheScreenshotResponseSchema"
+ }
+ }
+ },
+ "description": "Chart 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": [
+ "Charts"
+ ]
+ }
+ },
+ "/api/v1/chart/{pk}/data/": {
+ "get": {
+ "description": "Takes a chart ID and uses the query context stored when the chart was saved to return payload data response.",
+ "parameters": [
+ {
+ "description": "The chart ID",
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "description": "The format in which the data should be returned",
+ "in": "query",
+ "name": "format",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "The type in which the data should be returned",
+ "in": "query",
+ "name": "type",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Should the queries be forced to load from the source",
+ "in": "query",
+ "name": "force",
+ "schema": {
+ "type": "boolean"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ChartDataResponseSchema"
+ }
+ }
+ },
+ "description": "Query result"
+ },
+ "202": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ChartDataAsyncResponseSchema"
+ }
+ }
+ },
+ "description": "Async job details"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Return payload data response for a chart",
+ "tags": [
+ "Charts"
+ ]
+ }
+ },
+ "/api/v1/chart/{pk}/favorites/": {
+ "delete": {
"parameters": [
{
- "description": "The annotation layer pk for this annotation",
"in": "path",
"name": "pk",
"required": true,
@@ -10350,38 +14176,21 @@
}
}
],
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/AnnotationLayerRestApi.put"
- }
- }
- },
- "description": "Annotation schema",
- "required": true
- },
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
- "id": {
- "type": "number"
- },
"result": {
- "$ref": "#/components/schemas/AnnotationLayerRestApi.put"
+ "type": "object"
}
},
"type": "object"
}
}
},
- "description": "Annotation changed"
- },
- "400": {
- "$ref": "#/components/responses/400"
+ "description": "Chart removed from favorites"
},
"401": {
"$ref": "#/components/responses/401"
@@ -10398,32 +14207,20 @@
"jwt": []
}
],
- "tags": ["Annotation Layers"]
- }
- },
- "/api/v1/annotation_layer/{pk}/annotation/": {
- "delete": {
- "description": "Deletes multiple annotation in a bulk operation.",
+ "summary": "Remove the chart from the user favorite list",
+ "tags": [
+ "Charts"
+ ]
+ },
+ "post": {
"parameters": [
{
- "description": "The annotation layer pk for this annotation",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
- },
- {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/get_delete_ids_schema"
- }
- }
- },
- "in": "query",
- "name": "q"
}
],
"responses": {
@@ -10432,15 +14229,15 @@
"application/json": {
"schema": {
"properties": {
- "message": {
- "type": "string"
+ "result": {
+ "type": "object"
}
},
"type": "object"
}
}
},
- "description": "Annotations bulk delete"
+ "description": "Chart added to favorites"
},
"401": {
"$ref": "#/components/responses/401"
@@ -10448,9 +14245,6 @@
"404": {
"$ref": "#/components/responses/404"
},
- "422": {
- "$ref": "#/components/responses/422"
- },
"500": {
"$ref": "#/components/responses/500"
}
@@ -10460,13 +14254,16 @@
"jwt": []
}
],
- "tags": ["Annotation Layers"]
- },
+ "summary": "Mark the chart as favorite for the current user",
+ "tags": [
+ "Charts"
+ ]
+ }
+ },
+ "/api/v1/chart/{pk}/screenshot/{digest}/": {
"get": {
- "description": "Get a list of Annotation layers, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
- "description": "The annotation layer id for this annotation",
"in": "path",
"name": "pk",
"required": true,
@@ -10475,47 +14272,25 @@
}
},
{
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/get_list_schema"
- }
- }
- },
- "in": "query",
- "name": "q"
+ "in": "path",
+ "name": "digest",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
}
],
"responses": {
"200": {
"content": {
- "application/json": {
+ "image/*": {
"schema": {
- "properties": {
- "count": {
- "description": "The total record count on the backend",
- "type": "number"
- },
- "ids": {
- "description": "A list of annotation ids",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "result": {
- "description": "The result from the get list query",
- "items": {
- "$ref": "#/components/schemas/AnnotationRestApi.get_list"
- },
- "type": "array"
- }
- },
- "type": "object"
+ "format": "binary",
+ "type": "string"
}
}
},
- "description": "Items from Annotations"
+ "description": "Chart thumbnail image"
},
"400": {
"$ref": "#/components/responses/400"
@@ -10523,8 +14298,8 @@
"401": {
"$ref": "#/components/responses/401"
},
- "422": {
- "$ref": "#/components/responses/422"
+ "404": {
+ "$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
@@ -10535,50 +14310,47 @@
"jwt": []
}
],
- "tags": ["Annotation Layers"]
- },
- "post": {
- "description": "Create an Annotation layer",
+ "summary": "Get a computed screenshot from cache",
+ "tags": [
+ "Charts"
+ ]
+ }
+ },
+ "/api/v1/chart/{pk}/thumbnail/{digest}/": {
+ "get": {
+ "description": "Compute or get already computed chart thumbnail from cache.",
"parameters": [
{
- "description": "The annotation layer pk for this annotation",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
+ },
+ {
+ "in": "path",
+ "name": "digest",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
}
],
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/AnnotationRestApi.post"
- }
- }
- },
- "description": "Annotation schema",
- "required": true
- },
"responses": {
- "201": {
+ "200": {
"content": {
- "application/json": {
+ "image/*": {
"schema": {
- "properties": {
- "id": {
- "type": "number"
- },
- "result": {
- "$ref": "#/components/schemas/AnnotationRestApi.post"
- }
- },
- "type": "object"
+ "format": "binary",
+ "type": "string"
}
}
},
- "description": "Annotation added"
+ "description": "Chart thumbnail image"
+ },
+ "302": {
+ "description": "Redirects to the current digest"
},
"400": {
"$ref": "#/components/responses/400"
@@ -10598,30 +14370,25 @@
"jwt": []
}
],
- "tags": ["Annotation Layers"]
+ "summary": "Get chart thumbnail",
+ "tags": [
+ "Charts"
+ ]
}
},
- "/api/v1/annotation_layer/{pk}/annotation/{annotation_id}": {
+ "/api/v1/css_template/": {
"delete": {
- "description": "Delete Annotation layer",
"parameters": [
{
- "description": "The annotation layer pk for this annotation",
- "in": "path",
- "name": "pk",
- "required": true,
- "schema": {
- "type": "integer"
- }
- },
- {
- "description": "The annotation pk for this annotation",
- "in": "path",
- "name": "annotation_id",
- "required": true,
- "schema": {
- "type": "integer"
- }
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/get_delete_ids_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
}
],
"responses": {
@@ -10638,7 +14405,10 @@
}
}
},
- "description": "Item deleted"
+ "description": "CSS templates bulk delete"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
@@ -10655,34 +14425,19 @@
"jwt": []
}
],
- "tags": ["Annotation Layers"]
+ "summary": "Bulk delete CSS templates",
+ "tags": [
+ "CSS Templates"
+ ]
},
"get": {
- "description": "Get an Annotation layer",
+ "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": [
- {
- "description": "The annotation layer pk for this annotation",
- "in": "path",
- "name": "pk",
- "required": true,
- "schema": {
- "type": "integer"
- }
- },
- {
- "description": "The annotation pk",
- "in": "path",
- "name": "annotation_id",
- "required": true,
- "schema": {
- "type": "integer"
- }
- },
{
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/get_item_schema"
+ "$ref": "#/components/schemas/get_list_schema"
}
}
},
@@ -10696,19 +14451,69 @@
"application/json": {
"schema": {
"properties": {
- "id": {
- "description": "The item id",
+ "count": {
+ "description": "The total record count on the backend",
+ "type": "number"
+ },
+ "description_columns": {
+ "properties": {
+ "column_name": {
+ "description": "The description for the column name. Will be translated by babel",
+ "example": "A Nice description for the column",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "ids": {
+ "description": "A list of item ids, useful when you don't know the column id",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "label_columns": {
+ "properties": {
+ "column_name": {
+ "description": "The label for the column name. Will be translated by babel",
+ "example": "A Nice label for the column",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "list_columns": {
+ "description": "A list of columns",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "list_title": {
+ "description": "A title to render. Will be translated by babel",
+ "example": "List Items",
"type": "string"
},
+ "order_columns": {
+ "description": "A list of allowed columns to sort",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
"result": {
- "$ref": "#/components/schemas/AnnotationRestApi.get"
+ "description": "The result from the get list query",
+ "items": {
+ "$ref": "#/components/schemas/CssTemplateRestApi.get_list"
+ },
+ "type": "array"
}
},
"type": "object"
}
}
},
- "description": "Item from Model"
+ "description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
@@ -10716,9 +14521,6 @@
"401": {
"$ref": "#/components/responses/401"
},
- "404": {
- "$ref": "#/components/responses/404"
- },
"422": {
"$ref": "#/components/responses/422"
},
@@ -10731,59 +14533,41 @@
"jwt": []
}
],
- "tags": ["Annotation Layers"]
+ "summary": "Get a list of CSS templates",
+ "tags": [
+ "CSS Templates"
+ ]
},
- "put": {
- "description": "Update an Annotation layer",
- "parameters": [
- {
- "description": "The annotation layer pk for this annotation",
- "in": "path",
- "name": "pk",
- "required": true,
- "schema": {
- "type": "integer"
- }
- },
- {
- "description": "The annotation pk for this annotation",
- "in": "path",
- "name": "annotation_id",
- "required": true,
- "schema": {
- "type": "integer"
- }
- }
- ],
+ "post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/AnnotationRestApi.put"
+ "$ref": "#/components/schemas/CssTemplateRestApi.post"
}
}
},
- "description": "Annotation schema",
+ "description": "Model schema",
"required": true
},
"responses": {
- "200": {
+ "201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
- "type": "number"
+ "type": "string"
},
"result": {
- "$ref": "#/components/schemas/AnnotationRestApi.put"
+ "$ref": "#/components/schemas/CssTemplateRestApi.post"
}
},
"type": "object"
}
}
},
- "description": "Annotation changed"
+ "description": "Item inserted"
},
"400": {
"$ref": "#/components/responses/400"
@@ -10791,8 +14575,8 @@
"401": {
"$ref": "#/components/responses/401"
},
- "404": {
- "$ref": "#/components/responses/404"
+ "422": {
+ "$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
@@ -10803,29 +14587,83 @@
"jwt": []
}
],
- "tags": ["Annotation Layers"]
+ "summary": "Create a CSS template",
+ "tags": [
+ "CSS Templates"
+ ]
}
},
- "/api/v1/assets/export/": {
+ "/api/v1/css_template/_info": {
"get": {
- "description": "Returns a ZIP file with all the Superset assets (databases, datasets, charts, dashboards, saved queries) as YAML files.",
+ "description": "Get metadata information about this API resource",
+ "parameters": [
+ {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/get_info_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
+ }
+ ],
"responses": {
"200": {
"content": {
- "application/zip": {
+ "application/json": {
"schema": {
- "format": "binary",
- "type": "string"
+ "properties": {
+ "add_columns": {
+ "type": "object"
+ },
+ "edit_columns": {
+ "type": "object"
+ },
+ "filters": {
+ "properties": {
+ "column_name": {
+ "items": {
+ "properties": {
+ "name": {
+ "description": "The filter name. Will be translated by babel",
+ "type": "string"
+ },
+ "operator": {
+ "description": "The filter operation key to use on list filters",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "permissions": {
+ "description": "The user permissions for this API resource",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
}
}
},
- "description": "ZIP file"
+ "description": "Item from Model"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
- "404": {
- "$ref": "#/components/responses/404"
+ "422": {
+ "$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
@@ -10836,59 +14674,45 @@
"jwt": []
}
],
- "tags": ["Import/export"]
+ "summary": "Get metadata information about this API resource",
+ "tags": [
+ "CSS Templates"
+ ]
}
},
- "/api/v1/assets/import/": {
- "post": {
- "requestBody": {
- "content": {
- "multipart/form-data": {
- "schema": {
- "properties": {
- "bundle": {
- "description": "upload file (ZIP or JSON)",
- "format": "binary",
- "type": "string"
- },
- "passwords": {
- "description": "JSON map of passwords for each featured database in the ZIP file. If the ZIP includes a database config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
- "type": "string"
- },
- "ssh_tunnel_passwords": {
- "description": "JSON map of passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
- "type": "string"
- },
- "ssh_tunnel_private_key_passwords": {
- "description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
- "type": "string"
- },
- "ssh_tunnel_private_keys": {
- "description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
- "type": "string"
- }
- },
- "type": "object"
- }
+ "/api/v1/css_template/related/{column_name}": {
+ "get": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "column_name",
+ "required": true,
+ "schema": {
+ "type": "string"
}
},
- "required": true
- },
+ {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/get_related_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
+ }
+ ],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
- "properties": {
- "message": {
- "type": "string"
- }
- },
- "type": "object"
+ "$ref": "#/components/schemas/RelatedResponseSchema"
}
}
},
- "description": "Assets import result"
+ "description": "Related column data"
},
"400": {
"$ref": "#/components/responses/400"
@@ -10896,8 +14720,8 @@
"401": {
"$ref": "#/components/responses/401"
},
- "422": {
- "$ref": "#/components/responses/422"
+ "404": {
+ "$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
@@ -10908,19 +14732,21 @@
"jwt": []
}
],
- "tags": ["Import/export"]
+ "summary": "Get related fields data",
+ "tags": [
+ "CSS Templates"
+ ]
}
},
- "/api/v1/async_event/": {
- "get": {
- "description": "Reads off of the Redis events stream, using the user's JWT token and optional query params for last event received.",
+ "/api/v1/css_template/{pk}": {
+ "delete": {
"parameters": [
{
- "description": "Last ID received by the client",
- "in": "query",
- "name": "last_id",
+ "in": "path",
+ "name": "pk",
+ "required": true,
"schema": {
- "type": "string"
+ "type": "integer"
}
}
],
@@ -10930,47 +14756,21 @@
"application/json": {
"schema": {
"properties": {
- "result": {
- "items": {
- "properties": {
- "channel_id": {
- "type": "string"
- },
- "errors": {
- "items": {
- "type": "object"
- },
- "type": "array"
- },
- "id": {
- "type": "string"
- },
- "job_id": {
- "type": "string"
- },
- "result_url": {
- "type": "string"
- },
- "status": {
- "type": "string"
- },
- "user_id": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "type": "array"
+ "message": {
+ "type": "string"
}
},
"type": "object"
}
}
},
- "description": "Async event results"
+ "description": "Item deleted"
},
- "401": {
- "$ref": "#/components/responses/401"
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "422": {
+ "$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
@@ -10981,33 +14781,100 @@
"jwt": []
}
],
- "tags": ["AsyncEventsRestApi"]
- }
- },
- "/api/v1/available_domains/": {
- "get": {
- "description": "Get all available domains",
+ "summary": "Delete a CSS template",
+ "tags": [
+ "CSS Templates"
+ ]
+ },
+ "get": {
+ "description": "Get an item model",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/get_item_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
+ }
+ ],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
+ "description_columns": {
+ "properties": {
+ "column_name": {
+ "description": "The description for the column name. Will be translated by babel",
+ "example": "A Nice description for the column",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The item id",
+ "type": "string"
+ },
+ "label_columns": {
+ "properties": {
+ "column_name": {
+ "description": "The label for the column name. Will be translated by babel",
+ "example": "A Nice label for the column",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
"result": {
- "$ref": "#/components/schemas/AvailableDomainsSchema"
+ "$ref": "#/components/schemas/CssTemplateRestApi.get"
+ },
+ "show_columns": {
+ "description": "A list of columns",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "show_title": {
+ "description": "A title to render. Will be translated by babel",
+ "example": "Show Item Details",
+ "type": "string"
}
},
"type": "object"
}
}
},
- "description": "a list of available domains"
+ "description": "Item from Model"
+ },
+ "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": [
@@ -11015,30 +14882,61 @@
"jwt": []
}
],
- "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",
+ "summary": "Get a CSS template",
+ "tags": [
+ "CSS Templates"
+ ]
+ },
+ "put": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
"requestBody": {
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/CacheInvalidationRequestSchema"
+ "$ref": "#/components/schemas/CssTemplateRestApi.put"
}
}
},
- "description": "A list of datasources uuid or the tuples of database and datasource names",
+ "description": "Model schema",
"required": true
},
"responses": {
- "201": {
- "description": "cache was successfully invalidated"
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "$ref": "#/components/schemas/CssTemplateRestApi.put"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Item changed"
},
"400": {
"$ref": "#/components/responses/400"
},
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
"500": {
"$ref": "#/components/responses/500"
}
@@ -11048,12 +14946,14 @@
"jwt": []
}
],
- "tags": ["CacheRestApi"]
+ "summary": "Update a CSS template",
+ "tags": [
+ "CSS Templates"
+ ]
}
},
- "/api/v1/chart/": {
+ "/api/v1/dashboard/": {
"delete": {
- "description": "Deletes multiple Charts in a bulk operation.",
"parameters": [
{
"content": {
@@ -11081,7 +14981,7 @@
}
}
},
- "description": "Charts bulk delete"
+ "description": "Dashboard bulk delete"
},
"401": {
"$ref": "#/components/responses/401"
@@ -11104,10 +15004,13 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Bulk delete dashboards",
+ "tags": [
+ "Dashboards"
+ ]
},
"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 dashboards, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
@@ -11180,7 +15083,7 @@
"result": {
"description": "The result from the get list query",
"items": {
- "$ref": "#/components/schemas/ChartRestApi.get_list"
+ "$ref": "#/components/schemas/DashboardRestApi.get_list"
},
"type": "array"
}
@@ -11209,19 +15112,21 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Get a list of dashboards",
+ "tags": [
+ "Dashboards"
+ ]
},
"post": {
- "description": "Create a new Chart.",
"requestBody": {
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/ChartRestApi.post"
+ "$ref": "#/components/schemas/DashboardRestApi.post"
}
}
},
- "description": "Chart schema",
+ "description": "Dashboard schema",
"required": true
},
"responses": {
@@ -11234,14 +15139,14 @@
"type": "number"
},
"result": {
- "$ref": "#/components/schemas/ChartRestApi.post"
+ "$ref": "#/components/schemas/DashboardRestApi.post"
}
},
"type": "object"
}
}
},
- "description": "Chart added"
+ "description": "Dashboard added"
},
"400": {
"$ref": "#/components/responses/400"
@@ -11249,11 +15154,8 @@
"401": {
"$ref": "#/components/responses/401"
},
- "403": {
- "$ref": "#/components/responses/403"
- },
- "422": {
- "$ref": "#/components/responses/422"
+ "404": {
+ "$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
@@ -11264,12 +15166,15 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Create a new dashboard",
+ "tags": [
+ "Dashboards"
+ ]
}
},
- "/api/v1/chart/_info": {
+ "/api/v1/dashboard/_info": {
"get": {
- "description": "Several metadata information about chart API endpoints.",
+ "description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
@@ -11298,135 +15203,37 @@
"filters": {
"properties": {
"column_name": {
- "items": {
- "properties": {
- "name": {
- "description": "The filter name. Will be translated by babel",
- "type": "string"
- },
- "operator": {
- "description": "The filter operation key to use on list filters",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- }
- },
- "type": "object"
- },
- "permissions": {
- "description": "The user permissions for this API resource",
- "items": {
- "type": "string"
- },
- "type": "array"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "Item from Model"
- },
- "400": {
- "$ref": "#/components/responses/400"
- },
- "401": {
- "$ref": "#/components/responses/401"
- },
- "422": {
- "$ref": "#/components/responses/422"
- },
- "500": {
- "$ref": "#/components/responses/500"
- }
- },
- "security": [
- {
- "jwt": []
- }
- ],
- "tags": ["Charts"]
- }
- },
- "/api/v1/chart/data": {
- "post": {
- "description": "Takes a query context constructed in the client and returns payload data response for the given query.",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ChartDataQueryContextSchema"
- }
- }
- },
- "description": "A query context consists of a datasource from which to fetch data and one or many query objects.",
- "required": true
- },
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ChartDataResponseSchema"
- }
- }
- },
- "description": "Query result"
- },
- "202": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ChartDataAsyncResponseSchema"
- }
- }
- },
- "description": "Async job details"
- },
- "400": {
- "$ref": "#/components/responses/400"
- },
- "401": {
- "$ref": "#/components/responses/401"
- },
- "500": {
- "$ref": "#/components/responses/500"
- }
- },
- "security": [
- {
- "jwt": []
- }
- ],
- "tags": ["Charts"]
- }
- },
- "/api/v1/chart/data/{cache_key}": {
- "get": {
- "description": "Takes a query context cache key and returns payload data response for the given query.",
- "parameters": [
- {
- "in": "path",
- "name": "cache_key",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ChartDataResponseSchema"
+ "items": {
+ "properties": {
+ "name": {
+ "description": "The filter name. Will be translated by babel",
+ "type": "string"
+ },
+ "operator": {
+ "description": "The filter operation key to use on list filters",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "permissions": {
+ "description": "The user permissions for this API resource",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
}
}
},
- "description": "Query result"
+ "description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
@@ -11434,9 +15241,6 @@
"401": {
"$ref": "#/components/responses/401"
},
- "404": {
- "$ref": "#/components/responses/404"
- },
"422": {
"$ref": "#/components/responses/422"
},
@@ -11449,12 +15253,14 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Get metadata information about this API resource",
+ "tags": [
+ "Dashboards"
+ ]
}
},
- "/api/v1/chart/export/": {
+ "/api/v1/dashboard/export/": {
"get": {
- "description": "Exports multiple charts and downloads them as YAML files",
"parameters": [
{
"content": {
@@ -11471,14 +15277,13 @@
"responses": {
"200": {
"content": {
- "application/zip": {
+ "text/plain": {
"schema": {
- "format": "binary",
"type": "string"
}
}
},
- "description": "A zip file with chart(s), dataset(s) and database(s) as YAML"
+ "description": "Dashboard export"
},
"400": {
"$ref": "#/components/responses/400"
@@ -11489,6 +15294,9 @@
"404": {
"$ref": "#/components/responses/404"
},
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
"500": {
"$ref": "#/components/responses/500"
}
@@ -11498,12 +15306,14 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Download multiple dashboards as YAML files",
+ "tags": [
+ "Dashboards"
+ ]
}
},
- "/api/v1/chart/favorite_status/": {
+ "/api/v1/dashboard/favorite_status/": {
"get": {
- "description": "Check favorited dashboards for current user",
"parameters": [
{
"content": {
@@ -11546,10 +15356,13 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Check favorited dashboards for current user",
+ "tags": [
+ "Dashboards"
+ ]
}
},
- "/api/v1/chart/import/": {
+ "/api/v1/dashboard/import/": {
"post": {
"requestBody": {
"content": {
@@ -11557,12 +15370,12 @@
"schema": {
"properties": {
"formData": {
- "description": "upload file (ZIP)",
+ "description": "upload file (ZIP or JSON)",
"format": "binary",
"type": "string"
},
"overwrite": {
- "description": "overwrite existing charts?",
+ "description": "overwrite existing dashboards?",
"type": "boolean"
},
"passwords": {
@@ -11602,7 +15415,7 @@
}
}
},
- "description": "Chart import result"
+ "description": "Dashboard import result"
},
"400": {
"$ref": "#/components/responses/400"
@@ -11622,31 +15435,22 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Import dashboard(s) with associated charts/datasets/databases",
+ "tags": [
+ "Dashboards"
+ ]
}
},
- "/api/v1/chart/related/{column_name}": {
+ "/api/v1/dashboard/permalink/{key}": {
"get": {
- "description": "Get a list of all possible owners for a chart. Use `owners` has the `column_name` parameter",
"parameters": [
{
"in": "path",
- "name": "column_name",
+ "name": "key",
"required": true,
"schema": {
"type": "string"
}
- },
- {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/get_related_schema"
- }
- }
- },
- "in": "query",
- "name": "q"
}
],
"responses": {
@@ -11654,11 +15458,17 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/RelatedResponseSchema"
+ "properties": {
+ "state": {
+ "description": "The stored state",
+ "type": "object"
+ }
+ },
+ "type": "object"
}
}
},
- "description": "Related column data"
+ "description": "Returns the stored state."
},
"400": {
"$ref": "#/components/responses/400"
@@ -11669,6 +15479,9 @@
"404": {
"$ref": "#/components/responses/404"
},
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
"500": {
"$ref": "#/components/responses/500"
}
@@ -11678,64 +15491,34 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Get dashboard's permanent link state",
+ "tags": [
+ "Dashboard Permanent Link"
+ ]
}
},
- "/api/v1/chart/warm_up_cache": {
- "put": {
- "description": "Warms up the cache for the chart. Note for slices a force refresh occurs. In terms of the `extra_filters` these can be obtained from records in the JSON encoded `logs.json` column associated with the `explore_json` action.",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ChartCacheWarmUpRequestSchema"
- }
+ "/api/v1/dashboard/related/{column_name}": {
+ "get": {
+ "description": "Get a list of all possible owners for a dashboard.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "column_name",
+ "required": true,
+ "schema": {
+ "type": "string"
}
},
- "description": "Identifies the chart to warm up cache for, and any additional dashboard or filter context to use.",
- "required": true
- },
- "responses": {
- "200": {
+ {
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/ChartCacheWarmUpResponseSchema"
+ "$ref": "#/components/schemas/get_related_schema"
}
}
},
- "description": "Each chart's warmup status"
- },
- "400": {
- "$ref": "#/components/responses/400"
- },
- "404": {
- "$ref": "#/components/responses/404"
- },
- "500": {
- "$ref": "#/components/responses/500"
- }
- },
- "security": [
- {
- "jwt": []
- }
- ],
- "summary": "Warms up the cache for the chart",
- "tags": ["Charts"]
- }
- },
- "/api/v1/chart/{pk}": {
- "delete": {
- "description": "Deletes a Chart.",
- "parameters": [
- {
- "in": "path",
- "name": "pk",
- "required": true,
- "schema": {
- "type": "integer"
- }
+ "in": "query",
+ "name": "q"
}
],
"responses": {
@@ -11743,29 +15526,21 @@
"content": {
"application/json": {
"schema": {
- "properties": {
- "message": {
- "type": "string"
- }
- },
- "type": "object"
+ "$ref": "#/components/schemas/RelatedResponseSchema"
}
}
},
- "description": "Chart delete"
+ "description": "Related column data"
+ },
+ "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"
}
@@ -11775,29 +15550,23 @@
"jwt": []
}
],
- "tags": ["Charts"]
- },
+ "summary": "Get related fields data",
+ "tags": [
+ "Dashboards"
+ ]
+ }
+ },
+ "/api/v1/dashboard/{id_or_slug}": {
"get": {
- "description": "Get a chart detail information.",
"parameters": [
{
+ "description": "Either the id of the dashboard, or its slug",
"in": "path",
- "name": "pk",
+ "name": "id_or_slug",
"required": true,
"schema": {
- "type": "integer"
+ "type": "string"
}
- },
- {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/get_item_schema"
- }
- }
- },
- "in": "query",
- "name": "q"
}
],
"responses": {
@@ -11806,51 +15575,15 @@
"application/json": {
"schema": {
"properties": {
- "description_columns": {
- "properties": {
- "column_name": {
- "description": "The description for the column name. Will be translated by babel",
- "example": "A Nice description for the column",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The item id",
- "type": "string"
- },
- "label_columns": {
- "properties": {
- "column_name": {
- "description": "The label for the column name. Will be translated by babel",
- "example": "A Nice label for the column",
- "type": "string"
- }
- },
- "type": "object"
- },
"result": {
- "$ref": "#/components/schemas/ChartRestApi.get"
- },
- "show_columns": {
- "description": "A list of columns",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "show_title": {
- "description": "A title to render. Will be translated by babel",
- "example": "Show Item Details",
- "type": "string"
+ "$ref": "#/components/schemas/DashboardGetResponseSchema"
}
},
"type": "object"
}
}
},
- "description": "Item from Model"
+ "description": "Dashboard"
},
"400": {
"$ref": "#/components/responses/400"
@@ -11858,14 +15591,11 @@
"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": [
@@ -11873,49 +15603,42 @@
"jwt": []
}
],
- "tags": ["Charts"]
- },
- "put": {
- "description": "Changes a Chart.",
+ "summary": "Get a dashboard detail information",
+ "tags": [
+ "Dashboards"
+ ]
+ }
+ },
+ "/api/v1/dashboard/{id_or_slug}/charts": {
+ "get": {
"parameters": [
{
"in": "path",
- "name": "pk",
+ "name": "id_or_slug",
"required": true,
"schema": {
- "type": "integer"
+ "type": "string"
}
}
],
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ChartRestApi.put"
- }
- }
- },
- "description": "Chart schema",
- "required": true
- },
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
- "id": {
- "type": "number"
- },
"result": {
- "$ref": "#/components/schemas/ChartRestApi.put"
+ "items": {
+ "$ref": "#/components/schemas/ChartEntityResponseSchema"
+ },
+ "type": "array"
}
},
"type": "object"
}
}
},
- "description": "Chart changed"
+ "description": "Dashboard chart definitions"
},
"400": {
"$ref": "#/components/responses/400"
@@ -11928,12 +15651,6 @@
},
"404": {
"$ref": "#/components/responses/404"
- },
- "422": {
- "$ref": "#/components/responses/422"
- },
- "500": {
- "$ref": "#/components/responses/500"
}
},
"security": [
@@ -11941,43 +15658,53 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Get a dashboard's chart definitions.",
+ "tags": [
+ "Dashboards"
+ ]
}
},
- "/api/v1/chart/{pk}/cache_screenshot/": {
- "get": {
- "description": "Compute and cache a screenshot.",
+ "/api/v1/dashboard/{id_or_slug}/copy/": {
+ "post": {
"parameters": [
{
+ "description": "The dashboard id or slug",
"in": "path",
- "name": "pk",
+ "name": "id_or_slug",
"required": true,
"schema": {
- "type": "integer"
+ "type": "string"
}
- },
- {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/screenshot_query_schema"
- }
- }
- },
- "in": "query",
- "name": "q"
}
],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DashboardCopySchema"
+ }
+ }
+ },
+ "required": true
+ },
"responses": {
- "202": {
+ "200": {
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/ChartCacheScreenshotResponseSchema"
+ "properties": {
+ "id": {
+ "type": "number"
+ },
+ "last_modified_time": {
+ "type": "number"
+ }
+ },
+ "type": "object"
}
}
},
- "description": "Chart async result"
+ "description": "Id of new dashboard and last modified time"
},
"400": {
"$ref": "#/components/responses/400"
@@ -11985,6 +15712,9 @@
"401": {
"$ref": "#/components/responses/401"
},
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
"404": {
"$ref": "#/components/responses/404"
},
@@ -11997,45 +15727,24 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Create a copy of an existing dashboard",
+ "tags": [
+ "Dashboards"
+ ]
}
},
- "/api/v1/chart/{pk}/data/": {
+ "/api/v1/dashboard/{id_or_slug}/datasets": {
"get": {
- "description": "Takes a chart ID and uses the query context stored when the chart was saved to return payload data response.",
+ "description": "Returns a list of a dashboard's datasets. Each dataset includes only the information necessary to render the dashboard's charts.",
"parameters": [
{
- "description": "The chart ID",
+ "description": "Either the id of the dashboard, or its slug",
"in": "path",
- "name": "pk",
+ "name": "id_or_slug",
"required": true,
- "schema": {
- "type": "integer"
- }
- },
- {
- "description": "The format in which the data should be returned",
- "in": "query",
- "name": "format",
- "schema": {
- "type": "string"
- }
- },
- {
- "description": "The type in which the data should be returned",
- "in": "query",
- "name": "type",
"schema": {
"type": "string"
}
- },
- {
- "description": "Should the queries be forced to load from the source",
- "in": "query",
- "name": "force",
- "schema": {
- "type": "boolean"
- }
}
],
"responses": {
@@ -12043,21 +15752,19 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/ChartDataResponseSchema"
- }
- }
- },
- "description": "Query result"
- },
- "202": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ChartDataAsyncResponseSchema"
+ "properties": {
+ "result": {
+ "items": {
+ "$ref": "#/components/schemas/DashboardDatasetSchema"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
}
}
},
- "description": "Async job details"
+ "description": "Dashboard dataset definitions"
},
"400": {
"$ref": "#/components/responses/400"
@@ -12065,8 +15772,11 @@
"401": {
"$ref": "#/components/responses/401"
},
- "500": {
- "$ref": "#/components/responses/500"
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
}
},
"security": [
@@ -12074,19 +15784,22 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Get dashboard's datasets",
+ "tags": [
+ "Dashboards"
+ ]
}
},
- "/api/v1/chart/{pk}/favorites/": {
+ "/api/v1/dashboard/{id_or_slug}/embedded": {
"delete": {
- "description": "Remove the chart from the user favorite list",
"parameters": [
{
+ "description": "The dashboard id or slug",
"in": "path",
- "name": "pk",
+ "name": "id_or_slug",
"required": true,
"schema": {
- "type": "integer"
+ "type": "string"
}
}
],
@@ -12096,22 +15809,19 @@
"application/json": {
"schema": {
"properties": {
- "result": {
- "type": "object"
+ "message": {
+ "type": "string"
}
},
"type": "object"
}
}
},
- "description": "Chart removed from favorites"
+ "description": "Successfully removed the configuration"
},
"401": {
"$ref": "#/components/responses/401"
},
- "404": {
- "$ref": "#/components/responses/404"
- },
"500": {
"$ref": "#/components/responses/500"
}
@@ -12121,17 +15831,20 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "summary": "Delete a dashboard's embedded configuration",
+ "tags": [
+ "Dashboards"
+ ]
},
- "post": {
- "description": "Marks the chart as favorite for the current user",
+ "get": {
"parameters": [
{
+ "description": "The dashboard id or slug",
"in": "path",
- "name": "pk",
+ "name": "id_or_slug",
"required": true,
"schema": {
- "type": "integer"
+ "type": "string"
}
}
],
@@ -12142,21 +15855,18 @@
"schema": {
"properties": {
"result": {
- "type": "object"
+ "$ref": "#/components/schemas/EmbeddedDashboardResponseSchema"
}
},
"type": "object"
}
}
},
- "description": "Chart added to favorites"
+ "description": "Result contains the embedded dashboard config"
},
"401": {
"$ref": "#/components/responses/401"
},
- "404": {
- "$ref": "#/components/responses/404"
- },
"500": {
"$ref": "#/components/responses/500"
}
@@ -12166,51 +15876,53 @@
"jwt": []
}
],
- "tags": ["Charts"]
- }
- },
- "/api/v1/chart/{pk}/screenshot/{digest}/": {
- "get": {
- "description": "Get a computed screenshot from cache.",
+ "summary": "Get the dashboard's embedded configuration",
+ "tags": [
+ "Dashboards"
+ ]
+ },
+ "post": {
"parameters": [
{
+ "description": "The dashboard id or slug",
"in": "path",
- "name": "pk",
- "required": true,
- "schema": {
- "type": "integer"
- }
- },
- {
- "in": "path",
- "name": "digest",
+ "name": "id_or_slug",
"required": true,
"schema": {
"type": "string"
}
}
],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/EmbeddedDashboardConfig"
+ }
+ }
+ },
+ "description": "The embedded configuration to set",
+ "required": true
+ },
"responses": {
"200": {
"content": {
- "image/*": {
+ "application/json": {
"schema": {
- "format": "binary",
- "type": "string"
+ "properties": {
+ "result": {
+ "$ref": "#/components/schemas/EmbeddedDashboardResponseSchema"
+ }
+ },
+ "type": "object"
}
}
},
- "description": "Chart thumbnail image"
- },
- "400": {
- "$ref": "#/components/responses/400"
+ "description": "Successfully set the configuration"
},
"401": {
"$ref": "#/components/responses/401"
},
- "404": {
- "$ref": "#/components/responses/404"
- },
"500": {
"$ref": "#/components/responses/500"
}
@@ -12220,54 +15932,54 @@
"jwt": []
}
],
- "tags": ["Charts"]
- }
- },
- "/api/v1/chart/{pk}/thumbnail/{digest}/": {
- "get": {
- "description": "Compute or get already computed chart thumbnail from cache.",
+ "summary": "Set a dashboard's embedded configuration",
+ "tags": [
+ "Dashboards"
+ ]
+ },
+ "put": {
+ "description": "Sets a dashboard's embedded configuration.",
"parameters": [
{
+ "description": "The dashboard id or slug",
"in": "path",
- "name": "pk",
- "required": true,
- "schema": {
- "type": "integer"
- }
- },
- {
- "in": "path",
- "name": "digest",
+ "name": "id_or_slug",
"required": true,
"schema": {
"type": "string"
}
}
],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/EmbeddedDashboardConfig"
+ }
+ }
+ },
+ "description": "The embedded configuration to set",
+ "required": true
+ },
"responses": {
"200": {
"content": {
- "image/*": {
+ "application/json": {
"schema": {
- "format": "binary",
- "type": "string"
+ "properties": {
+ "result": {
+ "$ref": "#/components/schemas/EmbeddedDashboardResponseSchema"
+ }
+ },
+ "type": "object"
}
}
},
- "description": "Chart thumbnail image"
- },
- "302": {
- "description": "Redirects to the current digest"
- },
- "400": {
- "$ref": "#/components/responses/400"
+ "description": "Successfully set the configuration"
},
"401": {
"$ref": "#/components/responses/401"
},
- "404": {
- "$ref": "#/components/responses/404"
- },
"500": {
"$ref": "#/components/responses/500"
}
@@ -12277,23 +15989,23 @@
"jwt": []
}
],
- "tags": ["Charts"]
+ "tags": [
+ "Dashboards"
+ ]
}
},
- "/api/v1/css_template/": {
- "delete": {
- "description": "Deletes multiple css templates in a bulk operation.",
+ "/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": [
{
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/get_delete_ids_schema"
- }
- }
- },
- "in": "query",
- "name": "q"
+ "description": "Either the id of the dashboard, or its slug",
+ "in": "path",
+ "name": "id_or_slug",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
}
],
"responses": {
@@ -12302,27 +16014,30 @@
"application/json": {
"schema": {
"properties": {
- "message": {
- "type": "string"
+ "result": {
+ "items": {
+ "$ref": "#/components/schemas/TabsPayloadSchema"
+ },
+ "type": "object"
}
},
"type": "object"
}
}
},
- "description": "CSS templates bulk delete"
+ "description": "Dashboard tabs"
+ },
+ "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": [
@@ -12330,21 +16045,22 @@
"jwt": []
}
],
- "tags": ["CSS Templates"]
- },
- "get": {
- "description": "Get a list of CSS templates, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
+ "summary": "Get dashboard's tabs",
+ "tags": [
+ "Dashboards"
+ ]
+ }
+ },
+ "/api/v1/dashboard/{pk}": {
+ "delete": {
"parameters": [
{
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/get_list_schema"
- }
- }
- },
- "in": "query",
- "name": "q"
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
}
],
"responses": {
@@ -12353,76 +16069,25 @@
"application/json": {
"schema": {
"properties": {
- "count": {
- "description": "The total record count on the backend",
- "type": "number"
- },
- "description_columns": {
- "properties": {
- "column_name": {
- "description": "The description for the column name. Will be translated by babel",
- "example": "A Nice description for the column",
- "type": "string"
- }
- },
- "type": "object"
- },
- "ids": {
- "description": "A list of item ids, useful when you don't know the column id",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "label_columns": {
- "properties": {
- "column_name": {
- "description": "The label for the column name. Will be translated by babel",
- "example": "A Nice label for the column",
- "type": "string"
- }
- },
- "type": "object"
- },
- "list_columns": {
- "description": "A list of columns",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "list_title": {
- "description": "A title to render. Will be translated by babel",
- "example": "List Items",
+ "message": {
"type": "string"
- },
- "order_columns": {
- "description": "A list of allowed columns to sort",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "result": {
- "description": "The result from the get list query",
- "items": {
- "$ref": "#/components/schemas/CssTemplateRestApi.get_list"
- },
- "type": "array"
}
},
"type": "object"
}
}
},
- "description": "Items from Model"
- },
- "400": {
- "$ref": "#/components/responses/400"
+ "description": "Dashboard deleted"
},
"401": {
"$ref": "#/components/responses/401"
},
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
"422": {
"$ref": "#/components/responses/422"
},
@@ -12435,39 +16100,54 @@
"jwt": []
}
],
- "tags": ["CSS Templates"]
+ "summary": "Delete a dashboard",
+ "tags": [
+ "Dashboards"
+ ]
},
- "post": {
- "description": "Create a CSS template",
+ "put": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
"requestBody": {
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/CssTemplateRestApi.post"
+ "$ref": "#/components/schemas/DashboardRestApi.put"
}
}
},
- "description": "Model schema",
+ "description": "Dashboard schema",
"required": true
},
"responses": {
- "201": {
+ "200": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
- "type": "string"
+ "type": "number"
+ },
+ "last_modified_time": {
+ "type": "number"
},
"result": {
- "$ref": "#/components/schemas/CssTemplateRestApi.post"
+ "$ref": "#/components/schemas/DashboardRestApi.put"
}
},
"type": "object"
}
}
},
- "description": "Item inserted"
+ "description": "Dashboard changed"
},
"400": {
"$ref": "#/components/responses/400"
@@ -12475,6 +16155,12 @@
"401": {
"$ref": "#/components/responses/401"
},
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
"422": {
"$ref": "#/components/responses/422"
},
@@ -12487,71 +16173,43 @@
"jwt": []
}
],
- "tags": ["CSS Templates"]
+ "summary": "Update a dashboard",
+ "tags": [
+ "Dashboards"
+ ]
}
},
- "/api/v1/css_template/_info": {
- "get": {
- "description": "Get metadata information about this API resource",
+ "/api/v1/dashboard/{pk}/cache_dashboard_screenshot/": {
+ "post": {
"parameters": [
{
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/get_info_schema"
- }
- }
- },
- "in": "query",
- "name": "q"
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
}
],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DashboardScreenshotPostSchema"
+ }
+ }
+ }
+ },
"responses": {
- "200": {
+ "202": {
"content": {
"application/json": {
"schema": {
- "properties": {
- "add_columns": {
- "type": "object"
- },
- "edit_columns": {
- "type": "object"
- },
- "filters": {
- "properties": {
- "column_name": {
- "items": {
- "properties": {
- "name": {
- "description": "The filter name. Will be translated by babel",
- "type": "string"
- },
- "operator": {
- "description": "The filter operation key to use on list filters",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- }
- },
- "type": "object"
- },
- "permissions": {
- "description": "The user permissions for this API resource",
- "items": {
- "type": "string"
- },
- "type": "array"
- }
- },
- "type": "object"
+ "$ref": "#/components/schemas/DashboardCacheScreenshotResponseSchema"
}
}
},
- "description": "Item from Model"
+ "description": "Dashboard async result"
},
"400": {
"$ref": "#/components/responses/400"
@@ -12559,8 +16217,8 @@
"401": {
"$ref": "#/components/responses/401"
},
- "422": {
- "$ref": "#/components/responses/422"
+ "404": {
+ "$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
@@ -12571,30 +16229,22 @@
"jwt": []
}
],
- "tags": ["CSS Templates"]
+ "summary": "Compute and cache a screenshot",
+ "tags": [
+ "Dashboards"
+ ]
}
},
- "/api/v1/css_template/related/{column_name}": {
- "get": {
+ "/api/v1/dashboard/{pk}/favorites/": {
+ "delete": {
"parameters": [
{
"in": "path",
- "name": "column_name",
+ "name": "pk",
"required": true,
"schema": {
- "type": "string"
+ "type": "integer"
}
- },
- {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/get_related_schema"
- }
- }
- },
- "in": "query",
- "name": "q"
}
],
"responses": {
@@ -12602,14 +16252,16 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/RelatedResponseSchema"
+ "properties": {
+ "result": {
+ "type": "object"
+ }
+ },
+ "type": "object"
}
}
},
- "description": "Related column data"
- },
- "400": {
- "$ref": "#/components/responses/400"
+ "description": "Dashboard removed from favorites"
},
"401": {
"$ref": "#/components/responses/401"
@@ -12626,12 +16278,12 @@
"jwt": []
}
],
- "tags": ["CSS Templates"]
- }
- },
- "/api/v1/css_template/{pk}": {
- "delete": {
- "description": "Delete CSS template",
+ "summary": "Remove the dashboard from the user favorite list",
+ "tags": [
+ "Dashboards"
+ ]
+ },
+ "post": {
"parameters": [
{
"in": "path",
@@ -12648,22 +16300,22 @@
"application/json": {
"schema": {
"properties": {
- "message": {
- "type": "string"
+ "result": {
+ "type": "object"
}
},
"type": "object"
}
}
},
- "description": "Item deleted"
+ "description": "Dashboard added to favorites"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
- "422": {
- "$ref": "#/components/responses/422"
- },
"500": {
"$ref": "#/components/responses/500"
}
@@ -12673,10 +16325,14 @@
"jwt": []
}
],
- "tags": ["CSS Templates"]
- },
- "get": {
- "description": "Get a CSS template",
+ "summary": "Mark the dashboard as favorite for the current user",
+ "tags": [
+ "Dashboards"
+ ]
+ }
+ },
+ "/api/v1/dashboard/{pk}/filter_state": {
+ "post": {
"parameters": [
{
"in": "path",
@@ -12687,60 +16343,31 @@
}
},
{
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/get_item_schema"
- }
- }
- },
"in": "query",
- "name": "q"
+ "name": "tab_id",
+ "schema": {
+ "type": "integer"
+ }
}
],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TemporaryCachePostSchema"
+ }
+ }
+ },
+ "required": true
+ },
"responses": {
- "200": {
+ "201": {
"content": {
"application/json": {
"schema": {
"properties": {
- "description_columns": {
- "properties": {
- "column_name": {
- "description": "The description for the column name. Will be translated by babel",
- "example": "A Nice description for the column",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The item id",
- "type": "string"
- },
- "label_columns": {
- "properties": {
- "column_name": {
- "description": "The label for the column name. Will be translated by babel",
- "example": "A Nice label for the column",
- "type": "string"
- }
- },
- "type": "object"
- },
- "result": {
- "$ref": "#/components/schemas/CssTemplateRestApi.get"
- },
- "show_columns": {
- "description": "A list of columns",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "show_title": {
- "description": "A title to render. Will be translated by babel",
- "example": "Show Item Details",
+ "key": {
+ "description": "The key to retrieve the value.",
"type": "string"
}
},
@@ -12748,7 +16375,7 @@
}
}
},
- "description": "Item from Model"
+ "description": "The value was stored successfully."
},
"400": {
"$ref": "#/components/responses/400"
@@ -12756,9 +16383,6 @@
"401": {
"$ref": "#/components/responses/401"
},
- "404": {
- "$ref": "#/components/responses/404"
- },
"422": {
"$ref": "#/components/responses/422"
},
@@ -12771,10 +16395,14 @@
"jwt": []
}
],
- "tags": ["CSS Templates"]
- },
- "put": {
- "description": "Update a CSS template",
+ "summary": "Create a dashboard's filter state",
+ "tags": [
+ "Dashboard Filter State"
+ ]
+ }
+ },
+ "/api/v1/dashboard/{pk}/filter_state/{key}": {
+ "delete": {
"parameters": [
{
"in": "path",
@@ -12783,34 +16411,33 @@
"schema": {
"type": "integer"
}
+ },
+ {
+ "description": "The value key.",
+ "in": "path",
+ "name": "key",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
}
],
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/CssTemplateRestApi.put"
- }
- }
- },
- "description": "Model schema",
- "required": true
- },
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
- "result": {
- "$ref": "#/components/schemas/CssTemplateRestApi.put"
+ "message": {
+ "description": "The result of the operation",
+ "type": "string"
}
},
"type": "object"
}
}
},
- "description": "Item changed"
+ "description": "Deleted the stored value."
},
"400": {
"$ref": "#/components/responses/400"
@@ -12833,23 +16460,28 @@
"jwt": []
}
],
- "tags": ["CSS Templates"]
- }
- },
- "/api/v1/dashboard/": {
- "delete": {
- "description": "Deletes multiple Dashboards in a bulk operation.",
+ "summary": "Delete a dashboard's filter state value",
+ "tags": [
+ "Dashboard Filter State"
+ ]
+ },
+ "get": {
"parameters": [
{
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/get_delete_ids_schema"
- }
- }
- },
- "in": "query",
- "name": "q"
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "path",
+ "name": "key",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
}
],
"responses": {
@@ -12858,7 +16490,8 @@
"application/json": {
"schema": {
"properties": {
- "message": {
+ "value": {
+ "description": "The stored value",
"type": "string"
}
},
@@ -12866,14 +16499,14 @@
}
}
},
- "description": "Dashboard bulk delete"
+ "description": "Returns the stored value."
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
- "403": {
- "$ref": "#/components/responses/403"
- },
"404": {
"$ref": "#/components/responses/404"
},
@@ -12889,92 +16522,63 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Get a dashboard's filter state value",
+ "tags": [
+ "Dashboard Filter State"
+ ]
},
- "get": {
- "description": "Get a list of dashboards, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
+ "put": {
"parameters": [
{
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/get_list_schema"
- }
- }
- },
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "path",
+ "name": "key",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
"in": "query",
- "name": "q"
+ "name": "tab_id",
+ "schema": {
+ "type": "integer"
+ }
}
],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TemporaryCachePutSchema"
+ }
+ }
+ },
+ "required": true
+ },
"responses": {
"200": {
- "content": {
- "application/json": {
- "schema": {
- "properties": {
- "count": {
- "description": "The total record count on the backend",
- "type": "number"
- },
- "description_columns": {
- "properties": {
- "column_name": {
- "description": "The description for the column name. Will be translated by babel",
- "example": "A Nice description for the column",
- "type": "string"
- }
- },
- "type": "object"
- },
- "ids": {
- "description": "A list of item ids, useful when you don't know the column id",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "label_columns": {
- "properties": {
- "column_name": {
- "description": "The label for the column name. Will be translated by babel",
- "example": "A Nice label for the column",
- "type": "string"
- }
- },
- "type": "object"
- },
- "list_columns": {
- "description": "A list of columns",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "list_title": {
- "description": "A title to render. Will be translated by babel",
- "example": "List Items",
- "type": "string"
- },
- "order_columns": {
- "description": "A list of allowed columns to sort",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "result": {
- "description": "The result from the get list query",
- "items": {
- "$ref": "#/components/schemas/DashboardRestApi.get_list"
- },
- "type": "array"
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "key": {
+ "description": "The key to retrieve the value.",
+ "type": "string"
}
},
"type": "object"
}
}
},
- "description": "Items from Model"
+ "description": "The value was stored successfully."
},
"400": {
"$ref": "#/components/responses/400"
@@ -12982,6 +16586,9 @@
"401": {
"$ref": "#/components/responses/401"
},
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
"422": {
"$ref": "#/components/responses/422"
},
@@ -12994,39 +16601,50 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
- },
- "post": {
- "description": "Create a new Dashboard.",
+ "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/DashboardRestApi.post"
+ "$ref": "#/components/schemas/DashboardNativeFiltersConfigUpdateSchema"
}
}
},
- "description": "Dashboard schema",
+ "description": "Native filters configuration",
"required": true
},
"responses": {
- "201": {
+ "200": {
"content": {
"application/json": {
"schema": {
"properties": {
- "id": {
- "type": "number"
- },
"result": {
- "$ref": "#/components/schemas/DashboardRestApi.post"
+ "type": "array"
}
},
"type": "object"
}
}
},
- "description": "Dashboard added"
+ "description": "Dashboard native filters updated"
},
"400": {
"$ref": "#/components/responses/400"
@@ -13034,9 +16652,15 @@
"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"
}
@@ -13046,71 +16670,54 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Update native filters configuration for a dashboard.",
+ "tags": [
+ "Dashboards"
+ ]
}
},
- "/api/v1/dashboard/_info": {
- "get": {
- "description": "Several metadata information about dashboard API endpoints.",
+ "/api/v1/dashboard/{pk}/permalink": {
+ "post": {
"parameters": [
{
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/get_info_schema"
- }
- }
- },
- "in": "query",
- "name": "q"
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
}
],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DashboardPermalinkStateSchema"
+ }
+ }
+ },
+ "required": true
+ },
"responses": {
- "200": {
+ "201": {
"content": {
"application/json": {
"schema": {
"properties": {
- "add_columns": {
- "type": "object"
- },
- "edit_columns": {
- "type": "object"
- },
- "filters": {
- "properties": {
- "column_name": {
- "items": {
- "properties": {
- "name": {
- "description": "The filter name. Will be translated by babel",
- "type": "string"
- },
- "operator": {
- "description": "The filter operation key to use on list filters",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- }
- },
- "type": "object"
+ "key": {
+ "description": "The key to retrieve the permanent link data.",
+ "type": "string"
},
- "permissions": {
- "description": "The user permissions for this API resource",
- "items": {
- "type": "string"
- },
- "type": "array"
+ "url": {
+ "description": "permanent link.",
+ "type": "string"
}
},
"type": "object"
}
}
},
- "description": "Item from Model"
+ "description": "The permanent link was stored successfully."
},
"400": {
"$ref": "#/components/responses/400"
@@ -13130,35 +16737,43 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Create a new dashboard's permanent link",
+ "tags": [
+ "Dashboard Permanent Link"
+ ]
}
},
- "/api/v1/dashboard/export/": {
+ "/api/v1/dashboard/{pk}/screenshot/{digest}/": {
"get": {
- "description": "Exports multiple Dashboards and downloads them as YAML files.",
"parameters": [
{
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/get_export_ids_schema"
- }
- }
- },
- "in": "query",
- "name": "q"
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "path",
+ "name": "digest",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
}
],
"responses": {
"200": {
"content": {
- "text/plain": {
+ "image/*": {
"schema": {
+ "format": "binary",
"type": "string"
}
}
},
- "description": "Dashboard export"
+ "description": "Dashboard thumbnail image"
},
"400": {
"$ref": "#/components/responses/400"
@@ -13169,9 +16784,6 @@
"404": {
"$ref": "#/components/responses/404"
},
- "422": {
- "$ref": "#/components/responses/422"
- },
"500": {
"$ref": "#/components/responses/500"
}
@@ -13181,18 +16793,38 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Get a computed screenshot from cache",
+ "tags": [
+ "Dashboards"
+ ]
}
},
- "/api/v1/dashboard/favorite_status/": {
+ "/api/v1/dashboard/{pk}/thumbnail/{digest}/": {
"get": {
- "description": "Check favorited dashboards for current user",
+ "description": "Computes async or get already computed dashboard thumbnail from cache.",
"parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "description": "A hex digest that makes this dashboard unique",
+ "in": "path",
+ "name": "digest",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
{
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/get_fav_star_ids_schema"
+ "$ref": "#/components/schemas/thumbnail_query_schema"
}
}
},
@@ -13202,17 +16834,33 @@
],
"responses": {
"200": {
+ "content": {
+ "image/*": {
+ "schema": {
+ "format": "binary",
+ "type": "string"
+ }
+ }
+ },
+ "description": "Dashboard thumbnail image"
+ },
+ "202": {
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/GetFavStarIdsSchema"
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "type": "object"
}
}
},
- "description": "None"
+ "description": "Thumbnail does not exist on cache, fired async to compute"
},
- "400": {
- "$ref": "#/components/responses/400"
+ "302": {
+ "description": "Redirects to the current digest"
},
"401": {
"$ref": "#/components/responses/401"
@@ -13220,6 +16868,9 @@
"404": {
"$ref": "#/components/responses/404"
},
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
"500": {
"$ref": "#/components/responses/500"
}
@@ -13229,63 +16880,97 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Get dashboard's thumbnail",
+ "tags": [
+ "Dashboards"
+ ]
}
},
- "/api/v1/dashboard/import/": {
- "post": {
- "requestBody": {
- "content": {
- "multipart/form-data": {
- "schema": {
- "properties": {
- "formData": {
- "description": "upload file (ZIP or JSON)",
- "format": "binary",
- "type": "string"
- },
- "overwrite": {
- "description": "overwrite existing dashboards?",
- "type": "boolean"
- },
- "passwords": {
- "description": "JSON map of passwords for each featured database in the ZIP file. If the ZIP includes a database config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
- "type": "string"
- },
- "ssh_tunnel_passwords": {
- "description": "JSON map of passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
- "type": "string"
- },
- "ssh_tunnel_private_key_passwords": {
- "description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
- "type": "string"
- },
- "ssh_tunnel_private_keys": {
- "description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
- "type": "string"
- }
- },
- "type": "object"
+ "/api/v1/database/": {
+ "get": {
+ "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": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/get_list_schema"
+ }
}
- }
- },
- "required": true
- },
+ },
+ "in": "query",
+ "name": "q"
+ }
+ ],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
- "message": {
+ "count": {
+ "description": "The total record count on the backend",
+ "type": "number"
+ },
+ "description_columns": {
+ "properties": {
+ "column_name": {
+ "description": "The description for the column name. Will be translated by babel",
+ "example": "A Nice description for the column",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "ids": {
+ "description": "A list of item ids, useful when you don't know the column id",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "label_columns": {
+ "properties": {
+ "column_name": {
+ "description": "The label for the column name. Will be translated by babel",
+ "example": "A Nice label for the column",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "list_columns": {
+ "description": "A list of columns",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "list_title": {
+ "description": "A title to render. Will be translated by babel",
+ "example": "List Items",
"type": "string"
+ },
+ "order_columns": {
+ "description": "A list of allowed columns to sort",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "result": {
+ "description": "The result from the get list query",
+ "items": {
+ "$ref": "#/components/schemas/DatabaseRestApi.get_list"
+ },
+ "type": "array"
}
},
"type": "object"
}
}
},
- "description": "Dashboard import result"
+ "description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
@@ -13305,38 +16990,41 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
- }
- },
- "/api/v1/dashboard/permalink/{key}": {
- "get": {
- "description": "Retrives dashboard state associated with a permanent link.",
- "parameters": [
- {
- "in": "path",
- "name": "key",
- "required": true,
- "schema": {
- "type": "string"
+ "summary": "Get a list of databases",
+ "tags": [
+ "Database"
+ ]
+ },
+ "post": {
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DatabaseRestApi.post"
+ }
}
- }
- ],
+ },
+ "description": "Database schema",
+ "required": true
+ },
"responses": {
- "200": {
+ "201": {
"content": {
"application/json": {
"schema": {
"properties": {
- "state": {
- "description": "The stored state",
- "type": "object"
+ "id": {
+ "type": "number"
+ },
+ "result": {
+ "$ref": "#/components/schemas/DatabaseRestApi.post"
}
},
"type": "object"
}
}
},
- "description": "Returns the stored state."
+ "description": "Database added"
},
"400": {
"$ref": "#/components/responses/400"
@@ -13347,9 +17035,6 @@
"404": {
"$ref": "#/components/responses/404"
},
- "422": {
- "$ref": "#/components/responses/422"
- },
"500": {
"$ref": "#/components/responses/500"
}
@@ -13359,26 +17044,21 @@
"jwt": []
}
],
- "tags": ["Dashboard Permanent Link"]
+ "summary": "Create a new database",
+ "tags": [
+ "Database"
+ ]
}
},
- "/api/v1/dashboard/related/{column_name}": {
+ "/api/v1/database/_info": {
"get": {
- "description": "Get a list of all possible owners for a dashboard.",
+ "description": "Get metadata information about this API resource",
"parameters": [
- {
- "in": "path",
- "name": "column_name",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
{
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/get_related_schema"
+ "$ref": "#/components/schemas/get_info_schema"
}
}
},
@@ -13391,11 +17071,47 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/RelatedResponseSchema"
+ "properties": {
+ "add_columns": {
+ "type": "object"
+ },
+ "edit_columns": {
+ "type": "object"
+ },
+ "filters": {
+ "properties": {
+ "column_name": {
+ "items": {
+ "properties": {
+ "name": {
+ "description": "The filter name. Will be translated by babel",
+ "type": "string"
+ },
+ "operator": {
+ "description": "The filter operation key to use on list filters",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "permissions": {
+ "description": "The user permissions for this API resource",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
}
}
},
- "description": "Related column data"
+ "description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
@@ -13403,8 +17119,8 @@
"401": {
"$ref": "#/components/responses/401"
},
- "404": {
- "$ref": "#/components/responses/404"
+ "422": {
+ "$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
@@ -13415,50 +17131,80 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Get metadata information about this API resource",
+ "tags": [
+ "Database"
+ ]
}
},
- "/api/v1/dashboard/{id_or_slug}": {
+ "/api/v1/database/available/": {
"get": {
- "description": "Get a dashboard detail information.",
- "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": {
- "$ref": "#/components/schemas/DashboardGetResponseSchema"
- }
+ "items": {
+ "properties": {
+ "available_drivers": {
+ "description": "Installed drivers for the engine",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "default_driver": {
+ "description": "Default driver for the engine",
+ "type": "string"
+ },
+ "engine": {
+ "description": "Name of the SQLAlchemy engine",
+ "type": "string"
+ },
+ "engine_information": {
+ "description": "Dict with public properties form the DB Engine",
+ "properties": {
+ "disable_ssh_tunneling": {
+ "description": "Whether the engine supports SSH Tunnels",
+ "type": "boolean"
+ },
+ "supports_file_upload": {
+ "description": "Whether the engine supports file uploads",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "name": {
+ "description": "Name of the database",
+ "type": "string"
+ },
+ "parameters": {
+ "description": "JSON schema defining the needed parameters",
+ "type": "object"
+ },
+ "preferred": {
+ "description": "Is the database preferred?",
+ "type": "boolean"
+ },
+ "sqlalchemy_uri_placeholder": {
+ "description": "Example placeholder for the SQLAlchemy URI",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
- "type": "object"
+ "type": "array"
}
}
},
- "description": "Dashboard"
+ "description": "Database names"
},
"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": [
@@ -13466,22 +17212,24 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Get names of databases currently available",
+ "tags": [
+ "Database"
+ ]
}
},
- "/api/v1/dashboard/{id_or_slug}/charts": {
- "get": {
- "description": "Get the chart definitions for a given dashboard",
- "parameters": [
- {
- "in": "path",
- "name": "id_or_slug",
- "required": true,
- "schema": {
- "type": "string"
+ "/api/v1/database/columnar_metadata/": {
+ "post": {
+ "requestBody": {
+ "content": {
+ "multipart/form-data": {
+ "schema": {
+ "$ref": "#/components/schemas/ColumnarMetadataUploadFilePostSchema"
+ }
}
- }
- ],
+ },
+ "required": true
+ },
"responses": {
"200": {
"content": {
@@ -13489,17 +17237,14 @@
"schema": {
"properties": {
"result": {
- "items": {
- "$ref": "#/components/schemas/ChartEntityResponseSchema"
- },
- "type": "array"
+ "$ref": "#/components/schemas/UploadFileMetadata"
}
},
"type": "object"
}
}
},
- "description": "Dashboard chart definitions"
+ "description": "Columnar upload response"
},
"400": {
"$ref": "#/components/responses/400"
@@ -13507,11 +17252,11 @@
"401": {
"$ref": "#/components/responses/401"
},
- "403": {
- "$ref": "#/components/responses/403"
- },
"404": {
"$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
}
},
"security": [
@@ -13519,27 +17264,19 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Upload a Columnar file and returns file metadata",
+ "tags": [
+ "Database"
+ ]
}
},
- "/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"
- }
- }
- ],
+ "/api/v1/database/csv_metadata/": {
+ "post": {
"requestBody": {
"content": {
- "application/json": {
+ "multipart/form-data": {
"schema": {
- "$ref": "#/components/schemas/DashboardNativeFiltersConfigUpdateSchema"
+ "$ref": "#/components/schemas/CSVMetadataUploadFilePostSchema"
}
}
},
@@ -13552,17 +17289,14 @@
"schema": {
"properties": {
"result": {
- "type": "array",
- "items": {
- "type": "object"
- }
+ "$ref": "#/components/schemas/UploadFileMetadata"
}
},
"type": "object"
}
}
},
- "description": "Successfully updated the filters"
+ "description": "Columnar upload response"
},
"400": {
"$ref": "#/components/responses/400"
@@ -13570,9 +17304,6 @@
"401": {
"$ref": "#/components/responses/401"
},
- "403": {
- "$ref": "#/components/responses/403"
- },
"404": {
"$ref": "#/components/responses/404"
},
@@ -13585,27 +17316,19 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Upload an CSV file and returns file metadata",
+ "tags": [
+ "Database"
+ ]
}
},
- "/api/v1/dashboard/{id_or_slug}/copy/": {
+ "/api/v1/database/excel_metadata/": {
"post": {
- "parameters": [
- {
- "description": "The dashboard id or slug",
- "in": "path",
- "name": "id_or_slug",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
"requestBody": {
"content": {
- "application/json": {
+ "multipart/form-data": {
"schema": {
- "$ref": "#/components/schemas/DashboardCopySchema"
+ "$ref": "#/components/schemas/ExcelMetadataUploadFilePostSchema"
}
}
},
@@ -13617,18 +17340,15 @@
"application/json": {
"schema": {
"properties": {
- "id": {
- "type": "number"
- },
- "last_modified_time": {
- "type": "number"
+ "result": {
+ "$ref": "#/components/schemas/UploadFileMetadata"
}
},
"type": "object"
}
}
},
- "description": "Id of new dashboard and last modified time"
+ "description": "Columnar upload response"
},
"400": {
"$ref": "#/components/responses/400"
@@ -13636,9 +17356,6 @@
"401": {
"$ref": "#/components/responses/401"
},
- "403": {
- "$ref": "#/components/responses/403"
- },
"404": {
"$ref": "#/components/responses/404"
},
@@ -13651,54 +17368,47 @@
"jwt": []
}
],
- "summary": "Makes a copy of an existing dashboard",
- "tags": ["Dashboards"]
+ "summary": "Upload an Excel file and returns file metadata",
+ "tags": [
+ "Database"
+ ]
}
},
- "/api/v1/dashboard/{id_or_slug}/datasets": {
+ "/api/v1/database/export/": {
"get": {
- "description": "Returns a list of a dashboard's datasets. Each dataset includes only the information necessary to render the dashboard's charts.",
"parameters": [
{
- "description": "Either the id of the dashboard, or its slug",
- "in": "path",
- "name": "id_or_slug",
- "required": true,
- "schema": {
- "type": "string"
- }
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/get_export_ids_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
}
],
"responses": {
"200": {
"content": {
- "application/json": {
+ "application/zip": {
"schema": {
- "properties": {
- "result": {
- "items": {
- "$ref": "#/components/schemas/DashboardDatasetSchema"
- },
- "type": "array"
- }
- },
- "type": "object"
+ "format": "binary",
+ "type": "string"
}
}
},
- "description": "Dashboard dataset definitions"
- },
- "400": {
- "$ref": "#/components/responses/400"
+ "description": "A zip file with database(s) and dataset(s) as YAML"
},
"401": {
"$ref": "#/components/responses/401"
},
- "403": {
- "$ref": "#/components/responses/403"
- },
"404": {
"$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
}
},
"security": [
@@ -13706,23 +17416,51 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Download database(s) and associated dataset(s) as a zip file",
+ "tags": [
+ "Database"
+ ]
}
},
- "/api/v1/dashboard/{id_or_slug}/embedded": {
- "delete": {
- "description": "Removes a dashboard's embedded configuration.",
- "parameters": [
- {
- "description": "The dashboard id or slug",
- "in": "path",
- "name": "id_or_slug",
- "required": true,
- "schema": {
- "type": "string"
+ "/api/v1/database/import/": {
+ "post": {
+ "requestBody": {
+ "content": {
+ "multipart/form-data": {
+ "schema": {
+ "properties": {
+ "formData": {
+ "description": "upload file (ZIP)",
+ "format": "binary",
+ "type": "string"
+ },
+ "overwrite": {
+ "description": "overwrite existing databases?",
+ "type": "boolean"
+ },
+ "passwords": {
+ "description": "JSON map of passwords for each featured database in the ZIP file. If the ZIP includes a database config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
+ "type": "string"
+ },
+ "ssh_tunnel_passwords": {
+ "description": "JSON map of passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
+ "type": "string"
+ },
+ "ssh_tunnel_private_key_passwords": {
+ "description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
+ "type": "string"
+ },
+ "ssh_tunnel_private_keys": {
+ "description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
}
- }
- ],
+ },
+ "required": true
+ },
"responses": {
"200": {
"content": {
@@ -13737,11 +17475,17 @@
}
}
},
- "description": "Successfully removed the configuration"
+ "description": "Database import result"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
"500": {
"$ref": "#/components/responses/500"
}
@@ -13751,16 +17495,40 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
- },
+ "summary": "Import database(s) with associated datasets",
+ "tags": [
+ "Database"
+ ]
+ }
+ },
+ "/api/v1/database/oauth2/": {
"get": {
- "description": "Returns the dashboard's embedded configuration",
+ "description": "-> Receive and store personal access tokens from OAuth for user-level authorization",
"parameters": [
{
- "description": "The dashboard id or slug",
- "in": "path",
- "name": "id_or_slug",
- "required": true,
+ "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"
}
@@ -13769,21 +17537,19 @@
"responses": {
"200": {
"content": {
- "application/json": {
+ "text/html": {
"schema": {
- "properties": {
- "result": {
- "$ref": "#/components/schemas/EmbeddedDashboardResponseSchema"
- }
- },
- "type": "object"
+ "type": "string"
}
}
},
- "description": "Result contains the embedded dashboard config"
+ "description": "A dummy self-closing HTML page"
},
- "401": {
- "$ref": "#/components/responses/401"
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
@@ -13794,51 +17560,55 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
- },
- "post": {
- "description": "Sets a dashboard's embedded configuration.",
+ "summary": "Receive personal access tokens from OAuth2",
+ "tags": [
+ "Database"
+ ]
+ }
+ },
+ "/api/v1/database/related/{column_name}": {
+ "get": {
"parameters": [
{
- "description": "The dashboard id or slug",
"in": "path",
- "name": "id_or_slug",
+ "name": "column_name",
"required": true,
"schema": {
"type": "string"
}
+ },
+ {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/get_related_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
}
],
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/EmbeddedDashboardConfig"
- }
- }
- },
- "description": "The embedded configuration to set",
- "required": true
- },
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
- "properties": {
- "result": {
- "$ref": "#/components/schemas/EmbeddedDashboardResponseSchema"
- }
- },
- "type": "object"
+ "$ref": "#/components/schemas/RelatedResponseSchema"
}
}
},
- "description": "Successfully set the configuration"
+ "description": "Related column data"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
"500": {
"$ref": "#/components/responses/500"
}
@@ -13848,30 +17618,23 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
- },
- "put": {
- "description": "Sets a dashboard's embedded configuration.",
- "parameters": [
- {
- "description": "The dashboard id or slug",
- "in": "path",
- "name": "id_or_slug",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
+ "summary": "Get related fields data",
+ "tags": [
+ "Database"
+ ]
+ }
+ },
+ "/api/v1/database/test_connection/": {
+ "post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/EmbeddedDashboardConfig"
+ "$ref": "#/components/schemas/DatabaseTestConnectionSchema"
}
}
},
- "description": "The embedded configuration to set",
+ "description": "Database schema",
"required": true
},
"responses": {
@@ -13880,18 +17643,21 @@
"application/json": {
"schema": {
"properties": {
- "result": {
- "$ref": "#/components/schemas/EmbeddedDashboardResponseSchema"
+ "message": {
+ "type": "string"
}
},
"type": "object"
}
}
},
- "description": "Successfully set the configuration"
+ "description": "Database Test Connection"
},
- "401": {
- "$ref": "#/components/responses/401"
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "422": {
+ "$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
@@ -13902,22 +17668,25 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Test a database connection",
+ "tags": [
+ "Database"
+ ]
}
},
- "/api/v1/dashboard/{pk}": {
- "delete": {
- "description": "Deletes a Dashboard.",
- "parameters": [
- {
- "in": "path",
- "name": "pk",
- "required": true,
- "schema": {
- "type": "integer"
+ "/api/v1/database/validate_parameters/": {
+ "post": {
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DatabaseValidateParametersSchema"
+ }
}
- }
- ],
+ },
+ "description": "DB-specific parameters",
+ "required": true
+ },
"responses": {
"200": {
"content": {
@@ -13932,16 +17701,10 @@
}
}
},
- "description": "Dashboard deleted"
- },
- "401": {
- "$ref": "#/components/responses/401"
- },
- "403": {
- "$ref": "#/components/responses/403"
+ "description": "Database Test Connection"
},
- "404": {
- "$ref": "#/components/responses/404"
+ "400": {
+ "$ref": "#/components/responses/400"
},
"422": {
"$ref": "#/components/responses/422"
@@ -13955,10 +17718,14 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
- },
- "put": {
- "description": "Changes a Dashboard.",
+ "summary": "Validate database connection parameters",
+ "tags": [
+ "Database"
+ ]
+ }
+ },
+ "/api/v1/database/{pk}": {
+ "delete": {
"parameters": [
{
"in": "path",
@@ -13969,41 +17736,21 @@
}
}
],
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/DashboardRestApi.put"
- }
- }
- },
- "description": "Dashboard schema",
- "required": true
- },
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
- "id": {
- "type": "number"
- },
- "last_modified_time": {
- "type": "number"
- },
- "result": {
- "$ref": "#/components/schemas/DashboardRestApi.put"
+ "message": {
+ "type": "string"
}
},
"type": "object"
}
}
},
- "description": "Dashboard changed"
- },
- "400": {
- "$ref": "#/components/responses/400"
+ "description": "Database deleted"
},
"401": {
"$ref": "#/components/responses/401"
@@ -14026,14 +17773,15 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
- }
- },
- "/api/v1/dashboard/{pk}/favorites/": {
- "delete": {
- "description": "Remove the dashboard from the user favorite list",
+ "summary": "Delete a database",
+ "tags": [
+ "Database"
+ ]
+ },
+ "get": {
"parameters": [
{
+ "description": "The database id",
"in": "path",
"name": "pk",
"required": true,
@@ -14047,22 +17795,20 @@
"content": {
"application/json": {
"schema": {
- "properties": {
- "result": {
- "type": "object"
- }
- },
"type": "object"
}
}
},
- "description": "Dashboard removed from favorites"
+ "description": "Database"
+ },
+ "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"
@@ -14073,10 +17819,12 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Get a database",
+ "tags": [
+ "Database"
+ ]
},
- "post": {
- "description": "Marks the dashboard as favorite for the current user",
+ "put": {
"parameters": [
{
"in": "path",
@@ -14087,28 +17835,51 @@
}
}
],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DatabaseRestApi.put"
+ }
+ }
+ },
+ "description": "Database schema",
+ "required": true
+ },
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
+ "id": {
+ "type": "number"
+ },
"result": {
- "type": "object"
+ "$ref": "#/components/schemas/DatabaseRestApi.put"
}
},
"type": "object"
}
}
},
- "description": "Dashboard added to favorites"
+ "description": "Database changed"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
"404": {
"$ref": "#/components/responses/404"
},
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
"500": {
"$ref": "#/components/responses/500"
}
@@ -14118,14 +17889,17 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Change a database",
+ "tags": [
+ "Database"
+ ]
}
},
- "/api/v1/dashboard/{pk}/filter_state": {
- "post": {
- "description": "Stores a new value.",
+ "/api/v1/database/{pk}/catalogs/": {
+ "get": {
"parameters": [
{
+ "description": "The database id",
"in": "path",
"name": "pk",
"required": true,
@@ -14134,39 +17908,27 @@
}
},
{
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/database_catalogs_query_schema"
+ }
+ }
+ },
"in": "query",
- "name": "tab_id",
- "schema": {
- "type": "integer"
- }
+ "name": "q"
}
],
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/TemporaryCachePostSchema"
- }
- }
- },
- "required": true
- },
"responses": {
- "201": {
+ "200": {
"content": {
"application/json": {
"schema": {
- "properties": {
- "key": {
- "description": "The key to retrieve the value.",
- "type": "string"
- }
- },
- "type": "object"
+ "$ref": "#/components/schemas/CatalogsResponseSchema"
}
}
},
- "description": "The value was stored successfully."
+ "description": "A List of all catalogs from the database"
},
"400": {
"$ref": "#/components/responses/400"
@@ -14174,8 +17936,8 @@
"401": {
"$ref": "#/components/responses/401"
},
- "422": {
- "$ref": "#/components/responses/422"
+ "404": {
+ "$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
@@ -14186,12 +17948,14 @@
"jwt": []
}
],
- "tags": ["Dashboard Filter State"]
+ "summary": "Get all catalogs from a database",
+ "tags": [
+ "Database"
+ ]
}
},
- "/api/v1/dashboard/{pk}/filter_state/{key}": {
- "delete": {
- "description": "Deletes a value.",
+ "/api/v1/database/{pk}/columnar_upload/": {
+ "post": {
"parameters": [
{
"in": "path",
@@ -14200,25 +17964,25 @@
"schema": {
"type": "integer"
}
- },
- {
- "description": "The value key.",
- "in": "path",
- "name": "key",
- "required": true,
- "schema": {
- "type": "string"
- }
}
],
+ "requestBody": {
+ "content": {
+ "multipart/form-data": {
+ "schema": {
+ "$ref": "#/components/schemas/ColumnarUploadPostSchema"
+ }
+ }
+ },
+ "required": true
+ },
"responses": {
- "200": {
+ "201": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
- "description": "The result of the operation",
"type": "string"
}
},
@@ -14226,7 +17990,7 @@
}
}
},
- "description": "Deleted the stored value."
+ "description": "Columnar upload response"
},
"400": {
"$ref": "#/components/responses/400"
@@ -14249,26 +18013,23 @@
"jwt": []
}
],
- "tags": ["Dashboard Filter State"]
- },
+ "summary": "Upload a Columnar file to a database table",
+ "tags": [
+ "Database"
+ ]
+ }
+ },
+ "/api/v1/database/{pk}/connection": {
"get": {
- "description": "Retrives a value.",
"parameters": [
{
+ "description": "The database id",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
- },
- {
- "in": "path",
- "name": "key",
- "required": true,
- "schema": {
- "type": "string"
- }
}
],
"responses": {
@@ -14276,17 +18037,11 @@
"content": {
"application/json": {
"schema": {
- "properties": {
- "value": {
- "description": "The stored value",
- "type": "string"
- }
- },
- "type": "object"
+ "$ref": "#/components/schemas/DatabaseConnectionSchema"
}
}
},
- "description": "Returns the stored value."
+ "description": "Database with connection info"
},
"400": {
"$ref": "#/components/responses/400"
@@ -14294,9 +18049,6 @@
"401": {
"$ref": "#/components/responses/401"
},
- "404": {
- "$ref": "#/components/responses/404"
- },
"422": {
"$ref": "#/components/responses/422"
},
@@ -14309,10 +18061,14 @@
"jwt": []
}
],
- "tags": ["Dashboard Filter State"]
- },
- "put": {
- "description": "Updates an existing value.",
+ "summary": "Get a database connection info",
+ "tags": [
+ "Database"
+ ]
+ }
+ },
+ "/api/v1/database/{pk}/csv_upload/": {
+ "post": {
"parameters": [
{
"in": "path",
@@ -14321,41 +18077,25 @@
"schema": {
"type": "integer"
}
- },
- {
- "in": "path",
- "name": "key",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "query",
- "name": "tab_id",
- "schema": {
- "type": "integer"
- }
}
],
"requestBody": {
"content": {
- "application/json": {
+ "multipart/form-data": {
"schema": {
- "$ref": "#/components/schemas/TemporaryCachePutSchema"
+ "$ref": "#/components/schemas/CSVUploadPostSchema"
}
}
},
"required": true
},
"responses": {
- "200": {
+ "201": {
"content": {
"application/json": {
"schema": {
"properties": {
- "key": {
- "description": "The key to retrieve the value.",
+ "message": {
"type": "string"
}
},
@@ -14363,7 +18103,7 @@
}
}
},
- "description": "The value was stored successfully."
+ "description": "CSV upload response"
},
"400": {
"$ref": "#/components/responses/400"
@@ -14386,27 +18126,29 @@
"jwt": []
}
],
- "tags": ["Dashboard Filter State"]
+ "summary": "Upload a CSV file to a database table",
+ "tags": [
+ "Database"
+ ]
}
},
- "/api/v1/dashboard/{pk}/permalink": {
+ "/api/v1/database/{pk}/excel_upload/": {
"post": {
- "description": "Stores a new permanent link.",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
- "type": "string"
+ "type": "integer"
}
}
],
"requestBody": {
"content": {
- "application/json": {
+ "multipart/form-data": {
"schema": {
- "$ref": "#/components/schemas/DashboardPermalinkStateSchema"
+ "$ref": "#/components/schemas/ExcelUploadPostSchema"
}
}
},
@@ -14418,12 +18160,7 @@
"application/json": {
"schema": {
"properties": {
- "key": {
- "description": "The key to retrieve the permanent link data.",
- "type": "string"
- },
- "url": {
- "description": "permanent link.",
+ "message": {
"type": "string"
}
},
@@ -14431,7 +18168,7 @@
}
}
},
- "description": "The permanent link was stored successfully."
+ "description": "Excel upload response"
},
"400": {
"$ref": "#/components/responses/400"
@@ -14439,6 +18176,9 @@
"401": {
"$ref": "#/components/responses/401"
},
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
"422": {
"$ref": "#/components/responses/422"
},
@@ -14451,12 +18191,14 @@
"jwt": []
}
],
- "tags": ["Dashboard Permanent Link"]
+ "summary": "Upload an Excel file to a database table",
+ "tags": [
+ "Database"
+ ]
}
},
- "/api/v1/dashboard/{pk}/thumbnail/{digest}/": {
+ "/api/v1/database/{pk}/function_names/": {
"get": {
- "description": "Compute async or get already computed dashboard thumbnail from cache.",
"parameters": [
{
"in": "path",
@@ -14465,57 +18207,18 @@
"schema": {
"type": "integer"
}
- },
- {
- "description": "A hex digest that makes this dashboard unique",
- "in": "path",
- "name": "digest",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/thumbnail_query_schema"
- }
- }
- },
- "in": "query",
- "name": "q"
}
],
"responses": {
"200": {
- "content": {
- "image/*": {
- "schema": {
- "format": "binary",
- "type": "string"
- }
- }
- },
- "description": "Dashboard thumbnail image"
- },
- "202": {
"content": {
"application/json": {
"schema": {
- "properties": {
- "message": {
- "type": "string"
- }
- },
- "type": "object"
+ "$ref": "#/components/schemas/DatabaseFunctionNamesResponse"
}
}
},
- "description": "Thumbnail does not exist on cache, fired async to compute"
- },
- "302": {
- "description": "Redirects to the current digest"
+ "description": "Query result"
},
"401": {
"$ref": "#/components/responses/401"
@@ -14523,9 +18226,6 @@
"404": {
"$ref": "#/components/responses/404"
},
- "422": {
- "$ref": "#/components/responses/422"
- },
"500": {
"$ref": "#/components/responses/500"
}
@@ -14535,23 +18235,22 @@
"jwt": []
}
],
- "tags": ["Dashboards"]
+ "summary": "Get function names supported by a database",
+ "tags": [
+ "Database"
+ ]
}
},
- "/api/v1/database/": {
+ "/api/v1/database/{pk}/related_objects/": {
"get": {
- "description": "Get a list of models",
"parameters": [
{
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/get_list_schema"
- }
- }
- },
- "in": "query",
- "name": "q"
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
}
],
"responses": {
@@ -14559,79 +18258,17 @@
"content": {
"application/json": {
"schema": {
- "properties": {
- "count": {
- "description": "The total record count on the backend",
- "type": "number"
- },
- "description_columns": {
- "properties": {
- "column_name": {
- "description": "The description for the column name. Will be translated by babel",
- "example": "A Nice description for the column",
- "type": "string"
- }
- },
- "type": "object"
- },
- "ids": {
- "description": "A list of item ids, useful when you don't know the column id",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "label_columns": {
- "properties": {
- "column_name": {
- "description": "The label for the column name. Will be translated by babel",
- "example": "A Nice label for the column",
- "type": "string"
- }
- },
- "type": "object"
- },
- "list_columns": {
- "description": "A list of columns",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "list_title": {
- "description": "A title to render. Will be translated by babel",
- "example": "List Items",
- "type": "string"
- },
- "order_columns": {
- "description": "A list of allowed columns to sort",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "result": {
- "description": "The result from the get list query",
- "items": {
- "$ref": "#/components/schemas/DatabaseRestApi.get_list"
- },
- "type": "array"
- }
- },
- "type": "object"
+ "$ref": "#/components/schemas/DatabaseRelatedObjectsResponse"
}
}
},
- "description": "Items from Model"
- },
- "400": {
- "$ref": "#/components/responses/400"
+ "description": "Query result"
},
"401": {
"$ref": "#/components/responses/401"
},
- "422": {
- "$ref": "#/components/responses/422"
+ "404": {
+ "$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
@@ -14642,39 +18279,46 @@
"jwt": []
}
],
- "tags": ["Database"]
- },
- "post": {
- "description": "Create a new Database.",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/DatabaseRestApi.post"
- }
+ "summary": "Get charts and dashboards count associated to a database",
+ "tags": [
+ "Database"
+ ]
+ }
+ },
+ "/api/v1/database/{pk}/schemas/": {
+ "get": {
+ "parameters": [
+ {
+ "description": "The database id",
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
}
},
- "description": "Database schema",
- "required": true
- },
+ {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/database_schemas_query_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
+ }
+ ],
"responses": {
- "201": {
+ "200": {
"content": {
"application/json": {
"schema": {
- "properties": {
- "id": {
- "type": "number"
- },
- "result": {
- "$ref": "#/components/schemas/DatabaseRestApi.post"
- }
- },
- "type": "object"
+ "$ref": "#/components/schemas/SchemasResponseSchema"
}
}
},
- "description": "Database added"
+ "description": "A List of all schemas from the database"
},
"400": {
"$ref": "#/components/responses/400"
@@ -14694,80 +18338,40 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Get all schemas from a database",
+ "tags": [
+ "Database"
+ ]
}
},
- "/api/v1/database/_info": {
+ "/api/v1/database/{pk}/schemas_access_for_file_upload/": {
"get": {
- "description": "Get metadata information about this API resource",
- "parameters": [
- {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/get_info_schema"
- }
- }
- },
- "in": "query",
- "name": "q"
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "properties": {
- "add_columns": {
- "type": "object"
- },
- "edit_columns": {
- "type": "object"
- },
- "filters": {
- "properties": {
- "column_name": {
- "items": {
- "properties": {
- "name": {
- "description": "The filter name. Will be translated by babel",
- "type": "string"
- },
- "operator": {
- "description": "The filter operation key to use on list filters",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- }
- },
- "type": "object"
- },
- "permissions": {
- "description": "The user permissions for this API resource",
- "items": {
- "type": "string"
- },
- "type": "array"
- }
- },
- "type": "object"
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DatabaseSchemaAccessForFileUploadResponse"
}
}
},
- "description": "Item from Model"
- },
- "400": {
- "$ref": "#/components/responses/400"
+ "description": "The list of the database schemas where to upload information"
},
"401": {
"$ref": "#/components/responses/401"
},
- "422": {
- "$ref": "#/components/responses/422"
+ "404": {
+ "$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
@@ -14778,76 +18382,66 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "The list of the database schemas where to upload information",
+ "tags": [
+ "Database"
+ ]
}
},
- "/api/v1/database/available/": {
+ "/api/v1/database/{pk}/select_star/{table_name}/": {
"get": {
- "description": "Get names of databases currently available",
+ "parameters": [
+ {
+ "description": "The database id",
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "description": "Table name",
+ "in": "path",
+ "name": "table_name",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Table schema",
+ "in": "path",
+ "name": "schema_name",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
- "items": {
- "properties": {
- "available_drivers": {
- "description": "Installed drivers for the engine",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "default_driver": {
- "description": "Default driver for the engine",
- "type": "string"
- },
- "engine": {
- "description": "Name of the SQLAlchemy engine",
- "type": "string"
- },
- "engine_information": {
- "description": "Dict with public properties form the DB Engine",
- "properties": {
- "disable_ssh_tunneling": {
- "description": "Whether the engine supports SSH Tunnels",
- "type": "boolean"
- },
- "supports_file_upload": {
- "description": "Whether the engine supports file uploads",
- "type": "boolean"
- }
- },
- "type": "object"
- },
- "name": {
- "description": "Name of the database",
- "type": "string"
- },
- "parameters": {
- "description": "JSON schema defining the needed parameters",
- "type": "object"
- },
- "preferred": {
- "description": "Is the database preferred?",
- "type": "boolean"
- },
- "sqlalchemy_uri_placeholder": {
- "description": "Example placeholder for the SQLAlchemy URI",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
+ "$ref": "#/components/schemas/SelectStarResponseSchema"
}
}
},
- "description": "Database names"
+ "description": "SQL statement for a select star for table"
},
"400": {
"$ref": "#/components/responses/400"
},
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
"500": {
"$ref": "#/components/responses/500"
}
@@ -14857,36 +18451,56 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Get database select star for table",
+ "tags": [
+ "Database"
+ ]
}
},
- "/api/v1/database/export/": {
+ "/api/v1/database/{pk}/select_star/{table_name}/{schema_name}/": {
"get": {
- "description": "Download database(s) and associated dataset(s) as a zip file",
"parameters": [
{
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/get_export_ids_schema"
- }
- }
- },
- "in": "query",
- "name": "q"
+ "description": "The database id",
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "description": "Table name",
+ "in": "path",
+ "name": "table_name",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Table schema",
+ "in": "path",
+ "name": "schema_name",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
}
],
"responses": {
"200": {
"content": {
- "application/zip": {
+ "application/json": {
"schema": {
- "format": "binary",
- "type": "string"
+ "$ref": "#/components/schemas/SelectStarResponseSchema"
}
}
},
- "description": "A zip file with database(s) and dataset(s) as YAML"
+ "description": "SQL statement for a select star for table"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
@@ -14894,6 +18508,9 @@
"404": {
"$ref": "#/components/responses/404"
},
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
"500": {
"$ref": "#/components/responses/500"
}
@@ -14903,48 +18520,24 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Get database select star for table",
+ "tags": [
+ "Database"
+ ]
}
},
- "/api/v1/database/import/": {
- "post": {
- "requestBody": {
- "content": {
- "multipart/form-data": {
- "schema": {
- "properties": {
- "formData": {
- "description": "upload file (ZIP)",
- "format": "binary",
- "type": "string"
- },
- "overwrite": {
- "description": "overwrite existing databases?",
- "type": "boolean"
- },
- "passwords": {
- "description": "JSON map of passwords for each featured database in the ZIP file. If the ZIP includes a database config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
- "type": "string"
- },
- "ssh_tunnel_passwords": {
- "description": "JSON map of passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
- "type": "string"
- },
- "ssh_tunnel_private_key_passwords": {
- "description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
- "type": "string"
- },
- "ssh_tunnel_private_keys": {
- "description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
- "type": "string"
- }
- },
- "type": "object"
- }
+ "/api/v1/database/{pk}/ssh_tunnel/": {
+ "delete": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
}
- },
- "required": true
- },
+ }
+ ],
"responses": {
"200": {
"content": {
@@ -14959,14 +18552,17 @@
}
}
},
- "description": "Database import result"
- },
- "400": {
- "$ref": "#/components/responses/400"
+ "description": "SSH Tunnel deleted"
},
"401": {
"$ref": "#/components/responses/401"
},
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
"422": {
"$ref": "#/components/responses/422"
},
@@ -14979,42 +18575,63 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Delete a SSH tunnel",
+ "tags": [
+ "Database"
+ ]
}
},
- "/api/v1/database/test_connection/": {
- "post": {
- "description": "Tests a database connection",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/DatabaseTestConnectionSchema"
- }
+ "/api/v1/database/{pk}/table/{table_name}/{schema_name}/": {
+ "get": {
+ "parameters": [
+ {
+ "description": "The database id",
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "description": "Table name",
+ "in": "path",
+ "name": "table_name",
+ "required": true,
+ "schema": {
+ "type": "string"
}
},
- "description": "Database schema",
- "required": true
- },
+ {
+ "description": "Table schema",
+ "in": "path",
+ "name": "schema_name",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
- "properties": {
- "message": {
- "type": "string"
- }
- },
- "type": "object"
+ "$ref": "#/components/schemas/TableMetadataResponseSchema"
}
}
},
- "description": "Database Test Connection"
+ "description": "Table metadata information"
},
"400": {
"$ref": "#/components/responses/400"
},
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
"422": {
"$ref": "#/components/responses/422"
},
@@ -15027,42 +18644,64 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Get database table metadata",
+ "tags": [
+ "Database"
+ ]
}
},
- "/api/v1/database/validate_parameters/": {
- "post": {
- "description": "Validates parameters used to connect to a database",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/DatabaseValidateParametersSchema"
- }
+ "/api/v1/database/{pk}/table_extra/{table_name}/{schema_name}/": {
+ "get": {
+ "description": "Response depends on each DB engine spec normally focused on partitions.",
+ "parameters": [
+ {
+ "description": "The database id",
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
}
},
- "description": "DB-specific parameters",
- "required": true
- },
+ {
+ "description": "Table name",
+ "in": "path",
+ "name": "table_name",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Table schema",
+ "in": "path",
+ "name": "schema_name",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
- "properties": {
- "message": {
- "type": "string"
- }
- },
- "type": "object"
+ "$ref": "#/components/schemas/TableExtraMetadataResponseSchema"
}
}
},
- "description": "Database Test Connection"
+ "description": "Table extra metadata information"
},
"400": {
"$ref": "#/components/responses/400"
},
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
"422": {
"$ref": "#/components/responses/422"
},
@@ -15075,20 +18714,49 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Get table extra metadata",
+ "tags": [
+ "Database"
+ ]
}
},
- "/api/v1/database/{pk}": {
- "delete": {
- "description": "Deletes a 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": {
@@ -15096,29 +18764,18 @@
"content": {
"application/json": {
"schema": {
- "properties": {
- "message": {
- "type": "string"
- }
- },
- "type": "object"
+ "$ref": "#/components/schemas/TableExtraMetadataResponseSchema"
}
}
},
- "description": "Database deleted"
+ "description": "Table metadata information"
},
"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"
}
@@ -15128,10 +18785,15 @@
"jwt": []
}
],
- "tags": ["Database"]
- },
+ "summary": "Get table metadata",
+ "tags": [
+ "Database"
+ ]
+ }
+ },
+ "/api/v1/database/{pk}/table_metadata/extra/": {
"get": {
- "description": "Get a database",
+ "description": "Extra metadata associated with the table (partitions, description, etc.)",
"parameters": [
{
"description": "The database id",
@@ -15141,6 +18803,31 @@
"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": {
@@ -15148,20 +18835,17 @@
"content": {
"application/json": {
"schema": {
- "type": "object"
+ "$ref": "#/components/schemas/TableExtraMetadataResponseSchema"
}
}
},
- "description": "Database"
- },
- "400": {
- "$ref": "#/components/responses/400"
+ "description": "Table extra metadata information"
},
"401": {
"$ref": "#/components/responses/401"
},
- "422": {
- "$ref": "#/components/responses/422"
+ "404": {
+ "$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
@@ -15172,49 +18856,58 @@
"jwt": []
}
],
- "tags": ["Database"]
- },
- "put": {
- "description": "Changes a Database.",
+ "summary": "Get table extra metadata",
+ "tags": [
+ "Database"
+ ]
+ }
+ },
+ "/api/v1/database/{pk}/tables/": {
+ "get": {
"parameters": [
{
+ "description": "The database id",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
+ },
+ {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/database_tables_query_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
}
],
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/DatabaseRestApi.put"
- }
- }
- },
- "description": "Database schema",
- "required": true
- },
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
- "id": {
- "type": "number"
+ "count": {
+ "type": "integer"
},
"result": {
- "$ref": "#/components/schemas/DatabaseRestApi.put"
+ "description": "A List of tables for given database",
+ "items": {
+ "$ref": "#/components/schemas/DatabaseTablesResponse"
+ },
+ "type": "array"
}
},
"type": "object"
}
}
},
- "description": "Database changed"
+ "description": "Tables list"
},
"400": {
"$ref": "#/components/responses/400"
@@ -15222,9 +18915,6 @@
"401": {
"$ref": "#/components/responses/401"
},
- "403": {
- "$ref": "#/components/responses/403"
- },
"404": {
"$ref": "#/components/responses/404"
},
@@ -15240,14 +18930,17 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Get a list of tables for given database",
+ "tags": [
+ "Database"
+ ]
}
},
- "/api/v1/database/{pk}/connection": {
- "get": {
+ "/api/v1/database/{pk}/validate_sql/": {
+ "post": {
+ "description": "Validates that arbitrary SQL is acceptable for the given database.",
"parameters": [
{
- "description": "The database id",
"in": "path",
"name": "pk",
"required": true,
@@ -15256,16 +18949,36 @@
}
}
],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ValidateSQLRequest"
+ }
+ }
+ },
+ "description": "Validate SQL request",
+ "required": true
+ },
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/DatabaseConnectionSchema"
+ "properties": {
+ "result": {
+ "description": "A List of SQL errors found on the statement",
+ "items": {
+ "$ref": "#/components/schemas/ValidateSQLResponse"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
}
}
},
- "description": "Database with connection info"
+ "description": "Validation result"
},
"400": {
"$ref": "#/components/responses/400"
@@ -15273,8 +18986,8 @@
"401": {
"$ref": "#/components/responses/401"
},
- "422": {
- "$ref": "#/components/responses/422"
+ "404": {
+ "$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
@@ -15285,21 +18998,25 @@
"jwt": []
}
],
- "summary": "Get a database connection info",
- "tags": ["Database"]
+ "summary": "Validate arbitrary SQL",
+ "tags": [
+ "Database"
+ ]
}
},
- "/api/v1/database/{pk}/function_names/": {
- "get": {
- "description": "Get function names supported by a database",
+ "/api/v1/dataset/": {
+ "delete": {
"parameters": [
{
- "in": "path",
- "name": "pk",
- "required": true,
- "schema": {
- "type": "integer"
- }
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/get_delete_ids_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
}
],
"responses": {
@@ -15307,18 +19024,32 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/DatabaseFunctionNamesResponse"
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "type": "object"
}
}
},
- "description": "Query result"
+ "description": "Dataset bulk delete"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
"404": {
"$ref": "#/components/responses/404"
},
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
"500": {
"$ref": "#/components/responses/500"
}
@@ -15328,20 +19059,24 @@
"jwt": []
}
],
- "tags": ["Database"]
- }
- },
- "/api/v1/database/{pk}/related_objects/": {
+ "summary": "Bulk delete datasets",
+ "tags": [
+ "Datasets"
+ ]
+ },
"get": {
- "description": "Get charts and dashboards count associated to a database",
+ "description": "Gets a list of datasets, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
- "in": "path",
- "name": "pk",
- "required": true,
- "schema": {
- "type": "integer"
- }
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/get_list_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
}
],
"responses": {
@@ -15349,17 +19084,79 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/DatabaseRelatedObjectsResponse"
+ "properties": {
+ "count": {
+ "description": "The total record count on the backend",
+ "type": "number"
+ },
+ "description_columns": {
+ "properties": {
+ "column_name": {
+ "description": "The description for the column name. Will be translated by babel",
+ "example": "A Nice description for the column",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "ids": {
+ "description": "A list of item ids, useful when you don't know the column id",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "label_columns": {
+ "properties": {
+ "column_name": {
+ "description": "The label for the column name. Will be translated by babel",
+ "example": "A Nice label for the column",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "list_columns": {
+ "description": "A list of columns",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "list_title": {
+ "description": "A title to render. Will be translated by babel",
+ "example": "List Items",
+ "type": "string"
+ },
+ "order_columns": {
+ "description": "A list of allowed columns to sort",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "result": {
+ "description": "The result from the get list query",
+ "items": {
+ "$ref": "#/components/schemas/DatasetRestApi.get_list"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
}
}
},
- "description": "Query result"
+ "description": "Items from Model"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
- "404": {
- "$ref": "#/components/responses/404"
+ "422": {
+ "$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
@@ -15370,44 +19167,41 @@
"jwt": []
}
],
- "tags": ["Database"]
- }
- },
- "/api/v1/database/{pk}/schemas/": {
- "get": {
- "description": "Get all schemas from a database",
- "parameters": [
- {
- "description": "The database id",
- "in": "path",
- "name": "pk",
- "required": true,
- "schema": {
- "type": "integer"
+ "summary": "Get a list of datasets",
+ "tags": [
+ "Datasets"
+ ]
+ },
+ "post": {
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DatasetRestApi.post"
+ }
}
},
- {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/database_schemas_query_schema"
- }
- }
- },
- "in": "query",
- "name": "q"
- }
- ],
+ "description": "Dataset schema",
+ "required": true
+ },
"responses": {
- "200": {
+ "201": {
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/SchemasResponseSchema"
+ "properties": {
+ "id": {
+ "type": "number"
+ },
+ "result": {
+ "$ref": "#/components/schemas/DatasetRestApi.post"
+ }
+ },
+ "type": "object"
}
}
},
- "description": "A List of all schemas from the database"
+ "description": "Dataset added"
},
"400": {
"$ref": "#/components/responses/400"
@@ -15415,8 +19209,8 @@
"401": {
"$ref": "#/components/responses/401"
},
- "404": {
- "$ref": "#/components/responses/404"
+ "422": {
+ "$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
@@ -15427,19 +19221,26 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Create a new dataset",
+ "tags": [
+ "Datasets"
+ ]
}
},
- "/api/v1/database/{pk}/schemas_access_for_file_upload/": {
+ "/api/v1/dataset/_info": {
"get": {
+ "description": "Get metadata information about this API resource",
"parameters": [
{
- "in": "path",
- "name": "pk",
- "required": true,
- "schema": {
- "type": "integer"
- }
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/get_info_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
}
],
"responses": {
@@ -15447,17 +19248,56 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/DatabaseSchemaAccessForFileUploadResponse"
+ "properties": {
+ "add_columns": {
+ "type": "object"
+ },
+ "edit_columns": {
+ "type": "object"
+ },
+ "filters": {
+ "properties": {
+ "column_name": {
+ "items": {
+ "properties": {
+ "name": {
+ "description": "The filter name. Will be translated by babel",
+ "type": "string"
+ },
+ "operator": {
+ "description": "The filter operation key to use on list filters",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "permissions": {
+ "description": "The user permissions for this API resource",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
}
}
},
- "description": "The list of the database schemas where to upload information"
+ "description": "Item from Model"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
- "404": {
- "$ref": "#/components/responses/404"
+ "422": {
+ "$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
@@ -15468,40 +19308,33 @@
"jwt": []
}
],
- "summary": "The list of the database schemas where to upload information",
- "tags": ["Database"]
+ "summary": "Get metadata information about this API resource",
+ "tags": [
+ "Datasets"
+ ]
}
},
- "/api/v1/database/{pk}/select_star/{table_name}/": {
+ "/api/v1/dataset/distinct/{column_name}": {
"get": {
- "description": "Get database select star for table",
"parameters": [
{
- "description": "The database id",
- "in": "path",
- "name": "pk",
- "required": true,
- "schema": {
- "type": "integer"
- }
- },
- {
- "description": "Table name",
"in": "path",
- "name": "table_name",
+ "name": "column_name",
"required": true,
"schema": {
"type": "string"
}
},
{
- "description": "Table schema",
- "in": "path",
- "name": "schema_name",
- "required": true,
- "schema": {
- "type": "string"
- }
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/get_related_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
}
],
"responses": {
@@ -15509,11 +19342,11 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/SelectStarResponseSchema"
+ "$ref": "#/components/schemas/DistincResponseSchema"
}
}
},
- "description": "SQL statement for a select star for table"
+ "description": "Distinct field data"
},
"400": {
"$ref": "#/components/responses/400"
@@ -15524,9 +19357,6 @@
"404": {
"$ref": "#/components/responses/404"
},
- "422": {
- "$ref": "#/components/responses/422"
- },
"500": {
"$ref": "#/components/responses/500"
}
@@ -15536,51 +19366,43 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Get distinct values from field data",
+ "tags": [
+ "Datasets"
+ ]
}
},
- "/api/v1/database/{pk}/select_star/{table_name}/{schema_name}/": {
- "get": {
- "description": "Get database select star for table",
- "parameters": [
- {
- "description": "The database id",
- "in": "path",
- "name": "pk",
- "required": true,
- "schema": {
- "type": "integer"
- }
- },
- {
- "description": "Table name",
- "in": "path",
- "name": "table_name",
- "required": true,
- "schema": {
- "type": "string"
+ "/api/v1/dataset/duplicate": {
+ "post": {
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DatasetDuplicateSchema"
+ }
}
},
- {
- "description": "Table schema",
- "in": "path",
- "name": "schema_name",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
+ "description": "Dataset schema",
+ "required": true
+ },
"responses": {
- "200": {
+ "201": {
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/SelectStarResponseSchema"
+ "properties": {
+ "id": {
+ "type": "number"
+ },
+ "result": {
+ "$ref": "#/components/schemas/DatasetDuplicateSchema"
+ }
+ },
+ "type": "object"
}
}
},
- "description": "SQL statement for a select star for table"
+ "description": "Dataset duplicated"
},
"400": {
"$ref": "#/components/responses/400"
@@ -15588,6 +19410,9 @@
"401": {
"$ref": "#/components/responses/401"
},
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
"404": {
"$ref": "#/components/responses/404"
},
@@ -15603,50 +19428,47 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Duplicate a dataset",
+ "tags": [
+ "Datasets"
+ ]
}
},
- "/api/v1/database/{pk}/ssh_tunnel/": {
- "delete": {
- "description": "Deletes a SSH Tunnel.",
+ "/api/v1/dataset/export/": {
+ "get": {
"parameters": [
{
- "in": "path",
- "name": "pk",
- "required": true,
- "schema": {
- "type": "integer"
- }
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/get_export_ids_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
}
],
"responses": {
"200": {
"content": {
- "application/json": {
+ "text/plain": {
"schema": {
- "properties": {
- "message": {
- "type": "string"
- }
- },
- "type": "object"
+ "type": "string"
}
}
},
- "description": "SSH Tunnel deleted"
+ "description": "Dataset export"
+ },
+ "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"
}
@@ -15656,51 +19478,44 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Download multiple datasets as YAML files",
+ "tags": [
+ "Datasets"
+ ]
}
},
- "/api/v1/database/{pk}/table/{table_name}/{schema_name}/": {
- "get": {
- "description": "Get database table metadata",
- "parameters": [
- {
- "description": "The database id",
- "in": "path",
- "name": "pk",
- "required": true,
- "schema": {
- "type": "integer"
- }
- },
- {
- "description": "Table name",
- "in": "path",
- "name": "table_name",
- "required": true,
- "schema": {
- "type": "string"
+ "/api/v1/dataset/get_or_create/": {
+ "post": {
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/GetOrCreateDatasetSchema"
+ }
}
},
- {
- "description": "Table schema",
- "in": "path",
- "name": "schema_name",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
+ "required": true
+ },
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/TableMetadataResponseSchema"
+ "properties": {
+ "result": {
+ "properties": {
+ "table_id": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
}
}
},
- "description": "Table metadata information"
+ "description": "The ID of the table"
},
"400": {
"$ref": "#/components/responses/400"
@@ -15708,9 +19523,6 @@
"401": {
"$ref": "#/components/responses/401"
},
- "404": {
- "$ref": "#/components/responses/404"
- },
"422": {
"$ref": "#/components/responses/422"
},
@@ -15723,51 +19535,74 @@
"jwt": []
}
],
- "tags": ["Database"]
+ "summary": "Retrieve a table by name, or create it if it does not exist",
+ "tags": [
+ "Datasets"
+ ]
}
},
- "/api/v1/database/{pk}/table_extra/{table_name}/{schema_name}/": {
- "get": {
- "description": "Response depends on each DB engine spec normally focused on partitions",
- "parameters": [
- {
- "description": "The database id",
- "in": "path",
- "name": "pk",
- "required": true,
- "schema": {
- "type": "integer"
- }
- },
- {
- "description": "Table name",
- "in": "path",
- "name": "table_name",
- "required": true,
- "schema": {
- "type": "string"
+ "/api/v1/dataset/import/": {
+ "post": {
+ "requestBody": {
+ "content": {
+ "multipart/form-data": {
+ "schema": {
+ "properties": {
+ "formData": {
+ "description": "upload file (ZIP or YAML)",
+ "format": "binary",
+ "type": "string"
+ },
+ "overwrite": {
+ "description": "overwrite existing datasets?",
+ "type": "boolean"
+ },
+ "passwords": {
+ "description": "JSON map of passwords for each featured database in the ZIP file. If the ZIP includes a database config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
+ "type": "string"
+ },
+ "ssh_tunnel_passwords": {
+ "description": "JSON map of passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
+ "type": "string"
+ },
+ "ssh_tunnel_private_key_passwords": {
+ "description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
+ "type": "string"
+ },
+ "ssh_tunnel_private_keys": {
+ "description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
+ "type": "string"
+ },
+ "sync_columns": {
+ "description": "sync columns?",
+ "type": "boolean"
+ },
+ "sync_metrics": {
+ "description": "sync metrics?",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ }
}
},
- {
- "description": "Table schema",
- "in": "path",
- "name": "schema_name",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
+ "required": true
+ },
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/TableExtraMetadataResponseSchema"
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "type": "object"
}
}
},
- "description": "Table extra metadata information"
+ "description": "Dataset import result"
},
"400": {
"$ref": "#/components/responses/400"
@@ -15775,9 +19610,6 @@
"401": {
"$ref": "#/components/responses/401"
},
- "404": {
- "$ref": "#/components/responses/404"
- },
"422": {
"$ref": "#/components/responses/422"
},
@@ -15790,27 +19622,28 @@
"jwt": []
}
],
- "summary": "Get table extra metadata",
- "tags": ["Database"]
+ "summary": "Import dataset(s) with associated databases",
+ "tags": [
+ "Datasets"
+ ]
}
},
- "/api/v1/database/{pk}/tables/": {
+ "/api/v1/dataset/related/{column_name}": {
"get": {
"parameters": [
{
- "description": "The database id",
"in": "path",
- "name": "pk",
+ "name": "column_name",
"required": true,
"schema": {
- "type": "integer"
+ "type": "string"
}
},
{
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/database_tables_query_schema"
+ "$ref": "#/components/schemas/get_related_schema"
}
}
},
@@ -15823,23 +19656,11 @@
"content": {
"application/json": {
"schema": {
- "properties": {
- "count": {
- "type": "integer"
- },
- "result": {
- "description": "A List of tables for given database",
- "items": {
- "$ref": "#/components/schemas/DatabaseTablesResponse"
- },
- "type": "array"
- }
- },
- "type": "object"
+ "$ref": "#/components/schemas/RelatedResponseSchema"
}
}
},
- "description": "Tables list"
+ "description": "Related column data"
},
"400": {
"$ref": "#/components/responses/400"
@@ -15850,9 +19671,6 @@
"404": {
"$ref": "#/components/responses/404"
},
- "422": {
- "$ref": "#/components/responses/422"
- },
"500": {
"$ref": "#/components/responses/500"
}
@@ -15862,32 +19680,24 @@
"jwt": []
}
],
- "summary": "Get a list of tables for given database",
- "tags": ["Database"]
+ "summary": "Get related fields data",
+ "tags": [
+ "Datasets"
+ ]
}
},
- "/api/v1/database/{pk}/validate_sql/": {
- "post": {
- "description": "Validates arbitrary SQL.",
- "parameters": [
- {
- "in": "path",
- "name": "pk",
- "required": true,
- "schema": {
- "type": "integer"
- }
- }
- ],
+ "/api/v1/dataset/warm_up_cache": {
+ "put": {
+ "description": "Warms up the cache for the table. Note for slices a force refresh occurs. In terms of the `extra_filters` these can be obtained from records in the JSON encoded `logs.json` column associated with the `explore_json` action.",
"requestBody": {
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/ValidateSQLRequest"
+ "$ref": "#/components/schemas/DatasetCacheWarmUpRequestSchema"
}
}
},
- "description": "Validate SQL request",
+ "description": "Identifies the database and table to warm up cache for, and any additional dashboard or filter context to use.",
"required": true
},
"responses": {
@@ -15895,27 +19705,15 @@
"content": {
"application/json": {
"schema": {
- "properties": {
- "result": {
- "description": "A List of SQL errors found on the statement",
- "items": {
- "$ref": "#/components/schemas/ValidateSQLResponse"
- },
- "type": "array"
- }
- },
- "type": "object"
+ "$ref": "#/components/schemas/DatasetCacheWarmUpResponseSchema"
}
}
},
- "description": "Validation result"
+ "description": "Each chart's warmup status"
},
"400": {
"$ref": "#/components/responses/400"
},
- "401": {
- "$ref": "#/components/responses/401"
- },
"404": {
"$ref": "#/components/responses/404"
},
@@ -15928,24 +19726,22 @@
"jwt": []
}
],
- "summary": "Validates that arbitrary sql is acceptable for the given database",
- "tags": ["Database"]
+ "summary": "Warm up the cache for each chart powered by the given table",
+ "tags": [
+ "Datasets"
+ ]
}
},
- "/api/v1/dataset/": {
+ "/api/v1/dataset/{pk}": {
"delete": {
- "description": "Deletes multiple Datasets in a bulk operation.",
"parameters": [
{
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/get_delete_ids_schema"
- }
- }
- },
- "in": "query",
- "name": "q"
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
}
],
"responses": {
@@ -15962,10 +19758,7 @@
}
}
},
- "description": "Dataset bulk delete"
- },
- "400": {
- "$ref": "#/components/responses/400"
+ "description": "Dataset delete"
},
"401": {
"$ref": "#/components/responses/401"
@@ -15988,21 +19781,41 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Delete a dataset",
+ "tags": [
+ "Datasets"
+ ]
},
"get": {
- "description": "Get a list of models",
+ "description": "Get a dataset by ID",
"parameters": [
+ {
+ "description": "The dataset ID",
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ },
{
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/get_list_schema"
+ "$ref": "#/components/schemas/get_item_schema"
}
}
},
"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": {
@@ -16011,69 +19824,19 @@
"application/json": {
"schema": {
"properties": {
- "count": {
- "description": "The total record count on the backend",
- "type": "number"
- },
- "description_columns": {
- "properties": {
- "column_name": {
- "description": "The description for the column name. Will be translated by babel",
- "example": "A Nice description for the column",
- "type": "string"
- }
- },
- "type": "object"
- },
- "ids": {
- "description": "A list of item ids, useful when you don't know the column id",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "label_columns": {
- "properties": {
- "column_name": {
- "description": "The label for the column name. Will be translated by babel",
- "example": "A Nice label for the column",
- "type": "string"
- }
- },
- "type": "object"
- },
- "list_columns": {
- "description": "A list of columns",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "list_title": {
- "description": "A title to render. Will be translated by babel",
- "example": "List Items",
+ "id": {
+ "description": "The item id",
"type": "string"
},
- "order_columns": {
- "description": "A list of allowed columns to sort",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
"result": {
- "description": "The result from the get list query",
- "items": {
- "$ref": "#/components/schemas/DatasetRestApi.get_list"
- },
- "type": "array"
+ "$ref": "#/components/schemas/DatasetRestApi.get"
}
},
"type": "object"
}
}
},
- "description": "Items from Model"
+ "description": "Dataset object has been returned."
},
"400": {
"$ref": "#/components/responses/400"
@@ -16093,123 +19856,58 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Get a dataset",
+ "tags": [
+ "Datasets"
+ ]
},
- "post": {
- "description": "Create a new Dataset",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/DatasetRestApi.post"
- }
+ "put": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
}
},
- "description": "Dataset schema",
- "required": true
- },
- "responses": {
- "201": {
- "content": {
- "application/json": {
- "schema": {
- "properties": {
- "id": {
- "type": "number"
- },
- "result": {
- "$ref": "#/components/schemas/DatasetRestApi.post"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "Dataset added"
- },
- "400": {
- "$ref": "#/components/responses/400"
- },
- "401": {
- "$ref": "#/components/responses/401"
- },
- "422": {
- "$ref": "#/components/responses/422"
- },
- "500": {
- "$ref": "#/components/responses/500"
- }
- },
- "security": [
- {
- "jwt": []
- }
- ],
- "tags": ["Datasets"]
- }
- },
- "/api/v1/dataset/_info": {
- "get": {
- "description": "Get metadata information about this API resource",
- "parameters": [
{
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/get_info_schema"
- }
- }
- },
"in": "query",
- "name": "q"
+ "name": "override_columns",
+ "schema": {
+ "type": "boolean"
+ }
}
],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "properties": {
- "add_columns": {
- "type": "object"
- },
- "edit_columns": {
- "type": "object"
- },
- "filters": {
- "properties": {
- "column_name": {
- "items": {
- "properties": {
- "name": {
- "description": "The filter name. Will be translated by babel",
- "type": "string"
- },
- "operator": {
- "description": "The filter operation key to use on list filters",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- }
- },
- "type": "object"
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DatasetRestApi.put"
+ }
+ }
+ },
+ "description": "Dataset schema",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "id": {
+ "type": "number"
},
- "permissions": {
- "description": "The user permissions for this API resource",
- "items": {
- "type": "string"
- },
- "type": "array"
+ "result": {
+ "$ref": "#/components/schemas/DatasetRestApi.put"
}
},
"type": "object"
}
}
},
- "description": "Item from Model"
+ "description": "Dataset changed"
},
"400": {
"$ref": "#/components/responses/400"
@@ -16217,6 +19915,12 @@
"401": {
"$ref": "#/components/responses/401"
},
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
"422": {
"$ref": "#/components/responses/422"
},
@@ -16229,30 +19933,32 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Update a dataset",
+ "tags": [
+ "Datasets"
+ ]
}
},
- "/api/v1/dataset/distinct/{column_name}": {
- "get": {
+ "/api/v1/dataset/{pk}/column/{column_id}": {
+ "delete": {
"parameters": [
{
+ "description": "The dataset pk for this column",
"in": "path",
- "name": "column_name",
+ "name": "pk",
"required": true,
"schema": {
- "type": "string"
+ "type": "integer"
}
},
{
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/get_related_schema"
- }
- }
- },
- "in": "query",
- "name": "q"
+ "description": "The column id for this dataset",
+ "in": "path",
+ "name": "column_id",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
}
],
"responses": {
@@ -16260,21 +19966,29 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/DistincResponseSchema"
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "type": "object"
}
}
},
- "description": "Distinct field data"
- },
- "400": {
- "$ref": "#/components/responses/400"
+ "description": "Column deleted"
},
"401": {
"$ref": "#/components/responses/401"
},
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
"404": {
"$ref": "#/components/responses/404"
},
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
"500": {
"$ref": "#/components/responses/500"
}
@@ -16284,44 +19998,49 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Delete a dataset column",
+ "tags": [
+ "Datasets"
+ ]
}
},
- "/api/v1/dataset/duplicate": {
- "post": {
- "description": "Duplicates a Dataset",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/DatasetDuplicateSchema"
- }
+ "/api/v1/dataset/{pk}/metric/{metric_id}": {
+ "delete": {
+ "parameters": [
+ {
+ "description": "The dataset pk for this column",
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
}
},
- "description": "Dataset schema",
- "required": true
- },
+ {
+ "description": "The metric id for this dataset",
+ "in": "path",
+ "name": "metric_id",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
"responses": {
- "201": {
+ "200": {
"content": {
"application/json": {
"schema": {
"properties": {
- "id": {
- "type": "number"
- },
- "result": {
- "$ref": "#/components/schemas/DatasetDuplicateSchema"
+ "message": {
+ "type": "string"
}
},
"type": "object"
}
}
},
- "description": "Dataset duplicated"
- },
- "400": {
- "$ref": "#/components/responses/400"
+ "description": "Metric deleted"
},
"401": {
"$ref": "#/components/responses/401"
@@ -16344,45 +20063,52 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Delete a dataset metric",
+ "tags": [
+ "Datasets"
+ ]
}
},
- "/api/v1/dataset/export/": {
- "get": {
- "description": "Exports multiple datasets and downloads them as YAML files",
+ "/api/v1/dataset/{pk}/refresh": {
+ "put": {
"parameters": [
{
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/get_export_ids_schema"
- }
- }
- },
- "in": "query",
- "name": "q"
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
}
],
"responses": {
"200": {
"content": {
- "text/plain": {
+ "application/json": {
"schema": {
- "type": "string"
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "type": "object"
}
}
},
- "description": "Dataset export"
- },
- "400": {
- "$ref": "#/components/responses/400"
+ "description": "Dataset delete"
},
"401": {
"$ref": "#/components/responses/401"
},
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
"404": {
"$ref": "#/components/responses/404"
},
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
"500": {
"$ref": "#/components/responses/500"
}
@@ -16392,126 +20118,121 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Refresh and update columns of a dataset",
+ "tags": [
+ "Datasets"
+ ]
}
},
- "/api/v1/dataset/get_or_create/": {
- "post": {
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/GetOrCreateDatasetSchema"
- }
+ "/api/v1/dataset/{pk}/related_objects": {
+ "get": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
}
- },
- "required": true
- },
+ }
+ ],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
- "properties": {
- "result": {
- "properties": {
- "table_id": {
- "type": "integer"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
+ "$ref": "#/components/schemas/DatasetRelatedObjectsResponse"
}
}
},
- "description": "The ID of the table"
- },
- "400": {
- "$ref": "#/components/responses/400"
+ "description": "Query result"
},
"401": {
"$ref": "#/components/responses/401"
},
- "422": {
- "$ref": "#/components/responses/422"
+ "404": {
+ "$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
- },
- "security": [
- {
- "jwt": []
- }
- ],
- "summary": "Retrieve a table by name, or create it if it does not exist",
- "tags": ["Datasets"]
- }
- },
- "/api/v1/dataset/import/": {
- "post": {
- "requestBody": {
- "content": {
- "multipart/form-data": {
- "schema": {
- "properties": {
- "formData": {
- "description": "upload file (ZIP or YAML)",
- "format": "binary",
- "type": "string"
- },
- "overwrite": {
- "description": "overwrite existing datasets?",
- "type": "boolean"
- },
- "passwords": {
- "description": "JSON map of passwords for each featured database in the ZIP file. If the ZIP includes a database config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
- "type": "string"
- },
- "ssh_tunnel_passwords": {
- "description": "JSON map of passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
- "type": "string"
- },
- "ssh_tunnel_private_key_passwords": {
- "description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
- "type": "string"
- },
- "ssh_tunnel_private_keys": {
- "description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
- "type": "string"
- },
- "sync_columns": {
- "description": "sync columns?",
- "type": "boolean"
- },
- "sync_metrics": {
- "description": "sync metrics?",
- "type": "boolean"
- }
- },
- "type": "object"
- }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get charts and dashboards count associated to a dataset",
+ "tags": [
+ "Datasets"
+ ]
+ }
+ },
+ "/api/v1/datasource/{datasource_type}/{datasource_id}/column/{column_name}/values/": {
+ "get": {
+ "parameters": [
+ {
+ "description": "The type of datasource",
+ "in": "path",
+ "name": "datasource_type",
+ "required": true,
+ "schema": {
+ "type": "string"
}
},
- "required": true
- },
+ {
+ "description": "The id of the datasource",
+ "in": "path",
+ "name": "datasource_id",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "description": "The name of the column to get values for",
+ "in": "path",
+ "name": "column_name",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
- "message": {
- "type": "string"
+ "result": {
+ "items": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "integer"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
}
},
"type": "object"
}
}
},
- "description": "Dataset import result"
+ "description": "A List of distinct values for the column"
},
"400": {
"$ref": "#/components/responses/400"
@@ -16519,8 +20240,11 @@
"401": {
"$ref": "#/components/responses/401"
},
- "422": {
- "$ref": "#/components/responses/422"
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
@@ -16531,30 +20255,23 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Get possible values for a datasource column",
+ "tags": [
+ "Datasources"
+ ]
}
},
- "/api/v1/dataset/related/{column_name}": {
+ "/api/v1/embedded_dashboard/{uuid}": {
"get": {
"parameters": [
{
+ "description": "The embedded configuration uuid",
"in": "path",
- "name": "column_name",
+ "name": "uuid",
"required": true,
"schema": {
"type": "string"
}
- },
- {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/get_related_schema"
- }
- }
- },
- "in": "query",
- "name": "q"
}
],
"responses": {
@@ -16562,14 +20279,16 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/RelatedResponseSchema"
+ "properties": {
+ "result": {
+ "$ref": "#/components/schemas/EmbeddedDashboardResponseSchema"
+ }
+ },
+ "type": "object"
}
}
},
- "description": "Related column data"
- },
- "400": {
- "$ref": "#/components/responses/400"
+ "description": "Result contains the embedded dashboard configuration"
},
"401": {
"$ref": "#/components/responses/401"
@@ -16586,40 +20305,75 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Get a report schedule log",
+ "tags": [
+ "Embedded Dashboard"
+ ]
}
},
- "/api/v1/dataset/warm_up_cache": {
- "put": {
- "description": "Warms up the cache for the table. Note for slices a force refresh occurs. In terms of the `extra_filters` these can be obtained from records in the JSON encoded `logs.json` column associated with the `explore_json` action.",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/DatasetCacheWarmUpRequestSchema"
- }
+ "/api/v1/explore/": {
+ "get": {
+ "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",
+ "name": "form_data_key",
+ "schema": {
+ "type": "string"
}
},
- "description": "Identifies the database and table to warm up cache for, and any additional dashboard or filter context to use.",
- "required": true
- },
+ {
+ "in": "query",
+ "name": "permalink_key",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "slice_id",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "datasource_id",
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "query",
+ "name": "datasource_type",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/DatasetCacheWarmUpResponseSchema"
+ "$ref": "#/components/schemas/ExploreContextSchema"
}
}
},
- "description": "Each chart's warmup status"
+ "description": "Returns the initial context."
},
"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"
}
@@ -16629,30 +20383,41 @@
"jwt": []
}
],
- "summary": "Warms up the cache for each chart powered by the given table",
- "tags": ["Datasets"]
+ "summary": "Assemble Explore related information in a single endpoint",
+ "tags": [
+ "Explore"
+ ]
}
},
- "/api/v1/dataset/{pk}": {
- "delete": {
- "description": "Deletes a Dataset",
+ "/api/v1/explore/form_data": {
+ "post": {
"parameters": [
{
- "in": "path",
- "name": "pk",
- "required": true,
+ "in": "query",
+ "name": "tab_id",
"schema": {
"type": "integer"
}
}
],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FormDataPostSchema"
+ }
+ }
+ },
+ "required": true
+ },
"responses": {
- "200": {
+ "201": {
"content": {
"application/json": {
"schema": {
"properties": {
- "message": {
+ "key": {
+ "description": "The key to retrieve the form_data.",
"type": "string"
}
},
@@ -16660,17 +20425,14 @@
}
}
},
- "description": "Dataset delete"
+ "description": "The form_data was stored successfully."
+ },
+ "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"
},
@@ -16683,74 +20445,33 @@
"jwt": []
}
],
- "tags": ["Datasets"]
- },
- "get": {
- "description": "Get an item model",
+ "summary": "Create a new form_data",
+ "tags": [
+ "Explore Form Data"
+ ]
+ }
+ },
+ "/api/v1/explore/form_data/{key}": {
+ "delete": {
"parameters": [
{
+ "description": "The form_data key.",
"in": "path",
- "name": "pk",
+ "name": "key",
"required": true,
"schema": {
- "type": "integer"
+ "type": "string"
}
- },
- {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/get_item_schema"
- }
- }
- },
- "in": "query",
- "name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
- "schema": {
- "properties": {
- "description_columns": {
- "properties": {
- "column_name": {
- "description": "The description for the column name. Will be translated by babel",
- "example": "A Nice description for the column",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The item id",
- "type": "string"
- },
- "label_columns": {
- "properties": {
- "column_name": {
- "description": "The label for the column name. Will be translated by babel",
- "example": "A Nice label for the column",
- "type": "string"
- }
- },
- "type": "object"
- },
- "result": {
- "$ref": "#/components/schemas/DatasetRestApi.get"
- },
- "show_columns": {
- "description": "A list of columns",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "show_title": {
- "description": "A title to render. Will be translated by babel",
- "example": "Show Item Details",
+ "schema": {
+ "properties": {
+ "message": {
+ "description": "The result of the operation",
"type": "string"
}
},
@@ -16758,7 +20479,7 @@
}
}
},
- "description": "Item from Model"
+ "description": "Deleted the stored form_data."
},
"400": {
"$ref": "#/components/responses/400"
@@ -16781,56 +20502,38 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Delete a form_data",
+ "tags": [
+ "Explore Form Data"
+ ]
},
- "put": {
- "description": "Changes a Dataset",
+ "get": {
"parameters": [
{
"in": "path",
- "name": "pk",
+ "name": "key",
"required": true,
"schema": {
- "type": "integer"
- }
- },
- {
- "in": "query",
- "name": "override_columns",
- "schema": {
- "type": "boolean"
+ "type": "string"
}
}
],
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/DatasetRestApi.put"
- }
- }
- },
- "description": "Dataset schema",
- "required": true
- },
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
- "id": {
- "type": "number"
- },
- "result": {
- "$ref": "#/components/schemas/DatasetRestApi.put"
+ "form_data": {
+ "description": "The stored form_data",
+ "type": "string"
}
},
"type": "object"
}
}
},
- "description": "Dataset changed"
+ "description": "Returns the stored form_data."
},
"400": {
"$ref": "#/components/responses/400"
@@ -16838,9 +20541,6 @@
"401": {
"$ref": "#/components/responses/401"
},
- "403": {
- "$ref": "#/components/responses/403"
- },
"404": {
"$ref": "#/components/responses/404"
},
@@ -16856,39 +20556,47 @@
"jwt": []
}
],
- "tags": ["Datasets"]
- }
- },
- "/api/v1/dataset/{pk}/column/{column_id}": {
- "delete": {
- "description": "Delete a Dataset column",
+ "summary": "Get a form_data",
+ "tags": [
+ "Explore Form Data"
+ ]
+ },
+ "put": {
"parameters": [
{
- "description": "The dataset pk for this column",
"in": "path",
- "name": "pk",
+ "name": "key",
"required": true,
"schema": {
- "type": "integer"
+ "type": "string"
}
},
{
- "description": "The column id for this dataset",
- "in": "path",
- "name": "column_id",
- "required": true,
+ "in": "query",
+ "name": "tab_id",
"schema": {
"type": "integer"
}
}
],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/FormDataPutSchema"
+ }
+ }
+ },
+ "required": true
+ },
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
- "message": {
+ "key": {
+ "description": "The key to retrieve the form_data.",
"type": "string"
}
},
@@ -16896,14 +20604,14 @@
}
}
},
- "description": "Column deleted"
+ "description": "The form_data was stored successfully."
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
- "403": {
- "$ref": "#/components/responses/403"
- },
"404": {
"$ref": "#/components/responses/404"
},
@@ -16919,39 +20627,36 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Update an existing form_data",
+ "tags": [
+ "Explore Form Data"
+ ]
}
},
- "/api/v1/dataset/{pk}/metric/{metric_id}": {
- "delete": {
- "description": "Delete a Dataset metric",
- "parameters": [
- {
- "description": "The dataset pk for this column",
- "in": "path",
- "name": "pk",
- "required": true,
- "schema": {
- "type": "integer"
+ "/api/v1/explore/permalink": {
+ "post": {
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ExplorePermalinkStateSchema"
+ }
}
},
- {
- "description": "The metric id for this dataset",
- "in": "path",
- "name": "metric_id",
- "required": true,
- "schema": {
- "type": "integer"
- }
- }
- ],
+ "required": true
+ },
"responses": {
- "200": {
+ "201": {
"content": {
"application/json": {
"schema": {
"properties": {
- "message": {
+ "key": {
+ "description": "The key to retrieve the permanent link data.",
+ "type": "string"
+ },
+ "url": {
+ "description": "permanent link.",
"type": "string"
}
},
@@ -16959,17 +20664,14 @@
}
}
},
- "description": "Metric deleted"
+ "description": "The permanent link was stored successfully."
+ },
+ "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"
},
@@ -16982,19 +20684,21 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Create a new permanent link",
+ "tags": [
+ "Explore Permanent Link"
+ ]
}
},
- "/api/v1/dataset/{pk}/refresh": {
- "put": {
- "description": "Refreshes and updates columns of a dataset",
+ "/api/v1/explore/permalink/{key}": {
+ "get": {
"parameters": [
{
"in": "path",
- "name": "pk",
+ "name": "key",
"required": true,
"schema": {
- "type": "integer"
+ "type": "string"
}
}
],
@@ -17004,22 +20708,23 @@
"application/json": {
"schema": {
"properties": {
- "message": {
- "type": "string"
+ "state": {
+ "description": "The stored state",
+ "type": "object"
}
},
"type": "object"
}
}
},
- "description": "Dataset delete"
+ "description": "Returns the stored form_data."
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
- "403": {
- "$ref": "#/components/responses/403"
- },
"404": {
"$ref": "#/components/responses/404"
},
@@ -17035,77 +20740,144 @@
"jwt": []
}
],
- "tags": ["Datasets"]
+ "summary": "Get chart's permanent link state",
+ "tags": [
+ "Explore Permanent Link"
+ ]
}
},
- "/api/v1/dataset/{pk}/related_objects": {
- "get": {
- "description": "Get charts and dashboards count associated to a dataset",
- "parameters": [
- {
- "in": "path",
- "name": "pk",
- "required": true,
- "schema": {
- "type": "integer"
+ "/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/DatasetRelatedObjectsResponse"
+ "$ref": "#/components/schemas/IASLoginTokenResponseSchema"
}
}
},
"description": "Query result"
},
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
"401": {
"$ref": "#/components/responses/401"
},
- "404": {
- "$ref": "#/components/responses/404"
- },
"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": ["Datasets"]
+ "tags": [
+ "IAS"
+ ]
}
},
- "/api/v1/datasource/{datasource_type}/{datasource_id}/column/{column_name}/values/": {
+ "/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 type of datasource",
- "in": "path",
- "name": "datasource_type",
- "required": true,
+ "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": [
{
- "description": "The id of the datasource",
"in": "path",
- "name": "datasource_id",
+ "name": "pk",
"required": true,
"schema": {
- "type": "integer"
+ "type": "string"
}
},
{
- "description": "The name of the column to get values for",
- "in": "path",
- "name": "column_name",
- "required": true,
+ "description": "The name of the IAS profile",
+ "in": "query",
+ "name": "profile",
+ "required": false,
"schema": {
"type": "string"
}
@@ -17116,38 +20888,39 @@
"content": {
"application/json": {
"schema": {
- "properties": {
- "result": {
- "items": {
- "oneOf": [
- {
- "type": "string"
- },
- {
- "type": "integer"
- },
- {
- "type": "number"
- },
- {
- "type": "boolean"
- },
- {
- "type": "object"
- }
- ]
- },
- "type": "array"
- }
- },
- "type": "object"
+ "$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": "A List of distinct values for the column"
- },
- "400": {
- "$ref": "#/components/responses/400"
+ "description": "Lakehouse has been deleted"
},
"401": {
"$ref": "#/components/responses/401"
@@ -17155,9 +20928,6 @@
"403": {
"$ref": "#/components/responses/403"
},
- "404": {
- "$ref": "#/components/responses/404"
- },
"500": {
"$ref": "#/components/responses/500"
}
@@ -17167,18 +20937,20 @@
"jwt": []
}
],
- "summary": "Get possible values for a datasource column",
- "tags": ["Datasources"]
+ "summary": "Get a list of all connected Lakehouses",
+ "tags": [
+ "Lakehouse"
+ ]
}
},
- "/api/v1/embedded_dashboard/{uuid}": {
- "get": {
- "description": "Get a report schedule log",
+ "/api/v1/lakehouse/{lakehouse_id}": {
+ "delete": {
+ "description": "Disconnect a Lakehouse.",
"parameters": [
{
- "description": "The embedded configuration uuid",
+ "description": "The unique id of the lakehouse",
"in": "path",
- "name": "uuid",
+ "name": "lakehouse_id",
"required": true,
"schema": {
"type": "string"
@@ -17190,20 +20962,18 @@
"content": {
"application/json": {
"schema": {
- "properties": {
- "result": {
- "$ref": "#/components/schemas/EmbeddedDashboardResponseSchema"
- }
- },
- "type": "object"
+ "$ref": "#/components/schemas/LakehouseDisconnectResponseSchema"
}
}
},
- "description": "Result contains the embedded dashboard configuration"
+ "description": "Lakehouse has been deleted"
},
"401": {
"$ref": "#/components/responses/401"
},
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
"404": {
"$ref": "#/components/responses/404"
},
@@ -17216,44 +20986,19 @@
"jwt": []
}
],
- "tags": ["Embedded Dashboard"]
- }
- },
- "/api/v1/explore/": {
+ "summary": "Disconnect a Lakehouse and all catalogs",
+ "tags": [
+ "Lakehouse"
+ ]
+ },
"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": "Get information regarding a connected Lakehouse",
"parameters": [
{
- "in": "query",
- "name": "form_data_key",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "query",
- "name": "permalink_key",
- "schema": {
- "type": "string"
- }
- },
- {
- "in": "query",
- "name": "slice_id",
- "schema": {
- "type": "integer"
- }
- },
- {
- "in": "query",
- "name": "datasource_id",
- "schema": {
- "type": "integer"
- }
- },
- {
- "in": "query",
- "name": "datasource_type",
+ "description": "The unique id of the lakehouse",
+ "in": "path",
+ "name": "lakehouse_id",
+ "required": true,
"schema": {
"type": "string"
}
@@ -17264,24 +21009,21 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/ExploreContextSchema"
+ "$ref": "#/components/schemas/LakehouseGetResponseSchema"
}
}
},
- "description": "Returns the initial context."
- },
- "400": {
- "$ref": "#/components/responses/400"
+ "description": "Lakehouses"
},
"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"
}
@@ -17291,19 +21033,21 @@
"jwt": []
}
],
- "summary": "Assembles Explore related information (form_data, slice, dataset)\\n in a single endpoint.",
- "tags": ["Explore"]
- }
- },
- "/api/v1/explore/form_data": {
+ "summary": "Get information about a specific Lakehouse",
+ "tags": [
+ "Lakehouse"
+ ]
+ },
"post": {
- "description": "Stores a new form_data.",
+ "description": "Endpoint for connecting a Lakehouse and associated catalogs to the ACS Superset instance.",
"parameters": [
{
- "in": "query",
- "name": "tab_id",
+ "description": "The unique id of the lakehouse",
+ "in": "path",
+ "name": "lakehouse_id",
+ "required": true,
"schema": {
- "type": "integer"
+ "type": "string"
}
}
],
@@ -17311,28 +21055,23 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/FormDataPostSchema"
+ "$ref": "#/components/schemas/LakehouseConnectRequestSchema"
}
}
},
+ "description": "Payload containing connection parameters.",
"required": true
},
"responses": {
- "201": {
+ "200": {
"content": {
"application/json": {
"schema": {
- "properties": {
- "key": {
- "description": "The key to retrieve the form_data.",
- "type": "string"
- }
- },
- "type": "object"
+ "$ref": "#/components/schemas/LakehouseConnectResponseSchema"
}
}
},
- "description": "The form_data was stored successfully."
+ "description": "The connection task has been scheduled."
},
"400": {
"$ref": "#/components/responses/400"
@@ -17340,8 +21079,8 @@
"401": {
"$ref": "#/components/responses/401"
},
- "422": {
- "$ref": "#/components/responses/422"
+ "403": {
+ "$ref": "#/components/responses/403"
},
"500": {
"$ref": "#/components/responses/500"
@@ -17352,21 +21091,40 @@
"jwt": []
}
],
- "tags": ["Explore Form Data"]
+ "summary": "Schedule a task to connect a Lakehouse and catalogs",
+ "tags": [
+ "Lakehouse"
+ ]
}
},
- "/api/v1/explore/form_data/{key}": {
- "delete": {
- "description": "Deletes a form_data.",
+ "/api/v1/lakehouse/{lakehouse_id}/dataset": {
+ "get": {
+ "description": "Endpoint for listing all virtual datasets on a Lakehouse",
"parameters": [
{
- "description": "The form_data key.",
+ "description": "The unique id of the lakehouse",
"in": "path",
- "name": "key",
+ "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": {
@@ -17374,17 +21132,11 @@
"content": {
"application/json": {
"schema": {
- "properties": {
- "message": {
- "description": "The result of the operation",
- "type": "string"
- }
- },
- "type": "object"
+ "$ref": "#/components/schemas/LakehouseDatasetListResponseSchema"
}
}
},
- "description": "Deleted the stored form_data."
+ "description": "All virtual datasets satisfying the query params."
},
"400": {
"$ref": "#/components/responses/400"
@@ -17392,11 +21144,8 @@
"401": {
"$ref": "#/components/responses/401"
},
- "404": {
- "$ref": "#/components/responses/404"
- },
- "422": {
- "$ref": "#/components/responses/422"
+ "403": {
+ "$ref": "#/components/responses/403"
},
"500": {
"$ref": "#/components/responses/500"
@@ -17407,36 +21156,45 @@
"jwt": []
}
],
- "tags": ["Explore Form Data"]
+ "summary": "Get a list of virtual datasets",
+ "tags": [
+ "Lakehouse"
+ ]
},
- "get": {
- "description": "Retrives a form_data.",
+ "post": {
+ "description": "Endpoint for creating a virtual dataset from a query",
"parameters": [
{
+ "description": "The unique id of the lakehouse",
"in": "path",
- "name": "key",
+ "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": {
- "properties": {
- "form_data": {
- "description": "The stored form_data",
- "type": "string"
- }
- },
- "type": "object"
+ "$ref": "#/components/schemas/LakehouseDatasetResponseSchema"
}
}
},
- "description": "Returns the stored form_data."
+ "description": "The virtual dataset has been created."
},
"400": {
"$ref": "#/components/responses/400"
@@ -17444,8 +21202,8 @@
"401": {
"$ref": "#/components/responses/401"
},
- "404": {
- "$ref": "#/components/responses/404"
+ "403": {
+ "$ref": "#/components/responses/403"
},
"422": {
"$ref": "#/components/responses/422"
@@ -17459,53 +21217,45 @@
"jwt": []
}
],
- "tags": ["Explore Form Data"]
- },
- "put": {
- "description": "Updates an existing form_data.",
+ "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": "key",
+ "name": "lakehouse_id",
"required": true,
"schema": {
"type": "string"
}
},
{
- "in": "query",
- "name": "tab_id",
+ "description": "The id of the connection task",
+ "in": "path",
+ "name": "task_id",
+ "required": true,
"schema": {
- "type": "integer"
+ "type": "string"
}
}
],
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/FormDataPutSchema"
- }
- }
- },
- "required": true
- },
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
- "properties": {
- "key": {
- "description": "The key to retrieve the form_data.",
- "type": "string"
- }
- },
- "type": "object"
+ "$ref": "#/components/schemas/LakehouseConnectStatusResponseSchema"
}
}
},
- "description": "The form_data was stored successfully."
+ "description": "The status of the task."
},
"400": {
"$ref": "#/components/responses/400"
@@ -17513,12 +21263,12 @@
"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"
}
@@ -17528,42 +21278,45 @@
"jwt": []
}
],
- "tags": ["Explore Form Data"]
+ "summary": "Cancel a running task",
+ "tags": [
+ "Lakehouse"
+ ]
}
},
- "/api/v1/explore/permalink": {
- "post": {
- "description": "Stores a new permanent link.",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/ExplorePermalinkStateSchema"
- }
+ "/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"
}
},
- "required": true
- },
- "responses": {
- "201": {
- "content": {
- "application/json": {
- "schema": {
- "properties": {
- "key": {
- "description": "The key to retrieve the permanent link data.",
- "type": "string"
- },
- "url": {
- "description": "permanent link.",
- "type": "string"
- }
- },
- "type": "object"
+ {
+ "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 permanent link was stored successfully."
+ "description": "The status of the task."
},
"400": {
"$ref": "#/components/responses/400"
@@ -17571,8 +21324,8 @@
"401": {
"$ref": "#/components/responses/401"
},
- "422": {
- "$ref": "#/components/responses/422"
+ "403": {
+ "$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
@@ -17583,16 +21336,29 @@
"jwt": []
}
],
- "tags": ["Explore Permanent Link"]
+ "summary": "Get the payload of a completed connection task",
+ "tags": [
+ "Lakehouse"
+ ]
}
},
- "/api/v1/explore/permalink/{key}": {
+ "/api/v1/lakehouse/{lakehouse_id}/task/{task_id}/status": {
"get": {
- "description": "Retrives chart state associated with a permanent link.",
+ "description": "Endpoint for checking what the status of a scheduled connection request is.",
"parameters": [
{
+ "description": "The unique id of the lakehouse",
"in": "path",
- "name": "key",
+ "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"
@@ -17604,17 +21370,11 @@
"content": {
"application/json": {
"schema": {
- "properties": {
- "state": {
- "description": "The stored state",
- "type": "object"
- }
- },
- "type": "object"
+ "$ref": "#/components/schemas/LakehouseConnectStatusResponseSchema"
}
}
},
- "description": "Returns the stored form_data."
+ "description": "The status of the task."
},
"400": {
"$ref": "#/components/responses/400"
@@ -17622,12 +21382,12 @@
"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"
}
@@ -17637,12 +21397,15 @@
"jwt": []
}
],
- "tags": ["Explore Permanent Link"]
+ "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"
+ ]
}
}
},