{
  "components": {
    "responses": {
      "400": {
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "message": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "Bad request"
      },
      "401": {
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "message": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "Unauthorized"
      },
      "403": {
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "message": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "Forbidden"
      },
      "404": {
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "message": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "Not found"
      },
      "422": {
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "message": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "Could not process entity"
      },
      "500": {
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "message": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "Fatal error"
      }
    },
    "schemas": {
      "AnnotationLayer": {
        "properties": {
          "annotationType": {
            "description": "Type of annotation layer",
            "enum": [
              "FORMULA",
              "INTERVAL",
              "EVENT",
              "TIME_SERIES"
            ],
            "type": "string"
          },
          "color": {
            "description": "Layer color",
            "nullable": true,
            "type": "string"
          },
          "descriptionColumns": {
            "description": "Columns to use as the description. If none are provided, all will be shown.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "hideLine": {
            "description": "Should line be hidden. Only applies to line annotations",
            "nullable": true,
            "type": "boolean"
          },
          "intervalEndColumn": {
            "description": "Column containing end of interval. Only applies to interval layers",
            "nullable": true,
            "type": "string"
          },
          "name": {
            "description": "Name of layer",
            "type": "string"
          },
          "opacity": {
            "description": "Opacity of layer",
            "enum": [
              "",
              "opacityLow",
              "opacityMedium",
              "opacityHigh"
            ],
            "nullable": true,
            "type": "string"
          },
          "overrides": {
            "additionalProperties": {
              "nullable": true
            },
            "description": "which properties should be overridable",
            "nullable": true,
            "type": "object"
          },
          "show": {
            "description": "Should the layer be shown",
            "type": "boolean"
          },
          "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",
            "format": "float",
            "minimum": 0,
            "type": "number"
          }
        },
        "required": [
          "name",
          "show",
          "showMarkers",
          "value"
        ],
        "type": "object"
      },
      "AnnotationLayerRestApi.get": {
        "properties": {
          "descr": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "name": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "AnnotationLayerRestApi.get_list": {
        "properties": {
          "changed_by": {
            "$ref": "#/components/schemas/AnnotationLayerRestApi.get_list.User"
          },
          "changed_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "changed_on_delta_humanized": {
            "readOnly": true
          },
          "created_by": {
            "$ref": "#/components/schemas/AnnotationLayerRestApi.get_list.User1"
          },
          "created_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "descr": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "name": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "AnnotationLayerRestApi.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": {
            "format": "int32",
            "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": {
            "format": "int32",
            "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": {
            "format": "int32",
            "type": "integer"
          },
          "long_descr": {
            "nullable": true,
            "type": "string"
          },
          "short_descr": {
            "maxLength": 500,
            "nullable": true,
            "type": "string"
          },
          "start_dttm": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "AnnotationRestApi.get_list.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "first_name"
        ],
        "type": "object"
      },
      "AnnotationRestApi.get_list.User1": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "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"
      },
      "CacheInvalidationRequestSchema": {
        "properties": {
          "datasource_uids": {
            "description": "The uid of the dataset/datasource this new chart will use. A complete datasource identification needs `datasouce_uid` ",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "datasources": {
            "description": "A list of the data source and database names",
            "items": {
              "$ref": "#/components/schemas/Datasource"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "CacheRestApi.get": {
        "properties": {
          "id": {
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "CacheRestApi.get_list": {
        "properties": {
          "id": {
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "CacheRestApi.post": {
        "properties": {
          "id": {
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "CacheRestApi.put": {
        "properties": {
          "id": {
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "ChartCacheScreenshotResponseSchema": {
        "properties": {
          "cache_key": {
            "description": "The cache key",
            "type": "string"
          },
          "chart_url": {
            "description": "The url to render the chart",
            "type": "string"
          },
          "image_url": {
            "description": "The url to fetch the screenshot",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ChartDataAdhocMetricSchema": {
        "properties": {
          "aggregate": {
            "description": "Aggregation operator. Only required for simple expression types.",
            "enum": [
              "AVG",
              "COUNT",
              "COUNT_DISTINCT",
              "MAX",
              "MIN",
              "SUM"
            ],
            "type": "string"
          },
          "column": {
            "$ref": "#/components/schemas/ChartDataColumn"
          },
          "expressionType": {
            "description": "Simple or SQL metric",
            "enum": [
              "SIMPLE",
              "SQL"
            ],
            "example": "SQL",
            "type": "string"
          },
          "hasCustomLabel": {
            "description": "When false, the label will be automatically generated based on the aggregate expression. When true, a custom label has to be specified.",
            "example": true,
            "type": "boolean"
          },
          "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 unless hasCustomLabel is true, in which case label must be defined.",
            "example": "Weighted observations",
            "type": "string"
          },
          "optionName": {
            "description": "Unique identifier. Can be any string value, as long as all metrics have a unique identifier. If undefined, a random name will be generated.",
            "example": "metric_aec60732-fac0-4b17-b736-93f1a5c93e30",
            "type": "string"
          },
          "sqlExpression": {
            "description": "The metric as defined by a SQL aggregate expression. Only required for SQL expression type.",
            "example": "SUM(weight * observations) / SUM(weight)",
            "type": "string"
          },
          "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",
            "format": "int32",
            "type": "integer"
          },
          "type": {
            "description": "Datasource type",
            "enum": [
              "druid",
              "table"
            ],
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "ChartDataExtras": {
        "properties": {
          "druid_time_origin": {
            "description": "Starting point for time grain counting on legacy Druid datasources. Used to change e.g. Monday/Sunday first-day-of-week.",
            "nullable": true,
            "type": "string"
          },
          "having": {
            "description": "HAVING clause to be added to aggregate queries using AND operator.",
            "type": "string"
          },
          "having_druid": {
            "description": "HAVING filters to be added to legacy Druid datasource queries.",
            "items": {
              "$ref": "#/components/schemas/ChartDataFilter"
            },
            "type": "array"
          },
          "relative_end": {
            "description": "End time for relative time deltas. Default: `config[\"DEFAULT_RELATIVE_START_TIME\"]`",
            "enum": [
              "today",
              "now"
            ],
            "type": "string"
          },
          "relative_start": {
            "description": "Start time for relative time deltas. Default: `config[\"DEFAULT_RELATIVE_START_TIME\"]`",
            "enum": [
              "today",
              "now"
            ],
            "type": "string"
          },
          "time_grain_sqla": {
            "description": "To what level of granularity should the temporal column be aggregated. Supports [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Durations) durations.",
            "enum": [
              "PT1S",
              "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",
              "ILIKE",
              "IS NULL",
              "IS NOT NULL",
              "IN",
              "NOT IN",
              "REGEX",
              "IS TRUE",
              "IS FALSE"
            ],
            "example": "IN",
            "type": "string"
          },
          "val": {
            "description": "The value or values to compare against. Can be a string, integer, decimal or list, depending on the operator.",
            "example": [
              "China",
              "France",
              "Japan"
            ]
          }
        },
        "required": [
          "col",
          "op"
        ],
        "type": "object"
      },
      "ChartDataGeodeticParseOptionsSchema": {
        "properties": {
          "altitude": {
            "description": "Name of target column for decoded altitude. If omitted, altitude information in geodetic string is ignored.",
            "type": "string"
          },
          "geodetic": {
            "description": "Name of source column containing geodetic point strings",
            "type": "string"
          },
          "latitude": {
            "description": "Name of target column for decoded latitude",
            "type": "string"
          },
          "longitude": {
            "description": "Name of target column for decoded longitude",
            "type": "string"
          }
        },
        "required": [
          "geodetic",
          "latitude",
          "longitude"
        ],
        "type": "object"
      },
      "ChartDataGeohashDecodeOptionsSchema": {
        "properties": {
          "geohash": {
            "description": "Name of source column containing geohash string",
            "type": "string"
          },
          "latitude": {
            "description": "Name of target column for decoded latitude",
            "type": "string"
          },
          "longitude": {
            "description": "Name of target column for decoded longitude",
            "type": "string"
          }
        },
        "required": [
          "geohash",
          "latitude",
          "longitude"
        ],
        "type": "object"
      },
      "ChartDataGeohashEncodeOptionsSchema": {
        "properties": {
          "geohash": {
            "description": "Name of target column for encoded geohash string",
            "type": "string"
          },
          "latitude": {
            "description": "Name of source latitude column",
            "type": "string"
          },
          "longitude": {
            "description": "Name of source longitude column",
            "type": "string"
          }
        },
        "required": [
          "geohash",
          "latitude",
          "longitude"
        ],
        "type": "object"
      },
      "ChartDataPivotOptionsSchema": {
        "properties": {
          "aggregates": {
            "description": "The keys are the name of the aggregate column to be created, and the values specify the details of how to apply the aggregation. If an operator requires additional options, these can be passed here to be unpacked in the operator call. The following numpy operators are supported: average, argmin, argmax, cumsum, cumprod, max, mean, median, nansum, nanmin, nanmax, nanmean, nanmedian, min, percentile, prod, product, std, sum, var. Any options required by the operator can be passed to the `options` object.\n\nIn the example, a new column `first_quantile` is created based on values in the column `my_col` using the `percentile` operator with the `q=0.25` parameter.",
            "example": {
              "first_quantile": {
                "column": "my_col",
                "operator": "percentile",
                "options": {
                  "q": 0.25
                }
              }
            },
            "type": "object"
          },
          "column_fill_value": {
            "description": "Value to replace missing pivot columns names with.",
            "type": "string"
          },
          "columns": {
            "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",
              "contribution",
              "cum",
              "geodetic_parse",
              "geohash_decode",
              "geohash_encode",
              "pivot",
              "prophet",
              "rolling",
              "select",
              "sort",
              "diff",
              "compare",
              "resample",
              "flatten"
            ],
            "example": "aggregate",
            "type": "string"
          },
          "options": {
            "description": "Options specifying how to perform the operation. Please refer to the respective post processing operation option schemas. For example, `ChartDataPostProcessingOperationOptions` specifies the required options for the pivot operation.",
            "example": {
              "aggregates": {
                "age_mean": {
                  "column": "age",
                  "operator": "mean"
                },
                "age_q1": {
                  "column": "age",
                  "operator": "percentile",
                  "options": {
                    "q": 0.25
                  }
                }
              },
              "groupby": [
                "country",
                "gender"
              ]
            },
            "type": "object"
          }
        },
        "required": [
          "operation"
        ],
        "type": "object"
      },
      "ChartDataProphetOptionsSchema": {
        "properties": {
          "confidence_interval": {
            "description": "Width of predicted confidence interval",
            "example": 0.8,
            "format": "float",
            "maximum": 1,
            "minimum": 0,
            "type": "number"
          },
          "monthly_seasonality": {
            "description": "Should monthly seasonality be applied. An integer value will specify Fourier order of seasonality, `None` will automatically detect seasonality.",
            "example": false
          },
          "periods": {
            "example": 7,
            "format": "int32",
            "type": "integer"
          },
          "time_grain": {
            "description": "Time grain used to specify time period increments in prediction. Supports [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Durations) durations.",
            "enum": [
              "PT1S",
              "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": {
          "datasource": {
            "$ref": "#/components/schemas/ChartDataDatasource"
          },
          "force": {
            "description": "Should the queries be forced to load from the source. Default: `false`",
            "type": "boolean"
          },
          "form_data": {
            "nullable": true
          },
          "queries": {
            "items": {
              "$ref": "#/components/schemas/ChartDataQueryObject"
            },
            "type": "array"
          },
          "result_format": {},
          "result_type": {}
        },
        "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
          },
          "druid_time_origin": {
            "description": "Starting point for time grain counting on legacy Druid datasources. Used to change e.g. Monday/Sunday first-day-of-week. This field is deprecated and should be passed to `extras` as `druid_time_origin`.",
            "nullable": true,
            "type": "string"
          },
          "extras": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ChartDataExtras"
              }
            ],
            "description": "Extra parameters to add to the query.",
            "nullable": true
          },
          "filters": {
            "items": {
              "$ref": "#/components/schemas/ChartDataFilter"
            },
            "nullable": true,
            "type": "array"
          },
          "granularity": {
            "description": "Name of temporal column used for time filtering. For legacy Druid datasources this defines the time grain.",
            "nullable": true,
            "type": "string"
          },
          "granularity_sqla": {
            "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": {
            "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"
          },
          "having_filters": {
            "description": "HAVING filters to be added to legacy Druid datasource queries. This field is deprecated and should be passed to `extras` as `having_druid`.",
            "items": {
              "$ref": "#/components/schemas/ChartDataFilter"
            },
            "nullable": true,
            "type": "array"
          },
          "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": {
            "nullable": true
          },
          "row_limit": {
            "description": "Maximum row count (0=disabled). Default: `config[\"ROW_LIMIT\"]`",
            "format": "int32",
            "minimum": 0,
            "nullable": true,
            "type": "integer"
          },
          "row_offset": {
            "description": "Number of rows to skip. Default: `0`",
            "format": "int32",
            "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.",
            "format": "int32",
            "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`",
            "format": "int32",
            "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": {
            "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, default config timeout.",
            "format": "int32",
            "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": {
              "format": "int32",
              "type": "integer"
            },
            "type": "array"
          },
          "data": {
            "description": "A list with results",
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "error": {
            "description": "Error",
            "nullable": true,
            "type": "string"
          },
          "from_dttm": {
            "format": "int32",
            "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",
            "format": "int32",
            "type": "integer"
          },
          "stacktrace": {
            "nullable": true,
            "type": "string"
          },
          "status": {
            "description": "Status of the query",
            "enum": [
              "stopped",
              "failed",
              "pending",
              "running",
              "scheduled",
              "success",
              "timed_out"
            ],
            "type": "string"
          },
          "to_dttm": {
            "format": "int32",
            "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": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "certification_details": {
            "nullable": true,
            "type": "string"
          },
          "certified_by": {
            "nullable": true,
            "type": "string"
          },
          "dashboards": {
            "$ref": "#/components/schemas/ChartDataRestApi.get.Dashboard"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "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"
          },
          "viz_type": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ChartDataRestApi.get.Dashboard": {
        "properties": {
          "dashboard_title": {
            "maxLength": 500,
            "nullable": true,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "json_metadata": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ChartDataRestApi.get.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          },
          "username": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name",
          "username"
        ],
        "type": "object"
      },
      "ChartDataRestApi.get_list": {
        "properties": {
          "cache_timeout": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "certification_details": {
            "nullable": true,
            "type": "string"
          },
          "certified_by": {
            "nullable": true,
            "type": "string"
          },
          "changed_by": {
            "$ref": "#/components/schemas/ChartDataRestApi.get_list.User1"
          },
          "changed_by_name": {
            "readOnly": true
          },
          "changed_by_url": {
            "readOnly": true
          },
          "changed_on_delta_humanized": {
            "readOnly": true
          },
          "changed_on_utc": {
            "readOnly": true
          },
          "created_by": {
            "$ref": "#/components/schemas/ChartDataRestApi.get_list.User2"
          },
          "datasource_id": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "datasource_name_text": {
            "readOnly": true
          },
          "datasource_type": {
            "maxLength": 200,
            "nullable": true,
            "type": "string"
          },
          "datasource_url": {
            "readOnly": true
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "description_markeddown": {
            "readOnly": true
          },
          "edit_url": {
            "readOnly": true
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "last_saved_at": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "last_saved_by": {
            "$ref": "#/components/schemas/ChartDataRestApi.get_list.User"
          },
          "owners": {
            "$ref": "#/components/schemas/ChartDataRestApi.get_list.User3"
          },
          "params": {
            "nullable": true,
            "type": "string"
          },
          "slice_name": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          },
          "table": {
            "$ref": "#/components/schemas/ChartDataRestApi.get_list.SqlaTable"
          },
          "thumbnail_url": {
            "readOnly": true
          },
          "url": {
            "readOnly": true
          },
          "viz_type": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          }
        },
        "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.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "ChartDataRestApi.get_list.User1": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "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": {
            "format": "int32",
            "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": {
            "format": "int32",
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          },
          "username": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name",
          "username"
        ],
        "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.",
            "format": "int32",
            "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.",
              "format": "int32",
              "type": "integer"
            },
            "type": "array"
          },
          "datasource_id": {
            "description": "The id of the dataset/datasource this new chart will use. A complete datasource identification needs `datasouce_id` and `datasource_type`.",
            "format": "int32",
            "type": "integer"
          },
          "datasource_name": {
            "description": "The datasource name.",
            "nullable": true,
            "type": "string"
          },
          "datasource_type": {
            "description": "The type of dataset/datasource identified on `datasource_id`.",
            "enum": [
              "druid",
              "table",
              "view"
            ],
            "type": "string"
          },
          "description": {
            "description": "A description of the chart propose.",
            "nullable": true,
            "type": "string"
          },
          "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.",
              "format": "int32",
              "type": "integer"
            },
            "type": "array"
          },
          "params": {
            "description": "Parameters are generated dynamically when clicking the save or overwrite button in the explore view. This JSON object for power users who may want to alter specific parameters.",
            "nullable": true,
            "type": "string"
          },
          "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 modfiedstate.",
            "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",
              "line_multi",
              "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.",
            "format": "int32",
            "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.",
              "format": "int32",
              "type": "integer"
            },
            "type": "array"
          },
          "datasource_id": {
            "description": "The id of the dataset/datasource this new chart will use. A complete datasource identification needs `datasouce_id` and `datasource_type`.",
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "datasource_type": {
            "description": "The type of dataset/datasource identified on `datasource_id`.",
            "enum": [
              "druid",
              "table",
              "view"
            ],
            "nullable": true,
            "type": "string"
          },
          "description": {
            "description": "A description of the chart propose.",
            "nullable": true,
            "type": "string"
          },
          "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.",
              "format": "int32",
              "type": "integer"
            },
            "type": "array"
          },
          "params": {
            "description": "Parameters are generated dynamically when clicking the save or overwrite button in the explore view. This JSON object for power users who may want to alter specific parameters.",
            "nullable": true,
            "type": "string"
          },
          "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 modfiedstate.",
            "nullable": true,
            "type": "boolean"
          },
          "slice_name": {
            "description": "The name of the chart.",
            "maxLength": 250,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "viz_type": {
            "description": "The type of chart visualization used.",
            "example": [
              "bar",
              "line_multi",
              "area",
              "table"
            ],
            "maxLength": 250,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ChartDataRollingOptionsSchema": {
        "properties": {
          "center": {
            "description": "Should the label be at the center of the window. Default: `false`",
            "example": false,
            "type": "boolean"
          },
          "min_periods": {
            "description": "The minimum amount of periods required for a row to be included in the result set.",
            "example": 7,
            "format": "int32",
            "type": "integer"
          },
          "rolling_type": {
            "description": "Type of rolling window. Any numpy function will work.",
            "enum": [
              "average",
              "argmin",
              "argmax",
              "cumsum",
              "cumprod",
              "max",
              "mean",
              "median",
              "nansum",
              "nanmin",
              "nanmax",
              "nanmean",
              "nanmedian",
              "nanpercentile",
              "min",
              "percentile",
              "prod",
              "product",
              "std",
              "sum",
              "var"
            ],
            "example": "percentile",
            "type": "string"
          },
          "rolling_type_options": {
            "example": {},
            "type": "object"
          },
          "win_type": {
            "description": "Type of window function. See [SciPy window functions](https://docs.scipy.org/doc/scipy/reference/signal.windows.html#module-scipy.signal.windows) for more details. Some window functions require passing additional parameters to `rolling_type_options`. For instance, to use `gaussian`, the parameter `std` needs to be provided.",
            "enum": [
              "boxcar",
              "triang",
              "blackman",
              "hamming",
              "bartlett",
              "parzen",
              "bohman",
              "blackmanharris",
              "nuttall",
              "barthann",
              "kaiser",
              "gaussian",
              "general_gaussian",
              "slepian",
              "exponential"
            ],
            "type": "string"
          },
          "window": {
            "description": "Size of the rolling window in days.",
            "example": 7,
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "rolling_type",
          "window"
        ],
        "type": "object"
      },
      "ChartDataSelectOptionsSchema": {
        "properties": {
          "columns": {
            "description": "Columns which to select from the input data, in the desired order. If columns are renamed, the original column name should be referenced here.",
            "example": [
              "country",
              "gender",
              "age"
            ],
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "exclude": {
            "description": "Columns to exclude from selection.",
            "example": [
              "my_temp_column"
            ],
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "rename": {
            "description": "columns which to rename, mapping source column to target column. For instance, `{'y': 'y2'}` will rename the column `y` to `y2`.",
            "example": [
              {
                "age": "average_age"
              }
            ],
            "items": {
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ChartDataSortOptionsSchema": {
        "properties": {
          "aggregates": {
            "description": "The keys are the name of the aggregate column to be created, and the values specify the details of how to apply the aggregation. If an operator requires additional options, these can be passed here to be unpacked in the operator call. The following numpy operators are supported: average, argmin, argmax, cumsum, cumprod, max, mean, median, nansum, nanmin, nanmax, nanmean, nanmedian, min, percentile, prod, product, std, sum, var. Any options required by the operator can be passed to the `options` object.\n\nIn the example, a new column `first_quantile` is created based on values in the column `my_col` using the `percentile` operator with the `q=0.25` parameter.",
            "example": {
              "first_quantile": {
                "column": "my_col",
                "operator": "percentile",
                "options": {
                  "q": 0.25
                }
              }
            },
            "type": "object"
          },
          "columns": {
            "description": "columns by by which to sort. The key specifies the column name, value specifies if sorting in ascending order.",
            "example": {
              "country": true,
              "gender": false
            },
            "type": "object"
          }
        },
        "required": [
          "columns"
        ],
        "type": "object"
      },
      "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.",
            "format": "int32",
            "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.",
            "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"
          },
          "modified": {
            "type": "string"
          },
          "slice_id": {
            "format": "int32",
            "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",
            "format": "int32",
            "type": "integer"
          },
          "value": {
            "description": "The FaveStar value",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "ChartGetDatasourceObjectDataResponse": {
        "properties": {
          "datasource_id": {
            "description": "The datasource identifier",
            "format": "int32",
            "type": "integer"
          },
          "datasource_type": {
            "description": "The datasource type",
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "ChartGetDatasourceObjectResponse": {
        "properties": {
          "label": {
            "description": "The name of the datasource",
            "type": "string"
          },
          "value": {
            "$ref": "#/components/schemas/ChartGetDatasourceObjectDataResponse"
          }
        },
        "type": "object"
      },
      "ChartGetDatasourceResponseSchema": {
        "properties": {
          "count": {
            "description": "The total number of datasources",
            "format": "int32",
            "type": "integer"
          },
          "result": {
            "$ref": "#/components/schemas/ChartGetDatasourceObjectResponse"
          }
        },
        "type": "object"
      },
      "ChartRestApi.get": {
        "properties": {
          "cache_timeout": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "certification_details": {
            "nullable": true,
            "type": "string"
          },
          "certified_by": {
            "nullable": true,
            "type": "string"
          },
          "dashboards": {
            "$ref": "#/components/schemas/ChartRestApi.get.Dashboard"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "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"
          },
          "viz_type": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ChartRestApi.get.Dashboard": {
        "properties": {
          "dashboard_title": {
            "maxLength": 500,
            "nullable": true,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "json_metadata": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ChartRestApi.get.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          },
          "username": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name",
          "username"
        ],
        "type": "object"
      },
      "ChartRestApi.get_list": {
        "properties": {
          "cache_timeout": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "certification_details": {
            "nullable": true,
            "type": "string"
          },
          "certified_by": {
            "nullable": true,
            "type": "string"
          },
          "changed_by": {
            "$ref": "#/components/schemas/ChartRestApi.get_list.User1"
          },
          "changed_by_name": {
            "readOnly": true
          },
          "changed_by_url": {
            "readOnly": true
          },
          "changed_on_delta_humanized": {
            "readOnly": true
          },
          "changed_on_utc": {
            "readOnly": true
          },
          "created_by": {
            "$ref": "#/components/schemas/ChartRestApi.get_list.User2"
          },
          "datasource_id": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "datasource_name_text": {
            "readOnly": true
          },
          "datasource_type": {
            "maxLength": 200,
            "nullable": true,
            "type": "string"
          },
          "datasource_url": {
            "readOnly": true
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "description_markeddown": {
            "readOnly": true
          },
          "edit_url": {
            "readOnly": true
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "last_saved_at": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "last_saved_by": {
            "$ref": "#/components/schemas/ChartRestApi.get_list.User"
          },
          "owners": {
            "$ref": "#/components/schemas/ChartRestApi.get_list.User3"
          },
          "params": {
            "nullable": true,
            "type": "string"
          },
          "slice_name": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          },
          "table": {
            "$ref": "#/components/schemas/ChartRestApi.get_list.SqlaTable"
          },
          "thumbnail_url": {
            "readOnly": true
          },
          "url": {
            "readOnly": true
          },
          "viz_type": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          }
        },
        "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.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "ChartRestApi.get_list.User1": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "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": {
            "format": "int32",
            "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": {
            "format": "int32",
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          },
          "username": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name",
          "username"
        ],
        "type": "object"
      },
      "ChartRestApi.post": {
        "properties": {
          "cache_timeout": {
            "description": "Duration (in seconds) of the caching timeout for this chart. Note this defaults to the datasource/table timeout if undefined.",
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "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.",
              "format": "int32",
              "type": "integer"
            },
            "type": "array"
          },
          "datasource_id": {
            "description": "The id of the dataset/datasource this new chart will use. A complete datasource identification needs `datasouce_id` and `datasource_type`.",
            "format": "int32",
            "type": "integer"
          },
          "datasource_name": {
            "description": "The datasource name.",
            "nullable": true,
            "type": "string"
          },
          "datasource_type": {
            "description": "The type of dataset/datasource identified on `datasource_id`.",
            "enum": [
              "druid",
              "table",
              "view"
            ],
            "type": "string"
          },
          "description": {
            "description": "A description of the chart propose.",
            "nullable": true,
            "type": "string"
          },
          "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.",
              "format": "int32",
              "type": "integer"
            },
            "type": "array"
          },
          "params": {
            "description": "Parameters are generated dynamically when clicking the save or overwrite button in the explore view. This JSON object for power users who may want to alter specific parameters.",
            "nullable": true,
            "type": "string"
          },
          "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 modfiedstate.",
            "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",
              "line_multi",
              "area",
              "table"
            ],
            "maxLength": 250,
            "minLength": 0,
            "type": "string"
          }
        },
        "required": [
          "datasource_id",
          "datasource_type",
          "slice_name"
        ],
        "type": "object"
      },
      "ChartRestApi.put": {
        "properties": {
          "cache_timeout": {
            "description": "Duration (in seconds) of the caching timeout for this chart. Note this defaults to the datasource/table timeout if undefined.",
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "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.",
              "format": "int32",
              "type": "integer"
            },
            "type": "array"
          },
          "datasource_id": {
            "description": "The id of the dataset/datasource this new chart will use. A complete datasource identification needs `datasouce_id` and `datasource_type`.",
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "datasource_type": {
            "description": "The type of dataset/datasource identified on `datasource_id`.",
            "enum": [
              "druid",
              "table",
              "view"
            ],
            "nullable": true,
            "type": "string"
          },
          "description": {
            "description": "A description of the chart propose.",
            "nullable": true,
            "type": "string"
          },
          "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.",
              "format": "int32",
              "type": "integer"
            },
            "type": "array"
          },
          "params": {
            "description": "Parameters are generated dynamically when clicking the save or overwrite button in the explore view. This JSON object for power users who may want to alter specific parameters.",
            "nullable": true,
            "type": "string"
          },
          "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 modfiedstate.",
            "nullable": true,
            "type": "boolean"
          },
          "slice_name": {
            "description": "The name of the chart.",
            "maxLength": 250,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "viz_type": {
            "description": "The type of chart visualization used.",
            "example": [
              "bar",
              "line_multi",
              "area",
              "table"
            ],
            "maxLength": 250,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "CssTemplateRestApi.get": {
        "properties": {
          "created_by": {
            "$ref": "#/components/schemas/CssTemplateRestApi.get.User"
          },
          "css": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "template_name": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "CssTemplateRestApi.get.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "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": {
            "format": "int32",
            "type": "integer"
          },
          "template_name": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "CssTemplateRestApi.get_list.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "CssTemplateRestApi.get_list.User1": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "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"
      },
      "DashboardDatasetSchema": {
        "properties": {
          "cache_timeout": {
            "format": "int32",
            "type": "integer"
          },
          "column_formats": {
            "type": "object"
          },
          "column_types": {
            "items": {
              "format": "int32",
              "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": {
            "format": "int32",
            "type": "integer"
          },
          "is_sqllab_view": {
            "type": "boolean"
          },
          "main_dttm_col": {
            "type": "string"
          },
          "metrics": {
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "offset": {
            "format": "int32",
            "type": "integer"
          },
          "order_by_choices": {
            "items": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": "array"
          },
          "owners": {
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "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_by_url": {
            "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"
          },
          "css": {
            "description": "Override CSS for the dashboard.",
            "type": "string"
          },
          "dashboard_title": {
            "description": "A title for the dashboard.",
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "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"
          },
          "thumbnail_url": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "DashboardPermalinkPostSchema": {
        "properties": {
          "filterState": {
            "description": "Native filter state",
            "type": "object"
          },
          "hash": {
            "description": "Optional anchor link",
            "nullable": true,
            "type": "string"
          },
          "urlParams": {
            "description": "URL Parameters",
            "items": {
              "description": "URL Parameter key-value pair",
              "nullable": true
            },
            "nullable": true,
            "type": "array"
          }
        },
        "required": [
          "filterState"
        ],
        "type": "object"
      },
      "DashboardRestApi.get": {
        "properties": {
          "id": {
            "format": "int32",
            "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_by_url": {
            "readOnly": true
          },
          "changed_on_delta_humanized": {
            "readOnly": true
          },
          "changed_on_utc": {
            "readOnly": true
          },
          "created_by": {
            "$ref": "#/components/schemas/DashboardRestApi.get_list.User1"
          },
          "css": {
            "nullable": true,
            "type": "string"
          },
          "dashboard_title": {
            "maxLength": 500,
            "nullable": true,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "json_metadata": {
            "nullable": true,
            "type": "string"
          },
          "owners": {
            "$ref": "#/components/schemas/DashboardRestApi.get_list.User2"
          },
          "advanced_data_type": {
            "maxLength": 255,
            "minLength": 1,
            "nullable": true,
            "type": "string"
          },
          "position_json": {
            "nullable": true,
            "type": "string"
          },
          "published": {
            "nullable": true,
            "type": "boolean"
          },
          "roles": {
            "$ref": "#/components/schemas/DashboardRestApi.get_list.Role"
          },
          "slug": {
            "maxLength": 255,
            "nullable": true,
            "type": "string"
          },
          "status": {
            "readOnly": true
          },
          "thumbnail_url": {
            "readOnly": true
          },
          "url": {
            "readOnly": true
          }
        },
        "type": "object"
      },
      "DashboardRestApi.get_list.Role": {
        "properties": {
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "DashboardRestApi.get_list.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          },
          "username": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name",
          "username"
        ],
        "type": "object"
      },
      "DashboardRestApi.get_list.User1": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "DashboardRestApi.get_list.User2": {
        "properties": {
          "email": {
            "maxLength": 64,
            "type": "string"
          },
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          },
          "username": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "email",
          "first_name",
          "last_name",
          "username"
        ],
        "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": {
            "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.",
              "format": "int32",
              "type": "integer"
            },
            "type": "array"
          },
          "position_json": {
            "description": "This json object describes the positioning of the widgets in the dashboard. It is dynamically generated when adjusting the widgets size and positions by using drag & drop in the dashboard view",
            "type": "string"
          },
          "published": {
            "description": "Determines whether or not this dashboard is visible in the list of all dashboards.",
            "type": "boolean"
          },
          "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.",
              "format": "int32",
              "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.",
              "format": "int32",
              "nullable": true,
              "type": "integer"
            },
            "type": "array"
          },
          "position_json": {
            "description": "This json object describes the positioning of the widgets in the dashboard. It is dynamically generated when adjusting the widgets size and positions by using drag & drop in the dashboard view",
            "nullable": true,
            "type": "string"
          },
          "published": {
            "description": "Determines whether or not this dashboard is visible in the list of all dashboards.",
            "nullable": true,
            "type": "boolean"
          },
          "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.",
              "format": "int32",
              "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"
          }
        },
        "type": "object"
      },
      "Database": {
        "properties": {
          "allow_multi_schema_metadata_fetch": {
            "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"
          },
          "explore_database_id": {
            "format": "int32",
            "type": "integer"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "DatabaseFunctionNamesResponse": {
        "properties": {
          "function_names": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "DatabaseRelatedChart": {
        "properties": {
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "slice_name": {
            "type": "string"
          },
          "viz_type": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "DatabaseRelatedCharts": {
        "properties": {
          "count": {
            "description": "Chart count",
            "format": "int32",
            "type": "integer"
          },
          "result": {
            "description": "A list of dashboards",
            "items": {
              "$ref": "#/components/schemas/DatabaseRelatedChart"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "DatabaseRelatedDashboard": {
        "properties": {
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "json_metadata": {
            "type": "object"
          },
          "slug": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "DatabaseRelatedDashboards": {
        "properties": {
          "count": {
            "description": "Dashboard count",
            "format": "int32",
            "type": "integer"
          },
          "result": {
            "description": "A list of dashboards",
            "items": {
              "$ref": "#/components/schemas/DatabaseRelatedDashboard"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "DatabaseRelatedObjectsResponse": {
        "properties": {
          "charts": {
            "$ref": "#/components/schemas/DatabaseRelatedCharts"
          },
          "dashboards": {
            "$ref": "#/components/schemas/DatabaseRelatedDashboards"
          }
        },
        "type": "object"
      },
      "DatabaseRestApi.get": {
        "properties": {
          "allow_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_schema_metadata_fetch": {
            "nullable": true,
            "type": "boolean"
          },
          "allow_run_async": {
            "nullable": true,
            "type": "boolean"
          },
          "backend": {
            "readOnly": true
          },
          "cache_timeout": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "configuration_method": {
            "maxLength": 255,
            "nullable": true,
            "type": "string"
          },
          "database_name": {
            "maxLength": 250,
            "type": "string"
          },
          "encrypted_extra": {
            "nullable": true,
            "type": "string"
          },
          "expose_in_sqllab": {
            "nullable": true,
            "type": "boolean"
          },
          "extra": {
            "nullable": true,
            "type": "string"
          },
          "force_ctas_schema": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "impersonate_user": {
            "nullable": true,
            "type": "boolean"
          },
          "parameters": {
            "readOnly": true
          },
          "parameters_schema": {
            "readOnly": true
          },
          "server_cert": {
            "nullable": true,
            "type": "string"
          },
          "sqlalchemy_uri": {
            "maxLength": 1024,
            "type": "string"
          }
        },
        "required": [
          "database_name",
          "sqlalchemy_uri"
        ],
        "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_schema_metadata_fetch": {
            "nullable": true,
            "type": "boolean"
          },
          "allow_run_async": {
            "nullable": true,
            "type": "boolean"
          },
          "allows_cost_estimate": {
            "readOnly": true
          },
          "allows_subquery": {
            "readOnly": true
          },
          "allows_virtual_table_explore": {
            "readOnly": true
          },
          "backend": {
            "readOnly": true
          },
          "changed_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "changed_on_delta_humanized": {
            "readOnly": true
          },
          "created_by": {
            "$ref": "#/components/schemas/DatabaseRestApi.get_list.User"
          },
          "database_name": {
            "maxLength": 250,
            "type": "string"
          },
          "disable_data_preview": {
            "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": {
            "format": "int32",
            "type": "integer"
          }
        },
        "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.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_multi_schema_metadata_fetch": {
            "description": "Allow SQL Lab to fetch a list of all tables and all views across all database schemas. For large data warehouse with thousands of tables, this can be expensive and put strain on the system.",
            "type": "boolean"
          },
          "allow_run_async": {
            "description": "Operate the database in asynchronous mode, meaning  that the queries are executed on remote workers as opposed to on the web server itself. This assumes that you have a Celery worker setup as well as a results backend. Refer to the installation docs for more information.",
            "type": "boolean"
          },
          "cache_timeout": {
            "description": "Duration (in seconds) of the caching timeout for charts of this database. A timeout of 0 indicates that the cache never expires. Note this defaults to the global timeout if undefined.",
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "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."
          },
          "database_name": {
            "description": "A database name to identify this connection.",
            "maxLength": 250,
            "minLength": 1,
            "type": "string"
          },
          "encrypted_extra": {
            "description": "<p>JSON string containing additional connection configuration.<br>This is used to provide connection information for systems like Hive, Presto, and BigQuery, which do not conform to the username:password syntax normally used by SQLAlchemy.</p>",
            "nullable": true,
            "type": "string"
          },
          "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\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\">sqlalchemy.MetaData</a> call.<br>2. The <code>metadata_cache_timeout</code> is a cache timeout setting in seconds for metadata fetch of this database. Specify it as <strong>\"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}</strong>. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.<br>3. The <code>schemas_allowed_for_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.</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"
          },
          "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\">SqlAlchemy docs</a> for more information on how to structure your URI.</p>",
            "maxLength": 1024,
            "minLength": 1,
            "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_multi_schema_metadata_fetch": {
            "description": "Allow SQL Lab to fetch a list of all tables and all views across all database schemas. For large data warehouse with thousands of tables, this can be expensive and put strain on the system.",
            "type": "boolean"
          },
          "allow_run_async": {
            "description": "Operate the database in asynchronous mode, meaning  that the queries are executed on remote workers as opposed to on the web server itself. This assumes that you have a Celery worker setup as well as a results backend. Refer to the installation docs for more information.",
            "type": "boolean"
          },
          "cache_timeout": {
            "description": "Duration (in seconds) of the caching timeout for charts of this database. A timeout of 0 indicates that the cache never expires. Note this defaults to the global timeout if undefined.",
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "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."
          },
          "database_name": {
            "description": "A database name to identify this connection.",
            "maxLength": 250,
            "minLength": 1,
            "nullable": true,
            "type": "string"
          },
          "encrypted_extra": {
            "description": "<p>JSON string containing additional connection configuration.<br>This is used to provide connection information for systems like Hive, Presto, and BigQuery, which do not conform to the username:password syntax normally used by SQLAlchemy.</p>",
            "nullable": true,
            "type": "string"
          },
          "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\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\">sqlalchemy.MetaData</a> call.<br>2. The <code>metadata_cache_timeout</code> is a cache timeout setting in seconds for metadata fetch of this database. Specify it as <strong>\"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}</strong>. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.<br>3. The <code>schemas_allowed_for_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.</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"
          },
          "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\">SqlAlchemy docs</a> for more information on how to structure your URI.</p>",
            "maxLength": 1024,
            "minLength": 0,
            "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."
          },
          "database_name": {
            "description": "A database name to identify this connection.",
            "maxLength": 250,
            "minLength": 1,
            "nullable": true,
            "type": "string"
          },
          "encrypted_extra": {
            "description": "<p>JSON string containing additional connection configuration.<br>This is used to provide connection information for systems like Hive, Presto, and BigQuery, which do not conform to the username:password syntax normally used by SQLAlchemy.</p>",
            "nullable": true,
            "type": "string"
          },
          "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\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\">sqlalchemy.MetaData</a> call.<br>2. The <code>metadata_cache_timeout</code> is a cache timeout setting in seconds for metadata fetch of this database. Specify it as <strong>\"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}</strong>. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.<br>3. The <code>schemas_allowed_for_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.</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"
          },
          "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\">SqlAlchemy docs</a> for more information on how to structure your URI.</p>",
            "maxLength": 1024,
            "minLength": 1,
            "type": "string"
          }
        },
        "type": "object"
      },
      "DatabaseValidateParametersSchema": {
        "properties": {
          "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."
          },
          "database_name": {
            "description": "A database name to identify this connection.",
            "maxLength": 250,
            "minLength": 1,
            "nullable": true,
            "type": "string"
          },
          "encrypted_extra": {
            "description": "<p>JSON string containing additional connection configuration.<br>This is used to provide connection information for systems like Hive, Presto, and BigQuery, which do not conform to the username:password syntax normally used by SQLAlchemy.</p>",
            "nullable": true,
            "type": "string"
          },
          "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\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\">sqlalchemy.MetaData</a> call.<br>2. The <code>metadata_cache_timeout</code> is a cache timeout setting in seconds for metadata fetch of this database. Specify it as <strong>\"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}</strong>. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.<br>3. The <code>schemas_allowed_for_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.</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"
          },
          "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"
      },
      "DatasetColumnsPut": {
        "properties": {
          "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": {
            "format": "int32",
            "type": "integer"
          },
          "is_active": {
            "type": "boolean"
          },
          "is_dttm": {
            "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": {
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "DatasetColumnsRestApi.get_list": {
        "properties": {
          "id": {
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "DatasetColumnsRestApi.post": {
        "properties": {
          "id": {
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "DatasetColumnsRestApi.put": {
        "properties": {
          "id": {
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "DatasetMetricRestApi.get": {
        "properties": {
          "id": {
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "DatasetMetricRestApi.get_list": {
        "properties": {
          "id": {
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "DatasetMetricRestApi.post": {
        "properties": {
          "id": {
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "DatasetMetricRestApi.put": {
        "properties": {
          "id": {
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "DatasetMetricsPut": {
        "properties": {
          "d3format": {
            "maxLength": 128,
            "minLength": 1,
            "nullable": true,
            "type": "string"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "expression": {
            "type": "string"
          },
          "extra": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "metric_name": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string"
          },
          "metric_type": {
            "maxLength": 32,
            "minLength": 1,
            "nullable": true,
            "type": "string"
          },
          "advanced_data_type": {
            "maxLength": 255,
            "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": {
            "format": "int32",
            "type": "integer"
          },
          "slice_name": {
            "type": "string"
          },
          "viz_type": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "DatasetRelatedCharts": {
        "properties": {
          "count": {
            "description": "Chart count",
            "format": "int32",
            "type": "integer"
          },
          "result": {
            "description": "A list of dashboards",
            "items": {
              "$ref": "#/components/schemas/DatasetRelatedChart"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "DatasetRelatedDashboard": {
        "properties": {
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "json_metadata": {
            "type": "object"
          },
          "slug": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "DatasetRelatedDashboards": {
        "properties": {
          "count": {
            "description": "Dashboard count",
            "format": "int32",
            "type": "integer"
          },
          "result": {
            "description": "A list of dashboards",
            "items": {
              "$ref": "#/components/schemas/DatasetRelatedDashboard"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "DatasetRelatedObjectsResponse": {
        "properties": {
          "charts": {
            "$ref": "#/components/schemas/DatasetRelatedCharts"
          },
          "dashboards": {
            "$ref": "#/components/schemas/DatasetRelatedDashboards"
          }
        },
        "type": "object"
      },
      "DatasetRestApi.get": {
        "properties": {
          "cache_timeout": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "columns": {
            "$ref": "#/components/schemas/DatasetRestApi.get.TableColumn"
          },
          "database": {
            "$ref": "#/components/schemas/DatasetRestApi.get.Database"
          },
          "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"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "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"
          },
          "offset": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "owners": {
            "$ref": "#/components/schemas/DatasetRestApi.get.User"
          },
          "schema": {
            "maxLength": 255,
            "nullable": true,
            "type": "string"
          },
          "sql": {
            "nullable": true,
            "type": "string"
          },
          "table_name": {
            "maxLength": 250,
            "type": "string"
          },
          "template_params": {
            "nullable": true,
            "type": "string"
          },
          "url": {
            "readOnly": true
          }
        },
        "required": [
          "columns",
          "database",
          "metrics",
          "table_name"
        ],
        "type": "object"
      },
      "DatasetRestApi.get.Database": {
        "properties": {
          "backend": {
            "readOnly": true
          },
          "database_name": {
            "maxLength": 250,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "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"
          },
          "d3format": {
            "maxLength": 128,
            "nullable": true,
            "type": "string"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "expression": {
            "type": "string"
          },
          "extra": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "metric_name": {
            "maxLength": 255,
            "type": "string"
          },
          "metric_type": {
            "maxLength": 32,
            "nullable": true,
            "type": "string"
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "verbose_name": {
            "maxLength": 1024,
            "nullable": true,
            "type": "string"
          },
          "warning_text": {
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "expression",
          "metric_name"
        ],
        "type": "object"
      },
      "DatasetRestApi.get.TableColumn": {
        "properties": {
          "changed_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "column_name": {
            "maxLength": 255,
            "type": "string"
          },
          "created_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "expression": {
            "nullable": true,
            "type": "string"
          },
          "extra": {
            "nullable": true,
            "type": "string"
          },
          "filterable": {
            "nullable": true,
            "type": "boolean"
          },
          "groupby": {
            "nullable": true,
            "type": "boolean"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "is_active": {
            "nullable": true,
            "type": "boolean"
          },
          "is_dttm": {
            "nullable": true,
            "type": "boolean"
          },
          "python_date_format": {
            "maxLength": 255,
            "nullable": true,
            "type": "string"
          },
          "type": {
            "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": {
            "format": "int32",
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          },
          "username": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name",
          "username"
        ],
        "type": "object"
      },
      "DatasetRestApi.get_list": {
        "properties": {
          "changed_by": {
            "$ref": "#/components/schemas/DatasetRestApi.get_list.User"
          },
          "changed_by_name": {
            "readOnly": true
          },
          "changed_by_url": {
            "readOnly": true
          },
          "changed_on_delta_humanized": {
            "readOnly": true
          },
          "changed_on_utc": {
            "readOnly": true
          },
          "database": {
            "$ref": "#/components/schemas/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": {
            "format": "int32",
            "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"
          }
        },
        "required": [
          "database",
          "table_name"
        ],
        "type": "object"
      },
      "DatasetRestApi.get_list.Database": {
        "properties": {
          "database_name": {
            "maxLength": 250,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "database_name"
        ],
        "type": "object"
      },
      "DatasetRestApi.get_list.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "username": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "username"
        ],
        "type": "object"
      },
      "DatasetRestApi.get_list.User1": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          },
          "username": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name",
          "username"
        ],
        "type": "object"
      },
      "DatasetRestApi.post": {
        "properties": {
          "database": {
            "format": "int32",
            "type": "integer"
          },
          "external_url": {
            "nullable": true,
            "type": "string"
          },
          "is_managed_externally": {
            "nullable": true,
            "type": "boolean"
          },
          "owners": {
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "type": "array"
          },
          "schema": {
            "maxLength": 250,
            "minLength": 0,
            "type": "string"
          },
          "table_name": {
            "maxLength": 250,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "database",
          "table_name"
        ],
        "type": "object"
      },
      "DatasetRestApi.put": {
        "properties": {
          "cache_timeout": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "columns": {
            "items": {
              "$ref": "#/components/schemas/DatasetColumnsPut"
            },
            "type": "array"
          },
          "database_id": {
            "format": "int32",
            "type": "integer"
          },
          "default_endpoint": {
            "nullable": true,
            "type": "string"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "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"
          },
          "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"
          },
          "offset": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "owners": {
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "type": "array"
          },
          "schema": {
            "maxLength": 255,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "sql": {
            "nullable": true,
            "type": "string"
          },
          "table_name": {
            "maxLength": 250,
            "minLength": 1,
            "nullable": true,
            "type": "string"
          },
          "template_params": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "Datasource": {
        "properties": {
          "database_name": {
            "description": "Datasource name",
            "type": "string"
          },
          "datasource_name": {
            "description": "The datasource name.",
            "type": "string"
          },
          "datasource_type": {
            "description": "The type of dataset/datasource identified on `datasource_id`.",
            "enum": [
              "druid",
              "table",
              "view"
            ],
            "type": "string"
          },
          "schema": {
            "description": "Datasource schema",
            "type": "string"
          }
        },
        "required": [
          "datasource_type"
        ],
        "type": "object"
      },
      "DistincResponseSchema": {
        "properties": {
          "count": {
            "description": "The total number of distinct values",
            "format": "int32",
            "type": "integer"
          },
          "result": {
            "items": {
              "$ref": "#/components/schemas/DistinctResultResponse"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "DistinctResultResponse": {
        "properties": {
          "text": {
            "description": "The distinct item",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ExplorePermalinkPostSchema": {
        "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"
      },
      "FilterSetRestApi.get": {
        "properties": {
          "dashboard_id": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "name": {
            "maxLength": 500,
            "type": "string"
          },
          "owner_id": {
            "format": "int32",
            "type": "integer"
          },
          "owner_type": {
            "maxLength": 255,
            "type": "string"
          },
          "params": {
            "readOnly": true
          }
        },
        "required": [
          "name",
          "owner_id",
          "owner_type"
        ],
        "type": "object"
      },
      "FilterSetRestApi.get_list": {
        "properties": {
          "changed_by_fk": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "changed_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "created_by_fk": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "created_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "dashboard_id": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "name": {
            "maxLength": 500,
            "type": "string"
          },
          "owner_id": {
            "format": "int32",
            "type": "integer"
          },
          "owner_type": {
            "maxLength": 255,
            "type": "string"
          },
          "params": {
            "readOnly": true
          }
        },
        "required": [
          "name",
          "owner_id",
          "owner_type"
        ],
        "type": "object"
      },
      "FilterSetRestApi.post": {
        "properties": {
          "description": {
            "maxLength": 1000,
            "minLength": 1,
            "nullable": true,
            "type": "string"
          },
          "json_metadata": {
            "type": "string"
          },
          "name": {
            "maxLength": 500,
            "minLength": 0,
            "type": "string"
          },
          "owner_id": {
            "format": "int32",
            "type": "integer"
          },
          "owner_type": {
            "enum": [
              "User",
              "Dashboard"
            ],
            "type": "string"
          }
        },
        "required": [
          "json_metadata",
          "name",
          "owner_type"
        ],
        "type": "object"
      },
      "FilterSetRestApi.put": {
        "properties": {
          "description": {
            "maxLength": 1000,
            "minLength": 1,
            "type": "string"
          },
          "json_metadata": {
            "type": "string"
          },
          "name": {
            "maxLength": 500,
            "minLength": 0,
            "type": "string"
          },
          "owner_type": {
            "enum": [
              "Dashboard"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "FormDataPostSchema": {
        "properties": {
          "chart_id": {
            "description": "The chart ID",
            "format": "int32",
            "type": "integer"
          },
          "dataset_id": {
            "description": "The dataset ID",
            "format": "int32",
            "type": "integer"
          },
          "form_data": {
            "description": "Any type of JSON supported text.",
            "type": "string"
          }
        },
        "required": [
          "dataset_id",
          "form_data"
        ],
        "type": "object"
      },
      "FormDataPutSchema": {
        "properties": {
          "chart_id": {
            "description": "The chart ID",
            "format": "int32",
            "type": "integer"
          },
          "dataset_id": {
            "description": "The dataset ID",
            "format": "int32",
            "type": "integer"
          },
          "form_data": {
            "description": "Any type of JSON supported text.",
            "type": "string"
          }
        },
        "required": [
          "dataset_id",
          "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"
      },
      "GuestTokenCreate": {
        "properties": {
          "resources": {
            "items": {
              "$ref": "#/components/schemas/Resource"
            },
            "type": "array"
          },
          "rls": {
            "items": {
              "$ref": "#/components/schemas/RlsRule"
            },
            "type": "array"
          },
          "user": {
            "$ref": "#/components/schemas/User1"
          }
        },
        "required": [
          "resources",
          "rls"
        ],
        "type": "object"
      },
      "LogRestApi.get": {
        "properties": {
          "action": {
            "maxLength": 512,
            "nullable": true,
            "type": "string"
          },
          "dashboard_id": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "dttm": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "duration_ms": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "json": {
            "nullable": true,
            "type": "string"
          },
          "referrer": {
            "maxLength": 1024,
            "nullable": true,
            "type": "string"
          },
          "slice_id": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "user": {
            "$ref": "#/components/schemas/LogRestApi.get.User"
          },
          "user_id": {
            "format": "int32",
            "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": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "dttm": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "duration_ms": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "json": {
            "nullable": true,
            "type": "string"
          },
          "referrer": {
            "maxLength": 1024,
            "nullable": true,
            "type": "string"
          },
          "slice_id": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "user": {
            "$ref": "#/components/schemas/LogRestApi.get_list.User"
          },
          "user_id": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "LogRestApi.get_list.User": {
        "properties": {
          "username": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "username"
        ],
        "type": "object"
      },
      "LogRestApi.post": {
        "properties": {
          "id": {
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "LogRestApi.put": {
        "properties": {
          "action": {
            "maxLength": 512,
            "nullable": true,
            "type": "string"
          },
          "dttm": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "json": {
            "nullable": true,
            "type": "string"
          },
          "user": {
            "nullable": true
          }
        },
        "type": "object"
      },
      "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": {
            "format": "int32",
            "type": "integer"
          },
          "limit": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "progress": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "results_key": {
            "maxLength": 64,
            "nullable": true,
            "type": "string"
          },
          "rows": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "schema": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "select_as_cta": {
            "nullable": true,
            "type": "boolean"
          },
          "select_as_cta_used": {
            "nullable": true,
            "type": "boolean"
          },
          "select_sql": {
            "nullable": true,
            "type": "string"
          },
          "sql": {
            "nullable": true,
            "type": "string"
          },
          "sql_editor_id": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "start_running_time": {
            "nullable": true,
            "type": "number"
          },
          "start_time": {
            "nullable": true,
            "type": "number"
          },
          "status": {
            "maxLength": 16,
            "nullable": true,
            "type": "string"
          },
          "tab_name": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "tmp_schema_name": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "tmp_table_name": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "tracking_url": {
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "client_id",
          "database"
        ],
        "type": "object"
      },
      "QueryRestApi.get.Database": {
        "properties": {
          "id": {
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "QueryRestApi.get_list": {
        "properties": {
          "changed_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "database": {
            "$ref": "#/components/schemas/QueryRestApi.get_list.Database"
          },
          "end_time": {
            "nullable": true,
            "type": "number"
          },
          "executed_sql": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "rows": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "schema": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "sql": {
            "nullable": true,
            "type": "string"
          },
          "sql_tables": {
            "readOnly": true
          },
          "start_time": {
            "nullable": true,
            "type": "number"
          },
          "status": {
            "maxLength": 16,
            "nullable": true,
            "type": "string"
          },
          "tab_name": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "tmp_table_name": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "tracking_url": {
            "nullable": true,
            "type": "string"
          },
          "user": {
            "$ref": "#/components/schemas/QueryRestApi.get_list.User"
          }
        },
        "required": [
          "database"
        ],
        "type": "object"
      },
      "QueryRestApi.get_list.Database": {
        "properties": {
          "database_name": {
            "maxLength": 250,
            "type": "string"
          }
        },
        "required": [
          "database_name"
        ],
        "type": "object"
      },
      "QueryRestApi.get_list.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          },
          "username": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name",
          "username"
        ],
        "type": "object"
      },
      "QueryRestApi.post": {
        "properties": {
          "id": {
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "QueryRestApi.put": {
        "properties": {
          "id": {
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "RelatedResponseSchema": {
        "properties": {
          "count": {
            "description": "The total number of related values",
            "format": "int32",
            "type": "integer"
          },
          "result": {
            "items": {
              "$ref": "#/components/schemas/RelatedResultResponse"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "RelatedResultResponse": {
        "properties": {
          "text": {
            "description": "The related item string representation",
            "type": "string"
          },
          "value": {
            "description": "The related item identifier",
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "ReportExecutionLogRestApi.get": {
        "properties": {
          "end_dttm": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "error_message": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "scheduled_dttm": {
            "format": "date-time",
            "type": "string"
          },
          "start_dttm": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "state": {
            "maxLength": 50,
            "type": "string"
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "value": {
            "format": "float",
            "nullable": true,
            "type": "number"
          },
          "value_row_json": {
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "scheduled_dttm",
          "state"
        ],
        "type": "object"
      },
      "ReportExecutionLogRestApi.get_list": {
        "properties": {
          "end_dttm": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "error_message": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "scheduled_dttm": {
            "format": "date-time",
            "type": "string"
          },
          "start_dttm": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "state": {
            "maxLength": 50,
            "type": "string"
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "value": {
            "format": "float",
            "nullable": true,
            "type": "number"
          },
          "value_row_json": {
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "scheduled_dttm",
          "state"
        ],
        "type": "object"
      },
      "ReportExecutionLogRestApi.post": {
        "properties": {
          "id": {
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "ReportExecutionLogRestApi.put": {
        "properties": {
          "id": {
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "ReportRecipient": {
        "properties": {
          "recipient_config_json": {
            "$ref": "#/components/schemas/ReportRecipientConfigJSON"
          },
          "type": {
            "description": "The recipient type, check spec for valid options",
            "enum": [
              "Email",
              "Slack"
            ],
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "type": "object"
      },
      "ReportRecipientConfigJSON": {
        "properties": {
          "target": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ReportScheduleRestApi.get": {
        "properties": {
          "active": {
            "nullable": true,
            "type": "boolean"
          },
          "chart": {
            "$ref": "#/components/schemas/ReportScheduleRestApi.get.Slice"
          },
          "context_markdown": {
            "nullable": true,
            "type": "string"
          },
          "creation_method": {
            "maxLength": 255,
            "nullable": true,
            "type": "string"
          },
          "crontab": {
            "maxLength": 1000,
            "type": "string"
          },
          "dashboard": {
            "$ref": "#/components/schemas/ReportScheduleRestApi.get.Dashboard"
          },
          "database": {
            "$ref": "#/components/schemas/ReportScheduleRestApi.get.Database"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "force_screenshot": {
            "nullable": true,
            "type": "boolean"
          },
          "grace_period": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "last_eval_dttm": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "last_state": {
            "maxLength": 50,
            "nullable": true,
            "type": "string"
          },
          "last_value": {
            "format": "float",
            "nullable": true,
            "type": "number"
          },
          "last_value_row_json": {
            "nullable": true,
            "type": "string"
          },
          "log_retention": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "name": {
            "maxLength": 150,
            "type": "string"
          },
          "owners": {
            "$ref": "#/components/schemas/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": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          }
        },
        "required": [
          "crontab",
          "name",
          "recipients",
          "type"
        ],
        "type": "object"
      },
      "ReportScheduleRestApi.get.Dashboard": {
        "properties": {
          "dashboard_title": {
            "maxLength": 500,
            "nullable": true,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "ReportScheduleRestApi.get.Database": {
        "properties": {
          "database_name": {
            "maxLength": 250,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "database_name"
        ],
        "type": "object"
      },
      "ReportScheduleRestApi.get.ReportRecipients": {
        "properties": {
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "recipient_config_json": {
            "nullable": true,
            "type": "string"
          },
          "type": {
            "maxLength": 50,
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "type": "object"
      },
      "ReportScheduleRestApi.get.Slice": {
        "properties": {
          "id": {
            "format": "int32",
            "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": {
            "format": "int32",
            "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
          },
          "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
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "last_eval_dttm": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "last_state": {
            "maxLength": 50,
            "nullable": true,
            "type": "string"
          },
          "name": {
            "maxLength": 150,
            "type": "string"
          },
          "owners": {
            "$ref": "#/components/schemas/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": {
            "format": "int32",
            "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": {
            "format": "int32",
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "ReportScheduleRestApi.post": {
        "properties": {
          "active": {
            "type": "boolean"
          },
          "chart": {
            "format": "int32",
            "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."
          },
          "crontab": {
            "description": "A CRON expression.[Crontab Guru](https://crontab.guru/) is a helpful resource that can help you craft a CRON expression.",
            "example": "*/5 * * * *",
            "maxLength": 1000,
            "minLength": 1,
            "type": "string"
          },
          "dashboard": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "database": {
            "format": "int32",
            "type": "integer"
          },
          "description": {
            "description": "Use a nice description to give context to this Alert/Report",
            "example": "Daily sales dashboard to marketing",
            "nullable": true,
            "type": "string"
          },
          "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,
            "format": "int32",
            "minimum": 1,
            "type": "integer"
          },
          "log_retention": {
            "description": "How long to keep the logs around for this report (in days)",
            "example": 90,
            "format": "int32",
            "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.",
              "format": "int32",
              "type": "integer"
            },
            "type": "array"
          },
          "recipients": {
            "items": {
              "$ref": "#/components/schemas/ReportRecipient"
            },
            "type": "array"
          },
          "report_format": {
            "enum": [
              "PNG",
              "CSV",
              "TEXT"
            ],
            "type": "string"
          },
          "selected_tabs": {
            "items": {
              "format": "int32",
              "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/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/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/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 reseted to error",
            "example": 3600,
            "format": "int32",
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "crontab",
          "name",
          "type"
        ],
        "type": "object"
      },
      "ReportScheduleRestApi.put": {
        "properties": {
          "active": {
            "type": "boolean"
          },
          "chart": {
            "format": "int32",
            "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.",
            "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"
          },
          "dashboard": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "database": {
            "format": "int32",
            "type": "integer"
          },
          "description": {
            "description": "Use a nice description to give context to this Alert/Report",
            "example": "Daily sales dashboard to marketing",
            "nullable": true,
            "type": "string"
          },
          "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,
            "format": "int32",
            "minimum": 1,
            "type": "integer"
          },
          "log_retention": {
            "description": "How long to keep the logs around for this report (in days)",
            "example": 90,
            "format": "int32",
            "minimum": 1,
            "type": "integer"
          },
          "name": {
            "description": "The report schedule name.",
            "maxLength": 150,
            "minLength": 1,
            "type": "string"
          },
          "owners": {
            "items": {
              "description": "Owner are users ids allowed to delete or change this report. If left empty you will be one of the owners of the report.",
              "format": "int32",
              "type": "integer"
            },
            "type": "array"
          },
          "recipients": {
            "items": {
              "$ref": "#/components/schemas/ReportRecipient"
            },
            "type": "array"
          },
          "report_format": {
            "enum": [
              "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/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/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/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 reseted to error",
            "example": 3600,
            "format": "int32",
            "minimum": 1,
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Resource": {
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {}
        },
        "required": [
          "id",
          "type"
        ],
        "type": "object"
      },
      "RlsRule": {
        "properties": {
          "clause": {
            "type": "string"
          },
          "dataset": {
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "clause"
        ],
        "type": "object"
      },
      "Roles": {
        "properties": {
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "SavedQueryRestApi.get": {
        "properties": {
          "created_by": {
            "$ref": "#/components/schemas/SavedQueryRestApi.get.User"
          },
          "database": {
            "$ref": "#/components/schemas/SavedQueryRestApi.get.Database"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "label": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "schema": {
            "maxLength": 128,
            "nullable": true,
            "type": "string"
          },
          "sql": {
            "nullable": true,
            "type": "string"
          },
          "sql_tables": {
            "readOnly": true
          }
        },
        "type": "object"
      },
      "SavedQueryRestApi.get.Database": {
        "properties": {
          "database_name": {
            "maxLength": 250,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "database_name"
        ],
        "type": "object"
      },
      "SavedQueryRestApi.get.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "SavedQueryRestApi.get_list": {
        "properties": {
          "changed_on_delta_humanized": {
            "readOnly": true
          },
          "created_by": {
            "$ref": "#/components/schemas/SavedQueryRestApi.get_list.User"
          },
          "created_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "database": {
            "$ref": "#/components/schemas/SavedQueryRestApi.get_list.Database"
          },
          "db_id": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "extra": {
            "readOnly": true
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "label": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "last_run_delta_humanized": {
            "readOnly": true
          },
          "rows": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "schema": {
            "maxLength": 128,
            "nullable": true,
            "type": "string"
          },
          "sql": {
            "nullable": true,
            "type": "string"
          },
          "sql_tables": {
            "readOnly": true
          }
        },
        "type": "object"
      },
      "SavedQueryRestApi.get_list.Database": {
        "properties": {
          "database_name": {
            "maxLength": 250,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "database_name"
        ],
        "type": "object"
      },
      "SavedQueryRestApi.get_list.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "SavedQueryRestApi.post": {
        "properties": {
          "db_id": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "label": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "schema": {
            "maxLength": 128,
            "nullable": true,
            "type": "string"
          },
          "sql": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "SavedQueryRestApi.put": {
        "properties": {
          "db_id": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "label": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "schema": {
            "maxLength": 128,
            "nullable": true,
            "type": "string"
          },
          "sql": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "SchemasResponseSchema": {
        "properties": {
          "result": {
            "items": {
              "description": "A database schema name",
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "SelectStarResponseSchema": {
        "properties": {
          "result": {
            "description": "SQL select star",
            "type": "string"
          }
        },
        "type": "object"
      },
      "TableMetadataColumnsResponse": {
        "properties": {
          "duplicates_constraint": {
            "type": "string"
          },
          "keys": {
            "description": "",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "longType": {
            "description": "The actual backend long type for the column",
            "type": "string"
          },
          "name": {
            "description": "The column name",
            "type": "string"
          },
          "type": {
            "description": "The column type",
            "type": "string"
          }
        },
        "type": "object"
      },
      "TableMetadataForeignKeysIndexesResponse": {
        "properties": {
          "column_names": {
            "items": {
              "description": "A list of column names that compose the foreign key or index",
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of the foreign key or index",
            "type": "string"
          },
          "options": {
            "$ref": "#/components/schemas/TableMetadataOptionsResponse"
          },
          "referred_columns": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "referred_schema": {
            "type": "string"
          },
          "referred_table": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "TableMetadataOptionsResponse": {
        "properties": {
          "deferrable": {
            "type": "boolean"
          },
          "initially": {
            "type": "boolean"
          },
          "match": {
            "type": "boolean"
          },
          "ondelete": {
            "type": "boolean"
          },
          "onupdate": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "TableMetadataPrimaryKeyResponse": {
        "properties": {
          "column_names": {
            "items": {
              "description": "A list of column names that compose the primary key",
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "The primary key index name",
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "TableMetadataResponseSchema": {
        "properties": {
          "columns": {
            "description": "A list of columns and their metadata",
            "items": {
              "$ref": "#/components/schemas/TableMetadataColumnsResponse"
            },
            "type": "array"
          },
          "foreignKeys": {
            "description": "A list of foreign keys and their metadata",
            "items": {
              "$ref": "#/components/schemas/TableMetadataForeignKeysIndexesResponse"
            },
            "type": "array"
          },
          "indexes": {
            "description": "A list of indexes and their metadata",
            "items": {
              "$ref": "#/components/schemas/TableMetadataForeignKeysIndexesResponse"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of the table",
            "type": "string"
          },
          "primaryKey": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TableMetadataPrimaryKeyResponse"
              }
            ],
            "description": "Primary keys metadata"
          },
          "selectStar": {
            "description": "SQL select star",
            "type": "string"
          }
        },
        "type": "object"
      },
      "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"
      },
      "User": {
        "properties": {
          "first_name": {
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "last_name": {
            "type": "string"
          },
          "username": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "User1": {
        "properties": {
          "first_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "username": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "UserResponseSchema": {
        "properties": {
          "email": {
            "type": "string"
          },
          "first_name": {
            "type": "string"
          },
          "id": {
            "format": "int32",
            "type": "integer"
          },
          "is_active": {
            "type": "boolean"
          },
          "is_anonymous": {
            "type": "boolean"
          },
          "last_name": {
            "type": "string"
          },
          "username": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ValidatorConfigJSON": {
        "properties": {
          "op": {
            "description": "The operation to compare with a threshold to apply to the SQL output\n",
            "enum": [
              "<",
              "<=",
              ">",
              ">=",
              "==",
              "!="
            ],
            "type": "string"
          },
          "threshold": {
            "format": "float",
            "type": "number"
          }
        },
        "type": "object"
      },
      "database_schemas_query_schema": {
        "properties": {
          "force": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "get_delete_ids_schema": {
        "items": {
          "type": "integer"
        },
        "type": "array"
      },
      "get_export_ids_schema": {
        "items": {
          "type": "integer"
        },
        "type": "array"
      },
      "get_fav_star_ids_schema": {
        "items": {
          "type": "integer"
        },
        "type": "array"
      },
      "get_info_schema": {
        "properties": {
          "add_columns": {
            "additionalProperties": {
              "properties": {
                "page": {
                  "type": "integer"
                },
                "page_size": {
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "type": "object"
          },
          "edit_columns": {
            "additionalProperties": {
              "properties": {
                "page": {
                  "type": "integer"
                },
                "page_size": {
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "type": "object"
          },
          "keys": {
            "items": {
              "enum": [
                "add_columns",
                "edit_columns",
                "filters",
                "permissions",
                "add_title",
                "edit_title",
                "none"
              ],
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "get_item_schema": {
        "properties": {
          "columns": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "keys": {
            "items": {
              "enum": [
                "show_columns",
                "description_columns",
                "label_columns",
                "show_title",
                "none"
              ],
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "get_list_schema": {
        "properties": {
          "columns": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "filters": {
            "items": {
              "properties": {
                "col": {
                  "type": "string"
                },
                "opr": {
                  "type": "string"
                },
                "value": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string"
                    },
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "array"
                    }
                  ]
                }
              },
              "required": [
                "col",
                "opr",
                "value"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "keys": {
            "items": {
              "enum": [
                "list_columns",
                "order_columns",
                "label_columns",
                "description_columns",
                "list_title",
                "none"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "order_column": {
            "type": "string"
          },
          "order_direction": {
            "enum": [
              "asc",
              "desc"
            ],
            "type": "string"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "get_related_schema": {
        "properties": {
          "filter": {
            "type": "string"
          },
          "include_ids": {
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "screenshot_query_schema": {
        "properties": {
          "force": {
            "type": "boolean"
          },
          "thumb_size": {
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "window_size": {
            "items": {
              "type": "integer"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "thumbnail_query_schema": {
        "properties": {
          "force": {
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "securitySchemes": {
      "jwt": {
        "bearerFormat": "JWT",
        "scheme": "bearer",
        "type": "http"
      },
      "jwt_refresh": {
        "bearerFormat": "JWT",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "Superset",
    "title": "Superset",
    "version": "v1"
  },
  "openapi": "3.0.2",
  "paths": {
    "/api/v1/annotation_layer/": {
      "delete": {
        "description": "Deletes multiple annotation layers in a bulk operation.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_delete_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "CSS templates bulk delete"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Annotation Layers"
        ]
      },
      "get": {
        "description": "Get a list of Annotation layers, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ids": {
                      "description": "A list of item ids, useful when you don't know the column id",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "list_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "list_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "List Items",
                      "type": "string"
                    },
                    "order_columns": {
                      "description": "A list of allowed columns to sort",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/AnnotationLayerRestApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Annotation Layers"
        ]
      },
      "post": {
        "description": "Create an Annotation layer",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnnotationLayerRestApi.post"
              }
            }
          },
          "description": "Annotation Layer schema",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "result": {
                      "$ref": "#/components/schemas/AnnotationLayerRestApi.post"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Annotation added"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Annotation Layers"
        ]
      }
    },
    "/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"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Annotation Layers"
        ]
      }
    },
    "/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"
                }
              }
            },
            "description": "Related column data"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Annotation Layers"
        ]
      }
    },
    "/api/v1/annotation_layer/{pk}": {
      "delete": {
        "description": "Delete Annotation layer",
        "parameters": [
          {
            "description": "The annotation layer pk for this annotation",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item deleted"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Annotation Layers"
        ]
      },
      "get": {
        "description": "Get an Annotation layer",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_item_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "id": {
                      "description": "The item id",
                      "type": "string"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "result": {
                      "$ref": "#/components/schemas/AnnotationLayerRestApi.get"
                    },
                    "show_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "show_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "Show Item Details",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Annotation Layers"
        ]
      },
      "put": {
        "description": "Update an Annotation layer",
        "parameters": [
          {
            "description": "The annotation layer pk for this annotation",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnnotationLayerRestApi.put"
              }
            }
          },
          "description": "Annotation schema",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "result": {
                      "$ref": "#/components/schemas/AnnotationLayerRestApi.put"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Annotation changed"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Annotation Layers"
        ]
      }
    },
    "/api/v1/annotation_layer/{pk}/annotation/": {
      "delete": {
        "description": "Deletes multiple annotation in a bulk operation.",
        "parameters": [
          {
            "description": "The annotation layer pk for this annotation",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_delete_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Annotations bulk delete"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Annotation Layers"
        ]
      },
      "get": {
        "description": "Get a list of Annotation layers, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
        "parameters": [
          {
            "description": "The annotation layer id for this annotation",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "ids": {
                      "description": "A list of annotation ids",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/AnnotationRestApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Annotations"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Annotation Layers"
        ]
      },
      "post": {
        "description": "Create an Annotation layer",
        "parameters": [
          {
            "description": "The annotation layer pk for this annotation",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnnotationRestApi.post"
              }
            }
          },
          "description": "Annotation schema",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "result": {
                      "$ref": "#/components/schemas/AnnotationRestApi.post"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Annotation added"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Annotation Layers"
        ]
      }
    },
    "/api/v1/annotation_layer/{pk}/annotation/{annotation_id}": {
      "delete": {
        "description": "Delete Annotation layer",
        "parameters": [
          {
            "description": "The annotation layer pk for this annotation",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "The annotation pk for this annotation",
            "in": "path",
            "name": "annotation_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item deleted"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Annotation Layers"
        ]
      },
      "get": {
        "description": "Get an Annotation layer",
        "parameters": [
          {
            "description": "The annotation layer pk for this annotation",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "The annotation pk",
            "in": "path",
            "name": "annotation_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_item_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "description": "The item id",
                      "type": "string"
                    },
                    "result": {
                      "$ref": "#/components/schemas/AnnotationRestApi.get"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Annotation Layers"
        ]
      },
      "put": {
        "description": "Update an Annotation layer",
        "parameters": [
          {
            "description": "The annotation layer pk for this annotation",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "The annotation pk for this annotation",
            "in": "path",
            "name": "annotation_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnnotationRestApi.put"
              }
            }
          },
          "description": "Annotation schema",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "result": {
                      "$ref": "#/components/schemas/AnnotationRestApi.put"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Annotation changed"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Annotation Layers"
        ]
      }
    },
    "/api/v1/assets/export/": {
      "get": {
        "description": "Returns 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"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Import/export"
        ]
      }
    },
    "/api/v1/assets/import/": {
      "post": {
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "bundle": {
                    "description": "upload file (ZIP or JSON)",
                    "format": "binary",
                    "type": "string"
                  },
                  "passwords": {
                    "description": "JSON map of passwords for each featured database in the ZIP file. If the ZIP includes a database config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dashboard import result"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Import/export"
        ]
      }
    },
    "/api/v1/async_event/": {
      "get": {
        "description": "Reads off of the Redis events stream, using the user's JWT token and optional query params for last event received.",
        "parameters": [
          {
            "description": "Last ID received by the client",
            "in": "query",
            "name": "last_id",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "items": {
                        "properties": {
                          "channel_id": {
                            "type": "string"
                          },
                          "errors": {
                            "items": {
                              "type": "object"
                            },
                            "type": "array"
                          },
                          "id": {
                            "type": "string"
                          },
                          "job_id": {
                            "type": "string"
                          },
                          "result_url": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "user_id": {
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Async event results"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "AsyncEventsRestApi"
        ]
      }
    },
    "/api/v1/cachekey/invalidate": {
      "post": {
        "description": "Takes a list of datasources, finds the associated cache records and invalidates them and removes the database records",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CacheInvalidationRequestSchema"
              }
            }
          },
          "description": "A list of datasources uuid or the tuples of database and datasource names",
          "required": true
        },
        "responses": {
          "201": {
            "description": "cache was successfully invalidated"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "CacheRestApi"
        ]
      }
    },
    "/api/v1/chart/": {
      "delete": {
        "description": "Deletes multiple Charts in a bulk operation.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_delete_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Charts bulk delete"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Charts"
        ]
      },
      "get": {
        "description": "Get a list of charts, use Rison or JSON query parameters for filtering, sorting, pagination and  for selecting specific columns and metadata.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ids": {
                      "description": "A list of item ids, useful when you don't know the column id",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "list_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "list_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "List Items",
                      "type": "string"
                    },
                    "order_columns": {
                      "description": "A list of allowed columns to sort",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/ChartRestApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Charts"
        ]
      },
      "post": {
        "description": "Create a new Chart.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChartRestApi.post"
              }
            }
          },
          "description": "Chart schema",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "result": {
                      "$ref": "#/components/schemas/ChartRestApi.post"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Chart added"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Charts"
        ]
      }
    },
    "/api/v1/chart/_info": {
      "get": {
        "description": "Several metadata information about chart API endpoints.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_info_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "add_columns": {
                      "type": "object"
                    },
                    "edit_columns": {
                      "type": "object"
                    },
                    "filters": {
                      "properties": {
                        "column_name": {
                          "items": {
                            "properties": {
                              "name": {
                                "description": "The filter name. Will be translated by babel",
                                "type": "string"
                              },
                              "operator": {
                                "description": "The filter operation key to use on list filters",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "permissions": {
                      "description": "The user permissions for this API resource",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Charts"
        ]
      }
    },
    "/api/v1/chart/data": {
      "post": {
        "description": "Takes a query context constructed in the client and returns payload data response for the given query.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChartDataQueryContextSchema"
              }
            }
          },
          "description": "A query context consists of a datasource from which to fetch data and one or many query objects.",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChartDataResponseSchema"
                }
              }
            },
            "description": "Query result"
          },
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChartDataAsyncResponseSchema"
                }
              }
            },
            "description": "Async job details"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Charts"
        ]
      }
    },
    "/api/v1/chart/data/{cache_key}": {
      "get": {
        "description": "Takes a query context cache key and returns payload data response for the given query.",
        "parameters": [
          {
            "in": "path",
            "name": "cache_key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChartDataResponseSchema"
                }
              }
            },
            "description": "Query result"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Charts"
        ]
      }
    },
    "/api/v1/chart/export/": {
      "get": {
        "description": "Exports multiple charts and downloads them as YAML files",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_export_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/zip": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "A zip file with chart(s), dataset(s) and database(s) as YAML"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Charts"
        ]
      }
    },
    "/api/v1/chart/favorite_status/": {
      "get": {
        "description": "Check favorited dashboards for current user",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_fav_star_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetFavStarIdsSchema"
                }
              }
            },
            "description": "None"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Charts"
        ]
      }
    },
    "/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"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Chart import result"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Charts"
        ]
      }
    },
    "/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"
                }
              }
            },
            "description": "Related column data"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Charts"
        ]
      }
    },
    "/api/v1/chart/{pk}": {
      "delete": {
        "description": "Deletes a Chart.",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Chart delete"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Charts"
        ]
      },
      "get": {
        "description": "Get a chart detail information.",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_item_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "id": {
                      "description": "The item id",
                      "type": "string"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "result": {
                      "$ref": "#/components/schemas/ChartRestApi.get"
                    },
                    "show_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "show_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "Show Item Details",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Charts"
        ]
      },
      "put": {
        "description": "Changes a Chart.",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChartRestApi.put"
              }
            }
          },
          "description": "Chart schema",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "result": {
                      "$ref": "#/components/schemas/ChartRestApi.put"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Chart changed"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Charts"
        ]
      }
    },
    "/api/v1/chart/{pk}/cache_screenshot/": {
      "get": {
        "description": "Compute and cache a screenshot.",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/screenshot_query_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChartCacheScreenshotResponseSchema"
                }
              }
            },
            "description": "Chart async result"
          },
          "302": {
            "description": "Redirects to the current digest"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Charts"
        ]
      }
    },
    "/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"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChartDataResponseSchema"
                }
              }
            },
            "description": "Query result"
          },
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChartDataAsyncResponseSchema"
                }
              }
            },
            "description": "Async job details"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Charts"
        ]
      }
    },
    "/api/v1/chart/{pk}/screenshot/{digest}/": {
      "get": {
        "description": "Get a computed screenshot from cache.",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "digest",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "image/*": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Chart thumbnail image"
          },
          "302": {
            "description": "Redirects to the current digest"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Charts"
        ]
      }
    },
    "/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"
            }
          },
          {
            "in": "path",
            "name": "digest",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "image/*": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Chart thumbnail image"
          },
          "302": {
            "description": "Redirects to the current digest"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Charts"
        ]
      }
    },
    "/api/v1/css_template/": {
      "delete": {
        "description": "Deletes multiple css templates in a bulk operation.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_delete_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "CSS templates bulk delete"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "CSS Templates"
        ]
      },
      "get": {
        "description": "Get a list of CSS templates, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ids": {
                      "description": "A list of item ids, useful when you don't know the column id",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "list_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "list_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "List Items",
                      "type": "string"
                    },
                    "order_columns": {
                      "description": "A list of allowed columns to sort",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/CssTemplateRestApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "CSS Templates"
        ]
      },
      "post": {
        "description": "Create a CSS template",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CssTemplateRestApi.post"
              }
            }
          },
          "description": "Model schema",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "result": {
                      "$ref": "#/components/schemas/CssTemplateRestApi.post"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item inserted"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "CSS Templates"
        ]
      }
    },
    "/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"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "CSS Templates"
        ]
      }
    },
    "/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"
                }
              }
            },
            "description": "Related column data"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "CSS Templates"
        ]
      }
    },
    "/api/v1/css_template/{pk}": {
      "delete": {
        "description": "Delete CSS template",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item deleted"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "CSS Templates"
        ]
      },
      "get": {
        "description": "Get a CSS template",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_item_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "id": {
                      "description": "The item id",
                      "type": "string"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "result": {
                      "$ref": "#/components/schemas/CssTemplateRestApi.get"
                    },
                    "show_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "show_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "Show Item Details",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "CSS Templates"
        ]
      },
      "put": {
        "description": "Update a CSS template",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CssTemplateRestApi.put"
              }
            }
          },
          "description": "Model schema",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "$ref": "#/components/schemas/CssTemplateRestApi.put"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item changed"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "CSS Templates"
        ]
      }
    },
    "/api/v1/dashboard/": {
      "delete": {
        "description": "Deletes multiple Dashboards in a bulk operation.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_delete_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dashboard bulk delete"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Dashboards"
        ]
      },
      "get": {
        "description": "Get a list of dashboards, use Rison or JSON query parameters for filtering, sorting, pagination and  for selecting specific columns and metadata.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ids": {
                      "description": "A list of item ids, useful when you don't know the column id",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "list_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "list_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "List Items",
                      "type": "string"
                    },
                    "order_columns": {
                      "description": "A list of allowed columns to sort",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/DashboardRestApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Dashboards"
        ]
      },
      "post": {
        "description": "Create a new Dashboard.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardRestApi.post"
              }
            }
          },
          "description": "Dashboard schema",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "result": {
                      "$ref": "#/components/schemas/DashboardRestApi.post"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dashboard added"
          },
          "302": {
            "description": "Redirects to the current digest"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/v1/dashboard/_info": {
      "get": {
        "description": "Several metadata information about dashboard API endpoints.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_info_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "add_columns": {
                      "type": "object"
                    },
                    "edit_columns": {
                      "type": "object"
                    },
                    "filters": {
                      "properties": {
                        "column_name": {
                          "items": {
                            "properties": {
                              "name": {
                                "description": "The filter name. Will be translated by babel",
                                "type": "string"
                              },
                              "operator": {
                                "description": "The filter operation key to use on list filters",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "permissions": {
                      "description": "The user permissions for this API resource",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/v1/dashboard/export/": {
      "get": {
        "description": "Exports multiple Dashboards and downloads them as YAML files.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_export_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "Dashboard export"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/v1/dashboard/favorite_status/": {
      "get": {
        "description": "Check favorited dashboards for current user",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_fav_star_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetFavStarIdsSchema"
                }
              }
            },
            "description": "None"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/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"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dashboard import result"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/v1/dashboard/permalink/{key}": {
      "get": {
        "description": "Retrives dashboard state associated with a permanent link.",
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "state": {
                      "description": "The stored state",
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "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": []
          }
        ],
        "tags": [
          "Dashboard Permanent Link"
        ]
      }
    },
    "/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"
                }
              }
            },
            "description": "Related column data"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/v1/dashboard/{dashboard_id}/filtersets": {
      "get": {
        "description": "Get a dashboard's list of filter sets",
        "parameters": [
          {
            "description": "The id of the dashboard",
            "in": "path",
            "name": "dashboard_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "properties": {
                      "description": {
                        "description": "A description field of the filter set",
                        "type": "string"
                      },
                      "json_metadata": {
                        "description": "metadata of the filter set",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name of the Filter set",
                        "type": "string"
                      },
                      "owner_id": {
                        "description": "A description field of the filter set",
                        "type": "integer"
                      },
                      "owner_type": {
                        "description": "the Type of the owner ( Dashboard/User)",
                        "type": "integer"
                      },
                      "parameters": {
                        "description": "JSON schema defining the needed parameters"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              }
            },
            "description": "FilterSets"
          },
          "302": {
            "description": "Redirects to the current digest"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "FilterSetRestApi"
        ]
      },
      "post": {
        "description": "Create a new Dashboard's Filter Set.",
        "parameters": [
          {
            "description": "The id of the dashboard",
            "in": "path",
            "name": "dashboard_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FilterSetRestApi.post"
              }
            }
          },
          "description": "Filter set schema",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "result": {
                      "$ref": "#/components/schemas/FilterSetRestApi.post"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Filter set added"
          },
          "302": {
            "description": "Redirects to the current digest"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "FilterSetRestApi"
        ]
      }
    },
    "/api/v1/dashboard/{dashboard_id}/filtersets/{pk}": {
      "delete": {
        "description": "Deletes a Dashboard.",
        "parameters": [
          {
            "in": "path",
            "name": "dashboard_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Filter set deleted"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "FilterSetRestApi"
        ]
      },
      "put": {
        "description": "Changes a Dashboard's Filter set.",
        "parameters": [
          {
            "in": "path",
            "name": "dashboard_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FilterSetRestApi.put"
              }
            }
          },
          "description": "Filter set schema",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "result": {
                      "$ref": "#/components/schemas/FilterSetRestApi.put"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Filter set changed"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "FilterSetRestApi"
        ]
      }
    },
    "/api/v1/dashboard/{id_or_slug}": {
      "get": {
        "description": "Get a dashboard detail information.",
        "parameters": [
          {
            "description": "Either the id of the dashboard, or its slug",
            "in": "path",
            "name": "id_or_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "$ref": "#/components/schemas/DashboardGetResponseSchema"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dashboard"
          },
          "302": {
            "description": "Redirects to the current digest"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/v1/dashboard/{id_or_slug}/charts": {
      "get": {
        "description": "Get the chart definitions for a given dashboard",
        "parameters": [
          {
            "in": "path",
            "name": "id_or_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "items": {
                        "$ref": "#/components/schemas/ChartEntityResponseSchema"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dashboard chart definitions"
          },
          "302": {
            "description": "Redirects to the current digest"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/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"
                }
              }
            },
            "description": "Dashboard dataset definitions"
          },
          "302": {
            "description": "Redirects to the current digest"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/v1/dashboard/{pk}": {
      "delete": {
        "description": "Deletes a Dashboard.",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dashboard deleted"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Dashboards"
        ]
      },
      "put": {
        "description": "Changes a Dashboard.",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardRestApi.put"
              }
            }
          },
          "description": "Dashboard schema",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "last_modified_time": {
                      "type": "number"
                    },
                    "result": {
                      "$ref": "#/components/schemas/DashboardRestApi.put"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dashboard changed"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/v1/dashboard/{pk}/filter_state": {
      "post": {
        "description": "Stores a new value.",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "tab_id",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TemporaryCachePostSchema"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "key": {
                      "description": "The key to retrieve the value.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "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": []
          }
        ],
        "tags": [
          "Dashboard Filter State"
        ]
      }
    },
    "/api/v1/dashboard/{pk}/filter_state/{key}": {
      "delete": {
        "description": "Deletes a value.",
        "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"
                }
              }
            },
            "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": []
          }
        ],
        "tags": [
          "Dashboard Filter State"
        ]
      },
      "get": {
        "description": "Retrives a value.",
        "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"
                }
              }
            },
            "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": []
          }
        ],
        "tags": [
          "Dashboard Filter State"
        ]
      },
      "put": {
        "description": "Updates an existing value.",
        "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"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "key": {
                      "description": "The key to retrieve the value.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "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": []
          }
        ],
        "tags": [
          "Dashboard Filter State"
        ]
      }
    },
    "/api/v1/dashboard/{pk}/permalink": {
      "post": {
        "description": "Stores a new permanent link.",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardPermalinkPostSchema"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "key": {
                      "description": "The key to retrieve the permanent link data.",
                      "type": "string"
                    },
                    "url": {
                      "description": "permanent link.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "The 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": []
          }
        ],
        "tags": [
          "Dashboard Permanent Link"
        ]
      }
    },
    "/api/v1/dashboard/{pk}/thumbnail/{digest}/": {
      "get": {
        "description": "Compute async or get already computed dashboard thumbnail from cache.",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A hex digest that makes this dashboard unique",
            "in": "path",
            "name": "digest",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/thumbnail_query_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "image/*": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Dashboard thumbnail image"
          },
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Thumbnail does not exist on cache, fired async to compute"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/v1/database/": {
      "get": {
        "description": "Get a list of models",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ids": {
                      "description": "A list of item ids, useful when you don't know the column id",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "list_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "list_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "List Items",
                      "type": "string"
                    },
                    "order_columns": {
                      "description": "A list of allowed columns to sort",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/DatabaseRestApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Database"
        ]
      },
      "post": {
        "description": "Create a new Database.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DatabaseRestApi.post"
              }
            }
          },
          "description": "Database schema",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "result": {
                      "$ref": "#/components/schemas/DatabaseRestApi.post"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Database added"
          },
          "302": {
            "description": "Redirects to the current digest"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Database"
        ]
      }
    },
    "/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"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/available/": {
      "get": {
        "description": "Get names of databases currently available",
        "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"
                      },
                      "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"
                }
              }
            },
            "description": "Database names"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/export/": {
      "get": {
        "description": "Download database(s) and associated dataset(s) as a zip file",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_export_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/zip": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "A zip file with database(s) and dataset(s) as YAML"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Database"
        ]
      }
    },
    "/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"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Database import result"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/test_connection": {
      "post": {
        "description": "Tests a database connection",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DatabaseTestConnectionSchema"
              }
            }
          },
          "description": "Database schema",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Database Test Connection"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/validate_parameters": {
      "post": {
        "description": "Validates parameters used to connect to a database",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DatabaseValidateParametersSchema"
              }
            }
          },
          "description": "DB-specific parameters",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Database Test Connection"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/{pk}": {
      "delete": {
        "description": "Deletes a Database.",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Database deleted"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Database"
        ]
      },
      "get": {
        "description": "Get an item model",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_item_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "id": {
                      "description": "The item id",
                      "type": "string"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "result": {
                      "$ref": "#/components/schemas/DatabaseRestApi.get"
                    },
                    "show_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "show_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "Show Item Details",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Database"
        ]
      },
      "put": {
        "description": "Changes a Database.",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DatabaseRestApi.put"
              }
            }
          },
          "description": "Database schema",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "result": {
                      "$ref": "#/components/schemas/DatabaseRestApi.put"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Database changed"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/{pk}/function_names/": {
      "get": {
        "description": "Get function names supported by a database",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatabaseFunctionNamesResponse"
                }
              }
            },
            "description": "Query result"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/{pk}/related_objects/": {
      "get": {
        "description": "Get charts and dashboards count associated to a database",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatabaseRelatedObjectsResponse"
                }
              }
            },
            "description": "Query result"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/{pk}/schemas/": {
      "get": {
        "description": "Get all schemas from a database",
        "parameters": [
          {
            "description": "The database id",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/database_schemas_query_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchemasResponseSchema"
                }
              }
            },
            "description": "A List of all schemas from the database"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/{pk}/select_star/{table_name}/": {
      "get": {
        "description": "Get database select star for table",
        "parameters": [
          {
            "description": "The database id",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Table name",
            "in": "path",
            "name": "table_name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Table schema",
            "in": "path",
            "name": "schema_name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SelectStarResponseSchema"
                }
              }
            },
            "description": "SQL statement for a select star for table"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/{pk}/select_star/{table_name}/{schema_name}/": {
      "get": {
        "description": "Get database select star for table",
        "parameters": [
          {
            "description": "The database id",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Table name",
            "in": "path",
            "name": "table_name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Table schema",
            "in": "path",
            "name": "schema_name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SelectStarResponseSchema"
                }
              }
            },
            "description": "SQL statement for a select star for table"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/{pk}/table/{table_name}/{schema_name}/": {
      "get": {
        "description": "Get database table metadata",
        "parameters": [
          {
            "description": "The database id",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Table name",
            "in": "path",
            "name": "table_name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Table schema",
            "in": "path",
            "name": "schema_name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TableMetadataResponseSchema"
                }
              }
            },
            "description": "Table metadata information"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/dataset/": {
      "delete": {
        "description": "Deletes multiple Datasets in a bulk operation.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_delete_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dataset bulk delete"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Datasets"
        ]
      },
      "get": {
        "description": "Get a list of models",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ids": {
                      "description": "A list of item ids, useful when you don't know the column id",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "list_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "list_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "List Items",
                      "type": "string"
                    },
                    "order_columns": {
                      "description": "A list of allowed columns to sort",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/DatasetRestApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Datasets"
        ]
      },
      "post": {
        "description": "Create a new Dataset",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DatasetRestApi.post"
              }
            }
          },
          "description": "Dataset schema",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "result": {
                      "$ref": "#/components/schemas/DatasetRestApi.post"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dataset added"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Datasets"
        ]
      }
    },
    "/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"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Datasets"
        ]
      }
    },
    "/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"
                }
              }
            },
            "description": "Distinct field data"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Datasets"
        ]
      }
    },
    "/api/v1/dataset/export/": {
      "get": {
        "description": "Exports multiple datasets and downloads them as YAML files",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_export_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "Dataset export"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Datasets"
        ]
      }
    },
    "/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"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dataset import result"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Datasets"
        ]
      }
    },
    "/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"
                }
              }
            },
            "description": "Related column data"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Datasets"
        ]
      }
    },
    "/api/v1/dataset/{pk}": {
      "delete": {
        "description": "Deletes a Dataset",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dataset delete"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Datasets"
        ]
      },
      "get": {
        "description": "Get an item model",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_item_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "id": {
                      "description": "The item id",
                      "type": "string"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "result": {
                      "$ref": "#/components/schemas/DatasetRestApi.get"
                    },
                    "show_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "show_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "Show Item Details",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Datasets"
        ]
      },
      "put": {
        "description": "Changes a Dataset",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "override_columns",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DatasetRestApi.put"
              }
            }
          },
          "description": "Dataset schema",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "result": {
                      "$ref": "#/components/schemas/DatasetRestApi.put"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dataset changed"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Datasets"
        ]
      }
    },
    "/api/v1/dataset/{pk}/column/{column_id}": {
      "delete": {
        "description": "Delete a Dataset column",
        "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"
                }
              }
            },
            "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": []
          }
        ],
        "tags": [
          "Datasets"
        ]
      }
    },
    "/api/v1/dataset/{pk}/metric/{metric_id}": {
      "delete": {
        "description": "Delete a Dataset metric",
        "parameters": [
          {
            "description": "The dataset pk for this column",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "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"
                }
              }
            },
            "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": []
          }
        ],
        "tags": [
          "Datasets"
        ]
      }
    },
    "/api/v1/dataset/{pk}/refresh": {
      "put": {
        "description": "Refreshes and updates columns of a dataset",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dataset delete"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Datasets"
        ]
      }
    },
    "/api/v1/dataset/{pk}/related_objects": {
      "get": {
        "description": "Get charts and dashboards count associated to a dataset",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatasetRelatedObjectsResponse"
                }
              }
            },
            "description": "Query result"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Datasets"
        ]
      }
    },
    "/api/v1/explore/form_data": {
      "post": {
        "description": "Stores a new form_data.",
        "parameters": [
          {
            "in": "query",
            "name": "tab_id",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FormDataPostSchema"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "key": {
                      "description": "The key to retrieve the form_data.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "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": []
          }
        ],
        "tags": [
          "Explore Form Data"
        ]
      }
    },
    "/api/v1/explore/form_data/{key}": {
      "delete": {
        "description": "Deletes a form_data.",
        "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"
                }
              }
            },
            "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": []
          }
        ],
        "tags": [
          "Explore Form Data"
        ]
      },
      "get": {
        "description": "Retrives a form_data.",
        "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"
                }
              }
            },
            "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": []
          }
        ],
        "tags": [
          "Explore Form Data"
        ]
      },
      "put": {
        "description": "Updates an existing form_data.",
        "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"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "key": {
                      "description": "The key to retrieve the form_data.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "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": []
          }
        ],
        "tags": [
          "Explore Form Data"
        ]
      }
    },
    "/api/v1/explore/permalink": {
      "post": {
        "description": "Stores a new permanent link.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExplorePermalinkPostSchema"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "key": {
                      "description": "The key to retrieve the permanent link data.",
                      "type": "string"
                    },
                    "url": {
                      "description": "pemanent link.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "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": []
          }
        ],
        "tags": [
          "Explore Permanent Link"
        ]
      }
    },
    "/api/v1/explore/permalink/{key}": {
      "get": {
        "description": "Retrives chart state associated with a permanent link.",
        "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"
                }
              }
            },
            "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": []
          }
        ],
        "tags": [
          "Explore Permanent Link"
        ]
      }
    },
    "/api/v1/log/": {
      "get": {
        "description": "Get a list of models",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ids": {
                      "description": "A list of item ids, useful when you don't know the column id",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "list_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "list_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "List Items",
                      "type": "string"
                    },
                    "order_columns": {
                      "description": "A list of allowed columns to sort",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/LogRestApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "LogRestApi"
        ]
      },
      "post": {
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LogRestApi.post"
              }
            }
          },
          "description": "Model schema",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "result": {
                      "$ref": "#/components/schemas/LogRestApi.post"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item inserted"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "LogRestApi"
        ]
      }
    },
    "/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"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "LogRestApi"
        ]
      }
    },
    "/api/v1/me/": {
      "get": {
        "description": "Returns the user object corresponding to the agent making the request, or returns a 401 error if the user is unauthenticated.",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "$ref": "#/components/schemas/UserResponseSchema"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "The current user"
          },
          "401": {
            "$ref": "#/components/responses/401"
          }
        },
        "tags": [
          "Current User"
        ]
      }
    },
    "/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"
                }
              }
            },
            "description": "Get menu data"
          },
          "401": {
            "$ref": "#/components/responses/401"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Menu"
        ]
      }
    },
    "/api/v1/query/": {
      "get": {
        "description": "Get a list of queries, use Rison or JSON query parameters for filtering, sorting, pagination and  for selecting specific columns and metadata.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ids": {
                      "description": "A list of item ids, useful when you don't know the column id",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "list_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "list_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "List Items",
                      "type": "string"
                    },
                    "order_columns": {
                      "description": "A list of allowed columns to sort",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/QueryRestApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Queries"
        ]
      }
    },
    "/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"
                }
              }
            },
            "description": "Distinct field data"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Queries"
        ]
      }
    },
    "/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"
                }
              }
            },
            "description": "Related column data"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Queries"
        ]
      }
    },
    "/api/v1/query/{pk}": {
      "get": {
        "description": "Get query detail information.",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_item_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "id": {
                      "description": "The item id",
                      "type": "string"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "result": {
                      "$ref": "#/components/schemas/QueryRestApi.get"
                    },
                    "show_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "show_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "Show Item Details",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Queries"
        ]
      }
    },
    "/api/v1/report/": {
      "delete": {
        "description": "Deletes multiple report schedules in a bulk operation.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_delete_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Report Schedule bulk delete"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Report Schedules"
        ]
      },
      "get": {
        "description": "Get a list of report schedules, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ids": {
                      "description": "A list of item ids, useful when you don't know the column id",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "list_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "list_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "List Items",
                      "type": "string"
                    },
                    "order_columns": {
                      "description": "A list of allowed columns to sort",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/ReportScheduleRestApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Report Schedules"
        ]
      },
      "post": {
        "description": "Create a report schedule",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReportScheduleRestApi.post"
              }
            }
          },
          "description": "Report Schedule schema",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "result": {
                      "$ref": "#/components/schemas/ReportScheduleRestApi.post"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Report schedule added"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Report Schedules"
        ]
      }
    },
    "/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"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Report Schedules"
        ]
      }
    },
    "/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"
                }
              }
            },
            "description": "Related column data"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Report Schedules"
        ]
      }
    },
    "/api/v1/report/{pk}": {
      "delete": {
        "description": "Delete a report schedule",
        "parameters": [
          {
            "description": "The report schedule pk",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item deleted"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Report Schedules"
        ]
      },
      "get": {
        "description": "Get a report schedule",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_item_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "id": {
                      "description": "The item id",
                      "type": "string"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "result": {
                      "$ref": "#/components/schemas/ReportScheduleRestApi.get"
                    },
                    "show_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "show_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "Show Item Details",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Report Schedules"
        ]
      },
      "put": {
        "description": "Update a report schedule",
        "parameters": [
          {
            "description": "The Report Schedule pk",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReportScheduleRestApi.put"
              }
            }
          },
          "description": "Report Schedule schema",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "result": {
                      "$ref": "#/components/schemas/ReportScheduleRestApi.put"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Report Schedule changed"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Report Schedules"
        ]
      }
    },
    "/api/v1/report/{pk}/log/": {
      "get": {
        "description": "Get a list of report schedule logs, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
        "parameters": [
          {
            "description": "The report schedule id for these logs",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "ids": {
                      "description": "A list of log ids",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/ReportExecutionLogRestApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from logs"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Report Schedules"
        ]
      }
    },
    "/api/v1/report/{pk}/log/{log_id}": {
      "get": {
        "description": "Get a report schedule log",
        "parameters": [
          {
            "description": "The report schedule pk for log",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "The log pk",
            "in": "path",
            "name": "log_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_item_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "description": "The log id",
                      "type": "string"
                    },
                    "result": {
                      "$ref": "#/components/schemas/ReportExecutionLogRestApi.get"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item log"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Report Schedules"
        ]
      }
    },
    "/api/v1/saved_query/": {
      "delete": {
        "description": "Deletes multiple saved queries in a bulk operation.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_delete_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Saved queries bulk delete"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Queries"
        ]
      },
      "get": {
        "description": "Get a list of saved queries, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ids": {
                      "description": "A list of item ids, useful when you don't know the column id",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "list_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "list_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "List Items",
                      "type": "string"
                    },
                    "order_columns": {
                      "description": "A list of allowed columns to sort",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/SavedQueryRestApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Queries"
        ]
      },
      "post": {
        "description": "Create a saved query",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SavedQueryRestApi.post"
              }
            }
          },
          "description": "Model schema",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "result": {
                      "$ref": "#/components/schemas/SavedQueryRestApi.post"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item inserted"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Queries"
        ]
      }
    },
    "/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"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Queries"
        ]
      }
    },
    "/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"
                }
              }
            },
            "description": "Distinct field data"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Queries"
        ]
      }
    },
    "/api/v1/saved_query/export/": {
      "get": {
        "description": "Exports multiple saved queries and downloads them as YAML files",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_export_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/zip": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "A zip file with saved query(ies) and database(s) as YAML"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Queries"
        ]
      }
    },
    "/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"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "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": []
          }
        ],
        "tags": [
          "Queries"
        ]
      }
    },
    "/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"
                }
              }
            },
            "description": "Related column data"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Queries"
        ]
      }
    },
    "/api/v1/saved_query/{pk}": {
      "delete": {
        "description": "Delete saved query",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item deleted"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Queries"
        ]
      },
      "get": {
        "description": "Get a saved query",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_item_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "id": {
                      "description": "The item id",
                      "type": "string"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "result": {
                      "$ref": "#/components/schemas/SavedQueryRestApi.get"
                    },
                    "show_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "show_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "Show Item Details",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Queries"
        ]
      },
      "put": {
        "description": "Update a saved query",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SavedQueryRestApi.put"
              }
            }
          },
          "description": "Model schema",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "$ref": "#/components/schemas/SavedQueryRestApi.put"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item changed"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Queries"
        ]
      }
    },
    "/api/v1/security/csrf_token/": {
      "get": {
        "description": "Fetch the CSRF token",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Result contains the CSRF token"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Security"
        ]
      }
    },
    "/api/v1/security/guest_token/": {
      "post": {
        "description": "Fetches a guest token",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GuestTokenCreate"
              }
            }
          },
          "description": "Parameters for the guest token",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "token": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Result contains the guest token"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Security"
        ]
      }
    },
    "/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"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "access_token": {
                      "type": "string"
                    },
                    "refresh_token": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Authentication Successful"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "tags": [
          "Security"
        ]
      }
    },
    "/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"
                }
              }
            },
            "description": "Refresh Successful"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt_refresh": []
          }
        ],
        "tags": [
          "Security"
        ]
      }
    },
    "/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"
        ]
      }
    }
  },
  "servers": [
    {
      "url": "http://localhost:8088"
    }
  ]
}
