diff --git a/docs/static/resources/openapi.json b/docs/static/resources/openapi.json
index 4b2b50caf07..f5a44193ea3 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,10 +117,13 @@
"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",
+ "MARSHMALLOW_ERROR",
"REPORT_NOTIFICATION_ERROR"
],
"type": "string"
@@ -458,13 +466,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",
@@ -580,6 +588,29 @@
},
"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": {
@@ -591,10 +622,127 @@
},
"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"
},
@@ -642,6 +790,18 @@
},
"type": "object"
},
+ "CatalogsResponseSchema": {
+ "properties": {
+ "result": {
+ "items": {
+ "description": "A database catalog name",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
"ChartCacheScreenshotResponseSchema": {
"properties": {
"cache_key": {
@@ -864,14 +1024,7 @@
},
"type": {
"description": "Datasource type",
- "enum": [
- "sl_table",
- "table",
- "dataset",
- "query",
- "saved_query",
- "view"
- ],
+ "enum": ["table", "dataset", "query", "saved_query", "view"],
"type": "string"
}
},
@@ -884,6 +1037,11 @@
"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"],
@@ -915,12 +1073,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,
@@ -958,6 +1111,7 @@
">=",
"<=",
"LIKE",
+ "NOT LIKE",
"ILIKE",
"IS NULL",
"IS NOT NULL",
@@ -1098,8 +1252,10 @@
"geodetic_parse",
"geohash_decode",
"geohash_encode",
+ "histogram",
"pivot",
"prophet",
+ "rank",
"rename",
"resample",
"rolling",
@@ -1173,12 +1329,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"
@@ -1603,7 +1754,7 @@
"type": "boolean"
},
"owners": {
- "$ref": "#/components/schemas/ChartDataRestApi.get.User"
+ "$ref": "#/components/schemas/ChartDataRestApi.get.AppleUser"
},
"params": {
"nullable": true,
@@ -1635,6 +1786,23 @@
},
"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": {
@@ -1668,23 +1836,6 @@
},
"type": "object"
},
- "ChartDataRestApi.get.User": {
- "properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
- },
- "id": {
- "type": "integer"
- },
- "last_name": {
- "maxLength": 64,
- "type": "string"
- }
- },
- "required": ["first_name", "last_name"],
- "type": "object"
- },
"ChartDataRestApi.get_list": {
"properties": {
"cache_timeout": {
@@ -1700,7 +1851,7 @@
"type": "string"
},
"changed_by": {
- "$ref": "#/components/schemas/ChartDataRestApi.get_list.User3"
+ "$ref": "#/components/schemas/ChartDataRestApi.get_list.User"
},
"changed_by_name": {
"readOnly": true
@@ -1715,7 +1866,7 @@
"readOnly": true
},
"created_by": {
- "$ref": "#/components/schemas/ChartDataRestApi.get_list.User"
+ "$ref": "#/components/schemas/ChartDataRestApi.get_list.User1"
},
"created_by_name": {
"readOnly": true
@@ -1766,10 +1917,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,
@@ -1803,6 +1954,40 @@
},
"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": {
@@ -1880,37 +2065,6 @@
"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": {
"properties": {
"cache_timeout": {
@@ -1946,14 +2100,7 @@
},
"datasource_type": {
"description": "The type of dataset/datasource identified on `datasource_id`.",
- "enum": [
- "sl_table",
- "table",
- "dataset",
- "query",
- "saved_query",
- "view"
- ],
+ "enum": ["table", "dataset", "query", "saved_query", "view"],
"type": "string"
},
"description": {
@@ -1987,7 +2134,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"
},
@@ -2039,14 +2186,7 @@
},
"datasource_type": {
"description": "The type of dataset/datasource identified on `datasource_id`.",
- "enum": [
- "sl_table",
- "table",
- "dataset",
- "query",
- "saved_query",
- "view"
- ],
+ "enum": ["table", "dataset", "query", "saved_query", "view"],
"nullable": true,
"type": "string"
},
@@ -2081,7 +2221,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"
},
@@ -2094,7 +2234,8 @@
},
"tags": {
"items": {
- "$ref": "#/components/schemas/Tag"
+ "description": "Tags to be associated with the chart",
+ "type": "integer"
},
"type": "array"
},
@@ -2371,7 +2512,7 @@
"type": "boolean"
},
"owners": {
- "$ref": "#/components/schemas/ChartRestApi.get.User"
+ "$ref": "#/components/schemas/ChartRestApi.get.AppleUser"
},
"params": {
"nullable": true,
@@ -2403,6 +2544,23 @@
},
"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": {
@@ -2436,23 +2594,6 @@
},
"type": "object"
},
- "ChartRestApi.get.User": {
- "properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
- },
- "id": {
- "type": "integer"
- },
- "last_name": {
- "maxLength": 64,
- "type": "string"
- }
- },
- "required": ["first_name", "last_name"],
- "type": "object"
- },
"ChartRestApi.get_list": {
"properties": {
"cache_timeout": {
@@ -2468,7 +2609,7 @@
"type": "string"
},
"changed_by": {
- "$ref": "#/components/schemas/ChartRestApi.get_list.User3"
+ "$ref": "#/components/schemas/ChartRestApi.get_list.User"
},
"changed_by_name": {
"readOnly": true
@@ -2483,7 +2624,7 @@
"readOnly": true
},
"created_by": {
- "$ref": "#/components/schemas/ChartRestApi.get_list.User"
+ "$ref": "#/components/schemas/ChartRestApi.get_list.User1"
},
"created_by_name": {
"readOnly": true
@@ -2534,10 +2675,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,
@@ -2571,6 +2712,40 @@
},
"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": {
@@ -2648,37 +2823,6 @@
"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"],
- "type": "object"
- },
"ChartRestApi.post": {
"properties": {
"cache_timeout": {
@@ -2714,14 +2858,7 @@
},
"datasource_type": {
"description": "The type of dataset/datasource identified on `datasource_id`.",
- "enum": [
- "sl_table",
- "table",
- "dataset",
- "query",
- "saved_query",
- "view"
- ],
+ "enum": ["table", "dataset", "query", "saved_query", "view"],
"type": "string"
},
"description": {
@@ -2755,7 +2892,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"
},
@@ -2807,14 +2944,7 @@
},
"datasource_type": {
"description": "The type of dataset/datasource identified on `datasource_id`.",
- "enum": [
- "sl_table",
- "table",
- "dataset",
- "query",
- "saved_query",
- "view"
- ],
+ "enum": ["table", "dataset", "query", "saved_query", "view"],
"nullable": true,
"type": "string"
},
@@ -2849,7 +2979,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"
},
@@ -2862,7 +2992,8 @@
},
"tags": {
"items": {
- "$ref": "#/components/schemas/Tag"
+ "description": "Tags to be associated with the chart",
+ "type": "integer"
},
"type": "array"
},
@@ -2877,11 +3008,70 @@
},
"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"
@@ -2914,16 +3104,33 @@
"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",
@@ -3007,6 +3214,23 @@
},
"type": "object"
},
+ "DashboardCacheScreenshotResponseSchema": {
+ "properties": {
+ "cache_key": {
+ "description": "The cache key",
+ "type": "string"
+ },
+ "dashboard_url": {
+ "description": "The url to render the dashboard",
+ "type": "string"
+ },
+ "image_url": {
+ "description": "The url to fetch the screenshot",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
"DashboardCopySchema": {
"properties": {
"css": {
@@ -3034,12 +3258,21 @@
},
"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"
@@ -3052,12 +3285,6 @@
},
"type": "array"
},
- "column_names": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
"currency_formats": {
"type": "object"
},
@@ -3112,6 +3339,9 @@
"name": {
"type": "string"
},
+ "normalize_columns": {
+ "type": "boolean"
+ },
"offset": {
"type": "integer"
},
@@ -3205,6 +3435,12 @@
},
"type": "array"
},
+ "created_by": {
+ "$ref": "#/components/schemas/User"
+ },
+ "created_on_delta_humanized": {
+ "type": "string"
+ },
"css": {
"description": "Override CSS for the dashboard.",
"type": "string"
@@ -3248,7 +3484,7 @@
},
"tags": {
"items": {
- "$ref": "#/components/schemas/Tag1"
+ "$ref": "#/components/schemas/Tag"
},
"type": "array"
},
@@ -3312,7 +3548,7 @@
"type": "string"
},
"changed_by": {
- "$ref": "#/components/schemas/DashboardRestApi.get_list.User2"
+ "$ref": "#/components/schemas/DashboardRestApi.get_list.User"
},
"changed_by_name": {
"readOnly": true
@@ -3324,7 +3560,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
@@ -3349,7 +3585,7 @@
"type": "string"
},
"owners": {
- "$ref": "#/components/schemas/DashboardRestApi.get_list.User1"
+ "$ref": "#/components/schemas/DashboardRestApi.get_list.AppleUser"
},
"position_json": {
"nullable": true,
@@ -3382,6 +3618,23 @@
},
"type": "object"
},
+ "DashboardRestApi.get_list.AppleUser": {
+ "properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": ["first_name", "last_name"],
+ "type": "object"
+ },
"DashboardRestApi.get_list.Role": {
"properties": {
"id": {
@@ -3445,23 +3698,6 @@
"required": ["first_name", "last_name"],
"type": "object"
},
- "DashboardRestApi.get_list.User2": {
- "properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
- },
- "id": {
- "type": "integer"
- },
- "last_name": {
- "maxLength": 64,
- "type": "string"
- }
- },
- "required": ["first_name", "last_name"],
- "type": "object"
- },
"DashboardRestApi.post": {
"properties": {
"certification_details": {
@@ -3598,12 +3834,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"
},
@@ -3691,15 +3938,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": {
@@ -3936,6 +4182,9 @@
"nullable": true,
"type": "boolean"
},
+ "allow_multi_catalog": {
+ "readOnly": true
+ },
"allow_run_async": {
"nullable": true,
"type": "boolean"
@@ -3952,6 +4201,9 @@
"backend": {
"readOnly": true
},
+ "changed_by": {
+ "$ref": "#/components/schemas/DatabaseRestApi.get_list.User"
+ },
"changed_on": {
"format": "date-time",
"nullable": true,
@@ -3961,7 +4213,7 @@
"readOnly": true
},
"created_by": {
- "$ref": "#/components/schemas/DatabaseRestApi.get_list.User"
+ "$ref": "#/components/schemas/DatabaseRestApi.get_list.User1"
},
"database_name": {
"maxLength": 250,
@@ -3970,6 +4222,9 @@
"disable_data_preview": {
"readOnly": true
},
+ "disable_drill_to_detail": {
+ "readOnly": true
+ },
"engine_information": {
"readOnly": true
},
@@ -4015,6 +4270,20 @@
"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": {
"properties": {
"allow_ctas": {
@@ -4072,7 +4341,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": {
@@ -4184,7 +4453,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": {
@@ -4319,7 +4588,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": {
@@ -4388,7 +4657,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": {
@@ -4915,12 +5184,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",
@@ -5006,6 +5284,10 @@
"name": {
"readOnly": true
},
+ "normalize_columns": {
+ "nullable": true,
+ "type": "boolean"
+ },
"offset": {
"nullable": true,
"type": "integer"
@@ -5014,7 +5296,7 @@
"readOnly": true
},
"owners": {
- "$ref": "#/components/schemas/DatasetRestApi.get.User1"
+ "$ref": "#/components/schemas/DatasetRestApi.get.AppleUser"
},
"schema": {
"maxLength": 255,
@@ -5052,8 +5334,28 @@
"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
},
@@ -5219,23 +5521,6 @@
"type": "object"
},
"DatasetRestApi.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"
- },
- "DatasetRestApi.get.User2": {
"properties": {
"first_name": {
"maxLength": 64,
@@ -5251,8 +5536,13 @@
},
"DatasetRestApi.get_list": {
"properties": {
+ "catalog": {
+ "maxLength": 256,
+ "nullable": true,
+ "type": "string"
+ },
"changed_by": {
- "$ref": "#/components/schemas/DatasetRestApi.get_list.User1"
+ "$ref": "#/components/schemas/DatasetRestApi.get_list.User"
},
"changed_by_name": {
"readOnly": true
@@ -5291,7 +5581,7 @@
"readOnly": true
},
"owners": {
- "$ref": "#/components/schemas/DatasetRestApi.get_list.User"
+ "$ref": "#/components/schemas/DatasetRestApi.get_list.AppleUser"
},
"schema": {
"maxLength": 255,
@@ -5310,6 +5600,23 @@
"required": ["database", "table_name"],
"type": "object"
},
+ "DatasetRestApi.get_list.AppleUser": {
+ "properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": ["first_name", "last_name"],
+ "type": "object"
+ },
"DatasetRestApi.get_list.Database": {
"properties": {
"database_name": {
@@ -5340,22 +5647,18 @@
"required": ["first_name", "last_name"],
"type": "object"
},
- "DatasetRestApi.get_list.User1": {
- "properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
- },
- "last_name": {
- "maxLength": 64,
- "type": "string"
- }
- },
- "required": ["first_name", "last_name"],
- "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"
},
@@ -5367,6 +5670,10 @@
"nullable": true,
"type": "boolean"
},
+ "normalize_columns": {
+ "default": false,
+ "type": "boolean"
+ },
"owners": {
"items": {
"type": "integer"
@@ -5394,10 +5701,20 @@
},
"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"
@@ -5451,6 +5768,10 @@
},
"type": "array"
},
+ "normalize_columns": {
+ "nullable": true,
+ "type": "boolean"
+ },
"offset": {
"nullable": true,
"type": "integer"
@@ -5486,6 +5807,11 @@
},
"Datasource": {
"properties": {
+ "catalog": {
+ "description": "Datasource catalog",
+ "nullable": true,
+ "type": "string"
+ },
"database_name": {
"description": "Datasource name",
"type": "string"
@@ -5496,14 +5822,7 @@
},
"datasource_type": {
"description": "The type of dataset/datasource identified on `datasource_id`.",
- "enum": [
- "sl_table",
- "table",
- "dataset",
- "query",
- "saved_query",
- "view"
- ],
+ "enum": ["table", "dataset", "query", "saved_query", "view"],
"type": "string"
},
"schema": {
@@ -5610,8 +5929,34 @@
},
"type": "object"
},
+ "EngineInformation": {
+ "properties": {
+ "disable_ssh_tunneling": {
+ "description": "SSH tunnel is not available to the database",
+ "type": "boolean"
+ },
+ "supports_dynamic_catalog": {
+ "description": "The database supports multiple catalogs in a single connection",
+ "type": "boolean"
+ },
+ "supports_file_upload": {
+ "description": "Users can upload files to the database",
+ "type": "boolean"
+ },
+ "supports_oauth2": {
+ "description": "The database supports OAuth2",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
"EstimateQueryCostSchema": {
"properties": {
+ "catalog": {
+ "description": "The database catalog",
+ "nullable": true,
+ "type": "string"
+ },
"database_id": {
"description": "The database id",
"type": "integer"
@@ -5633,8 +5978,109 @@
"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"
@@ -5743,14 +6189,7 @@
},
"datasource_type": {
"description": "The datasource type",
- "enum": [
- "sl_table",
- "table",
- "dataset",
- "query",
- "saved_query",
- "view"
- ],
+ "enum": ["table", "dataset", "query", "saved_query", "view"],
"type": "string"
},
"form_data": {
@@ -5773,14 +6212,7 @@
},
"datasource_type": {
"description": "The datasource type",
- "enum": [
- "sl_table",
- "table",
- "dataset",
- "query",
- "saved_query",
- "view"
- ],
+ "enum": ["table", "dataset", "query", "saved_query", "view"],
"type": "string"
},
"form_data": {
@@ -5805,10 +6237,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,
@@ -5849,6 +6296,524 @@
"required": ["resources", "rls"],
"type": "object"
},
+ "IASLoginTokenRequestSchema": {
+ "properties": {
+ "access_token": {
+ "description": "IAS Access token. Can be requested by adding `token` to the `responseTypes`.",
+ "nullable": true,
+ "type": "string"
+ },
+ "client_id": {
+ "description": "IAS client id. Only needed if `refresh_token` is provided.",
+ "nullable": true,
+ "type": "string"
+ },
+ "client_secret": {
+ "description": "IAS client secret. Only needed if `refresh_token` and `client_id` is provided.",
+ "nullable": true,
+ "type": "string"
+ },
+ "id_token": {
+ "description": "IAS ID token. Can be requested by adding `id_token` to the `responseTypes`. The following scopes should be added:`iam:ds:groups`, `corpds:ds:username`, `corpds:ds:firstName`, `corpds:ds:lastName`, `corpds:ds:email`, `corpds:ds:uidNumber`, `iam:ds:explicitgroups`.",
+ "type": "string"
+ },
+ "refresh_token": {
+ "description": "IAS refresh token. This can be requested by adding `offline` to `scopes`. To be able to refresh the token, the IAS `client_id` and `client_secret` need to be added, as the same client needs to be used for refreshing as logging in.",
+ "nullable": true,
+ "type": "string"
+ }
+ },
+ "required": ["id_token"],
+ "type": "object"
+ },
+ "IASLoginTokenResponseSchema": {
+ "properties": {
+ "access_token": {
+ "description": "Access that can be used access the Superset API",
+ "type": "string"
+ },
+ "refresh_token": {
+ "description": "Refresh token that can be used to refresh the `access_token`",
+ "type": "string"
+ }
+ },
+ "required": ["access_token"],
+ "type": "object"
+ },
+ "IASProfileResponse": {
+ "properties": {
+ "client_id": {
+ "description": "The client id",
+ "type": "string"
+ },
+ "profile": {
+ "description": "The IAS profile",
+ "type": "string"
+ },
+ "scope": {
+ "description": "The scope of the client",
+ "type": "string"
+ }
+ },
+ "required": ["client_id", "profile"],
+ "type": "object"
+ },
+ "IASProfilesResponseSchema": {
+ "properties": {
+ "result": {
+ "description": "A list of all available IAS profiles",
+ "items": {
+ "$ref": "#/components/schemas/IASProfileResponse"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "IASTokenResponse": {
+ "properties": {
+ "access_token": {
+ "description": "The access token",
+ "type": "string"
+ },
+ "has_client_credentials": {
+ "description": "Are the original client credentials available or not",
+ "type": "boolean"
+ },
+ "has_refresh_token": {
+ "description": "Is there a refresh token available or not",
+ "type": "boolean"
+ },
+ "ias_profile": {
+ "description": "The IAS profile",
+ "type": "string"
+ },
+ "id_token": {
+ "description": "The id token",
+ "type": "string"
+ }
+ },
+ "required": [
+ "has_client_credentials",
+ "has_refresh_token",
+ "ias_profile",
+ "id_token"
+ ],
+ "type": "object"
+ },
+ "IASTokensResponseSchema": {
+ "properties": {
+ "result": {
+ "description": "A list of all requested tokens",
+ "items": {
+ "$ref": "#/components/schemas/IASTokenResponse"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "ImportV1Database": {
+ "properties": {
+ "allow_csv_upload": {
+ "type": "boolean"
+ },
+ "allow_ctas": {
+ "type": "boolean"
+ },
+ "allow_cvas": {
+ "type": "boolean"
+ },
+ "allow_dml": {
+ "type": "boolean"
+ },
+ "allow_run_async": {
+ "type": "boolean"
+ },
+ "cache_timeout": {
+ "nullable": true,
+ "type": "integer"
+ },
+ "database_name": {
+ "type": "string"
+ },
+ "expose_in_sqllab": {
+ "type": "boolean"
+ },
+ "external_url": {
+ "nullable": true,
+ "type": "string"
+ },
+ "extra": {
+ "$ref": "#/components/schemas/ImportV1DatabaseExtra"
+ },
+ "impersonate_user": {
+ "type": "boolean"
+ },
+ "is_managed_externally": {
+ "nullable": true,
+ "type": "boolean"
+ },
+ "password": {
+ "nullable": true,
+ "type": "string"
+ },
+ "sqlalchemy_uri": {
+ "type": "string"
+ },
+ "ssh_tunnel": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/DatabaseSSHTunnel"
+ }
+ ],
+ "nullable": true
+ },
+ "uuid": {
+ "format": "uuid",
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ }
+ },
+ "required": ["database_name", "sqlalchemy_uri", "uuid", "version"],
+ "type": "object"
+ },
+ "ImportV1DatabaseExtra": {
+ "properties": {
+ "allow_multi_catalog": {
+ "type": "boolean"
+ },
+ "allows_virtual_table_explore": {
+ "type": "boolean"
+ },
+ "cancel_query_on_windows_unload": {
+ "type": "boolean"
+ },
+ "cost_estimate_enabled": {
+ "type": "boolean"
+ },
+ "disable_data_preview": {
+ "type": "boolean"
+ },
+ "disable_drill_to_detail": {
+ "type": "boolean"
+ },
+ "engine_params": {
+ "additionalProperties": {},
+ "type": "object"
+ },
+ "metadata_cache_timeout": {
+ "additionalProperties": {
+ "type": "integer"
+ },
+ "type": "object"
+ },
+ "metadata_params": {
+ "additionalProperties": {},
+ "type": "object"
+ },
+ "schemas_allowed_for_csv_upload": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "version": {
+ "nullable": true,
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "LakehouseCatalog": {
+ "properties": {
+ "database_id": {
+ "description": "The numerical id of the database",
+ "type": "integer"
+ },
+ "database_name": {
+ "description": "The name of the database",
+ "type": "string"
+ },
+ "id": {
+ "description": "The numerical id of the catalog",
+ "type": "integer"
+ },
+ "name": {
+ "description": "The name of the catalog",
+ "type": "string"
+ },
+ "sqlalchemy_uri": {
+ "description": "The SQLAlchemy URI",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "LakehouseConnectRequestSchema": {
+ "properties": {
+ "catalogs": {
+ "description": "A list of catalogs to connect to. If empty or undefined, connect all available catalogs.",
+ "example": ["my_catalog"],
+ "items": {
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
+ },
+ "database_names": {
+ "description": "Custom catalog-database name mappings. If undefined, the default naming convention will be used",
+ "example": {
+ "my_catalog": "my_database"
+ },
+ "nullable": true,
+ "type": "object"
+ },
+ "dry_run": {
+ "description": "Should the task be executed in dry run mode. Useful for testing.",
+ "example": false,
+ "type": "boolean"
+ },
+ "engine_type": {
+ "description": "The type of the engine (only trino is currently supported)",
+ "enum": ["trino"],
+ "example": "trino",
+ "type": "string"
+ },
+ "engine_url": {
+ "description": "The URL to the engine",
+ "example": "https://myengine.corp.apple.com",
+ "type": "string"
+ },
+ "environment": {
+ "description": "Prod or Int",
+ "enum": ["int", "prod"],
+ "example": "int",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the Lakehouse (subject to change over time). If left undefined, use lakehouse id",
+ "example": "My Lakehouse",
+ "nullable": true,
+ "type": "string"
+ },
+ "superset_url": {
+ "description": "The URL of the Superset instance connecting to",
+ "example": "http://localhost:8088",
+ "type": "string"
+ }
+ },
+ "required": [
+ "engine_type",
+ "engine_url",
+ "environment",
+ "superset_url"
+ ],
+ "type": "object"
+ },
+ "LakehouseConnectResponseSchema": {
+ "properties": {
+ "task_id": {
+ "description": "The id of the connection task",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "LakehouseConnectResultResponseSchema": {
+ "properties": {
+ "existing_catalogs": {
+ "description": "A list of connected catalogs before the connect operation",
+ "items": {
+ "description": "Catalogs",
+ "items": {
+ "$ref": "#/components/schemas/LakehouseCatalog"
+ },
+ "type": "array"
+ },
+ "type": "array"
+ },
+ "lakehouse": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/LakehouseGetResponseSchema"
+ }
+ ],
+ "description": "The connected Lakehouse",
+ "nullable": true
+ },
+ "message": {
+ "description": "A message to provide additional context on what has happened",
+ "type": "string"
+ },
+ "new_catalogs": {
+ "description": "A list of newly connected catalogs after the connect operation",
+ "items": {
+ "description": "Catalogs",
+ "items": {
+ "$ref": "#/components/schemas/LakehouseCatalog"
+ },
+ "type": "array"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "The status of the task",
+ "enum": [
+ "scheduled",
+ "running",
+ "completed",
+ "failed",
+ "reconnect_failed",
+ "cancelled"
+ ],
+ "type": "string"
+ }
+ },
+ "required": ["lakehouse"],
+ "type": "object"
+ },
+ "LakehouseConnectStatusResponseSchema": {
+ "properties": {
+ "message": {
+ "description": "A message to provide additional context on what has happened",
+ "type": "string"
+ },
+ "status": {
+ "description": "The status of the task",
+ "enum": [
+ "scheduled",
+ "running",
+ "completed",
+ "failed",
+ "reconnect_failed",
+ "cancelled"
+ ],
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "LakehouseDatasetListResponseSchema": {
+ "properties": {
+ "name": {
+ "description": "The name of the dataset",
+ "type": "string"
+ },
+ "schema": {
+ "description": "The schema",
+ "nullable": true,
+ "type": "string"
+ },
+ "sql": {
+ "description": "The virtual dataset query",
+ "type": "string"
+ }
+ },
+ "required": ["name", "sql"],
+ "type": "object"
+ },
+ "LakehouseDatasetRequestSchema": {
+ "properties": {
+ "catalog": {
+ "description": "The catalog. If left empty, uses an arbitrary connected catalog.",
+ "nullable": true,
+ "type": "string"
+ },
+ "lakehouse_id": {
+ "description": "Deprecated, not used for anything",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the dataset to be created",
+ "type": "string"
+ },
+ "overwrite": {
+ "default": false,
+ "description": "Should the virtual dataset be overwritten if it already exists",
+ "type": "boolean"
+ },
+ "schema": {
+ "description": "The schema",
+ "nullable": true,
+ "type": "string"
+ },
+ "sql": {
+ "description": "The virtual dataset query",
+ "type": "string"
+ }
+ },
+ "required": ["name", "sql"],
+ "type": "object"
+ },
+ "LakehouseDatasetResponseSchema": {
+ "properties": {
+ "url": {
+ "description": "The url for exploring the virtual dataset",
+ "type": "string"
+ }
+ },
+ "required": ["url"],
+ "type": "object"
+ },
+ "LakehouseDisconnectResponseSchema": {
+ "properties": {
+ "lakehouse": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/LakehouseGetResponseSchema"
+ }
+ ],
+ "description": "A list of disconnected lakehouses"
+ }
+ },
+ "type": "object"
+ },
+ "LakehouseGetListResponseSchema": {
+ "properties": {
+ "lakehouses": {
+ "description": "A list of connected lakehouses",
+ "items": {
+ "$ref": "#/components/schemas/LakehouseGetResponseSchema"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "LakehouseGetResponseSchema": {
+ "properties": {
+ "catalogs": {
+ "description": "A list of connected catalogs",
+ "items": {
+ "description": "Catalogs",
+ "items": {
+ "$ref": "#/components/schemas/LakehouseCatalog"
+ },
+ "type": "array"
+ },
+ "type": "array"
+ },
+ "engine_url": {
+ "description": "The URL uf the engine",
+ "type": "string"
+ },
+ "id": {
+ "description": "The unique id of the Lakehouse",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "superset_url": {
+ "description": "The URL uf the Superset instance",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
"LogRestApi.get": {
"properties": {
"action": {
@@ -5883,7 +6848,7 @@
"type": "integer"
},
"user": {
- "$ref": "#/components/schemas/LogRestApi.get.User"
+ "$ref": "#/components/schemas/LogRestApi.get.AppleUser"
},
"user_id": {
"nullable": true,
@@ -5892,7 +6857,7 @@
},
"type": "object"
},
- "LogRestApi.get.User": {
+ "LogRestApi.get.AppleUser": {
"properties": {
"username": {
"maxLength": 64,
@@ -5936,7 +6901,7 @@
"type": "integer"
},
"user": {
- "$ref": "#/components/schemas/LogRestApi.get_list.User"
+ "$ref": "#/components/schemas/LogRestApi.get_list.AppleUser"
},
"user_id": {
"nullable": true,
@@ -5945,7 +6910,7 @@
},
"type": "object"
},
- "LogRestApi.get_list.User": {
+ "LogRestApi.get_list.AppleUser": {
"properties": {
"username": {
"maxLength": 64,
@@ -6344,6 +7309,9 @@
},
"RLSRestApi.get_list": {
"properties": {
+ "changed_by": {
+ "$ref": "#/components/schemas/User"
+ },
"changed_on_delta_humanized": {
"readOnly": true
},
@@ -6690,7 +7658,7 @@
},
"type": {
"description": "The recipient type, check spec for valid options",
- "enum": ["Email", "Slack"],
+ "enum": ["Email", "Slack", "SlackV2"],
"type": "string"
}
},
@@ -6699,6 +7667,12 @@
},
"ReportRecipientConfigJSON": {
"properties": {
+ "bccTarget": {
+ "type": "string"
+ },
+ "ccTarget": {
+ "type": "string"
+ },
"target": {
"type": "string"
}
@@ -6741,6 +7715,11 @@
"nullable": true,
"type": "string"
},
+ "email_subject": {
+ "maxLength": 255,
+ "nullable": true,
+ "type": "string"
+ },
"extra": {
"readOnly": true
},
@@ -6782,7 +7761,7 @@
"type": "string"
},
"owners": {
- "$ref": "#/components/schemas/ReportScheduleRestApi.get.User"
+ "$ref": "#/components/schemas/ReportScheduleRestApi.get.AppleUser"
},
"recipients": {
"$ref": "#/components/schemas/ReportScheduleRestApi.get.ReportRecipients"
@@ -6821,6 +7800,23 @@
"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": {
@@ -6882,23 +7878,6 @@
},
"type": "object"
},
- "ReportScheduleRestApi.get.User": {
- "properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
- },
- "id": {
- "type": "integer"
- },
- "last_name": {
- "maxLength": 64,
- "type": "string"
- }
- },
- "required": ["first_name", "last_name"],
- "type": "object"
- },
"ReportScheduleRestApi.get_list": {
"properties": {
"active": {
@@ -6906,7 +7885,7 @@
"type": "boolean"
},
"changed_by": {
- "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User2"
+ "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User"
},
"changed_on": {
"format": "date-time",
@@ -6921,7 +7900,7 @@
"type": "integer"
},
"created_by": {
- "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User"
+ "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User1"
},
"created_on": {
"format": "date-time",
@@ -6969,7 +7948,7 @@
"type": "string"
},
"owners": {
- "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User1"
+ "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.AppleUser"
},
"recipients": {
"$ref": "#/components/schemas/ReportScheduleRestApi.get_list.ReportRecipients"
@@ -6986,6 +7965,23 @@
"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": {
@@ -7014,23 +8010,6 @@
"type": "object"
},
"ReportScheduleRestApi.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"
- },
- "ReportScheduleRestApi.get_list.User2": {
"properties": {
"first_name": {
"maxLength": 64,
@@ -7088,6 +8067,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"
},
@@ -7127,7 +8112,7 @@
"type": "array"
},
"report_format": {
- "enum": ["PNG", "CSV", "TEXT"],
+ "enum": ["PDF", "PNG", "CSV", "TEXT"],
"type": "string"
},
"selected_tabs": {
@@ -7240,6 +8225,7 @@
"America/Cayman",
"America/Chicago",
"America/Chihuahua",
+ "America/Ciudad_Juarez",
"America/Coral_Harbour",
"America/Cordoba",
"America/Costa_Rica",
@@ -7592,8 +8578,9 @@
"Europe/Istanbul",
"Europe/Jersey",
"Europe/Kaliningrad",
- "Europe/Kyiv",
+ "Europe/Kiev",
"Europe/Kirov",
+ "Europe/Kyiv",
"Europe/Lisbon",
"Europe/Ljubljana",
"Europe/London",
@@ -7756,7 +8743,7 @@
"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"
@@ -7809,6 +8796,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"
},
@@ -7824,7 +8817,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": {
@@ -7847,7 +8840,7 @@
"type": "array"
},
"report_format": {
- "enum": ["PNG", "CSV", "TEXT"],
+ "enum": ["PDF", "PNG", "CSV", "TEXT"],
"type": "string"
},
"sql": {
@@ -7954,6 +8947,7 @@
"America/Cayman",
"America/Chicago",
"America/Chihuahua",
+ "America/Ciudad_Juarez",
"America/Coral_Harbour",
"America/Cordoba",
"America/Costa_Rica",
@@ -8306,8 +9300,9 @@
"Europe/Istanbul",
"Europe/Jersey",
"Europe/Kaliningrad",
- "Europe/Kyiv",
+ "Europe/Kiev",
"Europe/Kirov",
+ "Europe/Kyiv",
"Europe/Lisbon",
"Europe/Ljubljana",
"Europe/London",
@@ -8471,7 +9466,7 @@
"type": "string"
},
"working_timeout": {
- "description": "If an alert is staled at a working state, how long until it's state is reseted to error",
+ "description": "If an alert is staled at a working state, how long until it's state is reset to error",
"example": 3600,
"minimum": 1,
"nullable": true,
@@ -8526,13 +9521,52 @@
},
"type": "object"
},
+ "SQLLabBootstrapSchema": {
+ "properties": {
+ "active_tab": {
+ "$ref": "#/components/schemas/TabState"
+ },
+ "databases": {
+ "additionalProperties": {
+ "$ref": "#/components/schemas/ImportV1Database"
+ },
+ "type": "object"
+ },
+ "queries": {
+ "additionalProperties": {
+ "$ref": "#/components/schemas/QueryResult"
+ },
+ "type": "object"
+ },
+ "tab_state_ids": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
"SavedQueryRestApi.get": {
"properties": {
+ "catalog": {
+ "maxLength": 256,
+ "nullable": true,
+ "type": "string"
+ },
+ "changed_by": {
+ "$ref": "#/components/schemas/SavedQueryRestApi.get.User"
+ },
+ "changed_on": {
+ "format": "date-time",
+ "nullable": true,
+ "type": "string"
+ },
"changed_on_delta_humanized": {
"readOnly": true
},
"created_by": {
- "$ref": "#/components/schemas/SavedQueryRestApi.get.User"
+ "$ref": "#/components/schemas/SavedQueryRestApi.get.User1"
},
"database": {
"$ref": "#/components/schemas/SavedQueryRestApi.get.Database"
@@ -8598,13 +9632,43 @@
"required": ["first_name", "last_name"],
"type": "object"
},
+ "SavedQueryRestApi.get.User1": {
+ "properties": {
+ "first_name": {
+ "maxLength": 64,
+ "type": "string"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "last_name": {
+ "maxLength": 64,
+ "type": "string"
+ }
+ },
+ "required": ["first_name", "last_name"],
+ "type": "object"
+ },
"SavedQueryRestApi.get_list": {
"properties": {
+ "catalog": {
+ "maxLength": 256,
+ "nullable": true,
+ "type": "string"
+ },
+ "changed_by": {
+ "$ref": "#/components/schemas/SavedQueryRestApi.get_list.User"
+ },
+ "changed_on": {
+ "format": "date-time",
+ "nullable": true,
+ "type": "string"
+ },
"changed_on_delta_humanized": {
"readOnly": true
},
"created_by": {
- "$ref": "#/components/schemas/SavedQueryRestApi.get_list.User"
+ "$ref": "#/components/schemas/SavedQueryRestApi.get_list.User1"
},
"created_on": {
"format": "date-time",
@@ -8704,8 +9768,30 @@
"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"
@@ -8714,6 +9800,10 @@
"nullable": true,
"type": "string"
},
+ "extra_json": {
+ "nullable": true,
+ "type": "string"
+ },
"label": {
"maxLength": 256,
"nullable": true,
@@ -8737,6 +9827,11 @@
},
"SavedQueryRestApi.put": {
"properties": {
+ "catalog": {
+ "maxLength": 256,
+ "nullable": true,
+ "type": "string"
+ },
"db_id": {
"nullable": true,
"type": "integer"
@@ -8745,6 +9840,10 @@
"nullable": true,
"type": "string"
},
+ "extra_json": {
+ "nullable": true,
+ "type": "string"
+ },
"label": {
"maxLength": 256,
"nullable": true,
@@ -8872,6 +9971,106 @@
},
"type": "object"
},
+ "Tab": {
+ "properties": {
+ "children": {
+ "items": {
+ "$ref": "#/components/schemas/Tab"
+ },
+ "type": "array"
+ },
+ "parents": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "title": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "TabState": {
+ "properties": {
+ "active": {
+ "type": "boolean"
+ },
+ "autorun": {
+ "type": "boolean"
+ },
+ "database_id": {
+ "type": "integer"
+ },
+ "extra_json": {
+ "type": "object"
+ },
+ "hide_left_bar": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string"
+ },
+ "latest_query": {
+ "$ref": "#/components/schemas/QueryResult"
+ },
+ "query_limit": {
+ "type": "integer"
+ },
+ "saved_query": {
+ "nullable": true,
+ "type": "object"
+ },
+ "schema": {
+ "type": "string"
+ },
+ "sql": {
+ "type": "string"
+ },
+ "table_schemas": {
+ "items": {
+ "$ref": "#/components/schemas/Table"
+ },
+ "type": "array"
+ },
+ "user_id": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "Table": {
+ "properties": {
+ "database_id": {
+ "type": "integer"
+ },
+ "description": {
+ "type": "string"
+ },
+ "expanded": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "integer"
+ },
+ "schema": {
+ "type": "string"
+ },
+ "tab_state_id": {
+ "type": "integer"
+ },
+ "table": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
"TableExtraMetadataResponseSchema": {
"properties": {
"clustering": {
@@ -9042,21 +10241,24 @@
},
"type": "object"
},
- "Tag": {
+ "TabsPayloadSchema": {
"properties": {
- "id": {
- "type": "integer"
+ "all_tabs": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
},
- "name": {
- "type": "string"
- },
- "type": {
- "enum": [1, 2, 3, 4]
+ "tab_tree": {
+ "items": {
+ "$ref": "#/components/schemas/Tab"
+ },
+ "type": "array"
}
},
"type": "object"
},
- "Tag1": {
+ "Tag": {
"properties": {
"id": {
"type": "integer"
@@ -9084,16 +10286,75 @@
},
"type": "object"
},
+ "TagObject": {
+ "properties": {
+ "description": {
+ "nullable": true,
+ "type": "string"
+ },
+ "name": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "objects_to_tag": {
+ "description": "Objects to tag",
+ "items": {},
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "TagPostBulkResponseObject": {
+ "properties": {
+ "objects_skipped": {
+ "description": "Objects to tag",
+ "items": {},
+ "type": "array"
+ },
+ "objects_tagged": {
+ "description": "Objects to tag",
+ "items": {},
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "TagPostBulkResponseSchema": {
+ "properties": {
+ "result": {
+ "$ref": "#/components/schemas/TagPostBulkResponseObject"
+ }
+ },
+ "type": "object"
+ },
+ "TagPostBulkSchema": {
+ "properties": {
+ "tags": {
+ "items": {
+ "$ref": "#/components/schemas/TagObject"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
"TagRestApi.get": {
"properties": {
"changed_by": {
- "$ref": "#/components/schemas/TagRestApi.get.User1"
+ "$ref": "#/components/schemas/TagRestApi.get.User"
},
"changed_on_delta_humanized": {
"readOnly": true
},
"created_by": {
- "$ref": "#/components/schemas/TagRestApi.get.User"
+ "$ref": "#/components/schemas/TagRestApi.get.User1"
+ },
+ "created_on_delta_humanized": {
+ "readOnly": true
+ },
+ "description": {
+ "nullable": true,
+ "type": "string"
},
"id": {
"type": "integer"
@@ -9110,6 +10371,20 @@
"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,
@@ -9126,7 +10401,7 @@
"type": "string"
},
"email": {
- "maxLength": 64,
+ "maxLength": 320,
"type": "string"
},
"fail_login_count": {
@@ -9166,30 +10441,23 @@
"required": ["email", "first_name", "last_name", "username"],
"type": "object"
},
- "TagRestApi.get.User1": {
- "properties": {
- "first_name": {
- "maxLength": 64,
- "type": "string"
- },
- "last_name": {
- "maxLength": 64,
- "type": "string"
- }
- },
- "required": ["first_name", "last_name"],
- "type": "object"
- },
"TagRestApi.get_list": {
"properties": {
"changed_by": {
- "$ref": "#/components/schemas/TagRestApi.get_list.User1"
+ "$ref": "#/components/schemas/TagRestApi.get_list.User"
},
"changed_on_delta_humanized": {
"readOnly": true
},
"created_by": {
- "$ref": "#/components/schemas/TagRestApi.get_list.User"
+ "$ref": "#/components/schemas/TagRestApi.get_list.User1"
+ },
+ "created_on_delta_humanized": {
+ "readOnly": true
+ },
+ "description": {
+ "nullable": true,
+ "type": "string"
},
"id": {
"type": "integer"
@@ -9235,10 +10503,17 @@
},
"TagRestApi.post": {
"properties": {
- "tags": {
- "items": {
- "type": "string"
- },
+ "description": {
+ "nullable": true,
+ "type": "string"
+ },
+ "name": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "objects_to_tag": {
+ "description": "Objects to tag",
+ "items": {},
"type": "array"
}
},
@@ -9246,8 +10521,18 @@
},
"TagRestApi.put": {
"properties": {
- "id": {
- "type": "integer"
+ "description": {
+ "nullable": true,
+ "type": "string"
+ },
+ "name": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "objects_to_tag": {
+ "description": "Objects to tag",
+ "items": {},
+ "type": "array"
}
},
"type": "object"
@@ -9270,6 +10555,18 @@
"name": {
"type": "string"
},
+ "owners": {
+ "items": {
+ "$ref": "#/components/schemas/User1"
+ },
+ "type": "array"
+ },
+ "tags": {
+ "items": {
+ "$ref": "#/components/schemas/TagGetResponseSchema"
+ },
+ "type": "array"
+ },
"type": {
"type": "string"
},
@@ -9299,6 +10596,33 @@
"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": {
@@ -9372,6 +10696,10 @@
},
"ValidateSQLRequest": {
"properties": {
+ "catalog": {
+ "nullable": true,
+ "type": "string"
+ },
"schema": {
"nullable": true,
"type": "string"
@@ -9435,8 +10763,19 @@
"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"
}
@@ -9445,6 +10784,9 @@
},
"database_tables_query_schema": {
"properties": {
+ "catalog_name": {
+ "type": "string"
+ },
"force": {
"type": "boolean"
},
@@ -9616,6 +10958,12 @@
},
"page_size": {
"type": "integer"
+ },
+ "select_columns": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
}
},
"type": "object"
@@ -9729,6 +11077,7 @@
"paths": {
"/api/v1/advanced_data_type/convert": {
"get": {
+ "description": "Returns an AdvancedDataTypeResponse object populated with the passed in args.",
"parameters": [
{
"content": {
@@ -9759,6 +11108,9 @@
"401": {
"$ref": "#/components/responses/401"
},
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
"404": {
"$ref": "#/components/responses/404"
},
@@ -9771,13 +11123,12 @@
"jwt": []
}
],
- "summary": "Returns a AdvancedDataTypeResponse object populated with the passed in args.",
+ "summary": "Return an AdvancedDataTypeResponse",
"tags": ["Advanced Data Type"]
}
},
"/api/v1/advanced_data_type/types": {
"get": {
- "description": "Returns a list of available advanced data types.",
"responses": {
"200": {
"content": {
@@ -9800,6 +11151,9 @@
"401": {
"$ref": "#/components/responses/401"
},
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
"404": {
"$ref": "#/components/responses/404"
},
@@ -9812,12 +11166,12 @@
"jwt": []
}
],
+ "summary": "Return a list of available advanced data types",
"tags": ["Advanced Data Type"]
}
},
"/api/v1/annotation_layer/": {
"delete": {
- "description": "Deletes multiple annotation layers in a bulk operation.",
"parameters": [
{
"content": {
@@ -9865,10 +11219,11 @@
"jwt": []
}
],
+ "summary": "Delete multiple annotation layers in a bulk operation",
"tags": ["Annotation Layers"]
},
"get": {
- "description": "Get a list of Annotation layers, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
+ "description": "Gets a list of annotation layers, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
@@ -9970,10 +11325,10 @@
"jwt": []
}
],
+ "summary": "Get a list of annotation layers",
"tags": ["Annotation Layers"]
},
"post": {
- "description": "Create an Annotation layer",
"requestBody": {
"content": {
"application/json": {
@@ -10022,6 +11377,7 @@
"jwt": []
}
],
+ "summary": "Create an annotation layer",
"tags": ["Annotation Layers"]
}
},
@@ -10106,6 +11462,7 @@
"jwt": []
}
],
+ "summary": "Get metadata information about this API resource",
"tags": ["Annotation Layers"]
}
},
@@ -10161,12 +11518,12 @@
"jwt": []
}
],
+ "summary": "Get related fields data",
"tags": ["Annotation Layers"]
}
},
"/api/v1/annotation_layer/{pk}": {
"delete": {
- "description": "Delete Annotation layer",
"parameters": [
{
"description": "The annotation layer pk for this annotation",
@@ -10209,10 +11566,11 @@
"jwt": []
}
],
+ "summary": "Delete annotation layer",
"tags": ["Annotation Layers"]
},
"get": {
- "description": "Get an Annotation layer",
+ "description": "Get an item model",
"parameters": [
{
"in": "path",
@@ -10307,10 +11665,10 @@
"jwt": []
}
],
+ "summary": "Get an annotation layer",
"tags": ["Annotation Layers"]
},
"put": {
- "description": "Update an Annotation layer",
"parameters": [
{
"description": "The annotation layer pk for this annotation",
@@ -10370,12 +11728,12 @@
"jwt": []
}
],
+ "summary": "Update an annotation layer",
"tags": ["Annotation Layers"]
}
},
"/api/v1/annotation_layer/{pk}/annotation/": {
"delete": {
- "description": "Deletes multiple annotation in a bulk operation.",
"parameters": [
{
"description": "The annotation layer pk for this annotation",
@@ -10432,10 +11790,11 @@
"jwt": []
}
],
+ "summary": "Bulk delete annotation layers",
"tags": ["Annotation Layers"]
},
"get": {
- "description": "Get a list of Annotation layers, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
+ "description": "Gets a list of annotation layers, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"description": "The annotation layer id for this annotation",
@@ -10507,10 +11866,10 @@
"jwt": []
}
],
+ "summary": "Get a list of annotation layers",
"tags": ["Annotation Layers"]
},
"post": {
- "description": "Create an Annotation layer",
"parameters": [
{
"description": "The annotation layer pk for this annotation",
@@ -10570,12 +11929,12 @@
"jwt": []
}
],
+ "summary": "Create an annotation layer",
"tags": ["Annotation Layers"]
}
},
"/api/v1/annotation_layer/{pk}/annotation/{annotation_id}": {
"delete": {
- "description": "Delete Annotation layer",
"parameters": [
{
"description": "The annotation layer pk for this annotation",
@@ -10627,10 +11986,10 @@
"jwt": []
}
],
+ "summary": "Delete annotation layer",
"tags": ["Annotation Layers"]
},
"get": {
- "description": "Get an Annotation layer",
"parameters": [
{
"description": "The annotation layer pk for this annotation",
@@ -10703,10 +12062,10 @@
"jwt": []
}
],
+ "summary": "Get an annotation layer",
"tags": ["Annotation Layers"]
},
"put": {
- "description": "Update an Annotation layer",
"parameters": [
{
"description": "The annotation layer pk for this annotation",
@@ -10775,12 +12134,44 @@
"jwt": []
}
],
+ "summary": "Update an annotation layer",
"tags": ["Annotation Layers"]
}
},
+ "/api/v1/apple/health": {
+ "get": {
+ "description": "Endpoint for checking the health status of the metastore and cache",
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AppleHealthResponseSchema"
+ }
+ }
+ },
+ "description": "The"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "summary": "Get the health status of the metastore and cache",
+ "tags": ["Apple"]
+ }
+ },
"/api/v1/assets/export/": {
"get": {
- "description": "Returns a ZIP file with all the Superset assets (databases, datasets, charts, dashboards, saved queries) as YAML files.",
+ "description": "Gets a ZIP file with all the Superset assets (databases, datasets, charts, dashboards, saved queries) as YAML files.",
"responses": {
"200": {
"content": {
@@ -10808,6 +12199,7 @@
"jwt": []
}
],
+ "summary": "Export all assets",
"tags": ["Import/export"]
}
},
@@ -10880,6 +12272,7 @@
"jwt": []
}
],
+ "summary": "Import multiple assets",
"tags": ["Import/export"]
}
},
@@ -10953,12 +12346,12 @@
"jwt": []
}
],
+ "summary": "Read off of the Redis events stream",
"tags": ["AsyncEventsRestApi"]
}
},
"/api/v1/available_domains/": {
"get": {
- "description": "Get all available domains",
"responses": {
"200": {
"content": {
@@ -10987,12 +12380,13 @@
"jwt": []
}
],
+ "summary": "Get all available domains",
"tags": ["Available Domains"]
}
},
"/api/v1/cachekey/invalidate": {
"post": {
- "description": "Takes a list of datasources, finds the associated cache records and invalidates them and removes the database records",
+ "description": "Takes a list of datasources, finds and invalidates the associated cache records and removes the database records.",
"requestBody": {
"content": {
"application/json": {
@@ -11020,12 +12414,12 @@
"jwt": []
}
],
+ "summary": "Invalidate cache records and remove the database records",
"tags": ["CacheRestApi"]
}
},
"/api/v1/chart/": {
"delete": {
- "description": "Deletes multiple Charts in a bulk operation.",
"parameters": [
{
"content": {
@@ -11076,10 +12470,11 @@
"jwt": []
}
],
+ "summary": "Bulk delete charts",
"tags": ["Charts"]
},
"get": {
- "description": "Get a list of charts, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
+ "description": "Gets a list of charts, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
@@ -11181,10 +12576,10 @@
"jwt": []
}
],
+ "summary": "Get a list of charts",
"tags": ["Charts"]
},
"post": {
- "description": "Create a new Chart.",
"requestBody": {
"content": {
"application/json": {
@@ -11236,12 +12631,13 @@
"jwt": []
}
],
+ "summary": "Create a new chart",
"tags": ["Charts"]
}
},
"/api/v1/chart/_info": {
"get": {
- "description": "Several metadata information about chart API endpoints.",
+ "description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
@@ -11320,6 +12716,7 @@
"jwt": []
}
],
+ "summary": "Get metadata information about this API resource",
"tags": ["Charts"]
}
},
@@ -11373,6 +12770,7 @@
"jwt": []
}
],
+ "summary": "Return payload data response for the given query",
"tags": ["Charts"]
}
},
@@ -11421,12 +12819,12 @@
"jwt": []
}
],
+ "summary": "Return payload data response for the given query",
"tags": ["Charts"]
}
},
"/api/v1/chart/export/": {
"get": {
- "description": "Exports multiple charts and downloads them as YAML files",
"parameters": [
{
"content": {
@@ -11470,12 +12868,12 @@
"jwt": []
}
],
+ "summary": "Download multiple charts as YAML files",
"tags": ["Charts"]
}
},
"/api/v1/chart/favorite_status/": {
"get": {
- "description": "Check favorited dashboards for current user",
"parameters": [
{
"content": {
@@ -11518,6 +12916,7 @@
"jwt": []
}
],
+ "summary": "Check favorited charts for current user",
"tags": ["Charts"]
}
},
@@ -11594,6 +12993,7 @@
"jwt": []
}
],
+ "summary": "Import chart(s) with associated datasets and databases",
"tags": ["Charts"]
}
},
@@ -11650,6 +13050,7 @@
"jwt": []
}
],
+ "summary": "Get related fields data",
"tags": ["Charts"]
}
},
@@ -11693,13 +13094,12 @@
"jwt": []
}
],
- "summary": "Warms up the cache for the chart",
+ "summary": "Warm up the cache for the chart",
"tags": ["Charts"]
}
},
"/api/v1/chart/{pk}": {
"delete": {
- "description": "Deletes a Chart.",
"parameters": [
{
"in": "path",
@@ -11747,10 +13147,11 @@
"jwt": []
}
],
+ "summary": "Delete a chart",
"tags": ["Charts"]
},
"get": {
- "description": "Get a chart detail information.",
+ "description": "Get an item model",
"parameters": [
{
"in": "path",
@@ -11845,10 +13246,10 @@
"jwt": []
}
],
+ "summary": "Get a chart detail information",
"tags": ["Charts"]
},
"put": {
- "description": "Changes a Chart.",
"parameters": [
{
"in": "path",
@@ -11913,12 +13314,12 @@
"jwt": []
}
],
+ "summary": "Update a chart",
"tags": ["Charts"]
}
},
"/api/v1/chart/{pk}/cache_screenshot/": {
"get": {
- "description": "Compute and cache a screenshot.",
"parameters": [
{
"in": "path",
@@ -11969,6 +13370,7 @@
"jwt": []
}
],
+ "summary": "Compute and cache a screenshot",
"tags": ["Charts"]
}
},
@@ -12046,12 +13448,12 @@
"jwt": []
}
],
+ "summary": "Return payload data response for a chart",
"tags": ["Charts"]
}
},
"/api/v1/chart/{pk}/favorites/": {
"delete": {
- "description": "Remove the chart from the user favorite list",
"parameters": [
{
"in": "path",
@@ -12093,10 +13495,10 @@
"jwt": []
}
],
+ "summary": "Remove the chart from the user favorite list",
"tags": ["Charts"]
},
"post": {
- "description": "Marks the chart as favorite for the current user",
"parameters": [
{
"in": "path",
@@ -12138,12 +13540,12 @@
"jwt": []
}
],
+ "summary": "Mark the chart as favorite for the current user",
"tags": ["Charts"]
}
},
"/api/v1/chart/{pk}/screenshot/{digest}/": {
"get": {
- "description": "Get a computed screenshot from cache.",
"parameters": [
{
"in": "path",
@@ -12192,6 +13594,7 @@
"jwt": []
}
],
+ "summary": "Get a computed screenshot from cache",
"tags": ["Charts"]
}
},
@@ -12249,12 +13652,12 @@
"jwt": []
}
],
+ "summary": "Get chart thumbnail",
"tags": ["Charts"]
}
},
"/api/v1/css_template/": {
"delete": {
- "description": "Deletes multiple css templates in a bulk operation.",
"parameters": [
{
"content": {
@@ -12302,10 +13705,11 @@
"jwt": []
}
],
+ "summary": "Bulk delete CSS templates",
"tags": ["CSS Templates"]
},
"get": {
- "description": "Get a list of CSS templates, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
+ "description": "Gets a list of CSS templates, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
@@ -12407,10 +13811,10 @@
"jwt": []
}
],
+ "summary": "Get a list of CSS templates",
"tags": ["CSS Templates"]
},
"post": {
- "description": "Create a CSS template",
"requestBody": {
"content": {
"application/json": {
@@ -12459,6 +13863,7 @@
"jwt": []
}
],
+ "summary": "Create a CSS template",
"tags": ["CSS Templates"]
}
},
@@ -12543,6 +13948,7 @@
"jwt": []
}
],
+ "summary": "Get metadata information about this API resource",
"tags": ["CSS Templates"]
}
},
@@ -12598,12 +14004,12 @@
"jwt": []
}
],
+ "summary": "Get related fields data",
"tags": ["CSS Templates"]
}
},
"/api/v1/css_template/{pk}": {
"delete": {
- "description": "Delete CSS template",
"parameters": [
{
"in": "path",
@@ -12645,10 +14051,11 @@
"jwt": []
}
],
+ "summary": "Delete a CSS template",
"tags": ["CSS Templates"]
},
"get": {
- "description": "Get a CSS template",
+ "description": "Get an item model",
"parameters": [
{
"in": "path",
@@ -12743,10 +14150,10 @@
"jwt": []
}
],
+ "summary": "Get a CSS template",
"tags": ["CSS Templates"]
},
"put": {
- "description": "Update a CSS template",
"parameters": [
{
"in": "path",
@@ -12805,12 +14212,12 @@
"jwt": []
}
],
+ "summary": "Update a CSS template",
"tags": ["CSS Templates"]
}
},
"/api/v1/dashboard/": {
"delete": {
- "description": "Deletes multiple Dashboards in a bulk operation.",
"parameters": [
{
"content": {
@@ -12861,10 +14268,11 @@
"jwt": []
}
],
+ "summary": "Bulk delete dashboards",
"tags": ["Dashboards"]
},
"get": {
- "description": "Get a list of dashboards, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
+ "description": "Gets a list of dashboards, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
@@ -12966,10 +14374,10 @@
"jwt": []
}
],
+ "summary": "Get a list of dashboards",
"tags": ["Dashboards"]
},
"post": {
- "description": "Create a new Dashboard.",
"requestBody": {
"content": {
"application/json": {
@@ -13018,12 +14426,13 @@
"jwt": []
}
],
+ "summary": "Create a new dashboard",
"tags": ["Dashboards"]
}
},
"/api/v1/dashboard/_info": {
"get": {
- "description": "Several metadata information about dashboard API endpoints.",
+ "description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
@@ -13102,12 +14511,12 @@
"jwt": []
}
],
+ "summary": "Get metadata information about this API resource",
"tags": ["Dashboards"]
}
},
"/api/v1/dashboard/export/": {
"get": {
- "description": "Exports multiple Dashboards and downloads them as YAML files.",
"parameters": [
{
"content": {
@@ -13153,12 +14562,12 @@
"jwt": []
}
],
+ "summary": "Download multiple dashboards as YAML files",
"tags": ["Dashboards"]
}
},
"/api/v1/dashboard/favorite_status/": {
"get": {
- "description": "Check favorited dashboards for current user",
"parameters": [
{
"content": {
@@ -13201,6 +14610,7 @@
"jwt": []
}
],
+ "summary": "Check favorited dashboards for current user",
"tags": ["Dashboards"]
}
},
@@ -13277,12 +14687,12 @@
"jwt": []
}
],
+ "summary": "Import dashboard(s) with associated charts/datasets/databases",
"tags": ["Dashboards"]
}
},
"/api/v1/dashboard/permalink/{key}": {
"get": {
- "description": "Retrives dashboard state associated with a permanent link.",
"parameters": [
{
"in": "path",
@@ -13331,6 +14741,7 @@
"jwt": []
}
],
+ "summary": "Get dashboard's permanent link state",
"tags": ["Dashboard Permanent Link"]
}
},
@@ -13387,12 +14798,12 @@
"jwt": []
}
],
+ "summary": "Get related fields data",
"tags": ["Dashboards"]
}
},
"/api/v1/dashboard/{id_or_slug}": {
"get": {
- "description": "Get a dashboard detail information.",
"parameters": [
{
"description": "Either the id of the dashboard, or its slug",
@@ -13438,12 +14849,12 @@
"jwt": []
}
],
+ "summary": "Get a dashboard detail information",
"tags": ["Dashboards"]
}
},
"/api/v1/dashboard/{id_or_slug}/charts": {
"get": {
- "description": "Get the chart definitions for a given dashboard",
"parameters": [
{
"in": "path",
@@ -13491,6 +14902,7 @@
"jwt": []
}
],
+ "summary": "Get a dashboard's chart definitions.",
"tags": ["Dashboards"]
}
},
@@ -13557,7 +14969,7 @@
"jwt": []
}
],
- "summary": "Makes a copy of an existing dashboard",
+ "summary": "Create a copy of an existing dashboard",
"tags": ["Dashboards"]
}
},
@@ -13612,12 +15024,12 @@
"jwt": []
}
],
+ "summary": "Get dashboard's datasets",
"tags": ["Dashboards"]
}
},
"/api/v1/dashboard/{id_or_slug}/embedded": {
"delete": {
- "description": "Removes a dashboard's embedded configuration.",
"parameters": [
{
"description": "The dashboard id or slug",
@@ -13657,10 +15069,10 @@
"jwt": []
}
],
+ "summary": "Delete a dashboard's embedded configuration",
"tags": ["Dashboards"]
},
"get": {
- "description": "Returns the dashboard's embedded configuration",
"parameters": [
{
"description": "The dashboard id or slug",
@@ -13700,10 +15112,10 @@
"jwt": []
}
],
+ "summary": "Get the dashboard's embedded configuration",
"tags": ["Dashboards"]
},
"post": {
- "description": "Sets a dashboard's embedded configuration.",
"parameters": [
{
"description": "The dashboard id or slug",
@@ -13754,6 +15166,7 @@
"jwt": []
}
],
+ "summary": "Set a dashboard's embedded configuration",
"tags": ["Dashboards"]
},
"put": {
@@ -13811,9 +15224,63 @@
"tags": ["Dashboards"]
}
},
+ "/api/v1/dashboard/{id_or_slug}/tabs": {
+ "get": {
+ "description": "Returns a list of a dashboard's tabs and dashboard's nested tree structure for associated tabs.",
+ "parameters": [
+ {
+ "description": "Either the id of the dashboard, or its slug",
+ "in": "path",
+ "name": "id_or_slug",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "items": {
+ "$ref": "#/components/schemas/TabsPayloadSchema"
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Dashboard tabs"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get dashboard's tabs",
+ "tags": ["Dashboards"]
+ }
+ },
"/api/v1/dashboard/{pk}": {
"delete": {
- "description": "Deletes a Dashboard.",
"parameters": [
{
"in": "path",
@@ -13861,10 +15328,10 @@
"jwt": []
}
],
+ "summary": "Delete a dashboard",
"tags": ["Dashboards"]
},
"put": {
- "description": "Changes a Dashboard.",
"parameters": [
{
"in": "path",
@@ -13932,12 +15399,66 @@
"jwt": []
}
],
+ "summary": "Update a dashboard",
+ "tags": ["Dashboards"]
+ }
+ },
+ "/api/v1/dashboard/{pk}/cache_dashboard_screenshot/": {
+ "post": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DashboardScreenshotPostSchema"
+ }
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DashboardCacheScreenshotResponseSchema"
+ }
+ }
+ },
+ "description": "Dashboard async result"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Compute and cache a screenshot",
"tags": ["Dashboards"]
}
},
"/api/v1/dashboard/{pk}/favorites/": {
"delete": {
- "description": "Remove the dashboard from the user favorite list",
"parameters": [
{
"in": "path",
@@ -13979,10 +15500,10 @@
"jwt": []
}
],
+ "summary": "Remove the dashboard from the user favorite list",
"tags": ["Dashboards"]
},
"post": {
- "description": "Marks the dashboard as favorite for the current user",
"parameters": [
{
"in": "path",
@@ -14024,12 +15545,12 @@
"jwt": []
}
],
+ "summary": "Mark the dashboard as favorite for the current user",
"tags": ["Dashboards"]
}
},
"/api/v1/dashboard/{pk}/filter_state": {
"post": {
- "description": "Stores a new value.",
"parameters": [
{
"in": "path",
@@ -14092,12 +15613,12 @@
"jwt": []
}
],
+ "summary": "Create a dashboard's filter state",
"tags": ["Dashboard Filter State"]
}
},
"/api/v1/dashboard/{pk}/filter_state/{key}": {
"delete": {
- "description": "Deletes a value.",
"parameters": [
{
"in": "path",
@@ -14155,10 +15676,10 @@
"jwt": []
}
],
+ "summary": "Delete a dashboard's filter state value",
"tags": ["Dashboard Filter State"]
},
"get": {
- "description": "Retrives a value.",
"parameters": [
{
"in": "path",
@@ -14215,10 +15736,10 @@
"jwt": []
}
],
+ "summary": "Get a dashboard's filter state value",
"tags": ["Dashboard Filter State"]
},
"put": {
- "description": "Updates an existing value.",
"parameters": [
{
"in": "path",
@@ -14292,12 +15813,79 @@
"jwt": []
}
],
+ "summary": "Update a dashboard's filter state value",
"tags": ["Dashboard Filter State"]
}
},
+ "/api/v1/dashboard/{pk}/filters": {
+ "put": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DashboardNativeFiltersConfigUpdateSchema"
+ }
+ }
+ },
+ "description": "Native filters configuration",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "type": "array"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Dashboard native filters updated"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Update native filters configuration for a dashboard.",
+ "tags": ["Dashboards"]
+ }
+ },
"/api/v1/dashboard/{pk}/permalink": {
"post": {
- "description": "Stores a new permanent link.",
"parameters": [
{
"in": "path",
@@ -14357,12 +15945,67 @@
"jwt": []
}
],
+ "summary": "Create a new dashboard's permanent link",
"tags": ["Dashboard Permanent Link"]
}
},
+ "/api/v1/dashboard/{pk}/screenshot/{digest}/": {
+ "get": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "in": "path",
+ "name": "digest",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "image/*": {
+ "schema": {
+ "format": "binary",
+ "type": "string"
+ }
+ }
+ },
+ "description": "Dashboard thumbnail image"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get a computed screenshot from cache",
+ "tags": ["Dashboards"]
+ }
+ },
"/api/v1/dashboard/{pk}/thumbnail/{digest}/": {
"get": {
- "description": "Compute async or get already computed dashboard thumbnail from cache.",
+ "description": "Computes async or get already computed dashboard thumbnail from cache.",
"parameters": [
{
"in": "path",
@@ -14441,12 +16084,13 @@
"jwt": []
}
],
+ "summary": "Get dashboard's thumbnail",
"tags": ["Dashboards"]
}
},
"/api/v1/database/": {
"get": {
- "description": "Get a list of models",
+ "description": "Gets a list of databases, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
@@ -14548,10 +16192,10 @@
"jwt": []
}
],
+ "summary": "Get a list of databases",
"tags": ["Database"]
},
"post": {
- "description": "Create a new Database.",
"requestBody": {
"content": {
"application/json": {
@@ -14600,6 +16244,7 @@
"jwt": []
}
],
+ "summary": "Create a new database",
"tags": ["Database"]
}
},
@@ -14684,12 +16329,12 @@
"jwt": []
}
],
+ "summary": "Get metadata information about this API resource",
"tags": ["Database"]
}
},
"/api/v1/database/available/": {
"get": {
- "description": "Get names of databases currently available",
"responses": {
"200": {
"content": {
@@ -14763,12 +16408,162 @@
"jwt": []
}
],
+ "summary": "Get names of databases currently available",
+ "tags": ["Database"]
+ }
+ },
+ "/api/v1/database/columnar_metadata/": {
+ "post": {
+ "requestBody": {
+ "content": {
+ "multipart/form-data": {
+ "schema": {
+ "$ref": "#/components/schemas/ColumnarMetadataUploadFilePostSchema"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "$ref": "#/components/schemas/UploadFileMetadata"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Columnar upload response"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Upload a Columnar file and returns file metadata",
+ "tags": ["Database"]
+ }
+ },
+ "/api/v1/database/csv_metadata/": {
+ "post": {
+ "requestBody": {
+ "content": {
+ "multipart/form-data": {
+ "schema": {
+ "$ref": "#/components/schemas/CSVMetadataUploadFilePostSchema"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "$ref": "#/components/schemas/UploadFileMetadata"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Columnar upload response"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Upload an CSV file and returns file metadata",
+ "tags": ["Database"]
+ }
+ },
+ "/api/v1/database/excel_metadata/": {
+ "post": {
+ "requestBody": {
+ "content": {
+ "multipart/form-data": {
+ "schema": {
+ "$ref": "#/components/schemas/ExcelMetadataUploadFilePostSchema"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "result": {
+ "$ref": "#/components/schemas/UploadFileMetadata"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Columnar upload response"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Upload an Excel file and returns file metadata",
"tags": ["Database"]
}
},
"/api/v1/database/export/": {
"get": {
- "description": "Download database(s) and associated dataset(s) as a zip file",
"parameters": [
{
"content": {
@@ -14809,6 +16604,7 @@
"jwt": []
}
],
+ "summary": "Download database(s) and associated dataset(s) as a zip file",
"tags": ["Database"]
}
},
@@ -14885,12 +16681,131 @@
"jwt": []
}
],
+ "summary": "Import database(s) with associated datasets",
+ "tags": ["Database"]
+ }
+ },
+ "/api/v1/database/oauth2/": {
+ "get": {
+ "description": "-> Receive and store personal access tokens from OAuth for user-level authorization",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "state",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "code",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "scope",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "in": "query",
+ "name": "error",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "text/html": {
+ "schema": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "A dummy self-closing HTML page"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Receive personal access tokens from OAuth2",
+ "tags": ["Database"]
+ }
+ },
+ "/api/v1/database/related/{column_name}": {
+ "get": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "column_name",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/get_related_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RelatedResponseSchema"
+ }
+ }
+ },
+ "description": "Related column data"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get related fields data",
"tags": ["Database"]
}
},
"/api/v1/database/test_connection/": {
"post": {
- "description": "Tests a database connection",
"requestBody": {
"content": {
"application/json": {
@@ -14933,12 +16848,12 @@
"jwt": []
}
],
+ "summary": "Test a database connection",
"tags": ["Database"]
}
},
"/api/v1/database/validate_parameters/": {
"post": {
- "description": "Validates parameters used to connect to a database",
"requestBody": {
"content": {
"application/json": {
@@ -14981,12 +16896,12 @@
"jwt": []
}
],
+ "summary": "Validate database connection parameters",
"tags": ["Database"]
}
},
"/api/v1/database/{pk}": {
"delete": {
- "description": "Deletes a Database.",
"parameters": [
{
"in": "path",
@@ -15034,10 +16949,10 @@
"jwt": []
}
],
+ "summary": "Delete a database",
"tags": ["Database"]
},
"get": {
- "description": "Get a database",
"parameters": [
{
"description": "The database id",
@@ -15078,10 +16993,10 @@
"jwt": []
}
],
+ "summary": "Get a database",
"tags": ["Database"]
},
"put": {
- "description": "Changes a Database.",
"parameters": [
{
"in": "path",
@@ -15146,6 +17061,127 @@
"jwt": []
}
],
+ "summary": "Change a database",
+ "tags": ["Database"]
+ }
+ },
+ "/api/v1/database/{pk}/catalogs/": {
+ "get": {
+ "parameters": [
+ {
+ "description": "The database id",
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/database_catalogs_query_schema"
+ }
+ }
+ },
+ "in": "query",
+ "name": "q"
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CatalogsResponseSchema"
+ }
+ }
+ },
+ "description": "A List of all catalogs from the database"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get all catalogs from a database",
+ "tags": ["Database"]
+ }
+ },
+ "/api/v1/database/{pk}/columnar_upload/": {
+ "post": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "multipart/form-data": {
+ "schema": {
+ "$ref": "#/components/schemas/ColumnarUploadPostSchema"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Columnar upload response"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Upload a Columnar file to a database table",
"tags": ["Database"]
}
},
@@ -15195,9 +17231,134 @@
"tags": ["Database"]
}
},
+ "/api/v1/database/{pk}/csv_upload/": {
+ "post": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "multipart/form-data": {
+ "schema": {
+ "$ref": "#/components/schemas/CSVUploadPostSchema"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "CSV upload response"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Upload a CSV file to a database table",
+ "tags": ["Database"]
+ }
+ },
+ "/api/v1/database/{pk}/excel_upload/": {
+ "post": {
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "multipart/form-data": {
+ "schema": {
+ "$ref": "#/components/schemas/ExcelUploadPostSchema"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Excel upload response"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Upload an Excel file to a database table",
+ "tags": ["Database"]
+ }
+ },
"/api/v1/database/{pk}/function_names/": {
"get": {
- "description": "Get function names supported by a database",
"parameters": [
{
"in": "path",
@@ -15234,12 +17395,12 @@
"jwt": []
}
],
+ "summary": "Get function names supported by a database",
"tags": ["Database"]
}
},
"/api/v1/database/{pk}/related_objects/": {
"get": {
- "description": "Get charts and dashboards count associated to a database",
"parameters": [
{
"in": "path",
@@ -15276,12 +17437,12 @@
"jwt": []
}
],
+ "summary": "Get charts and dashboards count associated to a database",
"tags": ["Database"]
}
},
"/api/v1/database/{pk}/schemas/": {
"get": {
- "description": "Get all schemas from a database",
"parameters": [
{
"description": "The database id",
@@ -15333,6 +17494,7 @@
"jwt": []
}
],
+ "summary": "Get all schemas from a database",
"tags": ["Database"]
}
},
@@ -15380,7 +17542,6 @@
},
"/api/v1/database/{pk}/select_star/{table_name}/": {
"get": {
- "description": "Get database select star for table",
"parameters": [
{
"description": "The database id",
@@ -15442,12 +17603,12 @@
"jwt": []
}
],
+ "summary": "Get database select star for table",
"tags": ["Database"]
}
},
"/api/v1/database/{pk}/select_star/{table_name}/{schema_name}/": {
"get": {
- "description": "Get database select star for table",
"parameters": [
{
"description": "The database id",
@@ -15509,12 +17670,12 @@
"jwt": []
}
],
+ "summary": "Get database select star for table",
"tags": ["Database"]
}
},
"/api/v1/database/{pk}/ssh_tunnel/": {
"delete": {
- "description": "Deletes a SSH Tunnel.",
"parameters": [
{
"in": "path",
@@ -15562,12 +17723,12 @@
"jwt": []
}
],
+ "summary": "Delete a SSH tunnel",
"tags": ["Database"]
}
},
"/api/v1/database/{pk}/table/{table_name}/{schema_name}/": {
"get": {
- "description": "Get database table metadata",
"parameters": [
{
"description": "The database id",
@@ -15629,12 +17790,13 @@
"jwt": []
}
],
+ "summary": "Get database table metadata",
"tags": ["Database"]
}
},
"/api/v1/database/{pk}/table_extra/{table_name}/{schema_name}/": {
"get": {
- "description": "Response depends on each DB engine spec normally focused on partitions",
+ "description": "Response depends on each DB engine spec normally focused on partitions.",
"parameters": [
{
"description": "The database id",
@@ -15700,6 +17862,144 @@
"tags": ["Database"]
}
},
+ "/api/v1/database/{pk}/table_metadata/": {
+ "get": {
+ "description": "Metadata associated with the table (columns, indexes, etc.)",
+ "parameters": [
+ {
+ "description": "The database id",
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "description": "Table name",
+ "in": "query",
+ "name": "table",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Optional table schema, if not passed default schema will be used",
+ "in": "query",
+ "name": "schema",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Optional table catalog, if not passed default catalog will be used",
+ "in": "query",
+ "name": "catalog",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TableExtraMetadataResponseSchema"
+ }
+ }
+ },
+ "description": "Table metadata information"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get table metadata",
+ "tags": ["Database"]
+ }
+ },
+ "/api/v1/database/{pk}/table_metadata/extra/": {
+ "get": {
+ "description": "Extra metadata associated with the table (partitions, description, etc.)",
+ "parameters": [
+ {
+ "description": "The database id",
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "integer"
+ }
+ },
+ {
+ "description": "Table name",
+ "in": "query",
+ "name": "name",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Optional table schema, if not passed the schema configured in the database will be used",
+ "in": "query",
+ "name": "schema",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Optional table catalog, if not passed the catalog configured in the database will be used",
+ "in": "query",
+ "name": "catalog",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TableExtraMetadataResponseSchema"
+ }
+ }
+ },
+ "description": "Table extra metadata information"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get table extra metadata",
+ "tags": ["Database"]
+ }
+ },
"/api/v1/database/{pk}/tables/": {
"get": {
"parameters": [
@@ -15774,7 +18074,7 @@
},
"/api/v1/database/{pk}/validate_sql/": {
"post": {
- "description": "Validates arbitrary SQL.",
+ "description": "Validates that arbitrary SQL is acceptable for the given database.",
"parameters": [
{
"in": "path",
@@ -15834,13 +18134,12 @@
"jwt": []
}
],
- "summary": "Validates that arbitrary sql is acceptable for the given database",
+ "summary": "Validate arbitrary SQL",
"tags": ["Database"]
}
},
"/api/v1/dataset/": {
"delete": {
- "description": "Deletes multiple Datasets in a bulk operation.",
"parameters": [
{
"content": {
@@ -15894,10 +18193,11 @@
"jwt": []
}
],
+ "summary": "Bulk delete datasets",
"tags": ["Datasets"]
},
"get": {
- "description": "Get a list of models",
+ "description": "Gets a list of datasets, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
@@ -15999,10 +18299,10 @@
"jwt": []
}
],
+ "summary": "Get a list of datasets",
"tags": ["Datasets"]
},
"post": {
- "description": "Create a new Dataset",
"requestBody": {
"content": {
"application/json": {
@@ -16051,6 +18351,7 @@
"jwt": []
}
],
+ "summary": "Create a new dataset",
"tags": ["Datasets"]
}
},
@@ -16135,6 +18436,7 @@
"jwt": []
}
],
+ "summary": "Get metadata information about this API resource",
"tags": ["Datasets"]
}
},
@@ -16190,12 +18492,12 @@
"jwt": []
}
],
+ "summary": "Get distinct values from field data",
"tags": ["Datasets"]
}
},
"/api/v1/dataset/duplicate": {
"post": {
- "description": "Duplicates a Dataset",
"requestBody": {
"content": {
"application/json": {
@@ -16250,12 +18552,12 @@
"jwt": []
}
],
+ "summary": "Duplicate a dataset",
"tags": ["Datasets"]
}
},
"/api/v1/dataset/export/": {
"get": {
- "description": "Exports multiple datasets and downloads them as YAML files",
"parameters": [
{
"content": {
@@ -16298,6 +18600,7 @@
"jwt": []
}
],
+ "summary": "Download multiple datasets as YAML files",
"tags": ["Datasets"]
}
},
@@ -16437,6 +18740,7 @@
"jwt": []
}
],
+ "summary": "Import dataset(s) with associated databases",
"tags": ["Datasets"]
}
},
@@ -16492,6 +18796,7 @@
"jwt": []
}
],
+ "summary": "Get related fields data",
"tags": ["Datasets"]
}
},
@@ -16535,13 +18840,12 @@
"jwt": []
}
],
- "summary": "Warms up the cache for each chart powered by the given table",
+ "summary": "Warm up the cache for each chart powered by the given table",
"tags": ["Datasets"]
}
},
"/api/v1/dataset/{pk}": {
"delete": {
- "description": "Deletes a Dataset",
"parameters": [
{
"in": "path",
@@ -16589,12 +18893,14 @@
"jwt": []
}
],
+ "summary": "Delete a dataset",
"tags": ["Datasets"]
},
"get": {
- "description": "Get an item model",
+ "description": "Get a dataset by ID",
"parameters": [
{
+ "description": "The dataset ID",
"in": "path",
"name": "pk",
"required": true,
@@ -16612,6 +18918,14 @@
},
"in": "query",
"name": "q"
+ },
+ {
+ "description": "Should Jinja macros from sql, metrics and columns be rendered and included in the response",
+ "in": "query",
+ "name": "include_rendered_sql",
+ "schema": {
+ "type": "boolean"
+ }
}
],
"responses": {
@@ -16620,51 +18934,19 @@
"application/json": {
"schema": {
"properties": {
- "description_columns": {
- "properties": {
- "column_name": {
- "description": "The description for the column name. Will be translated by babel",
- "example": "A Nice description for the column",
- "type": "string"
- }
- },
- "type": "object"
- },
"id": {
"description": "The item id",
"type": "string"
},
- "label_columns": {
- "properties": {
- "column_name": {
- "description": "The label for the column name. Will be translated by babel",
- "example": "A Nice label for the column",
- "type": "string"
- }
- },
- "type": "object"
- },
"result": {
"$ref": "#/components/schemas/DatasetRestApi.get"
- },
- "show_columns": {
- "description": "A list of columns",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "show_title": {
- "description": "A title to render. Will be translated by babel",
- "example": "Show Item Details",
- "type": "string"
}
},
"type": "object"
}
}
},
- "description": "Item from Model"
+ "description": "Dataset object has been returned."
},
"400": {
"$ref": "#/components/responses/400"
@@ -16672,9 +18954,6 @@
"401": {
"$ref": "#/components/responses/401"
},
- "404": {
- "$ref": "#/components/responses/404"
- },
"422": {
"$ref": "#/components/responses/422"
},
@@ -16687,10 +18966,10 @@
"jwt": []
}
],
+ "summary": "Get a dataset",
"tags": ["Datasets"]
},
"put": {
- "description": "Changes a Dataset",
"parameters": [
{
"in": "path",
@@ -16762,12 +19041,12 @@
"jwt": []
}
],
+ "summary": "Update a dataset",
"tags": ["Datasets"]
}
},
"/api/v1/dataset/{pk}/column/{column_id}": {
"delete": {
- "description": "Delete a Dataset column",
"parameters": [
{
"description": "The dataset pk for this column",
@@ -16825,12 +19104,12 @@
"jwt": []
}
],
+ "summary": "Delete a dataset column",
"tags": ["Datasets"]
}
},
"/api/v1/dataset/{pk}/metric/{metric_id}": {
"delete": {
- "description": "Delete a Dataset metric",
"parameters": [
{
"description": "The dataset pk for this column",
@@ -16888,12 +19167,12 @@
"jwt": []
}
],
+ "summary": "Delete a dataset metric",
"tags": ["Datasets"]
}
},
"/api/v1/dataset/{pk}/refresh": {
"put": {
- "description": "Refreshes and updates columns of a dataset",
"parameters": [
{
"in": "path",
@@ -16941,12 +19220,12 @@
"jwt": []
}
],
+ "summary": "Refresh and update columns of a dataset",
"tags": ["Datasets"]
}
},
"/api/v1/dataset/{pk}/related_objects": {
"get": {
- "description": "Get charts and dashboards count associated to a dataset",
"parameters": [
{
"in": "path",
@@ -16983,6 +19262,7 @@
"jwt": []
}
],
+ "summary": "Get charts and dashboards count associated to a dataset",
"tags": ["Datasets"]
}
},
@@ -17079,7 +19359,6 @@
},
"/api/v1/embedded_dashboard/{uuid}": {
"get": {
- "description": "Get a report schedule log",
"parameters": [
{
"description": "The embedded configuration uuid",
@@ -17122,12 +19401,13 @@
"jwt": []
}
],
+ "summary": "Get a report schedule log",
"tags": ["Embedded Dashboard"]
}
},
"/api/v1/explore/": {
"get": {
- "description": "Assembles Explore related information (form_data, slice, dataset)\\n in a single endpoint.
\\nThe information can be assembled from:
- The cache using a form_data_key
- The metadata database using a permalink_key
- Build from scratch using dataset or slice identifiers.",
+ "description": "Assembles Explore related information (form_data, slice, dataset) in a single endpoint.
The information can be assembled from:
- The cache using a form_data_key
- The metadata database using a permalink_key
- Build from scratch using dataset or slice identifiers.",
"parameters": [
{
"in": "query",
@@ -17197,13 +19477,12 @@
"jwt": []
}
],
- "summary": "Assembles Explore related information (form_data, slice, dataset)\\n in a single endpoint.",
+ "summary": "Assemble Explore related information in a single endpoint",
"tags": ["Explore"]
}
},
"/api/v1/explore/form_data": {
"post": {
- "description": "Stores a new form_data.",
"parameters": [
{
"in": "query",
@@ -17258,12 +19537,12 @@
"jwt": []
}
],
+ "summary": "Create a new form_data",
"tags": ["Explore Form Data"]
}
},
"/api/v1/explore/form_data/{key}": {
"delete": {
- "description": "Deletes a form_data.",
"parameters": [
{
"description": "The form_data key.",
@@ -17313,10 +19592,10 @@
"jwt": []
}
],
+ "summary": "Delete a form_data",
"tags": ["Explore Form Data"]
},
"get": {
- "description": "Retrives a form_data.",
"parameters": [
{
"in": "path",
@@ -17365,10 +19644,10 @@
"jwt": []
}
],
+ "summary": "Get a form_data",
"tags": ["Explore Form Data"]
},
"put": {
- "description": "Updates an existing form_data.",
"parameters": [
{
"in": "path",
@@ -17434,12 +19713,12 @@
"jwt": []
}
],
+ "summary": "Update an existing form_data",
"tags": ["Explore Form Data"]
}
},
"/api/v1/explore/permalink": {
"post": {
- "description": "Stores a new permanent link.",
"requestBody": {
"content": {
"application/json": {
@@ -17489,12 +19768,12 @@
"jwt": []
}
],
+ "summary": "Create a new permanent link",
"tags": ["Explore Permanent Link"]
}
},
"/api/v1/explore/permalink/{key}": {
"get": {
- "description": "Retrives chart state associated with a permanent link.",
"parameters": [
{
"in": "path",
@@ -17543,12 +19822,644 @@
"jwt": []
}
],
+ "summary": "Get chart's permanent link state",
"tags": ["Explore Permanent Link"]
}
},
+ "/api/v1/ias/login_token": {
+ "post": {
+ "description": "Endpoint for exchanging IAS tokens for Superset API tokens. IAS Tokens should be requested from the `acssuperset` IAS application, typically using [client credential flow](https://docs.aci.apple.com/ias/tutorials/client_credentials/index.html). At a minimum, an `id_token` needs to be provided, but by providing a `refresh_token` Superset will be able to automatically refresh the token after the initial one expires. However, to be able to refresh the token, `client_id` and `client_secret` must be provided, as the token needs to be refreshed with the same client that was used for logging in. Unless `refresh_token`, `client_id` and `client_secret` are provided, a `refresh_token` will not be returned.\\nThe following scope should be requested in the token request: `offline openid iam:ds:groups corpds:ds:username corpds:ds:firstName corpds:ds:lastName corpds:ds:email iam:ds:explicitgroups`",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IASLoginTokenRequestSchema"
+ }
+ }
+ },
+ "description": "Payload containing IAS tokens.",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IASLoginTokenResponseSchema"
+ }
+ }
+ },
+ "description": "Query result"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "tags": ["IAS"]
+ }
+ },
+ "/api/v1/ias/profiles": {
+ "get": {
+ "description": "Endpoint for retrieving available IAS profiles.",
+ "parameters": [
+ {
+ "description": "The name of the IAS profile",
+ "in": "query",
+ "name": "profile",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IASProfilesResponseSchema"
+ }
+ }
+ },
+ "description": "IAS Tokens"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "tags": ["IAS"]
+ }
+ },
+ "/api/v1/ias/tokens": {
+ "get": {
+ "description": "Endpoint for retrieving IAS tokens for the logged in user. If no token is provided, all tokens are returned.",
+ "parameters": [
+ {
+ "description": "The name of the IAS profile",
+ "in": "query",
+ "name": "profile",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IASTokensResponseSchema"
+ }
+ }
+ },
+ "description": "IAS Tokens"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "tags": ["IAS"]
+ }
+ },
+ "/api/v1/ias/tokens/{pk}": {
+ "get": {
+ "description": "Endpoint for retrieving IAS tokens for a specific user. If no token is provided, all tokens are returned. Only Admin users are able to view other users' tokens.",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "pk",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "The name of the IAS profile",
+ "in": "query",
+ "name": "profile",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IASTokensResponseSchema"
+ }
+ }
+ },
+ "description": "IAS Tokens"
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "tags": ["IAS"]
+ }
+ },
+ "/api/v1/lakehouse": {
+ "get": {
+ "description": "Disconnect a Lakehouse.",
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LakehouseGetListResponseSchema"
+ }
+ }
+ },
+ "description": "Lakehouse has been deleted"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get a list of all connected Lakehouses",
+ "tags": ["Lakehouse"]
+ }
+ },
+ "/api/v1/lakehouse/{lakehouse_id}": {
+ "delete": {
+ "description": "Disconnect a Lakehouse.",
+ "parameters": [
+ {
+ "description": "The unique id of the lakehouse",
+ "in": "path",
+ "name": "lakehouse_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LakehouseDisconnectResponseSchema"
+ }
+ }
+ },
+ "description": "Lakehouse has been deleted"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Disconnect a Lakehouse and all catalogs",
+ "tags": ["Lakehouse"]
+ },
+ "get": {
+ "description": "Get information regarding a connected Lakehouse",
+ "parameters": [
+ {
+ "description": "The unique id of the lakehouse",
+ "in": "path",
+ "name": "lakehouse_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LakehouseGetResponseSchema"
+ }
+ }
+ },
+ "description": "Lakehouses"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get information about a specific Lakehouse",
+ "tags": ["Lakehouse"]
+ },
+ "post": {
+ "description": "Endpoint for connecting a Lakehouse and associated catalogs to the ACS Superset instance.",
+ "parameters": [
+ {
+ "description": "The unique id of the lakehouse",
+ "in": "path",
+ "name": "lakehouse_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LakehouseConnectRequestSchema"
+ }
+ }
+ },
+ "description": "Payload containing connection parameters.",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LakehouseConnectResponseSchema"
+ }
+ }
+ },
+ "description": "The connection task has been scheduled."
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Schedule a task to connect a Lakehouse and catalogs",
+ "tags": ["Lakehouse"]
+ }
+ },
+ "/api/v1/lakehouse/{lakehouse_id}/dataset": {
+ "get": {
+ "description": "Endpoint for listing all virtual datasets on a Lakehouse",
+ "parameters": [
+ {
+ "description": "The unique id of the lakehouse",
+ "in": "path",
+ "name": "lakehouse_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "The catalog. Leave empty for all catalogs",
+ "in": "query",
+ "name": "catalog",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "The schema. Leave empty for all schemas",
+ "in": "query",
+ "name": "schema",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LakehouseDatasetListResponseSchema"
+ }
+ }
+ },
+ "description": "All virtual datasets satisfying the query params."
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get a list of virtual datasets",
+ "tags": ["Lakehouse"]
+ },
+ "post": {
+ "description": "Endpoint for creating a virtual dataset from a query",
+ "parameters": [
+ {
+ "description": "The unique id of the lakehouse",
+ "in": "path",
+ "name": "lakehouse_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LakehouseDatasetRequestSchema"
+ }
+ }
+ },
+ "description": "Payload containing virtual dataset parameters.",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LakehouseDatasetResponseSchema"
+ }
+ }
+ },
+ "description": "The virtual dataset has been created."
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "422": {
+ "$ref": "#/components/responses/422"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Create a virtual dataset out of a query",
+ "tags": ["Lakehouse"]
+ }
+ },
+ "/api/v1/lakehouse/{lakehouse_id}/task/{task_id}/cancel": {
+ "post": {
+ "description": "Endpoint for cancelling a scheduled connection request.",
+ "parameters": [
+ {
+ "description": "The unique id of the lakehouse",
+ "in": "path",
+ "name": "lakehouse_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "The id of the connection task",
+ "in": "path",
+ "name": "task_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LakehouseConnectStatusResponseSchema"
+ }
+ }
+ },
+ "description": "The status of the task."
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Cancel a running task",
+ "tags": ["Lakehouse"]
+ }
+ },
+ "/api/v1/lakehouse/{lakehouse_id}/task/{task_id}/result": {
+ "get": {
+ "description": "Endpoint for retrieving the payload of a scheduled connection request.",
+ "parameters": [
+ {
+ "description": "The unique id of the lakehouse",
+ "in": "path",
+ "name": "lakehouse_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "The id of the connection task",
+ "in": "path",
+ "name": "task_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LakehouseConnectResultResponseSchema"
+ }
+ }
+ },
+ "description": "The status of the task."
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Get the payload of a completed connection task",
+ "tags": ["Lakehouse"]
+ }
+ },
+ "/api/v1/lakehouse/{lakehouse_id}/task/{task_id}/status": {
+ "get": {
+ "description": "Endpoint for checking what the status of a scheduled connection request is.",
+ "parameters": [
+ {
+ "description": "The unique id of the lakehouse",
+ "in": "path",
+ "name": "lakehouse_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "The id of the connection task",
+ "in": "path",
+ "name": "task_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LakehouseConnectStatusResponseSchema"
+ }
+ }
+ },
+ "description": "The status of the task."
+ },
+ "400": {
+ "$ref": "#/components/responses/400"
+ },
+ "401": {
+ "$ref": "#/components/responses/401"
+ },
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
+ "404": {
+ "$ref": "#/components/responses/404"
+ },
+ "500": {
+ "$ref": "#/components/responses/500"
+ }
+ },
+ "security": [
+ {
+ "jwt": []
+ }
+ ],
+ "summary": "Check the status of a connection task",
+ "tags": ["Lakehouse"]
+ }
+ },
"/api/v1/log/": {
"get": {
- "description": "Get a list of models",
+ "description": "Gets a list of logs, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
@@ -17650,6 +20561,7 @@
"jwt": []
}
],
+ "summary": "Get a list of logs",
"tags": ["LogRestApi"]
},
"post": {
@@ -17858,12 +20770,13 @@
"jwt": []
}
],
+ "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": {
@@ -17884,12 +20797,13 @@
"$ref": "#/components/responses/401"
}
},
+ "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": {
@@ -17910,6 +20824,7 @@
"$ref": "#/components/responses/401"
}
},
+ "summary": "Get the user roles",
"tags": ["Current User"]
}
},
@@ -17974,7 +20889,7 @@
},
"/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": {
@@ -18076,6 +20991,7 @@
"jwt": []
}
],
+ "summary": "Get a list of queries",
"tags": ["Queries"]
}
},
@@ -18131,6 +21047,7 @@
"jwt": []
}
],
+ "summary": "Get distinct values from field data",
"tags": ["Queries"]
}
},
@@ -18186,6 +21103,7 @@
"jwt": []
}
],
+ "summary": "Get related fields data",
"tags": ["Queries"]
}
},
@@ -18299,7 +21217,7 @@
},
"/api/v1/query/{pk}": {
"get": {
- "description": "Get query detail information.",
+ "description": "Get an item model",
"parameters": [
{
"in": "path",
@@ -18394,12 +21312,12 @@
"jwt": []
}
],
+ "summary": "Get query detail information",
"tags": ["Queries"]
}
},
"/api/v1/report/": {
"delete": {
- "description": "Deletes multiple report schedules in a bulk operation.",
"parameters": [
{
"content": {
@@ -18450,10 +21368,11 @@
"jwt": []
}
],
+ "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": {
@@ -18555,10 +21474,10 @@
"jwt": []
}
],
+ "summary": "Get a list of report schedules",
"tags": ["Report Schedules"]
},
"post": {
- "description": "Create a report schedule",
"requestBody": {
"content": {
"application/json": {
@@ -18610,6 +21529,7 @@
"jwt": []
}
],
+ "summary": "Create a report schedule",
"tags": ["Report Schedules"]
}
},
@@ -18694,6 +21614,7 @@
"jwt": []
}
],
+ "summary": "Get metadata information about this API resource",
"tags": ["Report Schedules"]
}
},
@@ -18749,12 +21670,80 @@
"jwt": []
}
],
+ "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",
@@ -18800,10 +21789,11 @@
"jwt": []
}
],
+ "summary": "Delete a report schedule",
"tags": ["Report Schedules"]
},
"get": {
- "description": "Get a report schedule",
+ "description": "Get an item model",
"parameters": [
{
"in": "path",
@@ -18898,10 +21888,10 @@
"jwt": []
}
],
+ "summary": "Get a report schedule",
"tags": ["Report Schedules"]
},
"put": {
- "description": "Update a report schedule",
"parameters": [
{
"description": "The Report Schedule pk",
@@ -18967,12 +21957,13 @@
"jwt": []
}
],
+ "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",
@@ -19044,12 +22035,12 @@
"jwt": []
}
],
+ "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",
@@ -19122,12 +22113,12 @@
"jwt": []
}
],
+ "summary": "Get a report schedule log",
"tags": ["Report Schedules"]
}
},
"/api/v1/rowlevelsecurity/": {
"delete": {
- "description": "Deletes multiple RLS rules in a bulk operation.",
"parameters": [
{
"content": {
@@ -19178,10 +22169,11 @@
"jwt": []
}
],
+ "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": {
@@ -19283,10 +22275,10 @@
"jwt": []
}
],
+ "summary": "Get a list of RLS",
"tags": ["Row Level Security"]
},
"post": {
- "description": "Create a new RLS Rule",
"requestBody": {
"content": {
"application/json": {
@@ -19338,6 +22330,7 @@
"jwt": []
}
],
+ "summary": "Create a new RLS rule",
"tags": ["Row Level Security"]
}
},
@@ -19422,6 +22415,7 @@
"jwt": []
}
],
+ "summary": "Get metadata information about this API resource",
"tags": ["Row Level Security"]
}
},
@@ -19477,6 +22471,7 @@
"jwt": []
}
],
+ "summary": "Get related fields data",
"tags": ["Row Level Security"]
}
},
@@ -19523,6 +22518,7 @@
"jwt": []
}
],
+ "summary": "Delete an RLS",
"tags": ["Row Level Security"]
},
"get": {
@@ -19621,10 +22617,10 @@
"jwt": []
}
],
+ "summary": "Get an RLS",
"tags": ["Row Level Security"]
},
"put": {
- "description": "Updates an RLS Rule",
"parameters": [
{
"description": "The Rule pk",
@@ -19690,12 +22686,12 @@
"jwt": []
}
],
+ "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": {
@@ -19743,10 +22739,11 @@
"jwt": []
}
],
+ "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": {
@@ -19848,10 +22845,10 @@
"jwt": []
}
],
+ "summary": "Get a list of saved queries",
"tags": ["Queries"]
},
"post": {
- "description": "Create a saved query",
"requestBody": {
"content": {
"application/json": {
@@ -19900,6 +22897,7 @@
"jwt": []
}
],
+ "summary": "Create a saved query",
"tags": ["Queries"]
}
},
@@ -19984,6 +22982,7 @@
"jwt": []
}
],
+ "summary": "Get metadata information about this API resource",
"tags": ["Queries"]
}
},
@@ -20039,12 +23038,12 @@
"jwt": []
}
],
+ "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": {
@@ -20088,6 +23087,7 @@
"jwt": []
}
],
+ "summary": "Download multiple saved queries as YAML files",
"tags": ["Queries"]
}
},
@@ -20164,6 +23164,7 @@
"jwt": []
}
],
+ "summary": "Import saved queries with associated databases",
"tags": ["Queries"]
}
},
@@ -20219,12 +23220,12 @@
"jwt": []
}
],
+ "summary": "Get related fields data",
"tags": ["Queries"]
}
},
"/api/v1/saved_query/{pk}": {
"delete": {
- "description": "Delete saved query",
"parameters": [
{
"in": "path",
@@ -20266,10 +23267,11 @@
"jwt": []
}
],
+ "summary": "Delete a saved query",
"tags": ["Queries"]
},
"get": {
- "description": "Get a saved query",
+ "description": "Get an item model",
"parameters": [
{
"in": "path",
@@ -20364,10 +23366,10 @@
"jwt": []
}
],
+ "summary": "Get a saved query",
"tags": ["Queries"]
},
"put": {
- "description": "Update a saved query",
"parameters": [
{
"in": "path",
@@ -20426,12 +23428,12 @@
"jwt": []
}
],
+ "summary": "Update a saved query",
"tags": ["Queries"]
}
},
"/api/v1/security/csrf_token/": {
"get": {
- "description": "Fetch the CSRF token",
"responses": {
"200": {
"content": {
@@ -20460,12 +23462,12 @@
"jwt": []
}
],
+ "summary": "Get the CSRF token",
"tags": ["Security"]
}
},
"/api/v1/security/guest_token/": {
"post": {
- "description": "Fetches a guest token",
"requestBody": {
"content": {
"application/json": {
@@ -20508,6 +23510,7 @@
"jwt": []
}
],
+ "summary": "Get a guest token",
"tags": ["Security"]
}
},
@@ -20614,6 +23617,42 @@
"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/": {
"post": {
"requestBody": {
@@ -20661,13 +23700,12 @@
"jwt": []
}
],
- "summary": "Estimates the SQL query execution cost",
+ "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": {
@@ -20721,6 +23759,7 @@
"jwt": []
}
],
+ "summary": "Execute a SQL query",
"tags": ["SQL Lab"]
}
},
@@ -20769,7 +23808,58 @@
"jwt": []
}
],
- "summary": "Exports the SQL query results to a CSV",
+ "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"]
}
},
@@ -20823,13 +23913,13 @@
"jwt": []
}
],
- "summary": "Gets the result of a SQL query execution",
+ "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": {
@@ -20880,6 +23970,7 @@
"jwt": []
}
],
+ "summary": "Bulk delete tags",
"tags": ["Tags"]
},
"get": {
@@ -20985,9 +24076,11 @@
"jwt": []
}
],
+ "summary": "Get a list of tags",
"tags": ["Tags"]
},
"post": {
+ "description": "Create a new Tag",
"requestBody": {
"content": {
"application/json": {
@@ -20996,7 +24089,7 @@
}
}
},
- "description": "Model schema",
+ "description": "Tag schema",
"required": true
},
"responses": {
@@ -21006,7 +24099,7 @@
"schema": {
"properties": {
"id": {
- "type": "string"
+ "type": "number"
},
"result": {
"$ref": "#/components/schemas/TagRestApi.post"
@@ -21016,7 +24109,7 @@
}
}
},
- "description": "Item inserted"
+ "description": "Tag added"
},
"400": {
"$ref": "#/components/responses/400"
@@ -21036,12 +24129,13 @@
"jwt": []
}
],
+ "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": {
@@ -21120,12 +24214,62 @@
"jwt": []
}
],
+ "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": {
@@ -21173,7 +24317,6 @@
},
"/api/v1/tag/get_objects/": {
"get": {
- "description": "Gets all objects associated with a Tag.",
"parameters": [
{
"in": "path",
@@ -21224,6 +24367,7 @@
"jwt": []
}
],
+ "summary": "Get all objects associated with a tag",
"tags": ["Tags"]
}
},
@@ -21279,12 +24423,13 @@
"jwt": []
}
],
+ "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",
@@ -21348,12 +24493,12 @@
"jwt": []
}
],
+ "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",
@@ -21417,6 +24562,7 @@
"jwt": []
}
],
+ "summary": "Delete a tagged object",
"tags": ["Tags"]
}
},
@@ -21463,10 +24609,11 @@
"jwt": []
}
],
+ "summary": "Delete a tag",
"tags": ["Tags"]
},
"get": {
- "description": "Get a tag detail information.",
+ "description": "Get an item model",
"parameters": [
{
"in": "path",
@@ -21561,9 +24708,11 @@
"jwt": []
}
],
+ "summary": "Get a tag detail information",
"tags": ["Tags"]
},
"put": {
+ "description": "Changes a Tag.",
"parameters": [
{
"in": "path",
@@ -21582,7 +24731,7 @@
}
}
},
- "description": "Model schema",
+ "description": "Chart schema",
"required": true
},
"responses": {
@@ -21591,6 +24740,9 @@
"application/json": {
"schema": {
"properties": {
+ "id": {
+ "type": "number"
+ },
"result": {
"$ref": "#/components/schemas/TagRestApi.put"
}
@@ -21599,7 +24751,7 @@
}
}
},
- "description": "Item changed"
+ "description": "Tag changed"
},
"400": {
"$ref": "#/components/responses/400"
@@ -21607,6 +24759,9 @@
"401": {
"$ref": "#/components/responses/401"
},
+ "403": {
+ "$ref": "#/components/responses/403"
+ },
"404": {
"$ref": "#/components/responses/404"
},
@@ -21622,6 +24777,7 @@
"jwt": []
}
],
+ "summary": "Update a tag",
"tags": ["Tags"]
}
},
@@ -21723,6 +24879,35 @@
"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": {
"get": {
"description": "Get the OpenAPI spec for a specific API version",
diff --git a/superset/tags/api.py b/superset/tags/api.py
index ad25ffe7c93..7351a39a046 100644
--- a/superset/tags/api.py
+++ b/superset/tags/api.py
@@ -47,6 +47,7 @@ from superset.tags.schemas import (
openapi_spec_methods_override,
TaggedObjectEntityResponseSchema,
TagGetResponseSchema,
+ TagPostBulkResponseSchema,
TagPostBulkSchema,
TagPostSchema,
TagPutSchema,
@@ -132,6 +133,8 @@ class TagRestApi(BaseSupersetModelRestApi):
openapi_spec_component_schemas = (
TagGetResponseSchema,
TaggedObjectEntityResponseSchema,
+ TagPostBulkResponseSchema,
+ TagPostBulkSchema,
)
apispec_parameter_schemas = {
"delete_tags_schema": delete_tags_schema,
@@ -211,40 +214,21 @@ class TagRestApi(BaseSupersetModelRestApi):
"""Bulk create tags and tagged objects
---
post:
- summary: Get all objects associated with a tag
- parameters:
- - in: path
- schema:
- type: integer
- name: tag_id
+ summary: Bulk create tags and tagged objects
requestBody:
description: Tag schema
required: true
content:
application/json:
schema:
- type: object
- properties:
- tags:
- description: list of tag names to add to object
- type: array
- items:
- type: string
- objects_to_tag:
- description: list of object names to add to object
- type: array
- items:
- type: array
+ $ref: '#/components/schemas/TagPostBulkSchema'
responses:
200:
- description: Tag added to favorites
+ description: Bulk created tags and tagged objects
content:
application/json:
schema:
- type: object
- properties:
- result:
- type: object
+ $ref: '#/components/schemas/TagPostBulkResponseSchema'
302:
description: Redirects to the current digest
400:
@@ -267,6 +251,7 @@ class TagRestApi(BaseSupersetModelRestApi):
tagged_item: dict[str, Any] = self.add_model_schema.load(
{
"name": tag.get("name"),
+ "description": tag.get("description"),
"objects_to_tag": tag.get("objects_to_tag"),
}
)
diff --git a/superset/tags/schemas.py b/superset/tags/schemas.py
index 38676b42949..89a5d4f4627 100644
--- a/superset/tags/schemas.py
+++ b/superset/tags/schemas.py
@@ -53,21 +53,41 @@ class TaggedObjectEntityResponseSchema(Schema):
changed_on = fields.DateTime()
created_by = fields.Nested(UserSchema(exclude=["username"]))
creator = fields.String()
- tags = fields.List(fields.Nested(TagGetResponseSchema))
- owners = fields.List(fields.Nested(UserSchema))
+ tags = fields.List(fields.Nested(TagGetResponseSchema()))
+ owners = fields.List(fields.Nested(UserSchema()))
+
+
+objects_to_tag_field = fields.List(
+ fields.Tuple(
+ (
+ fields.String(metadata={"description": "type of resource"}),
+ fields.Int(validate=Range(min=1), metadata={"description": "resource id"}),
+ ),
+ ),
+ metadata={
+ "description": "Objects to tag",
+ },
+ required=False,
+)
class TagObjectSchema(Schema):
name = fields.String(validate=Length(min=1))
description = fields.String(required=False, allow_none=True)
- objects_to_tag = fields.List(
- fields.Tuple((fields.String(), fields.Int(validate=Range(min=1)))),
- required=False,
- )
+ objects_to_tag = objects_to_tag_field
class TagPostBulkSchema(Schema):
- tags = fields.List(fields.Nested(TagObjectSchema))
+ tags = fields.List(fields.Nested(TagObjectSchema()))
+
+
+class TagPostBulkResponseObjectSchema(Schema):
+ objects_tagged = objects_to_tag_field
+ objects_skipped = objects_to_tag_field
+
+
+class TagPostBulkResponseSchema(Schema):
+ result = fields.Nested(TagPostBulkResponseObjectSchema())
class TagPostSchema(TagObjectSchema):