Files
superset2/docs/static/resources/openapi.json
2026-01-28 11:16:25 -08:00

35482 lines
1.1 MiB

{
"components": {
"responses": {
"400": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "Bad request: Invalid parameters provided"
}
}
},
"description": "Bad request"
},
"401": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "Unauthorized: Authentication required"
}
}
},
"description": "Unauthorized"
},
"403": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "Forbidden: You don't have permission to access this resource"
}
}
},
"description": "Forbidden"
},
"404": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "Not found: The requested resource does not exist"
}
}
},
"description": "Not found"
},
"410": {
"content": {
"application/json": {
"schema": {
"properties": {
"errors": {
"items": {
"properties": {
"error_type": {
"enum": [
"FRONTEND_CSRF_ERROR",
"FRONTEND_NETWORK_ERROR",
"FRONTEND_TIMEOUT_ERROR",
"GENERIC_DB_ENGINE_ERROR",
"COLUMN_DOES_NOT_EXIST_ERROR",
"TABLE_DOES_NOT_EXIST_ERROR",
"SCHEMA_DOES_NOT_EXIST_ERROR",
"CONNECTION_INVALID_USERNAME_ERROR",
"CONNECTION_INVALID_PASSWORD_ERROR",
"CONNECTION_INVALID_HOSTNAME_ERROR",
"CONNECTION_PORT_CLOSED_ERROR",
"CONNECTION_INVALID_PORT_ERROR",
"CONNECTION_HOST_DOWN_ERROR",
"CONNECTION_ACCESS_DENIED_ERROR",
"CONNECTION_UNKNOWN_DATABASE_ERROR",
"CONNECTION_DATABASE_PERMISSIONS_ERROR",
"CONNECTION_MISSING_PARAMETERS_ERROR",
"OBJECT_DOES_NOT_EXIST_ERROR",
"SYNTAX_ERROR",
"CONNECTION_DATABASE_TIMEOUT",
"VIZ_GET_DF_ERROR",
"UNKNOWN_DATASOURCE_TYPE_ERROR",
"FAILED_FETCHING_DATASOURCE_INFO_ERROR",
"TABLE_SECURITY_ACCESS_ERROR",
"DATASOURCE_SECURITY_ACCESS_ERROR",
"DATABASE_SECURITY_ACCESS_ERROR",
"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",
"DML_NOT_ALLOWED_ERROR",
"INVALID_CTAS_QUERY_ERROR",
"INVALID_CVAS_QUERY_ERROR",
"SQLLAB_TIMEOUT_ERROR",
"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"
},
"extra": {
"type": "object"
},
"level": {
"enum": [
"info",
"warning",
"error"
],
"type": "string"
},
"message": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"message": {
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Gone"
},
"422": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "Unprocessable entity: Validation error"
}
}
},
"description": "Could not process entity"
},
"500": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "Internal server error: An unexpected error occurred"
}
}
},
"description": "Fatal error"
}
},
"schemas": {
"AdvancedDataTypeSchema": {
"properties": {
"display_value": {
"description": "The string representation of the parsed values",
"type": "string"
},
"error_message": {
"type": "string"
},
"valid_filter_operators": {
"items": {
"type": "string"
},
"type": "array"
},
"values": {
"items": {
"description": "parsed value (can be any value)",
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"AnnotationLayer": {
"properties": {
"annotationType": {
"description": "Type of annotation layer",
"enum": [
"FORMULA",
"INTERVAL",
"EVENT",
"TIME_SERIES"
],
"type": "string"
},
"color": {
"description": "Layer color",
"nullable": true,
"type": "string"
},
"descriptionColumns": {
"description": "Columns to use as the description. If none are provided, all will be shown.",
"items": {
"type": "string"
},
"type": "array"
},
"hideLine": {
"description": "Should line be hidden. Only applies to line annotations",
"nullable": true,
"type": "boolean"
},
"intervalEndColumn": {
"description": "Column containing end of interval. Only applies to interval layers",
"nullable": true,
"type": "string"
},
"name": {
"description": "Name of layer",
"type": "string"
},
"opacity": {
"description": "Opacity of layer",
"enum": [
"",
"opacityLow",
"opacityMedium",
"opacityHigh"
],
"nullable": true,
"type": "string"
},
"overrides": {
"additionalProperties": {
"nullable": true
},
"description": "which properties should be overridable",
"nullable": true,
"type": "object"
},
"show": {
"description": "Should the layer be shown",
"type": "boolean"
},
"showLabel": {
"description": "Should the label always be shown",
"nullable": true,
"type": "boolean"
},
"showMarkers": {
"description": "Should markers be shown. Only applies to line annotations.",
"type": "boolean"
},
"sourceType": {
"description": "Type of source for annotation data",
"enum": [
"",
"line",
"NATIVE",
"table"
],
"type": "string"
},
"style": {
"description": "Line style. Only applies to time-series annotations",
"enum": [
"dashed",
"dotted",
"solid",
"longDashed"
],
"type": "string"
},
"timeColumn": {
"description": "Column with event date or interval start date",
"nullable": true,
"type": "string"
},
"titleColumn": {
"description": "Column with title",
"nullable": true,
"type": "string"
},
"value": {
"description": "For formula annotations, this contains the formula. For other types, this is the primary key of the source object."
},
"width": {
"description": "Width of annotation line",
"minimum": 0.0,
"type": "number"
}
},
"required": [
"name",
"show",
"showMarkers",
"value"
],
"type": "object"
},
"AnnotationLayerRestApi.get": {
"properties": {
"descr": {
"nullable": true,
"type": "string"
},
"id": {
"type": "integer"
},
"name": {
"maxLength": 250,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"AnnotationLayerRestApi.get_list": {
"properties": {
"changed_by": {
"$ref": "#/components/schemas/AnnotationLayerRestApi.get_list.User1"
},
"changed_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"changed_on_delta_humanized": {
"readOnly": true
},
"created_by": {
"$ref": "#/components/schemas/AnnotationLayerRestApi.get_list.User"
},
"created_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"descr": {
"nullable": true,
"type": "string"
},
"id": {
"type": "integer"
},
"name": {
"maxLength": 250,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"AnnotationLayerRestApi.get_list.User": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"AnnotationLayerRestApi.get_list.User1": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"AnnotationLayerRestApi.post": {
"properties": {
"descr": {
"description": "Give a description for this annotation layer",
"nullable": true,
"type": "string"
},
"name": {
"description": "The annotation layer name",
"maxLength": 250,
"minLength": 1,
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"AnnotationLayerRestApi.put": {
"properties": {
"descr": {
"description": "Give a description for this annotation layer",
"type": "string"
},
"name": {
"description": "The annotation layer name",
"maxLength": 250,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"AnnotationRestApi.get": {
"properties": {
"end_dttm": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"id": {
"type": "integer"
},
"json_metadata": {
"nullable": true,
"type": "string"
},
"layer": {
"$ref": "#/components/schemas/AnnotationRestApi.get.AnnotationLayer"
},
"long_descr": {
"nullable": true,
"type": "string"
},
"short_descr": {
"maxLength": 500,
"nullable": true,
"type": "string"
},
"start_dttm": {
"format": "date-time",
"nullable": true,
"type": "string"
}
},
"required": [
"layer"
],
"type": "object"
},
"AnnotationRestApi.get.AnnotationLayer": {
"properties": {
"id": {
"type": "integer"
},
"name": {
"maxLength": 250,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"AnnotationRestApi.get_list": {
"properties": {
"changed_by": {
"$ref": "#/components/schemas/AnnotationRestApi.get_list.User"
},
"changed_on_delta_humanized": {
"readOnly": true
},
"created_by": {
"$ref": "#/components/schemas/AnnotationRestApi.get_list.User1"
},
"end_dttm": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"id": {
"type": "integer"
},
"long_descr": {
"nullable": true,
"type": "string"
},
"short_descr": {
"maxLength": 500,
"nullable": true,
"type": "string"
},
"start_dttm": {
"format": "date-time",
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"AnnotationRestApi.get_list.User": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"type": "integer"
}
},
"required": [
"first_name"
],
"type": "object"
},
"AnnotationRestApi.get_list.User1": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"type": "integer"
}
},
"required": [
"first_name"
],
"type": "object"
},
"AnnotationRestApi.post": {
"properties": {
"end_dttm": {
"description": "The annotation end date time",
"format": "date-time",
"type": "string"
},
"json_metadata": {
"description": "JSON metadata",
"nullable": true,
"type": "string"
},
"long_descr": {
"description": "A long description",
"nullable": true,
"type": "string"
},
"short_descr": {
"description": "A short description",
"maxLength": 500,
"minLength": 1,
"type": "string"
},
"start_dttm": {
"description": "The annotation start date time",
"format": "date-time",
"type": "string"
}
},
"required": [
"end_dttm",
"short_descr",
"start_dttm"
],
"type": "object"
},
"AnnotationRestApi.put": {
"properties": {
"end_dttm": {
"description": "The annotation end date time",
"format": "date-time",
"type": "string"
},
"json_metadata": {
"description": "JSON metadata",
"nullable": true,
"type": "string"
},
"long_descr": {
"description": "A long description",
"nullable": true,
"type": "string"
},
"short_descr": {
"description": "A short description",
"maxLength": 500,
"minLength": 1,
"type": "string"
},
"start_dttm": {
"description": "The annotation start date time",
"format": "date-time",
"type": "string"
}
},
"type": "object"
},
"AvailableDomainsSchema": {
"properties": {
"domains": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"CacheInvalidationRequestSchema": {
"properties": {
"datasource_uids": {
"description": "The uid of the dataset/datasource this new chart will use. A complete datasource identification needs `datasource_uid` ",
"items": {
"type": "string"
},
"type": "array"
},
"datasources": {
"description": "A list of the data source and database names",
"items": {
"$ref": "#/components/schemas/Datasource"
},
"type": "array"
}
},
"type": "object"
},
"CacheRestApi.get": {
"properties": {
"id": {
"type": "integer"
}
},
"type": "object"
},
"CacheRestApi.get_list": {
"properties": {
"id": {
"type": "integer"
}
},
"type": "object"
},
"CacheRestApi.post": {
"properties": {
"id": {
"type": "integer"
}
},
"type": "object"
},
"CacheRestApi.put": {
"properties": {
"id": {
"type": "integer"
}
},
"type": "object"
},
"CatalogsResponseSchema": {
"properties": {
"result": {
"items": {
"description": "A database catalog name",
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"ChartCacheScreenshotResponseSchema": {
"properties": {
"cache_key": {
"description": "The cache key",
"type": "string"
},
"chart_url": {
"description": "The url to render the chart",
"type": "string"
},
"image_url": {
"description": "The url to fetch the screenshot",
"type": "string"
},
"task_status": {
"description": "The status of the async screenshot",
"type": "string"
},
"task_updated_at": {
"description": "The timestamp of the last change in status",
"type": "string"
}
},
"type": "object"
},
"ChartCacheWarmUpRequestSchema": {
"properties": {
"chart_id": {
"description": "The ID of the chart to warm up cache for",
"type": "integer"
},
"dashboard_id": {
"description": "The ID of the dashboard to get filters for when warming cache",
"type": "integer"
},
"extra_filters": {
"description": "Extra filters to apply when warming up cache",
"type": "string"
}
},
"required": [
"chart_id"
],
"type": "object"
},
"ChartCacheWarmUpResponseSchema": {
"properties": {
"result": {
"description": "A list of each chart's warmup status and errors if any",
"items": {
"$ref": "#/components/schemas/ChartCacheWarmUpResponseSingle"
},
"type": "array"
}
},
"type": "object"
},
"ChartCacheWarmUpResponseSingle": {
"properties": {
"chart_id": {
"description": "The ID of the chart the status belongs to",
"type": "integer"
},
"viz_error": {
"description": "Error that occurred when warming cache for chart",
"type": "string"
},
"viz_status": {
"description": "Status of the underlying query for the viz",
"type": "string"
}
},
"type": "object"
},
"ChartDataAdhocMetricSchema": {
"properties": {
"aggregate": {
"description": "Aggregation operator.Only required for simple expression types.",
"enum": [
"AVG",
"COUNT",
"COUNT_DISTINCT",
"MAX",
"MIN",
"SUM"
],
"type": "string"
},
"column": {
"$ref": "#/components/schemas/ChartDataColumn"
},
"expressionType": {
"description": "Simple or SQL metric",
"enum": [
"SIMPLE",
"SQL"
],
"example": "SQL",
"type": "string"
},
"hasCustomLabel": {
"description": "When false, the label will be automatically generated based on the aggregate expression. When true, a custom label has to be specified.",
"example": true,
"type": "boolean"
},
"isExtra": {
"description": "Indicates if the filter has been added by a filter component as opposed to being a part of the original query.",
"type": "boolean"
},
"label": {
"description": "Label for the metric. Is automatically generated unlesshasCustomLabel is true, in which case label must be defined.",
"example": "Weighted observations",
"type": "string"
},
"optionName": {
"description": "Unique identifier. Can be any string value, as long as all metrics have a unique identifier. If undefined, a random namewill be generated.",
"example": "metric_aec60732-fac0-4b17-b736-93f1a5c93e30",
"type": "string"
},
"sqlExpression": {
"description": "The metric as defined by a SQL aggregate expression. Only required for SQL expression type.",
"example": "SUM(weight * observations) / SUM(weight)",
"type": "string"
},
"timeGrain": {
"description": "Optional time grain for temporal filters",
"example": "PT1M",
"type": "string"
}
},
"required": [
"expressionType"
],
"type": "object"
},
"ChartDataAggregateOptionsSchema": {
"properties": {
"aggregates": {
"description": "The keys are the name of the aggregate column to be created, and the values specify the details of how to apply the aggregation. If an operator requires additional options, these can be passed here to be unpacked in the operator call. The following numpy operators are supported: average, argmin, argmax, cumsum, cumprod, max, mean, median, nansum, nanmin, nanmax, nanmean, nanmedian, min, percentile, prod, product, std, sum, var. Any options required by the operator can be passed to the `options` object.\n\nIn the example, a new column `first_quantile` is created based on values in the column `my_col` using the `percentile` operator with the `q=0.25` parameter.",
"example": {
"first_quantile": {
"column": "my_col",
"operator": "percentile",
"options": {
"q": 0.25
}
}
},
"type": "object"
}
},
"type": "object"
},
"ChartDataAsyncResponseSchema": {
"properties": {
"channel_id": {
"description": "Unique session async channel ID",
"type": "string"
},
"job_id": {
"description": "Unique async job ID",
"type": "string"
},
"result_url": {
"description": "Unique result URL for fetching async query data",
"type": "string"
},
"status": {
"description": "Status value for async job",
"type": "string"
},
"user_id": {
"description": "Requesting user ID",
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"ChartDataBoxplotOptionsSchema": {
"properties": {
"groupby": {
"items": {
"description": "Columns by which to group the query.",
"type": "string"
},
"nullable": true,
"type": "array"
},
"metrics": {
"description": "Aggregate expressions. Metrics can be passed as both references to datasource metrics (strings), or ad-hoc metricswhich are defined only within the query object. See `ChartDataAdhocMetricSchema` for the structure of ad-hoc metrics. When metrics is undefined or null, the query is executed without a groupby. However, when metrics is an array (length >= 0), a groupby clause is added to the query.",
"items": {},
"nullable": true,
"type": "array"
},
"percentiles": {
"description": "Upper and lower percentiles for percentile whisker type.",
"example": [
1,
99
]
},
"whisker_type": {
"description": "Whisker type. Any numpy function will work.",
"enum": [
"tukey",
"min/max",
"percentile"
],
"example": "tukey",
"type": "string"
}
},
"required": [
"whisker_type"
],
"type": "object"
},
"ChartDataColumn": {
"properties": {
"column_name": {
"description": "The name of the target column",
"example": "mycol",
"type": "string"
},
"type": {
"description": "Type of target column",
"example": "BIGINT",
"type": "string"
}
},
"type": "object"
},
"ChartDataContributionOptionsSchema": {
"properties": {
"orientation": {
"description": "Should cell values be calculated across the row or column.",
"enum": [
"row",
"column"
],
"example": "row",
"type": "string"
}
},
"required": [
"orientation"
],
"type": "object"
},
"ChartDataDatasource": {
"properties": {
"id": {
"description": "Datasource id/uuid",
"oneOf": [
{
"type": "integer"
},
{
"type": "string"
}
]
},
"type": {
"description": "Datasource type",
"enum": [
"table",
"dataset",
"query",
"saved_query",
"view"
],
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"ChartDataExtras": {
"properties": {
"having": {
"description": "HAVING clause to be added to aggregate queries using AND operator.",
"type": "string"
},
"instant_time_comparison_range": {
"description": "This is only set using the new time comparison controls that is made available in some plugins behind the experimental feature flag.",
"nullable": true,
"type": "string"
},
"relative_end": {
"description": "End time for relative time deltas. Default: `config[\"DEFAULT_RELATIVE_START_TIME\"]`",
"enum": [
"today",
"now"
],
"type": "string"
},
"relative_start": {
"description": "Start time for relative time deltas. Default: `config[\"DEFAULT_RELATIVE_START_TIME\"]`",
"enum": [
"today",
"now"
],
"type": "string"
},
"time_grain_sqla": {
"description": "To what level of granularity should the temporal column be aggregated. Supports [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Durations) durations.",
"enum": [
"PT1S",
"PT5S",
"PT30S",
"PT1M",
"PT5M",
"PT10M",
"PT15M",
"PT30M",
"PT1H",
"PT6H",
"P1D",
"P1W",
"P1M",
"P3M",
"P1Y",
"1969-12-28T00:00:00Z/P1W",
"1969-12-29T00:00:00Z/P1W",
"P1W/1970-01-03T00:00:00Z",
"P1W/1970-01-04T00:00:00Z"
],
"example": "P1D",
"nullable": true,
"type": "string"
},
"where": {
"description": "WHERE clause to be added to queries using AND operator.",
"type": "string"
}
},
"type": "object"
},
"ChartDataFilter": {
"properties": {
"col": {
"description": "The column to filter by. Can be either a string (physical or saved expression) or an object (adhoc column)",
"example": "country"
},
"grain": {
"description": "Optional time grain for temporal filters",
"example": "PT1M",
"type": "string"
},
"isExtra": {
"description": "Indicates if the filter has been added by a filter component as opposed to being a part of the original query.",
"type": "boolean"
},
"op": {
"description": "The comparison operator.",
"enum": [
"==",
"!=",
">",
"<",
">=",
"<=",
"LIKE",
"NOT LIKE",
"ILIKE",
"IS NULL",
"IS NOT NULL",
"IN",
"NOT IN",
"IS TRUE",
"IS FALSE",
"TEMPORAL_RANGE"
],
"example": "IN",
"type": "string"
},
"val": {
"description": "The value or values to compare against. Can be a string, integer, decimal, None or list, depending on the operator.",
"example": [
"China",
"France",
"Japan"
],
"nullable": true
}
},
"required": [
"col",
"op"
],
"type": "object"
},
"ChartDataGeodeticParseOptionsSchema": {
"properties": {
"altitude": {
"description": "Name of target column for decoded altitude. If omitted, altitude information in geodetic string is ignored.",
"type": "string"
},
"geodetic": {
"description": "Name of source column containing geodetic point strings",
"type": "string"
},
"latitude": {
"description": "Name of target column for decoded latitude",
"type": "string"
},
"longitude": {
"description": "Name of target column for decoded longitude",
"type": "string"
}
},
"required": [
"geodetic",
"latitude",
"longitude"
],
"type": "object"
},
"ChartDataGeohashDecodeOptionsSchema": {
"properties": {
"geohash": {
"description": "Name of source column containing geohash string",
"type": "string"
},
"latitude": {
"description": "Name of target column for decoded latitude",
"type": "string"
},
"longitude": {
"description": "Name of target column for decoded longitude",
"type": "string"
}
},
"required": [
"geohash",
"latitude",
"longitude"
],
"type": "object"
},
"ChartDataGeohashEncodeOptionsSchema": {
"properties": {
"geohash": {
"description": "Name of target column for encoded geohash string",
"type": "string"
},
"latitude": {
"description": "Name of source latitude column",
"type": "string"
},
"longitude": {
"description": "Name of source longitude column",
"type": "string"
}
},
"required": [
"geohash",
"latitude",
"longitude"
],
"type": "object"
},
"ChartDataPivotOptionsSchema": {
"properties": {
"aggregates": {
"description": "The keys are the name of the aggregate column to be created, and the values specify the details of how to apply the aggregation. If an operator requires additional options, these can be passed here to be unpacked in the operator call. The following numpy operators are supported: average, argmin, argmax, cumsum, cumprod, max, mean, median, nansum, nanmin, nanmax, nanmean, nanmedian, min, percentile, prod, product, std, sum, var. Any options required by the operator can be passed to the `options` object.\n\nIn the example, a new column `first_quantile` is created based on values in the column `my_col` using the `percentile` operator with the `q=0.25` parameter.",
"example": {
"first_quantile": {
"column": "my_col",
"operator": "percentile",
"options": {
"q": 0.25
}
}
},
"type": "object"
},
"column_fill_value": {
"description": "Value to replace missing pivot columns names with.",
"type": "string"
},
"columns": {
"description": "Columns to group by on the table columns",
"items": {
"type": "string"
},
"type": "array"
},
"drop_missing_columns": {
"description": "Do not include columns whose entries are all missing (default: `true`).",
"type": "boolean"
},
"marginal_distribution_name": {
"description": "Name of marginal distribution row/column. (default: `All`)",
"type": "string"
},
"marginal_distributions": {
"description": "Add totals for row/column. (default: `false`)",
"type": "boolean"
},
"metric_fill_value": {
"description": "Value to replace missing values with in aggregate calculations.",
"type": "number"
}
},
"type": "object"
},
"ChartDataPostProcessingOperation": {
"properties": {
"operation": {
"description": "Post processing operation type",
"enum": [
"aggregate",
"boxplot",
"compare",
"contribution",
"cum",
"diff",
"escape_separator",
"flatten",
"geodetic_parse",
"geohash_decode",
"geohash_encode",
"histogram",
"pivot",
"prophet",
"rank",
"rename",
"resample",
"rolling",
"select",
"sort",
"unescape_separator"
],
"example": "aggregate",
"type": "string"
},
"options": {
"description": "Options specifying how to perform the operation. Please refer to the respective post processing operation option schemas. For example, `ChartDataPostProcessingOperationOptions` specifies the required options for the pivot operation.",
"example": {
"aggregates": {
"age_mean": {
"column": "age",
"operator": "mean"
},
"age_q1": {
"column": "age",
"operator": "percentile",
"options": {
"q": 0.25
}
}
},
"groupby": [
"country",
"gender"
]
},
"type": "object"
}
},
"required": [
"operation"
],
"type": "object"
},
"ChartDataProphetOptionsSchema": {
"properties": {
"confidence_interval": {
"description": "Width of predicted confidence interval",
"example": 0.8,
"maximum": 1.0,
"minimum": 0.0,
"type": "number"
},
"monthly_seasonality": {
"description": "Should monthly seasonality be applied. An integer value will specify Fourier order of seasonality, `None` will automatically detect seasonality.",
"example": false
},
"periods": {
"description": "Time periods (in units of `time_grain`) to predict into the future",
"example": 7,
"type": "integer"
},
"time_grain": {
"description": "Time grain used to specify time period increments in prediction. Supports [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Durations) durations.",
"enum": [
"PT1S",
"PT5S",
"PT30S",
"PT1M",
"PT5M",
"PT10M",
"PT15M",
"PT30M",
"PT1H",
"PT6H",
"P1D",
"P1W",
"P1M",
"P3M",
"P1Y",
"1969-12-28T00:00:00Z/P1W",
"1969-12-29T00:00:00Z/P1W",
"P1W/1970-01-03T00:00:00Z",
"P1W/1970-01-04T00:00:00Z"
],
"example": "P1D",
"type": "string"
},
"weekly_seasonality": {
"description": "Should weekly seasonality be applied. An integer value will specify Fourier order of seasonality, `None` will automatically detect seasonality.",
"example": false
},
"yearly_seasonality": {
"description": "Should yearly seasonality be applied. An integer value will specify Fourier order of seasonality, `None` will automatically detect seasonality.",
"example": false
}
},
"required": [
"confidence_interval",
"periods",
"time_grain"
],
"type": "object"
},
"ChartDataQueryContextSchema": {
"properties": {
"custom_cache_timeout": {
"description": "Override the default cache timeout",
"nullable": true,
"type": "integer"
},
"datasource": {
"$ref": "#/components/schemas/ChartDataDatasource"
},
"force": {
"description": "Should the queries be forced to load from the source. Default: `false`",
"nullable": true,
"type": "boolean"
},
"form_data": {
"nullable": true
},
"queries": {
"items": {
"$ref": "#/components/schemas/ChartDataQueryObject"
},
"type": "array"
},
"result_format": {
"enum": [
"csv",
"json",
"xlsx"
]
},
"result_type": {
"enum": [
"columns",
"full",
"query",
"results",
"samples",
"timegrains",
"post_processed",
"drill_detail"
]
}
},
"type": "object"
},
"ChartDataQueryObject": {
"properties": {
"annotation_layers": {
"description": "Annotation layers to apply to chart",
"items": {
"$ref": "#/components/schemas/AnnotationLayer"
},
"nullable": true,
"type": "array"
},
"applied_time_extras": {
"description": "A mapping of temporal extras that have been applied to the query",
"example": {
"__time_range": "1 year ago : now"
},
"nullable": true,
"type": "object"
},
"apply_fetch_values_predicate": {
"description": "Add fetch values predicate (where clause) to query if defined in datasource",
"nullable": true,
"type": "boolean"
},
"columns": {
"description": "Columns which to select in the query.",
"items": {},
"nullable": true,
"type": "array"
},
"datasource": {
"allOf": [
{
"$ref": "#/components/schemas/ChartDataDatasource"
}
],
"nullable": true
},
"extras": {
"allOf": [
{
"$ref": "#/components/schemas/ChartDataExtras"
}
],
"description": "Extra parameters to add to the query.",
"nullable": true
},
"filters": {
"items": {
"$ref": "#/components/schemas/ChartDataFilter"
},
"nullable": true,
"type": "array"
},
"granularity": {
"description": "Name of temporal column used for time filtering. ",
"nullable": true,
"type": "string"
},
"granularity_sqla": {
"deprecated": true,
"description": "Name of temporal column used for time filtering for SQL datasources. This field is deprecated, use `granularity` instead.",
"nullable": true,
"type": "string"
},
"groupby": {
"description": "Columns by which to group the query. This field is deprecated, use `columns` instead.",
"items": {},
"nullable": true,
"type": "array"
},
"having": {
"deprecated": true,
"description": "HAVING clause to be added to aggregate queries using AND operator. This field is deprecated and should be passed to `extras`.",
"nullable": true,
"type": "string"
},
"is_rowcount": {
"description": "Should the rowcount of the actual query be returned",
"nullable": true,
"type": "boolean"
},
"is_timeseries": {
"description": "Is the `query_object` a timeseries.",
"nullable": true,
"type": "boolean"
},
"metrics": {
"description": "Aggregate expressions. Metrics can be passed as both references to datasource metrics (strings), or ad-hoc metricswhich are defined only within the query object. See `ChartDataAdhocMetricSchema` for the structure of ad-hoc metrics.",
"items": {},
"nullable": true,
"type": "array"
},
"order_desc": {
"description": "Reverse order. Default: `false`",
"nullable": true,
"type": "boolean"
},
"orderby": {
"description": "Expects a list of lists where the first element is the column name which to sort by, and the second element is a boolean.",
"example": [
[
"my_col_1",
false
],
[
"my_col_2",
true
]
],
"items": {},
"nullable": true,
"type": "array"
},
"post_processing": {
"description": "Post processing operations to be applied to the result set. Operations are applied to the result set in sequential order.",
"items": {
"allOf": [
{
"$ref": "#/components/schemas/ChartDataPostProcessingOperation"
}
],
"nullable": true
},
"nullable": true,
"type": "array"
},
"result_type": {
"enum": [
"columns",
"full",
"query",
"results",
"samples",
"timegrains",
"post_processed",
"drill_detail"
],
"nullable": true
},
"row_limit": {
"description": "Maximum row count (0=disabled). Default: `config[\"ROW_LIMIT\"]`",
"minimum": 0,
"nullable": true,
"type": "integer"
},
"row_offset": {
"description": "Number of rows to skip. Default: `0`",
"minimum": 0,
"nullable": true,
"type": "integer"
},
"series_columns": {
"description": "Columns to use when limiting series count. All columns must be present in the `columns` property. Requires `series_limit` and `series_limit_metric` to be set.",
"items": {},
"nullable": true,
"type": "array"
},
"series_limit": {
"description": "Maximum number of series. Requires `series` and `series_limit_metric` to be set.",
"nullable": true,
"type": "integer"
},
"series_limit_metric": {
"description": "Metric used to limit timeseries queries by. Requires `series` and `series_limit` to be set.",
"nullable": true
},
"time_offsets": {
"items": {
"type": "string"
},
"nullable": true,
"type": "array"
},
"time_range": {
"description": "A time rage, either expressed as a colon separated string `since : until` or human readable freeform. Valid formats for `since` and `until` are: \n- ISO 8601\n- X days/years/hours/day/year/weeks\n- X days/years/hours/day/year/weeks ago\n- X days/years/hours/day/year/weeks from now\n\nAdditionally, the following freeform can be used:\n\n- Last day\n- Last week\n- Last month\n- Last quarter\n- Last year\n- No filter\n- Last X seconds/minutes/hours/days/weeks/months/years\n- Next X seconds/minutes/hours/days/weeks/months/years\n",
"example": "Last week",
"nullable": true,
"type": "string"
},
"time_shift": {
"description": "A human-readable date/time string. Please refer to [parsdatetime](https://github.com/bear/parsedatetime) documentation for details on valid values.",
"nullable": true,
"type": "string"
},
"timeseries_limit": {
"description": "Maximum row count for timeseries queries. This field is deprecated, use `series_limit` instead.Default: `0`",
"nullable": true,
"type": "integer"
},
"timeseries_limit_metric": {
"description": "Metric used to limit timeseries queries by. This field is deprecated, use `series_limit_metric` instead.",
"nullable": true
},
"url_params": {
"additionalProperties": {
"description": "The value of the query parameter",
"type": "string"
},
"description": "Optional query parameters passed to a dashboard or Explore view",
"nullable": true,
"type": "object"
},
"where": {
"deprecated": true,
"description": "WHERE clause to be added to queries using AND operator.This field is deprecated and should be passed to `extras`.",
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"ChartDataResponseResult": {
"properties": {
"annotation_data": {
"description": "All requested annotation data",
"items": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"nullable": true,
"type": "array"
},
"applied_filters": {
"description": "A list with applied filters",
"items": {
"type": "object"
},
"type": "array"
},
"cache_key": {
"description": "Unique cache key for query object",
"nullable": true,
"type": "string"
},
"cache_timeout": {
"description": "Cache timeout in following order: custom timeout, datasource timeout, cache default timeout, config default cache timeout.",
"nullable": true,
"type": "integer"
},
"cached_dttm": {
"description": "Cache timestamp",
"nullable": true,
"type": "string"
},
"colnames": {
"description": "A list of column names",
"items": {
"type": "string"
},
"type": "array"
},
"coltypes": {
"description": "A list of generic data types of each column",
"items": {
"type": "integer"
},
"type": "array"
},
"data": {
"description": "A list with results",
"items": {
"type": "object"
},
"type": "array"
},
"error": {
"description": "Error",
"nullable": true,
"type": "string"
},
"from_dttm": {
"description": "Start timestamp of time range",
"nullable": true,
"type": "integer"
},
"is_cached": {
"description": "Is the result cached",
"type": "boolean"
},
"query": {
"description": "The executed query statement",
"type": "string"
},
"rejected_filters": {
"description": "A list with rejected filters",
"items": {
"type": "object"
},
"type": "array"
},
"rowcount": {
"description": "Amount of rows in result set",
"type": "integer"
},
"stacktrace": {
"description": "Stacktrace if there was an error",
"nullable": true,
"type": "string"
},
"status": {
"description": "Status of the query",
"enum": [
"stopped",
"failed",
"pending",
"running",
"scheduled",
"success",
"timed_out"
],
"type": "string"
},
"to_dttm": {
"description": "End timestamp of time range",
"nullable": true,
"type": "integer"
}
},
"required": [
"cache_key",
"cache_timeout",
"cached_dttm",
"is_cached",
"query"
],
"type": "object"
},
"ChartDataResponseSchema": {
"properties": {
"result": {
"description": "A list of results for each corresponding query in the request.",
"items": {
"$ref": "#/components/schemas/ChartDataResponseResult"
},
"type": "array"
}
},
"type": "object"
},
"ChartDataRestApi.get": {
"properties": {
"cache_timeout": {
"nullable": true,
"type": "integer"
},
"certification_details": {
"nullable": true,
"type": "string"
},
"certified_by": {
"nullable": true,
"type": "string"
},
"changed_on_delta_humanized": {
"readOnly": true
},
"dashboards": {
"$ref": "#/components/schemas/ChartDataRestApi.get.Dashboard"
},
"description": {
"nullable": true,
"type": "string"
},
"id": {
"type": "integer"
},
"is_managed_externally": {
"type": "boolean"
},
"owners": {
"$ref": "#/components/schemas/ChartDataRestApi.get.User"
},
"params": {
"nullable": true,
"type": "string"
},
"query_context": {
"nullable": true,
"type": "string"
},
"slice_name": {
"maxLength": 250,
"nullable": true,
"type": "string"
},
"tags": {
"$ref": "#/components/schemas/ChartDataRestApi.get.Tag"
},
"thumbnail_url": {
"readOnly": true
},
"url": {
"readOnly": true
},
"viz_type": {
"maxLength": 250,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"ChartDataRestApi.get.Dashboard": {
"properties": {
"dashboard_title": {
"maxLength": 500,
"nullable": true,
"type": "string"
},
"id": {
"type": "integer"
},
"json_metadata": {
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"ChartDataRestApi.get.Tag": {
"properties": {
"id": {
"type": "integer"
},
"name": {
"maxLength": 250,
"nullable": true,
"type": "string"
},
"type": {
"enum": [
1,
2,
3,
4
]
}
},
"type": "object"
},
"ChartDataRestApi.get.User": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"ChartDataRestApi.get_list": {
"properties": {
"cache_timeout": {
"nullable": true,
"type": "integer"
},
"certification_details": {
"nullable": true,
"type": "string"
},
"certified_by": {
"nullable": true,
"type": "string"
},
"changed_by": {
"$ref": "#/components/schemas/ChartDataRestApi.get_list.User"
},
"changed_by_name": {
"readOnly": true
},
"changed_on_delta_humanized": {
"readOnly": true
},
"changed_on_dttm": {
"readOnly": true
},
"changed_on_utc": {
"readOnly": true
},
"created_by": {
"$ref": "#/components/schemas/ChartDataRestApi.get_list.User1"
},
"created_by_name": {
"readOnly": true
},
"created_on_delta_humanized": {
"readOnly": true
},
"dashboards": {
"$ref": "#/components/schemas/ChartDataRestApi.get_list.Dashboard"
},
"datasource_id": {
"nullable": true,
"type": "integer"
},
"datasource_name_text": {
"readOnly": true
},
"datasource_type": {
"maxLength": 200,
"nullable": true,
"type": "string"
},
"datasource_url": {
"readOnly": true
},
"description": {
"nullable": true,
"type": "string"
},
"description_markeddown": {
"readOnly": true
},
"edit_url": {
"readOnly": true
},
"form_data": {
"readOnly": true
},
"id": {
"type": "integer"
},
"is_managed_externally": {
"type": "boolean"
},
"last_saved_at": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"last_saved_by": {
"$ref": "#/components/schemas/ChartDataRestApi.get_list.User2"
},
"owners": {
"$ref": "#/components/schemas/ChartDataRestApi.get_list.User3"
},
"params": {
"nullable": true,
"type": "string"
},
"slice_name": {
"maxLength": 250,
"nullable": true,
"type": "string"
},
"slice_url": {
"readOnly": true
},
"table": {
"$ref": "#/components/schemas/ChartDataRestApi.get_list.SqlaTable"
},
"tags": {
"$ref": "#/components/schemas/ChartDataRestApi.get_list.Tag"
},
"thumbnail_url": {
"readOnly": true
},
"url": {
"readOnly": true
},
"uuid": {
"format": "uuid",
"nullable": true,
"type": "string"
},
"viz_type": {
"maxLength": 250,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"ChartDataRestApi.get_list.Dashboard": {
"properties": {
"dashboard_title": {
"maxLength": 500,
"nullable": true,
"type": "string"
},
"id": {
"type": "integer"
}
},
"type": "object"
},
"ChartDataRestApi.get_list.SqlaTable": {
"properties": {
"default_endpoint": {
"nullable": true,
"type": "string"
},
"table_name": {
"maxLength": 250,
"type": "string"
}
},
"required": [
"table_name"
],
"type": "object"
},
"ChartDataRestApi.get_list.Tag": {
"properties": {
"id": {
"type": "integer"
},
"name": {
"maxLength": 250,
"nullable": true,
"type": "string"
},
"type": {
"enum": [
1,
2,
3,
4
]
}
},
"type": "object"
},
"ChartDataRestApi.get_list.User": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"ChartDataRestApi.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"
},
"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"
},
"id": {
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"ChartDataRestApi.post": {
"properties": {
"cache_timeout": {
"description": "Duration (in seconds) of the caching timeout for this chart. Note this defaults to the datasource/table timeout if undefined.",
"nullable": true,
"type": "integer"
},
"certification_details": {
"description": "Details of the certification",
"nullable": true,
"type": "string"
},
"certified_by": {
"description": "Person or group that has certified this chart",
"nullable": true,
"type": "string"
},
"dashboards": {
"items": {
"description": "A list of dashboards to include this new chart to.",
"type": "integer"
},
"type": "array"
},
"datasource_id": {
"description": "The id of the dataset/datasource this new chart will use. A complete datasource identification needs `datasource_id` and `datasource_type`.",
"type": "integer"
},
"datasource_name": {
"description": "The datasource name.",
"nullable": true,
"type": "string"
},
"datasource_type": {
"description": "The type of dataset/datasource identified on `datasource_id`.",
"enum": [
"table",
"dataset",
"query",
"saved_query",
"view"
],
"type": "string"
},
"description": {
"description": "A description of the chart propose.",
"nullable": true,
"type": "string"
},
"external_url": {
"nullable": true,
"type": "string"
},
"is_managed_externally": {
"nullable": true,
"type": "boolean"
},
"owners": {
"items": {
"description": "Owner are users ids allowed to delete or change this chart. If left empty you will be one of the owners of the chart.",
"type": "integer"
},
"type": "array"
},
"params": {
"description": "Parameters are generated dynamically when clicking the save or overwrite button in the explore view. This JSON object for power users who may want to alter specific parameters.",
"nullable": true,
"type": "string"
},
"query_context": {
"description": "The query context represents the queries that need to run in order to generate the data the visualization, and in what format the data should be returned.",
"nullable": true,
"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 modifiedstate.",
"nullable": true,
"type": "boolean"
},
"slice_name": {
"description": "The name of the chart.",
"maxLength": 250,
"minLength": 1,
"type": "string"
},
"viz_type": {
"description": "The type of chart visualization used.",
"example": [
"bar",
"area",
"table"
],
"maxLength": 250,
"minLength": 0,
"type": "string"
}
},
"required": [
"datasource_id",
"datasource_type",
"slice_name"
],
"type": "object"
},
"ChartDataRestApi.put": {
"properties": {
"cache_timeout": {
"description": "Duration (in seconds) of the caching timeout for this chart. Note this defaults to the datasource/table timeout if undefined.",
"nullable": true,
"type": "integer"
},
"certification_details": {
"description": "Details of the certification",
"nullable": true,
"type": "string"
},
"certified_by": {
"description": "Person or group that has certified this chart",
"nullable": true,
"type": "string"
},
"dashboards": {
"items": {
"description": "A list of dashboards to include this new chart to.",
"type": "integer"
},
"type": "array"
},
"datasource_id": {
"description": "The id of the dataset/datasource this new chart will use. A complete datasource identification needs `datasource_id` and `datasource_type`.",
"nullable": true,
"type": "integer"
},
"datasource_type": {
"description": "The type of dataset/datasource identified on `datasource_id`.",
"enum": [
"table",
"dataset",
"query",
"saved_query",
"view"
],
"nullable": true,
"type": "string"
},
"description": {
"description": "A description of the chart propose.",
"nullable": true,
"type": "string"
},
"external_url": {
"nullable": true,
"type": "string"
},
"is_managed_externally": {
"nullable": true,
"type": "boolean"
},
"owners": {
"items": {
"description": "Owner are users ids allowed to delete or change this chart. If left empty you will be one of the owners of the chart.",
"type": "integer"
},
"type": "array"
},
"params": {
"description": "Parameters are generated dynamically when clicking the save or overwrite button in the explore view. This JSON object for power users who may want to alter specific parameters.",
"nullable": true,
"type": "string"
},
"query_context": {
"description": "The query context represents the queries that need to run in order to generate the data the visualization, and in what format the data should be returned.",
"nullable": true,
"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 modifiedstate.",
"nullable": true,
"type": "boolean"
},
"slice_name": {
"description": "The name of the chart.",
"maxLength": 250,
"minLength": 0,
"nullable": true,
"type": "string"
},
"tags": {
"items": {
"description": "Tags to be associated with the chart",
"type": "integer"
},
"type": "array"
},
"viz_type": {
"description": "The type of chart visualization used.",
"example": [
"bar",
"area",
"table"
],
"maxLength": 250,
"minLength": 0,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"ChartDataRollingOptionsSchema": {
"properties": {
"center": {
"description": "Should the label be at the center of the window.Default: `false`",
"example": false,
"type": "boolean"
},
"min_periods": {
"description": "The minimum amount of periods required for a row to be included in the result set.",
"example": 7,
"type": "integer"
},
"rolling_type": {
"description": "Type of rolling window. Any numpy function will work.",
"enum": [
"average",
"argmin",
"argmax",
"cumsum",
"cumprod",
"max",
"mean",
"median",
"nansum",
"nanmin",
"nanmax",
"nanmean",
"nanmedian",
"nanpercentile",
"min",
"percentile",
"prod",
"product",
"std",
"sum",
"var"
],
"example": "percentile",
"type": "string"
},
"rolling_type_options": {
"description": "Optional options to pass to rolling method. Needed for e.g. quantile operation.",
"example": {},
"type": "object"
},
"win_type": {
"description": "Type of window function. See [SciPy window functions](https://docs.scipy.org/doc/scipy/reference /signal.windows.html#module-scipy.signal.windows) for more details. Some window functions require passing additional parameters to `rolling_type_options`. For instance, to use `gaussian`, the parameter `std` needs to be provided.",
"enum": [
"boxcar",
"triang",
"blackman",
"hamming",
"bartlett",
"parzen",
"bohman",
"blackmanharris",
"nuttall",
"barthann",
"kaiser",
"gaussian",
"general_gaussian",
"slepian",
"exponential"
],
"type": "string"
},
"window": {
"description": "Size of the rolling window in days.",
"example": 7,
"type": "integer"
}
},
"required": [
"rolling_type",
"window"
],
"type": "object"
},
"ChartDataSelectOptionsSchema": {
"properties": {
"columns": {
"description": "Columns which to select from the input data, in the desired order. If columns are renamed, the original column name should be referenced here.",
"example": [
"country",
"gender",
"age"
],
"items": {
"type": "string"
},
"type": "array"
},
"exclude": {
"description": "Columns to exclude from selection.",
"example": [
"my_temp_column"
],
"items": {
"type": "string"
},
"type": "array"
},
"rename": {
"description": "columns which to rename, mapping source column to target column. For instance, `{'y': 'y2'}` will rename the column `y` to `y2`.",
"example": [
{
"age": "average_age"
}
],
"items": {
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"ChartDataSortOptionsSchema": {
"properties": {
"aggregates": {
"description": "The keys are the name of the aggregate column to be created, and the values specify the details of how to apply the aggregation. If an operator requires additional options, these can be passed here to be unpacked in the operator call. The following numpy operators are supported: average, argmin, argmax, cumsum, cumprod, max, mean, median, nansum, nanmin, nanmax, nanmean, nanmedian, min, percentile, prod, product, std, sum, var. Any options required by the operator can be passed to the `options` object.\n\nIn the example, a new column `first_quantile` is created based on values in the column `my_col` using the `percentile` operator with the `q=0.25` parameter.",
"example": {
"first_quantile": {
"column": "my_col",
"operator": "percentile",
"options": {
"q": 0.25
}
}
},
"type": "object"
},
"columns": {
"description": "columns by by which to sort. The key specifies the column name, value specifies if sorting in ascending order.",
"example": {
"country": true,
"gender": false
},
"type": "object"
}
},
"required": [
"columns"
],
"type": "object"
},
"ChartEntityResponseSchema": {
"properties": {
"cache_timeout": {
"description": "Duration (in seconds) of the caching timeout for this chart. Note this defaults to the datasource/table timeout if undefined.",
"type": "integer"
},
"certification_details": {
"description": "Details of the certification",
"type": "string"
},
"certified_by": {
"description": "Person or group that has certified this chart",
"type": "string"
},
"changed_on": {
"description": "The ISO date that the chart was last changed.",
"format": "date-time",
"type": "string"
},
"description": {
"description": "A description of the chart propose.",
"type": "string"
},
"description_markeddown": {
"description": "Sanitized HTML version of the chart description.",
"type": "string"
},
"form_data": {
"description": "Form data from the Explore controls used to form the chart's data query.",
"type": "object"
},
"id": {
"description": "The id of the chart.",
"type": "integer"
},
"slice_name": {
"description": "The name of the chart.",
"type": "string"
},
"slice_url": {
"description": "The URL of the chart.",
"type": "string"
}
},
"type": "object"
},
"ChartFavStarResponseResult": {
"properties": {
"id": {
"description": "The Chart id",
"type": "integer"
},
"value": {
"description": "The FaveStar value",
"type": "boolean"
}
},
"type": "object"
},
"ChartGetDatasourceObjectDataResponse": {
"properties": {
"datasource_id": {
"description": "The datasource identifier",
"type": "integer"
},
"datasource_type": {
"description": "The datasource type",
"type": "integer"
}
},
"type": "object"
},
"ChartGetDatasourceObjectResponse": {
"properties": {
"label": {
"description": "The name of the datasource",
"type": "string"
},
"value": {
"$ref": "#/components/schemas/ChartGetDatasourceObjectDataResponse"
}
},
"type": "object"
},
"ChartGetDatasourceResponseSchema": {
"properties": {
"count": {
"description": "The total number of datasources",
"type": "integer"
},
"result": {
"$ref": "#/components/schemas/ChartGetDatasourceObjectResponse"
}
},
"type": "object"
},
"ChartRestApi.get": {
"properties": {
"cache_timeout": {
"nullable": true,
"type": "integer"
},
"certification_details": {
"nullable": true,
"type": "string"
},
"certified_by": {
"nullable": true,
"type": "string"
},
"changed_on_delta_humanized": {
"readOnly": true
},
"dashboards": {
"$ref": "#/components/schemas/ChartRestApi.get.Dashboard"
},
"description": {
"nullable": true,
"type": "string"
},
"id": {
"type": "integer"
},
"is_managed_externally": {
"type": "boolean"
},
"owners": {
"$ref": "#/components/schemas/ChartRestApi.get.User"
},
"params": {
"nullable": true,
"type": "string"
},
"query_context": {
"nullable": true,
"type": "string"
},
"slice_name": {
"maxLength": 250,
"nullable": true,
"type": "string"
},
"tags": {
"$ref": "#/components/schemas/ChartRestApi.get.Tag"
},
"thumbnail_url": {
"readOnly": true
},
"url": {
"readOnly": true
},
"viz_type": {
"maxLength": 250,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"ChartRestApi.get.Dashboard": {
"properties": {
"dashboard_title": {
"maxLength": 500,
"nullable": true,
"type": "string"
},
"id": {
"type": "integer"
},
"json_metadata": {
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"ChartRestApi.get.Tag": {
"properties": {
"id": {
"type": "integer"
},
"name": {
"maxLength": 250,
"nullable": true,
"type": "string"
},
"type": {
"enum": [
1,
2,
3,
4
]
}
},
"type": "object"
},
"ChartRestApi.get.User": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"ChartRestApi.get_list": {
"properties": {
"cache_timeout": {
"nullable": true,
"type": "integer"
},
"certification_details": {
"nullable": true,
"type": "string"
},
"certified_by": {
"nullable": true,
"type": "string"
},
"changed_by": {
"$ref": "#/components/schemas/ChartRestApi.get_list.User"
},
"changed_by_name": {
"readOnly": true
},
"changed_on_delta_humanized": {
"readOnly": true
},
"changed_on_dttm": {
"readOnly": true
},
"changed_on_utc": {
"readOnly": true
},
"created_by": {
"$ref": "#/components/schemas/ChartRestApi.get_list.User1"
},
"created_by_name": {
"readOnly": true
},
"created_on_delta_humanized": {
"readOnly": true
},
"dashboards": {
"$ref": "#/components/schemas/ChartRestApi.get_list.Dashboard"
},
"datasource_id": {
"nullable": true,
"type": "integer"
},
"datasource_name_text": {
"readOnly": true
},
"datasource_type": {
"maxLength": 200,
"nullable": true,
"type": "string"
},
"datasource_url": {
"readOnly": true
},
"description": {
"nullable": true,
"type": "string"
},
"description_markeddown": {
"readOnly": true
},
"edit_url": {
"readOnly": true
},
"form_data": {
"readOnly": true
},
"id": {
"type": "integer"
},
"is_managed_externally": {
"type": "boolean"
},
"last_saved_at": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"last_saved_by": {
"$ref": "#/components/schemas/ChartRestApi.get_list.User2"
},
"owners": {
"$ref": "#/components/schemas/ChartRestApi.get_list.User3"
},
"params": {
"nullable": true,
"type": "string"
},
"slice_name": {
"maxLength": 250,
"nullable": true,
"type": "string"
},
"slice_url": {
"readOnly": true
},
"table": {
"$ref": "#/components/schemas/ChartRestApi.get_list.SqlaTable"
},
"tags": {
"$ref": "#/components/schemas/ChartRestApi.get_list.Tag"
},
"thumbnail_url": {
"readOnly": true
},
"url": {
"readOnly": true
},
"uuid": {
"format": "uuid",
"nullable": true,
"type": "string"
},
"viz_type": {
"maxLength": 250,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"ChartRestApi.get_list.Dashboard": {
"properties": {
"dashboard_title": {
"maxLength": 500,
"nullable": true,
"type": "string"
},
"id": {
"type": "integer"
}
},
"type": "object"
},
"ChartRestApi.get_list.SqlaTable": {
"properties": {
"default_endpoint": {
"nullable": true,
"type": "string"
},
"table_name": {
"maxLength": 250,
"type": "string"
}
},
"required": [
"table_name"
],
"type": "object"
},
"ChartRestApi.get_list.Tag": {
"properties": {
"id": {
"type": "integer"
},
"name": {
"maxLength": 250,
"nullable": true,
"type": "string"
},
"type": {
"enum": [
1,
2,
3,
4
]
}
},
"type": "object"
},
"ChartRestApi.get_list.User": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"ChartRestApi.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"
},
"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"
},
"id": {
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"ChartRestApi.post": {
"properties": {
"cache_timeout": {
"description": "Duration (in seconds) of the caching timeout for this chart. Note this defaults to the datasource/table timeout if undefined.",
"nullable": true,
"type": "integer"
},
"certification_details": {
"description": "Details of the certification",
"nullable": true,
"type": "string"
},
"certified_by": {
"description": "Person or group that has certified this chart",
"nullable": true,
"type": "string"
},
"dashboards": {
"items": {
"description": "A list of dashboards to include this new chart to.",
"type": "integer"
},
"type": "array"
},
"datasource_id": {
"description": "The id of the dataset/datasource this new chart will use. A complete datasource identification needs `datasource_id` and `datasource_type`.",
"type": "integer"
},
"datasource_name": {
"description": "The datasource name.",
"nullable": true,
"type": "string"
},
"datasource_type": {
"description": "The type of dataset/datasource identified on `datasource_id`.",
"enum": [
"table",
"dataset",
"query",
"saved_query",
"view"
],
"type": "string"
},
"description": {
"description": "A description of the chart propose.",
"nullable": true,
"type": "string"
},
"external_url": {
"nullable": true,
"type": "string"
},
"is_managed_externally": {
"nullable": true,
"type": "boolean"
},
"owners": {
"items": {
"description": "Owner are users ids allowed to delete or change this chart. If left empty you will be one of the owners of the chart.",
"type": "integer"
},
"type": "array"
},
"params": {
"description": "Parameters are generated dynamically when clicking the save or overwrite button in the explore view. This JSON object for power users who may want to alter specific parameters.",
"nullable": true,
"type": "string"
},
"query_context": {
"description": "The query context represents the queries that need to run in order to generate the data the visualization, and in what format the data should be returned.",
"nullable": true,
"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 modifiedstate.",
"nullable": true,
"type": "boolean"
},
"slice_name": {
"description": "The name of the chart.",
"maxLength": 250,
"minLength": 1,
"type": "string"
},
"viz_type": {
"description": "The type of chart visualization used.",
"example": [
"bar",
"area",
"table"
],
"maxLength": 250,
"minLength": 0,
"type": "string"
}
},
"required": [
"datasource_id",
"datasource_type",
"slice_name"
],
"type": "object"
},
"ChartRestApi.put": {
"properties": {
"cache_timeout": {
"description": "Duration (in seconds) of the caching timeout for this chart. Note this defaults to the datasource/table timeout if undefined.",
"nullable": true,
"type": "integer"
},
"certification_details": {
"description": "Details of the certification",
"nullable": true,
"type": "string"
},
"certified_by": {
"description": "Person or group that has certified this chart",
"nullable": true,
"type": "string"
},
"dashboards": {
"items": {
"description": "A list of dashboards to include this new chart to.",
"type": "integer"
},
"type": "array"
},
"datasource_id": {
"description": "The id of the dataset/datasource this new chart will use. A complete datasource identification needs `datasource_id` and `datasource_type`.",
"nullable": true,
"type": "integer"
},
"datasource_type": {
"description": "The type of dataset/datasource identified on `datasource_id`.",
"enum": [
"table",
"dataset",
"query",
"saved_query",
"view"
],
"nullable": true,
"type": "string"
},
"description": {
"description": "A description of the chart propose.",
"nullable": true,
"type": "string"
},
"external_url": {
"nullable": true,
"type": "string"
},
"is_managed_externally": {
"nullable": true,
"type": "boolean"
},
"owners": {
"items": {
"description": "Owner are users ids allowed to delete or change this chart. If left empty you will be one of the owners of the chart.",
"type": "integer"
},
"type": "array"
},
"params": {
"description": "Parameters are generated dynamically when clicking the save or overwrite button in the explore view. This JSON object for power users who may want to alter specific parameters.",
"nullable": true,
"type": "string"
},
"query_context": {
"description": "The query context represents the queries that need to run in order to generate the data the visualization, and in what format the data should be returned.",
"nullable": true,
"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 modifiedstate.",
"nullable": true,
"type": "boolean"
},
"slice_name": {
"description": "The name of the chart.",
"maxLength": 250,
"minLength": 0,
"nullable": true,
"type": "string"
},
"tags": {
"items": {
"description": "Tags to be associated with the chart",
"type": "integer"
},
"type": "array"
},
"viz_type": {
"description": "The type of chart visualization used.",
"example": [
"bar",
"area",
"table"
],
"maxLength": 250,
"minLength": 0,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"CssTemplateRestApi.get": {
"properties": {
"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"
},
"id": {
"type": "integer"
},
"template_name": {
"maxLength": 250,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"CssTemplateRestApi.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"
},
"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.User"
},
"changed_on_delta_humanized": {
"readOnly": true
},
"created_by": {
"$ref": "#/components/schemas/CssTemplateRestApi.get_list.User1"
},
"created_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"css": {
"nullable": true,
"type": "string"
},
"id": {
"type": "integer"
},
"template_name": {
"maxLength": 250,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"CssTemplateRestApi.get_list.User": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"CssTemplateRestApi.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"
},
"CssTemplateRestApi.post": {
"properties": {
"css": {
"nullable": true,
"type": "string"
},
"template_name": {
"maxLength": 250,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"CssTemplateRestApi.put": {
"properties": {
"css": {
"nullable": true,
"type": "string"
},
"template_name": {
"maxLength": 250,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"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"
},
"task_status": {
"description": "The status of the async screenshot",
"type": "string"
},
"task_updated_at": {
"description": "The timestamp of the last change in status",
"type": "string"
}
},
"type": "object"
},
"DashboardCopySchema": {
"properties": {
"css": {
"description": "Override CSS for the dashboard.",
"type": "string"
},
"dashboard_title": {
"description": "A title for the dashboard.",
"maxLength": 500,
"minLength": 0,
"nullable": true,
"type": "string"
},
"duplicate_slices": {
"description": "Whether or not to also copy all charts on the dashboard",
"type": "boolean"
},
"json_metadata": {
"description": "This JSON object is generated dynamically when clicking the save or overwrite button in the dashboard view. It is exposed here for reference and for power users who may want to alter specific parameters.",
"type": "string"
}
},
"required": [
"json_metadata"
],
"type": "object"
},
"DashboardDatasetSchema": {
"properties": {
"always_filter_main_dttm": {
"type": "boolean"
},
"cache_timeout": {
"type": "integer"
},
"column_formats": {
"type": "object"
},
"column_names": {
"items": {
"type": "string"
},
"type": "array"
},
"column_types": {
"items": {
"type": "integer"
},
"type": "array"
},
"columns": {
"items": {
"type": "object"
},
"type": "array"
},
"database": {
"$ref": "#/components/schemas/Database"
},
"datasource_name": {
"type": "string"
},
"default_endpoint": {
"type": "string"
},
"edit_url": {
"type": "string"
},
"fetch_values_predicate": {
"type": "string"
},
"filter_select": {
"type": "boolean"
},
"filter_select_enabled": {
"type": "boolean"
},
"granularity_sqla": {
"items": {
"items": {
"type": "string"
},
"type": "array"
},
"type": "array"
},
"health_check_message": {
"type": "string"
},
"id": {
"type": "integer"
},
"is_sqllab_view": {
"type": "boolean"
},
"main_dttm_col": {
"type": "string"
},
"metrics": {
"items": {
"type": "object"
},
"type": "array"
},
"name": {
"type": "string"
},
"normalize_columns": {
"type": "boolean"
},
"offset": {
"type": "integer"
},
"order_by_choices": {
"items": {
"items": {
"type": "string"
},
"type": "array"
},
"type": "array"
},
"owners": {
"items": {
"type": "object"
},
"type": "array"
},
"params": {
"type": "string"
},
"perm": {
"type": "string"
},
"schema": {
"type": "string"
},
"select_star": {
"type": "string"
},
"sql": {
"type": "string"
},
"table_name": {
"type": "string"
},
"template_params": {
"type": "string"
},
"time_grain_sqla": {
"items": {
"items": {
"type": "string"
},
"type": "array"
},
"type": "array"
},
"type": {
"type": "string"
},
"uid": {
"type": "string"
},
"verbose_map": {
"additionalProperties": {
"type": "string"
},
"type": "object"
}
},
"type": "object"
},
"DashboardGetResponseSchema": {
"properties": {
"certification_details": {
"description": "Details of the certification",
"type": "string"
},
"certified_by": {
"description": "Person or group that has certified this dashboard",
"type": "string"
},
"changed_by": {
"$ref": "#/components/schemas/User"
},
"changed_by_name": {
"type": "string"
},
"changed_on": {
"format": "date-time",
"type": "string"
},
"changed_on_delta_humanized": {
"type": "string"
},
"charts": {
"items": {
"description": "The names of the dashboard's charts. Names are used for legacy reasons.",
"type": "string"
},
"type": "array"
},
"created_by": {
"$ref": "#/components/schemas/User"
},
"created_on_delta_humanized": {
"type": "string"
},
"css": {
"description": "Override CSS for the dashboard.",
"type": "string"
},
"dashboard_title": {
"description": "A title for the dashboard.",
"type": "string"
},
"id": {
"type": "integer"
},
"is_managed_externally": {
"nullable": true,
"type": "boolean"
},
"json_metadata": {
"description": "This JSON object is generated dynamically when clicking the save or overwrite button in the dashboard view. It is exposed here for reference and for power users who may want to alter specific parameters.",
"type": "string"
},
"owners": {
"items": {
"$ref": "#/components/schemas/User"
},
"type": "array"
},
"position_json": {
"description": "This json object describes the positioning of the widgets in the dashboard. It is dynamically generated when adjusting the widgets size and positions by using drag & drop in the dashboard view",
"type": "string"
},
"published": {
"type": "boolean"
},
"roles": {
"items": {
"$ref": "#/components/schemas/Roles"
},
"type": "array"
},
"slug": {
"type": "string"
},
"tags": {
"items": {
"$ref": "#/components/schemas/Tag"
},
"type": "array"
},
"thumbnail_url": {
"nullable": true,
"type": "string"
},
"url": {
"type": "string"
}
},
"type": "object"
},
"DashboardPermalinkStateSchema": {
"properties": {
"activeTabs": {
"description": "Current active dashboard tabs",
"items": {
"type": "string"
},
"nullable": true,
"type": "array"
},
"anchor": {
"description": "Optional anchor link added to url hash",
"nullable": true,
"type": "string"
},
"dataMask": {
"description": "Data mask used for native filter state",
"nullable": true,
"type": "object"
},
"urlParams": {
"description": "URL Parameters",
"items": {
"description": "URL Parameter key-value pair",
"nullable": true
},
"nullable": true,
"type": "array"
}
},
"type": "object"
},
"DashboardRestApi.get": {
"properties": {
"id": {
"type": "integer"
}
},
"type": "object"
},
"DashboardRestApi.get_list": {
"properties": {
"certification_details": {
"nullable": true,
"type": "string"
},
"certified_by": {
"nullable": true,
"type": "string"
},
"changed_by": {
"$ref": "#/components/schemas/DashboardRestApi.get_list.User"
},
"changed_by_name": {
"readOnly": true
},
"changed_on_delta_humanized": {
"readOnly": true
},
"changed_on_utc": {
"readOnly": true
},
"created_by": {
"$ref": "#/components/schemas/DashboardRestApi.get_list.User1"
},
"created_on_delta_humanized": {
"readOnly": true
},
"dashboard_title": {
"maxLength": 500,
"nullable": true,
"type": "string"
},
"id": {
"type": "integer"
},
"is_managed_externally": {
"type": "boolean"
},
"owners": {
"$ref": "#/components/schemas/DashboardRestApi.get_list.User2"
},
"published": {
"nullable": true,
"type": "boolean"
},
"roles": {
"$ref": "#/components/schemas/DashboardRestApi.get_list.Role"
},
"slug": {
"maxLength": 255,
"nullable": true,
"type": "string"
},
"status": {
"readOnly": true
},
"tags": {
"$ref": "#/components/schemas/DashboardRestApi.get_list.Tag"
},
"thumbnail_url": {
"readOnly": true
},
"url": {
"readOnly": true
},
"uuid": {
"format": "uuid",
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"DashboardRestApi.get_list.Role": {
"properties": {
"id": {
"type": "integer"
},
"name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"DashboardRestApi.get_list.Tag": {
"properties": {
"id": {
"type": "integer"
},
"name": {
"maxLength": 250,
"nullable": true,
"type": "string"
},
"type": {
"enum": [
1,
2,
3,
4
]
}
},
"type": "object"
},
"DashboardRestApi.get_list.User": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"DashboardRestApi.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"
},
"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": {
"description": "Details of the certification",
"nullable": true,
"type": "string"
},
"certified_by": {
"description": "Person or group that has certified this dashboard",
"nullable": true,
"type": "string"
},
"css": {
"description": "Override CSS for the dashboard.",
"type": "string"
},
"dashboard_title": {
"description": "A title for the dashboard.",
"maxLength": 500,
"minLength": 0,
"nullable": true,
"type": "string"
},
"external_url": {
"nullable": true,
"type": "string"
},
"is_managed_externally": {
"nullable": true,
"type": "boolean"
},
"json_metadata": {
"description": "This JSON object is generated dynamically when clicking the save or overwrite button in the dashboard view. It is exposed here for reference and for power users who may want to alter specific parameters.",
"type": "string"
},
"owners": {
"items": {
"description": "Owner are users ids allowed to delete or change this dashboard. If left empty you will be one of the owners of the dashboard.",
"type": "integer"
},
"type": "array"
},
"position_json": {
"description": "This json object describes the positioning of the widgets in the dashboard. It is dynamically generated when adjusting the widgets size and positions by using drag & drop in the dashboard view",
"type": "string"
},
"published": {
"description": "Determines whether or not this dashboard is visible in the list of all dashboards.",
"type": "boolean"
},
"roles": {
"items": {
"description": "Roles is a list which defines access to the dashboard. These roles are always applied in addition to restrictions on dataset level access. If no roles defined then the dashboard is available to all roles.",
"type": "integer"
},
"type": "array"
},
"slug": {
"description": "Unique identifying part for the web address of the dashboard.",
"maxLength": 255,
"minLength": 1,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"DashboardRestApi.put": {
"properties": {
"certification_details": {
"description": "Details of the certification",
"nullable": true,
"type": "string"
},
"certified_by": {
"description": "Person or group that has certified this dashboard",
"nullable": true,
"type": "string"
},
"css": {
"description": "Override CSS for the dashboard.",
"nullable": true,
"type": "string"
},
"dashboard_title": {
"description": "A title for the dashboard.",
"maxLength": 500,
"minLength": 0,
"nullable": true,
"type": "string"
},
"external_url": {
"nullable": true,
"type": "string"
},
"is_managed_externally": {
"nullable": true,
"type": "boolean"
},
"json_metadata": {
"description": "This JSON object is generated dynamically when clicking the save or overwrite button in the dashboard view. It is exposed here for reference and for power users who may want to alter specific parameters.",
"nullable": true,
"type": "string"
},
"owners": {
"items": {
"description": "Owner are users ids allowed to delete or change this dashboard. If left empty you will be one of the owners of the dashboard.",
"nullable": true,
"type": "integer"
},
"type": "array"
},
"position_json": {
"description": "This json object describes the positioning of the widgets in the dashboard. It is dynamically generated when adjusting the widgets size and positions by using drag & drop in the dashboard view",
"nullable": true,
"type": "string"
},
"published": {
"description": "Determines whether or not this dashboard is visible in the list of all dashboards.",
"nullable": true,
"type": "boolean"
},
"roles": {
"items": {
"description": "Roles is a list which defines access to the dashboard. These roles are always applied in addition to restrictions on dataset level access. If no roles defined then the dashboard is available to all roles.",
"nullable": true,
"type": "integer"
},
"type": "array"
},
"slug": {
"description": "Unique identifying part for the web address of the dashboard.",
"maxLength": 255,
"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"
},
"allows_subquery": {
"type": "boolean"
},
"allows_virtual_table_explore": {
"type": "boolean"
},
"backend": {
"type": "string"
},
"disable_data_preview": {
"type": "boolean"
},
"disable_drill_to_detail": {
"type": "boolean"
},
"explore_database_id": {
"type": "integer"
},
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
},
"type": "object"
},
"Database1": {
"properties": {
"database_name": {
"type": "string"
}
},
"type": "object"
},
"DatabaseConnectionSchema": {
"properties": {
"allow_ctas": {
"description": "Allow CREATE TABLE AS option in SQL Lab",
"type": "boolean"
},
"allow_cvas": {
"description": "Allow CREATE VIEW AS option in SQL Lab",
"type": "boolean"
},
"allow_dml": {
"description": "Allow users to run non-SELECT statements (UPDATE, DELETE, CREATE, ...) in SQL Lab",
"type": "boolean"
},
"allow_file_upload": {
"description": "Allow to upload CSV file data into this databaseIf selected, please set the schemas allowed for csv upload in Extra.",
"type": "boolean"
},
"allow_run_async": {
"description": "Operate the database in asynchronous mode, meaning that the queries are executed on remote workers as opposed to on the web server itself. This assumes that you have a Celery worker setup as well as a results backend. Refer to the installation docs for more information.",
"type": "boolean"
},
"backend": {
"description": "SQLAlchemy engine to use",
"nullable": true,
"type": "string"
},
"cache_timeout": {
"description": "Duration (in seconds) of the caching timeout for charts of this database. A timeout of 0 indicates that the cache never expires. Note this defaults to the global timeout if undefined.",
"nullable": true,
"type": "integer"
},
"configuration_method": {
"description": "Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri.",
"type": "string"
},
"database_name": {
"description": "A database name to identify this connection.",
"maxLength": 250,
"minLength": 1,
"nullable": true,
"type": "string"
},
"driver": {
"description": "SQLAlchemy driver to use",
"nullable": true,
"type": "string"
},
"engine_information": {
"$ref": "#/components/schemas/EngineInformation"
},
"expose_in_sqllab": {
"description": "Expose this database to SQLLab",
"type": "boolean"
},
"extra": {
"description": "<p>JSON string containing extra configuration elements.<br>1. The <code>engine_params</code> object gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine\" rel=\"noopener noreferrer\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\" rel=\"noopener noreferrer\">sqlalchemy.MetaData</a> call.<br>2. The <code>metadata_cache_timeout</code> is a cache timeout setting in seconds for metadata fetch of this database. Specify it as <strong>\"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}</strong>. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.<br>3. The <code>schemas_allowed_for_file_upload</code> is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as <strong>\"schemas_allowed_for_file_upload\": [\"public\", \"csv_upload\"]</strong>. If database flavor does not support schema or any schema is allowed to be accessed, just leave the list empty<br>4. The <code>version</code> field is a string specifying the this db's version. This should be used with Presto DBs so that the syntax is correct<br>5. The <code>allows_virtual_table_explore</code> field is a boolean specifying whether or not the Explore button in SQL Lab results is shown.<br>6. The <code>disable_data_preview</code> field is a boolean specifying whether or not data preview queries will be run when fetching table metadata in SQL Lab.7. The <code>disable_drill_to_detail</code> field is a boolean specifying whether or notdrill to detail is disabled for the database.8. The <code>allow_multi_catalog</code> indicates if the database allows changing the default catalog when running queries and creating datasets.</p>",
"type": "string"
},
"force_ctas_schema": {
"description": "When allowing CREATE TABLE AS option in SQL Lab, this option forces the table to be created in this schema",
"maxLength": 250,
"minLength": 0,
"nullable": true,
"type": "string"
},
"id": {
"description": "Database ID (for updates)",
"type": "integer"
},
"impersonate_user": {
"description": "If Presto, all the queries in SQL Lab are going to be executed as the currently logged on user who must have permission to run them.<br/>If Hive and hive.server2.enable.doAs is enabled, will run the queries as service account, but impersonate the currently logged on user via hive.server2.proxy.user property.",
"type": "boolean"
},
"is_managed_externally": {
"nullable": true,
"type": "boolean"
},
"masked_encrypted_extra": {
"description": "<p>JSON string containing additional connection configuration.<br>This is used to provide connection information for systems like Hive, Presto, and BigQuery, which do not conform to the username:password syntax normally used by SQLAlchemy.</p>",
"nullable": true,
"type": "string"
},
"parameters": {
"additionalProperties": {},
"description": "DB-specific parameters for configuration",
"type": "object"
},
"parameters_schema": {
"additionalProperties": {},
"description": "JSONSchema for configuring the database by parameters instead of SQLAlchemy URI",
"type": "object"
},
"server_cert": {
"description": "<p>Optional CA_BUNDLE contents to validate HTTPS requests. Only available on certain database engines.</p>",
"nullable": true,
"type": "string"
},
"sqlalchemy_uri": {
"description": "<p>Refer to the <a href=\"https://docs.sqlalchemy.org/en/rel_1_2/core/engines.html#database-urls\" rel=\"noopener noreferrer\">SqlAlchemy docs</a> for more information on how to structure your URI.</p>",
"maxLength": 1024,
"minLength": 1,
"type": "string"
},
"ssh_tunnel": {
"allOf": [
{
"$ref": "#/components/schemas/DatabaseSSHTunnel"
}
],
"nullable": true
},
"uuid": {
"type": "string"
}
},
"type": "object"
},
"DatabaseFunctionNamesResponse": {
"properties": {
"function_names": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"DatabaseRelatedChart": {
"properties": {
"id": {
"type": "integer"
},
"slice_name": {
"type": "string"
},
"viz_type": {
"type": "string"
}
},
"type": "object"
},
"DatabaseRelatedCharts": {
"properties": {
"count": {
"description": "Chart count",
"type": "integer"
},
"result": {
"description": "A list of dashboards",
"items": {
"$ref": "#/components/schemas/DatabaseRelatedChart"
},
"type": "array"
}
},
"type": "object"
},
"DatabaseRelatedDashboard": {
"properties": {
"id": {
"type": "integer"
},
"json_metadata": {
"type": "object"
},
"slug": {
"type": "string"
},
"title": {
"type": "string"
}
},
"type": "object"
},
"DatabaseRelatedDashboards": {
"properties": {
"count": {
"description": "Dashboard count",
"type": "integer"
},
"result": {
"description": "A list of dashboards",
"items": {
"$ref": "#/components/schemas/DatabaseRelatedDashboard"
},
"type": "array"
}
},
"type": "object"
},
"DatabaseRelatedObjectsResponse": {
"properties": {
"charts": {
"$ref": "#/components/schemas/DatabaseRelatedCharts"
},
"dashboards": {
"$ref": "#/components/schemas/DatabaseRelatedDashboards"
}
},
"type": "object"
},
"DatabaseRestApi.get": {
"properties": {
"allow_ctas": {
"nullable": true,
"type": "boolean"
},
"allow_cvas": {
"nullable": true,
"type": "boolean"
},
"allow_dml": {
"nullable": true,
"type": "boolean"
},
"allow_file_upload": {
"nullable": true,
"type": "boolean"
},
"allow_run_async": {
"nullable": true,
"type": "boolean"
},
"backend": {
"readOnly": true
},
"cache_timeout": {
"nullable": true,
"type": "integer"
},
"configuration_method": {
"maxLength": 255,
"nullable": true,
"type": "string"
},
"database_name": {
"maxLength": 250,
"type": "string"
},
"driver": {
"readOnly": true
},
"engine_information": {
"readOnly": true
},
"expose_in_sqllab": {
"nullable": true,
"type": "boolean"
},
"force_ctas_schema": {
"maxLength": 250,
"nullable": true,
"type": "string"
},
"id": {
"type": "integer"
},
"impersonate_user": {
"nullable": true,
"type": "boolean"
},
"is_managed_externally": {
"type": "boolean"
},
"uuid": {
"format": "uuid",
"nullable": true,
"type": "string"
}
},
"required": [
"database_name"
],
"type": "object"
},
"DatabaseRestApi.get_list": {
"properties": {
"allow_ctas": {
"nullable": true,
"type": "boolean"
},
"allow_cvas": {
"nullable": true,
"type": "boolean"
},
"allow_dml": {
"nullable": true,
"type": "boolean"
},
"allow_file_upload": {
"nullable": true,
"type": "boolean"
},
"allow_multi_catalog": {
"readOnly": true
},
"allow_run_async": {
"nullable": true,
"type": "boolean"
},
"allows_cost_estimate": {
"readOnly": true
},
"allows_subquery": {
"readOnly": true
},
"allows_virtual_table_explore": {
"readOnly": true
},
"backend": {
"readOnly": true
},
"changed_by": {
"$ref": "#/components/schemas/DatabaseRestApi.get_list.User"
},
"changed_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"changed_on_delta_humanized": {
"readOnly": true
},
"created_by": {
"$ref": "#/components/schemas/DatabaseRestApi.get_list.User1"
},
"database_name": {
"maxLength": 250,
"type": "string"
},
"disable_data_preview": {
"readOnly": true
},
"disable_drill_to_detail": {
"readOnly": true
},
"engine_information": {
"readOnly": true
},
"explore_database_id": {
"readOnly": true
},
"expose_in_sqllab": {
"nullable": true,
"type": "boolean"
},
"extra": {
"nullable": true,
"type": "string"
},
"force_ctas_schema": {
"maxLength": 250,
"nullable": true,
"type": "string"
},
"id": {
"type": "integer"
},
"uuid": {
"format": "uuid",
"nullable": true,
"type": "string"
}
},
"required": [
"database_name"
],
"type": "object"
},
"DatabaseRestApi.get_list.User": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"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": {
"description": "Allow CREATE TABLE AS option in SQL Lab",
"type": "boolean"
},
"allow_cvas": {
"description": "Allow CREATE VIEW AS option in SQL Lab",
"type": "boolean"
},
"allow_dml": {
"description": "Allow users to run non-SELECT statements (UPDATE, DELETE, CREATE, ...) in SQL Lab",
"type": "boolean"
},
"allow_file_upload": {
"description": "Allow to upload CSV file data into this databaseIf selected, please set the schemas allowed for csv upload in Extra.",
"type": "boolean"
},
"allow_run_async": {
"description": "Operate the database in asynchronous mode, meaning that the queries are executed on remote workers as opposed to on the web server itself. This assumes that you have a Celery worker setup as well as a results backend. Refer to the installation docs for more information.",
"type": "boolean"
},
"cache_timeout": {
"description": "Duration (in seconds) of the caching timeout for charts of this database. A timeout of 0 indicates that the cache never expires. Note this defaults to the global timeout if undefined.",
"nullable": true,
"type": "integer"
},
"configuration_method": {
"default": "sqlalchemy_form",
"description": "Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri.",
"enum": [
"sqlalchemy_form",
"dynamic_form"
]
},
"database_name": {
"description": "A database name to identify this connection.",
"maxLength": 250,
"minLength": 1,
"type": "string"
},
"driver": {
"description": "SQLAlchemy driver to use",
"nullable": true,
"type": "string"
},
"engine": {
"description": "SQLAlchemy engine to use",
"nullable": true,
"type": "string"
},
"expose_in_sqllab": {
"description": "Expose this database to SQLLab",
"type": "boolean"
},
"external_url": {
"nullable": true,
"type": "string"
},
"extra": {
"description": "<p>JSON string containing extra configuration elements.<br>1. The <code>engine_params</code> object gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine\" rel=\"noopener noreferrer\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\" rel=\"noopener noreferrer\">sqlalchemy.MetaData</a> call.<br>2. The <code>metadata_cache_timeout</code> is a cache timeout setting in seconds for metadata fetch of this database. Specify it as <strong>\"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}</strong>. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.<br>3. The <code>schemas_allowed_for_file_upload</code> is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as <strong>\"schemas_allowed_for_file_upload\": [\"public\", \"csv_upload\"]</strong>. If database flavor does not support schema or any schema is allowed to be accessed, just leave the list empty<br>4. The <code>version</code> field is a string specifying the this db's version. This should be used with Presto DBs so that the syntax is correct<br>5. The <code>allows_virtual_table_explore</code> field is a boolean specifying whether or not the Explore button in SQL Lab results is shown.<br>6. The <code>disable_data_preview</code> field is a boolean specifying whether or not data preview queries will be run when fetching table metadata in SQL Lab.7. The <code>disable_drill_to_detail</code> field is a boolean specifying whether or notdrill to detail is disabled for the database.8. The <code>allow_multi_catalog</code> indicates if the database allows changing the default catalog when running queries and creating datasets.</p>",
"type": "string"
},
"force_ctas_schema": {
"description": "When allowing CREATE TABLE AS option in SQL Lab, this option forces the table to be created in this schema",
"maxLength": 250,
"minLength": 0,
"nullable": true,
"type": "string"
},
"impersonate_user": {
"description": "If Presto, all the queries in SQL Lab are going to be executed as the currently logged on user who must have permission to run them.<br/>If Hive and hive.server2.enable.doAs is enabled, will run the queries as service account, but impersonate the currently logged on user via hive.server2.proxy.user property.",
"type": "boolean"
},
"is_managed_externally": {
"nullable": true,
"type": "boolean"
},
"masked_encrypted_extra": {
"description": "<p>JSON string containing additional connection configuration.<br>This is used to provide connection information for systems like Hive, Presto, and BigQuery, which do not conform to the username:password syntax normally used by SQLAlchemy.</p>",
"nullable": true,
"type": "string"
},
"parameters": {
"additionalProperties": {},
"description": "DB-specific parameters for configuration",
"type": "object"
},
"server_cert": {
"description": "<p>Optional CA_BUNDLE contents to validate HTTPS requests. Only available on certain database engines.</p>",
"nullable": true,
"type": "string"
},
"sqlalchemy_uri": {
"description": "<p>Refer to the <a href=\"https://docs.sqlalchemy.org/en/rel_1_2/core/engines.html#database-urls\" rel=\"noopener noreferrer\">SqlAlchemy docs</a> for more information on how to structure your URI.</p>",
"maxLength": 1024,
"minLength": 1,
"type": "string"
},
"ssh_tunnel": {
"allOf": [
{
"$ref": "#/components/schemas/DatabaseSSHTunnel"
}
],
"nullable": true
},
"uuid": {
"type": "string"
}
},
"required": [
"database_name"
],
"type": "object"
},
"DatabaseRestApi.put": {
"properties": {
"allow_ctas": {
"description": "Allow CREATE TABLE AS option in SQL Lab",
"type": "boolean"
},
"allow_cvas": {
"description": "Allow CREATE VIEW AS option in SQL Lab",
"type": "boolean"
},
"allow_dml": {
"description": "Allow users to run non-SELECT statements (UPDATE, DELETE, CREATE, ...) in SQL Lab",
"type": "boolean"
},
"allow_file_upload": {
"description": "Allow to upload CSV file data into this databaseIf selected, please set the schemas allowed for csv upload in Extra.",
"type": "boolean"
},
"allow_run_async": {
"description": "Operate the database in asynchronous mode, meaning that the queries are executed on remote workers as opposed to on the web server itself. This assumes that you have a Celery worker setup as well as a results backend. Refer to the installation docs for more information.",
"type": "boolean"
},
"cache_timeout": {
"description": "Duration (in seconds) of the caching timeout for charts of this database. A timeout of 0 indicates that the cache never expires. Note this defaults to the global timeout if undefined.",
"nullable": true,
"type": "integer"
},
"configuration_method": {
"default": "sqlalchemy_form",
"description": "Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri.",
"enum": [
"sqlalchemy_form",
"dynamic_form"
]
},
"database_name": {
"description": "A database name to identify this connection.",
"maxLength": 250,
"minLength": 1,
"nullable": true,
"type": "string"
},
"driver": {
"description": "SQLAlchemy driver to use",
"nullable": true,
"type": "string"
},
"engine": {
"description": "SQLAlchemy engine to use",
"nullable": true,
"type": "string"
},
"expose_in_sqllab": {
"description": "Expose this database to SQLLab",
"type": "boolean"
},
"external_url": {
"nullable": true,
"type": "string"
},
"extra": {
"description": "<p>JSON string containing extra configuration elements.<br>1. The <code>engine_params</code> object gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine\" rel=\"noopener noreferrer\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\" rel=\"noopener noreferrer\">sqlalchemy.MetaData</a> call.<br>2. The <code>metadata_cache_timeout</code> is a cache timeout setting in seconds for metadata fetch of this database. Specify it as <strong>\"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}</strong>. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.<br>3. The <code>schemas_allowed_for_file_upload</code> is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as <strong>\"schemas_allowed_for_file_upload\": [\"public\", \"csv_upload\"]</strong>. If database flavor does not support schema or any schema is allowed to be accessed, just leave the list empty<br>4. The <code>version</code> field is a string specifying the this db's version. This should be used with Presto DBs so that the syntax is correct<br>5. The <code>allows_virtual_table_explore</code> field is a boolean specifying whether or not the Explore button in SQL Lab results is shown.<br>6. The <code>disable_data_preview</code> field is a boolean specifying whether or not data preview queries will be run when fetching table metadata in SQL Lab.7. The <code>disable_drill_to_detail</code> field is a boolean specifying whether or notdrill to detail is disabled for the database.8. The <code>allow_multi_catalog</code> indicates if the database allows changing the default catalog when running queries and creating datasets.</p>",
"type": "string"
},
"force_ctas_schema": {
"description": "When allowing CREATE TABLE AS option in SQL Lab, this option forces the table to be created in this schema",
"maxLength": 250,
"minLength": 0,
"nullable": true,
"type": "string"
},
"impersonate_user": {
"description": "If Presto, all the queries in SQL Lab are going to be executed as the currently logged on user who must have permission to run them.<br/>If Hive and hive.server2.enable.doAs is enabled, will run the queries as service account, but impersonate the currently logged on user via hive.server2.proxy.user property.",
"type": "boolean"
},
"is_managed_externally": {
"nullable": true,
"type": "boolean"
},
"masked_encrypted_extra": {
"description": "<p>JSON string containing additional connection configuration.<br>This is used to provide connection information for systems like Hive, Presto, and BigQuery, which do not conform to the username:password syntax normally used by SQLAlchemy.</p>",
"nullable": true,
"type": "string"
},
"parameters": {
"additionalProperties": {},
"description": "DB-specific parameters for configuration",
"type": "object"
},
"server_cert": {
"description": "<p>Optional CA_BUNDLE contents to validate HTTPS requests. Only available on certain database engines.</p>",
"nullable": true,
"type": "string"
},
"sqlalchemy_uri": {
"description": "<p>Refer to the <a href=\"https://docs.sqlalchemy.org/en/rel_1_2/core/engines.html#database-urls\" rel=\"noopener noreferrer\">SqlAlchemy docs</a> for more information on how to structure your URI.</p>",
"maxLength": 1024,
"minLength": 0,
"type": "string"
},
"ssh_tunnel": {
"allOf": [
{
"$ref": "#/components/schemas/DatabaseSSHTunnel"
}
],
"nullable": true
},
"uuid": {
"type": "string"
}
},
"type": "object"
},
"DatabaseSSHTunnel": {
"properties": {
"id": {
"description": "SSH Tunnel ID (for updates)",
"nullable": true,
"type": "integer"
},
"password": {
"type": "string"
},
"private_key": {
"type": "string"
},
"private_key_password": {
"type": "string"
},
"server_address": {
"type": "string"
},
"server_port": {
"type": "integer"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"DatabaseSchemaAccessForFileUploadResponse": {
"properties": {
"schemas": {
"description": "The list of schemas allowed for the database to upload information",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"DatabaseTablesResponse": {
"properties": {
"extra": {
"description": "Extra data used to specify column metadata",
"type": "object"
},
"type": {
"description": "table or view",
"type": "string"
},
"value": {
"description": "The table or view name",
"type": "string"
}
},
"type": "object"
},
"DatabaseTestConnectionSchema": {
"properties": {
"configuration_method": {
"default": "sqlalchemy_form",
"description": "Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri.",
"enum": [
"sqlalchemy_form",
"dynamic_form"
]
},
"database_name": {
"description": "A database name to identify this connection.",
"maxLength": 250,
"minLength": 1,
"nullable": true,
"type": "string"
},
"driver": {
"description": "SQLAlchemy driver to use",
"nullable": true,
"type": "string"
},
"engine": {
"description": "SQLAlchemy engine to use",
"nullable": true,
"type": "string"
},
"extra": {
"description": "<p>JSON string containing extra configuration elements.<br>1. The <code>engine_params</code> object gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine\" rel=\"noopener noreferrer\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\" rel=\"noopener noreferrer\">sqlalchemy.MetaData</a> call.<br>2. The <code>metadata_cache_timeout</code> is a cache timeout setting in seconds for metadata fetch of this database. Specify it as <strong>\"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}</strong>. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.<br>3. The <code>schemas_allowed_for_file_upload</code> is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as <strong>\"schemas_allowed_for_file_upload\": [\"public\", \"csv_upload\"]</strong>. If database flavor does not support schema or any schema is allowed to be accessed, just leave the list empty<br>4. The <code>version</code> field is a string specifying the this db's version. This should be used with Presto DBs so that the syntax is correct<br>5. The <code>allows_virtual_table_explore</code> field is a boolean specifying whether or not the Explore button in SQL Lab results is shown.<br>6. The <code>disable_data_preview</code> field is a boolean specifying whether or not data preview queries will be run when fetching table metadata in SQL Lab.7. The <code>disable_drill_to_detail</code> field is a boolean specifying whether or notdrill to detail is disabled for the database.8. The <code>allow_multi_catalog</code> indicates if the database allows changing the default catalog when running queries and creating datasets.</p>",
"type": "string"
},
"impersonate_user": {
"description": "If Presto, all the queries in SQL Lab are going to be executed as the currently logged on user who must have permission to run them.<br/>If Hive and hive.server2.enable.doAs is enabled, will run the queries as service account, but impersonate the currently logged on user via hive.server2.proxy.user property.",
"type": "boolean"
},
"masked_encrypted_extra": {
"description": "<p>JSON string containing additional connection configuration.<br>This is used to provide connection information for systems like Hive, Presto, and BigQuery, which do not conform to the username:password syntax normally used by SQLAlchemy.</p>",
"nullable": true,
"type": "string"
},
"parameters": {
"additionalProperties": {},
"description": "DB-specific parameters for configuration",
"type": "object"
},
"server_cert": {
"description": "<p>Optional CA_BUNDLE contents to validate HTTPS requests. Only available on certain database engines.</p>",
"nullable": true,
"type": "string"
},
"sqlalchemy_uri": {
"description": "<p>Refer to the <a href=\"https://docs.sqlalchemy.org/en/rel_1_2/core/engines.html#database-urls\" rel=\"noopener noreferrer\">SqlAlchemy docs</a> for more information on how to structure your URI.</p>",
"maxLength": 1024,
"minLength": 1,
"type": "string"
},
"ssh_tunnel": {
"allOf": [
{
"$ref": "#/components/schemas/DatabaseSSHTunnel"
}
],
"nullable": true
}
},
"type": "object"
},
"DatabaseValidateParametersSchema": {
"properties": {
"catalog": {
"additionalProperties": {
"nullable": true
},
"description": "Gsheets specific column for managing label to sheet urls",
"type": "object"
},
"configuration_method": {
"description": "Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri.",
"enum": [
"sqlalchemy_form",
"dynamic_form"
]
},
"database_name": {
"description": "A database name to identify this connection.",
"maxLength": 250,
"minLength": 1,
"nullable": true,
"type": "string"
},
"driver": {
"description": "SQLAlchemy driver to use",
"nullable": true,
"type": "string"
},
"engine": {
"description": "SQLAlchemy engine to use",
"type": "string"
},
"extra": {
"description": "<p>JSON string containing extra configuration elements.<br>1. The <code>engine_params</code> object gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine\" rel=\"noopener noreferrer\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\" rel=\"noopener noreferrer\">sqlalchemy.MetaData</a> call.<br>2. The <code>metadata_cache_timeout</code> is a cache timeout setting in seconds for metadata fetch of this database. Specify it as <strong>\"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}</strong>. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.<br>3. The <code>schemas_allowed_for_file_upload</code> is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as <strong>\"schemas_allowed_for_file_upload\": [\"public\", \"csv_upload\"]</strong>. If database flavor does not support schema or any schema is allowed to be accessed, just leave the list empty<br>4. The <code>version</code> field is a string specifying the this db's version. This should be used with Presto DBs so that the syntax is correct<br>5. The <code>allows_virtual_table_explore</code> field is a boolean specifying whether or not the Explore button in SQL Lab results is shown.<br>6. The <code>disable_data_preview</code> field is a boolean specifying whether or not data preview queries will be run when fetching table metadata in SQL Lab.7. The <code>disable_drill_to_detail</code> field is a boolean specifying whether or notdrill to detail is disabled for the database.8. The <code>allow_multi_catalog</code> indicates if the database allows changing the default catalog when running queries and creating datasets.</p>",
"type": "string"
},
"id": {
"description": "Database ID (for updates)",
"nullable": true,
"type": "integer"
},
"impersonate_user": {
"description": "If Presto, all the queries in SQL Lab are going to be executed as the currently logged on user who must have permission to run them.<br/>If Hive and hive.server2.enable.doAs is enabled, will run the queries as service account, but impersonate the currently logged on user via hive.server2.proxy.user property.",
"type": "boolean"
},
"masked_encrypted_extra": {
"description": "<p>JSON string containing additional connection configuration.<br>This is used to provide connection information for systems like Hive, Presto, and BigQuery, which do not conform to the username:password syntax normally used by SQLAlchemy.</p>",
"nullable": true,
"type": "string"
},
"parameters": {
"additionalProperties": {
"nullable": true
},
"description": "DB-specific parameters for configuration",
"type": "object"
},
"server_cert": {
"description": "<p>Optional CA_BUNDLE contents to validate HTTPS requests. Only available on certain database engines.</p>",
"nullable": true,
"type": "string"
}
},
"required": [
"configuration_method",
"engine"
],
"type": "object"
},
"Dataset": {
"properties": {
"cache_timeout": {
"description": "Duration (in seconds) of the caching timeout for this dataset.",
"type": "integer"
},
"column_formats": {
"description": "Column formats.",
"type": "object"
},
"columns": {
"description": "Columns metadata.",
"items": {
"type": "object"
},
"type": "array"
},
"database": {
"description": "Database associated with the dataset.",
"type": "object"
},
"datasource_name": {
"description": "Dataset name.",
"type": "string"
},
"default_endpoint": {
"description": "Default endpoint for the dataset.",
"type": "string"
},
"description": {
"description": "Dataset description.",
"type": "string"
},
"edit_url": {
"description": "The URL for editing the dataset.",
"type": "string"
},
"extra": {
"description": "JSON string containing extra configuration elements.",
"type": "object"
},
"fetch_values_predicate": {
"description": "Predicate used when fetching values from the dataset.",
"type": "string"
},
"filter_select": {
"description": "SELECT filter applied to the dataset.",
"type": "boolean"
},
"filter_select_enabled": {
"description": "If the SELECT filter is enabled.",
"type": "boolean"
},
"granularity_sqla": {
"description": "Name of temporal column used for time filtering for SQL datasources. This field is deprecated, use `granularity` instead.",
"items": {
"items": {
"type": "object"
},
"type": "array"
},
"type": "array"
},
"health_check_message": {
"description": "Health check message.",
"type": "string"
},
"id": {
"description": "Dataset ID.",
"type": "integer"
},
"is_sqllab_view": {
"description": "If the dataset is a SQL Lab view.",
"type": "boolean"
},
"main_dttm_col": {
"description": "The main temporal column.",
"type": "string"
},
"metrics": {
"description": "Dataset metrics.",
"items": {
"type": "object"
},
"type": "array"
},
"name": {
"description": "Dataset name.",
"type": "string"
},
"offset": {
"description": "Dataset offset.",
"type": "integer"
},
"order_by_choices": {
"description": "List of order by columns.",
"items": {
"items": {
"type": "string"
},
"type": "array"
},
"type": "array"
},
"owners": {
"description": "List of owners identifiers",
"items": {
"type": "integer"
},
"type": "array"
},
"params": {
"description": "Extra params for the dataset.",
"type": "object"
},
"perm": {
"description": "Permission expression.",
"type": "string"
},
"schema": {
"description": "Dataset schema.",
"type": "string"
},
"select_star": {
"description": "Select all clause.",
"type": "string"
},
"sql": {
"description": "A SQL statement that defines the dataset.",
"type": "string"
},
"table_name": {
"description": "The name of the table associated with the dataset.",
"type": "string"
},
"template_params": {
"description": "Table template params.",
"type": "object"
},
"time_grain_sqla": {
"description": "List of temporal granularities supported by the dataset.",
"items": {
"items": {
"type": "string"
},
"type": "array"
},
"type": "array"
},
"type": {
"description": "Dataset type.",
"type": "string"
},
"uid": {
"description": "Dataset unique identifier.",
"type": "string"
},
"verbose_map": {
"description": "Mapping from raw name to verbose name.",
"type": "object"
}
},
"type": "object"
},
"DatasetCacheWarmUpRequestSchema": {
"properties": {
"dashboard_id": {
"description": "The ID of the dashboard to get filters for when warming cache",
"type": "integer"
},
"db_name": {
"description": "The name of the database where the table is located",
"type": "string"
},
"extra_filters": {
"description": "Extra filters to apply when warming up cache",
"type": "string"
},
"table_name": {
"description": "The name of the table to warm up cache for",
"type": "string"
}
},
"required": [
"db_name",
"table_name"
],
"type": "object"
},
"DatasetCacheWarmUpResponseSchema": {
"properties": {
"result": {
"description": "A list of each chart's warmup status and errors if any",
"items": {
"$ref": "#/components/schemas/DatasetCacheWarmUpResponseSingle"
},
"type": "array"
}
},
"type": "object"
},
"DatasetCacheWarmUpResponseSingle": {
"properties": {
"chart_id": {
"description": "The ID of the chart the status belongs to",
"type": "integer"
},
"viz_error": {
"description": "Error that occurred when warming cache for chart",
"type": "string"
},
"viz_status": {
"description": "Status of the underlying query for the viz",
"type": "string"
}
},
"type": "object"
},
"DatasetColumnsPut": {
"properties": {
"advanced_data_type": {
"maxLength": 255,
"minLength": 1,
"nullable": true,
"type": "string"
},
"column_name": {
"maxLength": 255,
"minLength": 1,
"type": "string"
},
"description": {
"nullable": true,
"type": "string"
},
"expression": {
"nullable": true,
"type": "string"
},
"extra": {
"nullable": true,
"type": "string"
},
"filterable": {
"type": "boolean"
},
"groupby": {
"type": "boolean"
},
"id": {
"type": "integer"
},
"is_active": {
"nullable": true,
"type": "boolean"
},
"is_dttm": {
"nullable": true,
"type": "boolean"
},
"python_date_format": {
"maxLength": 255,
"minLength": 1,
"nullable": true,
"type": "string"
},
"type": {
"nullable": true,
"type": "string"
},
"uuid": {
"format": "uuid",
"nullable": true,
"type": "string"
},
"verbose_name": {
"nullable": true,
"type": "string"
}
},
"required": [
"column_name"
],
"type": "object"
},
"DatasetColumnsRestApi.get": {
"properties": {
"id": {
"type": "integer"
}
},
"type": "object"
},
"DatasetColumnsRestApi.get_list": {
"properties": {
"id": {
"type": "integer"
}
},
"type": "object"
},
"DatasetColumnsRestApi.post": {
"properties": {
"id": {
"type": "integer"
}
},
"type": "object"
},
"DatasetColumnsRestApi.put": {
"properties": {
"id": {
"type": "integer"
}
},
"type": "object"
},
"DatasetDuplicateSchema": {
"properties": {
"base_model_id": {
"type": "integer"
},
"table_name": {
"maxLength": 250,
"minLength": 1,
"type": "string"
}
},
"required": [
"base_model_id",
"table_name"
],
"type": "object"
},
"DatasetMetricRestApi.get": {
"properties": {
"id": {
"type": "integer"
}
},
"type": "object"
},
"DatasetMetricRestApi.get_list": {
"properties": {
"id": {
"type": "integer"
}
},
"type": "object"
},
"DatasetMetricRestApi.post": {
"properties": {
"id": {
"type": "integer"
}
},
"type": "object"
},
"DatasetMetricRestApi.put": {
"properties": {
"id": {
"type": "integer"
}
},
"type": "object"
},
"DatasetMetricsPut": {
"properties": {
"currency": {
"maxLength": 128,
"minLength": 1,
"nullable": true,
"type": "string"
},
"d3format": {
"maxLength": 128,
"minLength": 1,
"nullable": true,
"type": "string"
},
"description": {
"nullable": true,
"type": "string"
},
"expression": {
"type": "string"
},
"extra": {
"nullable": true,
"type": "string"
},
"id": {
"type": "integer"
},
"metric_name": {
"maxLength": 255,
"minLength": 1,
"type": "string"
},
"metric_type": {
"maxLength": 32,
"minLength": 1,
"nullable": true,
"type": "string"
},
"uuid": {
"format": "uuid",
"nullable": true,
"type": "string"
},
"verbose_name": {
"nullable": true,
"type": "string"
},
"warning_text": {
"nullable": true,
"type": "string"
}
},
"required": [
"expression",
"metric_name"
],
"type": "object"
},
"DatasetRelatedChart": {
"properties": {
"id": {
"type": "integer"
},
"slice_name": {
"type": "string"
},
"viz_type": {
"type": "string"
}
},
"type": "object"
},
"DatasetRelatedCharts": {
"properties": {
"count": {
"description": "Chart count",
"type": "integer"
},
"result": {
"description": "A list of dashboards",
"items": {
"$ref": "#/components/schemas/DatasetRelatedChart"
},
"type": "array"
}
},
"type": "object"
},
"DatasetRelatedDashboard": {
"properties": {
"id": {
"type": "integer"
},
"json_metadata": {
"type": "object"
},
"slug": {
"type": "string"
},
"title": {
"type": "string"
}
},
"type": "object"
},
"DatasetRelatedDashboards": {
"properties": {
"count": {
"description": "Dashboard count",
"type": "integer"
},
"result": {
"description": "A list of dashboards",
"items": {
"$ref": "#/components/schemas/DatasetRelatedDashboard"
},
"type": "array"
}
},
"type": "object"
},
"DatasetRelatedObjectsResponse": {
"properties": {
"charts": {
"$ref": "#/components/schemas/DatasetRelatedCharts"
},
"dashboards": {
"$ref": "#/components/schemas/DatasetRelatedDashboards"
}
},
"type": "object"
},
"DatasetRestApi.get": {
"properties": {
"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"
},
"changed_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"changed_on_humanized": {
"readOnly": true
},
"column_formats": {
"readOnly": true
},
"columns": {
"$ref": "#/components/schemas/DatasetRestApi.get.TableColumn"
},
"created_by": {
"$ref": "#/components/schemas/DatasetRestApi.get.User1"
},
"created_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"created_on_humanized": {
"readOnly": true
},
"database": {
"$ref": "#/components/schemas/DatasetRestApi.get.Database"
},
"datasource_name": {
"readOnly": true
},
"datasource_type": {
"readOnly": true
},
"default_endpoint": {
"nullable": true,
"type": "string"
},
"description": {
"nullable": true,
"type": "string"
},
"extra": {
"nullable": true,
"type": "string"
},
"fetch_values_predicate": {
"nullable": true,
"type": "string"
},
"filter_select_enabled": {
"nullable": true,
"type": "boolean"
},
"folders": {
"nullable": true
},
"granularity_sqla": {
"readOnly": true
},
"id": {
"type": "integer"
},
"is_managed_externally": {
"type": "boolean"
},
"is_sqllab_view": {
"nullable": true,
"type": "boolean"
},
"kind": {
"readOnly": true
},
"main_dttm_col": {
"maxLength": 250,
"nullable": true,
"type": "string"
},
"metrics": {
"$ref": "#/components/schemas/DatasetRestApi.get.SqlMetric"
},
"name": {
"readOnly": true
},
"normalize_columns": {
"nullable": true,
"type": "boolean"
},
"offset": {
"nullable": true,
"type": "integer"
},
"order_by_choices": {
"readOnly": true
},
"owners": {
"$ref": "#/components/schemas/DatasetRestApi.get.User"
},
"schema": {
"maxLength": 255,
"nullable": true,
"type": "string"
},
"select_star": {
"readOnly": true
},
"sql": {
"nullable": true,
"type": "string"
},
"table_name": {
"maxLength": 250,
"type": "string"
},
"template_params": {
"nullable": true,
"type": "string"
},
"time_grain_sqla": {
"readOnly": true
},
"uid": {
"readOnly": true
},
"url": {
"readOnly": true
},
"verbose_map": {
"readOnly": true
}
},
"required": [
"columns",
"database",
"metrics",
"table_name"
],
"type": "object"
},
"DatasetRestApi.get.Database": {
"properties": {
"allow_multi_catalog": {
"readOnly": true
},
"backend": {
"readOnly": true
},
"database_name": {
"maxLength": 250,
"type": "string"
},
"id": {
"type": "integer"
}
},
"required": [
"database_name"
],
"type": "object"
},
"DatasetRestApi.get.SqlMetric": {
"properties": {
"changed_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"created_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"currency": {
"nullable": true
},
"d3format": {
"maxLength": 128,
"nullable": true,
"type": "string"
},
"description": {
"nullable": true,
"type": "string"
},
"expression": {
"type": "string"
},
"extra": {
"nullable": true,
"type": "string"
},
"id": {
"type": "integer"
},
"metric_name": {
"maxLength": 255,
"type": "string"
},
"metric_type": {
"maxLength": 32,
"nullable": true,
"type": "string"
},
"uuid": {
"format": "uuid",
"nullable": true,
"type": "string"
},
"verbose_name": {
"maxLength": 1024,
"nullable": true,
"type": "string"
},
"warning_text": {
"nullable": true,
"type": "string"
}
},
"required": [
"expression",
"metric_name"
],
"type": "object"
},
"DatasetRestApi.get.TableColumn": {
"properties": {
"advanced_data_type": {
"maxLength": 255,
"nullable": true,
"type": "string"
},
"changed_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"column_name": {
"maxLength": 255,
"type": "string"
},
"created_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"description": {
"nullable": true,
"type": "string"
},
"expression": {
"nullable": true,
"type": "string"
},
"extra": {
"nullable": true,
"type": "string"
},
"filterable": {
"nullable": true,
"type": "boolean"
},
"groupby": {
"nullable": true,
"type": "boolean"
},
"id": {
"type": "integer"
},
"is_active": {
"nullable": true,
"type": "boolean"
},
"is_dttm": {
"nullable": true,
"type": "boolean"
},
"python_date_format": {
"maxLength": 255,
"nullable": true,
"type": "string"
},
"type": {
"nullable": true,
"type": "string"
},
"type_generic": {
"readOnly": true
},
"uuid": {
"format": "uuid",
"nullable": true,
"type": "string"
},
"verbose_name": {
"maxLength": 1024,
"nullable": true,
"type": "string"
}
},
"required": [
"column_name"
],
"type": "object"
},
"DatasetRestApi.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"
},
"DatasetRestApi.get.User1": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"DatasetRestApi.get.User2": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"DatasetRestApi.get_list": {
"properties": {
"catalog": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"changed_by": {
"$ref": "#/components/schemas/DatasetRestApi.get_list.User"
},
"changed_by_name": {
"readOnly": true
},
"changed_on_delta_humanized": {
"readOnly": true
},
"changed_on_utc": {
"readOnly": true
},
"database": {
"$ref": "#/components/schemas/DatasetRestApi.get_list.Database"
},
"datasource_type": {
"readOnly": true
},
"default_endpoint": {
"nullable": true,
"type": "string"
},
"description": {
"nullable": true,
"type": "string"
},
"explore_url": {
"readOnly": true
},
"extra": {
"nullable": true,
"type": "string"
},
"id": {
"type": "integer"
},
"kind": {
"readOnly": true
},
"owners": {
"$ref": "#/components/schemas/DatasetRestApi.get_list.User1"
},
"schema": {
"maxLength": 255,
"nullable": true,
"type": "string"
},
"sql": {
"nullable": true,
"type": "string"
},
"table_name": {
"maxLength": 250,
"type": "string"
},
"uuid": {
"format": "uuid",
"nullable": true,
"type": "string"
}
},
"required": [
"database",
"table_name"
],
"type": "object"
},
"DatasetRestApi.get_list.Database": {
"properties": {
"database_name": {
"maxLength": 250,
"type": "string"
},
"id": {
"type": "integer"
}
},
"required": [
"database_name"
],
"type": "object"
},
"DatasetRestApi.get_list.User": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"DatasetRestApi.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"
},
"DatasetRestApi.post": {
"properties": {
"always_filter_main_dttm": {
"default": false,
"type": "boolean"
},
"catalog": {
"maxLength": 250,
"minLength": 0,
"nullable": true,
"type": "string"
},
"database": {
"type": "integer"
},
"external_url": {
"nullable": true,
"type": "string"
},
"is_managed_externally": {
"nullable": true,
"type": "boolean"
},
"normalize_columns": {
"default": false,
"type": "boolean"
},
"owners": {
"items": {
"type": "integer"
},
"type": "array"
},
"schema": {
"maxLength": 250,
"minLength": 0,
"nullable": true,
"type": "string"
},
"sql": {
"nullable": true,
"type": "string"
},
"table_name": {
"maxLength": 250,
"minLength": 1,
"type": "string"
}
},
"required": [
"database",
"table_name"
],
"type": "object"
},
"DatasetRestApi.put": {
"properties": {
"always_filter_main_dttm": {
"default": false,
"type": "boolean"
},
"cache_timeout": {
"nullable": true,
"type": "integer"
},
"catalog": {
"maxLength": 250,
"minLength": 0,
"nullable": true,
"type": "string"
},
"columns": {
"items": {
"$ref": "#/components/schemas/DatasetColumnsPut"
},
"type": "array"
},
"database_id": {
"type": "integer"
},
"default_endpoint": {
"nullable": true,
"type": "string"
},
"description": {
"nullable": true,
"type": "string"
},
"external_url": {
"nullable": true,
"type": "string"
},
"extra": {
"nullable": true,
"type": "string"
},
"fetch_values_predicate": {
"maxLength": 1000,
"minLength": 0,
"nullable": true,
"type": "string"
},
"filter_select_enabled": {
"nullable": true,
"type": "boolean"
},
"folders": {
"items": {
"$ref": "#/components/schemas/Folder"
},
"type": "array"
},
"is_managed_externally": {
"nullable": true,
"type": "boolean"
},
"is_sqllab_view": {
"nullable": true,
"type": "boolean"
},
"main_dttm_col": {
"nullable": true,
"type": "string"
},
"metrics": {
"items": {
"$ref": "#/components/schemas/DatasetMetricsPut"
},
"type": "array"
},
"normalize_columns": {
"nullable": true,
"type": "boolean"
},
"offset": {
"nullable": true,
"type": "integer"
},
"owners": {
"items": {
"type": "integer"
},
"type": "array"
},
"schema": {
"maxLength": 255,
"minLength": 0,
"nullable": true,
"type": "string"
},
"sql": {
"nullable": true,
"type": "string"
},
"table_name": {
"maxLength": 250,
"minLength": 1,
"nullable": true,
"type": "string"
},
"template_params": {
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"Datasource": {
"properties": {
"catalog": {
"description": "Datasource catalog",
"nullable": true,
"type": "string"
},
"database_name": {
"description": "Datasource name",
"type": "string"
},
"datasource_name": {
"description": "The datasource name.",
"type": "string"
},
"datasource_type": {
"description": "The type of dataset/datasource identified on `datasource_id`.",
"enum": [
"table",
"dataset",
"query",
"saved_query",
"view"
],
"type": "string"
},
"schema": {
"description": "Datasource schema",
"type": "string"
}
},
"required": [
"datasource_type"
],
"type": "object"
},
"DistincResponseSchema": {
"properties": {
"count": {
"description": "The total number of distinct values",
"type": "integer"
},
"result": {
"items": {
"$ref": "#/components/schemas/DistinctResultResponse"
},
"type": "array"
}
},
"type": "object"
},
"DistinctResultResponse": {
"properties": {
"text": {
"description": "The distinct item",
"type": "string"
}
},
"type": "object"
},
"EmbeddedDashboardConfig": {
"properties": {
"allowed_domains": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"allowed_domains"
],
"type": "object"
},
"EmbeddedDashboardResponseSchema": {
"properties": {
"allowed_domains": {
"items": {
"type": "string"
},
"type": "array"
},
"changed_by": {
"$ref": "#/components/schemas/User1"
},
"changed_on": {
"format": "date-time",
"type": "string"
},
"dashboard_id": {
"type": "string"
},
"uuid": {
"type": "string"
}
},
"type": "object"
},
"EmbeddedDashboardRestApi.get": {
"properties": {
"uuid": {
"format": "uuid",
"type": "string"
}
},
"type": "object"
},
"EmbeddedDashboardRestApi.get_list": {
"properties": {
"uuid": {
"format": "uuid",
"type": "string"
}
},
"type": "object"
},
"EmbeddedDashboardRestApi.post": {
"properties": {
"uuid": {
"format": "uuid",
"type": "string"
}
},
"type": "object"
},
"EmbeddedDashboardRestApi.put": {
"properties": {
"uuid": {
"format": "uuid",
"type": "string"
}
},
"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"
},
"schema": {
"description": "The database schema",
"nullable": true,
"type": "string"
},
"sql": {
"description": "The SQL query to estimate",
"type": "string"
},
"template_params": {
"description": "The SQL query template params",
"type": "object"
}
},
"required": [
"database_id",
"sql"
],
"type": "object"
},
"ExecutePayloadSchema": {
"properties": {
"catalog": {
"nullable": true,
"type": "string"
},
"client_id": {
"nullable": true,
"type": "string"
},
"ctas_method": {
"nullable": true,
"type": "string"
},
"database_id": {
"type": "integer"
},
"expand_data": {
"nullable": true,
"type": "boolean"
},
"json": {
"nullable": true,
"type": "boolean"
},
"queryLimit": {
"nullable": true,
"type": "integer"
},
"runAsync": {
"nullable": true,
"type": "boolean"
},
"schema": {
"nullable": true,
"type": "string"
},
"select_as_cta": {
"nullable": true,
"type": "boolean"
},
"sql": {
"type": "string"
},
"sql_editor_id": {
"nullable": true,
"type": "string"
},
"tab": {
"nullable": true,
"type": "string"
},
"templateParams": {
"nullable": true,
"type": "string"
},
"tmp_table_name": {
"nullable": true,
"type": "string"
}
},
"required": [
"database_id",
"sql"
],
"type": "object"
},
"ExploreContextSchema": {
"properties": {
"dataset": {
"$ref": "#/components/schemas/Dataset"
},
"form_data": {
"description": "Form data from the Explore controls used to form the chart's data query.",
"type": "object"
},
"message": {
"description": "Any message related to the processed request.",
"type": "string"
},
"slice": {
"$ref": "#/components/schemas/Slice"
}
},
"type": "object"
},
"ExplorePermalinkStateSchema": {
"properties": {
"formData": {
"description": "Chart form data",
"type": "object"
},
"urlParams": {
"description": "URL Parameters",
"items": {
"description": "URL Parameter key-value pair",
"nullable": true
},
"nullable": true,
"type": "array"
}
},
"required": [
"formData"
],
"type": "object"
},
"Folder": {
"properties": {
"children": {
"items": {
"$ref": "#/components/schemas/Folder"
},
"nullable": true,
"type": "array"
},
"description": {
"maxLength": 1000,
"minLength": 0,
"nullable": true,
"type": "string"
},
"name": {
"maxLength": 250,
"minLength": 1,
"type": "string"
},
"type": {
"enum": [
"metric",
"column",
"folder"
],
"type": "string"
},
"uuid": {
"format": "uuid",
"type": "string"
}
},
"required": [
"uuid"
],
"type": "object"
},
"FormDataPostSchema": {
"properties": {
"chart_id": {
"description": "The chart ID",
"type": "integer"
},
"datasource_id": {
"description": "The datasource ID",
"type": "integer"
},
"datasource_type": {
"description": "The datasource type",
"enum": [
"table",
"dataset",
"query",
"saved_query",
"view"
],
"type": "string"
},
"form_data": {
"description": "Any type of JSON supported text.",
"type": "string"
}
},
"required": [
"datasource_id",
"datasource_type",
"form_data"
],
"type": "object"
},
"FormDataPutSchema": {
"properties": {
"chart_id": {
"description": "The chart ID",
"type": "integer"
},
"datasource_id": {
"description": "The datasource ID",
"type": "integer"
},
"datasource_type": {
"description": "The datasource type",
"enum": [
"table",
"dataset",
"query",
"saved_query",
"view"
],
"type": "string"
},
"form_data": {
"description": "Any type of JSON supported text.",
"type": "string"
}
},
"required": [
"datasource_id",
"datasource_type",
"form_data"
],
"type": "object"
},
"GetFavStarIdsSchema": {
"properties": {
"result": {
"description": "A list of results for each corresponding chart in the request",
"items": {
"$ref": "#/components/schemas/ChartFavStarResponseResult"
},
"type": "array"
}
},
"type": "object"
},
"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,
"minLength": 0,
"nullable": true,
"type": "string"
},
"table_name": {
"description": "Name of table",
"type": "string"
},
"template_params": {
"description": "Template params for the table",
"type": "string"
}
},
"required": [
"database_id",
"table_name"
],
"type": "object"
},
"GuestTokenCreate": {
"properties": {
"resources": {
"items": {
"$ref": "#/components/schemas/Resource"
},
"type": "array"
},
"rls": {
"items": {
"$ref": "#/components/schemas/RlsRule"
},
"type": "array"
},
"user": {
"$ref": "#/components/schemas/User2"
}
},
"required": [
"resources",
"rls"
],
"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"
},
"encrypted_extra": {
"nullable": true,
"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"
},
"schema_options": {
"additionalProperties": {},
"type": "object"
},
"schemas_allowed_for_csv_upload": {
"items": {
"type": "string"
},
"type": "array"
},
"version": {
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"LogRestApi.get": {
"properties": {
"action": {
"maxLength": 512,
"nullable": true,
"type": "string"
},
"dashboard_id": {
"nullable": true,
"type": "integer"
},
"dttm": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"duration_ms": {
"nullable": true,
"type": "integer"
},
"json": {
"nullable": true,
"type": "string"
},
"referrer": {
"maxLength": 1024,
"nullable": true,
"type": "string"
},
"slice_id": {
"nullable": true,
"type": "integer"
},
"user": {
"$ref": "#/components/schemas/LogRestApi.get.User"
},
"user_id": {
"nullable": true,
"type": "integer"
}
},
"type": "object"
},
"LogRestApi.get.User": {
"properties": {
"username": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"username"
],
"type": "object"
},
"LogRestApi.get_list": {
"properties": {
"action": {
"maxLength": 512,
"nullable": true,
"type": "string"
},
"dashboard_id": {
"nullable": true,
"type": "integer"
},
"dttm": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"duration_ms": {
"nullable": true,
"type": "integer"
},
"json": {
"nullable": true,
"type": "string"
},
"referrer": {
"maxLength": 1024,
"nullable": true,
"type": "string"
},
"slice_id": {
"nullable": true,
"type": "integer"
},
"user": {
"$ref": "#/components/schemas/LogRestApi.get_list.User"
},
"user_id": {
"nullable": true,
"type": "integer"
}
},
"type": "object"
},
"LogRestApi.get_list.User": {
"properties": {
"username": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"username"
],
"type": "object"
},
"LogRestApi.post": {
"properties": {
"id": {
"type": "integer"
}
},
"type": "object"
},
"LogRestApi.put": {
"properties": {
"action": {
"maxLength": 512,
"nullable": true,
"type": "string"
},
"dttm": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"json": {
"nullable": true,
"type": "string"
},
"user": {
"nullable": true
}
},
"type": "object"
},
"PermissionApi.get": {
"properties": {
"id": {
"type": "integer"
},
"name": {
"maxLength": 100,
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"PermissionApi.get_list": {
"properties": {
"id": {
"type": "integer"
},
"name": {
"maxLength": 100,
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"PermissionApi.post": {
"properties": {
"name": {
"maxLength": 100,
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"PermissionApi.put": {
"properties": {
"name": {
"maxLength": 100,
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"PermissionViewMenuApi.get": {
"properties": {
"id": {
"type": "integer"
},
"permission": {
"$ref": "#/components/schemas/PermissionViewMenuApi.get.Permission"
},
"view_menu": {
"$ref": "#/components/schemas/PermissionViewMenuApi.get.ViewMenu"
}
},
"type": "object"
},
"PermissionViewMenuApi.get.Permission": {
"properties": {
"name": {
"maxLength": 100,
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"PermissionViewMenuApi.get.ViewMenu": {
"properties": {
"name": {
"maxLength": 250,
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"PermissionViewMenuApi.get_list": {
"properties": {
"id": {
"type": "integer"
},
"permission": {
"$ref": "#/components/schemas/PermissionViewMenuApi.get_list.Permission"
},
"view_menu": {
"$ref": "#/components/schemas/PermissionViewMenuApi.get_list.ViewMenu"
}
},
"type": "object"
},
"PermissionViewMenuApi.get_list.Permission": {
"properties": {
"name": {
"maxLength": 100,
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"PermissionViewMenuApi.get_list.ViewMenu": {
"properties": {
"name": {
"maxLength": 250,
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"PermissionViewMenuApi.post": {
"properties": {
"permission_id": {
"nullable": true,
"type": "integer"
},
"view_menu_id": {
"nullable": true,
"type": "integer"
}
},
"type": "object"
},
"PermissionViewMenuApi.put": {
"properties": {
"permission_id": {
"nullable": true,
"type": "integer"
},
"view_menu_id": {
"nullable": true,
"type": "integer"
}
},
"type": "object"
},
"QueryExecutionResponseSchema": {
"properties": {
"columns": {
"items": {
"type": "object"
},
"type": "array"
},
"data": {
"items": {
"type": "object"
},
"type": "array"
},
"expanded_columns": {
"items": {
"type": "object"
},
"type": "array"
},
"query": {
"$ref": "#/components/schemas/QueryResult"
},
"query_id": {
"type": "integer"
},
"selected_columns": {
"items": {
"type": "object"
},
"type": "array"
},
"status": {
"type": "string"
}
},
"type": "object"
},
"QueryRestApi.get": {
"properties": {
"changed_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"client_id": {
"maxLength": 11,
"type": "string"
},
"database": {
"$ref": "#/components/schemas/QueryRestApi.get.Database"
},
"end_result_backend_time": {
"nullable": true,
"type": "number"
},
"end_time": {
"nullable": true,
"type": "number"
},
"error_message": {
"nullable": true,
"type": "string"
},
"executed_sql": {
"nullable": true,
"type": "string"
},
"id": {
"type": "integer"
},
"limit": {
"nullable": true,
"type": "integer"
},
"progress": {
"nullable": true,
"type": "integer"
},
"results_key": {
"maxLength": 64,
"nullable": true,
"type": "string"
},
"rows": {
"nullable": true,
"type": "integer"
},
"schema": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"select_as_cta": {
"nullable": true,
"type": "boolean"
},
"select_as_cta_used": {
"nullable": true,
"type": "boolean"
},
"select_sql": {
"nullable": true,
"type": "string"
},
"sql": {
"nullable": true,
"type": "string"
},
"sql_editor_id": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"start_running_time": {
"nullable": true,
"type": "number"
},
"start_time": {
"nullable": true,
"type": "number"
},
"status": {
"maxLength": 16,
"nullable": true,
"type": "string"
},
"tab_name": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"tmp_schema_name": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"tmp_table_name": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"tracking_url": {
"readOnly": true
}
},
"required": [
"client_id",
"database"
],
"type": "object"
},
"QueryRestApi.get.Database": {
"properties": {
"id": {
"type": "integer"
}
},
"type": "object"
},
"QueryRestApi.get_list": {
"properties": {
"changed_on": {
"format": "date-time",
"type": "string"
},
"database": {
"$ref": "#/components/schemas/Database1"
},
"end_time": {
"type": "number"
},
"executed_sql": {
"type": "string"
},
"id": {
"type": "integer"
},
"rows": {
"type": "integer"
},
"schema": {
"type": "string"
},
"sql": {
"type": "string"
},
"sql_tables": {
"readOnly": true
},
"start_time": {
"type": "number"
},
"status": {
"type": "string"
},
"tab_name": {
"type": "string"
},
"tmp_table_name": {
"type": "string"
},
"tracking_url": {
"type": "string"
},
"user": {
"$ref": "#/components/schemas/User"
}
},
"type": "object"
},
"QueryRestApi.post": {
"properties": {
"id": {
"type": "integer"
}
},
"type": "object"
},
"QueryRestApi.put": {
"properties": {
"id": {
"type": "integer"
}
},
"type": "object"
},
"QueryResult": {
"properties": {
"changed_on": {
"format": "date-time",
"type": "string"
},
"ctas": {
"type": "boolean"
},
"db": {
"type": "string"
},
"dbId": {
"type": "integer"
},
"endDttm": {
"type": "number"
},
"errorMessage": {
"nullable": true,
"type": "string"
},
"executedSql": {
"type": "string"
},
"extra": {
"type": "object"
},
"id": {
"type": "string"
},
"limit": {
"type": "integer"
},
"limitingFactor": {
"type": "string"
},
"progress": {
"type": "integer"
},
"queryId": {
"type": "integer"
},
"resultsKey": {
"type": "string"
},
"rows": {
"type": "integer"
},
"schema": {
"type": "string"
},
"serverId": {
"type": "integer"
},
"sql": {
"type": "string"
},
"sqlEditorId": {
"type": "string"
},
"startDttm": {
"type": "number"
},
"state": {
"type": "string"
},
"tab": {
"type": "string"
},
"tempSchema": {
"nullable": true,
"type": "string"
},
"tempTable": {
"nullable": true,
"type": "string"
},
"trackingUrl": {
"nullable": true,
"type": "string"
},
"user": {
"type": "string"
},
"userId": {
"type": "integer"
}
},
"type": "object"
},
"RLSRestApi.get": {
"properties": {
"clause": {
"description": "clause_description",
"type": "string"
},
"description": {
"description": "description_description",
"type": "string"
},
"filter_type": {
"description": "filter_type_description",
"enum": [
"Regular",
"Base"
],
"type": "string"
},
"group_key": {
"description": "group_key_description",
"type": "string"
},
"id": {
"description": "id_description",
"type": "integer"
},
"name": {
"description": "name_description",
"type": "string"
},
"roles": {
"items": {
"$ref": "#/components/schemas/Roles1"
},
"type": "array"
},
"tables": {
"items": {
"$ref": "#/components/schemas/Tables"
},
"type": "array"
}
},
"type": "object"
},
"RLSRestApi.get_list": {
"properties": {
"changed_by": {
"$ref": "#/components/schemas/User"
},
"changed_on_delta_humanized": {
"readOnly": true
},
"clause": {
"description": "clause_description",
"type": "string"
},
"description": {
"description": "description_description",
"type": "string"
},
"filter_type": {
"description": "filter_type_description",
"enum": [
"Regular",
"Base"
],
"type": "string"
},
"group_key": {
"description": "group_key_description",
"type": "string"
},
"id": {
"description": "id_description",
"type": "integer"
},
"name": {
"description": "name_description",
"type": "string"
},
"roles": {
"items": {
"$ref": "#/components/schemas/Roles1"
},
"type": "array"
},
"tables": {
"items": {
"$ref": "#/components/schemas/Tables"
},
"type": "array"
}
},
"type": "object"
},
"RLSRestApi.post": {
"properties": {
"clause": {
"description": "clause_description",
"type": "string"
},
"description": {
"description": "description_description",
"nullable": true,
"type": "string"
},
"filter_type": {
"description": "filter_type_description",
"enum": [
"Regular",
"Base"
],
"type": "string"
},
"group_key": {
"description": "group_key_description",
"nullable": true,
"type": "string"
},
"name": {
"description": "name_description",
"maxLength": 255,
"minLength": 1,
"type": "string"
},
"roles": {
"description": "roles_description",
"items": {
"type": "integer"
},
"type": "array"
},
"tables": {
"description": "tables_description",
"items": {
"type": "integer"
},
"minItems": 1,
"type": "array"
}
},
"required": [
"clause",
"filter_type",
"name",
"roles",
"tables"
],
"type": "object"
},
"RLSRestApi.put": {
"properties": {
"clause": {
"description": "clause_description",
"type": "string"
},
"description": {
"description": "description_description",
"nullable": true,
"type": "string"
},
"filter_type": {
"description": "filter_type_description",
"enum": [
"Regular",
"Base"
],
"type": "string"
},
"group_key": {
"description": "group_key_description",
"nullable": true,
"type": "string"
},
"name": {
"description": "name_description",
"maxLength": 255,
"minLength": 1,
"type": "string"
},
"roles": {
"description": "roles_description",
"items": {
"type": "integer"
},
"type": "array"
},
"tables": {
"description": "tables_description",
"items": {
"type": "integer"
},
"type": "array"
}
},
"type": "object"
},
"RecentActivity": {
"properties": {
"action": {
"description": "Action taken describing type of activity",
"type": "string"
},
"item_title": {
"description": "Title of item",
"type": "string"
},
"item_type": {
"description": "Type of item, e.g. slice or dashboard",
"type": "string"
},
"item_url": {
"description": "URL to item",
"type": "string"
},
"time": {
"description": "Time of activity, in epoch milliseconds",
"type": "number"
},
"time_delta_humanized": {
"description": "Human-readable description of how long ago activity took place.",
"type": "string"
}
},
"type": "object"
},
"RecentActivityResponseSchema": {
"properties": {
"result": {
"description": "A list of recent activity objects",
"items": {
"$ref": "#/components/schemas/RecentActivity"
},
"type": "array"
}
},
"type": "object"
},
"RecentActivitySchema": {
"properties": {
"action": {
"description": "Action taken describing type of activity",
"type": "string"
},
"item_title": {
"description": "Title of item",
"type": "string"
},
"item_type": {
"description": "Type of item, e.g. slice or dashboard",
"type": "string"
},
"item_url": {
"description": "URL to item",
"type": "string"
},
"time": {
"description": "Time of activity, in epoch milliseconds",
"type": "number"
},
"time_delta_humanized": {
"description": "Human-readable description of how long ago activity took place.",
"type": "string"
}
},
"type": "object"
},
"RelatedResponseSchema": {
"properties": {
"count": {
"description": "The total number of related values",
"type": "integer"
},
"result": {
"items": {
"$ref": "#/components/schemas/RelatedResultResponse"
},
"type": "array"
}
},
"type": "object"
},
"RelatedResultResponse": {
"properties": {
"extra": {
"description": "The extra metadata for related item",
"type": "object"
},
"text": {
"description": "The related item string representation",
"type": "string"
},
"value": {
"description": "The related item identifier",
"type": "integer"
}
},
"type": "object"
},
"ReportExecutionLogRestApi.get": {
"properties": {
"end_dttm": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"error_message": {
"nullable": true,
"type": "string"
},
"id": {
"type": "integer"
},
"scheduled_dttm": {
"format": "date-time",
"type": "string"
},
"start_dttm": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"state": {
"maxLength": 50,
"type": "string"
},
"uuid": {
"format": "uuid",
"nullable": true,
"type": "string"
},
"value": {
"nullable": true,
"type": "number"
},
"value_row_json": {
"nullable": true,
"type": "string"
}
},
"required": [
"scheduled_dttm",
"state"
],
"type": "object"
},
"ReportExecutionLogRestApi.get_list": {
"properties": {
"end_dttm": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"error_message": {
"nullable": true,
"type": "string"
},
"id": {
"type": "integer"
},
"scheduled_dttm": {
"format": "date-time",
"type": "string"
},
"start_dttm": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"state": {
"maxLength": 50,
"type": "string"
},
"uuid": {
"format": "uuid",
"nullable": true,
"type": "string"
},
"value": {
"nullable": true,
"type": "number"
},
"value_row_json": {
"nullable": true,
"type": "string"
}
},
"required": [
"scheduled_dttm",
"state"
],
"type": "object"
},
"ReportExecutionLogRestApi.post": {
"properties": {
"id": {
"type": "integer"
}
},
"type": "object"
},
"ReportExecutionLogRestApi.put": {
"properties": {
"id": {
"type": "integer"
}
},
"type": "object"
},
"ReportRecipient": {
"properties": {
"recipient_config_json": {
"$ref": "#/components/schemas/ReportRecipientConfigJSON"
},
"type": {
"description": "The recipient type, check spec for valid options",
"enum": [
"Email",
"Slack",
"SlackV2"
],
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
"ReportRecipientConfigJSON": {
"properties": {
"bccTarget": {
"type": "string"
},
"ccTarget": {
"type": "string"
},
"target": {
"type": "string"
}
},
"type": "object"
},
"ReportScheduleRestApi.get": {
"properties": {
"active": {
"nullable": true,
"type": "boolean"
},
"chart": {
"$ref": "#/components/schemas/ReportScheduleRestApi.get.Slice"
},
"context_markdown": {
"nullable": true,
"type": "string"
},
"creation_method": {
"maxLength": 255,
"nullable": true,
"type": "string"
},
"crontab": {
"maxLength": 1000,
"type": "string"
},
"custom_width": {
"nullable": true,
"type": "integer"
},
"dashboard": {
"$ref": "#/components/schemas/ReportScheduleRestApi.get.Dashboard"
},
"database": {
"$ref": "#/components/schemas/ReportScheduleRestApi.get.Database"
},
"description": {
"nullable": true,
"type": "string"
},
"email_subject": {
"maxLength": 255,
"nullable": true,
"type": "string"
},
"extra": {
"readOnly": true
},
"force_screenshot": {
"nullable": true,
"type": "boolean"
},
"grace_period": {
"nullable": true,
"type": "integer"
},
"id": {
"type": "integer"
},
"last_eval_dttm": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"last_state": {
"maxLength": 50,
"nullable": true,
"type": "string"
},
"last_value": {
"nullable": true,
"type": "number"
},
"last_value_row_json": {
"nullable": true,
"type": "string"
},
"log_retention": {
"nullable": true,
"type": "integer"
},
"name": {
"maxLength": 150,
"type": "string"
},
"owners": {
"$ref": "#/components/schemas/ReportScheduleRestApi.get.User"
},
"recipients": {
"$ref": "#/components/schemas/ReportScheduleRestApi.get.ReportRecipients"
},
"report_format": {
"maxLength": 50,
"nullable": true,
"type": "string"
},
"sql": {
"nullable": true,
"type": "string"
},
"timezone": {
"maxLength": 100,
"type": "string"
},
"type": {
"maxLength": 50,
"type": "string"
},
"validator_config_json": {
"nullable": true,
"type": "string"
},
"validator_type": {
"maxLength": 100,
"nullable": true,
"type": "string"
},
"working_timeout": {
"nullable": true,
"type": "integer"
}
},
"required": [
"crontab",
"name",
"recipients",
"type"
],
"type": "object"
},
"ReportScheduleRestApi.get.Dashboard": {
"properties": {
"dashboard_title": {
"maxLength": 500,
"nullable": true,
"type": "string"
},
"id": {
"type": "integer"
}
},
"type": "object"
},
"ReportScheduleRestApi.get.Database": {
"properties": {
"database_name": {
"maxLength": 250,
"type": "string"
},
"id": {
"type": "integer"
}
},
"required": [
"database_name"
],
"type": "object"
},
"ReportScheduleRestApi.get.ReportRecipients": {
"properties": {
"id": {
"type": "integer"
},
"recipient_config_json": {
"nullable": true,
"type": "string"
},
"type": {
"maxLength": 50,
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
"ReportScheduleRestApi.get.Slice": {
"properties": {
"id": {
"type": "integer"
},
"slice_name": {
"maxLength": 250,
"nullable": true,
"type": "string"
},
"viz_type": {
"maxLength": 250,
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"ReportScheduleRestApi.get.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": {
"nullable": true,
"type": "boolean"
},
"changed_by": {
"$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User"
},
"changed_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"changed_on_delta_humanized": {
"readOnly": true
},
"chart_id": {
"nullable": true,
"type": "integer"
},
"created_by": {
"$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User1"
},
"created_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"creation_method": {
"maxLength": 255,
"nullable": true,
"type": "string"
},
"crontab": {
"maxLength": 1000,
"type": "string"
},
"crontab_humanized": {
"readOnly": true
},
"dashboard_id": {
"nullable": true,
"type": "integer"
},
"description": {
"nullable": true,
"type": "string"
},
"extra": {
"readOnly": true
},
"id": {
"type": "integer"
},
"last_eval_dttm": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"last_state": {
"maxLength": 50,
"nullable": true,
"type": "string"
},
"name": {
"maxLength": 150,
"type": "string"
},
"owners": {
"$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User2"
},
"recipients": {
"$ref": "#/components/schemas/ReportScheduleRestApi.get_list.ReportRecipients"
},
"timezone": {
"maxLength": 100,
"type": "string"
},
"type": {
"maxLength": 50,
"type": "string"
}
},
"required": [
"crontab",
"name",
"recipients",
"type"
],
"type": "object"
},
"ReportScheduleRestApi.get_list.ReportRecipients": {
"properties": {
"id": {
"type": "integer"
},
"type": {
"maxLength": 50,
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
"ReportScheduleRestApi.get_list.User": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"ReportScheduleRestApi.get_list.User1": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"ReportScheduleRestApi.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"
},
"ReportScheduleRestApi.post": {
"properties": {
"active": {
"type": "boolean"
},
"chart": {
"nullable": true,
"type": "integer"
},
"context_markdown": {
"description": "Markdown description",
"nullable": true,
"type": "string"
},
"creation_method": {
"description": "Creation method is used to inform the frontend whether the report/alert was created in the dashboard, chart, or alerts and reports UI.",
"enum": [
"charts",
"dashboards",
"alerts_reports"
]
},
"crontab": {
"description": "A CRON expression.[Crontab Guru](https://crontab.guru/) is a helpful resource that can help you craft a CRON expression.",
"example": "*/5 * * * *",
"maxLength": 1000,
"minLength": 1,
"type": "string"
},
"custom_width": {
"description": "Custom width of the screenshot in pixels",
"example": 1000,
"nullable": true,
"type": "integer"
},
"dashboard": {
"nullable": true,
"type": "integer"
},
"database": {
"type": "integer"
},
"description": {
"description": "Use a nice description to give context to this Alert/Report",
"example": "Daily sales dashboard to marketing",
"nullable": true,
"type": "string"
},
"email_subject": {
"description": "The report schedule subject line",
"example": "[Report] Report name: Dashboard or chart name",
"nullable": true,
"type": "string"
},
"extra": {
"type": "object"
},
"force_screenshot": {
"type": "boolean"
},
"grace_period": {
"description": "Once an alert is triggered, how long, in seconds, before Superset nags you again. (in seconds)",
"example": 14400,
"minimum": 1,
"type": "integer"
},
"log_retention": {
"description": "How long to keep the logs around for this report (in days)",
"example": 90,
"minimum": 1,
"type": "integer"
},
"name": {
"description": "The report schedule name.",
"example": "Daily dashboard email",
"maxLength": 150,
"minLength": 1,
"type": "string"
},
"owners": {
"items": {
"description": "Owner are users ids allowed to delete or change this report. If left empty you will be one of the owners of the report.",
"type": "integer"
},
"type": "array"
},
"recipients": {
"items": {
"$ref": "#/components/schemas/ReportRecipient"
},
"type": "array"
},
"report_format": {
"enum": [
"PDF",
"PNG",
"CSV",
"TEXT"
],
"type": "string"
},
"selected_tabs": {
"items": {
"type": "integer"
},
"nullable": true,
"type": "array"
},
"sql": {
"description": "A SQL statement that defines whether the alert should get triggered or not. The query is expected to return either NULL or a number value.",
"example": "SELECT value FROM time_series_table",
"type": "string"
},
"timezone": {
"description": "A timezone string that represents the location of the timezone.",
"enum": [
"Africa/Abidjan",
"Africa/Accra",
"Africa/Addis_Ababa",
"Africa/Algiers",
"Africa/Asmara",
"Africa/Asmera",
"Africa/Bamako",
"Africa/Bangui",
"Africa/Banjul",
"Africa/Bissau",
"Africa/Blantyre",
"Africa/Brazzaville",
"Africa/Bujumbura",
"Africa/Cairo",
"Africa/Casablanca",
"Africa/Ceuta",
"Africa/Conakry",
"Africa/Dakar",
"Africa/Dar_es_Salaam",
"Africa/Djibouti",
"Africa/Douala",
"Africa/El_Aaiun",
"Africa/Freetown",
"Africa/Gaborone",
"Africa/Harare",
"Africa/Johannesburg",
"Africa/Juba",
"Africa/Kampala",
"Africa/Khartoum",
"Africa/Kigali",
"Africa/Kinshasa",
"Africa/Lagos",
"Africa/Libreville",
"Africa/Lome",
"Africa/Luanda",
"Africa/Lubumbashi",
"Africa/Lusaka",
"Africa/Malabo",
"Africa/Maputo",
"Africa/Maseru",
"Africa/Mbabane",
"Africa/Mogadishu",
"Africa/Monrovia",
"Africa/Nairobi",
"Africa/Ndjamena",
"Africa/Niamey",
"Africa/Nouakchott",
"Africa/Ouagadougou",
"Africa/Porto-Novo",
"Africa/Sao_Tome",
"Africa/Timbuktu",
"Africa/Tripoli",
"Africa/Tunis",
"Africa/Windhoek",
"America/Adak",
"America/Anchorage",
"America/Anguilla",
"America/Antigua",
"America/Araguaina",
"America/Argentina/Buenos_Aires",
"America/Argentina/Catamarca",
"America/Argentina/ComodRivadavia",
"America/Argentina/Cordoba",
"America/Argentina/Jujuy",
"America/Argentina/La_Rioja",
"America/Argentina/Mendoza",
"America/Argentina/Rio_Gallegos",
"America/Argentina/Salta",
"America/Argentina/San_Juan",
"America/Argentina/San_Luis",
"America/Argentina/Tucuman",
"America/Argentina/Ushuaia",
"America/Aruba",
"America/Asuncion",
"America/Atikokan",
"America/Atka",
"America/Bahia",
"America/Bahia_Banderas",
"America/Barbados",
"America/Belem",
"America/Belize",
"America/Blanc-Sablon",
"America/Boa_Vista",
"America/Bogota",
"America/Boise",
"America/Buenos_Aires",
"America/Cambridge_Bay",
"America/Campo_Grande",
"America/Cancun",
"America/Caracas",
"America/Catamarca",
"America/Cayenne",
"America/Cayman",
"America/Chicago",
"America/Chihuahua",
"America/Ciudad_Juarez",
"America/Coral_Harbour",
"America/Cordoba",
"America/Costa_Rica",
"America/Creston",
"America/Cuiaba",
"America/Curacao",
"America/Danmarkshavn",
"America/Dawson",
"America/Dawson_Creek",
"America/Denver",
"America/Detroit",
"America/Dominica",
"America/Edmonton",
"America/Eirunepe",
"America/El_Salvador",
"America/Ensenada",
"America/Fort_Nelson",
"America/Fort_Wayne",
"America/Fortaleza",
"America/Glace_Bay",
"America/Godthab",
"America/Goose_Bay",
"America/Grand_Turk",
"America/Grenada",
"America/Guadeloupe",
"America/Guatemala",
"America/Guayaquil",
"America/Guyana",
"America/Halifax",
"America/Havana",
"America/Hermosillo",
"America/Indiana/Indianapolis",
"America/Indiana/Knox",
"America/Indiana/Marengo",
"America/Indiana/Petersburg",
"America/Indiana/Tell_City",
"America/Indiana/Vevay",
"America/Indiana/Vincennes",
"America/Indiana/Winamac",
"America/Indianapolis",
"America/Inuvik",
"America/Iqaluit",
"America/Jamaica",
"America/Jujuy",
"America/Juneau",
"America/Kentucky/Louisville",
"America/Kentucky/Monticello",
"America/Knox_IN",
"America/Kralendijk",
"America/La_Paz",
"America/Lima",
"America/Los_Angeles",
"America/Louisville",
"America/Lower_Princes",
"America/Maceio",
"America/Managua",
"America/Manaus",
"America/Marigot",
"America/Martinique",
"America/Matamoros",
"America/Mazatlan",
"America/Mendoza",
"America/Menominee",
"America/Merida",
"America/Metlakatla",
"America/Mexico_City",
"America/Miquelon",
"America/Moncton",
"America/Monterrey",
"America/Montevideo",
"America/Montreal",
"America/Montserrat",
"America/Nassau",
"America/New_York",
"America/Nipigon",
"America/Nome",
"America/Noronha",
"America/North_Dakota/Beulah",
"America/North_Dakota/Center",
"America/North_Dakota/New_Salem",
"America/Nuuk",
"America/Ojinaga",
"America/Panama",
"America/Pangnirtung",
"America/Paramaribo",
"America/Phoenix",
"America/Port-au-Prince",
"America/Port_of_Spain",
"America/Porto_Acre",
"America/Porto_Velho",
"America/Puerto_Rico",
"America/Punta_Arenas",
"America/Rainy_River",
"America/Rankin_Inlet",
"America/Recife",
"America/Regina",
"America/Resolute",
"America/Rio_Branco",
"America/Rosario",
"America/Santa_Isabel",
"America/Santarem",
"America/Santiago",
"America/Santo_Domingo",
"America/Sao_Paulo",
"America/Scoresbysund",
"America/Shiprock",
"America/Sitka",
"America/St_Barthelemy",
"America/St_Johns",
"America/St_Kitts",
"America/St_Lucia",
"America/St_Thomas",
"America/St_Vincent",
"America/Swift_Current",
"America/Tegucigalpa",
"America/Thule",
"America/Thunder_Bay",
"America/Tijuana",
"America/Toronto",
"America/Tortola",
"America/Vancouver",
"America/Virgin",
"America/Whitehorse",
"America/Winnipeg",
"America/Yakutat",
"America/Yellowknife",
"Antarctica/Casey",
"Antarctica/Davis",
"Antarctica/DumontDUrville",
"Antarctica/Macquarie",
"Antarctica/Mawson",
"Antarctica/McMurdo",
"Antarctica/Palmer",
"Antarctica/Rothera",
"Antarctica/South_Pole",
"Antarctica/Syowa",
"Antarctica/Troll",
"Antarctica/Vostok",
"Arctic/Longyearbyen",
"Asia/Aden",
"Asia/Almaty",
"Asia/Amman",
"Asia/Anadyr",
"Asia/Aqtau",
"Asia/Aqtobe",
"Asia/Ashgabat",
"Asia/Ashkhabad",
"Asia/Atyrau",
"Asia/Baghdad",
"Asia/Bahrain",
"Asia/Baku",
"Asia/Bangkok",
"Asia/Barnaul",
"Asia/Beirut",
"Asia/Bishkek",
"Asia/Brunei",
"Asia/Calcutta",
"Asia/Chita",
"Asia/Choibalsan",
"Asia/Chongqing",
"Asia/Chungking",
"Asia/Colombo",
"Asia/Dacca",
"Asia/Damascus",
"Asia/Dhaka",
"Asia/Dili",
"Asia/Dubai",
"Asia/Dushanbe",
"Asia/Famagusta",
"Asia/Gaza",
"Asia/Harbin",
"Asia/Hebron",
"Asia/Ho_Chi_Minh",
"Asia/Hong_Kong",
"Asia/Hovd",
"Asia/Irkutsk",
"Asia/Istanbul",
"Asia/Jakarta",
"Asia/Jayapura",
"Asia/Jerusalem",
"Asia/Kabul",
"Asia/Kamchatka",
"Asia/Karachi",
"Asia/Kashgar",
"Asia/Kathmandu",
"Asia/Katmandu",
"Asia/Khandyga",
"Asia/Kolkata",
"Asia/Krasnoyarsk",
"Asia/Kuala_Lumpur",
"Asia/Kuching",
"Asia/Kuwait",
"Asia/Macao",
"Asia/Macau",
"Asia/Magadan",
"Asia/Makassar",
"Asia/Manila",
"Asia/Muscat",
"Asia/Nicosia",
"Asia/Novokuznetsk",
"Asia/Novosibirsk",
"Asia/Omsk",
"Asia/Oral",
"Asia/Phnom_Penh",
"Asia/Pontianak",
"Asia/Pyongyang",
"Asia/Qatar",
"Asia/Qostanay",
"Asia/Qyzylorda",
"Asia/Rangoon",
"Asia/Riyadh",
"Asia/Saigon",
"Asia/Sakhalin",
"Asia/Samarkand",
"Asia/Seoul",
"Asia/Shanghai",
"Asia/Singapore",
"Asia/Srednekolymsk",
"Asia/Taipei",
"Asia/Tashkent",
"Asia/Tbilisi",
"Asia/Tehran",
"Asia/Tel_Aviv",
"Asia/Thimbu",
"Asia/Thimphu",
"Asia/Tokyo",
"Asia/Tomsk",
"Asia/Ujung_Pandang",
"Asia/Ulaanbaatar",
"Asia/Ulan_Bator",
"Asia/Urumqi",
"Asia/Ust-Nera",
"Asia/Vientiane",
"Asia/Vladivostok",
"Asia/Yakutsk",
"Asia/Yangon",
"Asia/Yekaterinburg",
"Asia/Yerevan",
"Atlantic/Azores",
"Atlantic/Bermuda",
"Atlantic/Canary",
"Atlantic/Cape_Verde",
"Atlantic/Faeroe",
"Atlantic/Faroe",
"Atlantic/Jan_Mayen",
"Atlantic/Madeira",
"Atlantic/Reykjavik",
"Atlantic/South_Georgia",
"Atlantic/St_Helena",
"Atlantic/Stanley",
"Australia/ACT",
"Australia/Adelaide",
"Australia/Brisbane",
"Australia/Broken_Hill",
"Australia/Canberra",
"Australia/Currie",
"Australia/Darwin",
"Australia/Eucla",
"Australia/Hobart",
"Australia/LHI",
"Australia/Lindeman",
"Australia/Lord_Howe",
"Australia/Melbourne",
"Australia/NSW",
"Australia/North",
"Australia/Perth",
"Australia/Queensland",
"Australia/South",
"Australia/Sydney",
"Australia/Tasmania",
"Australia/Victoria",
"Australia/West",
"Australia/Yancowinna",
"Brazil/Acre",
"Brazil/DeNoronha",
"Brazil/East",
"Brazil/West",
"CET",
"CST6CDT",
"Canada/Atlantic",
"Canada/Central",
"Canada/Eastern",
"Canada/Mountain",
"Canada/Newfoundland",
"Canada/Pacific",
"Canada/Saskatchewan",
"Canada/Yukon",
"Chile/Continental",
"Chile/EasterIsland",
"Cuba",
"EET",
"EST",
"EST5EDT",
"Egypt",
"Eire",
"Etc/GMT",
"Etc/GMT+0",
"Etc/GMT+1",
"Etc/GMT+10",
"Etc/GMT+11",
"Etc/GMT+12",
"Etc/GMT+2",
"Etc/GMT+3",
"Etc/GMT+4",
"Etc/GMT+5",
"Etc/GMT+6",
"Etc/GMT+7",
"Etc/GMT+8",
"Etc/GMT+9",
"Etc/GMT-0",
"Etc/GMT-1",
"Etc/GMT-10",
"Etc/GMT-11",
"Etc/GMT-12",
"Etc/GMT-13",
"Etc/GMT-14",
"Etc/GMT-2",
"Etc/GMT-3",
"Etc/GMT-4",
"Etc/GMT-5",
"Etc/GMT-6",
"Etc/GMT-7",
"Etc/GMT-8",
"Etc/GMT-9",
"Etc/GMT0",
"Etc/Greenwich",
"Etc/UCT",
"Etc/UTC",
"Etc/Universal",
"Etc/Zulu",
"Europe/Amsterdam",
"Europe/Andorra",
"Europe/Astrakhan",
"Europe/Athens",
"Europe/Belfast",
"Europe/Belgrade",
"Europe/Berlin",
"Europe/Bratislava",
"Europe/Brussels",
"Europe/Bucharest",
"Europe/Budapest",
"Europe/Busingen",
"Europe/Chisinau",
"Europe/Copenhagen",
"Europe/Dublin",
"Europe/Gibraltar",
"Europe/Guernsey",
"Europe/Helsinki",
"Europe/Isle_of_Man",
"Europe/Istanbul",
"Europe/Jersey",
"Europe/Kaliningrad",
"Europe/Kiev",
"Europe/Kirov",
"Europe/Kyiv",
"Europe/Lisbon",
"Europe/Ljubljana",
"Europe/London",
"Europe/Luxembourg",
"Europe/Madrid",
"Europe/Malta",
"Europe/Mariehamn",
"Europe/Minsk",
"Europe/Monaco",
"Europe/Moscow",
"Europe/Nicosia",
"Europe/Oslo",
"Europe/Paris",
"Europe/Podgorica",
"Europe/Prague",
"Europe/Riga",
"Europe/Rome",
"Europe/Samara",
"Europe/San_Marino",
"Europe/Sarajevo",
"Europe/Saratov",
"Europe/Simferopol",
"Europe/Skopje",
"Europe/Sofia",
"Europe/Stockholm",
"Europe/Tallinn",
"Europe/Tirane",
"Europe/Tiraspol",
"Europe/Ulyanovsk",
"Europe/Uzhgorod",
"Europe/Vaduz",
"Europe/Vatican",
"Europe/Vienna",
"Europe/Vilnius",
"Europe/Volgograd",
"Europe/Warsaw",
"Europe/Zagreb",
"Europe/Zaporozhye",
"Europe/Zurich",
"GB",
"GB-Eire",
"GMT",
"GMT+0",
"GMT-0",
"GMT0",
"Greenwich",
"HST",
"Hongkong",
"Iceland",
"Indian/Antananarivo",
"Indian/Chagos",
"Indian/Christmas",
"Indian/Cocos",
"Indian/Comoro",
"Indian/Kerguelen",
"Indian/Mahe",
"Indian/Maldives",
"Indian/Mauritius",
"Indian/Mayotte",
"Indian/Reunion",
"Iran",
"Israel",
"Jamaica",
"Japan",
"Kwajalein",
"Libya",
"MET",
"MST",
"MST7MDT",
"Mexico/BajaNorte",
"Mexico/BajaSur",
"Mexico/General",
"NZ",
"NZ-CHAT",
"Navajo",
"PRC",
"PST8PDT",
"Pacific/Apia",
"Pacific/Auckland",
"Pacific/Bougainville",
"Pacific/Chatham",
"Pacific/Chuuk",
"Pacific/Easter",
"Pacific/Efate",
"Pacific/Enderbury",
"Pacific/Fakaofo",
"Pacific/Fiji",
"Pacific/Funafuti",
"Pacific/Galapagos",
"Pacific/Gambier",
"Pacific/Guadalcanal",
"Pacific/Guam",
"Pacific/Honolulu",
"Pacific/Johnston",
"Pacific/Kanton",
"Pacific/Kiritimati",
"Pacific/Kosrae",
"Pacific/Kwajalein",
"Pacific/Majuro",
"Pacific/Marquesas",
"Pacific/Midway",
"Pacific/Nauru",
"Pacific/Niue",
"Pacific/Norfolk",
"Pacific/Noumea",
"Pacific/Pago_Pago",
"Pacific/Palau",
"Pacific/Pitcairn",
"Pacific/Pohnpei",
"Pacific/Ponape",
"Pacific/Port_Moresby",
"Pacific/Rarotonga",
"Pacific/Saipan",
"Pacific/Samoa",
"Pacific/Tahiti",
"Pacific/Tarawa",
"Pacific/Tongatapu",
"Pacific/Truk",
"Pacific/Wake",
"Pacific/Wallis",
"Pacific/Yap",
"Poland",
"Portugal",
"ROC",
"ROK",
"Singapore",
"Turkey",
"UCT",
"US/Alaska",
"US/Aleutian",
"US/Arizona",
"US/Central",
"US/East-Indiana",
"US/Eastern",
"US/Hawaii",
"US/Indiana-Starke",
"US/Michigan",
"US/Mountain",
"US/Pacific",
"US/Samoa",
"UTC",
"Universal",
"W-SU",
"WET",
"Zulu"
],
"type": "string"
},
"type": {
"description": "The report schedule type",
"enum": [
"Alert",
"Report"
],
"type": "string"
},
"validator_config_json": {
"$ref": "#/components/schemas/ValidatorConfigJSON"
},
"validator_type": {
"description": "Determines when to trigger alert based off value from alert query. Alerts will be triggered with these validator types:\n- Not Null - When the return value is Not NULL, Empty, or 0\n- Operator - When `sql_return_value comparison_operator threshold` is True e.g. `50 <= 75`<br>Supports the comparison operators <, <=, >, >=, ==, and !=",
"enum": [
"not null",
"operator"
],
"type": "string"
},
"working_timeout": {
"description": "If an alert is staled at a working state, how long until it's state is reset to error",
"example": 3600,
"minimum": 1,
"type": "integer"
}
},
"required": [
"crontab",
"name",
"type"
],
"type": "object"
},
"ReportScheduleRestApi.put": {
"properties": {
"active": {
"type": "boolean"
},
"chart": {
"nullable": true,
"type": "integer"
},
"context_markdown": {
"description": "Markdown description",
"nullable": true,
"type": "string"
},
"creation_method": {
"description": "Creation method is used to inform the frontend whether the report/alert was created in the dashboard, chart, or alerts and reports UI.",
"enum": [
"charts",
"dashboards",
"alerts_reports"
],
"nullable": true
},
"crontab": {
"description": "A CRON expression.[Crontab Guru](https://crontab.guru/) is a helpful resource that can help you craft a CRON expression.",
"maxLength": 1000,
"minLength": 1,
"type": "string"
},
"custom_width": {
"description": "Custom width of the screenshot in pixels",
"example": 1000,
"nullable": true,
"type": "integer"
},
"dashboard": {
"nullable": true,
"type": "integer"
},
"database": {
"type": "integer"
},
"description": {
"description": "Use a nice description to give context to this Alert/Report",
"example": "Daily sales dashboard to marketing",
"nullable": true,
"type": "string"
},
"email_subject": {
"description": "The report schedule subject line",
"example": "[Report] Report name: Dashboard or chart name",
"nullable": true,
"type": "string"
},
"extra": {
"type": "object"
},
"force_screenshot": {
"type": "boolean"
},
"grace_period": {
"description": "Once an alert is triggered, how long, in seconds, before Superset nags you again. (in seconds)",
"example": 14400,
"minimum": 1,
"type": "integer"
},
"log_retention": {
"description": "How long to keep the logs around for this report (in days)",
"example": 90,
"minimum": 0,
"type": "integer"
},
"name": {
"description": "The report schedule name.",
"maxLength": 150,
"minLength": 1,
"type": "string"
},
"owners": {
"items": {
"description": "Owner are users ids allowed to delete or change this report. If left empty you will be one of the owners of the report.",
"type": "integer"
},
"type": "array"
},
"recipients": {
"items": {
"$ref": "#/components/schemas/ReportRecipient"
},
"type": "array"
},
"report_format": {
"enum": [
"PDF",
"PNG",
"CSV",
"TEXT"
],
"type": "string"
},
"sql": {
"description": "A SQL statement that defines whether the alert should get triggered or not. The query is expected to return either NULL or a number value.",
"example": "SELECT value FROM time_series_table",
"nullable": true,
"type": "string"
},
"timezone": {
"description": "A timezone string that represents the location of the timezone.",
"enum": [
"Africa/Abidjan",
"Africa/Accra",
"Africa/Addis_Ababa",
"Africa/Algiers",
"Africa/Asmara",
"Africa/Asmera",
"Africa/Bamako",
"Africa/Bangui",
"Africa/Banjul",
"Africa/Bissau",
"Africa/Blantyre",
"Africa/Brazzaville",
"Africa/Bujumbura",
"Africa/Cairo",
"Africa/Casablanca",
"Africa/Ceuta",
"Africa/Conakry",
"Africa/Dakar",
"Africa/Dar_es_Salaam",
"Africa/Djibouti",
"Africa/Douala",
"Africa/El_Aaiun",
"Africa/Freetown",
"Africa/Gaborone",
"Africa/Harare",
"Africa/Johannesburg",
"Africa/Juba",
"Africa/Kampala",
"Africa/Khartoum",
"Africa/Kigali",
"Africa/Kinshasa",
"Africa/Lagos",
"Africa/Libreville",
"Africa/Lome",
"Africa/Luanda",
"Africa/Lubumbashi",
"Africa/Lusaka",
"Africa/Malabo",
"Africa/Maputo",
"Africa/Maseru",
"Africa/Mbabane",
"Africa/Mogadishu",
"Africa/Monrovia",
"Africa/Nairobi",
"Africa/Ndjamena",
"Africa/Niamey",
"Africa/Nouakchott",
"Africa/Ouagadougou",
"Africa/Porto-Novo",
"Africa/Sao_Tome",
"Africa/Timbuktu",
"Africa/Tripoli",
"Africa/Tunis",
"Africa/Windhoek",
"America/Adak",
"America/Anchorage",
"America/Anguilla",
"America/Antigua",
"America/Araguaina",
"America/Argentina/Buenos_Aires",
"America/Argentina/Catamarca",
"America/Argentina/ComodRivadavia",
"America/Argentina/Cordoba",
"America/Argentina/Jujuy",
"America/Argentina/La_Rioja",
"America/Argentina/Mendoza",
"America/Argentina/Rio_Gallegos",
"America/Argentina/Salta",
"America/Argentina/San_Juan",
"America/Argentina/San_Luis",
"America/Argentina/Tucuman",
"America/Argentina/Ushuaia",
"America/Aruba",
"America/Asuncion",
"America/Atikokan",
"America/Atka",
"America/Bahia",
"America/Bahia_Banderas",
"America/Barbados",
"America/Belem",
"America/Belize",
"America/Blanc-Sablon",
"America/Boa_Vista",
"America/Bogota",
"America/Boise",
"America/Buenos_Aires",
"America/Cambridge_Bay",
"America/Campo_Grande",
"America/Cancun",
"America/Caracas",
"America/Catamarca",
"America/Cayenne",
"America/Cayman",
"America/Chicago",
"America/Chihuahua",
"America/Ciudad_Juarez",
"America/Coral_Harbour",
"America/Cordoba",
"America/Costa_Rica",
"America/Creston",
"America/Cuiaba",
"America/Curacao",
"America/Danmarkshavn",
"America/Dawson",
"America/Dawson_Creek",
"America/Denver",
"America/Detroit",
"America/Dominica",
"America/Edmonton",
"America/Eirunepe",
"America/El_Salvador",
"America/Ensenada",
"America/Fort_Nelson",
"America/Fort_Wayne",
"America/Fortaleza",
"America/Glace_Bay",
"America/Godthab",
"America/Goose_Bay",
"America/Grand_Turk",
"America/Grenada",
"America/Guadeloupe",
"America/Guatemala",
"America/Guayaquil",
"America/Guyana",
"America/Halifax",
"America/Havana",
"America/Hermosillo",
"America/Indiana/Indianapolis",
"America/Indiana/Knox",
"America/Indiana/Marengo",
"America/Indiana/Petersburg",
"America/Indiana/Tell_City",
"America/Indiana/Vevay",
"America/Indiana/Vincennes",
"America/Indiana/Winamac",
"America/Indianapolis",
"America/Inuvik",
"America/Iqaluit",
"America/Jamaica",
"America/Jujuy",
"America/Juneau",
"America/Kentucky/Louisville",
"America/Kentucky/Monticello",
"America/Knox_IN",
"America/Kralendijk",
"America/La_Paz",
"America/Lima",
"America/Los_Angeles",
"America/Louisville",
"America/Lower_Princes",
"America/Maceio",
"America/Managua",
"America/Manaus",
"America/Marigot",
"America/Martinique",
"America/Matamoros",
"America/Mazatlan",
"America/Mendoza",
"America/Menominee",
"America/Merida",
"America/Metlakatla",
"America/Mexico_City",
"America/Miquelon",
"America/Moncton",
"America/Monterrey",
"America/Montevideo",
"America/Montreal",
"America/Montserrat",
"America/Nassau",
"America/New_York",
"America/Nipigon",
"America/Nome",
"America/Noronha",
"America/North_Dakota/Beulah",
"America/North_Dakota/Center",
"America/North_Dakota/New_Salem",
"America/Nuuk",
"America/Ojinaga",
"America/Panama",
"America/Pangnirtung",
"America/Paramaribo",
"America/Phoenix",
"America/Port-au-Prince",
"America/Port_of_Spain",
"America/Porto_Acre",
"America/Porto_Velho",
"America/Puerto_Rico",
"America/Punta_Arenas",
"America/Rainy_River",
"America/Rankin_Inlet",
"America/Recife",
"America/Regina",
"America/Resolute",
"America/Rio_Branco",
"America/Rosario",
"America/Santa_Isabel",
"America/Santarem",
"America/Santiago",
"America/Santo_Domingo",
"America/Sao_Paulo",
"America/Scoresbysund",
"America/Shiprock",
"America/Sitka",
"America/St_Barthelemy",
"America/St_Johns",
"America/St_Kitts",
"America/St_Lucia",
"America/St_Thomas",
"America/St_Vincent",
"America/Swift_Current",
"America/Tegucigalpa",
"America/Thule",
"America/Thunder_Bay",
"America/Tijuana",
"America/Toronto",
"America/Tortola",
"America/Vancouver",
"America/Virgin",
"America/Whitehorse",
"America/Winnipeg",
"America/Yakutat",
"America/Yellowknife",
"Antarctica/Casey",
"Antarctica/Davis",
"Antarctica/DumontDUrville",
"Antarctica/Macquarie",
"Antarctica/Mawson",
"Antarctica/McMurdo",
"Antarctica/Palmer",
"Antarctica/Rothera",
"Antarctica/South_Pole",
"Antarctica/Syowa",
"Antarctica/Troll",
"Antarctica/Vostok",
"Arctic/Longyearbyen",
"Asia/Aden",
"Asia/Almaty",
"Asia/Amman",
"Asia/Anadyr",
"Asia/Aqtau",
"Asia/Aqtobe",
"Asia/Ashgabat",
"Asia/Ashkhabad",
"Asia/Atyrau",
"Asia/Baghdad",
"Asia/Bahrain",
"Asia/Baku",
"Asia/Bangkok",
"Asia/Barnaul",
"Asia/Beirut",
"Asia/Bishkek",
"Asia/Brunei",
"Asia/Calcutta",
"Asia/Chita",
"Asia/Choibalsan",
"Asia/Chongqing",
"Asia/Chungking",
"Asia/Colombo",
"Asia/Dacca",
"Asia/Damascus",
"Asia/Dhaka",
"Asia/Dili",
"Asia/Dubai",
"Asia/Dushanbe",
"Asia/Famagusta",
"Asia/Gaza",
"Asia/Harbin",
"Asia/Hebron",
"Asia/Ho_Chi_Minh",
"Asia/Hong_Kong",
"Asia/Hovd",
"Asia/Irkutsk",
"Asia/Istanbul",
"Asia/Jakarta",
"Asia/Jayapura",
"Asia/Jerusalem",
"Asia/Kabul",
"Asia/Kamchatka",
"Asia/Karachi",
"Asia/Kashgar",
"Asia/Kathmandu",
"Asia/Katmandu",
"Asia/Khandyga",
"Asia/Kolkata",
"Asia/Krasnoyarsk",
"Asia/Kuala_Lumpur",
"Asia/Kuching",
"Asia/Kuwait",
"Asia/Macao",
"Asia/Macau",
"Asia/Magadan",
"Asia/Makassar",
"Asia/Manila",
"Asia/Muscat",
"Asia/Nicosia",
"Asia/Novokuznetsk",
"Asia/Novosibirsk",
"Asia/Omsk",
"Asia/Oral",
"Asia/Phnom_Penh",
"Asia/Pontianak",
"Asia/Pyongyang",
"Asia/Qatar",
"Asia/Qostanay",
"Asia/Qyzylorda",
"Asia/Rangoon",
"Asia/Riyadh",
"Asia/Saigon",
"Asia/Sakhalin",
"Asia/Samarkand",
"Asia/Seoul",
"Asia/Shanghai",
"Asia/Singapore",
"Asia/Srednekolymsk",
"Asia/Taipei",
"Asia/Tashkent",
"Asia/Tbilisi",
"Asia/Tehran",
"Asia/Tel_Aviv",
"Asia/Thimbu",
"Asia/Thimphu",
"Asia/Tokyo",
"Asia/Tomsk",
"Asia/Ujung_Pandang",
"Asia/Ulaanbaatar",
"Asia/Ulan_Bator",
"Asia/Urumqi",
"Asia/Ust-Nera",
"Asia/Vientiane",
"Asia/Vladivostok",
"Asia/Yakutsk",
"Asia/Yangon",
"Asia/Yekaterinburg",
"Asia/Yerevan",
"Atlantic/Azores",
"Atlantic/Bermuda",
"Atlantic/Canary",
"Atlantic/Cape_Verde",
"Atlantic/Faeroe",
"Atlantic/Faroe",
"Atlantic/Jan_Mayen",
"Atlantic/Madeira",
"Atlantic/Reykjavik",
"Atlantic/South_Georgia",
"Atlantic/St_Helena",
"Atlantic/Stanley",
"Australia/ACT",
"Australia/Adelaide",
"Australia/Brisbane",
"Australia/Broken_Hill",
"Australia/Canberra",
"Australia/Currie",
"Australia/Darwin",
"Australia/Eucla",
"Australia/Hobart",
"Australia/LHI",
"Australia/Lindeman",
"Australia/Lord_Howe",
"Australia/Melbourne",
"Australia/NSW",
"Australia/North",
"Australia/Perth",
"Australia/Queensland",
"Australia/South",
"Australia/Sydney",
"Australia/Tasmania",
"Australia/Victoria",
"Australia/West",
"Australia/Yancowinna",
"Brazil/Acre",
"Brazil/DeNoronha",
"Brazil/East",
"Brazil/West",
"CET",
"CST6CDT",
"Canada/Atlantic",
"Canada/Central",
"Canada/Eastern",
"Canada/Mountain",
"Canada/Newfoundland",
"Canada/Pacific",
"Canada/Saskatchewan",
"Canada/Yukon",
"Chile/Continental",
"Chile/EasterIsland",
"Cuba",
"EET",
"EST",
"EST5EDT",
"Egypt",
"Eire",
"Etc/GMT",
"Etc/GMT+0",
"Etc/GMT+1",
"Etc/GMT+10",
"Etc/GMT+11",
"Etc/GMT+12",
"Etc/GMT+2",
"Etc/GMT+3",
"Etc/GMT+4",
"Etc/GMT+5",
"Etc/GMT+6",
"Etc/GMT+7",
"Etc/GMT+8",
"Etc/GMT+9",
"Etc/GMT-0",
"Etc/GMT-1",
"Etc/GMT-10",
"Etc/GMT-11",
"Etc/GMT-12",
"Etc/GMT-13",
"Etc/GMT-14",
"Etc/GMT-2",
"Etc/GMT-3",
"Etc/GMT-4",
"Etc/GMT-5",
"Etc/GMT-6",
"Etc/GMT-7",
"Etc/GMT-8",
"Etc/GMT-9",
"Etc/GMT0",
"Etc/Greenwich",
"Etc/UCT",
"Etc/UTC",
"Etc/Universal",
"Etc/Zulu",
"Europe/Amsterdam",
"Europe/Andorra",
"Europe/Astrakhan",
"Europe/Athens",
"Europe/Belfast",
"Europe/Belgrade",
"Europe/Berlin",
"Europe/Bratislava",
"Europe/Brussels",
"Europe/Bucharest",
"Europe/Budapest",
"Europe/Busingen",
"Europe/Chisinau",
"Europe/Copenhagen",
"Europe/Dublin",
"Europe/Gibraltar",
"Europe/Guernsey",
"Europe/Helsinki",
"Europe/Isle_of_Man",
"Europe/Istanbul",
"Europe/Jersey",
"Europe/Kaliningrad",
"Europe/Kiev",
"Europe/Kirov",
"Europe/Kyiv",
"Europe/Lisbon",
"Europe/Ljubljana",
"Europe/London",
"Europe/Luxembourg",
"Europe/Madrid",
"Europe/Malta",
"Europe/Mariehamn",
"Europe/Minsk",
"Europe/Monaco",
"Europe/Moscow",
"Europe/Nicosia",
"Europe/Oslo",
"Europe/Paris",
"Europe/Podgorica",
"Europe/Prague",
"Europe/Riga",
"Europe/Rome",
"Europe/Samara",
"Europe/San_Marino",
"Europe/Sarajevo",
"Europe/Saratov",
"Europe/Simferopol",
"Europe/Skopje",
"Europe/Sofia",
"Europe/Stockholm",
"Europe/Tallinn",
"Europe/Tirane",
"Europe/Tiraspol",
"Europe/Ulyanovsk",
"Europe/Uzhgorod",
"Europe/Vaduz",
"Europe/Vatican",
"Europe/Vienna",
"Europe/Vilnius",
"Europe/Volgograd",
"Europe/Warsaw",
"Europe/Zagreb",
"Europe/Zaporozhye",
"Europe/Zurich",
"GB",
"GB-Eire",
"GMT",
"GMT+0",
"GMT-0",
"GMT0",
"Greenwich",
"HST",
"Hongkong",
"Iceland",
"Indian/Antananarivo",
"Indian/Chagos",
"Indian/Christmas",
"Indian/Cocos",
"Indian/Comoro",
"Indian/Kerguelen",
"Indian/Mahe",
"Indian/Maldives",
"Indian/Mauritius",
"Indian/Mayotte",
"Indian/Reunion",
"Iran",
"Israel",
"Jamaica",
"Japan",
"Kwajalein",
"Libya",
"MET",
"MST",
"MST7MDT",
"Mexico/BajaNorte",
"Mexico/BajaSur",
"Mexico/General",
"NZ",
"NZ-CHAT",
"Navajo",
"PRC",
"PST8PDT",
"Pacific/Apia",
"Pacific/Auckland",
"Pacific/Bougainville",
"Pacific/Chatham",
"Pacific/Chuuk",
"Pacific/Easter",
"Pacific/Efate",
"Pacific/Enderbury",
"Pacific/Fakaofo",
"Pacific/Fiji",
"Pacific/Funafuti",
"Pacific/Galapagos",
"Pacific/Gambier",
"Pacific/Guadalcanal",
"Pacific/Guam",
"Pacific/Honolulu",
"Pacific/Johnston",
"Pacific/Kanton",
"Pacific/Kiritimati",
"Pacific/Kosrae",
"Pacific/Kwajalein",
"Pacific/Majuro",
"Pacific/Marquesas",
"Pacific/Midway",
"Pacific/Nauru",
"Pacific/Niue",
"Pacific/Norfolk",
"Pacific/Noumea",
"Pacific/Pago_Pago",
"Pacific/Palau",
"Pacific/Pitcairn",
"Pacific/Pohnpei",
"Pacific/Ponape",
"Pacific/Port_Moresby",
"Pacific/Rarotonga",
"Pacific/Saipan",
"Pacific/Samoa",
"Pacific/Tahiti",
"Pacific/Tarawa",
"Pacific/Tongatapu",
"Pacific/Truk",
"Pacific/Wake",
"Pacific/Wallis",
"Pacific/Yap",
"Poland",
"Portugal",
"ROC",
"ROK",
"Singapore",
"Turkey",
"UCT",
"US/Alaska",
"US/Aleutian",
"US/Arizona",
"US/Central",
"US/East-Indiana",
"US/Eastern",
"US/Hawaii",
"US/Indiana-Starke",
"US/Michigan",
"US/Mountain",
"US/Pacific",
"US/Samoa",
"UTC",
"Universal",
"W-SU",
"WET",
"Zulu"
],
"type": "string"
},
"type": {
"description": "The report schedule type",
"enum": [
"Alert",
"Report"
],
"type": "string"
},
"validator_config_json": {
"$ref": "#/components/schemas/ValidatorConfigJSON"
},
"validator_type": {
"description": "Determines when to trigger alert based off value from alert query. Alerts will be triggered with these validator types:\n- Not Null - When the return value is Not NULL, Empty, or 0\n- Operator - When `sql_return_value comparison_operator threshold` is True e.g. `50 <= 75`<br>Supports the comparison operators <, <=, >, >=, ==, and !=",
"enum": [
"not null",
"operator"
],
"nullable": true,
"type": "string"
},
"working_timeout": {
"description": "If an alert is staled at a working state, how long until it's state is reset to error",
"example": 3600,
"minimum": 1,
"nullable": true,
"type": "integer"
}
},
"type": "object"
},
"Resource": {
"properties": {
"id": {
"type": "string"
},
"type": {
"enum": [
"dashboard"
]
}
},
"required": [
"id",
"type"
],
"type": "object"
},
"RlsRule": {
"properties": {
"clause": {
"type": "string"
},
"dataset": {
"type": "integer"
}
},
"required": [
"clause"
],
"type": "object"
},
"RolePermissionListSchema": {
"properties": {
"id": {
"type": "integer"
},
"permission_name": {
"type": "string"
},
"view_menu_name": {
"type": "string"
}
},
"type": "object"
},
"RolePermissionPostSchema": {
"properties": {
"permission_view_menu_ids": {
"description": "List of permission view menu id",
"items": {
"type": "integer"
},
"type": "array"
}
},
"required": [
"permission_view_menu_ids"
],
"type": "object"
},
"RoleResponseSchema": {
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"permission_ids": {
"items": {
"type": "integer"
},
"type": "array"
},
"user_ids": {
"items": {
"type": "integer"
},
"type": "array"
}
},
"type": "object"
},
"RoleUserPutSchema": {
"properties": {
"user_ids": {
"description": "List of user ids",
"items": {
"type": "integer"
},
"type": "array"
}
},
"required": [
"user_ids"
],
"type": "object"
},
"Roles": {
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
},
"type": "object"
},
"Roles1": {
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
},
"type": "object"
},
"RolesResponseSchema": {
"properties": {
"count": {
"type": "integer"
},
"ids": {
"items": {
"type": "integer"
},
"type": "array"
},
"result": {
"items": {
"$ref": "#/components/schemas/RoleResponseSchema"
},
"type": "array"
}
},
"type": "object"
},
"SQLLabBootstrapSchema": {
"properties": {
"active_tab": {
"$ref": "#/components/schemas/TabState"
},
"databases": {
"additionalProperties": {
"$ref": "#/components/schemas/ImportV1Database"
},
"type": "object"
},
"queries": {
"additionalProperties": {
"$ref": "#/components/schemas/QueryResult"
},
"type": "object"
},
"tab_state_ids": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"SavedQueryRestApi.get": {
"properties": {
"catalog": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"changed_by": {
"$ref": "#/components/schemas/SavedQueryRestApi.get.User"
},
"changed_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"changed_on_delta_humanized": {
"readOnly": true
},
"created_by": {
"$ref": "#/components/schemas/SavedQueryRestApi.get.User1"
},
"database": {
"$ref": "#/components/schemas/SavedQueryRestApi.get.Database"
},
"description": {
"nullable": true,
"type": "string"
},
"id": {
"type": "integer"
},
"label": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"schema": {
"maxLength": 128,
"nullable": true,
"type": "string"
},
"sql": {
"nullable": true,
"type": "string"
},
"sql_tables": {
"readOnly": true
},
"template_parameters": {
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"SavedQueryRestApi.get.Database": {
"properties": {
"database_name": {
"maxLength": 250,
"type": "string"
},
"id": {
"type": "integer"
}
},
"required": [
"database_name"
],
"type": "object"
},
"SavedQueryRestApi.get.User": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"SavedQueryRestApi.get.User1": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"SavedQueryRestApi.get_list": {
"properties": {
"catalog": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"changed_by": {
"$ref": "#/components/schemas/SavedQueryRestApi.get_list.User"
},
"changed_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"changed_on_delta_humanized": {
"readOnly": true
},
"created_by": {
"$ref": "#/components/schemas/SavedQueryRestApi.get_list.User1"
},
"created_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"database": {
"$ref": "#/components/schemas/SavedQueryRestApi.get_list.Database"
},
"db_id": {
"nullable": true,
"type": "integer"
},
"description": {
"nullable": true,
"type": "string"
},
"extra": {
"readOnly": true
},
"id": {
"type": "integer"
},
"label": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"last_run_delta_humanized": {
"readOnly": true
},
"rows": {
"nullable": true,
"type": "integer"
},
"schema": {
"maxLength": 128,
"nullable": true,
"type": "string"
},
"sql": {
"nullable": true,
"type": "string"
},
"sql_tables": {
"readOnly": true
},
"tags": {
"$ref": "#/components/schemas/SavedQueryRestApi.get_list.Tag"
}
},
"type": "object"
},
"SavedQueryRestApi.get_list.Database": {
"properties": {
"database_name": {
"maxLength": 250,
"type": "string"
},
"id": {
"type": "integer"
}
},
"required": [
"database_name"
],
"type": "object"
},
"SavedQueryRestApi.get_list.Tag": {
"properties": {
"id": {
"type": "integer"
},
"name": {
"maxLength": 250,
"nullable": true,
"type": "string"
},
"type": {
"enum": [
1,
2,
3,
4
]
}
},
"type": "object"
},
"SavedQueryRestApi.get_list.User": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"SavedQueryRestApi.get_list.User1": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"type": "integer"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"SavedQueryRestApi.post": {
"properties": {
"catalog": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"db_id": {
"nullable": true,
"type": "integer"
},
"description": {
"nullable": true,
"type": "string"
},
"extra_json": {
"nullable": true,
"type": "string"
},
"label": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"schema": {
"maxLength": 128,
"nullable": true,
"type": "string"
},
"sql": {
"nullable": true,
"type": "string"
},
"template_parameters": {
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"SavedQueryRestApi.put": {
"properties": {
"catalog": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"db_id": {
"nullable": true,
"type": "integer"
},
"description": {
"nullable": true,
"type": "string"
},
"extra_json": {
"nullable": true,
"type": "string"
},
"label": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"schema": {
"maxLength": 128,
"nullable": true,
"type": "string"
},
"sql": {
"nullable": true,
"type": "string"
},
"template_parameters": {
"nullable": true,
"type": "string"
}
},
"type": "object"
},
"SchemasResponseSchema": {
"properties": {
"result": {
"items": {
"description": "A database schema name",
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"SelectStarResponseSchema": {
"properties": {
"result": {
"description": "SQL select star",
"type": "string"
}
},
"type": "object"
},
"Slice": {
"properties": {
"cache_timeout": {
"description": "Duration (in seconds) of the caching timeout for this chart.",
"type": "integer"
},
"certification_details": {
"description": "Details of the certification.",
"type": "string"
},
"certified_by": {
"description": "Person or group that has certified this dashboard.",
"type": "string"
},
"changed_on": {
"description": "Timestamp of the last modification.",
"format": "date-time",
"type": "string"
},
"changed_on_humanized": {
"description": "Timestamp of the last modification in human readable form.",
"type": "string"
},
"datasource": {
"description": "Datasource identifier.",
"type": "string"
},
"description": {
"description": "Slice description.",
"type": "string"
},
"description_markeddown": {
"description": "Sanitized HTML version of the chart description.",
"type": "string"
},
"edit_url": {
"description": "The URL for editing the slice.",
"type": "string"
},
"form_data": {
"description": "Form data associated with the slice.",
"type": "object"
},
"is_managed_externally": {
"description": "If the chart is managed outside externally.",
"type": "boolean"
},
"modified": {
"description": "Last modification in human readable form.",
"type": "string"
},
"owners": {
"description": "Owners identifiers.",
"items": {
"type": "integer"
},
"type": "array"
},
"query_context": {
"description": "The context associated with the query.",
"type": "object"
},
"slice_id": {
"description": "The slice ID.",
"type": "integer"
},
"slice_name": {
"description": "The slice name.",
"type": "string"
},
"slice_url": {
"description": "The slice URL.",
"type": "string"
}
},
"type": "object"
},
"SqlLabPermalinkSchema": {
"properties": {
"autorun": {
"type": "boolean"
},
"catalog": {
"description": "The catalog name of the query",
"nullable": true,
"type": "string"
},
"dbId": {
"description": "The id of the database",
"type": "integer"
},
"name": {
"description": "The label of the editor tab",
"type": "string"
},
"schema": {
"description": "The schema name of the query",
"nullable": true,
"type": "string"
},
"sql": {
"description": "SQL query text",
"type": "string"
},
"templateParams": {
"description": "stringfied JSON string for template parameters",
"nullable": true,
"type": "string"
}
},
"required": [
"dbId",
"name",
"sql"
],
"type": "object"
},
"StopQuerySchema": {
"properties": {
"client_id": {
"type": "string"
}
},
"type": "object"
},
"SupersetRoleApi.get": {
"properties": {
"id": {
"type": "integer"
},
"name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"SupersetRoleApi.get_list": {
"properties": {
"id": {
"type": "integer"
},
"name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"SupersetRoleApi.post": {
"properties": {
"name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"SupersetRoleApi.put": {
"properties": {
"name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"SupersetUserApi.get": {
"properties": {
"active": {
"nullable": true,
"type": "boolean"
},
"changed_by": {
"$ref": "#/components/schemas/SupersetUserApi.get.User1"
},
"changed_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"created_by": {
"$ref": "#/components/schemas/SupersetUserApi.get.User"
},
"created_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"email": {
"maxLength": 320,
"type": "string"
},
"fail_login_count": {
"nullable": true,
"type": "integer"
},
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"type": "integer"
},
"last_login": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"last_name": {
"maxLength": 64,
"type": "string"
},
"login_count": {
"nullable": true,
"type": "integer"
},
"roles": {
"$ref": "#/components/schemas/SupersetUserApi.get.Role"
},
"username": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"email",
"first_name",
"last_name",
"username"
],
"type": "object"
},
"SupersetUserApi.get.Role": {
"properties": {
"id": {
"type": "integer"
},
"name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"SupersetUserApi.get.User": {
"properties": {
"id": {
"type": "integer"
}
},
"type": "object"
},
"SupersetUserApi.get.User1": {
"properties": {
"id": {
"type": "integer"
}
},
"type": "object"
},
"SupersetUserApi.get_list": {
"properties": {
"active": {
"nullable": true,
"type": "boolean"
},
"changed_by": {
"$ref": "#/components/schemas/SupersetUserApi.get_list.User1"
},
"changed_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"created_by": {
"$ref": "#/components/schemas/SupersetUserApi.get_list.User"
},
"created_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"email": {
"maxLength": 320,
"type": "string"
},
"fail_login_count": {
"nullable": true,
"type": "integer"
},
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"type": "integer"
},
"last_login": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"last_name": {
"maxLength": 64,
"type": "string"
},
"login_count": {
"nullable": true,
"type": "integer"
},
"roles": {
"$ref": "#/components/schemas/SupersetUserApi.get_list.Role"
},
"username": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"email",
"first_name",
"last_name",
"username"
],
"type": "object"
},
"SupersetUserApi.get_list.Role": {
"properties": {
"id": {
"type": "integer"
},
"name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"SupersetUserApi.get_list.User": {
"properties": {
"id": {
"type": "integer"
}
},
"type": "object"
},
"SupersetUserApi.get_list.User1": {
"properties": {
"id": {
"type": "integer"
}
},
"type": "object"
},
"SupersetUserApi.post": {
"properties": {
"active": {
"description": "Is user active?It's not a good policy to remove a user, just make it inactive",
"type": "boolean"
},
"email": {
"description": "The user's email",
"type": "string"
},
"first_name": {
"description": "The user's first name",
"type": "string"
},
"last_name": {
"description": "The user's last name",
"type": "string"
},
"password": {
"description": "The user's password for authentication",
"type": "string"
},
"roles": {
"description": "The user's roles",
"items": {
"type": "integer"
},
"minItems": 1,
"type": "array"
},
"username": {
"description": "The user's username",
"maxLength": 250,
"minLength": 1,
"type": "string"
}
},
"required": [
"email",
"first_name",
"last_name",
"password",
"roles",
"username"
],
"type": "object"
},
"SupersetUserApi.put": {
"properties": {
"active": {
"description": "Is user active?It's not a good policy to remove a user, just make it inactive",
"type": "boolean"
},
"email": {
"description": "The user's email",
"type": "string"
},
"first_name": {
"description": "The user's first name",
"type": "string"
},
"last_name": {
"description": "The user's last name",
"type": "string"
},
"password": {
"description": "The user's password for authentication",
"type": "string"
},
"roles": {
"description": "The user's roles",
"items": {
"type": "integer"
},
"minItems": 1,
"type": "array"
},
"username": {
"description": "The user's username",
"maxLength": 250,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"Tab": {
"properties": {
"children": {
"items": {
"$ref": "#/components/schemas/Tab"
},
"type": "array"
},
"parents": {
"items": {
"type": "string"
},
"type": "array"
},
"title": {
"type": "string"
},
"value": {
"type": "string"
}
},
"type": "object"
},
"TabState": {
"properties": {
"active": {
"type": "boolean"
},
"autorun": {
"type": "boolean"
},
"database_id": {
"type": "integer"
},
"extra_json": {
"type": "object"
},
"hide_left_bar": {
"type": "boolean"
},
"id": {
"type": "string"
},
"label": {
"type": "string"
},
"latest_query": {
"$ref": "#/components/schemas/QueryResult"
},
"query_limit": {
"type": "integer"
},
"saved_query": {
"nullable": true,
"type": "object"
},
"schema": {
"type": "string"
},
"sql": {
"type": "string"
},
"table_schemas": {
"items": {
"$ref": "#/components/schemas/Table"
},
"type": "array"
},
"user_id": {
"type": "integer"
}
},
"type": "object"
},
"Table": {
"properties": {
"database_id": {
"type": "integer"
},
"description": {
"type": "string"
},
"expanded": {
"type": "boolean"
},
"id": {
"type": "integer"
},
"schema": {
"type": "string"
},
"tab_state_id": {
"type": "integer"
},
"table": {
"type": "string"
}
},
"type": "object"
},
"TableExtraMetadataResponseSchema": {
"properties": {
"clustering": {
"type": "object"
},
"metadata": {
"type": "object"
},
"partitions": {
"type": "object"
}
},
"type": "object"
},
"TableMetadataColumnsResponse": {
"properties": {
"duplicates_constraint": {
"type": "string"
},
"keys": {
"description": "",
"items": {
"type": "string"
},
"type": "array"
},
"longType": {
"description": "The actual backend long type for the column",
"type": "string"
},
"name": {
"description": "The column name",
"type": "string"
},
"type": {
"description": "The column type",
"type": "string"
}
},
"type": "object"
},
"TableMetadataForeignKeysIndexesResponse": {
"properties": {
"column_names": {
"items": {
"description": "A list of column names that compose the foreign key or index",
"type": "string"
},
"type": "array"
},
"name": {
"description": "The name of the foreign key or index",
"type": "string"
},
"options": {
"$ref": "#/components/schemas/TableMetadataOptionsResponse"
},
"referred_columns": {
"items": {
"type": "string"
},
"type": "array"
},
"referred_schema": {
"type": "string"
},
"referred_table": {
"type": "string"
},
"type": {
"type": "string"
}
},
"type": "object"
},
"TableMetadataOptionsResponse": {
"properties": {
"deferrable": {
"type": "boolean"
},
"initially": {
"type": "boolean"
},
"match": {
"type": "boolean"
},
"ondelete": {
"type": "boolean"
},
"onupdate": {
"type": "boolean"
}
},
"type": "object"
},
"TableMetadataPrimaryKeyResponse": {
"properties": {
"column_names": {
"items": {
"description": "A list of column names that compose the primary key",
"type": "string"
},
"type": "array"
},
"name": {
"description": "The primary key index name",
"type": "string"
},
"type": {
"type": "string"
}
},
"type": "object"
},
"TableMetadataResponseSchema": {
"properties": {
"columns": {
"description": "A list of columns and their metadata",
"items": {
"$ref": "#/components/schemas/TableMetadataColumnsResponse"
},
"type": "array"
},
"foreignKeys": {
"description": "A list of foreign keys and their metadata",
"items": {
"$ref": "#/components/schemas/TableMetadataForeignKeysIndexesResponse"
},
"type": "array"
},
"indexes": {
"description": "A list of indexes and their metadata",
"items": {
"$ref": "#/components/schemas/TableMetadataForeignKeysIndexesResponse"
},
"type": "array"
},
"name": {
"description": "The name of the table",
"type": "string"
},
"primaryKey": {
"allOf": [
{
"$ref": "#/components/schemas/TableMetadataPrimaryKeyResponse"
}
],
"description": "Primary keys metadata"
},
"selectStar": {
"description": "SQL select star",
"type": "string"
}
},
"type": "object"
},
"Tables": {
"properties": {
"id": {
"type": "integer"
},
"schema": {
"type": "string"
},
"table_name": {
"type": "string"
}
},
"type": "object"
},
"TabsPayloadSchema": {
"properties": {
"all_tabs": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"tab_tree": {
"items": {
"$ref": "#/components/schemas/Tab"
},
"type": "array"
}
},
"type": "object"
},
"Tag": {
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"type": {
"enum": [
1,
2,
3,
4
]
}
},
"type": "object"
},
"TagGetResponseSchema": {
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"type": {
"type": "string"
}
},
"type": "object"
},
"TagObject": {
"properties": {
"description": {
"nullable": true,
"type": "string"
},
"name": {
"minLength": 1,
"type": "string"
},
"objects_to_tag": {
"description": "Objects to tag",
"items": {},
"type": "array"
}
},
"type": "object"
},
"TagPostBulkResponseObject": {
"properties": {
"objects_skipped": {
"description": "Objects to tag",
"items": {},
"type": "array"
},
"objects_tagged": {
"description": "Objects to tag",
"items": {},
"type": "array"
}
},
"type": "object"
},
"TagPostBulkResponseSchema": {
"properties": {
"result": {
"$ref": "#/components/schemas/TagPostBulkResponseObject"
}
},
"type": "object"
},
"TagPostBulkSchema": {
"properties": {
"tags": {
"items": {
"$ref": "#/components/schemas/TagObject"
},
"type": "array"
}
},
"type": "object"
},
"TagRestApi.get": {
"properties": {
"changed_by": {
"$ref": "#/components/schemas/TagRestApi.get.User"
},
"changed_on_delta_humanized": {
"readOnly": true
},
"created_by": {
"$ref": "#/components/schemas/TagRestApi.get.User1"
},
"created_on_delta_humanized": {
"readOnly": true
},
"description": {
"nullable": true,
"type": "string"
},
"id": {
"type": "integer"
},
"name": {
"maxLength": 250,
"nullable": true,
"type": "string"
},
"type": {
"enum": [
1,
2,
3,
4
]
}
},
"type": "object"
},
"TagRestApi.get.User": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"TagRestApi.get.User1": {
"properties": {
"active": {
"nullable": true,
"type": "boolean"
},
"changed_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"created_on": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"email": {
"maxLength": 320,
"type": "string"
},
"fail_login_count": {
"nullable": true,
"type": "integer"
},
"first_name": {
"maxLength": 64,
"type": "string"
},
"id": {
"type": "integer"
},
"last_login": {
"format": "date-time",
"nullable": true,
"type": "string"
},
"last_name": {
"maxLength": 64,
"type": "string"
},
"login_count": {
"nullable": true,
"type": "integer"
},
"password": {
"maxLength": 256,
"nullable": true,
"type": "string"
},
"username": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"email",
"first_name",
"last_name",
"username"
],
"type": "object"
},
"TagRestApi.get_list": {
"properties": {
"changed_by": {
"$ref": "#/components/schemas/TagRestApi.get_list.User"
},
"changed_on_delta_humanized": {
"readOnly": true
},
"created_by": {
"$ref": "#/components/schemas/TagRestApi.get_list.User1"
},
"created_on_delta_humanized": {
"readOnly": true
},
"description": {
"nullable": true,
"type": "string"
},
"id": {
"type": "integer"
},
"name": {
"maxLength": 250,
"nullable": true,
"type": "string"
},
"type": {
"enum": [
1,
2,
3,
4
]
}
},
"type": "object"
},
"TagRestApi.get_list.User": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"TagRestApi.get_list.User1": {
"properties": {
"first_name": {
"maxLength": 64,
"type": "string"
},
"last_name": {
"maxLength": 64,
"type": "string"
}
},
"required": [
"first_name",
"last_name"
],
"type": "object"
},
"TagRestApi.post": {
"properties": {
"description": {
"nullable": true,
"type": "string"
},
"name": {
"minLength": 1,
"type": "string"
},
"objects_to_tag": {
"description": "Objects to tag",
"items": {},
"type": "array"
}
},
"type": "object"
},
"TagRestApi.put": {
"properties": {
"description": {
"nullable": true,
"type": "string"
},
"name": {
"minLength": 1,
"type": "string"
},
"objects_to_tag": {
"description": "Objects to tag",
"items": {},
"type": "array"
}
},
"type": "object"
},
"TaggedObjectEntityResponseSchema": {
"properties": {
"changed_on": {
"format": "date-time",
"type": "string"
},
"created_by": {
"$ref": "#/components/schemas/User"
},
"creator": {
"type": "string"
},
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"owners": {
"items": {
"$ref": "#/components/schemas/User1"
},
"type": "array"
},
"tags": {
"items": {
"$ref": "#/components/schemas/TagGetResponseSchema"
},
"type": "array"
},
"type": {
"type": "string"
},
"url": {
"type": "string"
}
},
"type": "object"
},
"TemporaryCachePostSchema": {
"properties": {
"value": {
"description": "Any type of JSON supported text.",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"TemporaryCachePutSchema": {
"properties": {
"value": {
"description": "Any type of JSON supported text.",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"UploadFileMetadata": {
"properties": {
"items": {
"items": {
"$ref": "#/components/schemas/UploadFileMetadataItem"
},
"type": "array"
}
},
"type": "object"
},
"UploadFileMetadataItem": {
"properties": {
"column_names": {
"description": "A list of columns names in the sheet",
"items": {
"type": "string"
},
"type": "array"
},
"sheet_name": {
"description": "The name of the sheet",
"type": "string"
}
},
"type": "object"
},
"UploadFileMetadataPostSchema": {
"properties": {
"delimiter": {
"description": "The character used to separate values in the CSV file (e.g., a comma, semicolon, or tab).",
"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"
},
"type": {
"description": "File type to upload",
"enum": [
"csv",
"excel",
"columnar"
]
}
},
"required": [
"file",
"type"
],
"type": "object"
},
"UploadPostSchema": {
"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": "[CSV only] 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": "[CSV and Excel only] 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": "[CSV only] DD/MM format dates, international and European format",
"type": "boolean"
},
"decimal_character": {
"description": "[CSV and Excel only] Character to recognize as decimal point. Default is '.'",
"type": "string"
},
"delimiter": {
"description": "[CSV only] The character used to separate values in the CSV file (e.g., a comma, semicolon, or tab).",
"type": "string"
},
"file": {
"description": "The file to upload",
"format": "text/csv",
"type": "string"
},
"header_row": {
"description": "[CSV and Excel only] 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": "[CSV and Excel only] 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": "[CSV and Excel only] 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": "[CSV and Excel only] 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": "[Excel only]] Strings used for sheet names (default is the first sheet).",
"type": "string"
},
"skip_blank_lines": {
"description": "[CSV only] Skip blank lines in the CSV file.",
"type": "boolean"
},
"skip_initial_space": {
"description": "[CSV only] Skip spaces after delimiter.",
"type": "boolean"
},
"skip_rows": {
"description": "[CSV and Excel only] 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"
},
"type": {
"description": "File type to upload",
"enum": [
"csv",
"excel",
"columnar"
]
}
},
"required": [
"file",
"table_name",
"type"
],
"type": "object"
},
"User": {
"properties": {
"first_name": {
"type": "string"
},
"id": {
"type": "integer"
},
"last_name": {
"type": "string"
}
},
"type": "object"
},
"User1": {
"properties": {
"first_name": {
"type": "string"
},
"id": {
"type": "integer"
},
"last_name": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"User2": {
"properties": {
"first_name": {
"type": "string"
},
"last_name": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"UserResponseSchema": {
"properties": {
"email": {
"type": "string"
},
"first_name": {
"type": "string"
},
"id": {
"type": "integer"
},
"is_active": {
"type": "boolean"
},
"is_anonymous": {
"type": "boolean"
},
"last_name": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"ValidateSQLRequest": {
"properties": {
"catalog": {
"nullable": true,
"type": "string"
},
"schema": {
"nullable": true,
"type": "string"
},
"sql": {
"description": "SQL statement to validate",
"type": "string"
},
"template_params": {
"nullable": true,
"type": "object"
}
},
"required": [
"sql"
],
"type": "object"
},
"ValidateSQLResponse": {
"properties": {
"end_column": {
"type": "integer"
},
"line_number": {
"type": "integer"
},
"message": {
"type": "string"
},
"start_column": {
"type": "integer"
}
},
"type": "object"
},
"ValidatorConfigJSON": {
"properties": {
"op": {
"description": "The operation to compare with a threshold to apply to the SQL output\n",
"enum": [
"<",
"<=",
">",
">=",
"==",
"!="
],
"type": "string"
},
"threshold": {
"type": "number"
}
},
"type": "object"
},
"ViewMenuApi.get": {
"properties": {
"id": {
"type": "integer"
},
"name": {
"maxLength": 250,
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"ViewMenuApi.get_list": {
"properties": {
"id": {
"type": "integer"
},
"name": {
"maxLength": 250,
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"ViewMenuApi.post": {
"properties": {
"name": {
"maxLength": 250,
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"ViewMenuApi.put": {
"properties": {
"name": {
"maxLength": 250,
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"advanced_data_type_convert_schema": {
"properties": {
"type": {
"default": "port",
"type": "string"
},
"values": {
"items": {
"default": "http"
},
"minItems": 1,
"type": "array"
}
},
"required": [
"type",
"values"
],
"type": "object"
},
"database_catalogs_query_schema": {
"properties": {
"force": {
"type": "boolean"
}
},
"type": "object"
},
"database_schemas_query_schema": {
"properties": {
"catalog": {
"type": "string"
},
"force": {
"type": "boolean"
},
"upload_allowed": {
"type": "boolean"
}
},
"type": "object"
},
"database_tables_query_schema": {
"properties": {
"catalog_name": {
"type": "string"
},
"force": {
"type": "boolean"
},
"schema_name": {
"type": "string"
}
},
"required": [
"schema_name"
],
"type": "object"
},
"delete_tags_schema": {
"items": {
"type": "string"
},
"type": "array"
},
"get_delete_ids_schema": {
"items": {
"type": "integer"
},
"type": "array"
},
"get_export_ids_schema": {
"items": {
"type": "integer"
},
"type": "array"
},
"get_fav_star_ids_schema": {
"items": {
"type": "integer"
},
"type": "array"
},
"get_info_schema": {
"properties": {
"add_columns": {
"additionalProperties": {
"properties": {
"page": {
"type": "integer"
},
"page_size": {
"type": "integer"
}
},
"type": "object"
},
"type": "object"
},
"edit_columns": {
"additionalProperties": {
"properties": {
"page": {
"type": "integer"
},
"page_size": {
"type": "integer"
}
},
"type": "object"
},
"type": "object"
},
"keys": {
"items": {
"enum": [
"add_columns",
"edit_columns",
"filters",
"permissions",
"add_title",
"edit_title",
"none"
],
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"get_item_schema": {
"properties": {
"columns": {
"items": {
"type": "string"
},
"type": "array"
},
"keys": {
"items": {
"enum": [
"show_columns",
"description_columns",
"label_columns",
"show_title",
"none"
],
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"get_list_schema": {
"properties": {
"columns": {
"items": {
"type": "string"
},
"type": "array"
},
"filters": {
"items": {
"properties": {
"col": {
"type": "string"
},
"opr": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "string"
},
{
"type": "boolean"
},
{
"type": "array"
}
]
}
},
"required": [
"col",
"opr",
"value"
],
"type": "object"
},
"type": "array"
},
"keys": {
"items": {
"enum": [
"list_columns",
"order_columns",
"label_columns",
"description_columns",
"list_title",
"none"
],
"type": "string"
},
"type": "array"
},
"order_column": {
"type": "string"
},
"order_direction": {
"enum": [
"asc",
"desc"
],
"type": "string"
},
"page": {
"type": "integer"
},
"page_size": {
"type": "integer"
},
"select_columns": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"get_recent_activity_schema": {
"properties": {
"actions": {
"items": {
"type": "string"
},
"type": "array"
},
"distinct": {
"type": "boolean"
},
"page": {
"type": "number"
},
"page_size": {
"type": "number"
}
},
"type": "object"
},
"get_related_schema": {
"properties": {
"filter": {
"type": "string"
},
"include_ids": {
"items": {
"type": "integer"
},
"type": "array"
},
"page": {
"type": "integer"
},
"page_size": {
"type": "integer"
}
},
"type": "object"
},
"queries_get_updated_since_schema": {
"properties": {
"last_updated_ms": {
"type": "number"
}
},
"required": [
"last_updated_ms"
],
"type": "object"
},
"screenshot_query_schema": {
"properties": {
"force": {
"type": "boolean"
},
"thumb_size": {
"items": {
"type": "integer"
},
"type": "array"
},
"window_size": {
"items": {
"type": "integer"
},
"type": "array"
}
},
"type": "object"
},
"sql_lab_get_results_schema": {
"properties": {
"key": {
"type": "string"
}
},
"required": [
"key"
],
"type": "object"
},
"thumbnail_query_schema": {
"properties": {
"force": {
"type": "boolean"
}
},
"type": "object"
},
"DashboardScreenshotPostSchema": {
"type": "object",
"properties": {
"dataMask": {
"type": "object",
"description": "An object representing the data mask.",
"additionalProperties": true
},
"activeTabs": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list representing active tabs."
},
"anchor": {
"type": "string",
"description": "A string representing the anchor."
},
"urlParams": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2,
"maxItems": 2
},
"description": "A list of tuples, each containing two strings."
}
}
},
"DashboardNativeFiltersConfigUpdateSchema": {
"type": "object",
"properties": {
"deleted": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of deleted filter IDs."
},
"modified": {
"type": "array",
"items": {
"type": "object"
},
"description": "List of modified filter configurations."
},
"reordered": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of filter IDs in new order."
}
}
},
"DashboardColorsConfigUpdateSchema": {
"type": "object",
"properties": {
"color_namespace": {
"type": "string",
"nullable": true,
"description": "The color namespace."
},
"color_scheme": {
"type": "string",
"nullable": true,
"description": "The color scheme name."
},
"map_label_colors": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Mapping of labels to colors."
},
"shared_label_colors": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Shared label colors across charts."
},
"label_colors": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Label to color mapping."
},
"color_scheme_domain": {
"type": "array",
"items": {
"type": "string"
},
"description": "Color scheme domain values."
}
}
},
"FormatQueryPayloadSchema": {
"type": "object",
"required": [
"sql"
],
"properties": {
"sql": {
"type": "string",
"description": "The SQL query to format."
},
"engine": {
"type": "string",
"nullable": true,
"description": "The database engine."
},
"database_id": {
"type": "integer",
"nullable": true,
"description": "The database id."
},
"template_params": {
"type": "string",
"nullable": true,
"description": "The SQL query template params as JSON string."
}
}
},
"get_slack_channels_schema": {
"type": "object",
"properties": {
"search_string": {
"type": "string",
"description": "String to search for in channel names."
},
"types": {
"type": "array",
"items": {
"type": "string",
"enum": [
"public_channel",
"private_channel"
]
},
"description": "Types of channels to search."
},
"exact_match": {
"type": "boolean",
"description": "Whether to match channel names exactly."
}
}
}
},
"securitySchemes": {
"jwt": {
"bearerFormat": "JWT",
"scheme": "bearer",
"type": "http"
},
"jwt_refresh": {
"bearerFormat": "JWT",
"scheme": "bearer",
"type": "http"
}
}
},
"info": {
"description": "Superset",
"title": "Superset",
"version": "v1"
},
"openapi": "3.0.2",
"paths": {
"/api/v1/advanced_data_type/convert": {
"get": {
"description": "Returns an AdvancedDataTypeResponse object populated with the passed in args.",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/advanced_data_type_convert_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdvancedDataTypeSchema"
},
"example": {
"display_value": "string",
"error_message": "string",
"valid_filter_operators": [
"string"
],
"values": [
"string"
]
}
}
},
"description": "AdvancedDataTypeResponse object has been returned."
},
"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": "Return an AdvancedDataTypeResponse",
"tags": [
"Advanced Data Type"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/advanced_data_type/convert\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/advanced_data_type/convert\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/advanced_data_type/convert\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/advanced_data_type/types": {
"get": {
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"result": [
"string"
]
}
}
},
"description": "a successful return of the available advanced data types has taken place."
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Return a list of available advanced data types",
"tags": [
"Advanced Data Type"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/advanced_data_type/types\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/advanced_data_type/types\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/advanced_data_type/types\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/annotation_layer/": {
"delete": {
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_delete_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "CSS templates bulk delete"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Delete multiple annotation layers in a bulk operation",
"tags": [
"Annotation Layers"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/annotation_layer/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/annotation_layer/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"get": {
"description": "Gets a list of annotation layers, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/AnnotationLayerRestApi.get_list"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"count": 1.0,
"description_columns": {
"column_name": "A Nice description for the column"
},
"ids": [
"string"
],
"label_columns": {
"column_name": "A Nice label for the column"
},
"list_columns": [
"string"
],
"list_title": "List Items",
"order_columns": [
"string"
],
"result": [
{}
]
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a list of annotation layers (annotation-layer)",
"tags": [
"Annotation Layers"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/annotation_layer/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/annotation_layer/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AnnotationLayerRestApi.post"
},
"example": {
"descr": "string",
"name": "string"
}
}
},
"description": "Annotation Layer schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/AnnotationLayerRestApi.post"
}
},
"type": "object"
},
"example": {
"id": 1.0,
"result": {
"descr": "string",
"name": "string"
}
}
}
},
"description": "Annotation added"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Create an annotation layer (annotation-layer)",
"tags": [
"Annotation Layers"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/annotation_layer/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/annotation_layer/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/annotation_layer/_info": {
"get": {
"description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_info_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"add_columns": {
"type": "object"
},
"edit_columns": {
"type": "object"
},
"filters": {
"properties": {
"column_name": {
"items": {
"properties": {
"name": {
"description": "The filter name. Will be translated by babel",
"type": "string"
},
"operator": {
"description": "The filter operation key to use on list filters",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"permissions": {
"description": "The user permissions for this API resource",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"add_columns": {},
"edit_columns": {},
"filters": {
"column_name": [
{}
]
},
"permissions": [
"string"
]
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get metadata information about this API resource (annotation-layer--info)",
"tags": [
"Annotation Layers"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/annotation_layer/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/annotation_layer/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/annotation_layer/related/{column_name}": {
"get": {
"parameters": [
{
"in": "path",
"name": "column_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_related_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RelatedResponseSchema"
},
"example": {
"count": 1,
"result": []
}
}
},
"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 (annotation-layer-related-column-name)",
"tags": [
"Annotation Layers"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/annotation_layer/related/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/annotation_layer/related/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/related/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/annotation_layer/{pk}": {
"delete": {
"parameters": [
{
"description": "The annotation layer pk for this annotation",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Item deleted"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Delete annotation layer (annotation-layer-pk)",
"tags": [
"Annotation Layers"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/annotation_layer/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/annotation_layer/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"get": {
"description": "Get an item model",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"id": {
"description": "The item id",
"type": "string"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"result": {
"$ref": "#/components/schemas/AnnotationLayerRestApi.get"
},
"show_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"show_title": {
"description": "A title to render. Will be translated by babel",
"example": "Show Item Details",
"type": "string"
}
},
"type": "object"
},
"example": {
"description_columns": {
"column_name": "A Nice description for the column"
},
"id": "string",
"label_columns": {
"column_name": "A Nice label for the column"
},
"result": {
"descr": "string",
"id": 1,
"name": "string"
},
"show_columns": [
"string"
],
"show_title": "Show Item Details"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get an annotation layer (annotation-layer-pk)",
"tags": [
"Annotation Layers"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/annotation_layer/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/annotation_layer/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"put": {
"parameters": [
{
"description": "The annotation layer pk for this annotation",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AnnotationLayerRestApi.put"
},
"example": {
"descr": "string",
"name": "string"
}
}
},
"description": "Annotation schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/AnnotationLayerRestApi.put"
}
},
"type": "object"
},
"example": {
"id": 1.0,
"result": {
"descr": "string",
"name": "string"
}
}
}
},
"description": "Annotation changed"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Update an annotation layer (annotation-layer-pk)",
"tags": [
"Annotation Layers"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X PUT \"http://localhost:8088/api/v1/annotation_layer/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/annotation_layer/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/annotation_layer/{pk}/annotation/": {
"delete": {
"parameters": [
{
"description": "The annotation layer pk for this annotation",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_delete_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Annotations bulk delete"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Bulk delete annotation layers",
"tags": [
"Annotation Layers"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/annotation_layer/1/annotation/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/annotation_layer/1/annotation/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/1/annotation/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"get": {
"description": "Gets a list of annotation layers, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"description": "The annotation layer id for this annotation",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"ids": {
"description": "A list of annotation ids",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/AnnotationRestApi.get_list"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"count": 1.0,
"ids": [
"string"
],
"result": [
{}
]
}
}
},
"description": "Items from Annotations"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a list of annotation layers (annotation-layer-pk-annotation)",
"tags": [
"Annotation Layers"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/annotation_layer/1/annotation/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/annotation_layer/1/annotation/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/1/annotation/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"post": {
"parameters": [
{
"description": "The annotation layer pk for this annotation",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AnnotationRestApi.post"
},
"example": {
"end_dttm": "2024-01-15T10:30:00Z",
"json_metadata": "string",
"long_descr": "string",
"short_descr": "string",
"start_dttm": "2024-01-15T10:30:00Z"
}
}
},
"description": "Annotation schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/AnnotationRestApi.post"
}
},
"type": "object"
},
"example": {
"id": 1.0,
"result": {
"end_dttm": "2024-01-15T10:30:00Z",
"json_metadata": "string",
"long_descr": "string",
"short_descr": "string",
"start_dttm": "2024-01-15T10:30:00Z"
}
}
}
},
"description": "Annotation added"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Create an annotation layer (annotation-layer-pk-annotation)",
"tags": [
"Annotation Layers"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/annotation_layer/1/annotation/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/annotation_layer/1/annotation/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/1/annotation/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/annotation_layer/{pk}/annotation/{annotation_id}": {
"delete": {
"parameters": [
{
"description": "The annotation layer pk for this annotation",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "The annotation pk for this annotation",
"in": "path",
"name": "annotation_id",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Item deleted"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Delete annotation layer (annotation-layer-pk-annotation-annotation-id)",
"tags": [
"Annotation Layers"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/annotation_layer/1/annotation/{annotation_id}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/annotation_layer/1/annotation/{annotation_id}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/1/annotation/{annotation_id}\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"get": {
"parameters": [
{
"description": "The annotation layer pk for this annotation",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "The annotation pk",
"in": "path",
"name": "annotation_id",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"description": "The item id",
"type": "string"
},
"result": {
"$ref": "#/components/schemas/AnnotationRestApi.get"
}
},
"type": "object"
},
"example": {
"id": "string",
"result": {
"end_dttm": "2024-01-15T10:30:00Z",
"id": 1,
"json_metadata": "string",
"long_descr": "string",
"short_descr": "string",
"start_dttm": "2024-01-15T10:30:00Z"
}
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get an annotation layer (annotation-layer-pk-annotation-annotation-id)",
"tags": [
"Annotation Layers"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/annotation_layer/1/annotation/{annotation_id}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/annotation_layer/1/annotation/{annotation_id}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/1/annotation/{annotation_id}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"put": {
"parameters": [
{
"description": "The annotation layer pk for this annotation",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "The annotation pk for this annotation",
"in": "path",
"name": "annotation_id",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AnnotationRestApi.put"
},
"example": {
"end_dttm": "2024-01-15T10:30:00Z",
"json_metadata": "string",
"long_descr": "string",
"short_descr": "string",
"start_dttm": "2024-01-15T10:30:00Z"
}
}
},
"description": "Annotation schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/AnnotationRestApi.put"
}
},
"type": "object"
},
"example": {
"id": 1.0,
"result": {
"end_dttm": "2024-01-15T10:30:00Z",
"json_metadata": "string",
"long_descr": "string",
"short_descr": "string",
"start_dttm": "2024-01-15T10:30:00Z"
}
}
}
},
"description": "Annotation changed"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Update an annotation layer (annotation-layer-pk-annotation-annotation-id)",
"tags": [
"Annotation Layers"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X PUT \"http://localhost:8088/api/v1/annotation_layer/1/annotation/{annotation_id}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/annotation_layer/1/annotation/{annotation_id}\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/1/annotation/{annotation_id}\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/assets/export/": {
"get": {
"description": "Gets a ZIP file with all the Superset assets (databases, datasets, charts, dashboards, saved queries) as YAML files.",
"responses": {
"200": {
"content": {
"application/zip": {
"schema": {
"format": "binary",
"type": "string"
}
}
},
"description": "ZIP file"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Export all assets",
"tags": [
"Import/export"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/assets/export/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/assets/export/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/assets/export/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/assets/import/": {
"post": {
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"properties": {
"bundle": {
"description": "upload file (ZIP or JSON)",
"format": "binary",
"type": "string"
},
"passwords": {
"description": "JSON map of passwords for each featured database in the ZIP file. If the ZIP includes a database config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
"type": "string"
},
"sparse": {
"description": "allow sparse update of resources",
"type": "boolean"
},
"ssh_tunnel_passwords": {
"description": "JSON map of passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
"type": "string"
},
"ssh_tunnel_private_key_passwords": {
"description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
"type": "string"
},
"ssh_tunnel_private_keys": {
"description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
"type": "string"
}
},
"type": "object"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Assets import result"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Import multiple assets",
"tags": [
"Import/export"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/assets/import/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/assets/import/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/assets/import/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/async_event/": {
"get": {
"description": "Reads off of the Redis events stream, using the user's JWT token and optional query params for last event received.",
"parameters": [
{
"description": "Last ID received by the client",
"in": "query",
"name": "last_id",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"items": {
"properties": {
"channel_id": {
"type": "string"
},
"errors": {
"items": {
"type": "object"
},
"type": "array"
},
"id": {
"type": "string"
},
"job_id": {
"type": "string"
},
"result_url": {
"type": "string"
},
"status": {
"type": "string"
},
"user_id": {
"type": "integer"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"result": [
{
"channel_id": "string",
"errors": [],
"id": "string",
"job_id": "string",
"result_url": "string",
"status": "string",
"user_id": 1
}
]
}
}
},
"description": "Async event results"
},
"401": {
"$ref": "#/components/responses/401"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Read off of the Redis events stream",
"tags": [
"AsyncEventsRestApi"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/async_event/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/async_event/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/async_event/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/available_domains/": {
"get": {
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"$ref": "#/components/schemas/AvailableDomainsSchema"
}
},
"type": "object"
},
"example": {
"result": {
"domains": []
}
}
}
},
"description": "a list of available domains"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get all available domains",
"tags": [
"Available Domains"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/available_domains/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/available_domains/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/available_domains/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/cachekey/invalidate": {
"post": {
"description": "Takes a list of datasources, finds and invalidates the associated cache records and removes the database records.",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CacheInvalidationRequestSchema"
},
"example": {
"datasource_uids": [
"string"
],
"datasources": [
{}
]
}
}
},
"description": "A list of datasources uuid or the tuples of database and datasource names",
"required": true
},
"responses": {
"201": {
"description": "cache was successfully invalidated"
},
"400": {
"$ref": "#/components/responses/400"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Invalidate cache records and remove the database records",
"tags": [
"CacheRestApi"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/cachekey/invalidate\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/cachekey/invalidate\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/cachekey/invalidate\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/chart/": {
"delete": {
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_delete_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Charts bulk delete"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Bulk delete charts",
"tags": [
"Charts"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/chart/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/chart/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"get": {
"description": "Gets a list of charts, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/ChartRestApi.get_list"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"count": 1.0,
"description_columns": {
"column_name": "A Nice description for the column"
},
"ids": [
"string"
],
"label_columns": {
"column_name": "A Nice label for the column"
},
"list_columns": [
"string"
],
"list_title": "List Items",
"order_columns": [
"string"
],
"result": [
{}
]
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a list of charts",
"tags": [
"Charts"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/chart/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/chart/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChartRestApi.post"
},
"example": {
"cache_timeout": 1,
"certification_details": "string",
"certified_by": "string",
"dashboards": [
1
],
"datasource_id": 1,
"datasource_name": "string",
"datasource_type": "table",
"description": "string",
"external_url": "string",
"is_managed_externally": true,
"owners": [
1
],
"params": "string",
"query_context": "string",
"query_context_generation": true,
"slice_name": "string",
"viz_type": [
"bar",
"area",
"table"
]
}
}
},
"description": "Chart schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/ChartRestApi.post"
}
},
"type": "object"
},
"example": {
"id": 1.0,
"result": {
"cache_timeout": 1,
"certification_details": "string",
"certified_by": "string",
"dashboards": [],
"datasource_id": 1,
"datasource_name": "string",
"datasource_type": "table",
"description": "string",
"external_url": "string",
"is_managed_externally": true,
"owners": [],
"params": "string",
"query_context": "string",
"query_context_generation": true,
"slice_name": "string",
"viz_type": [
"bar",
"area",
"table"
]
}
}
}
},
"description": "Chart added"
},
"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 new chart",
"tags": [
"Charts"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/chart/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/chart/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/chart/_info": {
"get": {
"description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_info_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"add_columns": {
"type": "object"
},
"edit_columns": {
"type": "object"
},
"filters": {
"properties": {
"column_name": {
"items": {
"properties": {
"name": {
"description": "The filter name. Will be translated by babel",
"type": "string"
},
"operator": {
"description": "The filter operation key to use on list filters",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"permissions": {
"description": "The user permissions for this API resource",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"add_columns": {},
"edit_columns": {},
"filters": {
"column_name": [
{}
]
},
"permissions": [
"string"
]
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get metadata information about this API resource (chart--info)",
"tags": [
"Charts"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/chart/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/chart/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/chart/data": {
"post": {
"description": "Takes a query context constructed in the client and returns payload data response for the given query.",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChartDataQueryContextSchema"
},
"example": {
"custom_cache_timeout": 1,
"datasource": {
"id": {},
"type": "table"
},
"force": true,
"form_data": {},
"queries": [
{}
],
"result_format": {},
"result_type": {}
}
}
},
"description": "A query context consists of a datasource from which to fetch data and one or many query objects.",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChartDataResponseSchema"
},
"example": {
"result": []
}
}
},
"description": "Query result"
},
"202": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChartDataAsyncResponseSchema"
},
"example": {
"channel_id": "string",
"job_id": "string",
"result_url": "string",
"status": "string",
"user_id": "string"
}
}
},
"description": "Async job details"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Return payload data response for the given query (chart-data)",
"tags": [
"Charts"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/chart/data\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/chart/data\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/data\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/chart/data/{cache_key}": {
"get": {
"description": "Takes a query context cache key and returns payload data response for the given query.",
"parameters": [
{
"in": "path",
"name": "cache_key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChartDataResponseSchema"
},
"example": {
"result": []
}
}
},
"description": "Query result"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Return payload data response for the given query (chart-data-cache-key)",
"tags": [
"Charts"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/chart/data/{cache_key}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/chart/data/{cache_key}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/data/{cache_key}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/chart/export/": {
"get": {
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_export_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/zip": {
"schema": {
"format": "binary",
"type": "string"
}
}
},
"description": "A zip file with chart(s), dataset(s) and database(s) as YAML"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Download multiple charts as YAML files",
"tags": [
"Charts"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/chart/export/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/chart/export/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/export/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/chart/favorite_status/": {
"get": {
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_fav_star_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetFavStarIdsSchema"
},
"example": {
"result": []
}
}
},
"description": "None"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Check favorited charts for current user",
"tags": [
"Charts"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/chart/favorite_status/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/chart/favorite_status/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/favorite_status/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/chart/import/": {
"post": {
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"properties": {
"formData": {
"description": "upload file (ZIP)",
"format": "binary",
"type": "string"
},
"overwrite": {
"description": "overwrite existing charts?",
"type": "boolean"
},
"passwords": {
"description": "JSON map of passwords for each featured database in the ZIP file. If the ZIP includes a database config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
"type": "string"
},
"ssh_tunnel_passwords": {
"description": "JSON map of passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
"type": "string"
},
"ssh_tunnel_private_key_passwords": {
"description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
"type": "string"
},
"ssh_tunnel_private_keys": {
"description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
"type": "string"
}
},
"type": "object"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Chart import result"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Import chart(s) with associated datasets and databases",
"tags": [
"Charts"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/chart/import/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/chart/import/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/import/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/chart/related/{column_name}": {
"get": {
"description": "Get a list of all possible owners for a chart. Use `owners` has the `column_name` parameter",
"parameters": [
{
"in": "path",
"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"
},
"example": {
"count": 1,
"result": []
}
}
},
"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 (chart-related-column-name)",
"tags": [
"Charts"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/chart/related/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/chart/related/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/related/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/chart/warm_up_cache": {
"put": {
"description": "Warms up the cache for the chart. Note for slices a force refresh occurs. In terms of the `extra_filters` these can be obtained from records in the JSON encoded `logs.json` column associated with the `explore_json` action.",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChartCacheWarmUpRequestSchema"
},
"example": {
"chart_id": 1,
"dashboard_id": 1,
"extra_filters": "string"
}
}
},
"description": "Identifies the chart to warm up cache for, and any additional dashboard or filter context to use.",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChartCacheWarmUpResponseSchema"
},
"example": {
"result": []
}
}
},
"description": "Each chart's warmup status"
},
"400": {
"$ref": "#/components/responses/400"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Warm up the cache for the chart",
"tags": [
"Charts"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X PUT \"http://localhost:8088/api/v1/chart/warm_up_cache\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/chart/warm_up_cache\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/warm_up_cache\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/chart/{pk}": {
"delete": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Chart delete"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Delete a chart",
"tags": [
"Charts"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/chart/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/chart/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"get": {
"description": "Get an item model",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"id": {
"description": "The item id",
"type": "string"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"result": {
"$ref": "#/components/schemas/ChartRestApi.get"
},
"show_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"show_title": {
"description": "A title to render. Will be translated by babel",
"example": "Show Item Details",
"type": "string"
}
},
"type": "object"
},
"example": {
"description_columns": {
"column_name": "A Nice description for the column"
},
"id": "string",
"label_columns": {
"column_name": "A Nice label for the column"
},
"result": {
"cache_timeout": 1,
"certification_details": "string",
"certified_by": "string",
"changed_on_delta_humanized": {},
"description": "string",
"id": 1,
"is_managed_externally": true,
"params": "string",
"query_context": "string",
"slice_name": "string",
"thumbnail_url": {},
"url": {},
"viz_type": "string"
},
"show_columns": [
"string"
],
"show_title": "Show Item Details"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a chart detail information",
"tags": [
"Charts"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/chart/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/chart/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"put": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChartRestApi.put"
},
"example": {
"cache_timeout": 1,
"certification_details": "string",
"certified_by": "string",
"dashboards": [
1
],
"datasource_id": 1,
"datasource_type": "table",
"description": "string",
"external_url": "string",
"is_managed_externally": true,
"owners": [
1
],
"params": "string",
"query_context": "string",
"query_context_generation": true,
"slice_name": "string",
"tags": [
1
],
"viz_type": [
"bar",
"area",
"table"
]
}
}
},
"description": "Chart schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/ChartRestApi.put"
}
},
"type": "object"
},
"example": {
"id": 1.0,
"result": {
"cache_timeout": 1,
"certification_details": "string",
"certified_by": "string",
"dashboards": [],
"datasource_id": 1,
"datasource_type": "table",
"description": "string",
"external_url": "string",
"is_managed_externally": true,
"owners": [],
"params": "string",
"query_context": "string",
"query_context_generation": true,
"slice_name": "string",
"tags": [],
"viz_type": [
"bar",
"area",
"table"
]
}
}
}
},
"description": "Chart changed"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Update a chart",
"tags": [
"Charts"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X PUT \"http://localhost:8088/api/v1/chart/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/chart/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/chart/{pk}/cache_screenshot/": {
"get": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/screenshot_query_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChartCacheScreenshotResponseSchema"
},
"example": {
"cache_key": "string",
"chart_url": "string",
"image_url": "string",
"task_status": "string",
"task_updated_at": "string"
}
}
},
"description": "Chart async result"
},
"202": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChartCacheScreenshotResponseSchema"
},
"example": {
"cache_key": "string",
"chart_url": "string",
"image_url": "string",
"task_status": "string",
"task_updated_at": "string"
}
}
},
"description": "Chart screenshot task created"
},
"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 (chart-pk-cache-screenshot)",
"tags": [
"Charts"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/chart/1/cache_screenshot/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/chart/1/cache_screenshot/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/1/cache_screenshot/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/chart/{pk}/data/": {
"get": {
"description": "Takes a chart ID and uses the query context stored when the chart was saved to return payload data response.",
"parameters": [
{
"description": "The chart ID",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "The format in which the data should be returned",
"in": "query",
"name": "format",
"schema": {
"type": "string"
}
},
{
"description": "The type in which the data should be returned",
"in": "query",
"name": "type",
"schema": {
"type": "string"
}
},
{
"description": "Should the queries be forced to load from the source",
"in": "query",
"name": "force",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChartDataResponseSchema"
},
"example": {
"result": []
}
}
},
"description": "Query result"
},
"202": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChartDataAsyncResponseSchema"
},
"example": {
"channel_id": "string",
"job_id": "string",
"result_url": "string",
"status": "string",
"user_id": "string"
}
}
},
"description": "Async job details"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Return payload data response for a chart",
"tags": [
"Charts"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/chart/1/data/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/chart/1/data/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/1/data/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/chart/{pk}/favorites/": {
"delete": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"type": "object"
}
},
"type": "object"
},
"example": {
"result": {}
}
}
},
"description": "Chart removed from favorites"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Remove the chart from the user favorite list",
"tags": [
"Charts"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/chart/1/favorites/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/chart/1/favorites/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/1/favorites/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"post": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"type": "object"
}
},
"type": "object"
},
"example": {
"result": {}
}
}
},
"description": "Chart added to favorites"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Mark the chart as favorite for the current user",
"tags": [
"Charts"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/chart/1/favorites/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/chart/1/favorites/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/1/favorites/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/chart/{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": "Chart screenshot 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 (chart-pk-screenshot-digest)",
"tags": [
"Charts"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/chart/1/screenshot/{digest}/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/chart/1/screenshot/{digest}/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/1/screenshot/{digest}/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/chart/{pk}/thumbnail/{digest}/": {
"get": {
"description": "Compute or get already computed chart thumbnail from cache.",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "A hex digest that makes this chart unique",
"in": "path",
"name": "digest",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"image/*": {
"schema": {
"format": "binary",
"type": "string"
}
}
},
"description": "Chart thumbnail image"
},
"302": {
"description": "Redirects to the current digest"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get chart thumbnail",
"tags": [
"Charts"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/chart/1/thumbnail/{digest}/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/chart/1/thumbnail/{digest}/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/1/thumbnail/{digest}/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/css_template/": {
"delete": {
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_delete_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "CSS templates bulk delete"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Bulk delete CSS templates",
"tags": [
"CSS Templates"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/css_template/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/css_template/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/css_template/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"get": {
"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": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/CssTemplateRestApi.get_list"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"count": 1.0,
"description_columns": {
"column_name": "A Nice description for the column"
},
"ids": [
"string"
],
"label_columns": {
"column_name": "A Nice label for the column"
},
"list_columns": [
"string"
],
"list_title": "List Items",
"order_columns": [
"string"
],
"result": [
{}
]
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a list of CSS templates",
"tags": [
"CSS Templates"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/css_template/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/css_template/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/css_template/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CssTemplateRestApi.post"
},
"example": {
"css": "string",
"template_name": "string"
}
}
},
"description": "Model schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "string"
},
"result": {
"$ref": "#/components/schemas/CssTemplateRestApi.post"
}
},
"type": "object"
},
"example": {
"id": "string",
"result": {
"css": "string",
"template_name": "string"
}
}
}
},
"description": "Item inserted"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Create a CSS template",
"tags": [
"CSS Templates"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/css_template/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/css_template/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/css_template/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/css_template/_info": {
"get": {
"description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_info_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"add_columns": {
"type": "object"
},
"edit_columns": {
"type": "object"
},
"filters": {
"properties": {
"column_name": {
"items": {
"properties": {
"name": {
"description": "The filter name. Will be translated by babel",
"type": "string"
},
"operator": {
"description": "The filter operation key to use on list filters",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"permissions": {
"description": "The user permissions for this API resource",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"add_columns": {},
"edit_columns": {},
"filters": {
"column_name": [
{}
]
},
"permissions": [
"string"
]
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get metadata information about this API resource (css-template--info)",
"tags": [
"CSS Templates"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/css_template/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/css_template/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/css_template/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/css_template/related/{column_name}": {
"get": {
"parameters": [
{
"in": "path",
"name": "column_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_related_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RelatedResponseSchema"
},
"example": {
"count": 1,
"result": []
}
}
},
"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 (css-template-related-column-name)",
"tags": [
"CSS Templates"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/css_template/related/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/css_template/related/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/css_template/related/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/css_template/{pk}": {
"delete": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Item deleted"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Delete a CSS template",
"tags": [
"CSS Templates"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/css_template/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/css_template/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/css_template/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"get": {
"description": "Get an item model",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"id": {
"description": "The item id",
"type": "string"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"result": {
"$ref": "#/components/schemas/CssTemplateRestApi.get"
},
"show_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"show_title": {
"description": "A title to render. Will be translated by babel",
"example": "Show Item Details",
"type": "string"
}
},
"type": "object"
},
"example": {
"description_columns": {
"column_name": "A Nice description for the column"
},
"id": "string",
"label_columns": {
"column_name": "A Nice label for the column"
},
"result": {
"changed_on_delta_humanized": {},
"css": "string",
"id": 1,
"template_name": "string"
},
"show_columns": [
"string"
],
"show_title": "Show Item Details"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a CSS template",
"tags": [
"CSS Templates"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/css_template/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/css_template/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/css_template/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"put": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CssTemplateRestApi.put"
},
"example": {
"css": "string",
"template_name": "string"
}
}
},
"description": "Model schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"$ref": "#/components/schemas/CssTemplateRestApi.put"
}
},
"type": "object"
},
"example": {
"result": {
"css": "string",
"template_name": "string"
}
}
}
},
"description": "Item changed"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Update a CSS template",
"tags": [
"CSS Templates"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X PUT \"http://localhost:8088/api/v1/css_template/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/css_template/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/css_template/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dashboard/": {
"delete": {
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_delete_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Dashboard bulk delete"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Bulk delete dashboards",
"tags": [
"Dashboards"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/dashboard/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/dashboard/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"get": {
"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": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/DashboardRestApi.get_list"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"count": 1.0,
"description_columns": {
"column_name": "A Nice description for the column"
},
"ids": [
"string"
],
"label_columns": {
"column_name": "A Nice label for the column"
},
"list_columns": [
"string"
],
"list_title": "List Items",
"order_columns": [
"string"
],
"result": [
{}
]
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a list of dashboards",
"tags": [
"Dashboards"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DashboardRestApi.post"
},
"example": {
"certification_details": "string",
"certified_by": "string",
"css": "string",
"dashboard_title": "string",
"external_url": "string",
"is_managed_externally": true,
"json_metadata": "string",
"owners": [
1
],
"position_json": "string",
"published": true,
"roles": [
1
],
"slug": "string"
}
}
},
"description": "Dashboard schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/DashboardRestApi.post"
}
},
"type": "object"
},
"example": {
"id": 1.0,
"result": {
"certification_details": "string",
"certified_by": "string",
"css": "string",
"dashboard_title": "string",
"external_url": "string",
"is_managed_externally": true,
"json_metadata": "string",
"owners": [],
"position_json": "string",
"published": true,
"roles": [],
"slug": "string"
}
}
}
},
"description": "Dashboard added"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Create a new dashboard",
"tags": [
"Dashboards"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/dashboard/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/dashboard/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dashboard/_info": {
"get": {
"description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_info_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"add_columns": {
"type": "object"
},
"edit_columns": {
"type": "object"
},
"filters": {
"properties": {
"column_name": {
"items": {
"properties": {
"name": {
"description": "The filter name. Will be translated by babel",
"type": "string"
},
"operator": {
"description": "The filter operation key to use on list filters",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"permissions": {
"description": "The user permissions for this API resource",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"add_columns": {},
"edit_columns": {},
"filters": {
"column_name": [
{}
]
},
"permissions": [
"string"
]
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get metadata information about this API resource (dashboard--info)",
"tags": [
"Dashboards"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dashboard/export/": {
"get": {
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_export_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
},
"description": "Dashboard export"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Download multiple dashboards as YAML files",
"tags": [
"Dashboards"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/export/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/export/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/export/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dashboard/favorite_status/": {
"get": {
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_fav_star_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetFavStarIdsSchema"
},
"example": {
"result": []
}
}
},
"description": "None"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Check favorited dashboards for current user",
"tags": [
"Dashboards"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/favorite_status/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/favorite_status/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/favorite_status/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dashboard/import/": {
"post": {
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"properties": {
"formData": {
"description": "upload file (ZIP or JSON)",
"format": "binary",
"type": "string"
},
"overwrite": {
"description": "overwrite existing dashboards?",
"type": "boolean"
},
"passwords": {
"description": "JSON map of passwords for each featured database in the ZIP file. If the ZIP includes a database config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
"type": "string"
},
"ssh_tunnel_passwords": {
"description": "JSON map of passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
"type": "string"
},
"ssh_tunnel_private_key_passwords": {
"description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
"type": "string"
},
"ssh_tunnel_private_keys": {
"description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
"type": "string"
}
},
"type": "object"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Dashboard import result"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Import dashboard(s) with associated charts/datasets/databases",
"tags": [
"Dashboards"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/dashboard/import/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/dashboard/import/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/import/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dashboard/permalink/{key}": {
"get": {
"parameters": [
{
"in": "path",
"name": "key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"state": {
"description": "The stored state",
"type": "object"
}
},
"type": "object"
},
"example": {
"state": {}
}
}
},
"description": "Returns the stored state."
},
"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": "Get dashboard's permanent link state",
"tags": [
"Dashboard Permanent Link"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/permalink/{key}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/permalink/{key}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/permalink/{key}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dashboard/related/{column_name}": {
"get": {
"description": "Get a list of all possible owners for a dashboard.",
"parameters": [
{
"in": "path",
"name": "column_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_related_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RelatedResponseSchema"
},
"example": {
"count": 1,
"result": []
}
}
},
"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 (dashboard-related-column-name)",
"tags": [
"Dashboards"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/related/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/related/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/related/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dashboard/{id_or_slug}": {
"get": {
"parameters": [
{
"description": "Either the id of the dashboard, or its slug",
"in": "path",
"name": "id_or_slug",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"$ref": "#/components/schemas/DashboardGetResponseSchema"
}
},
"type": "object"
},
"example": {
"result": {
"certification_details": "string",
"certified_by": "string",
"changed_by_name": "string",
"changed_on": "2024-01-15T10:30:00Z",
"changed_on_delta_humanized": "string",
"charts": [],
"created_on_delta_humanized": "string",
"css": "string",
"dashboard_title": "string",
"id": 1,
"is_managed_externally": true,
"json_metadata": "string",
"owners": [],
"position_json": "string",
"published": true,
"roles": [],
"slug": "string",
"tags": [],
"thumbnail_url": "string",
"url": "string"
}
}
}
},
"description": "Dashboard"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a dashboard detail information",
"tags": [
"Dashboards"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dashboard/{id_or_slug}/charts": {
"get": {
"parameters": [
{
"in": "path",
"name": "id_or_slug",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"items": {
"$ref": "#/components/schemas/ChartEntityResponseSchema"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"result": [
{}
]
}
}
},
"description": "Dashboard chart definitions"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a dashboard's chart definitions.",
"tags": [
"Dashboards"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/1/charts\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/1/charts\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/charts\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dashboard/{id_or_slug}/copy/": {
"post": {
"parameters": [
{
"description": "The dashboard id or slug",
"in": "path",
"name": "id_or_slug",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DashboardCopySchema"
},
"example": {
"css": "string",
"dashboard_title": "string",
"duplicate_slices": true,
"json_metadata": "string"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"last_modified_time": {
"type": "number"
}
},
"type": "object"
},
"example": {
"id": 1.0,
"last_modified_time": 1.0
}
}
},
"description": "Id of new dashboard and last modified time"
},
"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": "Create a copy of an existing dashboard",
"tags": [
"Dashboards"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/dashboard/1/copy/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/dashboard/1/copy/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/copy/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dashboard/{id_or_slug}/datasets": {
"get": {
"description": "Returns a list of a dashboard's datasets. Each dataset includes only the information necessary to render the dashboard's charts.",
"parameters": [
{
"description": "Either the id of the dashboard, or its slug",
"in": "path",
"name": "id_or_slug",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"items": {
"$ref": "#/components/schemas/DashboardDatasetSchema"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"result": [
{}
]
}
}
},
"description": "Dashboard dataset definitions"
},
"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 datasets",
"tags": [
"Dashboards"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/1/datasets\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/1/datasets\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/datasets\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dashboard/{id_or_slug}/embedded": {
"delete": {
"parameters": [
{
"description": "The dashboard id or slug",
"in": "path",
"name": "id_or_slug",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Successfully removed the configuration"
},
"401": {
"$ref": "#/components/responses/401"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Delete a dashboard's embedded configuration",
"tags": [
"Dashboards"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/dashboard/1/embedded\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/dashboard/1/embedded\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/embedded\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"get": {
"parameters": [
{
"description": "The dashboard id or slug",
"in": "path",
"name": "id_or_slug",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"$ref": "#/components/schemas/EmbeddedDashboardResponseSchema"
}
},
"type": "object"
},
"example": {
"result": {
"allowed_domains": [],
"changed_on": "2024-01-15T10:30:00Z",
"dashboard_id": "string",
"uuid": "string"
}
}
}
},
"description": "Result contains the embedded dashboard config"
},
"401": {
"$ref": "#/components/responses/401"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get the dashboard's embedded configuration",
"tags": [
"Dashboards"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/1/embedded\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/1/embedded\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/embedded\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"post": {
"parameters": [
{
"description": "The dashboard id or slug",
"in": "path",
"name": "id_or_slug",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EmbeddedDashboardConfig"
},
"example": {
"allowed_domains": [
"string"
]
}
}
},
"description": "The embedded configuration to set",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"$ref": "#/components/schemas/EmbeddedDashboardResponseSchema"
}
},
"type": "object"
},
"example": {
"result": {
"allowed_domains": [],
"changed_on": "2024-01-15T10:30:00Z",
"dashboard_id": "string",
"uuid": "string"
}
}
}
},
"description": "Successfully set the configuration"
},
"401": {
"$ref": "#/components/responses/401"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Set a dashboard's embedded configuration",
"tags": [
"Dashboards"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/dashboard/1/embedded\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/dashboard/1/embedded\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/embedded\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"put": {
"description": "Sets a dashboard's embedded configuration.",
"parameters": [
{
"description": "The dashboard id or slug",
"in": "path",
"name": "id_or_slug",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EmbeddedDashboardConfig"
},
"example": {
"allowed_domains": [
"string"
]
}
}
},
"description": "The embedded configuration to set",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"$ref": "#/components/schemas/EmbeddedDashboardResponseSchema"
}
},
"type": "object"
},
"example": {
"result": {
"allowed_domains": [],
"changed_on": "2024-01-15T10:30:00Z",
"dashboard_id": "string",
"uuid": "string"
}
}
}
},
"description": "Successfully set the configuration"
},
"401": {
"$ref": "#/components/responses/401"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Dashboards"
],
"operationId": "update_dashboard_by_id_or_slug_embedded",
"summary": "Update dashboard by id_or_slug embedded",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X PUT \"http://localhost:8088/api/v1/dashboard/1/embedded\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/dashboard/1/embedded\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/embedded\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/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"
},
"example": {
"result": {}
}
}
},
"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"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/1/tabs\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/1/tabs\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/tabs\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dashboard/{pk}": {
"delete": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Dashboard deleted"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Delete a dashboard",
"tags": [
"Dashboards"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/dashboard/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/dashboard/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"put": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DashboardRestApi.put"
},
"example": {
"certification_details": "string",
"certified_by": "string",
"css": "string",
"dashboard_title": "string",
"external_url": "string",
"is_managed_externally": true,
"json_metadata": "string",
"owners": [
1
],
"position_json": "string",
"published": true,
"roles": [
1
],
"slug": "string",
"tags": [
1
]
}
}
},
"description": "Dashboard schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"last_modified_time": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/DashboardRestApi.put"
}
},
"type": "object"
},
"example": {
"id": 1.0,
"last_modified_time": 1.0,
"result": {
"certification_details": "string",
"certified_by": "string",
"css": "string",
"dashboard_title": "string",
"external_url": "string",
"is_managed_externally": true,
"json_metadata": "string",
"owners": [],
"position_json": "string",
"published": true,
"roles": [],
"slug": "string",
"tags": []
}
}
}
},
"description": "Dashboard changed"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Update a dashboard",
"tags": [
"Dashboards"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X PUT \"http://localhost:8088/api/v1/dashboard/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/dashboard/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/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"
},
"example": {
"dataMask": {
"key": "value"
},
"activeTabs": [
"string"
],
"anchor": "string",
"urlParams": [
[
"string"
]
]
}
}
}
},
"responses": {
"202": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DashboardCacheScreenshotResponseSchema"
},
"example": {
"cache_key": "string",
"dashboard_url": "string",
"image_url": "string",
"task_status": "string",
"task_updated_at": "string"
}
}
},
"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 (dashboard-pk-cache-dashboard-screenshot)",
"tags": [
"Dashboards"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/dashboard/1/cache_dashboard_screenshot/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/dashboard/1/cache_dashboard_screenshot/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/cache_dashboard_screenshot/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dashboard/{pk}/colors": {
"put": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"in": "query",
"name": "mark_updated",
"schema": {
"description": "Whether to update the dashboard changed_on field",
"type": "boolean"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DashboardColorsConfigUpdateSchema"
},
"example": {
"color_namespace": "string",
"color_scheme": "string",
"map_label_colors": {
"key": "value"
},
"shared_label_colors": {
"key": "value"
},
"label_colors": {
"key": "value"
},
"color_scheme_domain": [
"string"
]
}
}
},
"description": "Colors configuration",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"type": "array"
}
},
"type": "object"
},
"example": {
"result": []
}
}
},
"description": "Dashboard colors 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 colors configuration for a dashboard.",
"tags": [
"Dashboards"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X PUT \"http://localhost:8088/api/v1/dashboard/1/colors\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/dashboard/1/colors\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/colors\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dashboard/{pk}/favorites/": {
"delete": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"type": "object"
}
},
"type": "object"
},
"example": {
"result": {}
}
}
},
"description": "Dashboard removed from favorites"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Remove the dashboard from the user favorite list",
"tags": [
"Dashboards"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/dashboard/1/favorites/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/dashboard/1/favorites/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/favorites/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"post": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"type": "object"
}
},
"type": "object"
},
"example": {
"result": {}
}
}
},
"description": "Dashboard added to favorites"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Mark the dashboard as favorite for the current user",
"tags": [
"Dashboards"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/dashboard/1/favorites/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/dashboard/1/favorites/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/favorites/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dashboard/{pk}/filter_state": {
"post": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"in": "query",
"name": "tab_id",
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"examples": {
"numerical_range_filter": {
"description": "**This body should be stringified and put into the value field.**",
"summary": "Numerical Range Filter",
"value": {
"extraFormData": {
"filters": [
{
"col": "tz_offset",
"op": ">=",
"val": [
1000
]
},
{
"col": "tz_offset",
"op": "<=",
"val": [
2000
]
}
]
},
"filterState": {
"label": "1000 <= x <= 2000",
"value": [
1000,
2000
]
},
"id": "NATIVE_FILTER_ID"
}
},
"time_grain_filter": {
"description": "**This body should be stringified and put into the value field.**",
"summary": "Time Grain Filter",
"value": {
"extraFormData": {
"time_grain_sqla": "P1W/1970-01-03T00:00:00Z"
},
"filterState": {
"label": "Week ending Saturday",
"value": [
"P1W/1970-01-03T00:00:00Z"
]
},
"id": "NATIVE_FILTER_ID"
}
},
"time_range_filter": {
"description": "**This body should be stringified and put into the value field.**",
"summary": "Time Range Filter",
"value": {
"extraFormData": {
"time_range": "DATEADD(DATETIME('2025-01-16T00:00:00'), -7, day) : 2025-01-16T00:00:00"
},
"filterState": {
"value": "DATEADD(DATETIME('2025-01-16T00:00:00'), -7, day) : 2025-01-16T00:00:00"
},
"id": "NATIVE_FILTER_ID"
}
},
"timecolumn_filter": {
"description": "**This body should be stringified and put into the value field.**",
"summary": "Time Column Filter",
"value": {
"extraFormData": {
"granularity_sqla": "order_date"
},
"filterState": {
"value": [
"order_date"
]
},
"id": "NATIVE_FILTER_ID"
}
},
"value_filter": {
"description": "**This body should be stringified and put into the value field.**",
"summary": "Value Filter",
"value": {
"extraFormData": {
"filters": [
{
"col": "real_name",
"op": "IN",
"val": [
"John Doe"
]
}
]
},
"filterState": {
"value": [
"John Doe"
]
},
"id": "NATIVE_FILTER_ID"
}
}
},
"schema": {
"$ref": "#/components/schemas/TemporaryCachePostSchema"
},
"example": {
"value": "string"
}
}
},
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"key": {
"description": "The key to retrieve the value.",
"type": "string"
}
},
"type": "object"
},
"example": {
"key": "string"
}
}
},
"description": "The value was stored successfully."
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Create a dashboard's filter state",
"tags": [
"Dashboard Filter State"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/dashboard/1/filter_state\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/dashboard/1/filter_state\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/filter_state\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dashboard/{pk}/filter_state/{key}": {
"delete": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "The value key.",
"in": "path",
"name": "key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"description": "The result of the operation",
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Deleted the stored value."
},
"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": "Delete a dashboard's filter state value",
"tags": [
"Dashboard Filter State"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/dashboard/1/filter_state/{key}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/dashboard/1/filter_state/{key}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/filter_state/{key}\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"get": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"in": "path",
"name": "key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"value": {
"description": "The stored value",
"type": "string"
}
},
"type": "object"
},
"example": {
"value": "string"
}
}
},
"description": "Returns the stored value."
},
"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": "Get a dashboard's filter state value",
"tags": [
"Dashboard Filter State"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/1/filter_state/{key}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/1/filter_state/{key}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/filter_state/{key}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"put": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"in": "path",
"name": "key",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "tab_id",
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TemporaryCachePutSchema"
},
"example": {
"value": "string"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"key": {
"description": "The key to retrieve the value.",
"type": "string"
}
},
"type": "object"
},
"example": {
"key": "string"
}
}
},
"description": "The value was stored successfully."
},
"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": "Update a dashboard's filter state value",
"tags": [
"Dashboard Filter State"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X PUT \"http://localhost:8088/api/v1/dashboard/1/filter_state/{key}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/dashboard/1/filter_state/{key}\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/filter_state/{key}\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/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"
},
"example": {
"deleted": [
"string"
],
"modified": [
{}
],
"reordered": [
"string"
]
}
}
},
"description": "Native filters configuration",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"type": "array"
}
},
"type": "object"
},
"example": {
"result": []
}
}
},
"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"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X PUT \"http://localhost:8088/api/v1/dashboard/1/filters\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/dashboard/1/filters\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/filters\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dashboard/{pk}/permalink": {
"post": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"examples": {
"numerical_range_filter": {
"summary": "Numerical Range Filter",
"value": {
"dataMask": {
"extraFormData": {
"filters": [
{
"col": "tz_offset",
"op": ">=",
"val": [
1000
]
},
{
"col": "tz_offset",
"op": "<=",
"val": [
2000
]
}
]
},
"filterState": {
"label": "1000 <= x <= 200",
"value": [
1000,
2000
]
},
"id": "NATIVE_FILTER_ID"
}
}
},
"time_grain_filter": {
"summary": "Time Grain Filter",
"value": {
"dataMask": {
"extraFormData": {
"time_grain_sqla": "P1W/1970-01-03T00:00:00Z"
},
"filterState": {
"label": "Week ending Saturday",
"value": [
"P1W/1970-01-03T00:00:00Z"
]
},
"id": "NATIVE_FILTER_ID"
}
}
},
"time_range_filter": {
"summary": "Time Range Filter",
"value": {
"dataMask": {
"extraFormData": {
"time_range": "DATEADD(DATETIME(\"2025-01-16T00:00:00\"), -7, day) : 2025-01-16T00:00:00"
},
"filterState": {
"value": "DATEADD(DATETIME(\"2025-01-16T00:00:00\"), -7, day) : 2025-01-16T00:00:00"
},
"id": "NATIVE_FILTER_ID"
}
}
},
"timecolumn_filter": {
"summary": "Time Column Filter",
"value": {
"dataMask": {
"extraFormData": {
"granularity_sqla": "order_date"
},
"filterState": {
"value": [
"order_date"
]
},
"id": "NATIVE_FILTER_ID"
}
}
},
"value_filter": {
"summary": "Value Filter",
"value": {
"dataMask": {
"extraFormData": {
"filters": [
{
"col": "real_name",
"op": "IN",
"val": [
"John Doe"
]
}
]
},
"filterState": {
"value": [
"John Doe"
]
},
"id": "NATIVE_FILTER_ID"
}
}
}
},
"schema": {
"$ref": "#/components/schemas/DashboardPermalinkStateSchema"
},
"example": {
"activeTabs": [
"string"
],
"anchor": "string",
"dataMask": {},
"urlParams": [
{}
]
}
}
},
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"key": {
"description": "The key to retrieve the permanent link data.",
"type": "string"
},
"url": {
"description": "permanent link.",
"type": "string"
}
},
"type": "object"
},
"example": {
"key": "string",
"url": "string"
}
}
},
"description": "The permanent link was stored successfully."
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Create a new dashboard's permanent link",
"tags": [
"Dashboard Permanent Link"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/dashboard/1/permalink\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/dashboard/1/permalink\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/permalink\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/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"
}
},
{
"in": "query",
"name": "download_format",
"schema": {
"enum": [
"png",
"pdf"
],
"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 (dashboard-pk-screenshot-digest)",
"tags": [
"Dashboards"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/1/screenshot/{digest}/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/1/screenshot/{digest}/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/screenshot/{digest}/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dashboard/{pk}/thumbnail/{digest}/": {
"get": {
"description": "Computes async or get already computed dashboard thumbnail from cache.",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "A hex digest that makes this dashboard unique",
"in": "path",
"name": "digest",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"image/*": {
"schema": {
"format": "binary",
"type": "string"
}
}
},
"description": "Dashboard thumbnail image"
},
"202": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Thumbnail does not exist on cache, fired async to compute"
},
"302": {
"description": "Redirects to the current digest"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get dashboard's thumbnail",
"tags": [
"Dashboards"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/1/thumbnail/{digest}/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/1/thumbnail/{digest}/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/thumbnail/{digest}/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/database/": {
"get": {
"description": "Gets a list of databases, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/DatabaseRestApi.get_list"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"count": 1.0,
"description_columns": {
"column_name": "A Nice description for the column"
},
"ids": [
"string"
],
"label_columns": {
"column_name": "A Nice label for the column"
},
"list_columns": [
"string"
],
"list_title": "List Items",
"order_columns": [
"string"
],
"result": [
{}
]
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a list of databases",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/database/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatabaseRestApi.post"
},
"example": {
"allow_ctas": true,
"allow_cvas": true,
"allow_dml": true,
"allow_file_upload": true,
"allow_run_async": true,
"cache_timeout": 1,
"configuration_method": {},
"database_name": "string",
"driver": "string",
"engine": "string",
"expose_in_sqllab": true,
"external_url": "string",
"extra": "string",
"force_ctas_schema": "string",
"impersonate_user": true,
"is_managed_externally": true,
"masked_encrypted_extra": "string",
"parameters": {},
"server_cert": "string",
"sqlalchemy_uri": "string",
"ssh_tunnel": {},
"uuid": "string"
}
}
},
"description": "Database schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/DatabaseRestApi.post"
}
},
"type": "object"
},
"example": {
"id": 1.0,
"result": {
"allow_ctas": true,
"allow_cvas": true,
"allow_dml": true,
"allow_file_upload": true,
"allow_run_async": true,
"cache_timeout": 1,
"configuration_method": {},
"database_name": "string",
"driver": "string",
"engine": "string",
"expose_in_sqllab": true,
"external_url": "string",
"extra": "string",
"force_ctas_schema": "string",
"impersonate_user": true,
"is_managed_externally": true,
"masked_encrypted_extra": "string",
"parameters": {},
"server_cert": "string",
"sqlalchemy_uri": "string",
"ssh_tunnel": {},
"uuid": "string"
}
}
}
},
"description": "Database added"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Create a new database",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/database/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/database/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/database/_info": {
"get": {
"description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_info_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"add_columns": {
"type": "object"
},
"edit_columns": {
"type": "object"
},
"filters": {
"properties": {
"column_name": {
"items": {
"properties": {
"name": {
"description": "The filter name. Will be translated by babel",
"type": "string"
},
"operator": {
"description": "The filter operation key to use on list filters",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"permissions": {
"description": "The user permissions for this API resource",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"add_columns": {},
"edit_columns": {},
"filters": {
"column_name": [
{}
]
},
"permissions": [
"string"
]
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get metadata information about this API resource (database--info)",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/database/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/database/available/": {
"get": {
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"items": {
"properties": {
"available_drivers": {
"description": "Installed drivers for the engine",
"items": {
"type": "string"
},
"type": "array"
},
"default_driver": {
"description": "Default driver for the engine",
"type": "string"
},
"engine": {
"description": "Name of the SQLAlchemy engine",
"type": "string"
},
"engine_information": {
"description": "Dict with public properties form the DB Engine",
"properties": {
"disable_ssh_tunneling": {
"description": "Whether the engine supports SSH Tunnels",
"type": "boolean"
},
"supports_file_upload": {
"description": "Whether the engine supports file uploads",
"type": "boolean"
}
},
"type": "object"
},
"name": {
"description": "Name of the database",
"type": "string"
},
"parameters": {
"description": "JSON schema defining the needed parameters",
"type": "object"
},
"preferred": {
"description": "Is the database preferred?",
"type": "boolean"
},
"sqlalchemy_uri_placeholder": {
"description": "Example placeholder for the SQLAlchemy URI",
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"example": [
{
"available_drivers": [
"string"
],
"default_driver": "string",
"engine": "string",
"engine_information": {
"disable_ssh_tunneling": true,
"supports_file_upload": true
},
"name": "string",
"parameters": {},
"preferred": true,
"sqlalchemy_uri_placeholder": "string"
}
]
}
},
"description": "Database names"
},
"400": {
"$ref": "#/components/responses/400"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get names of databases currently available",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/database/available/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/available/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/available/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/database/export/": {
"get": {
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_export_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/zip": {
"schema": {
"format": "binary",
"type": "string"
}
}
},
"description": "A zip file with database(s) and dataset(s) as YAML"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Download database(s) and associated dataset(s) as a zip file",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/database/export/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/export/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/export/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/database/import/": {
"post": {
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"properties": {
"formData": {
"description": "upload file (ZIP)",
"format": "binary",
"type": "string"
},
"overwrite": {
"description": "overwrite existing databases?",
"type": "boolean"
},
"passwords": {
"description": "JSON map of passwords for each featured database in the ZIP file. If the ZIP includes a database config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
"type": "string"
},
"ssh_tunnel_passwords": {
"description": "JSON map of passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
"type": "string"
},
"ssh_tunnel_private_key_passwords": {
"description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
"type": "string"
},
"ssh_tunnel_private_keys": {
"description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
"type": "string"
}
},
"type": "object"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Database import result"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Import database(s) with associated datasets",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/database/import/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/database/import/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/import/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/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"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/database/oauth2/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/oauth2/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/oauth2/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/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"
},
"example": {
"count": 1,
"result": []
}
}
},
"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 (database-related-column-name)",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/database/related/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/related/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/related/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/database/test_connection/": {
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatabaseTestConnectionSchema"
},
"example": {
"configuration_method": {},
"database_name": "string",
"driver": "string",
"engine": "string",
"extra": "string",
"impersonate_user": true,
"masked_encrypted_extra": "string",
"parameters": {},
"server_cert": "string",
"sqlalchemy_uri": "string",
"ssh_tunnel": {}
}
}
},
"description": "Database schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Database Test Connection"
},
"400": {
"$ref": "#/components/responses/400"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Test a database connection",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/database/test_connection/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/database/test_connection/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/test_connection/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/database/upload_metadata/": {
"post": {
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/UploadFileMetadataPostSchema"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"$ref": "#/components/schemas/UploadFileMetadata"
}
},
"type": "object"
},
"example": {
"result": {
"items": []
}
}
}
},
"description": "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 file and returns file metadata",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/database/upload_metadata/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/database/upload_metadata/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/upload_metadata/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/database/validate_parameters/": {
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatabaseValidateParametersSchema"
},
"example": {
"catalog": {
"key": "value"
},
"configuration_method": {},
"database_name": "string",
"driver": "string",
"engine": "string",
"extra": "string",
"id": 1,
"impersonate_user": true,
"masked_encrypted_extra": "string",
"parameters": {
"key": "value"
},
"server_cert": "string"
}
}
},
"description": "DB-specific parameters",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Database Test Connection"
},
"400": {
"$ref": "#/components/responses/400"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Validate database connection parameters",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/database/validate_parameters/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/database/validate_parameters/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/validate_parameters/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/database/{pk}": {
"delete": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Database deleted"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Delete a database",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/database/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/database/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"get": {
"parameters": [
{
"description": "The database id",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
},
"description": "Database"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a database",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/database/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"put": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatabaseRestApi.put"
},
"example": {
"allow_ctas": true,
"allow_cvas": true,
"allow_dml": true,
"allow_file_upload": true,
"allow_run_async": true,
"cache_timeout": 1,
"configuration_method": {},
"database_name": "string",
"driver": "string",
"engine": "string",
"expose_in_sqllab": true,
"external_url": "string",
"extra": "string",
"force_ctas_schema": "string",
"impersonate_user": true,
"is_managed_externally": true,
"masked_encrypted_extra": "string",
"parameters": {},
"server_cert": "string",
"sqlalchemy_uri": "string",
"ssh_tunnel": {},
"uuid": "string"
}
}
},
"description": "Database schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/DatabaseRestApi.put"
}
},
"type": "object"
},
"example": {
"id": 1.0,
"result": {
"allow_ctas": true,
"allow_cvas": true,
"allow_dml": true,
"allow_file_upload": true,
"allow_run_async": true,
"cache_timeout": 1,
"configuration_method": {},
"database_name": "string",
"driver": "string",
"engine": "string",
"expose_in_sqllab": true,
"external_url": "string",
"extra": "string",
"force_ctas_schema": "string",
"impersonate_user": true,
"is_managed_externally": true,
"masked_encrypted_extra": "string",
"parameters": {},
"server_cert": "string",
"sqlalchemy_uri": "string",
"ssh_tunnel": {},
"uuid": "string"
}
}
}
},
"description": "Database changed"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Change a database",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X PUT \"http://localhost:8088/api/v1/database/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/database/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/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"
},
"example": {
"result": [
"string"
]
}
}
},
"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"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/database/1/catalogs/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1/catalogs/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/catalogs/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/database/{pk}/connection": {
"get": {
"parameters": [
{
"description": "The database id",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatabaseConnectionSchema"
},
"example": {
"allow_ctas": true,
"allow_cvas": true,
"allow_dml": true,
"allow_file_upload": true,
"allow_run_async": true,
"backend": "string",
"cache_timeout": 1,
"configuration_method": "string",
"database_name": "string",
"driver": "string",
"engine_information": {},
"expose_in_sqllab": true,
"extra": "string",
"force_ctas_schema": "string",
"id": 1,
"impersonate_user": true,
"is_managed_externally": true,
"masked_encrypted_extra": "string",
"parameters": {},
"parameters_schema": {},
"server_cert": "string",
"sqlalchemy_uri": "string",
"ssh_tunnel": {},
"uuid": "string"
}
}
},
"description": "Database with connection info"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a database connection info",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/database/1/connection\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1/connection\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/connection\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/database/{pk}/function_names/": {
"get": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatabaseFunctionNamesResponse"
},
"example": {
"function_names": [
"string"
]
}
}
},
"description": "Query result"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get function names supported by a database",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/database/1/function_names/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1/function_names/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/function_names/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/database/{pk}/related_objects/": {
"get": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatabaseRelatedObjectsResponse"
},
"example": {
"charts": {},
"dashboards": {}
}
}
},
"description": "Query result"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get charts and dashboards count associated to a database",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/database/1/related_objects/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1/related_objects/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/related_objects/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/database/{pk}/schemas/": {
"get": {
"parameters": [
{
"description": "The database id",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/database_schemas_query_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SchemasResponseSchema"
},
"example": {
"result": [
"string"
]
}
}
},
"description": "A List of all schemas from the database"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get all schemas from a database",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/database/1/schemas/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1/schemas/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/schemas/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/database/{pk}/schemas_access_for_file_upload/": {
"get": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatabaseSchemaAccessForFileUploadResponse"
},
"example": {
"schemas": [
"string"
]
}
}
},
"description": "The list of the database schemas where to upload information"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "The list of the database schemas where to upload information",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/database/1/schemas_access_for_file_upload/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1/schemas_access_for_file_upload/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/schemas_access_for_file_upload/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/database/{pk}/select_star/{table_name}/": {
"get": {
"parameters": [
{
"description": "The database id",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "Table name",
"in": "path",
"name": "table_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "Table schema",
"in": "path",
"name": "schema_name",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SelectStarResponseSchema"
},
"example": {
"result": "string"
}
}
},
"description": "SQL statement for a select star for table"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get database select star for table (database-pk-select-star-table-name)",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/database/1/select_star/{table_name}/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1/select_star/{table_name}/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/select_star/{table_name}/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/database/{pk}/select_star/{table_name}/{schema_name}/": {
"get": {
"parameters": [
{
"description": "The database id",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "Table name",
"in": "path",
"name": "table_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "Table schema",
"in": "path",
"name": "schema_name",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SelectStarResponseSchema"
},
"example": {
"result": "string"
}
}
},
"description": "SQL statement for a select star for table"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get database select star for table (database-pk-select-star-table-name-schema-name)",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/database/1/select_star/{table_name}/{schema_name}/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1/select_star/{table_name}/{schema_name}/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/select_star/{table_name}/{schema_name}/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/database/{pk}/ssh_tunnel/": {
"delete": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "SSH Tunnel deleted"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Delete a SSH tunnel",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/database/1/ssh_tunnel/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/database/1/ssh_tunnel/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/ssh_tunnel/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
}
},
"/api/v1/database/{pk}/sync_permissions/": {
"post": {
"parameters": [
{
"description": "The database connection ID",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Task created to sync permissions."
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Re-sync all permissions for a database connection",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/database/1/sync_permissions/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/database/1/sync_permissions/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/sync_permissions/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/database/{pk}/table/{table_name}/{schema_name}/": {
"get": {
"parameters": [
{
"description": "The database id",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "Table name",
"in": "path",
"name": "table_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "Table schema",
"in": "path",
"name": "schema_name",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TableMetadataResponseSchema"
},
"example": {
"columns": [],
"foreignKeys": [],
"indexes": [],
"name": "string",
"primaryKey": {},
"selectStar": "string"
}
}
},
"description": "Table metadata information"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get database table metadata",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/database/1/table/{table_name}/{schema_name}/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1/table/{table_name}/{schema_name}/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/table/{table_name}/{schema_name}/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/database/{pk}/table_extra/{table_name}/{schema_name}/": {
"get": {
"description": "Response depends on each DB engine spec normally focused on partitions.",
"parameters": [
{
"description": "The database id",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "Table name",
"in": "path",
"name": "table_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "Table schema",
"in": "path",
"name": "schema_name",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TableExtraMetadataResponseSchema"
},
"example": {
"clustering": {},
"metadata": {},
"partitions": {}
}
}
},
"description": "Table extra metadata information"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get table extra metadata (database-pk-table-extra-table-name-schema-name)",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/database/1/table_extra/{table_name}/{schema_name}/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1/table_extra/{table_name}/{schema_name}/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/table_extra/{table_name}/{schema_name}/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/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": "name",
"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"
},
"example": {
"clustering": {},
"metadata": {},
"partitions": {}
}
}
},
"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"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/database/1/table_metadata/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1/table_metadata/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/table_metadata/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/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"
},
"example": {
"clustering": {},
"metadata": {},
"partitions": {}
}
}
},
"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 (database-pk-table-metadata-extra)",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/database/1/table_metadata/extra/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1/table_metadata/extra/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/table_metadata/extra/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/database/{pk}/tables/": {
"get": {
"parameters": [
{
"description": "The database id",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/database_tables_query_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"type": "integer"
},
"result": {
"description": "A List of tables for given database",
"items": {
"$ref": "#/components/schemas/DatabaseTablesResponse"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"count": 1,
"result": [
{}
]
}
}
},
"description": "Tables list"
},
"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": "Get a list of tables for given database",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/database/1/tables/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1/tables/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/tables/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/database/{pk}/upload/": {
"post": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/UploadPostSchema"
}
}
},
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"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 file to a database table",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/database/1/upload/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/database/1/upload/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/upload/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/database/{pk}/validate_sql/": {
"post": {
"description": "Validates that arbitrary SQL is acceptable for the given database.",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidateSQLRequest"
},
"example": {
"catalog": "string",
"schema": "string",
"sql": "string",
"template_params": {}
}
}
},
"description": "Validate SQL request",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"description": "A List of SQL errors found on the statement",
"items": {
"$ref": "#/components/schemas/ValidateSQLResponse"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"result": [
{}
]
}
}
},
"description": "Validation result"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Validate arbitrary SQL",
"tags": [
"Database"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/database/1/validate_sql/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/database/1/validate_sql/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/validate_sql/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dataset/": {
"delete": {
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_delete_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Dataset bulk delete"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Bulk delete datasets",
"tags": [
"Datasets"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/dataset/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/dataset/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"get": {
"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": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/DatasetRestApi.get_list"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"count": 1.0,
"description_columns": {
"column_name": "A Nice description for the column"
},
"ids": [
"string"
],
"label_columns": {
"column_name": "A Nice label for the column"
},
"list_columns": [
"string"
],
"list_title": "List Items",
"order_columns": [
"string"
],
"result": [
{}
]
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a list of datasets",
"tags": [
"Datasets"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/dataset/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dataset/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatasetRestApi.post"
},
"example": {
"always_filter_main_dttm": true,
"catalog": "string",
"database": 1,
"external_url": "string",
"is_managed_externally": true,
"normalize_columns": true,
"owners": [
1
],
"schema": "string",
"sql": "string",
"table_name": "string"
}
}
},
"description": "Dataset schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/DatasetRestApi.post"
}
},
"type": "object"
},
"example": {
"id": 1.0,
"result": {
"always_filter_main_dttm": true,
"catalog": "string",
"database": 1,
"external_url": "string",
"is_managed_externally": true,
"normalize_columns": true,
"owners": [],
"schema": "string",
"sql": "string",
"table_name": "string"
}
}
}
},
"description": "Dataset added"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Create a new dataset",
"tags": [
"Datasets"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/dataset/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/dataset/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dataset/_info": {
"get": {
"description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_info_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"add_columns": {
"type": "object"
},
"edit_columns": {
"type": "object"
},
"filters": {
"properties": {
"column_name": {
"items": {
"properties": {
"name": {
"description": "The filter name. Will be translated by babel",
"type": "string"
},
"operator": {
"description": "The filter operation key to use on list filters",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"permissions": {
"description": "The user permissions for this API resource",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"add_columns": {},
"edit_columns": {},
"filters": {
"column_name": [
{}
]
},
"permissions": [
"string"
]
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get metadata information about this API resource (dataset--info)",
"tags": [
"Datasets"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/dataset/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dataset/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dataset/distinct/{column_name}": {
"get": {
"parameters": [
{
"in": "path",
"name": "column_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_related_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DistincResponseSchema"
},
"example": {
"count": 1,
"result": []
}
}
},
"description": "Distinct field data"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get distinct values from field data (dataset-distinct-column-name)",
"tags": [
"Datasets"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/dataset/distinct/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dataset/distinct/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/distinct/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dataset/duplicate": {
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatasetDuplicateSchema"
},
"example": {
"base_model_id": 1,
"table_name": "string"
}
}
},
"description": "Dataset schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/DatasetDuplicateSchema"
}
},
"type": "object"
},
"example": {
"id": 1.0,
"result": {
"base_model_id": 1,
"table_name": "string"
}
}
}
},
"description": "Dataset duplicated"
},
"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": "Duplicate a dataset",
"tags": [
"Datasets"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/dataset/duplicate\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/dataset/duplicate\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/duplicate\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dataset/export/": {
"get": {
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_export_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
},
"description": "Dataset export"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Download multiple datasets as YAML files",
"tags": [
"Datasets"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/dataset/export/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dataset/export/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/export/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dataset/get_or_create/": {
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetOrCreateDatasetSchema"
},
"example": {
"always_filter_main_dttm": true,
"catalog": "string",
"database_id": 1,
"normalize_columns": true,
"schema": "string",
"table_name": "string",
"template_params": "string"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"properties": {
"table_id": {
"type": "integer"
}
},
"type": "object"
}
},
"type": "object"
},
"example": {
"result": {
"table_id": 1
}
}
}
},
"description": "The ID of the table"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Retrieve a table by name, or create it if it does not exist",
"tags": [
"Datasets"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/dataset/get_or_create/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/dataset/get_or_create/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/get_or_create/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dataset/import/": {
"post": {
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"properties": {
"formData": {
"description": "upload file (ZIP or YAML)",
"format": "binary",
"type": "string"
},
"overwrite": {
"description": "overwrite existing datasets?",
"type": "boolean"
},
"passwords": {
"description": "JSON map of passwords for each featured database in the ZIP file. If the ZIP includes a database config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
"type": "string"
},
"ssh_tunnel_passwords": {
"description": "JSON map of passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
"type": "string"
},
"ssh_tunnel_private_key_passwords": {
"description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
"type": "string"
},
"ssh_tunnel_private_keys": {
"description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
"type": "string"
},
"sync_columns": {
"description": "sync columns?",
"type": "boolean"
},
"sync_metrics": {
"description": "sync metrics?",
"type": "boolean"
}
},
"type": "object"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Dataset import result"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Import dataset(s) with associated databases",
"tags": [
"Datasets"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/dataset/import/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/dataset/import/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/import/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dataset/related/{column_name}": {
"get": {
"parameters": [
{
"in": "path",
"name": "column_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_related_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RelatedResponseSchema"
},
"example": {
"count": 1,
"result": []
}
}
},
"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 (dataset-related-column-name)",
"tags": [
"Datasets"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/dataset/related/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dataset/related/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/related/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dataset/warm_up_cache": {
"put": {
"description": "Warms up the cache for the table. Note for slices a force refresh occurs. In terms of the `extra_filters` these can be obtained from records in the JSON encoded `logs.json` column associated with the `explore_json` action.",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatasetCacheWarmUpRequestSchema"
},
"example": {
"dashboard_id": 1,
"db_name": "string",
"extra_filters": "string",
"table_name": "string"
}
}
},
"description": "Identifies the database and table to warm up cache for, and any additional dashboard or filter context to use.",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatasetCacheWarmUpResponseSchema"
},
"example": {
"result": []
}
}
},
"description": "Each chart's warmup status"
},
"400": {
"$ref": "#/components/responses/400"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Warm up the cache for each chart powered by the given table",
"tags": [
"Datasets"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X PUT \"http://localhost:8088/api/v1/dataset/warm_up_cache\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/dataset/warm_up_cache\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/warm_up_cache\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dataset/{pk}": {
"delete": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Dataset delete"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Delete a dataset",
"tags": [
"Datasets"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/dataset/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/dataset/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"get": {
"description": "Get a dataset by ID",
"parameters": [
{
"description": "The dataset ID",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
},
{
"description": "Should Jinja macros from sql, metrics and columns be rendered and included in the response",
"in": "query",
"name": "include_rendered_sql",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"description": "The item id",
"type": "string"
},
"result": {
"$ref": "#/components/schemas/DatasetRestApi.get"
}
},
"type": "object"
},
"example": {
"id": "string",
"result": {
"always_filter_main_dttm": true,
"cache_timeout": 1,
"catalog": "string",
"changed_on": "2024-01-15T10:30:00Z",
"changed_on_humanized": {},
"column_formats": {},
"created_on": "2024-01-15T10:30:00Z",
"created_on_humanized": {},
"datasource_name": {},
"datasource_type": {},
"default_endpoint": "string",
"description": "string",
"extra": "string",
"fetch_values_predicate": "string",
"filter_select_enabled": true,
"folders": {},
"granularity_sqla": {},
"id": 1,
"is_managed_externally": true,
"is_sqllab_view": true,
"kind": {},
"main_dttm_col": "string",
"name": {},
"normalize_columns": true,
"offset": 1,
"order_by_choices": {},
"schema": "string",
"select_star": {},
"sql": "string",
"table_name": "string",
"template_params": "string",
"time_grain_sqla": {},
"uid": {},
"url": {},
"verbose_map": {}
}
}
}
},
"description": "Dataset object has been returned."
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a dataset",
"tags": [
"Datasets"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/dataset/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dataset/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"put": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"in": "query",
"name": "override_columns",
"schema": {
"type": "boolean"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatasetRestApi.put"
},
"example": {
"always_filter_main_dttm": true,
"cache_timeout": 1,
"catalog": "string",
"columns": [
{}
],
"database_id": 1,
"default_endpoint": "string",
"description": "string",
"external_url": "string",
"extra": "string",
"fetch_values_predicate": "string",
"filter_select_enabled": true,
"folders": [
{}
],
"is_managed_externally": true,
"is_sqllab_view": true,
"main_dttm_col": "string",
"metrics": [
{}
],
"normalize_columns": true,
"offset": 1,
"owners": [
1
],
"schema": "string",
"sql": "string",
"table_name": "string",
"template_params": "string"
}
}
},
"description": "Dataset schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/DatasetRestApi.put"
}
},
"type": "object"
},
"example": {
"id": 1.0,
"result": {
"always_filter_main_dttm": true,
"cache_timeout": 1,
"catalog": "string",
"columns": [],
"database_id": 1,
"default_endpoint": "string",
"description": "string",
"external_url": "string",
"extra": "string",
"fetch_values_predicate": "string",
"filter_select_enabled": true,
"folders": [],
"is_managed_externally": true,
"is_sqllab_view": true,
"main_dttm_col": "string",
"metrics": [],
"normalize_columns": true,
"offset": 1,
"owners": [],
"schema": "string",
"sql": "string",
"table_name": "string",
"template_params": "string"
}
}
}
},
"description": "Dataset changed"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Update a dataset",
"tags": [
"Datasets"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X PUT \"http://localhost:8088/api/v1/dataset/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/dataset/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dataset/{pk}/column/{column_id}": {
"delete": {
"parameters": [
{
"description": "The dataset pk for this column",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "The column id for this dataset",
"in": "path",
"name": "column_id",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Column deleted"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Delete a dataset column",
"tags": [
"Datasets"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/dataset/1/column/{column_id}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/dataset/1/column/{column_id}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/1/column/{column_id}\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
}
},
"/api/v1/dataset/{pk}/metric/{metric_id}": {
"delete": {
"parameters": [
{
"description": "The dataset pk for this column",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "The metric id for this dataset",
"in": "path",
"name": "metric_id",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Metric deleted"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Delete a dataset metric",
"tags": [
"Datasets"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/dataset/1/metric/{metric_id}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/dataset/1/metric/{metric_id}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/1/metric/{metric_id}\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
}
},
"/api/v1/dataset/{pk}/refresh": {
"put": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Dataset delete"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Refresh and update columns of a dataset",
"tags": [
"Datasets"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X PUT \"http://localhost:8088/api/v1/dataset/1/refresh\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/dataset/1/refresh\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/1/refresh\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/dataset/{pk}/related_objects": {
"get": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DatasetRelatedObjectsResponse"
},
"example": {
"charts": {},
"dashboards": {}
}
}
},
"description": "Query result"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get charts and dashboards count associated to a dataset",
"tags": [
"Datasets"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/dataset/1/related_objects\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dataset/1/related_objects\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/1/related_objects\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/datasource/{datasource_type}/{datasource_id}/column/{column_name}/values/": {
"get": {
"parameters": [
{
"description": "The type of datasource",
"in": "path",
"name": "datasource_type",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The id of the datasource",
"in": "path",
"name": "datasource_id",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "The name of the column to get values for",
"in": "path",
"name": "column_name",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"items": {
"oneOf": [
{
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "object"
}
]
},
"type": "array"
}
},
"type": "object"
},
"example": {
"result": [
{}
]
}
}
},
"description": "A List of distinct values for the column"
},
"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": "Get possible values for a datasource column",
"tags": [
"Datasources"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/datasource/{datasource_type}/{datasource_id}/column/{column_name}/values/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/datasource/{datasource_type}/{datasource_id}/column/{column_name}/values/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/datasource/{datasource_type}/{datasource_id}/column/{column_name}/values/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/embedded_dashboard/{uuid}": {
"get": {
"parameters": [
{
"description": "The embedded configuration uuid",
"in": "path",
"name": "uuid",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The ui config of embedded dashboard (optional).",
"in": "query",
"name": "uiConfig",
"schema": {
"type": "number"
}
},
{
"description": "Show filters (optional).",
"in": "query",
"name": "show_filters",
"schema": {
"type": "boolean"
}
},
{
"description": "Expand filters (optional).",
"in": "query",
"name": "expand_filters",
"schema": {
"type": "boolean"
}
},
{
"description": "Native filters key to apply filters. (optional).",
"in": "query",
"name": "native_filters_key",
"schema": {
"type": "string"
}
},
{
"description": "Permalink key to apply filters. (optional).",
"in": "query",
"name": "permalink_key",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"$ref": "#/components/schemas/EmbeddedDashboardResponseSchema"
}
},
"type": "object"
},
"example": {
"result": {
"allowed_domains": [],
"changed_on": "2024-01-15T10:30:00Z",
"dashboard_id": "string",
"uuid": "string"
}
}
},
"text/html": {
"schema": {
"type": "string"
}
}
},
"description": "Result contains the embedded dashboard configuration"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a report schedule log (embedded-dashboard-uuid)",
"tags": [
"Embedded Dashboard"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/embedded_dashboard/{uuid}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/embedded_dashboard/{uuid}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/embedded_dashboard/{uuid}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/explore/": {
"get": {
"description": "Assembles Explore related information (form_data, slice, dataset) in a single endpoint.<br/><br/> The information can be assembled from:<br/> - The cache using a form_data_key<br/> - The metadata database using a permalink_key<br/> - Build from scratch using dataset or slice identifiers.",
"parameters": [
{
"in": "query",
"name": "form_data_key",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "permalink_key",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "slice_id",
"schema": {
"type": "integer"
}
},
{
"in": "query",
"name": "datasource_id",
"schema": {
"type": "integer"
}
},
{
"in": "query",
"name": "datasource_type",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ExploreContextSchema"
},
"example": {
"dataset": {},
"form_data": {},
"message": "string",
"slice": {}
}
}
},
"description": "Returns the initial context."
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Assemble Explore related information in a single endpoint",
"tags": [
"Explore"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/explore/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/explore/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/explore/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/explore/form_data": {
"post": {
"parameters": [
{
"in": "query",
"name": "tab_id",
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FormDataPostSchema"
},
"example": {
"chart_id": 1,
"datasource_id": 1,
"datasource_type": "table",
"form_data": "string"
}
}
},
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"key": {
"description": "The key to retrieve the form_data.",
"type": "string"
}
},
"type": "object"
},
"example": {
"key": "string"
}
}
},
"description": "The form_data was stored successfully."
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Create a new form_data",
"tags": [
"Explore Form Data"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/explore/form_data\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/explore/form_data\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/explore/form_data\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/explore/form_data/{key}": {
"delete": {
"parameters": [
{
"description": "The form_data key.",
"in": "path",
"name": "key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"description": "The result of the operation",
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Deleted the stored form_data."
},
"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": "Delete a form_data",
"tags": [
"Explore Form Data"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/explore/form_data/{key}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/explore/form_data/{key}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/explore/form_data/{key}\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"get": {
"parameters": [
{
"in": "path",
"name": "key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"form_data": {
"description": "The stored form_data",
"type": "string"
}
},
"type": "object"
},
"example": {
"form_data": "string"
}
}
},
"description": "Returns the stored form_data."
},
"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": "Get a form_data",
"tags": [
"Explore Form Data"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/explore/form_data/{key}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/explore/form_data/{key}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/explore/form_data/{key}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"put": {
"parameters": [
{
"in": "path",
"name": "key",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "tab_id",
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FormDataPutSchema"
},
"example": {
"chart_id": 1,
"datasource_id": 1,
"datasource_type": "table",
"form_data": "string"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"key": {
"description": "The key to retrieve the form_data.",
"type": "string"
}
},
"type": "object"
},
"example": {
"key": "string"
}
}
},
"description": "The form_data was stored successfully."
},
"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": "Update an existing form_data",
"tags": [
"Explore Form Data"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X PUT \"http://localhost:8088/api/v1/explore/form_data/{key}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/explore/form_data/{key}\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/explore/form_data/{key}\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/explore/permalink": {
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ExplorePermalinkStateSchema"
},
"example": {
"formData": {},
"urlParams": [
{}
]
}
}
},
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"key": {
"description": "The key to retrieve the permanent link data.",
"type": "string"
},
"url": {
"description": "permanent link.",
"type": "string"
}
},
"type": "object"
},
"example": {
"key": "string",
"url": "string"
}
}
},
"description": "The permanent link was stored successfully."
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Create a new permanent link (explore-permalink)",
"tags": [
"Explore Permanent Link"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/explore/permalink\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/explore/permalink\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/explore/permalink\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/explore/permalink/{key}": {
"get": {
"parameters": [
{
"in": "path",
"name": "key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"state": {
"description": "The stored state",
"type": "object"
}
},
"type": "object"
},
"example": {
"state": {}
}
}
},
"description": "Returns the stored form_data."
},
"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": "Get chart's permanent link state",
"tags": [
"Explore Permanent Link"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/explore/permalink/{key}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/explore/permalink/{key}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/explore/permalink/{key}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/log/": {
"get": {
"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": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/LogRestApi.get_list"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"count": 1.0,
"description_columns": {
"column_name": "A Nice description for the column"
},
"ids": [
"string"
],
"label_columns": {
"column_name": "A Nice label for the column"
},
"list_columns": [
"string"
],
"list_title": "List Items",
"order_columns": [
"string"
],
"result": [
{}
]
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a list of logs",
"tags": [
"LogRestApi"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/log/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/log/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/log/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LogRestApi.post"
},
"example": {
"id": 1
}
}
},
"description": "Model schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "string"
},
"result": {
"$ref": "#/components/schemas/LogRestApi.post"
}
},
"type": "object"
},
"example": {
"id": "string",
"result": {
"id": 1
}
}
}
},
"description": "Item inserted"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"LogRestApi"
],
"operationId": "create_log",
"summary": "Create log",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/log/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/log/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/log/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/log/recent_activity/": {
"get": {
"parameters": [
{
"description": "The id of the user",
"in": "path",
"name": "user_id",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_recent_activity_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RecentActivityResponseSchema"
},
"example": {
"result": []
}
}
},
"description": "A List of recent activity objects"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get recent activity data for a user",
"tags": [
"LogRestApi"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/log/recent_activity/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/log/recent_activity/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/log/recent_activity/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/log/{pk}": {
"get": {
"description": "Get an item model",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"id": {
"description": "The item id",
"type": "string"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"result": {
"$ref": "#/components/schemas/LogRestApi.get"
},
"show_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"show_title": {
"description": "A title to render. Will be translated by babel",
"example": "Show Item Details",
"type": "string"
}
},
"type": "object"
},
"example": {
"description_columns": {
"column_name": "A Nice description for the column"
},
"id": "string",
"label_columns": {
"column_name": "A Nice label for the column"
},
"result": {
"action": "string",
"dashboard_id": 1,
"dttm": "2024-01-15T10:30:00Z",
"duration_ms": 1,
"json": "string",
"referrer": "string",
"slice_id": 1,
"user_id": 1
},
"show_columns": [
"string"
],
"show_title": "Show Item Details"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a log detail information",
"tags": [
"LogRestApi"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/log/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/log/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/log/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/me/": {
"get": {
"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": {
"application/json": {
"schema": {
"properties": {
"result": {
"$ref": "#/components/schemas/UserResponseSchema"
}
},
"type": "object"
},
"example": {
"result": {
"email": "string",
"first_name": "string",
"id": 1,
"is_active": true,
"is_anonymous": true,
"last_name": "string",
"username": "string"
}
}
}
},
"description": "The current user"
},
"401": {
"$ref": "#/components/responses/401"
}
},
"summary": "Get the user object",
"tags": [
"Current User"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/me/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/me/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/me/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/me/roles/": {
"get": {
"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": {
"application/json": {
"schema": {
"properties": {
"result": {
"$ref": "#/components/schemas/UserResponseSchema"
}
},
"type": "object"
},
"example": {
"result": {
"email": "string",
"first_name": "string",
"id": 1,
"is_active": true,
"is_anonymous": true,
"last_name": "string",
"username": "string"
}
}
}
},
"description": "The current user"
},
"401": {
"$ref": "#/components/responses/401"
}
},
"summary": "Get the user roles",
"tags": [
"Current User"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/me/roles/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/me/roles/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/me/roles/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/menu/": {
"get": {
"description": "Get the menu data structure. Returns a forest like structure with the menu the user has access to",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"description": "Menu items in a forest like data structure",
"items": {
"properties": {
"childs": {
"items": {
"type": "object"
},
"type": "array"
},
"icon": {
"description": "Icon name to show for this menu item",
"type": "string"
},
"label": {
"description": "Pretty name for the menu item",
"type": "string"
},
"name": {
"description": "The internal menu item name, maps to permission_name",
"type": "string"
},
"url": {
"description": "The URL for the menu item",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"result": [
{
"childs": [],
"icon": "string",
"label": "string",
"name": "string",
"url": "string"
}
]
}
}
},
"description": "Get menu data"
},
"401": {
"$ref": "#/components/responses/401"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Menu"
],
"operationId": "get_menu",
"summary": "Get menu",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/menu/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/menu/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/menu/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/query/": {
"get": {
"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": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/QueryRestApi.get_list"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"count": 1.0,
"description_columns": {
"column_name": "A Nice description for the column"
},
"ids": [
"string"
],
"label_columns": {
"column_name": "A Nice label for the column"
},
"list_columns": [
"string"
],
"list_title": "List Items",
"order_columns": [
"string"
],
"result": [
{}
]
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a list of queries",
"tags": [
"Queries"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/query/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/query/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/query/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/query/distinct/{column_name}": {
"get": {
"parameters": [
{
"in": "path",
"name": "column_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_related_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DistincResponseSchema"
},
"example": {
"count": 1,
"result": []
}
}
},
"description": "Distinct field data"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get distinct values from field data (query-distinct-column-name)",
"tags": [
"Queries"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/query/distinct/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/query/distinct/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/query/distinct/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/query/related/{column_name}": {
"get": {
"parameters": [
{
"in": "path",
"name": "column_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_related_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RelatedResponseSchema"
},
"example": {
"count": 1,
"result": []
}
}
},
"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 (query-related-column-name)",
"tags": [
"Queries"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/query/related/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/query/related/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/query/related/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/query/stop": {
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StopQuerySchema"
},
"example": {
"client_id": "string"
}
}
},
"description": "Stop query schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"type": "string"
}
},
"type": "object"
},
"example": {
"result": "string"
}
}
},
"description": "Query stopped"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Manually stop a query with client_id",
"tags": [
"Queries"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/query/stop\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/query/stop\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/query/stop\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/query/updated_since": {
"get": {
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/queries_get_updated_since_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"description": "A List of queries that changed after last_updated_ms",
"items": {
"$ref": "#/components/schemas/QueryRestApi.get"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"result": [
{}
]
}
}
},
"description": "Queries list"
},
"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 list of queries that changed after last_updated_ms",
"tags": [
"Queries"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/query/updated_since\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/query/updated_since\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/query/updated_since\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/query/{pk}": {
"get": {
"description": "Get an item model",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"id": {
"description": "The item id",
"type": "string"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"result": {
"$ref": "#/components/schemas/QueryRestApi.get"
},
"show_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"show_title": {
"description": "A title to render. Will be translated by babel",
"example": "Show Item Details",
"type": "string"
}
},
"type": "object"
},
"example": {
"description_columns": {
"column_name": "A Nice description for the column"
},
"id": "string",
"label_columns": {
"column_name": "A Nice label for the column"
},
"result": {
"changed_on": "2024-01-15T10:30:00Z",
"client_id": "string",
"end_result_backend_time": 1.0,
"end_time": 1.0,
"error_message": "string",
"executed_sql": "string",
"id": 1,
"limit": 1,
"progress": 1,
"results_key": "string",
"rows": 1,
"schema": "string",
"select_as_cta": true,
"select_as_cta_used": true,
"select_sql": "string",
"sql": "string",
"sql_editor_id": "string",
"start_running_time": 1.0,
"start_time": 1.0,
"status": "string",
"tab_name": "string",
"tmp_schema_name": "string",
"tmp_table_name": "string",
"tracking_url": {}
},
"show_columns": [
"string"
],
"show_title": "Show Item Details"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get query detail information",
"tags": [
"Queries"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/query/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/query/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/query/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/report/": {
"delete": {
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_delete_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Report Schedule bulk delete"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Bulk delete report schedules",
"tags": [
"Report Schedules"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/report/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/report/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/report/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"get": {
"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": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/ReportScheduleRestApi.get_list"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"count": 1.0,
"description_columns": {
"column_name": "A Nice description for the column"
},
"ids": [
"string"
],
"label_columns": {
"column_name": "A Nice label for the column"
},
"list_columns": [
"string"
],
"list_title": "List Items",
"order_columns": [
"string"
],
"result": [
{}
]
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a list of report schedules",
"tags": [
"Report Schedules"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/report/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/report/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/report/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ReportScheduleRestApi.post"
},
"example": {
"active": true,
"chart": 1,
"context_markdown": "string",
"creation_method": {},
"crontab": "*/5 * * * *",
"custom_width": 1000,
"dashboard": 1,
"database": 1,
"description": "Daily sales dashboard to marketing",
"email_subject": "[Report] Report name: Dashboard or chart name",
"extra": {},
"force_screenshot": true,
"grace_period": 14400,
"log_retention": 90,
"name": "Daily dashboard email",
"owners": [
1
],
"recipients": [
{}
],
"report_format": "PDF",
"selected_tabs": [
1
],
"sql": "SELECT value FROM time_series_table",
"timezone": "Africa/Abidjan",
"type": "Alert",
"validator_config_json": {
"op": "<",
"threshold": 1.0
},
"validator_type": "not null",
"working_timeout": 3600
}
}
},
"description": "Report Schedule schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/ReportScheduleRestApi.post"
}
},
"type": "object"
},
"example": {
"id": 1.0,
"result": {
"active": true,
"chart": 1,
"context_markdown": "string",
"creation_method": {},
"crontab": "*/5 * * * *",
"custom_width": 1000,
"dashboard": 1,
"database": 1,
"description": "Daily sales dashboard to marketing",
"email_subject": "[Report] Report name: Dashboard or chart name",
"extra": {},
"force_screenshot": true,
"grace_period": 14400,
"log_retention": 90,
"name": "Daily dashboard email",
"owners": [],
"recipients": [],
"report_format": "PDF",
"selected_tabs": [],
"sql": "SELECT value FROM time_series_table",
"timezone": "Africa/Abidjan",
"type": "Alert",
"validator_type": "not null",
"working_timeout": 3600
}
}
}
},
"description": "Report schedule added"
},
"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": "Create a report schedule",
"tags": [
"Report Schedules"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/report/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/report/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/report/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/report/_info": {
"get": {
"description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_info_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"add_columns": {
"type": "object"
},
"edit_columns": {
"type": "object"
},
"filters": {
"properties": {
"column_name": {
"items": {
"properties": {
"name": {
"description": "The filter name. Will be translated by babel",
"type": "string"
},
"operator": {
"description": "The filter operation key to use on list filters",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"permissions": {
"description": "The user permissions for this API resource",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"add_columns": {},
"edit_columns": {},
"filters": {
"column_name": [
{}
]
},
"permissions": [
"string"
]
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get metadata information about this API resource (report--info)",
"tags": [
"Report Schedules"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/report/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/report/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/report/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/report/related/{column_name}": {
"get": {
"parameters": [
{
"in": "path",
"name": "column_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_related_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RelatedResponseSchema"
},
"example": {
"count": 1,
"result": []
}
}
},
"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 (report-related-column-name)",
"tags": [
"Report Schedules"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/report/related/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/report/related/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/report/related/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/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"
},
"example": {
"result": [
{
"id": "string",
"name": "string"
}
]
}
}
},
"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"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/report/slack_channels/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/report/slack_channels/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/report/slack_channels/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/report/{pk}": {
"delete": {
"parameters": [
{
"description": "The report schedule pk",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Item deleted"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Delete a report schedule",
"tags": [
"Report Schedules"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/report/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/report/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/report/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"get": {
"description": "Get an item model",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"id": {
"description": "The item id",
"type": "string"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"result": {
"$ref": "#/components/schemas/ReportScheduleRestApi.get"
},
"show_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"show_title": {
"description": "A title to render. Will be translated by babel",
"example": "Show Item Details",
"type": "string"
}
},
"type": "object"
},
"example": {
"description_columns": {
"column_name": "A Nice description for the column"
},
"id": "string",
"label_columns": {
"column_name": "A Nice label for the column"
},
"result": {
"active": true,
"context_markdown": "string",
"creation_method": "string",
"crontab": "string",
"custom_width": 1,
"description": "string",
"email_subject": "string",
"extra": {},
"force_screenshot": true,
"grace_period": 1,
"id": 1,
"last_eval_dttm": "2024-01-15T10:30:00Z",
"last_state": "string",
"last_value": 1.0,
"last_value_row_json": "string",
"log_retention": 1,
"name": "string",
"report_format": "string",
"sql": "string",
"timezone": "string",
"type": "string",
"validator_config_json": "string",
"validator_type": "string",
"working_timeout": 1
},
"show_columns": [
"string"
],
"show_title": "Show Item Details"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a report schedule",
"tags": [
"Report Schedules"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/report/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/report/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/report/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"put": {
"parameters": [
{
"description": "The Report Schedule pk",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ReportScheduleRestApi.put"
},
"example": {
"active": true,
"chart": 1,
"context_markdown": "string",
"creation_method": {},
"crontab": "string",
"custom_width": 1000,
"dashboard": 1,
"database": 1,
"description": "Daily sales dashboard to marketing",
"email_subject": "[Report] Report name: Dashboard or chart name",
"extra": {},
"force_screenshot": true,
"grace_period": 14400,
"log_retention": 90,
"name": "string",
"owners": [
1
],
"recipients": [
{}
],
"report_format": "PDF",
"sql": "SELECT value FROM time_series_table",
"timezone": "Africa/Abidjan",
"type": "Alert",
"validator_config_json": {
"op": "<",
"threshold": 1.0
},
"validator_type": "not null",
"working_timeout": 3600
}
}
},
"description": "Report Schedule schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/ReportScheduleRestApi.put"
}
},
"type": "object"
},
"example": {
"id": 1.0,
"result": {
"active": true,
"chart": 1,
"context_markdown": "string",
"creation_method": {},
"crontab": "string",
"custom_width": 1000,
"dashboard": 1,
"database": 1,
"description": "Daily sales dashboard to marketing",
"email_subject": "[Report] Report name: Dashboard or chart name",
"extra": {},
"force_screenshot": true,
"grace_period": 14400,
"log_retention": 90,
"name": "string",
"owners": [],
"recipients": [],
"report_format": "PDF",
"sql": "SELECT value FROM time_series_table",
"timezone": "Africa/Abidjan",
"type": "Alert",
"validator_type": "not null",
"working_timeout": 3600
}
}
}
},
"description": "Report Schedule changed"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Update a report schedule",
"tags": [
"Report Schedules"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X PUT \"http://localhost:8088/api/v1/report/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/report/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/report/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/report/{pk}/log/": {
"get": {
"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",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"ids": {
"description": "A list of log ids",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/ReportExecutionLogRestApi.get_list"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"count": 1.0,
"ids": [
"string"
],
"result": [
{}
]
}
}
},
"description": "Items from logs"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a list of report schedule logs",
"tags": [
"Report Schedules"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/report/1/log/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/report/1/log/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/report/1/log/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/report/{pk}/log/{log_id}": {
"get": {
"parameters": [
{
"description": "The report schedule pk for log",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "The log pk",
"in": "path",
"name": "log_id",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"description": "The log id",
"type": "string"
},
"result": {
"$ref": "#/components/schemas/ReportExecutionLogRestApi.get"
}
},
"type": "object"
},
"example": {
"id": "string",
"result": {
"end_dttm": "2024-01-15T10:30:00Z",
"error_message": "string",
"id": 1,
"scheduled_dttm": "2024-01-15T10:30:00Z",
"start_dttm": "2024-01-15T10:30:00Z",
"state": "string",
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"value": 1.0,
"value_row_json": "string"
}
}
}
},
"description": "Item log"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a report schedule log (report-pk-log-log-id)",
"tags": [
"Report Schedules"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/report/1/log/{log_id}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/report/1/log/{log_id}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/report/1/log/{log_id}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/rowlevelsecurity/": {
"delete": {
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_delete_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "RLS Rule bulk delete"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Bulk delete RLS rules",
"tags": [
"Row Level Security"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/rowlevelsecurity/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/rowlevelsecurity/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/rowlevelsecurity/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"get": {
"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": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/RLSRestApi.get_list"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"count": 1.0,
"description_columns": {
"column_name": "A Nice description for the column"
},
"ids": [
"string"
],
"label_columns": {
"column_name": "A Nice label for the column"
},
"list_columns": [
"string"
],
"list_title": "List Items",
"order_columns": [
"string"
],
"result": [
{}
]
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a list of RLS",
"tags": [
"Row Level Security"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/rowlevelsecurity/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/rowlevelsecurity/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/rowlevelsecurity/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RLSRestApi.post"
},
"example": {
"clause": "string",
"description": "string",
"filter_type": "Regular",
"group_key": "string",
"name": "string",
"roles": [
1
],
"tables": [
1
]
}
}
},
"description": "RLS schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/RLSRestApi.post"
}
},
"type": "object"
},
"example": {
"id": 1.0,
"result": {
"clause": "string",
"description": "string",
"filter_type": "Regular",
"group_key": "string",
"name": "string",
"roles": [],
"tables": []
}
}
}
},
"description": "RLS Rule added"
},
"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": "Create a new RLS rule",
"tags": [
"Row Level Security"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/rowlevelsecurity/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/rowlevelsecurity/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/rowlevelsecurity/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/rowlevelsecurity/_info": {
"get": {
"description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_info_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"add_columns": {
"type": "object"
},
"edit_columns": {
"type": "object"
},
"filters": {
"properties": {
"column_name": {
"items": {
"properties": {
"name": {
"description": "The filter name. Will be translated by babel",
"type": "string"
},
"operator": {
"description": "The filter operation key to use on list filters",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"permissions": {
"description": "The user permissions for this API resource",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"add_columns": {},
"edit_columns": {},
"filters": {
"column_name": [
{}
]
},
"permissions": [
"string"
]
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get metadata information about this API resource (rowlevelsecurity--info)",
"tags": [
"Row Level Security"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/rowlevelsecurity/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/rowlevelsecurity/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/rowlevelsecurity/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/rowlevelsecurity/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"
},
"example": {
"count": 1,
"result": []
}
}
},
"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 (rowlevelsecurity-related-column-name)",
"tags": [
"Row Level Security"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/rowlevelsecurity/related/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/rowlevelsecurity/related/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/rowlevelsecurity/related/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/rowlevelsecurity/{pk}": {
"delete": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Item deleted"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Delete an RLS",
"tags": [
"Row Level Security"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/rowlevelsecurity/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/rowlevelsecurity/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/rowlevelsecurity/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"get": {
"description": "Get an item model",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"id": {
"description": "The item id",
"type": "string"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"result": {
"$ref": "#/components/schemas/RLSRestApi.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"
},
"example": {
"description_columns": {
"column_name": "A Nice description for the column"
},
"id": "string",
"label_columns": {
"column_name": "A Nice label for the column"
},
"result": {
"clause": "string",
"description": "string",
"filter_type": "Regular",
"group_key": "string",
"id": 1,
"name": "string",
"roles": [],
"tables": []
},
"show_columns": [
"string"
],
"show_title": "Show Item Details"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get an RLS",
"tags": [
"Row Level Security"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/rowlevelsecurity/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/rowlevelsecurity/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/rowlevelsecurity/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"put": {
"parameters": [
{
"description": "The Rule pk",
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RLSRestApi.put"
},
"example": {
"clause": "string",
"description": "string",
"filter_type": "Regular",
"group_key": "string",
"name": "string",
"roles": [
1
],
"tables": [
1
]
}
}
},
"description": "RLS schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/RLSRestApi.put"
}
},
"type": "object"
},
"example": {
"id": 1.0,
"result": {
"clause": "string",
"description": "string",
"filter_type": "Regular",
"group_key": "string",
"name": "string",
"roles": [],
"tables": []
}
}
}
},
"description": "Rule changed"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Update an RLS rule",
"tags": [
"Row Level Security"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X PUT \"http://localhost:8088/api/v1/rowlevelsecurity/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/rowlevelsecurity/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/rowlevelsecurity/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/saved_query/": {
"delete": {
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_delete_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Saved queries bulk delete"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Bulk delete saved queries",
"tags": [
"Queries"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/saved_query/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/saved_query/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/saved_query/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"get": {
"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": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/SavedQueryRestApi.get_list"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"count": 1.0,
"description_columns": {
"column_name": "A Nice description for the column"
},
"ids": [
"string"
],
"label_columns": {
"column_name": "A Nice label for the column"
},
"list_columns": [
"string"
],
"list_title": "List Items",
"order_columns": [
"string"
],
"result": [
{}
]
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a list of saved queries",
"tags": [
"Queries"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/saved_query/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/saved_query/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/saved_query/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SavedQueryRestApi.post"
},
"example": {
"catalog": "string",
"db_id": 1,
"description": "string",
"extra_json": "string",
"label": "string",
"schema": "string",
"sql": "string",
"template_parameters": "string"
}
}
},
"description": "Model schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "string"
},
"result": {
"$ref": "#/components/schemas/SavedQueryRestApi.post"
}
},
"type": "object"
},
"example": {
"id": "string",
"result": {
"catalog": "string",
"db_id": 1,
"description": "string",
"extra_json": "string",
"label": "string",
"schema": "string",
"sql": "string",
"template_parameters": "string"
}
}
}
},
"description": "Item inserted"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Create a saved query",
"tags": [
"Queries"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/saved_query/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/saved_query/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/saved_query/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/saved_query/_info": {
"get": {
"description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_info_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"add_columns": {
"type": "object"
},
"edit_columns": {
"type": "object"
},
"filters": {
"properties": {
"column_name": {
"items": {
"properties": {
"name": {
"description": "The filter name. Will be translated by babel",
"type": "string"
},
"operator": {
"description": "The filter operation key to use on list filters",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"permissions": {
"description": "The user permissions for this API resource",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"add_columns": {},
"edit_columns": {},
"filters": {
"column_name": [
{}
]
},
"permissions": [
"string"
]
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get metadata information about this API resource (saved-query--info)",
"tags": [
"Queries"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/saved_query/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/saved_query/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/saved_query/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/saved_query/distinct/{column_name}": {
"get": {
"parameters": [
{
"in": "path",
"name": "column_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_related_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DistincResponseSchema"
},
"example": {
"count": 1,
"result": []
}
}
},
"description": "Distinct field data"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get distinct values from field data (saved-query-distinct-column-name)",
"tags": [
"Queries"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/saved_query/distinct/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/saved_query/distinct/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/saved_query/distinct/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/saved_query/export/": {
"get": {
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_export_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/zip": {
"schema": {
"format": "binary",
"type": "string"
}
}
},
"description": "A zip file with saved query(ies) and database(s) as YAML"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Download multiple saved queries as YAML files",
"tags": [
"Queries"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/saved_query/export/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/saved_query/export/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/saved_query/export/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/saved_query/import/": {
"post": {
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"properties": {
"formData": {
"description": "upload file (ZIP)",
"format": "binary",
"type": "string"
},
"overwrite": {
"description": "overwrite existing saved queries?",
"type": "boolean"
},
"passwords": {
"description": "JSON map of passwords for each featured database in the ZIP file. If the ZIP includes a database config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
"type": "string"
},
"ssh_tunnel_passwords": {
"description": "JSON map of passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
"type": "string"
},
"ssh_tunnel_private_key_passwords": {
"description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
"type": "string"
},
"ssh_tunnel_private_keys": {
"description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
"type": "string"
}
},
"type": "object"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Saved Query import result"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Import saved queries with associated databases",
"tags": [
"Queries"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/saved_query/import/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/saved_query/import/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/saved_query/import/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/saved_query/related/{column_name}": {
"get": {
"parameters": [
{
"in": "path",
"name": "column_name",
"required": true,
"schema": {
"type": "string"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_related_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RelatedResponseSchema"
},
"example": {
"count": 1,
"result": []
}
}
},
"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 (saved-query-related-column-name)",
"tags": [
"Queries"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/saved_query/related/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/saved_query/related/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/saved_query/related/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/saved_query/{pk}": {
"delete": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Item deleted"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Delete a saved query",
"tags": [
"Queries"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/saved_query/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/saved_query/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/saved_query/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"get": {
"description": "Get an item model",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"id": {
"description": "The item id",
"type": "string"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"result": {
"$ref": "#/components/schemas/SavedQueryRestApi.get"
},
"show_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"show_title": {
"description": "A title to render. Will be translated by babel",
"example": "Show Item Details",
"type": "string"
}
},
"type": "object"
},
"example": {
"description_columns": {
"column_name": "A Nice description for the column"
},
"id": "string",
"label_columns": {
"column_name": "A Nice label for the column"
},
"result": {
"catalog": "string",
"changed_on": "2024-01-15T10:30:00Z",
"changed_on_delta_humanized": {},
"description": "string",
"id": 1,
"label": "string",
"schema": "string",
"sql": "string",
"sql_tables": {},
"template_parameters": "string"
},
"show_columns": [
"string"
],
"show_title": "Show Item Details"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a saved query",
"tags": [
"Queries"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/saved_query/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/saved_query/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/saved_query/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"put": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SavedQueryRestApi.put"
},
"example": {
"catalog": "string",
"db_id": 1,
"description": "string",
"extra_json": "string",
"label": "string",
"schema": "string",
"sql": "string",
"template_parameters": "string"
}
}
},
"description": "Model schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"$ref": "#/components/schemas/SavedQueryRestApi.put"
}
},
"type": "object"
},
"example": {
"result": {
"catalog": "string",
"db_id": 1,
"description": "string",
"extra_json": "string",
"label": "string",
"schema": "string",
"sql": "string",
"template_parameters": "string"
}
}
}
},
"description": "Item changed"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Update a saved query",
"tags": [
"Queries"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X PUT \"http://localhost:8088/api/v1/saved_query/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/saved_query/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/saved_query/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/security/csrf_token/": {
"get": {
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"type": "string"
}
},
"type": "object"
},
"example": {
"result": "string"
}
}
},
"description": "Result contains the CSRF token"
},
"401": {
"$ref": "#/components/responses/401"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get the CSRF token",
"tags": [
"Security"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/security/csrf_token/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/csrf_token/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/csrf_token/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/security/guest_token/": {
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GuestTokenCreate"
},
"example": {
"resources": [
{}
],
"rls": [
{}
],
"user": {
"first_name": "string",
"last_name": "string",
"username": "string"
}
}
}
},
"description": "Parameters for the guest token",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"token": {
"type": "string"
}
},
"type": "object"
},
"example": {
"token": "string"
}
}
},
"description": "Result contains the guest token"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a guest token",
"tags": [
"Security"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/security/guest_token/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/guest_token/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/guest_token/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/security/login": {
"post": {
"description": "Authenticate and get a JWT access and refresh token",
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"password": {
"description": "The password for authentication",
"example": "complex-password",
"type": "string"
},
"provider": {
"description": "Choose an authentication provider",
"enum": [
"db",
"ldap"
],
"example": "db",
"type": "string"
},
"refresh": {
"description": "If true a refresh token is provided also",
"example": true,
"type": "boolean"
},
"username": {
"description": "The username for authentication",
"example": "admin",
"type": "string"
}
},
"type": "object"
},
"example": {
"password": "complex-password",
"provider": "db",
"refresh": true,
"username": "admin"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"access_token": {
"type": "string"
},
"refresh_token": {
"type": "string"
}
},
"type": "object"
},
"example": {
"access_token": "string",
"refresh_token": "string"
}
}
},
"description": "Authentication Successful"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"tags": [
"Security"
],
"operationId": "create_security_login",
"summary": "Create security login",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/security/login\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/login\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/login\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/security/permissions-resources/": {
"get": {
"description": "Get a list of models",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/PermissionViewMenuApi.get_list"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"count": 1.0,
"description_columns": {
"column_name": "A Nice description for the column"
},
"ids": [
"string"
],
"label_columns": {
"column_name": "A Nice label for the column"
},
"list_columns": [
"string"
],
"list_title": "List Items",
"order_columns": [
"string"
],
"result": [
{}
]
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Permissions on Resources (View Menus)"
],
"operationId": "get_security_permissions_resources",
"summary": "Get security permissions resources",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/security/permissions-resources/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/permissions-resources/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions-resources/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PermissionViewMenuApi.post"
},
"example": {
"permission_id": 1,
"view_menu_id": 1
}
}
},
"description": "Model schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "string"
},
"result": {
"$ref": "#/components/schemas/PermissionViewMenuApi.post"
}
},
"type": "object"
},
"example": {
"id": "string",
"result": {
"permission_id": 1,
"view_menu_id": 1
}
}
}
},
"description": "Item inserted"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Permissions on Resources (View Menus)"
],
"operationId": "create_security_permissions_resources",
"summary": "Create security permissions resources",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/security/permissions-resources/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/permissions-resources/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions-resources/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/security/permissions-resources/_info": {
"get": {
"description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_info_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"add_columns": {
"type": "object"
},
"edit_columns": {
"type": "object"
},
"filters": {
"properties": {
"column_name": {
"items": {
"properties": {
"name": {
"description": "The filter name. Will be translated by babel",
"type": "string"
},
"operator": {
"description": "The filter operation key to use on list filters",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"permissions": {
"description": "The user permissions for this API resource",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"add_columns": {},
"edit_columns": {},
"filters": {
"column_name": [
{}
]
},
"permissions": [
"string"
]
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Permissions on Resources (View Menus)"
],
"operationId": "get_security_permissions_resources__info",
"summary": "Get security permissions resources info",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/security/permissions-resources/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/permissions-resources/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions-resources/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/security/permissions-resources/{pk}": {
"delete": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Item deleted"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Permissions on Resources (View Menus)"
],
"operationId": "delete_security_permissions_resources_by_pk",
"summary": "Delete security permissions resources by pk",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/security/permissions-resources/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/security/permissions-resources/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions-resources/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"get": {
"description": "Get an item model",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"id": {
"description": "The item id",
"type": "string"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"result": {
"$ref": "#/components/schemas/PermissionViewMenuApi.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"
},
"example": {
"description_columns": {
"column_name": "A Nice description for the column"
},
"id": "string",
"label_columns": {
"column_name": "A Nice label for the column"
},
"result": {
"id": 1
},
"show_columns": [
"string"
],
"show_title": "Show Item Details"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Permissions on Resources (View Menus)"
],
"operationId": "get_security_permissions_resources_by_pk",
"summary": "Get security permissions resources by pk",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/security/permissions-resources/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/permissions-resources/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions-resources/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"put": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PermissionViewMenuApi.put"
},
"example": {
"permission_id": 1,
"view_menu_id": 1
}
}
},
"description": "Model schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"$ref": "#/components/schemas/PermissionViewMenuApi.put"
}
},
"type": "object"
},
"example": {
"result": {
"permission_id": 1,
"view_menu_id": 1
}
}
}
},
"description": "Item changed"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Permissions on Resources (View Menus)"
],
"operationId": "update_security_permissions_resources_by_pk",
"summary": "Update security permissions resources by pk",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X PUT \"http://localhost:8088/api/v1/security/permissions-resources/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/security/permissions-resources/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions-resources/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/security/permissions/": {
"get": {
"description": "Get a list of models",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/PermissionApi.get_list"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"count": 1.0,
"description_columns": {
"column_name": "A Nice description for the column"
},
"ids": [
"string"
],
"label_columns": {
"column_name": "A Nice label for the column"
},
"list_columns": [
"string"
],
"list_title": "List Items",
"order_columns": [
"string"
],
"result": [
{}
]
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Permissions"
],
"operationId": "get_security_permissions",
"summary": "Get security permissions",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/security/permissions/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/permissions/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/security/permissions/_info": {
"get": {
"description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_info_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"add_columns": {
"type": "object"
},
"edit_columns": {
"type": "object"
},
"filters": {
"properties": {
"column_name": {
"items": {
"properties": {
"name": {
"description": "The filter name. Will be translated by babel",
"type": "string"
},
"operator": {
"description": "The filter operation key to use on list filters",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"permissions": {
"description": "The user permissions for this API resource",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"add_columns": {},
"edit_columns": {},
"filters": {
"column_name": [
{}
]
},
"permissions": [
"string"
]
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Permissions"
],
"operationId": "get_security_permissions__info",
"summary": "Get security permissions info",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/security/permissions/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/permissions/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/security/permissions/{pk}": {
"get": {
"description": "Get an item model",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"id": {
"description": "The item id",
"type": "string"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"result": {
"$ref": "#/components/schemas/PermissionApi.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"
},
"example": {
"description_columns": {
"column_name": "A Nice description for the column"
},
"id": "string",
"label_columns": {
"column_name": "A Nice label for the column"
},
"result": {
"id": 1,
"name": "string"
},
"show_columns": [
"string"
],
"show_title": "Show Item Details"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Permissions"
],
"operationId": "get_security_permissions_by_pk",
"summary": "Get security permissions by pk",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/security/permissions/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/permissions/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/security/refresh": {
"post": {
"description": "Use the refresh token to get a new JWT access token",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"access_token": {
"description": "A new refreshed access token",
"type": "string"
}
},
"type": "object"
},
"example": {
"access_token": "string"
}
}
},
"description": "Refresh Successful"
},
"401": {
"$ref": "#/components/responses/401"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt_refresh": []
}
],
"tags": [
"Security"
],
"operationId": "create_security_refresh",
"summary": "Create security refresh",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/security/refresh\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/refresh\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/refresh\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/security/resources/": {
"get": {
"description": "Get a list of models",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/ViewMenuApi.get_list"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"count": 1.0,
"description_columns": {
"column_name": "A Nice description for the column"
},
"ids": [
"string"
],
"label_columns": {
"column_name": "A Nice label for the column"
},
"list_columns": [
"string"
],
"list_title": "List Items",
"order_columns": [
"string"
],
"result": [
{}
]
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Resources (View Menus)"
],
"operationId": "get_security_resources",
"summary": "Get security resources",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/security/resources/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/resources/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/resources/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ViewMenuApi.post"
},
"example": {
"name": "string"
}
}
},
"description": "Model schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "string"
},
"result": {
"$ref": "#/components/schemas/ViewMenuApi.post"
}
},
"type": "object"
},
"example": {
"id": "string",
"result": {
"name": "string"
}
}
}
},
"description": "Item inserted"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Resources (View Menus)"
],
"operationId": "create_security_resources",
"summary": "Create security resources",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/security/resources/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/resources/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/resources/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/security/resources/_info": {
"get": {
"description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_info_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"add_columns": {
"type": "object"
},
"edit_columns": {
"type": "object"
},
"filters": {
"properties": {
"column_name": {
"items": {
"properties": {
"name": {
"description": "The filter name. Will be translated by babel",
"type": "string"
},
"operator": {
"description": "The filter operation key to use on list filters",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"permissions": {
"description": "The user permissions for this API resource",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"add_columns": {},
"edit_columns": {},
"filters": {
"column_name": [
{}
]
},
"permissions": [
"string"
]
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Resources (View Menus)"
],
"operationId": "get_security_resources__info",
"summary": "Get security resources info",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/security/resources/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/resources/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/resources/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/security/resources/{pk}": {
"delete": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Item deleted"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Resources (View Menus)"
],
"operationId": "delete_security_resources_by_pk",
"summary": "Delete security resources by pk",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/security/resources/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/security/resources/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/resources/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"get": {
"description": "Get an item model",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"id": {
"description": "The item id",
"type": "string"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"result": {
"$ref": "#/components/schemas/ViewMenuApi.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"
},
"example": {
"description_columns": {
"column_name": "A Nice description for the column"
},
"id": "string",
"label_columns": {
"column_name": "A Nice label for the column"
},
"result": {
"id": 1,
"name": "string"
},
"show_columns": [
"string"
],
"show_title": "Show Item Details"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Resources (View Menus)"
],
"operationId": "get_security_resources_by_pk",
"summary": "Get security resources by pk",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/security/resources/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/resources/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/resources/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"put": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ViewMenuApi.put"
},
"example": {
"name": "string"
}
}
},
"description": "Model schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"$ref": "#/components/schemas/ViewMenuApi.put"
}
},
"type": "object"
},
"example": {
"result": {
"name": "string"
}
}
}
},
"description": "Item changed"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Resources (View Menus)"
],
"operationId": "update_security_resources_by_pk",
"summary": "Update security resources by pk",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X PUT \"http://localhost:8088/api/v1/security/resources/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/security/resources/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/resources/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/security/roles/": {
"get": {
"description": "Get a list of models",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/SupersetRoleApi.get_list"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"count": 1.0,
"description_columns": {
"column_name": "A Nice description for the column"
},
"ids": [
"string"
],
"label_columns": {
"column_name": "A Nice label for the column"
},
"list_columns": [
"string"
],
"list_title": "List Items",
"order_columns": [
"string"
],
"result": [
{}
]
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Roles"
],
"operationId": "get_security_roles",
"summary": "Get security roles",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/security/roles/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/roles/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SupersetRoleApi.post"
},
"example": {
"name": "string"
}
}
},
"description": "Model schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "string"
},
"result": {
"$ref": "#/components/schemas/SupersetRoleApi.post"
}
},
"type": "object"
},
"example": {
"id": "string",
"result": {
"name": "string"
}
}
}
},
"description": "Item inserted"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Roles"
],
"operationId": "create_security_roles",
"summary": "Create security roles",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/security/roles/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/roles/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/security/roles/_info": {
"get": {
"description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_info_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"add_columns": {
"type": "object"
},
"edit_columns": {
"type": "object"
},
"filters": {
"properties": {
"column_name": {
"items": {
"properties": {
"name": {
"description": "The filter name. Will be translated by babel",
"type": "string"
},
"operator": {
"description": "The filter operation key to use on list filters",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"permissions": {
"description": "The user permissions for this API resource",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"add_columns": {},
"edit_columns": {},
"filters": {
"column_name": [
{}
]
},
"permissions": [
"string"
]
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Roles"
],
"operationId": "get_security_roles__info",
"summary": "Get security roles info",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/security/roles/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/roles/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/security/roles/search/": {
"get": {
"description": "Fetch a paginated list of roles with user and permission IDs.",
"parameters": [
{
"in": "query",
"name": "q",
"schema": {
"properties": {
"filters": {
"items": {
"properties": {
"col": {
"enum": [
"user_ids",
"permission_ids",
"name"
],
"type": "string"
},
"value": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"order_column": {
"default": "id",
"enum": [
"id",
"name"
],
"type": "string"
},
"order_direction": {
"default": "asc",
"enum": [
"asc",
"desc"
],
"type": "string"
},
"page": {
"default": 0,
"type": "integer"
},
"page_size": {
"default": 10,
"type": "integer"
}
},
"type": "object"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RolesResponseSchema"
},
"example": {
"count": 1,
"ids": [
1
],
"result": []
}
}
},
"description": "Successfully retrieved roles"
},
"400": {
"content": {
"application/json": {
"schema": {
"properties": {
"error": {
"type": "string"
}
},
"type": "object"
},
"example": {
"error": "string"
}
}
},
"description": "Bad request (invalid input)"
},
"403": {
"content": {
"application/json": {
"schema": {
"properties": {
"error": {
"type": "string"
}
},
"type": "object"
},
"example": {
"error": "string"
}
}
},
"description": "Forbidden"
}
},
"security": [
{
"jwt": []
}
],
"summary": "List roles",
"tags": [
"Security Roles"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/security/roles/search/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/roles/search/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/search/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/security/roles/{pk}": {
"delete": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Item deleted"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Roles"
],
"operationId": "delete_security_roles_by_pk",
"summary": "Delete security roles by pk",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/security/roles/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/security/roles/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"get": {
"description": "Get an item model",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"id": {
"description": "The item id",
"type": "string"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"result": {
"$ref": "#/components/schemas/SupersetRoleApi.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"
},
"example": {
"description_columns": {
"column_name": "A Nice description for the column"
},
"id": "string",
"label_columns": {
"column_name": "A Nice label for the column"
},
"result": {
"id": 1,
"name": "string"
},
"show_columns": [
"string"
],
"show_title": "Show Item Details"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Roles"
],
"operationId": "get_security_roles_by_pk",
"summary": "Get security roles by pk",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/security/roles/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/roles/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"put": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SupersetRoleApi.put"
},
"example": {
"name": "string"
}
}
},
"description": "Model schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"$ref": "#/components/schemas/SupersetRoleApi.put"
}
},
"type": "object"
},
"example": {
"result": {
"name": "string"
}
}
}
},
"description": "Item changed"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Roles"
],
"operationId": "update_security_roles_by_pk",
"summary": "Update security roles by pk",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X PUT \"http://localhost:8088/api/v1/security/roles/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/security/roles/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/security/roles/{role_id}/permissions": {
"post": {
"parameters": [
{
"in": "path",
"name": "role_id",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RolePermissionPostSchema"
},
"example": {
"permission_view_menu_ids": [
1
]
}
}
},
"description": "Add role permissions schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"$ref": "#/components/schemas/RolePermissionPostSchema"
}
},
"type": "object"
},
"example": {
"result": {
"permission_view_menu_ids": []
}
}
}
},
"description": "Permissions added"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Roles"
],
"operationId": "create_security_roles_by_role_id_permissions",
"summary": "Create security roles by role_id permissions",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/security/roles/{role_id}/permissions\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/roles/{role_id}/permissions\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/{role_id}/permissions\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/security/roles/{role_id}/permissions/": {
"get": {
"parameters": [
{
"in": "path",
"name": "role_id",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"$ref": "#/components/schemas/RolePermissionListSchema"
}
},
"type": "object"
},
"example": {
"result": {
"id": 1,
"permission_name": "string",
"view_menu_name": "string"
}
}
}
},
"description": "List of permissions"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Roles"
],
"operationId": "get_security_roles_by_role_id_permissions",
"summary": "Get security roles by role_id permissions",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/security/roles/{role_id}/permissions/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/roles/{role_id}/permissions/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/{role_id}/permissions/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/security/roles/{role_id}/users": {
"put": {
"parameters": [
{
"in": "path",
"name": "role_id",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RoleUserPutSchema"
},
"example": {
"user_ids": [
1
]
}
}
},
"description": "Update role users schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"$ref": "#/components/schemas/RoleUserPutSchema"
}
},
"type": "object"
},
"example": {
"result": {
"user_ids": []
}
}
}
},
"description": "Role users updated"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Roles"
],
"operationId": "update_security_roles_by_role_id_users",
"summary": "Update security roles by role_id users",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X PUT \"http://localhost:8088/api/v1/security/roles/{role_id}/users\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/security/roles/{role_id}/users\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/{role_id}/users\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/security/users/": {
"get": {
"description": "Get a list of models",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/SupersetUserApi.get_list"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"count": 1.0,
"description_columns": {
"column_name": "A Nice description for the column"
},
"ids": [
"string"
],
"label_columns": {
"column_name": "A Nice label for the column"
},
"list_columns": [
"string"
],
"list_title": "List Items",
"order_columns": [
"string"
],
"result": [
{}
]
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Users"
],
"operationId": "get_security_users",
"summary": "Get security users",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/security/users/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/users/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/users/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SupersetUserApi.post"
},
"example": {
"active": true,
"email": "string",
"first_name": "string",
"last_name": "string",
"password": "string",
"roles": [
1
],
"username": "string"
}
}
},
"description": "Model schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"$ref": "#/components/schemas/SupersetUserApi.post"
}
},
"type": "object"
},
"example": {
"result": {
"active": true,
"email": "string",
"first_name": "string",
"last_name": "string",
"password": "string",
"roles": [],
"username": "string"
}
}
}
},
"description": "Item changed"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Users"
],
"operationId": "create_security_users",
"summary": "Create security users",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/security/users/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/users/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/users/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/security/users/_info": {
"get": {
"description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_info_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"add_columns": {
"type": "object"
},
"edit_columns": {
"type": "object"
},
"filters": {
"properties": {
"column_name": {
"items": {
"properties": {
"name": {
"description": "The filter name. Will be translated by babel",
"type": "string"
},
"operator": {
"description": "The filter operation key to use on list filters",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"permissions": {
"description": "The user permissions for this API resource",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"add_columns": {},
"edit_columns": {},
"filters": {
"column_name": [
{}
]
},
"permissions": [
"string"
]
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Users"
],
"operationId": "get_security_users__info",
"summary": "Get security users info",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/security/users/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/users/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/users/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/security/users/{pk}": {
"delete": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Item deleted"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Users"
],
"operationId": "delete_security_users_by_pk",
"summary": "Delete security users by pk",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/security/users/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/security/users/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/users/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"get": {
"description": "Get an item model",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"id": {
"description": "The item id",
"type": "string"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"result": {
"$ref": "#/components/schemas/SupersetUserApi.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"
},
"example": {
"description_columns": {
"column_name": "A Nice description for the column"
},
"id": "string",
"label_columns": {
"column_name": "A Nice label for the column"
},
"result": {
"active": true,
"changed_on": "2024-01-15T10:30:00Z",
"created_on": "2024-01-15T10:30:00Z",
"email": "string",
"fail_login_count": 1,
"first_name": "string",
"id": 1,
"last_login": "2024-01-15T10:30:00Z",
"last_name": "string",
"login_count": 1,
"username": "string"
},
"show_columns": [
"string"
],
"show_title": "Show Item Details"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Users"
],
"operationId": "get_security_users_by_pk",
"summary": "Get security users by pk",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/security/users/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/users/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/users/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"put": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SupersetUserApi.put"
},
"example": {
"active": true,
"email": "string",
"first_name": "string",
"last_name": "string",
"password": "string",
"roles": [
1
],
"username": "string"
}
}
},
"description": "Model schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"$ref": "#/components/schemas/SupersetUserApi.put"
}
},
"type": "object"
},
"example": {
"result": {
"active": true,
"email": "string",
"first_name": "string",
"last_name": "string",
"password": "string",
"roles": [],
"username": "string"
}
}
}
},
"description": "Item changed"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Security Users"
],
"operationId": "update_security_users_by_pk",
"summary": "Update security users by pk",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X PUT \"http://localhost:8088/api/v1/security/users/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/security/users/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/users/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/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"
},
"example": {
"active_tab": {},
"databases": {
"key": "value"
},
"queries": {
"key": "value"
},
"tab_state_ids": [
"string"
]
}
}
},
"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"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/sqllab/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/sqllab/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/sqllab/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/sqllab/estimate/": {
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EstimateQueryCostSchema"
},
"example": {
"catalog": "string",
"database_id": 1,
"schema": "string",
"sql": "string",
"template_params": {}
}
}
},
"description": "SQL query and params",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"type": "object"
}
},
"type": "object"
},
"example": {
"result": {}
}
}
},
"description": "Query estimation result"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Estimate the SQL query execution cost",
"tags": [
"SQL Lab"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/sqllab/estimate/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/sqllab/estimate/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/sqllab/estimate/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/sqllab/execute/": {
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ExecutePayloadSchema"
},
"example": {
"catalog": "string",
"client_id": "string",
"ctas_method": "string",
"database_id": 1,
"expand_data": true,
"json": true,
"queryLimit": 1,
"runAsync": true,
"schema": "string",
"select_as_cta": true,
"sql": "string",
"sql_editor_id": "string",
"tab": "string",
"templateParams": "string",
"tmp_table_name": "string"
}
}
},
"description": "SQL query and params",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/QueryExecutionResponseSchema"
},
"example": {
"columns": [
{}
],
"data": [
{}
],
"expanded_columns": [
{}
],
"query": {},
"query_id": 1,
"selected_columns": [
{}
],
"status": "string"
}
}
},
"description": "Query execution result"
},
"202": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/QueryExecutionResponseSchema"
},
"example": {
"columns": [
{}
],
"data": [
{}
],
"expanded_columns": [
{}
],
"query": {},
"query_id": 1,
"selected_columns": [
{}
],
"status": "string"
}
}
},
"description": "Query execution result, query still running"
},
"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": "Execute a SQL query",
"tags": [
"SQL Lab"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/sqllab/execute/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/sqllab/execute/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/sqllab/execute/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/sqllab/export/{client_id}/": {
"get": {
"parameters": [
{
"description": "The SQL query result identifier",
"in": "path",
"name": "client_id",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"text/csv": {
"schema": {
"type": "string"
}
}
},
"description": "SQL query results"
},
"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": "Export the SQL query results to a CSV",
"tags": [
"SQL Lab"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/sqllab/export/{client_id}/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/sqllab/export/{client_id}/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/sqllab/export/{client_id}/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/sqllab/format_sql/": {
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FormatQueryPayloadSchema"
},
"example": {
"sql": "string",
"engine": "string",
"database_id": 1,
"template_params": "string"
}
}
},
"description": "SQL query",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"type": "string"
}
},
"type": "object"
},
"example": {
"result": "string"
}
}
},
"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"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/sqllab/format_sql/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/sqllab/format_sql/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/sqllab/format_sql/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/sqllab/permalink": {
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ExplorePermalinkStateSchema"
},
"example": {
"formData": {},
"urlParams": [
{}
]
}
}
},
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"key": {
"description": "The key to retrieve the permanent link data.",
"type": "string"
},
"url": {
"description": "permanent link.",
"type": "string"
}
},
"type": "object"
},
"example": {
"key": "string",
"url": "string"
}
}
},
"description": "The permanent link was stored successfully."
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Create a new permanent link (sqllab-permalink)",
"tags": [
"SQL Lab Permanent Link"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/sqllab/permalink\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/sqllab/permalink\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/sqllab/permalink\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/sqllab/permalink/{key}": {
"get": {
"parameters": [
{
"in": "path",
"name": "key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"state": {
"description": "The stored state",
"type": "object"
}
},
"type": "object"
},
"example": {
"state": {}
}
}
},
"description": "Returns the stored form_data."
},
"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": "Get permanent link state for SQLLab editor.",
"tags": [
"SQL Lab Permanent Link"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/sqllab/permalink/{key}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/sqllab/permalink/{key}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/sqllab/permalink/{key}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/sqllab/results/": {
"get": {
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/sql_lab_get_results_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/QueryExecutionResponseSchema"
},
"example": {
"columns": [
{}
],
"data": [
{}
],
"expanded_columns": [
{}
],
"query": {},
"query_id": 1,
"selected_columns": [
{}
],
"status": "string"
}
}
},
"description": "SQL query execution result"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"410": {
"$ref": "#/components/responses/410"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get the result of a SQL query execution",
"tags": [
"SQL Lab"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/sqllab/results/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/sqllab/results/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/sqllab/results/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/tag/": {
"delete": {
"description": "Bulk deletes tags. This will remove all tagged objects with this tag.",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/delete_tags_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Deletes multiple Tags"
},
"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": "Bulk delete tags",
"tags": [
"Tags"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/tag/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/tag/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"get": {
"description": "Get a list of tags, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_list_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"count": {
"description": "The total record count on the backend",
"type": "number"
},
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"ids": {
"description": "A list of item ids, useful when you don't know the column id",
"items": {
"type": "string"
},
"type": "array"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"list_columns": {
"description": "A list of columns",
"items": {
"type": "string"
},
"type": "array"
},
"list_title": {
"description": "A title to render. Will be translated by babel",
"example": "List Items",
"type": "string"
},
"order_columns": {
"description": "A list of allowed columns to sort",
"items": {
"type": "string"
},
"type": "array"
},
"result": {
"description": "The result from the get list query",
"items": {
"$ref": "#/components/schemas/TagRestApi.get_list"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"count": 1.0,
"description_columns": {
"column_name": "A Nice description for the column"
},
"ids": [
"string"
],
"label_columns": {
"column_name": "A Nice label for the column"
},
"list_columns": [
"string"
],
"list_title": "List Items",
"order_columns": [
"string"
],
"result": [
{}
]
}
}
},
"description": "Items from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a list of tags",
"tags": [
"Tags"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/tag/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/tag/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"post": {
"description": "Create a new Tag",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TagRestApi.post"
},
"example": {
"description": "string",
"name": "string",
"objects_to_tag": []
}
}
},
"description": "Tag schema",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/TagRestApi.post"
}
},
"type": "object"
},
"example": {
"id": 1.0,
"result": {
"description": "string",
"name": "string",
"objects_to_tag": []
}
}
}
},
"description": "Tag added"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Create a tag",
"tags": [
"Tags"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/tag/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/tag/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/tag/_info": {
"get": {
"description": "Get metadata information about this API resource",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_info_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"add_columns": {
"type": "object"
},
"edit_columns": {
"type": "object"
},
"filters": {
"properties": {
"column_name": {
"items": {
"properties": {
"name": {
"description": "The filter name. Will be translated by babel",
"type": "string"
},
"operator": {
"description": "The filter operation key to use on list filters",
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"permissions": {
"description": "The user permissions for this API resource",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"add_columns": {},
"edit_columns": {},
"filters": {
"column_name": [
{}
]
},
"permissions": [
"string"
]
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get metadata information about tag API endpoints",
"tags": [
"Tags"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/tag/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/tag/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/tag/bulk_create": {
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TagPostBulkSchema"
},
"example": {
"tags": [
{}
]
}
}
},
"description": "Tag schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TagPostBulkResponseSchema"
},
"example": {
"result": {}
}
}
},
"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"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/tag/bulk_create\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/tag/bulk_create\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/bulk_create\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/tag/favorite_status/": {
"get": {
"description": "Get favorited tags for current user",
"parameters": [
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_fav_star_ids_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetFavStarIdsSchema"
},
"example": {
"result": []
}
}
},
"description": "None"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Tags"
],
"operationId": "get_tag_favorite_status",
"summary": "Get tag favorite status",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/tag/favorite_status/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/tag/favorite_status/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/favorite_status/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/tag/get_objects/": {
"get": {
"parameters": [
{
"in": "path",
"name": "tag_id",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"items": {
"$ref": "#/components/schemas/TaggedObjectEntityResponseSchema"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"result": [
{}
]
}
}
},
"description": "List of tagged objects associated with a Tag"
},
"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": "Get all objects associated with a tag",
"tags": [
"Tags"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/tag/get_objects/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/tag/get_objects/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/get_objects/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/tag/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"
},
"example": {
"count": 1,
"result": []
}
}
},
"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 (tag-related-column-name)",
"tags": [
"Tags"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/tag/related/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/tag/related/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/related/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/tag/{object_type}/{object_id}/": {
"post": {
"description": "Adds tags to an object. Creates new tags if they do not already exist.",
"parameters": [
{
"in": "path",
"name": "object_type",
"required": true,
"schema": {
"type": "integer"
}
},
{
"in": "path",
"name": "object_id",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"tags": {
"description": "list of tag names to add to object",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"example": {
"tags": [
"string"
]
}
}
},
"description": "Tag schema",
"required": true
},
"responses": {
"201": {
"description": "Tag added"
},
"302": {
"description": "Redirects to the current digest"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Add tags to an object",
"tags": [
"Tags"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/tag/{object_type}/{object_id}/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/tag/{object_type}/{object_id}/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/{object_type}/{object_id}/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/tag/{object_type}/{object_id}/{tag}/": {
"delete": {
"parameters": [
{
"in": "path",
"name": "tag",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "object_type",
"required": true,
"schema": {
"type": "integer"
}
},
{
"in": "path",
"name": "object_id",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Chart delete"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Delete a tagged object",
"tags": [
"Tags"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/tag/{object_type}/{object_id}/{tag}/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/tag/{object_type}/{object_id}/{tag}/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/{object_type}/{object_id}/{tag}/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
}
},
"/api/v1/tag/{pk}": {
"delete": {
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
}
},
"type": "object"
},
"example": {
"message": "string"
}
}
},
"description": "Item deleted"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Delete a tag",
"tags": [
"Tags"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/tag/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/tag/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"get": {
"description": "Get an item model",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
},
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/get_item_schema"
}
}
},
"in": "query",
"name": "q"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"description_columns": {
"properties": {
"column_name": {
"description": "The description for the column name. Will be translated by babel",
"example": "A Nice description for the column",
"type": "string"
}
},
"type": "object"
},
"id": {
"description": "The item id",
"type": "string"
},
"label_columns": {
"properties": {
"column_name": {
"description": "The label for the column name. Will be translated by babel",
"example": "A Nice label for the column",
"type": "string"
}
},
"type": "object"
},
"result": {
"$ref": "#/components/schemas/TagRestApi.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"
},
"example": {
"description_columns": {
"column_name": "A Nice description for the column"
},
"id": "string",
"label_columns": {
"column_name": "A Nice label for the column"
},
"result": {
"changed_on_delta_humanized": {},
"created_on_delta_humanized": {},
"description": "string",
"id": 1,
"name": "string",
"type": {}
},
"show_columns": [
"string"
],
"show_title": "Show Item Details"
}
}
},
"description": "Item from Model"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Get a tag detail information",
"tags": [
"Tags"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/tag/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/tag/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
},
"put": {
"description": "Changes a Tag.",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TagRestApi.put"
},
"example": {
"description": "string",
"name": "string",
"objects_to_tag": []
}
}
},
"description": "Chart schema",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"id": {
"type": "number"
},
"result": {
"$ref": "#/components/schemas/TagRestApi.put"
}
},
"type": "object"
},
"example": {
"id": 1.0,
"result": {
"description": "string",
"name": "string",
"objects_to_tag": []
}
}
}
},
"description": "Tag changed"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"summary": "Update a tag",
"tags": [
"Tags"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X PUT \"http://localhost:8088/api/v1/tag/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'"
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/tag/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/v1/tag/{pk}/favorites/": {
"delete": {
"description": "Remove the tag from the user favorite list",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"type": "object"
}
},
"type": "object"
},
"example": {
"result": {}
}
}
},
"description": "Tag removed from favorites"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Tags"
],
"operationId": "delete_tag_by_pk_favorites",
"summary": "Delete tag by pk favorites",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X DELETE \"http://localhost:8088/api/v1/tag/1/favorites/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/tag/1/favorites/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/1/favorites/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);"
}
]
},
"post": {
"description": "Marks the tag as favorite for the current user",
"parameters": [
{
"in": "path",
"name": "pk",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"result": {
"type": "object"
}
},
"type": "object"
},
"example": {
"result": {}
}
}
},
"description": "Tag added to favorites"
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"422": {
"$ref": "#/components/responses/422"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"Tags"
],
"operationId": "create_tag_by_pk_favorites",
"summary": "Create tag by pk favorites",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X POST \"http://localhost:8088/api/v1/tag/1/favorites/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/tag/1/favorites/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/1/favorites/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/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"
],
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/v1/user/{user_id}/avatar.png\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/user/{user_id}/avatar.png\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/v1/user/{user_id}/avatar.png\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
},
"/api/{version}/_openapi": {
"get": {
"description": "Get the OpenAPI spec for a specific API version",
"parameters": [
{
"in": "path",
"name": "version",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
},
"description": "The OpenAPI spec"
},
"404": {
"$ref": "#/components/responses/404"
},
"500": {
"$ref": "#/components/responses/500"
}
},
"security": [
{
"jwt": []
}
],
"tags": [
"OpenApi"
],
"operationId": "get_api_by_version__openapi",
"summary": "Get api by version openapi",
"x-codeSamples": [
{
"lang": "cURL",
"label": "cURL",
"source": "curl -X GET \"http://localhost:8088/api/{version}/_openapi\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\""
},
{
"lang": "Python",
"label": "Python",
"source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/{version}/_openapi\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())"
},
{
"lang": "JavaScript",
"label": "JavaScript",
"source": "const response = await fetch(\n \"http://localhost:8088/api/{version}/_openapi\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);"
}
]
}
}
},
"servers": [
{
"url": "http://localhost:8088",
"description": "Local development server"
},
{
"url": "{protocol}://{host}:{port}",
"description": "Custom server",
"variables": {
"protocol": {
"default": "http",
"enum": [
"http",
"https"
],
"description": "HTTP protocol"
},
"host": {
"default": "localhost",
"description": "Server hostname or IP"
},
"port": {
"default": "8088",
"description": "Server port"
}
}
}
],
"tags": [
{
"name": "Advanced Data Type",
"description": "Endpoints for advanced data type operations and conversions."
},
{
"name": "Annotation Layers",
"description": "Manage annotation layers and annotations for charts."
},
{
"name": "AsyncEventsRestApi",
"description": "Real-time event streaming via Server-Sent Events (SSE)."
},
{
"name": "Available Domains",
"description": "Get available domains for the Superset instance."
},
{
"name": "CSS Templates",
"description": "Manage CSS templates for custom dashboard styling."
},
{
"name": "CacheRestApi",
"description": "Cache management and invalidation operations."
},
{
"name": "Charts",
"description": "Create, read, update, and delete charts (slices)."
},
{
"name": "Current User",
"description": "Get information about the currently authenticated user."
},
{
"name": "Dashboard Filter State",
"description": "Manage temporary filter state for dashboards."
},
{
"name": "Dashboard Permanent Link",
"description": "Create and retrieve permanent links to dashboard states."
},
{
"name": "Dashboards",
"description": "Create, read, update, and delete dashboards."
},
{
"name": "Database",
"description": "Manage database connections and metadata."
},
{
"name": "Datasets",
"description": "Manage datasets (tables) used for building charts."
},
{
"name": "Datasources",
"description": "Query datasource metadata and column values."
},
{
"name": "Embedded Dashboard",
"description": "Configure embedded dashboard settings."
},
{
"name": "Explore",
"description": "Chart exploration and data querying endpoints."
},
{
"name": "Explore Form Data",
"description": "Manage temporary form data for chart exploration."
},
{
"name": "Explore Permanent Link",
"description": "Create and retrieve permanent links to chart explore states."
},
{
"name": "Import/export",
"description": "Import and export Superset assets (dashboards, charts, databases)."
},
{
"name": "LogRestApi",
"description": "Access audit logs and activity history."
},
{
"name": "Menu",
"description": "Get the Superset menu structure."
},
{
"name": "OpenApi",
"description": "Access the OpenAPI specification."
},
{
"name": "Queries",
"description": "View and manage SQL Lab query history."
},
{
"name": "Report Schedules",
"description": "Configure scheduled reports and alerts."
},
{
"name": "Row Level Security",
"description": "Manage row-level security rules for data access control."
},
{
"name": "SQL Lab",
"description": "Execute SQL queries and manage SQL Lab sessions."
},
{
"name": "SQL Lab Permanent Link",
"description": "Create and retrieve permanent links to SQL Lab states."
},
{
"name": "Security",
"description": "Authentication and token management."
},
{
"name": "Security Permissions",
"description": "View available permissions."
},
{
"name": "Security Permissions on Resources (View Menus)",
"description": "Manage permission-resource mappings."
},
{
"name": "Security Resources (View Menus)",
"description": "Manage security resources (view menus)."
},
{
"name": "Security Roles",
"description": "Manage security roles and their permissions."
},
{
"name": "Security Users",
"description": "Manage user accounts."
},
{
"name": "Tags",
"description": "Organize assets with tags."
},
{
"name": "User",
"description": "User profile and preferences."
}
]
}