{
  "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"
      },
      "410": {
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "errors": {
                  "items": {
                    "properties": {
                      "error_type": {
                        "enum": [
                          "FRONTEND_CSRF_ERROR",
                          "FRONTEND_NETWORK_ERROR",
                          "FRONTEND_TIMEOUT_ERROR",
                          "GENERIC_DB_ENGINE_ERROR",
                          "COLUMN_DOES_NOT_EXIST_ERROR",
                          "TABLE_DOES_NOT_EXIST_ERROR",
                          "SCHEMA_DOES_NOT_EXIST_ERROR",
                          "CONNECTION_INVALID_USERNAME_ERROR",
                          "CONNECTION_INVALID_PASSWORD_ERROR",
                          "CONNECTION_INVALID_HOSTNAME_ERROR",
                          "CONNECTION_PORT_CLOSED_ERROR",
                          "CONNECTION_INVALID_PORT_ERROR",
                          "CONNECTION_HOST_DOWN_ERROR",
                          "CONNECTION_ACCESS_DENIED_ERROR",
                          "CONNECTION_UNKNOWN_DATABASE_ERROR",
                          "CONNECTION_DATABASE_PERMISSIONS_ERROR",
                          "CONNECTION_MISSING_PARAMETERS_ERROR",
                          "OBJECT_DOES_NOT_EXIST_ERROR",
                          "SYNTAX_ERROR",
                          "CONNECTION_DATABASE_TIMEOUT",
                          "VIZ_GET_DF_ERROR",
                          "UNKNOWN_DATASOURCE_TYPE_ERROR",
                          "FAILED_FETCHING_DATASOURCE_INFO_ERROR",
                          "TABLE_SECURITY_ACCESS_ERROR",
                          "DATASOURCE_SECURITY_ACCESS_ERROR",
                          "DATABASE_SECURITY_ACCESS_ERROR",
                          "QUERY_SECURITY_ACCESS_ERROR",
                          "MISSING_OWNERSHIP_ERROR",
                          "USER_ACTIVITY_SECURITY_ACCESS_ERROR",
                          "DASHBOARD_SECURITY_ACCESS_ERROR",
                          "CHART_SECURITY_ACCESS_ERROR",
                          "OAUTH2_REDIRECT",
                          "OAUTH2_REDIRECT_ERROR",
                          "BACKEND_TIMEOUT_ERROR",
                          "DATABASE_NOT_FOUND_ERROR",
                          "TABLE_NOT_FOUND_ERROR",
                          "MISSING_TEMPLATE_PARAMS_ERROR",
                          "INVALID_TEMPLATE_PARAMS_ERROR",
                          "RESULTS_BACKEND_NOT_CONFIGURED_ERROR",
                          "DML_NOT_ALLOWED_ERROR",
                          "INVALID_CTAS_QUERY_ERROR",
                          "INVALID_CVAS_QUERY_ERROR",
                          "SQLLAB_TIMEOUT_ERROR",
                          "RESULTS_BACKEND_ERROR",
                          "ASYNC_WORKERS_ERROR",
                          "ADHOC_SUBQUERY_NOT_ALLOWED_ERROR",
                          "INVALID_SQL_ERROR",
                          "RESULT_TOO_LARGE_ERROR",
                          "GENERIC_COMMAND_ERROR",
                          "GENERIC_BACKEND_ERROR",
                          "INVALID_PAYLOAD_FORMAT_ERROR",
                          "INVALID_PAYLOAD_SCHEMA_ERROR",
                          "MARSHMALLOW_ERROR",
                          "REPORT_NOTIFICATION_ERROR"
                        ],
                        "type": "string"
                      },
                      "extra": {
                        "type": "object"
                      },
                      "level": {
                        "enum": [
                          "info",
                          "warning",
                          "error"
                        ],
                        "type": "string"
                      },
                      "message": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                },
                "message": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "Gone"
      },
      "422": {
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "message": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "Could not process entity"
      },
      "500": {
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "message": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "Fatal error"
      }
    },
    "schemas": {
      "AdvancedDataTypeSchema": {
        "properties": {
          "display_value": {
            "description": "The string representation of the parsed values",
            "type": "string"
          },
          "error_message": {
            "type": "string"
          },
          "valid_filter_operators": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "values": {
            "items": {
              "description": "parsed value (can be any value)",
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "AnnotationLayer": {
        "properties": {
          "annotationType": {
            "description": "Type of annotation layer",
            "enum": [
              "FORMULA",
              "INTERVAL",
              "EVENT",
              "TIME_SERIES"
            ],
            "type": "string"
          },
          "color": {
            "description": "Layer color",
            "nullable": true,
            "type": "string"
          },
          "descriptionColumns": {
            "description": "Columns to use as the description. If none are provided, all will be shown.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "hideLine": {
            "description": "Should line be hidden. Only applies to line annotations",
            "nullable": true,
            "type": "boolean"
          },
          "intervalEndColumn": {
            "description": "Column containing end of interval. Only applies to interval layers",
            "nullable": true,
            "type": "string"
          },
          "name": {
            "description": "Name of layer",
            "type": "string"
          },
          "opacity": {
            "description": "Opacity of layer",
            "enum": [
              "",
              "opacityLow",
              "opacityMedium",
              "opacityHigh",
              null
            ],
            "nullable": true,
            "type": "string"
          },
          "overrides": {
            "additionalProperties": {
              "nullable": true
            },
            "description": "which properties should be overridable",
            "nullable": true,
            "type": "object"
          },
          "show": {
            "description": "Should the layer be shown",
            "type": "boolean"
          },
          "showLabel": {
            "description": "Should the label always be shown",
            "nullable": true,
            "type": "boolean"
          },
          "showMarkers": {
            "description": "Should markers be shown. Only applies to line annotations.",
            "type": "boolean"
          },
          "sourceType": {
            "description": "Type of source for annotation data",
            "enum": [
              "",
              "line",
              "NATIVE",
              "table"
            ],
            "type": "string"
          },
          "style": {
            "description": "Line style. Only applies to time-series annotations",
            "enum": [
              "dashed",
              "dotted",
              "solid",
              "longDashed"
            ],
            "type": "string"
          },
          "timeColumn": {
            "description": "Column with event date or interval start date",
            "nullable": true,
            "type": "string"
          },
          "titleColumn": {
            "description": "Column with title",
            "nullable": true,
            "type": "string"
          },
          "value": {
            "description": "For formula annotations, this contains the formula. For other types, this is the primary key of the source object."
          },
          "width": {
            "description": "Width of annotation line",
            "minimum": 0.0,
            "type": "number"
          }
        },
        "required": [
          "name",
          "show",
          "showMarkers",
          "value"
        ],
        "type": "object"
      },
      "AnnotationLayerRestApi.get": {
        "properties": {
          "descr": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "name": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "AnnotationLayerRestApi.get_list": {
        "properties": {
          "changed_by": {
            "$ref": "#/components/schemas/AnnotationLayerRestApi.get_list.User1"
          },
          "changed_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "changed_on_delta_humanized": {
            "readOnly": true
          },
          "created_by": {
            "$ref": "#/components/schemas/AnnotationLayerRestApi.get_list.User"
          },
          "created_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "descr": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "name": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "AnnotationLayerRestApi.get_list.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "AnnotationLayerRestApi.get_list.User1": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "AnnotationLayerRestApi.post": {
        "properties": {
          "descr": {
            "description": "Give a description for this annotation layer",
            "nullable": true,
            "type": "string"
          },
          "name": {
            "description": "The annotation layer name",
            "maxLength": 250,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "AnnotationLayerRestApi.put": {
        "properties": {
          "descr": {
            "description": "Give a description for this annotation layer",
            "type": "string"
          },
          "name": {
            "description": "The annotation layer name",
            "maxLength": 250,
            "minLength": 1,
            "type": "string"
          }
        },
        "type": "object"
      },
      "AnnotationRestApi.get": {
        "properties": {
          "end_dttm": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "json_metadata": {
            "nullable": true,
            "type": "string"
          },
          "layer": {
            "$ref": "#/components/schemas/AnnotationRestApi.get.AnnotationLayer"
          },
          "long_descr": {
            "nullable": true,
            "type": "string"
          },
          "short_descr": {
            "maxLength": 500,
            "nullable": true,
            "type": "string"
          },
          "start_dttm": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "layer"
        ],
        "type": "object"
      },
      "AnnotationRestApi.get.AnnotationLayer": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "AnnotationRestApi.get_list": {
        "properties": {
          "changed_by": {
            "$ref": "#/components/schemas/AnnotationRestApi.get_list.User"
          },
          "changed_on_delta_humanized": {
            "readOnly": true
          },
          "created_by": {
            "$ref": "#/components/schemas/AnnotationRestApi.get_list.User1"
          },
          "end_dttm": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "long_descr": {
            "nullable": true,
            "type": "string"
          },
          "short_descr": {
            "maxLength": 500,
            "nullable": true,
            "type": "string"
          },
          "start_dttm": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "AnnotationRestApi.get_list.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          }
        },
        "required": [
          "first_name"
        ],
        "type": "object"
      },
      "AnnotationRestApi.get_list.User1": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          }
        },
        "required": [
          "first_name"
        ],
        "type": "object"
      },
      "AnnotationRestApi.post": {
        "properties": {
          "end_dttm": {
            "description": "The annotation end date time",
            "format": "date-time",
            "type": "string"
          },
          "json_metadata": {
            "description": "JSON metadata",
            "nullable": true,
            "type": "string"
          },
          "long_descr": {
            "description": "A long description",
            "nullable": true,
            "type": "string"
          },
          "short_descr": {
            "description": "A short description",
            "maxLength": 500,
            "minLength": 1,
            "type": "string"
          },
          "start_dttm": {
            "description": "The annotation start date time",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "end_dttm",
          "short_descr",
          "start_dttm"
        ],
        "type": "object"
      },
      "AnnotationRestApi.put": {
        "properties": {
          "end_dttm": {
            "description": "The annotation end date time",
            "format": "date-time",
            "type": "string"
          },
          "json_metadata": {
            "description": "JSON metadata",
            "nullable": true,
            "type": "string"
          },
          "long_descr": {
            "description": "A long description",
            "nullable": true,
            "type": "string"
          },
          "short_descr": {
            "description": "A short description",
            "maxLength": 500,
            "minLength": 1,
            "type": "string"
          },
          "start_dttm": {
            "description": "The annotation start date time",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "AvailableDomainsSchema": {
        "properties": {
          "domains": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "CacheInvalidationRequestSchema": {
        "properties": {
          "datasource_uids": {
            "description": "The uid of the dataset/datasource this new chart will use. A complete datasource identification needs `datasource_uid` ",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "datasources": {
            "description": "A list of the data source and database names",
            "items": {
              "$ref": "#/components/schemas/Datasource"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "CacheRestApi.get": {
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "CacheRestApi.get_list": {
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "CacheRestApi.post": {
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "CacheRestApi.put": {
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "CatalogsResponseSchema": {
        "properties": {
          "result": {
            "items": {
              "description": "A database catalog name",
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ChartCacheScreenshotResponseSchema": {
        "properties": {
          "cache_key": {
            "description": "The cache key",
            "type": "string"
          },
          "chart_url": {
            "description": "The url to render the chart",
            "type": "string"
          },
          "image_url": {
            "description": "The url to fetch the screenshot",
            "type": "string"
          },
          "task_status": {
            "description": "The status of the async screenshot",
            "type": "string"
          },
          "task_updated_at": {
            "description": "The timestamp of the last change in status",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ChartCacheWarmUpRequestSchema": {
        "properties": {
          "chart_id": {
            "description": "The ID of the chart to warm up cache for",
            "type": "integer"
          },
          "dashboard_id": {
            "description": "The ID of the dashboard to get filters for when warming cache",
            "type": "integer"
          },
          "extra_filters": {
            "description": "Extra filters to apply when warming up cache",
            "type": "string"
          }
        },
        "required": [
          "chart_id"
        ],
        "type": "object"
      },
      "ChartCacheWarmUpResponseSchema": {
        "properties": {
          "result": {
            "description": "A list of each chart's warmup status and errors if any",
            "items": {
              "$ref": "#/components/schemas/ChartCacheWarmUpResponseSingle"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ChartCacheWarmUpResponseSingle": {
        "properties": {
          "chart_id": {
            "description": "The ID of the chart the status belongs to",
            "type": "integer"
          },
          "viz_error": {
            "description": "Error that occurred when warming cache for chart",
            "type": "string"
          },
          "viz_status": {
            "description": "Status of the underlying query for the viz",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ChartDataAdhocMetricSchema": {
        "properties": {
          "aggregate": {
            "description": "Aggregation operator.Only required for simple expression types.",
            "enum": [
              "AVG",
              "COUNT",
              "COUNT_DISTINCT",
              "MAX",
              "MIN",
              "SUM"
            ],
            "type": "string"
          },
          "column": {
            "$ref": "#/components/schemas/ChartDataColumn"
          },
          "expressionType": {
            "description": "Simple or SQL metric",
            "enum": [
              "SIMPLE",
              "SQL"
            ],
            "example": "SQL",
            "type": "string"
          },
          "hasCustomLabel": {
            "description": "When false, the label will be automatically generated based on the aggregate expression. When true, a custom label has to be specified.",
            "example": true,
            "type": "boolean"
          },
          "isExtra": {
            "description": "Indicates if the filter has been added by a filter component as opposed to being a part of the original query.",
            "type": "boolean"
          },
          "label": {
            "description": "Label for the metric. Is automatically generated unlesshasCustomLabel is true, in which case label must be defined.",
            "example": "Weighted observations",
            "type": "string"
          },
          "optionName": {
            "description": "Unique identifier. Can be any string value, as long as all metrics have a unique identifier. If undefined, a random namewill be generated.",
            "example": "metric_aec60732-fac0-4b17-b736-93f1a5c93e30",
            "type": "string"
          },
          "sqlExpression": {
            "description": "The metric as defined by a SQL aggregate expression. Only required for SQL expression type.",
            "example": "SUM(weight * observations) / SUM(weight)",
            "type": "string"
          },
          "timeGrain": {
            "description": "Optional time grain for temporal filters",
            "example": "PT1M",
            "type": "string"
          }
        },
        "required": [
          "expressionType"
        ],
        "type": "object"
      },
      "ChartDataAggregateOptionsSchema": {
        "properties": {
          "aggregates": {
            "description": "The keys are the name of the aggregate column to be created, and the values specify the details of how to apply the aggregation. If an operator requires additional options, these can be passed here to be unpacked in the operator call. The following numpy operators are supported: average, argmin, argmax, cumsum, cumprod, max, mean, median, nansum, nanmin, nanmax, nanmean, nanmedian, min, percentile, prod, product, std, sum, var. Any options required by the operator can be passed to the `options` object.\n\nIn the example, a new column `first_quantile` is created based on values in the column `my_col` using the `percentile` operator with the `q=0.25` parameter.",
            "example": {
              "first_quantile": {
                "column": "my_col",
                "operator": "percentile",
                "options": {
                  "q": 0.25
                }
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "ChartDataAsyncResponseSchema": {
        "properties": {
          "channel_id": {
            "description": "Unique session async channel ID",
            "type": "string"
          },
          "job_id": {
            "description": "Unique async job ID",
            "type": "string"
          },
          "result_url": {
            "description": "Unique result URL for fetching async query data",
            "type": "string"
          },
          "status": {
            "description": "Status value for async job",
            "type": "string"
          },
          "user_id": {
            "description": "Requesting user ID",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ChartDataBoxplotOptionsSchema": {
        "properties": {
          "groupby": {
            "items": {
              "description": "Columns by which to group the query.",
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "metrics": {
            "description": "Aggregate expressions. Metrics can be passed as both references to datasource metrics (strings), or ad-hoc metricswhich are defined only within the query object. See `ChartDataAdhocMetricSchema` for the structure of ad-hoc metrics. When metrics is undefined or null, the query is executed without a groupby. However, when metrics is an array (length >= 0), a groupby clause is added to the query.",
            "items": {},
            "nullable": true,
            "type": "array"
          },
          "percentiles": {
            "description": "Upper and lower percentiles for percentile whisker type.",
            "example": [
              1,
              99
            ]
          },
          "whisker_type": {
            "description": "Whisker type. Any numpy function will work.",
            "enum": [
              "tukey",
              "min/max",
              "percentile"
            ],
            "example": "tukey",
            "type": "string"
          }
        },
        "required": [
          "whisker_type"
        ],
        "type": "object"
      },
      "ChartDataColumn": {
        "properties": {
          "column_name": {
            "description": "The name of the target column",
            "example": "mycol",
            "type": "string"
          },
          "type": {
            "description": "Type of target column",
            "example": "BIGINT",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ChartDataContributionOptionsSchema": {
        "properties": {
          "orientation": {
            "description": "Should cell values be calculated across the row or column.",
            "enum": [
              "row",
              "column"
            ],
            "example": "row",
            "type": "string"
          }
        },
        "required": [
          "orientation"
        ],
        "type": "object"
      },
      "ChartDataDatasource": {
        "properties": {
          "id": {
            "description": "Datasource id",
            "type": "integer"
          },
          "type": {
            "description": "Datasource type",
            "enum": [
              "table",
              "dataset",
              "query",
              "saved_query",
              "view"
            ],
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "ChartDataExtras": {
        "properties": {
          "having": {
            "description": "HAVING clause to be added to aggregate queries using AND operator.",
            "type": "string"
          },
          "instant_time_comparison_range": {
            "description": "This is only set using the new time comparison controls that is made available in some plugins behind the experimental feature flag.",
            "nullable": true,
            "type": "string"
          },
          "relative_end": {
            "description": "End time for relative time deltas. Default: `config[\"DEFAULT_RELATIVE_START_TIME\"]`",
            "enum": [
              "today",
              "now"
            ],
            "type": "string"
          },
          "relative_start": {
            "description": "Start time for relative time deltas. Default: `config[\"DEFAULT_RELATIVE_START_TIME\"]`",
            "enum": [
              "today",
              "now"
            ],
            "type": "string"
          },
          "time_grain_sqla": {
            "description": "To what level of granularity should the temporal column be aggregated. Supports [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Durations) durations.",
            "enum": [
              "PT1S",
              "PT5S",
              "PT30S",
              "PT1M",
              "PT5M",
              "PT10M",
              "PT15M",
              "PT30M",
              "PT1H",
              "PT6H",
              "P1D",
              "P1W",
              "P1M",
              "P3M",
              "P1Y",
              "1969-12-28T00:00:00Z/P1W",
              "1969-12-29T00:00:00Z/P1W",
              "P1W/1970-01-03T00:00:00Z",
              "P1W/1970-01-04T00:00:00Z",
              null
            ],
            "example": "P1D",
            "nullable": true,
            "type": "string"
          },
          "where": {
            "description": "WHERE clause to be added to queries using AND operator.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ChartDataFilter": {
        "properties": {
          "col": {
            "description": "The column to filter by. Can be either a string (physical or saved expression) or an object (adhoc column)",
            "example": "country"
          },
          "grain": {
            "description": "Optional time grain for temporal filters",
            "example": "PT1M",
            "type": "string"
          },
          "isExtra": {
            "description": "Indicates if the filter has been added by a filter component as opposed to being a part of the original query.",
            "type": "boolean"
          },
          "op": {
            "description": "The comparison operator.",
            "enum": [
              "==",
              "!=",
              ">",
              "<",
              ">=",
              "<=",
              "LIKE",
              "NOT LIKE",
              "ILIKE",
              "IS NULL",
              "IS NOT NULL",
              "IN",
              "NOT IN",
              "IS TRUE",
              "IS FALSE",
              "TEMPORAL_RANGE"
            ],
            "example": "IN",
            "type": "string"
          },
          "val": {
            "description": "The value or values to compare against. Can be a string, integer, decimal, None or list, depending on the operator.",
            "example": [
              "China",
              "France",
              "Japan"
            ],
            "nullable": true
          }
        },
        "required": [
          "col",
          "op"
        ],
        "type": "object"
      },
      "ChartDataGeodeticParseOptionsSchema": {
        "properties": {
          "altitude": {
            "description": "Name of target column for decoded altitude. If omitted, altitude information in geodetic string is ignored.",
            "type": "string"
          },
          "geodetic": {
            "description": "Name of source column containing geodetic point strings",
            "type": "string"
          },
          "latitude": {
            "description": "Name of target column for decoded latitude",
            "type": "string"
          },
          "longitude": {
            "description": "Name of target column for decoded longitude",
            "type": "string"
          }
        },
        "required": [
          "geodetic",
          "latitude",
          "longitude"
        ],
        "type": "object"
      },
      "ChartDataGeohashDecodeOptionsSchema": {
        "properties": {
          "geohash": {
            "description": "Name of source column containing geohash string",
            "type": "string"
          },
          "latitude": {
            "description": "Name of target column for decoded latitude",
            "type": "string"
          },
          "longitude": {
            "description": "Name of target column for decoded longitude",
            "type": "string"
          }
        },
        "required": [
          "geohash",
          "latitude",
          "longitude"
        ],
        "type": "object"
      },
      "ChartDataGeohashEncodeOptionsSchema": {
        "properties": {
          "geohash": {
            "description": "Name of target column for encoded geohash string",
            "type": "string"
          },
          "latitude": {
            "description": "Name of source latitude column",
            "type": "string"
          },
          "longitude": {
            "description": "Name of source longitude column",
            "type": "string"
          }
        },
        "required": [
          "geohash",
          "latitude",
          "longitude"
        ],
        "type": "object"
      },
      "ChartDataPivotOptionsSchema": {
        "properties": {
          "aggregates": {
            "description": "The keys are the name of the aggregate column to be created, and the values specify the details of how to apply the aggregation. If an operator requires additional options, these can be passed here to be unpacked in the operator call. The following numpy operators are supported: average, argmin, argmax, cumsum, cumprod, max, mean, median, nansum, nanmin, nanmax, nanmean, nanmedian, min, percentile, prod, product, std, sum, var. Any options required by the operator can be passed to the `options` object.\n\nIn the example, a new column `first_quantile` is created based on values in the column `my_col` using the `percentile` operator with the `q=0.25` parameter.",
            "example": {
              "first_quantile": {
                "column": "my_col",
                "operator": "percentile",
                "options": {
                  "q": 0.25
                }
              }
            },
            "type": "object"
          },
          "column_fill_value": {
            "description": "Value to replace missing pivot columns names with.",
            "type": "string"
          },
          "columns": {
            "description": "Columns to group by on the table columns",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "drop_missing_columns": {
            "description": "Do not include columns whose entries are all missing (default: `true`).",
            "type": "boolean"
          },
          "marginal_distribution_name": {
            "description": "Name of marginal distribution row/column. (default: `All`)",
            "type": "string"
          },
          "marginal_distributions": {
            "description": "Add totals for row/column. (default: `false`)",
            "type": "boolean"
          },
          "metric_fill_value": {
            "description": "Value to replace missing values with in aggregate calculations.",
            "type": "number"
          }
        },
        "type": "object"
      },
      "ChartDataPostProcessingOperation": {
        "properties": {
          "operation": {
            "description": "Post processing operation type",
            "enum": [
              "aggregate",
              "boxplot",
              "compare",
              "contribution",
              "cum",
              "diff",
              "escape_separator",
              "flatten",
              "geodetic_parse",
              "geohash_decode",
              "geohash_encode",
              "histogram",
              "pivot",
              "prophet",
              "rank",
              "rename",
              "resample",
              "rolling",
              "select",
              "sort",
              "unescape_separator"
            ],
            "example": "aggregate",
            "type": "string"
          },
          "options": {
            "description": "Options specifying how to perform the operation. Please refer to the respective post processing operation option schemas. For example, `ChartDataPostProcessingOperationOptions` specifies the required options for the pivot operation.",
            "example": {
              "aggregates": {
                "age_mean": {
                  "column": "age",
                  "operator": "mean"
                },
                "age_q1": {
                  "column": "age",
                  "operator": "percentile",
                  "options": {
                    "q": 0.25
                  }
                }
              },
              "groupby": [
                "country",
                "gender"
              ]
            },
            "type": "object"
          }
        },
        "required": [
          "operation"
        ],
        "type": "object"
      },
      "ChartDataProphetOptionsSchema": {
        "properties": {
          "confidence_interval": {
            "description": "Width of predicted confidence interval",
            "example": 0.8,
            "maximum": 1.0,
            "minimum": 0.0,
            "type": "number"
          },
          "monthly_seasonality": {
            "description": "Should monthly seasonality be applied. An integer value will specify Fourier order of seasonality, `None` will automatically detect seasonality.",
            "example": false
          },
          "periods": {
            "description": "Time periods (in units of `time_grain`) to predict into the future",
            "example": 7,
            "type": "integer"
          },
          "time_grain": {
            "description": "Time grain used to specify time period increments in prediction. Supports [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Durations) durations.",
            "enum": [
              "PT1S",
              "PT5S",
              "PT30S",
              "PT1M",
              "PT5M",
              "PT10M",
              "PT15M",
              "PT30M",
              "PT1H",
              "PT6H",
              "P1D",
              "P1W",
              "P1M",
              "P3M",
              "P1Y",
              "1969-12-28T00:00:00Z/P1W",
              "1969-12-29T00:00:00Z/P1W",
              "P1W/1970-01-03T00:00:00Z",
              "P1W/1970-01-04T00:00:00Z"
            ],
            "example": "P1D",
            "type": "string"
          },
          "weekly_seasonality": {
            "description": "Should weekly seasonality be applied. An integer value will specify Fourier order of seasonality, `None` will automatically detect seasonality.",
            "example": false
          },
          "yearly_seasonality": {
            "description": "Should yearly seasonality be applied. An integer value will specify Fourier order of seasonality, `None` will automatically detect seasonality.",
            "example": false
          }
        },
        "required": [
          "confidence_interval",
          "periods",
          "time_grain"
        ],
        "type": "object"
      },
      "ChartDataQueryContextSchema": {
        "properties": {
          "custom_cache_timeout": {
            "description": "Override the default cache timeout",
            "nullable": true,
            "type": "integer"
          },
          "datasource": {
            "$ref": "#/components/schemas/ChartDataDatasource"
          },
          "force": {
            "description": "Should the queries be forced to load from the source. Default: `false`",
            "nullable": true,
            "type": "boolean"
          },
          "form_data": {
            "nullable": true
          },
          "queries": {
            "items": {
              "$ref": "#/components/schemas/ChartDataQueryObject"
            },
            "type": "array"
          },
          "result_format": {
            "enum": [
              "csv",
              "json",
              "xlsx"
            ]
          },
          "result_type": {
            "enum": [
              "columns",
              "full",
              "query",
              "results",
              "samples",
              "timegrains",
              "post_processed",
              "drill_detail"
            ]
          }
        },
        "type": "object"
      },
      "ChartDataQueryObject": {
        "properties": {
          "annotation_layers": {
            "description": "Annotation layers to apply to chart",
            "items": {
              "$ref": "#/components/schemas/AnnotationLayer"
            },
            "nullable": true,
            "type": "array"
          },
          "applied_time_extras": {
            "description": "A mapping of temporal extras that have been applied to the query",
            "example": {
              "__time_range": "1 year ago : now"
            },
            "nullable": true,
            "type": "object"
          },
          "apply_fetch_values_predicate": {
            "description": "Add fetch values predicate (where clause) to query if defined in datasource",
            "nullable": true,
            "type": "boolean"
          },
          "columns": {
            "description": "Columns which to select in the query.",
            "items": {},
            "nullable": true,
            "type": "array"
          },
          "datasource": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ChartDataDatasource"
              }
            ],
            "nullable": true
          },
          "extras": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ChartDataExtras"
              }
            ],
            "description": "Extra parameters to add to the query.",
            "nullable": true
          },
          "filters": {
            "items": {
              "$ref": "#/components/schemas/ChartDataFilter"
            },
            "nullable": true,
            "type": "array"
          },
          "granularity": {
            "description": "Name of temporal column used for time filtering. ",
            "nullable": true,
            "type": "string"
          },
          "granularity_sqla": {
            "deprecated": true,
            "description": "Name of temporal column used for time filtering for SQL datasources. This field is deprecated, use `granularity` instead.",
            "nullable": true,
            "type": "string"
          },
          "group_others_when_limit_reached": {
            "default": false,
            "description": "When true, groups remaining series into an 'Others' category when series limit is reached. Prevents incomplete data.",
            "nullable": true,
            "type": "boolean"
          },
          "groupby": {
            "description": "Columns by which to group the query. This field is deprecated, use `columns` instead.",
            "items": {},
            "nullable": true,
            "type": "array"
          },
          "having": {
            "deprecated": true,
            "description": "HAVING clause to be added to aggregate queries using AND operator. This field is deprecated and should be passed to `extras`.",
            "nullable": true,
            "type": "string"
          },
          "is_rowcount": {
            "description": "Should the rowcount of the actual query be returned",
            "nullable": true,
            "type": "boolean"
          },
          "is_timeseries": {
            "description": "Is the `query_object` a timeseries.",
            "nullable": true,
            "type": "boolean"
          },
          "metrics": {
            "description": "Aggregate expressions. Metrics can be passed as both references to datasource metrics (strings), or ad-hoc metricswhich are defined only within the query object. See `ChartDataAdhocMetricSchema` for the structure of ad-hoc metrics.",
            "items": {},
            "nullable": true,
            "type": "array"
          },
          "order_desc": {
            "description": "Reverse order. Default: `false`",
            "nullable": true,
            "type": "boolean"
          },
          "orderby": {
            "description": "Expects a list of lists where the first element is the column name which to sort by, and the second element is a boolean.",
            "example": [
              [
                "my_col_1",
                false
              ],
              [
                "my_col_2",
                true
              ]
            ],
            "items": {},
            "nullable": true,
            "type": "array"
          },
          "post_processing": {
            "description": "Post processing operations to be applied to the result set. Operations are applied to the result set in sequential order.",
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/ChartDataPostProcessingOperation"
                }
              ],
              "nullable": true
            },
            "nullable": true,
            "type": "array"
          },
          "result_type": {
            "enum": [
              "columns",
              "full",
              "query",
              "results",
              "samples",
              "timegrains",
              "post_processed",
              "drill_detail",
              null
            ],
            "nullable": true
          },
          "row_limit": {
            "description": "Maximum row count (0=disabled). Default: `config[\"ROW_LIMIT\"]`",
            "minimum": 0,
            "nullable": true,
            "type": "integer"
          },
          "row_offset": {
            "description": "Number of rows to skip. Default: `0`",
            "minimum": 0,
            "nullable": true,
            "type": "integer"
          },
          "series_columns": {
            "description": "Columns to use when limiting series count. All columns must be present in the `columns` property. Requires `series_limit` and `series_limit_metric` to be set.",
            "items": {},
            "nullable": true,
            "type": "array"
          },
          "series_limit": {
            "description": "Maximum number of series. Requires `series` and `series_limit_metric` to be set.",
            "nullable": true,
            "type": "integer"
          },
          "series_limit_metric": {
            "description": "Metric used to limit timeseries queries by. Requires `series` and `series_limit` to be set.",
            "nullable": true
          },
          "time_offsets": {
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "time_range": {
            "description": "A time rage, either expressed as a colon separated string `since : until` or human readable freeform. Valid formats for `since` and `until` are: \n- ISO 8601\n- X days/years/hours/day/year/weeks\n- X days/years/hours/day/year/weeks ago\n- X days/years/hours/day/year/weeks from now\n\nAdditionally, the following freeform can be used:\n\n- Last day\n- Last week\n- Last month\n- Last quarter\n- Last year\n- No filter\n- Last X seconds/minutes/hours/days/weeks/months/years\n- Next X seconds/minutes/hours/days/weeks/months/years\n",
            "example": "Last week",
            "nullable": true,
            "type": "string"
          },
          "time_shift": {
            "description": "A human-readable date/time string. Please refer to [parsdatetime](https://github.com/bear/parsedatetime) documentation for details on valid values.",
            "nullable": true,
            "type": "string"
          },
          "timeseries_limit": {
            "description": "Maximum row count for timeseries queries. This field is deprecated, use `series_limit` instead.Default: `0`",
            "nullable": true,
            "type": "integer"
          },
          "timeseries_limit_metric": {
            "description": "Metric used to limit timeseries queries by. This field is deprecated, use `series_limit_metric` instead.",
            "nullable": true
          },
          "url_params": {
            "additionalProperties": {
              "description": "The value of the query parameter",
              "type": "string"
            },
            "description": "Optional query parameters passed to a dashboard or Explore  view",
            "nullable": true,
            "type": "object"
          },
          "where": {
            "deprecated": true,
            "description": "WHERE clause to be added to queries using AND operator.This field is deprecated and should be passed to `extras`.",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ChartDataResponseResult": {
        "properties": {
          "annotation_data": {
            "description": "All requested annotation data",
            "items": {
              "additionalProperties": {
                "type": "string"
              },
              "type": "object"
            },
            "nullable": true,
            "type": "array"
          },
          "applied_filters": {
            "description": "A list with applied filters",
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "cache_key": {
            "description": "Unique cache key for query object",
            "nullable": true,
            "type": "string"
          },
          "cache_timeout": {
            "description": "Cache timeout in following order: custom timeout, datasource timeout, cache default timeout, config default cache timeout.",
            "nullable": true,
            "type": "integer"
          },
          "cached_dttm": {
            "description": "Cache timestamp",
            "nullable": true,
            "type": "string"
          },
          "colnames": {
            "description": "A list of column names",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "coltypes": {
            "description": "A list of generic data types of each column",
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "data": {
            "description": "A list with results",
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "error": {
            "description": "Error",
            "nullable": true,
            "type": "string"
          },
          "from_dttm": {
            "description": "Start timestamp of time range",
            "nullable": true,
            "type": "integer"
          },
          "is_cached": {
            "description": "Is the result cached",
            "type": "boolean"
          },
          "query": {
            "description": "The executed query statement. May be absent when validation errors occur.",
            "nullable": true,
            "type": "string"
          },
          "rejected_filters": {
            "description": "A list with rejected filters",
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "rowcount": {
            "description": "Amount of rows in result set",
            "type": "integer"
          },
          "stacktrace": {
            "description": "Stacktrace if there was an error",
            "nullable": true,
            "type": "string"
          },
          "status": {
            "description": "Status of the query",
            "enum": [
              "stopped",
              "failed",
              "pending",
              "running",
              "scheduled",
              "success",
              "timed_out"
            ],
            "type": "string"
          },
          "to_dttm": {
            "description": "End timestamp of time range",
            "nullable": true,
            "type": "integer"
          }
        },
        "required": [
          "cache_key",
          "cache_timeout",
          "cached_dttm",
          "is_cached"
        ],
        "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": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "ChartDataRestApi.get_list": {
        "properties": {
          "cache_timeout": {
            "nullable": true,
            "type": "integer"
          },
          "certification_details": {
            "nullable": true,
            "type": "string"
          },
          "certified_by": {
            "nullable": true,
            "type": "string"
          },
          "changed_by": {
            "$ref": "#/components/schemas/ChartDataRestApi.get_list.User"
          },
          "changed_by_name": {
            "readOnly": true
          },
          "changed_on_delta_humanized": {
            "readOnly": true
          },
          "changed_on_dttm": {
            "readOnly": true
          },
          "changed_on_utc": {
            "readOnly": true
          },
          "created_by": {
            "$ref": "#/components/schemas/ChartDataRestApi.get_list.User1"
          },
          "created_by_name": {
            "readOnly": true
          },
          "created_on_delta_humanized": {
            "readOnly": true
          },
          "dashboards": {
            "$ref": "#/components/schemas/ChartDataRestApi.get_list.Dashboard"
          },
          "datasource_id": {
            "nullable": true,
            "type": "integer"
          },
          "datasource_name_text": {
            "readOnly": true
          },
          "datasource_type": {
            "maxLength": 200,
            "nullable": true,
            "type": "string"
          },
          "datasource_url": {
            "readOnly": true
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "description_markeddown": {
            "readOnly": true
          },
          "edit_url": {
            "readOnly": true
          },
          "form_data": {
            "readOnly": true
          },
          "id": {
            "type": "integer"
          },
          "is_managed_externally": {
            "type": "boolean"
          },
          "last_saved_at": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "last_saved_by": {
            "$ref": "#/components/schemas/ChartDataRestApi.get_list.User2"
          },
          "owners": {
            "$ref": "#/components/schemas/ChartDataRestApi.get_list.User3"
          },
          "params": {
            "nullable": true,
            "type": "string"
          },
          "slice_name": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          },
          "slice_url": {
            "readOnly": true
          },
          "table": {
            "$ref": "#/components/schemas/ChartDataRestApi.get_list.SqlaTable"
          },
          "tags": {
            "$ref": "#/components/schemas/ChartDataRestApi.get_list.Tag"
          },
          "thumbnail_url": {
            "readOnly": true
          },
          "url": {
            "readOnly": true
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "viz_type": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ChartDataRestApi.get_list.Dashboard": {
        "properties": {
          "dashboard_title": {
            "maxLength": 500,
            "nullable": true,
            "type": "string"
          },
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "ChartDataRestApi.get_list.SqlaTable": {
        "properties": {
          "default_endpoint": {
            "nullable": true,
            "type": "string"
          },
          "table_name": {
            "maxLength": 250,
            "type": "string"
          }
        },
        "required": [
          "table_name"
        ],
        "type": "object"
      },
      "ChartDataRestApi.get_list.Tag": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          },
          "type": {
            "enum": [
              1,
              2,
              3,
              4
            ]
          }
        },
        "type": "object"
      },
      "ChartDataRestApi.get_list.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "ChartDataRestApi.get_list.User1": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "ChartDataRestApi.get_list.User2": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "ChartDataRestApi.get_list.User3": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "ChartDataRestApi.post": {
        "properties": {
          "cache_timeout": {
            "description": "Duration (in seconds) of the caching timeout for this chart. Note this defaults to the datasource/table timeout if undefined.",
            "nullable": true,
            "type": "integer"
          },
          "certification_details": {
            "description": "Details of the certification",
            "nullable": true,
            "type": "string"
          },
          "certified_by": {
            "description": "Person or group that has certified this chart",
            "nullable": true,
            "type": "string"
          },
          "dashboards": {
            "items": {
              "description": "A list of dashboards to include this new chart to.",
              "type": "integer"
            },
            "type": "array"
          },
          "datasource_id": {
            "description": "The id of the dataset/datasource this new chart will use. A complete datasource identification needs `datasource_id` and `datasource_type`.",
            "type": "integer"
          },
          "datasource_name": {
            "description": "The datasource name.",
            "nullable": true,
            "type": "string"
          },
          "datasource_type": {
            "description": "The type of dataset/datasource identified on `datasource_id`.",
            "enum": [
              "table",
              "dataset",
              "query",
              "saved_query",
              "view"
            ],
            "type": "string"
          },
          "description": {
            "description": "A description of the chart propose.",
            "nullable": true,
            "type": "string"
          },
          "external_url": {
            "nullable": true,
            "type": "string"
          },
          "is_managed_externally": {
            "nullable": true,
            "type": "boolean"
          },
          "owners": {
            "items": {
              "description": "Owner are users ids allowed to delete or change this chart. If left empty you will be one of the owners of the chart.",
              "type": "integer"
            },
            "type": "array"
          },
          "params": {
            "description": "Parameters are generated dynamically when clicking the save or overwrite button in the explore view. This JSON object for power users who may want to alter specific parameters.",
            "nullable": true,
            "type": "string"
          },
          "query_context": {
            "description": "The query context represents the queries that need to run in order to generate the data the visualization, and in what format the data should be returned.",
            "nullable": true,
            "type": "string"
          },
          "query_context_generation": {
            "description": "The query context generation represents whether the query_contextis user generated or not so that it does not update user modifiedstate.",
            "nullable": true,
            "type": "boolean"
          },
          "slice_name": {
            "description": "The name of the chart.",
            "maxLength": 250,
            "minLength": 1,
            "type": "string"
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "viz_type": {
            "description": "The type of chart visualization used.",
            "example": [
              "bar",
              "area",
              "table"
            ],
            "maxLength": 250,
            "minLength": 0,
            "type": "string"
          }
        },
        "required": [
          "datasource_id",
          "datasource_type",
          "slice_name"
        ],
        "type": "object"
      },
      "ChartDataRestApi.put": {
        "properties": {
          "cache_timeout": {
            "description": "Duration (in seconds) of the caching timeout for this chart. Note this defaults to the datasource/table timeout if undefined.",
            "nullable": true,
            "type": "integer"
          },
          "certification_details": {
            "description": "Details of the certification",
            "nullable": true,
            "type": "string"
          },
          "certified_by": {
            "description": "Person or group that has certified this chart",
            "nullable": true,
            "type": "string"
          },
          "dashboards": {
            "items": {
              "description": "A list of dashboards to include this new chart to.",
              "type": "integer"
            },
            "type": "array"
          },
          "datasource_id": {
            "description": "The id of the dataset/datasource this new chart will use. A complete datasource identification needs `datasource_id` and `datasource_type`.",
            "nullable": true,
            "type": "integer"
          },
          "datasource_type": {
            "description": "The type of dataset/datasource identified on `datasource_id`.",
            "enum": [
              "table",
              "dataset",
              "query",
              "saved_query",
              "view",
              null
            ],
            "nullable": true,
            "type": "string"
          },
          "description": {
            "description": "A description of the chart propose.",
            "nullable": true,
            "type": "string"
          },
          "external_url": {
            "nullable": true,
            "type": "string"
          },
          "is_managed_externally": {
            "nullable": true,
            "type": "boolean"
          },
          "owners": {
            "items": {
              "description": "Owner are users ids allowed to delete or change this chart. If left empty you will be one of the owners of the chart.",
              "type": "integer"
            },
            "type": "array"
          },
          "params": {
            "description": "Parameters are generated dynamically when clicking the save or overwrite button in the explore view. This JSON object for power users who may want to alter specific parameters.",
            "nullable": true,
            "type": "string"
          },
          "query_context": {
            "description": "The query context represents the queries that need to run in order to generate the data the visualization, and in what format the data should be returned.",
            "nullable": true,
            "type": "string"
          },
          "query_context_generation": {
            "description": "The query context generation represents whether the query_contextis user generated or not so that it does not update user modifiedstate.",
            "nullable": true,
            "type": "boolean"
          },
          "slice_name": {
            "description": "The name of the chart.",
            "maxLength": 250,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "tags": {
            "items": {
              "description": "Tags to be associated with the chart",
              "type": "integer"
            },
            "type": "array"
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "viz_type": {
            "description": "The type of chart visualization used.",
            "example": [
              "bar",
              "area",
              "table"
            ],
            "maxLength": 250,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ChartDataRollingOptionsSchema": {
        "properties": {
          "center": {
            "description": "Should the label be at the center of the window.Default: `false`",
            "example": false,
            "type": "boolean"
          },
          "min_periods": {
            "description": "The minimum amount of periods required for a row to be included in the result set.",
            "example": 7,
            "type": "integer"
          },
          "rolling_type": {
            "description": "Type of rolling window. Any numpy function will work.",
            "enum": [
              "average",
              "argmin",
              "argmax",
              "cumsum",
              "cumprod",
              "max",
              "mean",
              "median",
              "nansum",
              "nanmin",
              "nanmax",
              "nanmean",
              "nanmedian",
              "nanpercentile",
              "min",
              "percentile",
              "prod",
              "product",
              "std",
              "sum",
              "var"
            ],
            "example": "percentile",
            "type": "string"
          },
          "rolling_type_options": {
            "description": "Optional options to pass to rolling method. Needed for e.g. quantile operation.",
            "example": {},
            "type": "object"
          },
          "win_type": {
            "description": "Type of window function. See [SciPy window functions](https://docs.scipy.org/doc/scipy/reference /signal.windows.html#module-scipy.signal.windows) for more details. Some window functions require passing additional parameters to `rolling_type_options`. For instance, to use `gaussian`, the parameter `std` needs to be provided.",
            "enum": [
              "boxcar",
              "triang",
              "blackman",
              "hamming",
              "bartlett",
              "parzen",
              "bohman",
              "blackmanharris",
              "nuttall",
              "barthann",
              "kaiser",
              "gaussian",
              "general_gaussian",
              "slepian",
              "exponential"
            ],
            "type": "string"
          },
          "window": {
            "description": "Size of the rolling window in days.",
            "example": 7,
            "type": "integer"
          }
        },
        "required": [
          "rolling_type",
          "window"
        ],
        "type": "object"
      },
      "ChartDataSelectOptionsSchema": {
        "properties": {
          "columns": {
            "description": "Columns which to select from the input data, in the desired order. If columns are renamed, the original column name should be referenced here.",
            "example": [
              "country",
              "gender",
              "age"
            ],
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "exclude": {
            "description": "Columns to exclude from selection.",
            "example": [
              "my_temp_column"
            ],
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "rename": {
            "description": "columns which to rename, mapping source column to target column. For instance, `{'y': 'y2'}` will rename the column `y` to `y2`.",
            "example": [
              {
                "age": "average_age"
              }
            ],
            "items": {
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ChartDataSortOptionsSchema": {
        "properties": {
          "aggregates": {
            "description": "The keys are the name of the aggregate column to be created, and the values specify the details of how to apply the aggregation. If an operator requires additional options, these can be passed here to be unpacked in the operator call. The following numpy operators are supported: average, argmin, argmax, cumsum, cumprod, max, mean, median, nansum, nanmin, nanmax, nanmean, nanmedian, min, percentile, prod, product, std, sum, var. Any options required by the operator can be passed to the `options` object.\n\nIn the example, a new column `first_quantile` is created based on values in the column `my_col` using the `percentile` operator with the `q=0.25` parameter.",
            "example": {
              "first_quantile": {
                "column": "my_col",
                "operator": "percentile",
                "options": {
                  "q": 0.25
                }
              }
            },
            "type": "object"
          },
          "columns": {
            "description": "columns by by which to sort. The key specifies the column name, value specifies if sorting in ascending order.",
            "example": {
              "country": true,
              "gender": false
            },
            "type": "object"
          }
        },
        "required": [
          "columns"
        ],
        "type": "object"
      },
      "ChartEntityResponseSchema": {
        "properties": {
          "cache_timeout": {
            "description": "Duration (in seconds) of the caching timeout for this chart. Note this defaults to the datasource/table timeout if undefined.",
            "type": "integer"
          },
          "certification_details": {
            "description": "Details of the certification",
            "type": "string"
          },
          "certified_by": {
            "description": "Person or group that has certified this chart",
            "type": "string"
          },
          "changed_on": {
            "description": "The ISO date that the chart was last changed.",
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "description": "A description of the chart propose.",
            "type": "string"
          },
          "description_markeddown": {
            "description": "Sanitized HTML version of the chart description.",
            "type": "string"
          },
          "form_data": {
            "description": "Form data from the Explore controls used to form the chart's data query.",
            "type": "object"
          },
          "id": {
            "description": "The id of the chart.",
            "type": "integer"
          },
          "slice_name": {
            "description": "The name of the chart.",
            "type": "string"
          },
          "slice_url": {
            "description": "The URL of the chart.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ChartFavStarResponseResult": {
        "properties": {
          "id": {
            "description": "The Chart id",
            "type": "integer"
          },
          "value": {
            "description": "The FaveStar value",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "ChartGetDatasourceObjectDataResponse": {
        "properties": {
          "datasource_id": {
            "description": "The datasource identifier",
            "type": "integer"
          },
          "datasource_type": {
            "description": "The datasource type",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "ChartGetDatasourceObjectResponse": {
        "properties": {
          "label": {
            "description": "The name of the datasource",
            "type": "string"
          },
          "value": {
            "$ref": "#/components/schemas/ChartGetDatasourceObjectDataResponse"
          }
        },
        "type": "object"
      },
      "ChartGetDatasourceResponseSchema": {
        "properties": {
          "count": {
            "description": "The total number of datasources",
            "type": "integer"
          },
          "result": {
            "$ref": "#/components/schemas/ChartGetDatasourceObjectResponse"
          }
        },
        "type": "object"
      },
      "ChartGetResponseSchema": {
        "properties": {
          "cache_timeout": {
            "type": "string"
          },
          "certification_details": {
            "type": "string"
          },
          "certified_by": {
            "type": "string"
          },
          "changed_on_delta_humanized": {
            "type": "string"
          },
          "dashboards": {
            "items": {
              "$ref": "#/components/schemas/Dashboard"
            },
            "type": "array"
          },
          "datasource_id": {
            "type": "integer"
          },
          "datasource_name_text": {
            "readOnly": true
          },
          "datasource_type": {
            "type": "string"
          },
          "datasource_url": {
            "readOnly": true
          },
          "datasource_uuid": {
            "format": "uuid",
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "id": {
            "description": "The id of the chart.",
            "type": "integer"
          },
          "is_managed_externally": {
            "type": "boolean"
          },
          "owners": {
            "items": {
              "$ref": "#/components/schemas/User"
            },
            "type": "array"
          },
          "params": {
            "type": "string"
          },
          "query_context": {
            "type": "string"
          },
          "slice_name": {
            "type": "string"
          },
          "tags": {
            "items": {
              "$ref": "#/components/schemas/Tag"
            },
            "type": "array"
          },
          "thumbnail_url": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "uuid": {
            "format": "uuid",
            "type": "string"
          },
          "viz_type": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ChartRestApi.get": {
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "ChartRestApi.get_list": {
        "properties": {
          "cache_timeout": {
            "nullable": true,
            "type": "integer"
          },
          "certification_details": {
            "nullable": true,
            "type": "string"
          },
          "certified_by": {
            "nullable": true,
            "type": "string"
          },
          "changed_by": {
            "$ref": "#/components/schemas/ChartRestApi.get_list.User"
          },
          "changed_by_name": {
            "readOnly": true
          },
          "changed_on_delta_humanized": {
            "readOnly": true
          },
          "changed_on_dttm": {
            "readOnly": true
          },
          "changed_on_utc": {
            "readOnly": true
          },
          "created_by": {
            "$ref": "#/components/schemas/ChartRestApi.get_list.User1"
          },
          "created_by_name": {
            "readOnly": true
          },
          "created_on_delta_humanized": {
            "readOnly": true
          },
          "dashboards": {
            "$ref": "#/components/schemas/ChartRestApi.get_list.Dashboard"
          },
          "datasource_id": {
            "nullable": true,
            "type": "integer"
          },
          "datasource_name_text": {
            "readOnly": true
          },
          "datasource_type": {
            "maxLength": 200,
            "nullable": true,
            "type": "string"
          },
          "datasource_url": {
            "readOnly": true
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "description_markeddown": {
            "readOnly": true
          },
          "edit_url": {
            "readOnly": true
          },
          "form_data": {
            "readOnly": true
          },
          "id": {
            "type": "integer"
          },
          "is_managed_externally": {
            "type": "boolean"
          },
          "last_saved_at": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "last_saved_by": {
            "$ref": "#/components/schemas/ChartRestApi.get_list.User2"
          },
          "owners": {
            "$ref": "#/components/schemas/ChartRestApi.get_list.User3"
          },
          "params": {
            "nullable": true,
            "type": "string"
          },
          "slice_name": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          },
          "slice_url": {
            "readOnly": true
          },
          "table": {
            "$ref": "#/components/schemas/ChartRestApi.get_list.SqlaTable"
          },
          "tags": {
            "$ref": "#/components/schemas/ChartRestApi.get_list.Tag"
          },
          "thumbnail_url": {
            "readOnly": true
          },
          "url": {
            "readOnly": true
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "viz_type": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ChartRestApi.get_list.Dashboard": {
        "properties": {
          "dashboard_title": {
            "maxLength": 500,
            "nullable": true,
            "type": "string"
          },
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "ChartRestApi.get_list.SqlaTable": {
        "properties": {
          "default_endpoint": {
            "nullable": true,
            "type": "string"
          },
          "table_name": {
            "maxLength": 250,
            "type": "string"
          }
        },
        "required": [
          "table_name"
        ],
        "type": "object"
      },
      "ChartRestApi.get_list.Tag": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          },
          "type": {
            "enum": [
              1,
              2,
              3,
              4
            ]
          }
        },
        "type": "object"
      },
      "ChartRestApi.get_list.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "ChartRestApi.get_list.User1": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "ChartRestApi.get_list.User2": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "ChartRestApi.get_list.User3": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "ChartRestApi.post": {
        "properties": {
          "cache_timeout": {
            "description": "Duration (in seconds) of the caching timeout for this chart. Note this defaults to the datasource/table timeout if undefined.",
            "nullable": true,
            "type": "integer"
          },
          "certification_details": {
            "description": "Details of the certification",
            "nullable": true,
            "type": "string"
          },
          "certified_by": {
            "description": "Person or group that has certified this chart",
            "nullable": true,
            "type": "string"
          },
          "dashboards": {
            "items": {
              "description": "A list of dashboards to include this new chart to.",
              "type": "integer"
            },
            "type": "array"
          },
          "datasource_id": {
            "description": "The id of the dataset/datasource this new chart will use. A complete datasource identification needs `datasource_id` and `datasource_type`.",
            "type": "integer"
          },
          "datasource_name": {
            "description": "The datasource name.",
            "nullable": true,
            "type": "string"
          },
          "datasource_type": {
            "description": "The type of dataset/datasource identified on `datasource_id`.",
            "enum": [
              "table",
              "dataset",
              "query",
              "saved_query",
              "view"
            ],
            "type": "string"
          },
          "description": {
            "description": "A description of the chart propose.",
            "nullable": true,
            "type": "string"
          },
          "external_url": {
            "nullable": true,
            "type": "string"
          },
          "is_managed_externally": {
            "nullable": true,
            "type": "boolean"
          },
          "owners": {
            "items": {
              "description": "Owner are users ids allowed to delete or change this chart. If left empty you will be one of the owners of the chart.",
              "type": "integer"
            },
            "type": "array"
          },
          "params": {
            "description": "Parameters are generated dynamically when clicking the save or overwrite button in the explore view. This JSON object for power users who may want to alter specific parameters.",
            "nullable": true,
            "type": "string"
          },
          "query_context": {
            "description": "The query context represents the queries that need to run in order to generate the data the visualization, and in what format the data should be returned.",
            "nullable": true,
            "type": "string"
          },
          "query_context_generation": {
            "description": "The query context generation represents whether the query_contextis user generated or not so that it does not update user modifiedstate.",
            "nullable": true,
            "type": "boolean"
          },
          "slice_name": {
            "description": "The name of the chart.",
            "maxLength": 250,
            "minLength": 1,
            "type": "string"
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "viz_type": {
            "description": "The type of chart visualization used.",
            "example": [
              "bar",
              "area",
              "table"
            ],
            "maxLength": 250,
            "minLength": 0,
            "type": "string"
          }
        },
        "required": [
          "datasource_id",
          "datasource_type",
          "slice_name"
        ],
        "type": "object"
      },
      "ChartRestApi.put": {
        "properties": {
          "cache_timeout": {
            "description": "Duration (in seconds) of the caching timeout for this chart. Note this defaults to the datasource/table timeout if undefined.",
            "nullable": true,
            "type": "integer"
          },
          "certification_details": {
            "description": "Details of the certification",
            "nullable": true,
            "type": "string"
          },
          "certified_by": {
            "description": "Person or group that has certified this chart",
            "nullable": true,
            "type": "string"
          },
          "dashboards": {
            "items": {
              "description": "A list of dashboards to include this new chart to.",
              "type": "integer"
            },
            "type": "array"
          },
          "datasource_id": {
            "description": "The id of the dataset/datasource this new chart will use. A complete datasource identification needs `datasource_id` and `datasource_type`.",
            "nullable": true,
            "type": "integer"
          },
          "datasource_type": {
            "description": "The type of dataset/datasource identified on `datasource_id`.",
            "enum": [
              "table",
              "dataset",
              "query",
              "saved_query",
              "view",
              null
            ],
            "nullable": true,
            "type": "string"
          },
          "description": {
            "description": "A description of the chart propose.",
            "nullable": true,
            "type": "string"
          },
          "external_url": {
            "nullable": true,
            "type": "string"
          },
          "is_managed_externally": {
            "nullable": true,
            "type": "boolean"
          },
          "owners": {
            "items": {
              "description": "Owner are users ids allowed to delete or change this chart. If left empty you will be one of the owners of the chart.",
              "type": "integer"
            },
            "type": "array"
          },
          "params": {
            "description": "Parameters are generated dynamically when clicking the save or overwrite button in the explore view. This JSON object for power users who may want to alter specific parameters.",
            "nullable": true,
            "type": "string"
          },
          "query_context": {
            "description": "The query context represents the queries that need to run in order to generate the data the visualization, and in what format the data should be returned.",
            "nullable": true,
            "type": "string"
          },
          "query_context_generation": {
            "description": "The query context generation represents whether the query_contextis user generated or not so that it does not update user modifiedstate.",
            "nullable": true,
            "type": "boolean"
          },
          "slice_name": {
            "description": "The name of the chart.",
            "maxLength": 250,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "tags": {
            "items": {
              "description": "Tags to be associated with the chart",
              "type": "integer"
            },
            "type": "array"
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "viz_type": {
            "description": "The type of chart visualization used.",
            "example": [
              "bar",
              "area",
              "table"
            ],
            "maxLength": 250,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "CssTemplateRestApi.get": {
        "properties": {
          "changed_by": {
            "$ref": "#/components/schemas/CssTemplateRestApi.get.User"
          },
          "changed_on_delta_humanized": {
            "readOnly": true
          },
          "created_by": {
            "$ref": "#/components/schemas/CssTemplateRestApi.get.User1"
          },
          "css": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "template_name": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "CssTemplateRestApi.get.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "CssTemplateRestApi.get.User1": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "CssTemplateRestApi.get_list": {
        "properties": {
          "changed_by": {
            "$ref": "#/components/schemas/CssTemplateRestApi.get_list.User"
          },
          "changed_on_delta_humanized": {
            "readOnly": true
          },
          "created_by": {
            "$ref": "#/components/schemas/CssTemplateRestApi.get_list.User1"
          },
          "created_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "css": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "template_name": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "CssTemplateRestApi.get_list.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "CssTemplateRestApi.get_list.User1": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "CssTemplateRestApi.post": {
        "properties": {
          "css": {
            "nullable": true,
            "type": "string"
          },
          "template_name": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "CssTemplateRestApi.put": {
        "properties": {
          "css": {
            "nullable": true,
            "type": "string"
          },
          "template_name": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "CurrentUserPutSchema": {
        "properties": {
          "first_name": {
            "description": "The current user's first name",
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          },
          "last_name": {
            "description": "The current user's last name",
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          },
          "password": {
            "description": "The current user's password for authentication",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Dashboard": {
        "properties": {
          "dashboard_title": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "json_metadata": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "DashboardCacheScreenshotResponseSchema": {
        "properties": {
          "cache_key": {
            "description": "The cache key",
            "type": "string"
          },
          "dashboard_url": {
            "description": "The url to render the dashboard",
            "type": "string"
          },
          "image_url": {
            "description": "The url to fetch the screenshot",
            "type": "string"
          },
          "task_status": {
            "description": "The status of the async screenshot",
            "type": "string"
          },
          "task_updated_at": {
            "description": "The timestamp of the last change in status",
            "type": "string"
          }
        },
        "type": "object"
      },
      "DashboardCopySchema": {
        "properties": {
          "css": {
            "description": "Override CSS for the dashboard.",
            "type": "string"
          },
          "dashboard_title": {
            "description": "A title for the dashboard.",
            "maxLength": 500,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "duplicate_slices": {
            "description": "Whether or not to also copy all charts on the dashboard",
            "type": "boolean"
          },
          "json_metadata": {
            "description": "This JSON object is generated dynamically when clicking the save or overwrite button in the dashboard view. It is exposed here for reference and for power users who may want to alter  specific parameters.",
            "type": "string"
          }
        },
        "required": [
          "json_metadata"
        ],
        "type": "object"
      },
      "DashboardDatasetSchema": {
        "properties": {
          "always_filter_main_dttm": {
            "type": "boolean"
          },
          "cache_timeout": {
            "type": "integer"
          },
          "column_formats": {
            "type": "object"
          },
          "column_names": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "column_types": {
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "columns": {
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "database": {
            "$ref": "#/components/schemas/Database"
          },
          "datasource_name": {
            "type": "string"
          },
          "default_endpoint": {
            "type": "string"
          },
          "edit_url": {
            "type": "string"
          },
          "fetch_values_predicate": {
            "type": "string"
          },
          "filter_select": {
            "type": "boolean"
          },
          "filter_select_enabled": {
            "type": "boolean"
          },
          "granularity_sqla": {
            "items": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": "array"
          },
          "health_check_message": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "is_sqllab_view": {
            "type": "boolean"
          },
          "main_dttm_col": {
            "type": "string"
          },
          "metrics": {
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "normalize_columns": {
            "type": "boolean"
          },
          "offset": {
            "type": "integer"
          },
          "order_by_choices": {
            "items": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": "array"
          },
          "owners": {
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "params": {
            "type": "string"
          },
          "perm": {
            "type": "string"
          },
          "schema": {
            "type": "string"
          },
          "select_star": {
            "type": "string"
          },
          "sql": {
            "type": "string"
          },
          "table_name": {
            "type": "string"
          },
          "template_params": {
            "type": "string"
          },
          "time_grain_sqla": {
            "items": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": "array"
          },
          "type": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          },
          "verbose_map": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "DashboardGetResponseSchema": {
        "properties": {
          "certification_details": {
            "description": "Details of the certification",
            "type": "string"
          },
          "certified_by": {
            "description": "Person or group that has certified this dashboard",
            "type": "string"
          },
          "changed_by": {
            "$ref": "#/components/schemas/User1"
          },
          "changed_by_name": {
            "type": "string"
          },
          "changed_on": {
            "format": "date-time",
            "type": "string"
          },
          "changed_on_delta_humanized": {
            "type": "string"
          },
          "charts": {
            "items": {
              "description": "The names of the dashboard's charts. Names are used for legacy reasons.",
              "type": "string"
            },
            "type": "array"
          },
          "created_by": {
            "$ref": "#/components/schemas/User1"
          },
          "created_on_delta_humanized": {
            "type": "string"
          },
          "css": {
            "description": "Override CSS for the dashboard.",
            "type": "string"
          },
          "dashboard_title": {
            "description": "A title for the dashboard.",
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "is_managed_externally": {
            "nullable": true,
            "type": "boolean"
          },
          "json_metadata": {
            "description": "This JSON object is generated dynamically when clicking the save or overwrite button in the dashboard view. It is exposed here for reference and for power users who may want to alter  specific parameters.",
            "type": "string"
          },
          "owners": {
            "items": {
              "$ref": "#/components/schemas/User1"
            },
            "type": "array"
          },
          "position_json": {
            "description": "This json object describes the positioning of the widgets in the dashboard. It is dynamically generated when adjusting the widgets size and positions by using drag & drop in the dashboard view",
            "type": "string"
          },
          "published": {
            "type": "boolean"
          },
          "roles": {
            "items": {
              "$ref": "#/components/schemas/Roles"
            },
            "type": "array"
          },
          "slug": {
            "type": "string"
          },
          "tags": {
            "items": {
              "$ref": "#/components/schemas/Tag1"
            },
            "type": "array"
          },
          "theme": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Theme"
              }
            ],
            "nullable": true
          },
          "thumbnail_url": {
            "nullable": true,
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "DashboardPermalinkStateSchema": {
        "properties": {
          "activeTabs": {
            "description": "Current active dashboard tabs",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "anchor": {
            "description": "Optional anchor link added to url hash",
            "nullable": true,
            "type": "string"
          },
          "dataMask": {
            "description": "Data mask used for native filter state",
            "nullable": true,
            "type": "object"
          },
          "urlParams": {
            "description": "URL Parameters",
            "items": {
              "description": "URL Parameter key-value pair",
              "nullable": true
            },
            "nullable": true,
            "type": "array"
          }
        },
        "type": "object"
      },
      "DashboardRestApi.get": {
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "DashboardRestApi.get_list": {
        "properties": {
          "certification_details": {
            "nullable": true,
            "type": "string"
          },
          "certified_by": {
            "nullable": true,
            "type": "string"
          },
          "changed_by": {
            "$ref": "#/components/schemas/DashboardRestApi.get_list.User"
          },
          "changed_by_name": {
            "readOnly": true
          },
          "changed_on_delta_humanized": {
            "readOnly": true
          },
          "changed_on_utc": {
            "readOnly": true
          },
          "created_by": {
            "$ref": "#/components/schemas/DashboardRestApi.get_list.User1"
          },
          "created_on_delta_humanized": {
            "readOnly": true
          },
          "dashboard_title": {
            "maxLength": 500,
            "nullable": true,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "is_managed_externally": {
            "type": "boolean"
          },
          "owners": {
            "$ref": "#/components/schemas/DashboardRestApi.get_list.User2"
          },
          "published": {
            "nullable": true,
            "type": "boolean"
          },
          "roles": {
            "$ref": "#/components/schemas/DashboardRestApi.get_list.Role"
          },
          "slug": {
            "maxLength": 255,
            "nullable": true,
            "type": "string"
          },
          "status": {
            "readOnly": true
          },
          "tags": {
            "$ref": "#/components/schemas/DashboardRestApi.get_list.Tag"
          },
          "thumbnail_url": {
            "readOnly": true
          },
          "url": {
            "readOnly": true
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "DashboardRestApi.get_list.Role": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "DashboardRestApi.get_list.Tag": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          },
          "type": {
            "enum": [
              1,
              2,
              3,
              4
            ]
          }
        },
        "type": "object"
      },
      "DashboardRestApi.get_list.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "DashboardRestApi.get_list.User1": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "DashboardRestApi.get_list.User2": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "DashboardRestApi.post": {
        "properties": {
          "certification_details": {
            "description": "Details of the certification",
            "nullable": true,
            "type": "string"
          },
          "certified_by": {
            "description": "Person or group that has certified this dashboard",
            "nullable": true,
            "type": "string"
          },
          "css": {
            "description": "Override CSS for the dashboard.",
            "type": "string"
          },
          "dashboard_title": {
            "description": "A title for the dashboard.",
            "maxLength": 500,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "external_url": {
            "nullable": true,
            "type": "string"
          },
          "is_managed_externally": {
            "nullable": true,
            "type": "boolean"
          },
          "json_metadata": {
            "description": "This JSON object is generated dynamically when clicking the save or overwrite button in the dashboard view. It is exposed here for reference and for power users who may want to alter  specific parameters.",
            "type": "string"
          },
          "owners": {
            "items": {
              "description": "Owner are users ids allowed to delete or change this dashboard. If left empty you will be one of the owners of the dashboard.",
              "type": "integer"
            },
            "type": "array"
          },
          "position_json": {
            "description": "This json object describes the positioning of the widgets in the dashboard. It is dynamically generated when adjusting the widgets size and positions by using drag & drop in the dashboard view",
            "type": "string"
          },
          "published": {
            "description": "Determines whether or not this dashboard is visible in the list of all dashboards.",
            "type": "boolean"
          },
          "roles": {
            "items": {
              "description": "Roles is a list which defines access to the dashboard. These roles are always applied in addition to restrictions on dataset level access. If no roles defined then the dashboard is available to all roles.",
              "type": "integer"
            },
            "type": "array"
          },
          "slug": {
            "description": "Unique identifying part for the web address of the dashboard.",
            "maxLength": 255,
            "minLength": 1,
            "nullable": true,
            "type": "string"
          },
          "theme_id": {
            "description": "Theme ID for the dashboard",
            "nullable": true,
            "type": "integer"
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "DashboardRestApi.put": {
        "properties": {
          "certification_details": {
            "description": "Details of the certification",
            "nullable": true,
            "type": "string"
          },
          "certified_by": {
            "description": "Person or group that has certified this dashboard",
            "nullable": true,
            "type": "string"
          },
          "css": {
            "description": "Override CSS for the dashboard.",
            "nullable": true,
            "type": "string"
          },
          "dashboard_title": {
            "description": "A title for the dashboard.",
            "maxLength": 500,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "external_url": {
            "nullable": true,
            "type": "string"
          },
          "is_managed_externally": {
            "nullable": true,
            "type": "boolean"
          },
          "json_metadata": {
            "description": "This JSON object is generated dynamically when clicking the save or overwrite button in the dashboard view. It is exposed here for reference and for power users who may want to alter  specific parameters.",
            "nullable": true,
            "type": "string"
          },
          "owners": {
            "items": {
              "description": "Owner are users ids allowed to delete or change this dashboard. If left empty you will be one of the owners of the dashboard.",
              "nullable": true,
              "type": "integer"
            },
            "type": "array"
          },
          "position_json": {
            "description": "This json object describes the positioning of the widgets in the dashboard. It is dynamically generated when adjusting the widgets size and positions by using drag & drop in the dashboard view",
            "nullable": true,
            "type": "string"
          },
          "published": {
            "description": "Determines whether or not this dashboard is visible in the list of all dashboards.",
            "nullable": true,
            "type": "boolean"
          },
          "roles": {
            "items": {
              "description": "Roles is a list which defines access to the dashboard. These roles are always applied in addition to restrictions on dataset level access. If no roles defined then the dashboard is available to all roles.",
              "nullable": true,
              "type": "integer"
            },
            "type": "array"
          },
          "slug": {
            "description": "Unique identifying part for the web address of the dashboard.",
            "maxLength": 255,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "tags": {
            "items": {
              "description": "Tags to be associated with the dashboard",
              "nullable": true,
              "type": "integer"
            },
            "type": "array"
          },
          "theme_id": {
            "description": "Theme ID for the dashboard",
            "nullable": true,
            "type": "integer"
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "DashboardScreenshotPostSchema": {
        "properties": {
          "activeTabs": {
            "description": "A list representing active tabs.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "anchor": {
            "description": "A string representing the anchor.",
            "type": "string"
          },
          "dataMask": {
            "additionalProperties": {},
            "description": "An object representing the data mask.",
            "type": "object"
          },
          "urlParams": {
            "description": "A list of tuples, each containing two strings.",
            "items": {},
            "type": "array"
          }
        },
        "type": "object"
      },
      "Database": {
        "properties": {
          "allow_multi_catalog": {
            "type": "boolean"
          },
          "allows_cost_estimate": {
            "type": "boolean"
          },
          "allows_subquery": {
            "type": "boolean"
          },
          "allows_virtual_table_explore": {
            "type": "boolean"
          },
          "backend": {
            "type": "string"
          },
          "disable_data_preview": {
            "type": "boolean"
          },
          "disable_drill_to_detail": {
            "type": "boolean"
          },
          "explore_database_id": {
            "type": "integer"
          },
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "Database1": {
        "properties": {
          "database_name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "DatabaseConnectionSchema": {
        "properties": {
          "allow_ctas": {
            "description": "Allow CREATE TABLE AS option in SQL Lab",
            "type": "boolean"
          },
          "allow_cvas": {
            "description": "Allow CREATE VIEW AS option in SQL Lab",
            "type": "boolean"
          },
          "allow_dml": {
            "description": "Allow users to run non-SELECT statements (UPDATE, DELETE, CREATE, ...) in SQL Lab",
            "type": "boolean"
          },
          "allow_file_upload": {
            "description": "Allow to upload CSV file data into this databaseIf selected, please set the schemas allowed for csv upload in Extra.",
            "type": "boolean"
          },
          "allow_run_async": {
            "description": "Operate the database in asynchronous mode, meaning that the queries are executed on remote workers as opposed to on the web server itself. This assumes that you have a Celery worker setup as well as a results backend. Refer to the installation docs for more information.",
            "type": "boolean"
          },
          "backend": {
            "description": "SQLAlchemy engine to use",
            "nullable": true,
            "type": "string"
          },
          "cache_timeout": {
            "description": "Duration (in seconds) of the caching timeout for charts of this database. A timeout of 0 indicates that the cache never expires. Note this defaults to the global timeout if undefined.",
            "nullable": true,
            "type": "integer"
          },
          "configuration_method": {
            "description": "Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri.",
            "type": "string"
          },
          "database_name": {
            "description": "A database name to identify this connection.",
            "maxLength": 250,
            "minLength": 1,
            "nullable": true,
            "type": "string"
          },
          "driver": {
            "description": "SQLAlchemy driver to use",
            "nullable": true,
            "type": "string"
          },
          "engine_information": {
            "$ref": "#/components/schemas/EngineInformation"
          },
          "expose_in_sqllab": {
            "description": "Expose this database to SQLLab",
            "type": "boolean"
          },
          "extra": {
            "description": "<p>JSON string containing extra configuration elements.<br>1. The <code>engine_params</code> object gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine\" rel=\"noopener noreferrer\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\" rel=\"noopener noreferrer\">sqlalchemy.MetaData</a> call.<br>2. The <code>metadata_cache_timeout</code> is a cache timeout setting in seconds for metadata fetch of this database. Specify it as <strong>\"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}</strong>. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.<br>3. The <code>schemas_allowed_for_file_upload</code> is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as <strong>\"schemas_allowed_for_file_upload\": [\"public\", \"csv_upload\"]</strong>. If database flavor does not support schema or any schema is allowed to be accessed, just leave the list empty<br>4. The <code>version</code> field is a string specifying the this db's version. This should be used with Presto DBs so that the syntax is correct<br>5. The <code>allows_virtual_table_explore</code> field is a boolean specifying whether or not the Explore button in SQL Lab results is shown.<br>6. The <code>disable_data_preview</code> field is a boolean specifying whether or not data preview queries will be run when fetching table metadata in SQL Lab.7. The <code>disable_drill_to_detail</code> field is a boolean specifying whether or notdrill to detail is disabled for the database.8. The <code>allow_multi_catalog</code> indicates if the database allows changing the default catalog when running queries and creating datasets.</p>",
            "type": "string"
          },
          "force_ctas_schema": {
            "description": "When allowing CREATE TABLE AS option in SQL Lab, this option forces the table to be created in this schema",
            "maxLength": 250,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "Database ID (for updates)",
            "type": "integer"
          },
          "impersonate_user": {
            "description": "If Presto, all the queries in SQL Lab are going to be executed as the currently logged on user who must have permission to run them.<br/>If Hive and hive.server2.enable.doAs is enabled, will run the queries as service account, but impersonate the currently logged on user via hive.server2.proxy.user property.",
            "type": "boolean"
          },
          "is_managed_externally": {
            "nullable": true,
            "type": "boolean"
          },
          "masked_encrypted_extra": {
            "description": "<p>JSON string containing additional connection configuration.<br>This is used to provide connection information for systems like Hive, Presto, and BigQuery, which do not conform to the username:password syntax normally used by SQLAlchemy.</p>",
            "nullable": true,
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {},
            "description": "DB-specific parameters for configuration",
            "type": "object"
          },
          "parameters_schema": {
            "additionalProperties": {},
            "description": "JSONSchema for configuring the database by parameters instead of SQLAlchemy URI",
            "type": "object"
          },
          "server_cert": {
            "description": "<p>Optional CA_BUNDLE contents to validate HTTPS requests. Only available on certain database engines.</p>",
            "nullable": true,
            "type": "string"
          },
          "sqlalchemy_uri": {
            "description": "<p>Refer to the <a href=\"https://docs.sqlalchemy.org/en/rel_1_2/core/engines.html#database-urls\" rel=\"noopener noreferrer\">SqlAlchemy docs</a> for more information on how to structure your URI.</p>",
            "maxLength": 1024,
            "minLength": 1,
            "type": "string"
          },
          "ssh_tunnel": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DatabaseSSHTunnel"
              }
            ],
            "nullable": true
          },
          "uuid": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "DatabaseFunctionNamesResponse": {
        "properties": {
          "function_names": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "DatabaseRelatedChart": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "slice_name": {
            "type": "string"
          },
          "viz_type": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "DatabaseRelatedCharts": {
        "properties": {
          "count": {
            "description": "Chart count",
            "type": "integer"
          },
          "result": {
            "description": "A list of dashboards",
            "items": {
              "$ref": "#/components/schemas/DatabaseRelatedChart"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "DatabaseRelatedDashboard": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "json_metadata": {
            "type": "object"
          },
          "slug": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "DatabaseRelatedDashboards": {
        "properties": {
          "count": {
            "description": "Dashboard count",
            "type": "integer"
          },
          "result": {
            "description": "A list of dashboards",
            "items": {
              "$ref": "#/components/schemas/DatabaseRelatedDashboard"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "DatabaseRelatedObjectsResponse": {
        "properties": {
          "charts": {
            "$ref": "#/components/schemas/DatabaseRelatedCharts"
          },
          "dashboards": {
            "$ref": "#/components/schemas/DatabaseRelatedDashboards"
          }
        },
        "type": "object"
      },
      "DatabaseRestApi.get": {
        "properties": {
          "allow_ctas": {
            "nullable": true,
            "type": "boolean"
          },
          "allow_cvas": {
            "nullable": true,
            "type": "boolean"
          },
          "allow_dml": {
            "nullable": true,
            "type": "boolean"
          },
          "allow_file_upload": {
            "nullable": true,
            "type": "boolean"
          },
          "allow_run_async": {
            "nullable": true,
            "type": "boolean"
          },
          "backend": {
            "readOnly": true
          },
          "cache_timeout": {
            "nullable": true,
            "type": "integer"
          },
          "configuration_method": {
            "maxLength": 255,
            "nullable": true,
            "type": "string"
          },
          "database_name": {
            "maxLength": 250,
            "type": "string"
          },
          "driver": {
            "readOnly": true
          },
          "engine_information": {
            "readOnly": true
          },
          "expose_in_sqllab": {
            "nullable": true,
            "type": "boolean"
          },
          "force_ctas_schema": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "impersonate_user": {
            "nullable": true,
            "type": "boolean"
          },
          "is_managed_externally": {
            "type": "boolean"
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "database_name"
        ],
        "type": "object"
      },
      "DatabaseRestApi.get_list": {
        "properties": {
          "allow_ctas": {
            "nullable": true,
            "type": "boolean"
          },
          "allow_cvas": {
            "nullable": true,
            "type": "boolean"
          },
          "allow_dml": {
            "nullable": true,
            "type": "boolean"
          },
          "allow_file_upload": {
            "nullable": true,
            "type": "boolean"
          },
          "allow_multi_catalog": {
            "readOnly": true
          },
          "allow_run_async": {
            "nullable": true,
            "type": "boolean"
          },
          "allows_cost_estimate": {
            "readOnly": true
          },
          "allows_subquery": {
            "readOnly": true
          },
          "allows_virtual_table_explore": {
            "readOnly": true
          },
          "backend": {
            "readOnly": true
          },
          "changed_by": {
            "$ref": "#/components/schemas/DatabaseRestApi.get_list.User"
          },
          "changed_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "changed_on_delta_humanized": {
            "readOnly": true
          },
          "created_by": {
            "$ref": "#/components/schemas/DatabaseRestApi.get_list.User1"
          },
          "database_name": {
            "maxLength": 250,
            "type": "string"
          },
          "disable_data_preview": {
            "readOnly": true
          },
          "disable_drill_to_detail": {
            "readOnly": true
          },
          "engine_information": {
            "readOnly": true
          },
          "explore_database_id": {
            "readOnly": true
          },
          "expose_in_sqllab": {
            "nullable": true,
            "type": "boolean"
          },
          "extra": {
            "nullable": true,
            "type": "string"
          },
          "force_ctas_schema": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "database_name"
        ],
        "type": "object"
      },
      "DatabaseRestApi.get_list.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "DatabaseRestApi.get_list.User1": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "DatabaseRestApi.post": {
        "properties": {
          "allow_ctas": {
            "description": "Allow CREATE TABLE AS option in SQL Lab",
            "type": "boolean"
          },
          "allow_cvas": {
            "description": "Allow CREATE VIEW AS option in SQL Lab",
            "type": "boolean"
          },
          "allow_dml": {
            "description": "Allow users to run non-SELECT statements (UPDATE, DELETE, CREATE, ...) in SQL Lab",
            "type": "boolean"
          },
          "allow_file_upload": {
            "description": "Allow to upload CSV file data into this databaseIf selected, please set the schemas allowed for csv upload in Extra.",
            "type": "boolean"
          },
          "allow_run_async": {
            "description": "Operate the database in asynchronous mode, meaning that the queries are executed on remote workers as opposed to on the web server itself. This assumes that you have a Celery worker setup as well as a results backend. Refer to the installation docs for more information.",
            "type": "boolean"
          },
          "cache_timeout": {
            "description": "Duration (in seconds) of the caching timeout for charts of this database. A timeout of 0 indicates that the cache never expires. Note this defaults to the global timeout if undefined.",
            "nullable": true,
            "type": "integer"
          },
          "configuration_method": {
            "default": "sqlalchemy_form",
            "description": "Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri.",
            "enum": [
              "sqlalchemy_form",
              "dynamic_form"
            ]
          },
          "database_name": {
            "description": "A database name to identify this connection.",
            "maxLength": 250,
            "minLength": 1,
            "type": "string"
          },
          "driver": {
            "description": "SQLAlchemy driver to use",
            "nullable": true,
            "type": "string"
          },
          "engine": {
            "description": "SQLAlchemy engine to use",
            "nullable": true,
            "type": "string"
          },
          "expose_in_sqllab": {
            "description": "Expose this database to SQLLab",
            "type": "boolean"
          },
          "external_url": {
            "nullable": true,
            "type": "string"
          },
          "extra": {
            "description": "<p>JSON string containing extra configuration elements.<br>1. The <code>engine_params</code> object gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine\" rel=\"noopener noreferrer\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\" rel=\"noopener noreferrer\">sqlalchemy.MetaData</a> call.<br>2. The <code>metadata_cache_timeout</code> is a cache timeout setting in seconds for metadata fetch of this database. Specify it as <strong>\"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}</strong>. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.<br>3. The <code>schemas_allowed_for_file_upload</code> is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as <strong>\"schemas_allowed_for_file_upload\": [\"public\", \"csv_upload\"]</strong>. If database flavor does not support schema or any schema is allowed to be accessed, just leave the list empty<br>4. The <code>version</code> field is a string specifying the this db's version. This should be used with Presto DBs so that the syntax is correct<br>5. The <code>allows_virtual_table_explore</code> field is a boolean specifying whether or not the Explore button in SQL Lab results is shown.<br>6. The <code>disable_data_preview</code> field is a boolean specifying whether or not data preview queries will be run when fetching table metadata in SQL Lab.7. The <code>disable_drill_to_detail</code> field is a boolean specifying whether or notdrill to detail is disabled for the database.8. The <code>allow_multi_catalog</code> indicates if the database allows changing the default catalog when running queries and creating datasets.</p>",
            "type": "string"
          },
          "force_ctas_schema": {
            "description": "When allowing CREATE TABLE AS option in SQL Lab, this option forces the table to be created in this schema",
            "maxLength": 250,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "impersonate_user": {
            "description": "If Presto, all the queries in SQL Lab are going to be executed as the currently logged on user who must have permission to run them.<br/>If Hive and hive.server2.enable.doAs is enabled, will run the queries as service account, but impersonate the currently logged on user via hive.server2.proxy.user property.",
            "type": "boolean"
          },
          "is_managed_externally": {
            "nullable": true,
            "type": "boolean"
          },
          "masked_encrypted_extra": {
            "description": "<p>JSON string containing additional connection configuration.<br>This is used to provide connection information for systems like Hive, Presto, and BigQuery, which do not conform to the username:password syntax normally used by SQLAlchemy.</p>",
            "nullable": true,
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {},
            "description": "DB-specific parameters for configuration",
            "type": "object"
          },
          "server_cert": {
            "description": "<p>Optional CA_BUNDLE contents to validate HTTPS requests. Only available on certain database engines.</p>",
            "nullable": true,
            "type": "string"
          },
          "sqlalchemy_uri": {
            "description": "<p>Refer to the <a href=\"https://docs.sqlalchemy.org/en/rel_1_2/core/engines.html#database-urls\" rel=\"noopener noreferrer\">SqlAlchemy docs</a> for more information on how to structure your URI.</p>",
            "maxLength": 1024,
            "minLength": 1,
            "type": "string"
          },
          "ssh_tunnel": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DatabaseSSHTunnel"
              }
            ],
            "nullable": true
          },
          "uuid": {
            "type": "string"
          }
        },
        "required": [
          "database_name"
        ],
        "type": "object"
      },
      "DatabaseRestApi.put": {
        "properties": {
          "allow_ctas": {
            "description": "Allow CREATE TABLE AS option in SQL Lab",
            "type": "boolean"
          },
          "allow_cvas": {
            "description": "Allow CREATE VIEW AS option in SQL Lab",
            "type": "boolean"
          },
          "allow_dml": {
            "description": "Allow users to run non-SELECT statements (UPDATE, DELETE, CREATE, ...) in SQL Lab",
            "type": "boolean"
          },
          "allow_file_upload": {
            "description": "Allow to upload CSV file data into this databaseIf selected, please set the schemas allowed for csv upload in Extra.",
            "type": "boolean"
          },
          "allow_run_async": {
            "description": "Operate the database in asynchronous mode, meaning that the queries are executed on remote workers as opposed to on the web server itself. This assumes that you have a Celery worker setup as well as a results backend. Refer to the installation docs for more information.",
            "type": "boolean"
          },
          "cache_timeout": {
            "description": "Duration (in seconds) of the caching timeout for charts of this database. A timeout of 0 indicates that the cache never expires. Note this defaults to the global timeout if undefined.",
            "nullable": true,
            "type": "integer"
          },
          "configuration_method": {
            "default": "sqlalchemy_form",
            "description": "Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri.",
            "enum": [
              "sqlalchemy_form",
              "dynamic_form"
            ]
          },
          "database_name": {
            "description": "A database name to identify this connection.",
            "maxLength": 250,
            "minLength": 1,
            "nullable": true,
            "type": "string"
          },
          "driver": {
            "description": "SQLAlchemy driver to use",
            "nullable": true,
            "type": "string"
          },
          "engine": {
            "description": "SQLAlchemy engine to use",
            "nullable": true,
            "type": "string"
          },
          "expose_in_sqllab": {
            "description": "Expose this database to SQLLab",
            "type": "boolean"
          },
          "external_url": {
            "nullable": true,
            "type": "string"
          },
          "extra": {
            "description": "<p>JSON string containing extra configuration elements.<br>1. The <code>engine_params</code> object gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine\" rel=\"noopener noreferrer\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\" rel=\"noopener noreferrer\">sqlalchemy.MetaData</a> call.<br>2. The <code>metadata_cache_timeout</code> is a cache timeout setting in seconds for metadata fetch of this database. Specify it as <strong>\"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}</strong>. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.<br>3. The <code>schemas_allowed_for_file_upload</code> is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as <strong>\"schemas_allowed_for_file_upload\": [\"public\", \"csv_upload\"]</strong>. If database flavor does not support schema or any schema is allowed to be accessed, just leave the list empty<br>4. The <code>version</code> field is a string specifying the this db's version. This should be used with Presto DBs so that the syntax is correct<br>5. The <code>allows_virtual_table_explore</code> field is a boolean specifying whether or not the Explore button in SQL Lab results is shown.<br>6. The <code>disable_data_preview</code> field is a boolean specifying whether or not data preview queries will be run when fetching table metadata in SQL Lab.7. The <code>disable_drill_to_detail</code> field is a boolean specifying whether or notdrill to detail is disabled for the database.8. The <code>allow_multi_catalog</code> indicates if the database allows changing the default catalog when running queries and creating datasets.</p>",
            "type": "string"
          },
          "force_ctas_schema": {
            "description": "When allowing CREATE TABLE AS option in SQL Lab, this option forces the table to be created in this schema",
            "maxLength": 250,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "impersonate_user": {
            "description": "If Presto, all the queries in SQL Lab are going to be executed as the currently logged on user who must have permission to run them.<br/>If Hive and hive.server2.enable.doAs is enabled, will run the queries as service account, but impersonate the currently logged on user via hive.server2.proxy.user property.",
            "type": "boolean"
          },
          "is_managed_externally": {
            "nullable": true,
            "type": "boolean"
          },
          "masked_encrypted_extra": {
            "description": "<p>JSON string containing additional connection configuration.<br>This is used to provide connection information for systems like Hive, Presto, and BigQuery, which do not conform to the username:password syntax normally used by SQLAlchemy.</p>",
            "nullable": true,
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {},
            "description": "DB-specific parameters for configuration",
            "type": "object"
          },
          "server_cert": {
            "description": "<p>Optional CA_BUNDLE contents to validate HTTPS requests. Only available on certain database engines.</p>",
            "nullable": true,
            "type": "string"
          },
          "sqlalchemy_uri": {
            "description": "<p>Refer to the <a href=\"https://docs.sqlalchemy.org/en/rel_1_2/core/engines.html#database-urls\" rel=\"noopener noreferrer\">SqlAlchemy docs</a> for more information on how to structure your URI.</p>",
            "maxLength": 1024,
            "minLength": 0,
            "type": "string"
          },
          "ssh_tunnel": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DatabaseSSHTunnel"
              }
            ],
            "nullable": true
          },
          "uuid": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "DatabaseSSHTunnel": {
        "properties": {
          "id": {
            "description": "SSH Tunnel ID (for updates)",
            "nullable": true,
            "type": "integer"
          },
          "password": {
            "type": "string"
          },
          "private_key": {
            "type": "string"
          },
          "private_key_password": {
            "type": "string"
          },
          "server_address": {
            "type": "string"
          },
          "server_port": {
            "type": "integer"
          },
          "username": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "DatabaseSchemaAccessForFileUploadResponse": {
        "properties": {
          "schemas": {
            "description": "The list of schemas allowed for the database to upload information",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "DatabaseTablesResponse": {
        "properties": {
          "extra": {
            "description": "Extra data used to specify column metadata",
            "type": "object"
          },
          "type": {
            "description": "table or view",
            "type": "string"
          },
          "value": {
            "description": "The table or view name",
            "type": "string"
          }
        },
        "type": "object"
      },
      "DatabaseTestConnectionSchema": {
        "properties": {
          "configuration_method": {
            "default": "sqlalchemy_form",
            "description": "Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri.",
            "enum": [
              "sqlalchemy_form",
              "dynamic_form"
            ]
          },
          "database_name": {
            "description": "A database name to identify this connection.",
            "maxLength": 250,
            "minLength": 1,
            "nullable": true,
            "type": "string"
          },
          "driver": {
            "description": "SQLAlchemy driver to use",
            "nullable": true,
            "type": "string"
          },
          "engine": {
            "description": "SQLAlchemy engine to use",
            "nullable": true,
            "type": "string"
          },
          "extra": {
            "description": "<p>JSON string containing extra configuration elements.<br>1. The <code>engine_params</code> object gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine\" rel=\"noopener noreferrer\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\" rel=\"noopener noreferrer\">sqlalchemy.MetaData</a> call.<br>2. The <code>metadata_cache_timeout</code> is a cache timeout setting in seconds for metadata fetch of this database. Specify it as <strong>\"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}</strong>. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.<br>3. The <code>schemas_allowed_for_file_upload</code> is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as <strong>\"schemas_allowed_for_file_upload\": [\"public\", \"csv_upload\"]</strong>. If database flavor does not support schema or any schema is allowed to be accessed, just leave the list empty<br>4. The <code>version</code> field is a string specifying the this db's version. This should be used with Presto DBs so that the syntax is correct<br>5. The <code>allows_virtual_table_explore</code> field is a boolean specifying whether or not the Explore button in SQL Lab results is shown.<br>6. The <code>disable_data_preview</code> field is a boolean specifying whether or not data preview queries will be run when fetching table metadata in SQL Lab.7. The <code>disable_drill_to_detail</code> field is a boolean specifying whether or notdrill to detail is disabled for the database.8. The <code>allow_multi_catalog</code> indicates if the database allows changing the default catalog when running queries and creating datasets.</p>",
            "type": "string"
          },
          "impersonate_user": {
            "description": "If Presto, all the queries in SQL Lab are going to be executed as the currently logged on user who must have permission to run them.<br/>If Hive and hive.server2.enable.doAs is enabled, will run the queries as service account, but impersonate the currently logged on user via hive.server2.proxy.user property.",
            "type": "boolean"
          },
          "masked_encrypted_extra": {
            "description": "<p>JSON string containing additional connection configuration.<br>This is used to provide connection information for systems like Hive, Presto, and BigQuery, which do not conform to the username:password syntax normally used by SQLAlchemy.</p>",
            "nullable": true,
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {},
            "description": "DB-specific parameters for configuration",
            "type": "object"
          },
          "server_cert": {
            "description": "<p>Optional CA_BUNDLE contents to validate HTTPS requests. Only available on certain database engines.</p>",
            "nullable": true,
            "type": "string"
          },
          "sqlalchemy_uri": {
            "description": "<p>Refer to the <a href=\"https://docs.sqlalchemy.org/en/rel_1_2/core/engines.html#database-urls\" rel=\"noopener noreferrer\">SqlAlchemy docs</a> for more information on how to structure your URI.</p>",
            "maxLength": 1024,
            "minLength": 1,
            "type": "string"
          },
          "ssh_tunnel": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DatabaseSSHTunnel"
              }
            ],
            "nullable": true
          }
        },
        "type": "object"
      },
      "DatabaseValidateParametersSchema": {
        "properties": {
          "catalog": {
            "additionalProperties": {
              "nullable": true
            },
            "description": "Gsheets specific column for managing label to sheet urls",
            "type": "object"
          },
          "configuration_method": {
            "description": "Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri.",
            "enum": [
              "sqlalchemy_form",
              "dynamic_form"
            ]
          },
          "database_name": {
            "description": "A database name to identify this connection.",
            "maxLength": 250,
            "minLength": 1,
            "nullable": true,
            "type": "string"
          },
          "driver": {
            "description": "SQLAlchemy driver to use",
            "nullable": true,
            "type": "string"
          },
          "engine": {
            "description": "SQLAlchemy engine to use",
            "type": "string"
          },
          "extra": {
            "description": "<p>JSON string containing extra configuration elements.<br>1. The <code>engine_params</code> object gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine\" rel=\"noopener noreferrer\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\" rel=\"noopener noreferrer\">sqlalchemy.MetaData</a> call.<br>2. The <code>metadata_cache_timeout</code> is a cache timeout setting in seconds for metadata fetch of this database. Specify it as <strong>\"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}</strong>. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.<br>3. The <code>schemas_allowed_for_file_upload</code> is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as <strong>\"schemas_allowed_for_file_upload\": [\"public\", \"csv_upload\"]</strong>. If database flavor does not support schema or any schema is allowed to be accessed, just leave the list empty<br>4. The <code>version</code> field is a string specifying the this db's version. This should be used with Presto DBs so that the syntax is correct<br>5. The <code>allows_virtual_table_explore</code> field is a boolean specifying whether or not the Explore button in SQL Lab results is shown.<br>6. The <code>disable_data_preview</code> field is a boolean specifying whether or not data preview queries will be run when fetching table metadata in SQL Lab.7. The <code>disable_drill_to_detail</code> field is a boolean specifying whether or notdrill to detail is disabled for the database.8. The <code>allow_multi_catalog</code> indicates if the database allows changing the default catalog when running queries and creating datasets.</p>",
            "type": "string"
          },
          "id": {
            "description": "Database ID (for updates)",
            "nullable": true,
            "type": "integer"
          },
          "impersonate_user": {
            "description": "If Presto, all the queries in SQL Lab are going to be executed as the currently logged on user who must have permission to run them.<br/>If Hive and hive.server2.enable.doAs is enabled, will run the queries as service account, but impersonate the currently logged on user via hive.server2.proxy.user property.",
            "type": "boolean"
          },
          "masked_encrypted_extra": {
            "description": "<p>JSON string containing additional connection configuration.<br>This is used to provide connection information for systems like Hive, Presto, and BigQuery, which do not conform to the username:password syntax normally used by SQLAlchemy.</p>",
            "nullable": true,
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "nullable": true
            },
            "description": "DB-specific parameters for configuration",
            "type": "object"
          },
          "server_cert": {
            "description": "<p>Optional CA_BUNDLE contents to validate HTTPS requests. Only available on certain database engines.</p>",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "configuration_method",
          "engine"
        ],
        "type": "object"
      },
      "Dataset": {
        "properties": {
          "cache_timeout": {
            "description": "Duration (in seconds) of the caching timeout for this dataset.",
            "type": "integer"
          },
          "column_formats": {
            "description": "Column formats.",
            "type": "object"
          },
          "columns": {
            "description": "Columns metadata.",
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "database": {
            "description": "Database associated with the dataset.",
            "type": "object"
          },
          "datasource_name": {
            "description": "Dataset name.",
            "type": "string"
          },
          "default_endpoint": {
            "description": "Default endpoint for the dataset.",
            "type": "string"
          },
          "description": {
            "description": "Dataset description.",
            "type": "string"
          },
          "edit_url": {
            "description": "The URL for editing the dataset.",
            "type": "string"
          },
          "extra": {
            "description": "JSON string containing extra configuration elements.",
            "type": "object"
          },
          "fetch_values_predicate": {
            "description": "Predicate used when fetching values from the dataset.",
            "type": "string"
          },
          "filter_select": {
            "description": "SELECT filter applied to the dataset.",
            "type": "boolean"
          },
          "filter_select_enabled": {
            "description": "If the SELECT filter is enabled.",
            "type": "boolean"
          },
          "granularity_sqla": {
            "description": "Name of temporal column used for time filtering for SQL datasources. This field is deprecated, use `granularity` instead.",
            "items": {
              "items": {
                "type": "object"
              },
              "type": "array"
            },
            "type": "array"
          },
          "health_check_message": {
            "description": "Health check message.",
            "type": "string"
          },
          "id": {
            "description": "Dataset ID.",
            "type": "integer"
          },
          "is_sqllab_view": {
            "description": "If the dataset is a SQL Lab view.",
            "type": "boolean"
          },
          "main_dttm_col": {
            "description": "The main temporal column.",
            "type": "string"
          },
          "metrics": {
            "description": "Dataset metrics.",
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "name": {
            "description": "Dataset name.",
            "type": "string"
          },
          "offset": {
            "description": "Dataset offset.",
            "type": "integer"
          },
          "order_by_choices": {
            "description": "List of order by columns.",
            "items": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": "array"
          },
          "owners": {
            "description": "List of owners identifiers",
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "params": {
            "description": "Extra params for the dataset.",
            "type": "object"
          },
          "perm": {
            "description": "Permission expression.",
            "type": "string"
          },
          "schema": {
            "description": "Dataset schema.",
            "type": "string"
          },
          "select_star": {
            "description": "Select all clause.",
            "type": "string"
          },
          "sql": {
            "description": "A SQL statement that defines the dataset.",
            "type": "string"
          },
          "table_name": {
            "description": "The name of the table associated with the dataset.",
            "type": "string"
          },
          "template_params": {
            "description": "Table template params.",
            "type": "object"
          },
          "time_grain_sqla": {
            "description": "List of temporal granularities supported by the dataset.",
            "items": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": "array"
          },
          "type": {
            "description": "Dataset type.",
            "type": "string"
          },
          "uid": {
            "description": "Dataset unique identifier.",
            "type": "string"
          },
          "verbose_map": {
            "description": "Mapping from raw name to verbose name.",
            "type": "object"
          }
        },
        "type": "object"
      },
      "DatasetCacheWarmUpRequestSchema": {
        "properties": {
          "dashboard_id": {
            "description": "The ID of the dashboard to get filters for when warming cache",
            "type": "integer"
          },
          "db_name": {
            "description": "The name of the database where the table is located",
            "type": "string"
          },
          "extra_filters": {
            "description": "Extra filters to apply when warming up cache",
            "type": "string"
          },
          "table_name": {
            "description": "The name of the table to warm up cache for",
            "type": "string"
          }
        },
        "required": [
          "db_name",
          "table_name"
        ],
        "type": "object"
      },
      "DatasetCacheWarmUpResponseSchema": {
        "properties": {
          "result": {
            "description": "A list of each chart's warmup status and errors if any",
            "items": {
              "$ref": "#/components/schemas/DatasetCacheWarmUpResponseSingle"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "DatasetCacheWarmUpResponseSingle": {
        "properties": {
          "chart_id": {
            "description": "The ID of the chart the status belongs to",
            "type": "integer"
          },
          "viz_error": {
            "description": "Error that occurred when warming cache for chart",
            "type": "string"
          },
          "viz_status": {
            "description": "Status of the underlying query for the viz",
            "type": "string"
          }
        },
        "type": "object"
      },
      "DatasetColumnsPut": {
        "properties": {
          "advanced_data_type": {
            "maxLength": 255,
            "minLength": 1,
            "nullable": true,
            "type": "string"
          },
          "column_name": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "expression": {
            "nullable": true,
            "type": "string"
          },
          "extra": {
            "nullable": true,
            "type": "string"
          },
          "filterable": {
            "type": "boolean"
          },
          "groupby": {
            "type": "boolean"
          },
          "id": {
            "type": "integer"
          },
          "is_active": {
            "nullable": true,
            "type": "boolean"
          },
          "is_dttm": {
            "nullable": true,
            "type": "boolean"
          },
          "python_date_format": {
            "maxLength": 255,
            "minLength": 1,
            "nullable": true,
            "type": "string"
          },
          "type": {
            "nullable": true,
            "type": "string"
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "verbose_name": {
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "column_name"
        ],
        "type": "object"
      },
      "DatasetColumnsRestApi.get": {
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "DatasetColumnsRestApi.get_list": {
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "DatasetColumnsRestApi.post": {
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "DatasetColumnsRestApi.put": {
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "DatasetDuplicateSchema": {
        "properties": {
          "base_model_id": {
            "type": "integer"
          },
          "table_name": {
            "maxLength": 250,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "base_model_id",
          "table_name"
        ],
        "type": "object"
      },
      "DatasetMetricCurrencyPut": {
        "properties": {
          "symbol": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string"
          },
          "symbolPosition": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string"
          }
        },
        "type": "object"
      },
      "DatasetMetricRestApi.get": {
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "DatasetMetricRestApi.get_list": {
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "DatasetMetricRestApi.post": {
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "DatasetMetricRestApi.put": {
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "DatasetMetricsPut": {
        "properties": {
          "currency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DatasetMetricCurrencyPut"
              }
            ],
            "nullable": true
          },
          "d3format": {
            "maxLength": 128,
            "minLength": 1,
            "nullable": true,
            "type": "string"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "expression": {
            "type": "string"
          },
          "extra": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "metric_name": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string"
          },
          "metric_type": {
            "maxLength": 32,
            "minLength": 1,
            "nullable": true,
            "type": "string"
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "verbose_name": {
            "nullable": true,
            "type": "string"
          },
          "warning_text": {
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "expression",
          "metric_name"
        ],
        "type": "object"
      },
      "DatasetRelatedChart": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "slice_name": {
            "type": "string"
          },
          "viz_type": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "DatasetRelatedCharts": {
        "properties": {
          "count": {
            "description": "Chart count",
            "type": "integer"
          },
          "result": {
            "description": "A list of dashboards",
            "items": {
              "$ref": "#/components/schemas/DatasetRelatedChart"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "DatasetRelatedDashboard": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "json_metadata": {
            "type": "object"
          },
          "slug": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "DatasetRelatedDashboards": {
        "properties": {
          "count": {
            "description": "Dashboard count",
            "type": "integer"
          },
          "result": {
            "description": "A list of dashboards",
            "items": {
              "$ref": "#/components/schemas/DatasetRelatedDashboard"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "DatasetRelatedObjectsResponse": {
        "properties": {
          "charts": {
            "$ref": "#/components/schemas/DatasetRelatedCharts"
          },
          "dashboards": {
            "$ref": "#/components/schemas/DatasetRelatedDashboards"
          }
        },
        "type": "object"
      },
      "DatasetRestApi.get": {
        "properties": {
          "always_filter_main_dttm": {
            "nullable": true,
            "type": "boolean"
          },
          "cache_timeout": {
            "nullable": true,
            "type": "integer"
          },
          "catalog": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "changed_by": {
            "$ref": "#/components/schemas/DatasetRestApi.get.User2"
          },
          "changed_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "changed_on_humanized": {
            "readOnly": true
          },
          "column_formats": {
            "readOnly": true
          },
          "columns": {
            "$ref": "#/components/schemas/DatasetRestApi.get.TableColumn"
          },
          "created_by": {
            "$ref": "#/components/schemas/DatasetRestApi.get.User1"
          },
          "created_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "created_on_humanized": {
            "readOnly": true
          },
          "database": {
            "$ref": "#/components/schemas/DatasetRestApi.get.Database"
          },
          "datasource_name": {
            "readOnly": true
          },
          "datasource_type": {
            "readOnly": true
          },
          "default_endpoint": {
            "nullable": true,
            "type": "string"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "extra": {
            "nullable": true,
            "type": "string"
          },
          "fetch_values_predicate": {
            "nullable": true,
            "type": "string"
          },
          "filter_select_enabled": {
            "nullable": true,
            "type": "boolean"
          },
          "folders": {
            "nullable": true
          },
          "granularity_sqla": {
            "readOnly": true
          },
          "id": {
            "type": "integer"
          },
          "is_managed_externally": {
            "type": "boolean"
          },
          "is_sqllab_view": {
            "nullable": true,
            "type": "boolean"
          },
          "kind": {
            "readOnly": true
          },
          "main_dttm_col": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          },
          "metrics": {
            "$ref": "#/components/schemas/DatasetRestApi.get.SqlMetric"
          },
          "name": {
            "readOnly": true
          },
          "normalize_columns": {
            "nullable": true,
            "type": "boolean"
          },
          "offset": {
            "nullable": true,
            "type": "integer"
          },
          "order_by_choices": {
            "readOnly": true
          },
          "owners": {
            "$ref": "#/components/schemas/DatasetRestApi.get.User"
          },
          "schema": {
            "maxLength": 255,
            "nullable": true,
            "type": "string"
          },
          "select_star": {
            "readOnly": true
          },
          "sql": {
            "nullable": true,
            "type": "string"
          },
          "table_name": {
            "maxLength": 250,
            "type": "string"
          },
          "template_params": {
            "nullable": true,
            "type": "string"
          },
          "time_grain_sqla": {
            "readOnly": true
          },
          "uid": {
            "readOnly": true
          },
          "url": {
            "readOnly": true
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "verbose_map": {
            "readOnly": true
          }
        },
        "required": [
          "columns",
          "database",
          "metrics",
          "table_name"
        ],
        "type": "object"
      },
      "DatasetRestApi.get.Database": {
        "properties": {
          "allow_multi_catalog": {
            "readOnly": true
          },
          "backend": {
            "readOnly": true
          },
          "database_name": {
            "maxLength": 250,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "database_name"
        ],
        "type": "object"
      },
      "DatasetRestApi.get.SqlMetric": {
        "properties": {
          "changed_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "created_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "currency": {
            "nullable": true
          },
          "d3format": {
            "maxLength": 128,
            "nullable": true,
            "type": "string"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "expression": {
            "type": "string"
          },
          "extra": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "metric_name": {
            "maxLength": 255,
            "type": "string"
          },
          "metric_type": {
            "maxLength": 32,
            "nullable": true,
            "type": "string"
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "verbose_name": {
            "maxLength": 1024,
            "nullable": true,
            "type": "string"
          },
          "warning_text": {
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "expression",
          "metric_name"
        ],
        "type": "object"
      },
      "DatasetRestApi.get.TableColumn": {
        "properties": {
          "advanced_data_type": {
            "maxLength": 255,
            "nullable": true,
            "type": "string"
          },
          "changed_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "column_name": {
            "maxLength": 255,
            "type": "string"
          },
          "created_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "expression": {
            "nullable": true,
            "type": "string"
          },
          "extra": {
            "nullable": true,
            "type": "string"
          },
          "filterable": {
            "nullable": true,
            "type": "boolean"
          },
          "groupby": {
            "nullable": true,
            "type": "boolean"
          },
          "id": {
            "type": "integer"
          },
          "is_active": {
            "nullable": true,
            "type": "boolean"
          },
          "is_dttm": {
            "nullable": true,
            "type": "boolean"
          },
          "python_date_format": {
            "maxLength": 255,
            "nullable": true,
            "type": "string"
          },
          "type": {
            "nullable": true,
            "type": "string"
          },
          "type_generic": {
            "readOnly": true
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "verbose_name": {
            "maxLength": 1024,
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "column_name"
        ],
        "type": "object"
      },
      "DatasetRestApi.get.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "DatasetRestApi.get.User1": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "DatasetRestApi.get.User2": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "DatasetRestApi.get_list": {
        "properties": {
          "catalog": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "changed_by": {
            "$ref": "#/components/schemas/DatasetRestApi.get_list.User"
          },
          "changed_by_name": {
            "readOnly": true
          },
          "changed_on_delta_humanized": {
            "readOnly": true
          },
          "changed_on_utc": {
            "readOnly": true
          },
          "database": {
            "$ref": "#/components/schemas/DatasetRestApi.get_list.Database"
          },
          "datasource_type": {
            "readOnly": true
          },
          "default_endpoint": {
            "nullable": true,
            "type": "string"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "explore_url": {
            "readOnly": true
          },
          "extra": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "kind": {
            "readOnly": true
          },
          "owners": {
            "$ref": "#/components/schemas/DatasetRestApi.get_list.User1"
          },
          "schema": {
            "maxLength": 255,
            "nullable": true,
            "type": "string"
          },
          "sql": {
            "nullable": true,
            "type": "string"
          },
          "table_name": {
            "maxLength": 250,
            "type": "string"
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "database",
          "table_name"
        ],
        "type": "object"
      },
      "DatasetRestApi.get_list.Database": {
        "properties": {
          "database_name": {
            "maxLength": 250,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "database_name"
        ],
        "type": "object"
      },
      "DatasetRestApi.get_list.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "DatasetRestApi.get_list.User1": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "DatasetRestApi.post": {
        "properties": {
          "always_filter_main_dttm": {
            "default": false,
            "type": "boolean"
          },
          "catalog": {
            "maxLength": 250,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "database": {
            "type": "integer"
          },
          "external_url": {
            "nullable": true,
            "type": "string"
          },
          "is_managed_externally": {
            "nullable": true,
            "type": "boolean"
          },
          "normalize_columns": {
            "default": false,
            "type": "boolean"
          },
          "owners": {
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "schema": {
            "maxLength": 250,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "sql": {
            "nullable": true,
            "type": "string"
          },
          "table_name": {
            "maxLength": 250,
            "minLength": 1,
            "type": "string"
          },
          "template_params": {
            "nullable": true,
            "type": "string"
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "database",
          "table_name"
        ],
        "type": "object"
      },
      "DatasetRestApi.put": {
        "properties": {
          "always_filter_main_dttm": {
            "default": false,
            "type": "boolean"
          },
          "cache_timeout": {
            "nullable": true,
            "type": "integer"
          },
          "catalog": {
            "maxLength": 250,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "columns": {
            "items": {
              "$ref": "#/components/schemas/DatasetColumnsPut"
            },
            "type": "array"
          },
          "database_id": {
            "type": "integer"
          },
          "default_endpoint": {
            "nullable": true,
            "type": "string"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "external_url": {
            "nullable": true,
            "type": "string"
          },
          "extra": {
            "nullable": true,
            "type": "string"
          },
          "fetch_values_predicate": {
            "maxLength": 1000,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "filter_select_enabled": {
            "nullable": true,
            "type": "boolean"
          },
          "folders": {
            "items": {
              "$ref": "#/components/schemas/Folder"
            },
            "type": "array"
          },
          "is_managed_externally": {
            "nullable": true,
            "type": "boolean"
          },
          "is_sqllab_view": {
            "nullable": true,
            "type": "boolean"
          },
          "main_dttm_col": {
            "nullable": true,
            "type": "string"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/DatasetMetricsPut"
            },
            "type": "array"
          },
          "normalize_columns": {
            "nullable": true,
            "type": "boolean"
          },
          "offset": {
            "nullable": true,
            "type": "integer"
          },
          "owners": {
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "schema": {
            "maxLength": 255,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "sql": {
            "nullable": true,
            "type": "string"
          },
          "table_name": {
            "maxLength": 250,
            "minLength": 1,
            "nullable": true,
            "type": "string"
          },
          "template_params": {
            "nullable": true,
            "type": "string"
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "Datasource": {
        "properties": {
          "catalog": {
            "description": "Datasource catalog",
            "nullable": true,
            "type": "string"
          },
          "database_name": {
            "description": "Datasource name",
            "type": "string"
          },
          "datasource_name": {
            "description": "The datasource name.",
            "type": "string"
          },
          "datasource_type": {
            "description": "The type of dataset/datasource identified on `datasource_id`.",
            "enum": [
              "table",
              "dataset",
              "query",
              "saved_query",
              "view"
            ],
            "type": "string"
          },
          "schema": {
            "description": "Datasource schema",
            "type": "string"
          }
        },
        "required": [
          "datasource_type"
        ],
        "type": "object"
      },
      "DistincResponseSchema": {
        "properties": {
          "count": {
            "description": "The total number of distinct values",
            "type": "integer"
          },
          "result": {
            "items": {
              "$ref": "#/components/schemas/DistinctResultResponse"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "DistinctResultResponse": {
        "properties": {
          "text": {
            "description": "The distinct item",
            "type": "string"
          }
        },
        "type": "object"
      },
      "EmbeddedDashboardConfig": {
        "properties": {
          "allowed_domains": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "allowed_domains"
        ],
        "type": "object"
      },
      "EmbeddedDashboardResponseSchema": {
        "properties": {
          "allowed_domains": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "changed_by": {
            "$ref": "#/components/schemas/User2"
          },
          "changed_on": {
            "format": "date-time",
            "type": "string"
          },
          "dashboard_id": {
            "type": "string"
          },
          "uuid": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "EmbeddedDashboardRestApi.get": {
        "properties": {
          "uuid": {
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "EmbeddedDashboardRestApi.get_list": {
        "properties": {
          "uuid": {
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "EmbeddedDashboardRestApi.post": {
        "properties": {
          "uuid": {
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "EmbeddedDashboardRestApi.put": {
        "properties": {
          "uuid": {
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "EngineInformation": {
        "properties": {
          "disable_ssh_tunneling": {
            "description": "SSH tunnel is not available to the database",
            "type": "boolean"
          },
          "supports_dynamic_catalog": {
            "description": "The database supports multiple catalogs in a single connection",
            "type": "boolean"
          },
          "supports_file_upload": {
            "description": "Users can upload files to the database",
            "type": "boolean"
          },
          "supports_oauth2": {
            "description": "The database supports OAuth2",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "EstimateQueryCostSchema": {
        "properties": {
          "catalog": {
            "description": "The database catalog",
            "nullable": true,
            "type": "string"
          },
          "database_id": {
            "description": "The database id",
            "type": "integer"
          },
          "schema": {
            "description": "The database schema",
            "nullable": true,
            "type": "string"
          },
          "sql": {
            "description": "The SQL query to estimate",
            "type": "string"
          },
          "template_params": {
            "description": "The SQL query template params",
            "type": "object"
          }
        },
        "required": [
          "database_id",
          "sql"
        ],
        "type": "object"
      },
      "ExecutePayloadSchema": {
        "properties": {
          "catalog": {
            "nullable": true,
            "type": "string"
          },
          "client_id": {
            "nullable": true,
            "type": "string"
          },
          "ctas_method": {
            "nullable": true,
            "type": "string"
          },
          "database_id": {
            "type": "integer"
          },
          "expand_data": {
            "nullable": true,
            "type": "boolean"
          },
          "json": {
            "nullable": true,
            "type": "boolean"
          },
          "queryLimit": {
            "nullable": true,
            "type": "integer"
          },
          "runAsync": {
            "nullable": true,
            "type": "boolean"
          },
          "schema": {
            "nullable": true,
            "type": "string"
          },
          "select_as_cta": {
            "nullable": true,
            "type": "boolean"
          },
          "sql": {
            "type": "string"
          },
          "sql_editor_id": {
            "nullable": true,
            "type": "string"
          },
          "tab": {
            "nullable": true,
            "type": "string"
          },
          "templateParams": {
            "nullable": true,
            "type": "string"
          },
          "tmp_table_name": {
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "database_id",
          "sql"
        ],
        "type": "object"
      },
      "ExploreContextSchema": {
        "properties": {
          "dataset": {
            "$ref": "#/components/schemas/Dataset"
          },
          "form_data": {
            "description": "Form data from the Explore controls used to form the chart's data query.",
            "type": "object"
          },
          "message": {
            "description": "Any message related to the processed request.",
            "type": "string"
          },
          "slice": {
            "$ref": "#/components/schemas/Slice"
          }
        },
        "type": "object"
      },
      "ExplorePermalinkStateSchema": {
        "properties": {
          "formData": {
            "description": "Chart form data",
            "type": "object"
          },
          "urlParams": {
            "description": "URL Parameters",
            "items": {
              "description": "URL Parameter key-value pair",
              "nullable": true
            },
            "nullable": true,
            "type": "array"
          }
        },
        "required": [
          "formData"
        ],
        "type": "object"
      },
      "Folder": {
        "properties": {
          "children": {
            "items": {
              "$ref": "#/components/schemas/Folder"
            },
            "nullable": true,
            "type": "array"
          },
          "description": {
            "maxLength": 1000,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "name": {
            "maxLength": 250,
            "minLength": 1,
            "type": "string"
          },
          "type": {
            "enum": [
              "metric",
              "column",
              "folder"
            ],
            "type": "string"
          },
          "uuid": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "uuid"
        ],
        "type": "object"
      },
      "FormDataPostSchema": {
        "properties": {
          "chart_id": {
            "description": "The chart ID",
            "type": "integer"
          },
          "datasource_id": {
            "description": "The datasource ID",
            "type": "integer"
          },
          "datasource_type": {
            "description": "The datasource type",
            "enum": [
              "table",
              "dataset",
              "query",
              "saved_query",
              "view"
            ],
            "type": "string"
          },
          "form_data": {
            "description": "Any type of JSON supported text.",
            "type": "string"
          }
        },
        "required": [
          "datasource_id",
          "datasource_type",
          "form_data"
        ],
        "type": "object"
      },
      "FormDataPutSchema": {
        "properties": {
          "chart_id": {
            "description": "The chart ID",
            "type": "integer"
          },
          "datasource_id": {
            "description": "The datasource ID",
            "type": "integer"
          },
          "datasource_type": {
            "description": "The datasource type",
            "enum": [
              "table",
              "dataset",
              "query",
              "saved_query",
              "view"
            ],
            "type": "string"
          },
          "form_data": {
            "description": "Any type of JSON supported text.",
            "type": "string"
          }
        },
        "required": [
          "datasource_id",
          "datasource_type",
          "form_data"
        ],
        "type": "object"
      },
      "FormatQueryPayloadSchema": {
        "properties": {
          "engine": {
            "nullable": true,
            "type": "string"
          },
          "sql": {
            "type": "string"
          }
        },
        "required": [
          "sql"
        ],
        "type": "object"
      },
      "GetFavStarIdsSchema": {
        "properties": {
          "result": {
            "description": "A list of results for each corresponding chart in the request",
            "items": {
              "$ref": "#/components/schemas/ChartFavStarResponseResult"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "GetOrCreateDatasetSchema": {
        "properties": {
          "always_filter_main_dttm": {
            "default": false,
            "type": "boolean"
          },
          "catalog": {
            "description": "The catalog the table belongs to",
            "maxLength": 250,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "database_id": {
            "description": "ID of database table belongs to",
            "type": "integer"
          },
          "normalize_columns": {
            "default": false,
            "type": "boolean"
          },
          "schema": {
            "description": "The schema the table belongs to",
            "maxLength": 250,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "table_name": {
            "description": "Name of table",
            "type": "string"
          },
          "template_params": {
            "description": "Template params for the table",
            "type": "string"
          }
        },
        "required": [
          "database_id",
          "table_name"
        ],
        "type": "object"
      },
      "GroupApi.get": {
        "properties": {
          "description": {
            "maxLength": 512,
            "nullable": true,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "label": {
            "maxLength": 150,
            "nullable": true,
            "type": "string"
          },
          "name": {
            "maxLength": 100,
            "type": "string"
          },
          "roles": {
            "$ref": "#/components/schemas/GroupApi.get.Role"
          },
          "users": {
            "$ref": "#/components/schemas/GroupApi.get.User"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "GroupApi.get.Role": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "GroupApi.get.User": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "username": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "username"
        ],
        "type": "object"
      },
      "GroupApi.get_list": {
        "properties": {
          "description": {
            "maxLength": 512,
            "nullable": true,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "label": {
            "maxLength": 150,
            "nullable": true,
            "type": "string"
          },
          "name": {
            "maxLength": 100,
            "type": "string"
          },
          "roles": {
            "$ref": "#/components/schemas/GroupApi.get_list.Role"
          },
          "users": {
            "$ref": "#/components/schemas/GroupApi.get_list.User"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "GroupApi.get_list.Role": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "GroupApi.get_list.User": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "username": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "username"
        ],
        "type": "object"
      },
      "GroupApi.post": {
        "properties": {
          "description": {
            "description": "Group description",
            "maxLength": 512,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "label": {
            "description": "Group label",
            "maxLength": 150,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "name": {
            "description": "Group name",
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          },
          "roles": {
            "description": "Group roles",
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "users": {
            "description": "Group users",
            "items": {
              "type": "integer"
            },
            "type": "array"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "GroupApi.put": {
        "properties": {
          "description": {
            "description": "Group description",
            "maxLength": 512,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "label": {
            "description": "Group label",
            "maxLength": 150,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "name": {
            "description": "Group name",
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          },
          "roles": {
            "description": "Group roles",
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "users": {
            "description": "Group users",
            "items": {
              "type": "integer"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "GroupPostSchema": {
        "properties": {
          "description": {
            "description": "Group description",
            "maxLength": 512,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "label": {
            "description": "Group label",
            "maxLength": 150,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "name": {
            "description": "Group name",
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          },
          "roles": {
            "description": "Group roles",
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "users": {
            "description": "Group users",
            "items": {
              "type": "integer"
            },
            "type": "array"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "GroupPutSchema": {
        "properties": {
          "description": {
            "description": "Group description",
            "maxLength": 512,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "label": {
            "description": "Group label",
            "maxLength": 150,
            "minLength": 0,
            "nullable": true,
            "type": "string"
          },
          "name": {
            "description": "Group name",
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          },
          "roles": {
            "description": "Group roles",
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "users": {
            "description": "Group users",
            "items": {
              "type": "integer"
            },
            "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/User3"
          }
        },
        "required": [
          "resources",
          "rls"
        ],
        "type": "object"
      },
      "ImportV1Database": {
        "properties": {
          "allow_csv_upload": {
            "type": "boolean"
          },
          "allow_ctas": {
            "type": "boolean"
          },
          "allow_cvas": {
            "type": "boolean"
          },
          "allow_dml": {
            "type": "boolean"
          },
          "allow_run_async": {
            "type": "boolean"
          },
          "cache_timeout": {
            "nullable": true,
            "type": "integer"
          },
          "database_name": {
            "type": "string"
          },
          "encrypted_extra": {
            "nullable": true,
            "type": "string"
          },
          "expose_in_sqllab": {
            "type": "boolean"
          },
          "external_url": {
            "nullable": true,
            "type": "string"
          },
          "extra": {
            "$ref": "#/components/schemas/ImportV1DatabaseExtra"
          },
          "impersonate_user": {
            "type": "boolean"
          },
          "is_managed_externally": {
            "nullable": true,
            "type": "boolean"
          },
          "password": {
            "nullable": true,
            "type": "string"
          },
          "sqlalchemy_uri": {
            "type": "string"
          },
          "ssh_tunnel": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DatabaseSSHTunnel"
              }
            ],
            "nullable": true
          },
          "uuid": {
            "format": "uuid",
            "type": "string"
          },
          "version": {
            "type": "string"
          }
        },
        "required": [
          "database_name",
          "sqlalchemy_uri",
          "uuid",
          "version"
        ],
        "type": "object"
      },
      "ImportV1DatabaseExtra": {
        "properties": {
          "allow_multi_catalog": {
            "type": "boolean"
          },
          "allows_virtual_table_explore": {
            "type": "boolean"
          },
          "cancel_query_on_windows_unload": {
            "type": "boolean"
          },
          "cost_estimate_enabled": {
            "type": "boolean"
          },
          "disable_data_preview": {
            "type": "boolean"
          },
          "disable_drill_to_detail": {
            "type": "boolean"
          },
          "engine_params": {
            "additionalProperties": {},
            "type": "object"
          },
          "metadata_cache_timeout": {
            "additionalProperties": {
              "type": "integer"
            },
            "type": "object"
          },
          "metadata_params": {
            "additionalProperties": {},
            "type": "object"
          },
          "schema_options": {
            "additionalProperties": {},
            "type": "object"
          },
          "schemas_allowed_for_csv_upload": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "version": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "LogRestApi.get": {
        "properties": {
          "action": {
            "maxLength": 512,
            "nullable": true,
            "type": "string"
          },
          "dashboard_id": {
            "nullable": true,
            "type": "integer"
          },
          "dttm": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "duration_ms": {
            "nullable": true,
            "type": "integer"
          },
          "json": {
            "nullable": true,
            "type": "string"
          },
          "referrer": {
            "maxLength": 1024,
            "nullable": true,
            "type": "string"
          },
          "slice_id": {
            "nullable": true,
            "type": "integer"
          },
          "user": {
            "$ref": "#/components/schemas/LogRestApi.get.User"
          },
          "user_id": {}
        },
        "type": "object"
      },
      "LogRestApi.get.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          },
          "username": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name",
          "username"
        ],
        "type": "object"
      },
      "LogRestApi.get_list": {
        "properties": {
          "action": {
            "maxLength": 512,
            "nullable": true,
            "type": "string"
          },
          "dashboard_id": {
            "nullable": true,
            "type": "integer"
          },
          "dttm": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "duration_ms": {
            "nullable": true,
            "type": "integer"
          },
          "json": {
            "nullable": true,
            "type": "string"
          },
          "referrer": {
            "maxLength": 1024,
            "nullable": true,
            "type": "string"
          },
          "slice_id": {
            "nullable": true,
            "type": "integer"
          },
          "user": {
            "$ref": "#/components/schemas/LogRestApi.get_list.User"
          },
          "user_id": {}
        },
        "type": "object"
      },
      "LogRestApi.get_list.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          },
          "username": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name",
          "username"
        ],
        "type": "object"
      },
      "LogRestApi.post": {
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "LogRestApi.put": {
        "properties": {
          "action": {
            "maxLength": 512,
            "nullable": true,
            "type": "string"
          },
          "dttm": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "json": {
            "nullable": true,
            "type": "string"
          },
          "user": {
            "nullable": true
          }
        },
        "type": "object"
      },
      "PermissionApi.get": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "maxLength": 100,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "PermissionApi.get_list": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "maxLength": 100,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "PermissionApi.post": {
        "properties": {
          "name": {
            "maxLength": 100,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "PermissionApi.put": {
        "properties": {
          "name": {
            "maxLength": 100,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "PermissionViewMenuApi.get": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "permission": {
            "$ref": "#/components/schemas/PermissionViewMenuApi.get.Permission"
          },
          "view_menu": {
            "$ref": "#/components/schemas/PermissionViewMenuApi.get.ViewMenu"
          }
        },
        "type": "object"
      },
      "PermissionViewMenuApi.get.Permission": {
        "properties": {
          "name": {
            "maxLength": 100,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "PermissionViewMenuApi.get.ViewMenu": {
        "properties": {
          "name": {
            "maxLength": 250,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "PermissionViewMenuApi.get_list": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "permission": {
            "$ref": "#/components/schemas/PermissionViewMenuApi.get_list.Permission"
          },
          "view_menu": {
            "$ref": "#/components/schemas/PermissionViewMenuApi.get_list.ViewMenu"
          }
        },
        "type": "object"
      },
      "PermissionViewMenuApi.get_list.Permission": {
        "properties": {
          "name": {
            "maxLength": 100,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "PermissionViewMenuApi.get_list.ViewMenu": {
        "properties": {
          "name": {
            "maxLength": 250,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "PermissionViewMenuApi.post": {
        "properties": {
          "permission_id": {},
          "view_menu_id": {}
        },
        "type": "object"
      },
      "PermissionViewMenuApi.put": {
        "properties": {
          "permission_id": {},
          "view_menu_id": {}
        },
        "type": "object"
      },
      "QueryExecutionResponseSchema": {
        "properties": {
          "columns": {
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "data": {
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "expanded_columns": {
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "query": {
            "$ref": "#/components/schemas/QueryResult"
          },
          "query_id": {
            "type": "integer"
          },
          "selected_columns": {
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "status": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "QueryRestApi.get": {
        "properties": {
          "changed_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "client_id": {
            "maxLength": 11,
            "type": "string"
          },
          "database": {
            "$ref": "#/components/schemas/QueryRestApi.get.Database"
          },
          "end_result_backend_time": {
            "nullable": true,
            "type": "number"
          },
          "end_time": {
            "nullable": true,
            "type": "number"
          },
          "error_message": {
            "nullable": true,
            "type": "string"
          },
          "executed_sql": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "limit": {
            "nullable": true,
            "type": "integer"
          },
          "progress": {
            "nullable": true,
            "type": "integer"
          },
          "results_key": {
            "maxLength": 64,
            "nullable": true,
            "type": "string"
          },
          "rows": {
            "nullable": true,
            "type": "integer"
          },
          "schema": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "select_as_cta": {
            "nullable": true,
            "type": "boolean"
          },
          "select_as_cta_used": {
            "nullable": true,
            "type": "boolean"
          },
          "select_sql": {
            "nullable": true,
            "type": "string"
          },
          "sql": {
            "nullable": true,
            "type": "string"
          },
          "sql_editor_id": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "start_running_time": {
            "nullable": true,
            "type": "number"
          },
          "start_time": {
            "nullable": true,
            "type": "number"
          },
          "status": {
            "maxLength": 16,
            "nullable": true,
            "type": "string"
          },
          "tab_name": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "tmp_schema_name": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "tmp_table_name": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "tracking_url": {
            "readOnly": true
          }
        },
        "required": [
          "client_id",
          "database"
        ],
        "type": "object"
      },
      "QueryRestApi.get.Database": {
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "QueryRestApi.get_list": {
        "properties": {
          "changed_on": {
            "format": "date-time",
            "type": "string"
          },
          "database": {
            "$ref": "#/components/schemas/Database1"
          },
          "end_time": {
            "type": "number"
          },
          "executed_sql": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "rows": {
            "type": "integer"
          },
          "schema": {
            "type": "string"
          },
          "sql": {
            "type": "string"
          },
          "sql_tables": {
            "readOnly": true
          },
          "start_time": {
            "type": "number"
          },
          "status": {
            "type": "string"
          },
          "tab_name": {
            "type": "string"
          },
          "tmp_table_name": {
            "type": "string"
          },
          "tracking_url": {
            "type": "string"
          },
          "user": {
            "$ref": "#/components/schemas/User1"
          }
        },
        "type": "object"
      },
      "QueryRestApi.post": {
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "QueryRestApi.put": {
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "QueryResult": {
        "properties": {
          "changed_on": {
            "format": "date-time",
            "type": "string"
          },
          "ctas": {
            "type": "boolean"
          },
          "db": {
            "type": "string"
          },
          "dbId": {
            "type": "integer"
          },
          "endDttm": {
            "type": "number"
          },
          "errorMessage": {
            "nullable": true,
            "type": "string"
          },
          "executedSql": {
            "type": "string"
          },
          "extra": {
            "type": "object"
          },
          "id": {
            "type": "string"
          },
          "limit": {
            "type": "integer"
          },
          "limitingFactor": {
            "type": "string"
          },
          "progress": {
            "type": "integer"
          },
          "queryId": {
            "type": "integer"
          },
          "resultsKey": {
            "type": "string"
          },
          "rows": {
            "type": "integer"
          },
          "schema": {
            "type": "string"
          },
          "serverId": {
            "type": "integer"
          },
          "sql": {
            "type": "string"
          },
          "sqlEditorId": {
            "type": "string"
          },
          "startDttm": {
            "type": "number"
          },
          "state": {
            "type": "string"
          },
          "tab": {
            "type": "string"
          },
          "tempSchema": {
            "nullable": true,
            "type": "string"
          },
          "tempTable": {
            "nullable": true,
            "type": "string"
          },
          "trackingUrl": {
            "nullable": true,
            "type": "string"
          },
          "user": {
            "type": "string"
          },
          "userId": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "RLSRestApi.get": {
        "properties": {
          "clause": {
            "description": "clause_description",
            "type": "string"
          },
          "description": {
            "description": "description_description",
            "type": "string"
          },
          "filter_type": {
            "description": "filter_type_description",
            "enum": [
              "Regular",
              "Base"
            ],
            "type": "string"
          },
          "group_key": {
            "description": "group_key_description",
            "type": "string"
          },
          "id": {
            "description": "id_description",
            "type": "integer"
          },
          "name": {
            "description": "name_description",
            "type": "string"
          },
          "roles": {
            "items": {
              "$ref": "#/components/schemas/Roles1"
            },
            "type": "array"
          },
          "tables": {
            "items": {
              "$ref": "#/components/schemas/Tables"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "RLSRestApi.get_list": {
        "properties": {
          "changed_by": {
            "$ref": "#/components/schemas/User1"
          },
          "changed_on_delta_humanized": {
            "readOnly": true
          },
          "clause": {
            "description": "clause_description",
            "type": "string"
          },
          "description": {
            "description": "description_description",
            "type": "string"
          },
          "filter_type": {
            "description": "filter_type_description",
            "enum": [
              "Regular",
              "Base"
            ],
            "type": "string"
          },
          "group_key": {
            "description": "group_key_description",
            "type": "string"
          },
          "id": {
            "description": "id_description",
            "type": "integer"
          },
          "name": {
            "description": "name_description",
            "type": "string"
          },
          "roles": {
            "items": {
              "$ref": "#/components/schemas/Roles1"
            },
            "type": "array"
          },
          "tables": {
            "items": {
              "$ref": "#/components/schemas/Tables"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "RLSRestApi.post": {
        "properties": {
          "clause": {
            "description": "clause_description",
            "type": "string"
          },
          "description": {
            "description": "description_description",
            "nullable": true,
            "type": "string"
          },
          "filter_type": {
            "description": "filter_type_description",
            "enum": [
              "Regular",
              "Base"
            ],
            "type": "string"
          },
          "group_key": {
            "description": "group_key_description",
            "nullable": true,
            "type": "string"
          },
          "name": {
            "description": "name_description",
            "maxLength": 255,
            "minLength": 1,
            "type": "string"
          },
          "roles": {
            "description": "roles_description",
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "tables": {
            "description": "tables_description",
            "items": {
              "type": "integer"
            },
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "clause",
          "filter_type",
          "name",
          "roles",
          "tables"
        ],
        "type": "object"
      },
      "RLSRestApi.put": {
        "properties": {
          "clause": {
            "description": "clause_description",
            "type": "string"
          },
          "description": {
            "description": "description_description",
            "nullable": true,
            "type": "string"
          },
          "filter_type": {
            "description": "filter_type_description",
            "enum": [
              "Regular",
              "Base"
            ],
            "type": "string"
          },
          "group_key": {
            "description": "group_key_description",
            "nullable": true,
            "type": "string"
          },
          "name": {
            "description": "name_description",
            "maxLength": 255,
            "minLength": 1,
            "type": "string"
          },
          "roles": {
            "description": "roles_description",
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "tables": {
            "description": "tables_description",
            "items": {
              "type": "integer"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "RecentActivity": {
        "properties": {
          "action": {
            "description": "Action taken describing type of activity",
            "type": "string"
          },
          "item_title": {
            "description": "Title of item",
            "type": "string"
          },
          "item_type": {
            "description": "Type of item, e.g. slice or dashboard",
            "type": "string"
          },
          "item_url": {
            "description": "URL to item",
            "type": "string"
          },
          "time": {
            "description": "Time of activity, in epoch milliseconds",
            "type": "number"
          },
          "time_delta_humanized": {
            "description": "Human-readable description of how long ago activity took place.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "RecentActivityResponseSchema": {
        "properties": {
          "result": {
            "description": "A list of recent activity objects",
            "items": {
              "$ref": "#/components/schemas/RecentActivity"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "RecentActivitySchema": {
        "properties": {
          "action": {
            "description": "Action taken describing type of activity",
            "type": "string"
          },
          "item_title": {
            "description": "Title of item",
            "type": "string"
          },
          "item_type": {
            "description": "Type of item, e.g. slice or dashboard",
            "type": "string"
          },
          "item_url": {
            "description": "URL to item",
            "type": "string"
          },
          "time": {
            "description": "Time of activity, in epoch milliseconds",
            "type": "number"
          },
          "time_delta_humanized": {
            "description": "Human-readable description of how long ago activity took place.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "RelatedResponseSchema": {
        "properties": {
          "count": {
            "description": "The total number of related values",
            "type": "integer"
          },
          "result": {
            "items": {
              "$ref": "#/components/schemas/RelatedResultResponse"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "RelatedResultResponse": {
        "properties": {
          "extra": {
            "description": "The extra metadata for related item",
            "type": "object"
          },
          "text": {
            "description": "The related item string representation",
            "type": "string"
          },
          "value": {
            "description": "The related item identifier",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "ReportExecutionLogRestApi.get": {
        "properties": {
          "end_dttm": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "error_message": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "scheduled_dttm": {
            "format": "date-time",
            "type": "string"
          },
          "start_dttm": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "state": {
            "maxLength": 50,
            "type": "string"
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "value": {
            "nullable": true,
            "type": "number"
          },
          "value_row_json": {
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "scheduled_dttm",
          "state"
        ],
        "type": "object"
      },
      "ReportExecutionLogRestApi.get_list": {
        "properties": {
          "end_dttm": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "error_message": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "scheduled_dttm": {
            "format": "date-time",
            "type": "string"
          },
          "start_dttm": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "state": {
            "maxLength": 50,
            "type": "string"
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "value": {
            "nullable": true,
            "type": "number"
          },
          "value_row_json": {
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "scheduled_dttm",
          "state"
        ],
        "type": "object"
      },
      "ReportExecutionLogRestApi.post": {
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "ReportExecutionLogRestApi.put": {
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "ReportRecipient": {
        "properties": {
          "recipient_config_json": {
            "$ref": "#/components/schemas/ReportRecipientConfigJSON"
          },
          "type": {
            "description": "The recipient type, check spec for valid options",
            "enum": [
              "Email",
              "Slack",
              "SlackV2"
            ],
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "type": "object"
      },
      "ReportRecipientConfigJSON": {
        "properties": {
          "bccTarget": {
            "type": "string"
          },
          "ccTarget": {
            "type": "string"
          },
          "target": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ReportScheduleRestApi.get": {
        "properties": {
          "active": {
            "nullable": true,
            "type": "boolean"
          },
          "chart": {
            "$ref": "#/components/schemas/ReportScheduleRestApi.get.Slice"
          },
          "context_markdown": {
            "nullable": true,
            "type": "string"
          },
          "creation_method": {
            "maxLength": 255,
            "nullable": true,
            "type": "string"
          },
          "crontab": {
            "maxLength": 1000,
            "type": "string"
          },
          "custom_width": {
            "nullable": true,
            "type": "integer"
          },
          "dashboard": {
            "$ref": "#/components/schemas/ReportScheduleRestApi.get.Dashboard"
          },
          "database": {
            "$ref": "#/components/schemas/ReportScheduleRestApi.get.Database"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "email_subject": {
            "maxLength": 255,
            "nullable": true,
            "type": "string"
          },
          "extra": {
            "readOnly": true
          },
          "force_screenshot": {
            "nullable": true,
            "type": "boolean"
          },
          "grace_period": {
            "nullable": true,
            "type": "integer"
          },
          "id": {
            "type": "integer"
          },
          "last_eval_dttm": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "last_state": {
            "maxLength": 50,
            "nullable": true,
            "type": "string"
          },
          "last_value": {
            "nullable": true,
            "type": "number"
          },
          "last_value_row_json": {
            "nullable": true,
            "type": "string"
          },
          "log_retention": {
            "nullable": true,
            "type": "integer"
          },
          "name": {
            "maxLength": 150,
            "type": "string"
          },
          "owners": {
            "$ref": "#/components/schemas/ReportScheduleRestApi.get.User"
          },
          "recipients": {
            "$ref": "#/components/schemas/ReportScheduleRestApi.get.ReportRecipients"
          },
          "report_format": {
            "maxLength": 50,
            "nullable": true,
            "type": "string"
          },
          "sql": {
            "nullable": true,
            "type": "string"
          },
          "timezone": {
            "maxLength": 100,
            "type": "string"
          },
          "type": {
            "maxLength": 50,
            "type": "string"
          },
          "validator_config_json": {
            "nullable": true,
            "type": "string"
          },
          "validator_type": {
            "maxLength": 100,
            "nullable": true,
            "type": "string"
          },
          "working_timeout": {
            "nullable": true,
            "type": "integer"
          }
        },
        "required": [
          "crontab",
          "name",
          "recipients",
          "type"
        ],
        "type": "object"
      },
      "ReportScheduleRestApi.get.Dashboard": {
        "properties": {
          "dashboard_title": {
            "maxLength": 500,
            "nullable": true,
            "type": "string"
          },
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "ReportScheduleRestApi.get.Database": {
        "properties": {
          "database_name": {
            "maxLength": 250,
            "type": "string"
          },
          "id": {
            "type": "integer"
          }
        },
        "required": [
          "database_name"
        ],
        "type": "object"
      },
      "ReportScheduleRestApi.get.ReportRecipients": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "recipient_config_json": {
            "nullable": true,
            "type": "string"
          },
          "type": {
            "maxLength": 50,
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "type": "object"
      },
      "ReportScheduleRestApi.get.Slice": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "slice_name": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          },
          "viz_type": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ReportScheduleRestApi.get.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "ReportScheduleRestApi.get_list": {
        "properties": {
          "active": {
            "nullable": true,
            "type": "boolean"
          },
          "changed_by": {
            "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User"
          },
          "changed_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "changed_on_delta_humanized": {
            "readOnly": true
          },
          "chart_id": {},
          "created_by": {
            "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User1"
          },
          "created_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "creation_method": {
            "maxLength": 255,
            "nullable": true,
            "type": "string"
          },
          "crontab": {
            "maxLength": 1000,
            "type": "string"
          },
          "crontab_humanized": {
            "readOnly": true
          },
          "dashboard_id": {},
          "description": {
            "nullable": true,
            "type": "string"
          },
          "extra": {
            "readOnly": true
          },
          "id": {
            "type": "integer"
          },
          "last_eval_dttm": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "last_state": {
            "maxLength": 50,
            "nullable": true,
            "type": "string"
          },
          "name": {
            "maxLength": 150,
            "type": "string"
          },
          "owners": {
            "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User2"
          },
          "recipients": {
            "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.ReportRecipients"
          },
          "timezone": {
            "maxLength": 100,
            "type": "string"
          },
          "type": {
            "maxLength": 50,
            "type": "string"
          }
        },
        "required": [
          "crontab",
          "name",
          "recipients",
          "type"
        ],
        "type": "object"
      },
      "ReportScheduleRestApi.get_list.ReportRecipients": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "type": {
            "maxLength": 50,
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "type": "object"
      },
      "ReportScheduleRestApi.get_list.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "ReportScheduleRestApi.get_list.User1": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "ReportScheduleRestApi.get_list.User2": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "ReportScheduleRestApi.post": {
        "properties": {
          "active": {
            "type": "boolean"
          },
          "chart": {
            "nullable": true,
            "type": "integer"
          },
          "context_markdown": {
            "description": "Markdown description",
            "nullable": true,
            "type": "string"
          },
          "creation_method": {
            "description": "Creation method is used to inform the frontend whether the report/alert was created in the dashboard, chart, or alerts and reports UI.",
            "enum": [
              "charts",
              "dashboards",
              "alerts_reports"
            ]
          },
          "crontab": {
            "description": "A CRON expression.[Crontab Guru](https://crontab.guru/) is a helpful resource that can help you craft a CRON expression.",
            "example": "*/5 * * * *",
            "maxLength": 1000,
            "minLength": 1,
            "type": "string"
          },
          "custom_width": {
            "description": "Custom width of the screenshot in pixels",
            "example": 1000,
            "nullable": true,
            "type": "integer"
          },
          "dashboard": {
            "nullable": true,
            "type": "integer"
          },
          "database": {
            "type": "integer"
          },
          "description": {
            "description": "Use a nice description to give context to this Alert/Report",
            "example": "Daily sales dashboard to marketing",
            "nullable": true,
            "type": "string"
          },
          "email_subject": {
            "description": "The report schedule subject line",
            "example": "[Report]  Report name: Dashboard or chart name",
            "nullable": true,
            "type": "string"
          },
          "extra": {
            "type": "object"
          },
          "force_screenshot": {
            "type": "boolean"
          },
          "grace_period": {
            "description": "Once an alert is triggered, how long, in seconds, before Superset nags you again. (in seconds)",
            "example": 14400,
            "minimum": 1,
            "type": "integer"
          },
          "log_retention": {
            "description": "How long to keep the logs around for this report (in days)",
            "example": 90,
            "minimum": 1,
            "type": "integer"
          },
          "name": {
            "description": "The report schedule name.",
            "example": "Daily dashboard email",
            "maxLength": 150,
            "minLength": 1,
            "type": "string"
          },
          "owners": {
            "items": {
              "description": "Owner are users ids allowed to delete or change this report. If left empty you will be one of the owners of the report.",
              "type": "integer"
            },
            "type": "array"
          },
          "recipients": {
            "items": {
              "$ref": "#/components/schemas/ReportRecipient"
            },
            "type": "array"
          },
          "report_format": {
            "enum": [
              "PDF",
              "PNG",
              "CSV",
              "TEXT"
            ],
            "type": "string"
          },
          "selected_tabs": {
            "items": {
              "type": "integer"
            },
            "nullable": true,
            "type": "array"
          },
          "sql": {
            "description": "A SQL statement that defines whether the alert should get triggered or not. The query is expected to return either NULL or a number value.",
            "example": "SELECT value FROM time_series_table",
            "type": "string"
          },
          "timezone": {
            "description": "A timezone string that represents the location of the timezone.",
            "enum": [
              "Africa/Abidjan",
              "Africa/Accra",
              "Africa/Addis_Ababa",
              "Africa/Algiers",
              "Africa/Asmara",
              "Africa/Asmera",
              "Africa/Bamako",
              "Africa/Bangui",
              "Africa/Banjul",
              "Africa/Bissau",
              "Africa/Blantyre",
              "Africa/Brazzaville",
              "Africa/Bujumbura",
              "Africa/Cairo",
              "Africa/Casablanca",
              "Africa/Ceuta",
              "Africa/Conakry",
              "Africa/Dakar",
              "Africa/Dar_es_Salaam",
              "Africa/Djibouti",
              "Africa/Douala",
              "Africa/El_Aaiun",
              "Africa/Freetown",
              "Africa/Gaborone",
              "Africa/Harare",
              "Africa/Johannesburg",
              "Africa/Juba",
              "Africa/Kampala",
              "Africa/Khartoum",
              "Africa/Kigali",
              "Africa/Kinshasa",
              "Africa/Lagos",
              "Africa/Libreville",
              "Africa/Lome",
              "Africa/Luanda",
              "Africa/Lubumbashi",
              "Africa/Lusaka",
              "Africa/Malabo",
              "Africa/Maputo",
              "Africa/Maseru",
              "Africa/Mbabane",
              "Africa/Mogadishu",
              "Africa/Monrovia",
              "Africa/Nairobi",
              "Africa/Ndjamena",
              "Africa/Niamey",
              "Africa/Nouakchott",
              "Africa/Ouagadougou",
              "Africa/Porto-Novo",
              "Africa/Sao_Tome",
              "Africa/Timbuktu",
              "Africa/Tripoli",
              "Africa/Tunis",
              "Africa/Windhoek",
              "America/Adak",
              "America/Anchorage",
              "America/Anguilla",
              "America/Antigua",
              "America/Araguaina",
              "America/Argentina/Buenos_Aires",
              "America/Argentina/Catamarca",
              "America/Argentina/ComodRivadavia",
              "America/Argentina/Cordoba",
              "America/Argentina/Jujuy",
              "America/Argentina/La_Rioja",
              "America/Argentina/Mendoza",
              "America/Argentina/Rio_Gallegos",
              "America/Argentina/Salta",
              "America/Argentina/San_Juan",
              "America/Argentina/San_Luis",
              "America/Argentina/Tucuman",
              "America/Argentina/Ushuaia",
              "America/Aruba",
              "America/Asuncion",
              "America/Atikokan",
              "America/Atka",
              "America/Bahia",
              "America/Bahia_Banderas",
              "America/Barbados",
              "America/Belem",
              "America/Belize",
              "America/Blanc-Sablon",
              "America/Boa_Vista",
              "America/Bogota",
              "America/Boise",
              "America/Buenos_Aires",
              "America/Cambridge_Bay",
              "America/Campo_Grande",
              "America/Cancun",
              "America/Caracas",
              "America/Catamarca",
              "America/Cayenne",
              "America/Cayman",
              "America/Chicago",
              "America/Chihuahua",
              "America/Ciudad_Juarez",
              "America/Coral_Harbour",
              "America/Cordoba",
              "America/Costa_Rica",
              "America/Coyhaique",
              "America/Creston",
              "America/Cuiaba",
              "America/Curacao",
              "America/Danmarkshavn",
              "America/Dawson",
              "America/Dawson_Creek",
              "America/Denver",
              "America/Detroit",
              "America/Dominica",
              "America/Edmonton",
              "America/Eirunepe",
              "America/El_Salvador",
              "America/Ensenada",
              "America/Fort_Nelson",
              "America/Fort_Wayne",
              "America/Fortaleza",
              "America/Glace_Bay",
              "America/Godthab",
              "America/Goose_Bay",
              "America/Grand_Turk",
              "America/Grenada",
              "America/Guadeloupe",
              "America/Guatemala",
              "America/Guayaquil",
              "America/Guyana",
              "America/Halifax",
              "America/Havana",
              "America/Hermosillo",
              "America/Indiana/Indianapolis",
              "America/Indiana/Knox",
              "America/Indiana/Marengo",
              "America/Indiana/Petersburg",
              "America/Indiana/Tell_City",
              "America/Indiana/Vevay",
              "America/Indiana/Vincennes",
              "America/Indiana/Winamac",
              "America/Indianapolis",
              "America/Inuvik",
              "America/Iqaluit",
              "America/Jamaica",
              "America/Jujuy",
              "America/Juneau",
              "America/Kentucky/Louisville",
              "America/Kentucky/Monticello",
              "America/Knox_IN",
              "America/Kralendijk",
              "America/La_Paz",
              "America/Lima",
              "America/Los_Angeles",
              "America/Louisville",
              "America/Lower_Princes",
              "America/Maceio",
              "America/Managua",
              "America/Manaus",
              "America/Marigot",
              "America/Martinique",
              "America/Matamoros",
              "America/Mazatlan",
              "America/Mendoza",
              "America/Menominee",
              "America/Merida",
              "America/Metlakatla",
              "America/Mexico_City",
              "America/Miquelon",
              "America/Moncton",
              "America/Monterrey",
              "America/Montevideo",
              "America/Montreal",
              "America/Montserrat",
              "America/Nassau",
              "America/New_York",
              "America/Nipigon",
              "America/Nome",
              "America/Noronha",
              "America/North_Dakota/Beulah",
              "America/North_Dakota/Center",
              "America/North_Dakota/New_Salem",
              "America/Nuuk",
              "America/Ojinaga",
              "America/Panama",
              "America/Pangnirtung",
              "America/Paramaribo",
              "America/Phoenix",
              "America/Port-au-Prince",
              "America/Port_of_Spain",
              "America/Porto_Acre",
              "America/Porto_Velho",
              "America/Puerto_Rico",
              "America/Punta_Arenas",
              "America/Rainy_River",
              "America/Rankin_Inlet",
              "America/Recife",
              "America/Regina",
              "America/Resolute",
              "America/Rio_Branco",
              "America/Rosario",
              "America/Santa_Isabel",
              "America/Santarem",
              "America/Santiago",
              "America/Santo_Domingo",
              "America/Sao_Paulo",
              "America/Scoresbysund",
              "America/Shiprock",
              "America/Sitka",
              "America/St_Barthelemy",
              "America/St_Johns",
              "America/St_Kitts",
              "America/St_Lucia",
              "America/St_Thomas",
              "America/St_Vincent",
              "America/Swift_Current",
              "America/Tegucigalpa",
              "America/Thule",
              "America/Thunder_Bay",
              "America/Tijuana",
              "America/Toronto",
              "America/Tortola",
              "America/Vancouver",
              "America/Virgin",
              "America/Whitehorse",
              "America/Winnipeg",
              "America/Yakutat",
              "America/Yellowknife",
              "Antarctica/Casey",
              "Antarctica/Davis",
              "Antarctica/DumontDUrville",
              "Antarctica/Macquarie",
              "Antarctica/Mawson",
              "Antarctica/McMurdo",
              "Antarctica/Palmer",
              "Antarctica/Rothera",
              "Antarctica/South_Pole",
              "Antarctica/Syowa",
              "Antarctica/Troll",
              "Antarctica/Vostok",
              "Arctic/Longyearbyen",
              "Asia/Aden",
              "Asia/Almaty",
              "Asia/Amman",
              "Asia/Anadyr",
              "Asia/Aqtau",
              "Asia/Aqtobe",
              "Asia/Ashgabat",
              "Asia/Ashkhabad",
              "Asia/Atyrau",
              "Asia/Baghdad",
              "Asia/Bahrain",
              "Asia/Baku",
              "Asia/Bangkok",
              "Asia/Barnaul",
              "Asia/Beirut",
              "Asia/Bishkek",
              "Asia/Brunei",
              "Asia/Calcutta",
              "Asia/Chita",
              "Asia/Choibalsan",
              "Asia/Chongqing",
              "Asia/Chungking",
              "Asia/Colombo",
              "Asia/Dacca",
              "Asia/Damascus",
              "Asia/Dhaka",
              "Asia/Dili",
              "Asia/Dubai",
              "Asia/Dushanbe",
              "Asia/Famagusta",
              "Asia/Gaza",
              "Asia/Harbin",
              "Asia/Hebron",
              "Asia/Ho_Chi_Minh",
              "Asia/Hong_Kong",
              "Asia/Hovd",
              "Asia/Irkutsk",
              "Asia/Istanbul",
              "Asia/Jakarta",
              "Asia/Jayapura",
              "Asia/Jerusalem",
              "Asia/Kabul",
              "Asia/Kamchatka",
              "Asia/Karachi",
              "Asia/Kashgar",
              "Asia/Kathmandu",
              "Asia/Katmandu",
              "Asia/Khandyga",
              "Asia/Kolkata",
              "Asia/Krasnoyarsk",
              "Asia/Kuala_Lumpur",
              "Asia/Kuching",
              "Asia/Kuwait",
              "Asia/Macao",
              "Asia/Macau",
              "Asia/Magadan",
              "Asia/Makassar",
              "Asia/Manila",
              "Asia/Muscat",
              "Asia/Nicosia",
              "Asia/Novokuznetsk",
              "Asia/Novosibirsk",
              "Asia/Omsk",
              "Asia/Oral",
              "Asia/Phnom_Penh",
              "Asia/Pontianak",
              "Asia/Pyongyang",
              "Asia/Qatar",
              "Asia/Qostanay",
              "Asia/Qyzylorda",
              "Asia/Rangoon",
              "Asia/Riyadh",
              "Asia/Saigon",
              "Asia/Sakhalin",
              "Asia/Samarkand",
              "Asia/Seoul",
              "Asia/Shanghai",
              "Asia/Singapore",
              "Asia/Srednekolymsk",
              "Asia/Taipei",
              "Asia/Tashkent",
              "Asia/Tbilisi",
              "Asia/Tehran",
              "Asia/Tel_Aviv",
              "Asia/Thimbu",
              "Asia/Thimphu",
              "Asia/Tokyo",
              "Asia/Tomsk",
              "Asia/Ujung_Pandang",
              "Asia/Ulaanbaatar",
              "Asia/Ulan_Bator",
              "Asia/Urumqi",
              "Asia/Ust-Nera",
              "Asia/Vientiane",
              "Asia/Vladivostok",
              "Asia/Yakutsk",
              "Asia/Yangon",
              "Asia/Yekaterinburg",
              "Asia/Yerevan",
              "Atlantic/Azores",
              "Atlantic/Bermuda",
              "Atlantic/Canary",
              "Atlantic/Cape_Verde",
              "Atlantic/Faeroe",
              "Atlantic/Faroe",
              "Atlantic/Jan_Mayen",
              "Atlantic/Madeira",
              "Atlantic/Reykjavik",
              "Atlantic/South_Georgia",
              "Atlantic/St_Helena",
              "Atlantic/Stanley",
              "Australia/ACT",
              "Australia/Adelaide",
              "Australia/Brisbane",
              "Australia/Broken_Hill",
              "Australia/Canberra",
              "Australia/Currie",
              "Australia/Darwin",
              "Australia/Eucla",
              "Australia/Hobart",
              "Australia/LHI",
              "Australia/Lindeman",
              "Australia/Lord_Howe",
              "Australia/Melbourne",
              "Australia/NSW",
              "Australia/North",
              "Australia/Perth",
              "Australia/Queensland",
              "Australia/South",
              "Australia/Sydney",
              "Australia/Tasmania",
              "Australia/Victoria",
              "Australia/West",
              "Australia/Yancowinna",
              "Brazil/Acre",
              "Brazil/DeNoronha",
              "Brazil/East",
              "Brazil/West",
              "CET",
              "CST6CDT",
              "Canada/Atlantic",
              "Canada/Central",
              "Canada/Eastern",
              "Canada/Mountain",
              "Canada/Newfoundland",
              "Canada/Pacific",
              "Canada/Saskatchewan",
              "Canada/Yukon",
              "Chile/Continental",
              "Chile/EasterIsland",
              "Cuba",
              "EET",
              "EST",
              "EST5EDT",
              "Egypt",
              "Eire",
              "Etc/GMT",
              "Etc/GMT+0",
              "Etc/GMT+1",
              "Etc/GMT+10",
              "Etc/GMT+11",
              "Etc/GMT+12",
              "Etc/GMT+2",
              "Etc/GMT+3",
              "Etc/GMT+4",
              "Etc/GMT+5",
              "Etc/GMT+6",
              "Etc/GMT+7",
              "Etc/GMT+8",
              "Etc/GMT+9",
              "Etc/GMT-0",
              "Etc/GMT-1",
              "Etc/GMT-10",
              "Etc/GMT-11",
              "Etc/GMT-12",
              "Etc/GMT-13",
              "Etc/GMT-14",
              "Etc/GMT-2",
              "Etc/GMT-3",
              "Etc/GMT-4",
              "Etc/GMT-5",
              "Etc/GMT-6",
              "Etc/GMT-7",
              "Etc/GMT-8",
              "Etc/GMT-9",
              "Etc/GMT0",
              "Etc/Greenwich",
              "Etc/UCT",
              "Etc/UTC",
              "Etc/Universal",
              "Etc/Zulu",
              "Europe/Amsterdam",
              "Europe/Andorra",
              "Europe/Astrakhan",
              "Europe/Athens",
              "Europe/Belfast",
              "Europe/Belgrade",
              "Europe/Berlin",
              "Europe/Bratislava",
              "Europe/Brussels",
              "Europe/Bucharest",
              "Europe/Budapest",
              "Europe/Busingen",
              "Europe/Chisinau",
              "Europe/Copenhagen",
              "Europe/Dublin",
              "Europe/Gibraltar",
              "Europe/Guernsey",
              "Europe/Helsinki",
              "Europe/Isle_of_Man",
              "Europe/Istanbul",
              "Europe/Jersey",
              "Europe/Kaliningrad",
              "Europe/Kiev",
              "Europe/Kirov",
              "Europe/Kyiv",
              "Europe/Lisbon",
              "Europe/Ljubljana",
              "Europe/London",
              "Europe/Luxembourg",
              "Europe/Madrid",
              "Europe/Malta",
              "Europe/Mariehamn",
              "Europe/Minsk",
              "Europe/Monaco",
              "Europe/Moscow",
              "Europe/Nicosia",
              "Europe/Oslo",
              "Europe/Paris",
              "Europe/Podgorica",
              "Europe/Prague",
              "Europe/Riga",
              "Europe/Rome",
              "Europe/Samara",
              "Europe/San_Marino",
              "Europe/Sarajevo",
              "Europe/Saratov",
              "Europe/Simferopol",
              "Europe/Skopje",
              "Europe/Sofia",
              "Europe/Stockholm",
              "Europe/Tallinn",
              "Europe/Tirane",
              "Europe/Tiraspol",
              "Europe/Ulyanovsk",
              "Europe/Uzhgorod",
              "Europe/Vaduz",
              "Europe/Vatican",
              "Europe/Vienna",
              "Europe/Vilnius",
              "Europe/Volgograd",
              "Europe/Warsaw",
              "Europe/Zagreb",
              "Europe/Zaporozhye",
              "Europe/Zurich",
              "GB",
              "GB-Eire",
              "GMT",
              "GMT+0",
              "GMT-0",
              "GMT0",
              "Greenwich",
              "HST",
              "Hongkong",
              "Iceland",
              "Indian/Antananarivo",
              "Indian/Chagos",
              "Indian/Christmas",
              "Indian/Cocos",
              "Indian/Comoro",
              "Indian/Kerguelen",
              "Indian/Mahe",
              "Indian/Maldives",
              "Indian/Mauritius",
              "Indian/Mayotte",
              "Indian/Reunion",
              "Iran",
              "Israel",
              "Jamaica",
              "Japan",
              "Kwajalein",
              "Libya",
              "MET",
              "MST",
              "MST7MDT",
              "Mexico/BajaNorte",
              "Mexico/BajaSur",
              "Mexico/General",
              "NZ",
              "NZ-CHAT",
              "Navajo",
              "PRC",
              "PST8PDT",
              "Pacific/Apia",
              "Pacific/Auckland",
              "Pacific/Bougainville",
              "Pacific/Chatham",
              "Pacific/Chuuk",
              "Pacific/Easter",
              "Pacific/Efate",
              "Pacific/Enderbury",
              "Pacific/Fakaofo",
              "Pacific/Fiji",
              "Pacific/Funafuti",
              "Pacific/Galapagos",
              "Pacific/Gambier",
              "Pacific/Guadalcanal",
              "Pacific/Guam",
              "Pacific/Honolulu",
              "Pacific/Johnston",
              "Pacific/Kanton",
              "Pacific/Kiritimati",
              "Pacific/Kosrae",
              "Pacific/Kwajalein",
              "Pacific/Majuro",
              "Pacific/Marquesas",
              "Pacific/Midway",
              "Pacific/Nauru",
              "Pacific/Niue",
              "Pacific/Norfolk",
              "Pacific/Noumea",
              "Pacific/Pago_Pago",
              "Pacific/Palau",
              "Pacific/Pitcairn",
              "Pacific/Pohnpei",
              "Pacific/Ponape",
              "Pacific/Port_Moresby",
              "Pacific/Rarotonga",
              "Pacific/Saipan",
              "Pacific/Samoa",
              "Pacific/Tahiti",
              "Pacific/Tarawa",
              "Pacific/Tongatapu",
              "Pacific/Truk",
              "Pacific/Wake",
              "Pacific/Wallis",
              "Pacific/Yap",
              "Poland",
              "Portugal",
              "ROC",
              "ROK",
              "Singapore",
              "Turkey",
              "UCT",
              "US/Alaska",
              "US/Aleutian",
              "US/Arizona",
              "US/Central",
              "US/East-Indiana",
              "US/Eastern",
              "US/Hawaii",
              "US/Indiana-Starke",
              "US/Michigan",
              "US/Mountain",
              "US/Pacific",
              "US/Samoa",
              "UTC",
              "Universal",
              "W-SU",
              "WET",
              "Zulu"
            ],
            "type": "string"
          },
          "type": {
            "description": "The report schedule type",
            "enum": [
              "Alert",
              "Report"
            ],
            "type": "string"
          },
          "validator_config_json": {
            "$ref": "#/components/schemas/ValidatorConfigJSON"
          },
          "validator_type": {
            "description": "Determines when to trigger alert based off value from alert query. Alerts will be triggered with these validator types:\n- Not Null - When the return value is Not NULL, Empty, or 0\n- Operator - When `sql_return_value comparison_operator threshold` is True e.g. `50 <= 75`<br>Supports the comparison operators <, <=, >, >=, ==, and !=",
            "enum": [
              "not null",
              "operator"
            ],
            "type": "string"
          },
          "working_timeout": {
            "description": "If an alert is staled at a working state, how long until it's state is reset to error",
            "example": 3600,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "crontab",
          "name",
          "type"
        ],
        "type": "object"
      },
      "ReportScheduleRestApi.put": {
        "properties": {
          "active": {
            "type": "boolean"
          },
          "chart": {
            "nullable": true,
            "type": "integer"
          },
          "context_markdown": {
            "description": "Markdown description",
            "nullable": true,
            "type": "string"
          },
          "creation_method": {
            "description": "Creation method is used to inform the frontend whether the report/alert was created in the dashboard, chart, or alerts and reports UI.",
            "enum": [
              "charts",
              "dashboards",
              "alerts_reports",
              null
            ],
            "nullable": true
          },
          "crontab": {
            "description": "A CRON expression.[Crontab Guru](https://crontab.guru/) is a helpful resource that can help you craft a CRON expression.",
            "maxLength": 1000,
            "minLength": 1,
            "type": "string"
          },
          "custom_width": {
            "description": "Custom width of the screenshot in pixels",
            "example": 1000,
            "nullable": true,
            "type": "integer"
          },
          "dashboard": {
            "nullable": true,
            "type": "integer"
          },
          "database": {
            "type": "integer"
          },
          "description": {
            "description": "Use a nice description to give context to this Alert/Report",
            "example": "Daily sales dashboard to marketing",
            "nullable": true,
            "type": "string"
          },
          "email_subject": {
            "description": "The report schedule subject line",
            "example": "[Report]  Report name: Dashboard or chart name",
            "nullable": true,
            "type": "string"
          },
          "extra": {
            "type": "object"
          },
          "force_screenshot": {
            "type": "boolean"
          },
          "grace_period": {
            "description": "Once an alert is triggered, how long, in seconds, before Superset nags you again. (in seconds)",
            "example": 14400,
            "minimum": 1,
            "type": "integer"
          },
          "log_retention": {
            "description": "How long to keep the logs around for this report (in days)",
            "example": 90,
            "minimum": 0,
            "type": "integer"
          },
          "name": {
            "description": "The report schedule name.",
            "maxLength": 150,
            "minLength": 1,
            "type": "string"
          },
          "owners": {
            "items": {
              "description": "Owner are users ids allowed to delete or change this report. If left empty you will be one of the owners of the report.",
              "type": "integer"
            },
            "type": "array"
          },
          "recipients": {
            "items": {
              "$ref": "#/components/schemas/ReportRecipient"
            },
            "type": "array"
          },
          "report_format": {
            "enum": [
              "PDF",
              "PNG",
              "CSV",
              "TEXT"
            ],
            "type": "string"
          },
          "sql": {
            "description": "A SQL statement that defines whether the alert should get triggered or not. The query is expected to return either NULL or a number value.",
            "example": "SELECT value FROM time_series_table",
            "nullable": true,
            "type": "string"
          },
          "timezone": {
            "description": "A timezone string that represents the location of the timezone.",
            "enum": [
              "Africa/Abidjan",
              "Africa/Accra",
              "Africa/Addis_Ababa",
              "Africa/Algiers",
              "Africa/Asmara",
              "Africa/Asmera",
              "Africa/Bamako",
              "Africa/Bangui",
              "Africa/Banjul",
              "Africa/Bissau",
              "Africa/Blantyre",
              "Africa/Brazzaville",
              "Africa/Bujumbura",
              "Africa/Cairo",
              "Africa/Casablanca",
              "Africa/Ceuta",
              "Africa/Conakry",
              "Africa/Dakar",
              "Africa/Dar_es_Salaam",
              "Africa/Djibouti",
              "Africa/Douala",
              "Africa/El_Aaiun",
              "Africa/Freetown",
              "Africa/Gaborone",
              "Africa/Harare",
              "Africa/Johannesburg",
              "Africa/Juba",
              "Africa/Kampala",
              "Africa/Khartoum",
              "Africa/Kigali",
              "Africa/Kinshasa",
              "Africa/Lagos",
              "Africa/Libreville",
              "Africa/Lome",
              "Africa/Luanda",
              "Africa/Lubumbashi",
              "Africa/Lusaka",
              "Africa/Malabo",
              "Africa/Maputo",
              "Africa/Maseru",
              "Africa/Mbabane",
              "Africa/Mogadishu",
              "Africa/Monrovia",
              "Africa/Nairobi",
              "Africa/Ndjamena",
              "Africa/Niamey",
              "Africa/Nouakchott",
              "Africa/Ouagadougou",
              "Africa/Porto-Novo",
              "Africa/Sao_Tome",
              "Africa/Timbuktu",
              "Africa/Tripoli",
              "Africa/Tunis",
              "Africa/Windhoek",
              "America/Adak",
              "America/Anchorage",
              "America/Anguilla",
              "America/Antigua",
              "America/Araguaina",
              "America/Argentina/Buenos_Aires",
              "America/Argentina/Catamarca",
              "America/Argentina/ComodRivadavia",
              "America/Argentina/Cordoba",
              "America/Argentina/Jujuy",
              "America/Argentina/La_Rioja",
              "America/Argentina/Mendoza",
              "America/Argentina/Rio_Gallegos",
              "America/Argentina/Salta",
              "America/Argentina/San_Juan",
              "America/Argentina/San_Luis",
              "America/Argentina/Tucuman",
              "America/Argentina/Ushuaia",
              "America/Aruba",
              "America/Asuncion",
              "America/Atikokan",
              "America/Atka",
              "America/Bahia",
              "America/Bahia_Banderas",
              "America/Barbados",
              "America/Belem",
              "America/Belize",
              "America/Blanc-Sablon",
              "America/Boa_Vista",
              "America/Bogota",
              "America/Boise",
              "America/Buenos_Aires",
              "America/Cambridge_Bay",
              "America/Campo_Grande",
              "America/Cancun",
              "America/Caracas",
              "America/Catamarca",
              "America/Cayenne",
              "America/Cayman",
              "America/Chicago",
              "America/Chihuahua",
              "America/Ciudad_Juarez",
              "America/Coral_Harbour",
              "America/Cordoba",
              "America/Costa_Rica",
              "America/Coyhaique",
              "America/Creston",
              "America/Cuiaba",
              "America/Curacao",
              "America/Danmarkshavn",
              "America/Dawson",
              "America/Dawson_Creek",
              "America/Denver",
              "America/Detroit",
              "America/Dominica",
              "America/Edmonton",
              "America/Eirunepe",
              "America/El_Salvador",
              "America/Ensenada",
              "America/Fort_Nelson",
              "America/Fort_Wayne",
              "America/Fortaleza",
              "America/Glace_Bay",
              "America/Godthab",
              "America/Goose_Bay",
              "America/Grand_Turk",
              "America/Grenada",
              "America/Guadeloupe",
              "America/Guatemala",
              "America/Guayaquil",
              "America/Guyana",
              "America/Halifax",
              "America/Havana",
              "America/Hermosillo",
              "America/Indiana/Indianapolis",
              "America/Indiana/Knox",
              "America/Indiana/Marengo",
              "America/Indiana/Petersburg",
              "America/Indiana/Tell_City",
              "America/Indiana/Vevay",
              "America/Indiana/Vincennes",
              "America/Indiana/Winamac",
              "America/Indianapolis",
              "America/Inuvik",
              "America/Iqaluit",
              "America/Jamaica",
              "America/Jujuy",
              "America/Juneau",
              "America/Kentucky/Louisville",
              "America/Kentucky/Monticello",
              "America/Knox_IN",
              "America/Kralendijk",
              "America/La_Paz",
              "America/Lima",
              "America/Los_Angeles",
              "America/Louisville",
              "America/Lower_Princes",
              "America/Maceio",
              "America/Managua",
              "America/Manaus",
              "America/Marigot",
              "America/Martinique",
              "America/Matamoros",
              "America/Mazatlan",
              "America/Mendoza",
              "America/Menominee",
              "America/Merida",
              "America/Metlakatla",
              "America/Mexico_City",
              "America/Miquelon",
              "America/Moncton",
              "America/Monterrey",
              "America/Montevideo",
              "America/Montreal",
              "America/Montserrat",
              "America/Nassau",
              "America/New_York",
              "America/Nipigon",
              "America/Nome",
              "America/Noronha",
              "America/North_Dakota/Beulah",
              "America/North_Dakota/Center",
              "America/North_Dakota/New_Salem",
              "America/Nuuk",
              "America/Ojinaga",
              "America/Panama",
              "America/Pangnirtung",
              "America/Paramaribo",
              "America/Phoenix",
              "America/Port-au-Prince",
              "America/Port_of_Spain",
              "America/Porto_Acre",
              "America/Porto_Velho",
              "America/Puerto_Rico",
              "America/Punta_Arenas",
              "America/Rainy_River",
              "America/Rankin_Inlet",
              "America/Recife",
              "America/Regina",
              "America/Resolute",
              "America/Rio_Branco",
              "America/Rosario",
              "America/Santa_Isabel",
              "America/Santarem",
              "America/Santiago",
              "America/Santo_Domingo",
              "America/Sao_Paulo",
              "America/Scoresbysund",
              "America/Shiprock",
              "America/Sitka",
              "America/St_Barthelemy",
              "America/St_Johns",
              "America/St_Kitts",
              "America/St_Lucia",
              "America/St_Thomas",
              "America/St_Vincent",
              "America/Swift_Current",
              "America/Tegucigalpa",
              "America/Thule",
              "America/Thunder_Bay",
              "America/Tijuana",
              "America/Toronto",
              "America/Tortola",
              "America/Vancouver",
              "America/Virgin",
              "America/Whitehorse",
              "America/Winnipeg",
              "America/Yakutat",
              "America/Yellowknife",
              "Antarctica/Casey",
              "Antarctica/Davis",
              "Antarctica/DumontDUrville",
              "Antarctica/Macquarie",
              "Antarctica/Mawson",
              "Antarctica/McMurdo",
              "Antarctica/Palmer",
              "Antarctica/Rothera",
              "Antarctica/South_Pole",
              "Antarctica/Syowa",
              "Antarctica/Troll",
              "Antarctica/Vostok",
              "Arctic/Longyearbyen",
              "Asia/Aden",
              "Asia/Almaty",
              "Asia/Amman",
              "Asia/Anadyr",
              "Asia/Aqtau",
              "Asia/Aqtobe",
              "Asia/Ashgabat",
              "Asia/Ashkhabad",
              "Asia/Atyrau",
              "Asia/Baghdad",
              "Asia/Bahrain",
              "Asia/Baku",
              "Asia/Bangkok",
              "Asia/Barnaul",
              "Asia/Beirut",
              "Asia/Bishkek",
              "Asia/Brunei",
              "Asia/Calcutta",
              "Asia/Chita",
              "Asia/Choibalsan",
              "Asia/Chongqing",
              "Asia/Chungking",
              "Asia/Colombo",
              "Asia/Dacca",
              "Asia/Damascus",
              "Asia/Dhaka",
              "Asia/Dili",
              "Asia/Dubai",
              "Asia/Dushanbe",
              "Asia/Famagusta",
              "Asia/Gaza",
              "Asia/Harbin",
              "Asia/Hebron",
              "Asia/Ho_Chi_Minh",
              "Asia/Hong_Kong",
              "Asia/Hovd",
              "Asia/Irkutsk",
              "Asia/Istanbul",
              "Asia/Jakarta",
              "Asia/Jayapura",
              "Asia/Jerusalem",
              "Asia/Kabul",
              "Asia/Kamchatka",
              "Asia/Karachi",
              "Asia/Kashgar",
              "Asia/Kathmandu",
              "Asia/Katmandu",
              "Asia/Khandyga",
              "Asia/Kolkata",
              "Asia/Krasnoyarsk",
              "Asia/Kuala_Lumpur",
              "Asia/Kuching",
              "Asia/Kuwait",
              "Asia/Macao",
              "Asia/Macau",
              "Asia/Magadan",
              "Asia/Makassar",
              "Asia/Manila",
              "Asia/Muscat",
              "Asia/Nicosia",
              "Asia/Novokuznetsk",
              "Asia/Novosibirsk",
              "Asia/Omsk",
              "Asia/Oral",
              "Asia/Phnom_Penh",
              "Asia/Pontianak",
              "Asia/Pyongyang",
              "Asia/Qatar",
              "Asia/Qostanay",
              "Asia/Qyzylorda",
              "Asia/Rangoon",
              "Asia/Riyadh",
              "Asia/Saigon",
              "Asia/Sakhalin",
              "Asia/Samarkand",
              "Asia/Seoul",
              "Asia/Shanghai",
              "Asia/Singapore",
              "Asia/Srednekolymsk",
              "Asia/Taipei",
              "Asia/Tashkent",
              "Asia/Tbilisi",
              "Asia/Tehran",
              "Asia/Tel_Aviv",
              "Asia/Thimbu",
              "Asia/Thimphu",
              "Asia/Tokyo",
              "Asia/Tomsk",
              "Asia/Ujung_Pandang",
              "Asia/Ulaanbaatar",
              "Asia/Ulan_Bator",
              "Asia/Urumqi",
              "Asia/Ust-Nera",
              "Asia/Vientiane",
              "Asia/Vladivostok",
              "Asia/Yakutsk",
              "Asia/Yangon",
              "Asia/Yekaterinburg",
              "Asia/Yerevan",
              "Atlantic/Azores",
              "Atlantic/Bermuda",
              "Atlantic/Canary",
              "Atlantic/Cape_Verde",
              "Atlantic/Faeroe",
              "Atlantic/Faroe",
              "Atlantic/Jan_Mayen",
              "Atlantic/Madeira",
              "Atlantic/Reykjavik",
              "Atlantic/South_Georgia",
              "Atlantic/St_Helena",
              "Atlantic/Stanley",
              "Australia/ACT",
              "Australia/Adelaide",
              "Australia/Brisbane",
              "Australia/Broken_Hill",
              "Australia/Canberra",
              "Australia/Currie",
              "Australia/Darwin",
              "Australia/Eucla",
              "Australia/Hobart",
              "Australia/LHI",
              "Australia/Lindeman",
              "Australia/Lord_Howe",
              "Australia/Melbourne",
              "Australia/NSW",
              "Australia/North",
              "Australia/Perth",
              "Australia/Queensland",
              "Australia/South",
              "Australia/Sydney",
              "Australia/Tasmania",
              "Australia/Victoria",
              "Australia/West",
              "Australia/Yancowinna",
              "Brazil/Acre",
              "Brazil/DeNoronha",
              "Brazil/East",
              "Brazil/West",
              "CET",
              "CST6CDT",
              "Canada/Atlantic",
              "Canada/Central",
              "Canada/Eastern",
              "Canada/Mountain",
              "Canada/Newfoundland",
              "Canada/Pacific",
              "Canada/Saskatchewan",
              "Canada/Yukon",
              "Chile/Continental",
              "Chile/EasterIsland",
              "Cuba",
              "EET",
              "EST",
              "EST5EDT",
              "Egypt",
              "Eire",
              "Etc/GMT",
              "Etc/GMT+0",
              "Etc/GMT+1",
              "Etc/GMT+10",
              "Etc/GMT+11",
              "Etc/GMT+12",
              "Etc/GMT+2",
              "Etc/GMT+3",
              "Etc/GMT+4",
              "Etc/GMT+5",
              "Etc/GMT+6",
              "Etc/GMT+7",
              "Etc/GMT+8",
              "Etc/GMT+9",
              "Etc/GMT-0",
              "Etc/GMT-1",
              "Etc/GMT-10",
              "Etc/GMT-11",
              "Etc/GMT-12",
              "Etc/GMT-13",
              "Etc/GMT-14",
              "Etc/GMT-2",
              "Etc/GMT-3",
              "Etc/GMT-4",
              "Etc/GMT-5",
              "Etc/GMT-6",
              "Etc/GMT-7",
              "Etc/GMT-8",
              "Etc/GMT-9",
              "Etc/GMT0",
              "Etc/Greenwich",
              "Etc/UCT",
              "Etc/UTC",
              "Etc/Universal",
              "Etc/Zulu",
              "Europe/Amsterdam",
              "Europe/Andorra",
              "Europe/Astrakhan",
              "Europe/Athens",
              "Europe/Belfast",
              "Europe/Belgrade",
              "Europe/Berlin",
              "Europe/Bratislava",
              "Europe/Brussels",
              "Europe/Bucharest",
              "Europe/Budapest",
              "Europe/Busingen",
              "Europe/Chisinau",
              "Europe/Copenhagen",
              "Europe/Dublin",
              "Europe/Gibraltar",
              "Europe/Guernsey",
              "Europe/Helsinki",
              "Europe/Isle_of_Man",
              "Europe/Istanbul",
              "Europe/Jersey",
              "Europe/Kaliningrad",
              "Europe/Kiev",
              "Europe/Kirov",
              "Europe/Kyiv",
              "Europe/Lisbon",
              "Europe/Ljubljana",
              "Europe/London",
              "Europe/Luxembourg",
              "Europe/Madrid",
              "Europe/Malta",
              "Europe/Mariehamn",
              "Europe/Minsk",
              "Europe/Monaco",
              "Europe/Moscow",
              "Europe/Nicosia",
              "Europe/Oslo",
              "Europe/Paris",
              "Europe/Podgorica",
              "Europe/Prague",
              "Europe/Riga",
              "Europe/Rome",
              "Europe/Samara",
              "Europe/San_Marino",
              "Europe/Sarajevo",
              "Europe/Saratov",
              "Europe/Simferopol",
              "Europe/Skopje",
              "Europe/Sofia",
              "Europe/Stockholm",
              "Europe/Tallinn",
              "Europe/Tirane",
              "Europe/Tiraspol",
              "Europe/Ulyanovsk",
              "Europe/Uzhgorod",
              "Europe/Vaduz",
              "Europe/Vatican",
              "Europe/Vienna",
              "Europe/Vilnius",
              "Europe/Volgograd",
              "Europe/Warsaw",
              "Europe/Zagreb",
              "Europe/Zaporozhye",
              "Europe/Zurich",
              "GB",
              "GB-Eire",
              "GMT",
              "GMT+0",
              "GMT-0",
              "GMT0",
              "Greenwich",
              "HST",
              "Hongkong",
              "Iceland",
              "Indian/Antananarivo",
              "Indian/Chagos",
              "Indian/Christmas",
              "Indian/Cocos",
              "Indian/Comoro",
              "Indian/Kerguelen",
              "Indian/Mahe",
              "Indian/Maldives",
              "Indian/Mauritius",
              "Indian/Mayotte",
              "Indian/Reunion",
              "Iran",
              "Israel",
              "Jamaica",
              "Japan",
              "Kwajalein",
              "Libya",
              "MET",
              "MST",
              "MST7MDT",
              "Mexico/BajaNorte",
              "Mexico/BajaSur",
              "Mexico/General",
              "NZ",
              "NZ-CHAT",
              "Navajo",
              "PRC",
              "PST8PDT",
              "Pacific/Apia",
              "Pacific/Auckland",
              "Pacific/Bougainville",
              "Pacific/Chatham",
              "Pacific/Chuuk",
              "Pacific/Easter",
              "Pacific/Efate",
              "Pacific/Enderbury",
              "Pacific/Fakaofo",
              "Pacific/Fiji",
              "Pacific/Funafuti",
              "Pacific/Galapagos",
              "Pacific/Gambier",
              "Pacific/Guadalcanal",
              "Pacific/Guam",
              "Pacific/Honolulu",
              "Pacific/Johnston",
              "Pacific/Kanton",
              "Pacific/Kiritimati",
              "Pacific/Kosrae",
              "Pacific/Kwajalein",
              "Pacific/Majuro",
              "Pacific/Marquesas",
              "Pacific/Midway",
              "Pacific/Nauru",
              "Pacific/Niue",
              "Pacific/Norfolk",
              "Pacific/Noumea",
              "Pacific/Pago_Pago",
              "Pacific/Palau",
              "Pacific/Pitcairn",
              "Pacific/Pohnpei",
              "Pacific/Ponape",
              "Pacific/Port_Moresby",
              "Pacific/Rarotonga",
              "Pacific/Saipan",
              "Pacific/Samoa",
              "Pacific/Tahiti",
              "Pacific/Tarawa",
              "Pacific/Tongatapu",
              "Pacific/Truk",
              "Pacific/Wake",
              "Pacific/Wallis",
              "Pacific/Yap",
              "Poland",
              "Portugal",
              "ROC",
              "ROK",
              "Singapore",
              "Turkey",
              "UCT",
              "US/Alaska",
              "US/Aleutian",
              "US/Arizona",
              "US/Central",
              "US/East-Indiana",
              "US/Eastern",
              "US/Hawaii",
              "US/Indiana-Starke",
              "US/Michigan",
              "US/Mountain",
              "US/Pacific",
              "US/Samoa",
              "UTC",
              "Universal",
              "W-SU",
              "WET",
              "Zulu"
            ],
            "type": "string"
          },
          "type": {
            "description": "The report schedule type",
            "enum": [
              "Alert",
              "Report"
            ],
            "type": "string"
          },
          "validator_config_json": {
            "$ref": "#/components/schemas/ValidatorConfigJSON"
          },
          "validator_type": {
            "description": "Determines when to trigger alert based off value from alert query. Alerts will be triggered with these validator types:\n- Not Null - When the return value is Not NULL, Empty, or 0\n- Operator - When `sql_return_value comparison_operator threshold` is True e.g. `50 <= 75`<br>Supports the comparison operators <, <=, >, >=, ==, and !=",
            "enum": [
              "not null",
              "operator",
              null
            ],
            "nullable": true,
            "type": "string"
          },
          "working_timeout": {
            "description": "If an alert is staled at a working state, how long until it's state is reset to error",
            "example": 3600,
            "minimum": 1,
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Resource": {
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "enum": [
              "dashboard"
            ]
          }
        },
        "required": [
          "id",
          "type"
        ],
        "type": "object"
      },
      "RlsRule": {
        "properties": {
          "clause": {
            "type": "string"
          },
          "dataset": {
            "type": "integer"
          }
        },
        "required": [
          "clause"
        ],
        "type": "object"
      },
      "RoleGroupPutSchema": {
        "properties": {
          "group_ids": {
            "description": "List of group ids",
            "items": {
              "type": "integer"
            },
            "type": "array"
          }
        },
        "required": [
          "group_ids"
        ],
        "type": "object"
      },
      "RolePermissionListSchema": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "permission_name": {
            "type": "string"
          },
          "view_menu_name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "RolePermissionPostSchema": {
        "properties": {
          "permission_view_menu_ids": {
            "description": "List of permission view menu id",
            "items": {
              "type": "integer"
            },
            "type": "array"
          }
        },
        "required": [
          "permission_view_menu_ids"
        ],
        "type": "object"
      },
      "RoleResponseSchema": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "permission_ids": {
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "user_ids": {
            "items": {
              "type": "integer"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "RoleUserPutSchema": {
        "properties": {
          "user_ids": {
            "description": "List of user ids",
            "items": {
              "type": "integer"
            },
            "type": "array"
          }
        },
        "required": [
          "user_ids"
        ],
        "type": "object"
      },
      "Roles": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "Roles1": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "RolesResponseSchema": {
        "properties": {
          "count": {
            "type": "integer"
          },
          "ids": {
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "result": {
            "items": {
              "$ref": "#/components/schemas/RoleResponseSchema"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "SQLLabBootstrapSchema": {
        "properties": {
          "active_tab": {
            "$ref": "#/components/schemas/TabState"
          },
          "databases": {
            "additionalProperties": {
              "$ref": "#/components/schemas/ImportV1Database"
            },
            "type": "object"
          },
          "queries": {
            "additionalProperties": {
              "$ref": "#/components/schemas/QueryResult"
            },
            "type": "object"
          },
          "tab_state_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "SavedQueryRestApi.get": {
        "properties": {
          "catalog": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "changed_by": {
            "$ref": "#/components/schemas/SavedQueryRestApi.get.User"
          },
          "changed_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "changed_on_delta_humanized": {
            "readOnly": true
          },
          "created_by": {
            "$ref": "#/components/schemas/SavedQueryRestApi.get.User1"
          },
          "database": {
            "$ref": "#/components/schemas/SavedQueryRestApi.get.Database"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "label": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "schema": {
            "maxLength": 128,
            "nullable": true,
            "type": "string"
          },
          "sql": {
            "nullable": true,
            "type": "string"
          },
          "sql_tables": {
            "readOnly": true
          },
          "template_parameters": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "SavedQueryRestApi.get.Database": {
        "properties": {
          "database_name": {
            "maxLength": 250,
            "type": "string"
          },
          "id": {
            "type": "integer"
          }
        },
        "required": [
          "database_name"
        ],
        "type": "object"
      },
      "SavedQueryRestApi.get.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "SavedQueryRestApi.get.User1": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "SavedQueryRestApi.get_list": {
        "properties": {
          "catalog": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "changed_by": {
            "$ref": "#/components/schemas/SavedQueryRestApi.get_list.User"
          },
          "changed_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "changed_on_delta_humanized": {
            "readOnly": true
          },
          "created_by": {
            "$ref": "#/components/schemas/SavedQueryRestApi.get_list.User1"
          },
          "created_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "database": {
            "$ref": "#/components/schemas/SavedQueryRestApi.get_list.Database"
          },
          "db_id": {},
          "description": {
            "nullable": true,
            "type": "string"
          },
          "extra": {
            "readOnly": true
          },
          "id": {
            "type": "integer"
          },
          "label": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "last_run_delta_humanized": {
            "readOnly": true
          },
          "rows": {
            "nullable": true,
            "type": "integer"
          },
          "schema": {
            "maxLength": 128,
            "nullable": true,
            "type": "string"
          },
          "sql": {
            "nullable": true,
            "type": "string"
          },
          "sql_tables": {
            "readOnly": true
          },
          "tags": {
            "$ref": "#/components/schemas/SavedQueryRestApi.get_list.Tag"
          }
        },
        "type": "object"
      },
      "SavedQueryRestApi.get_list.Database": {
        "properties": {
          "database_name": {
            "maxLength": 250,
            "type": "string"
          },
          "id": {
            "type": "integer"
          }
        },
        "required": [
          "database_name"
        ],
        "type": "object"
      },
      "SavedQueryRestApi.get_list.Tag": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          },
          "type": {
            "enum": [
              1,
              2,
              3,
              4
            ]
          }
        },
        "type": "object"
      },
      "SavedQueryRestApi.get_list.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "SavedQueryRestApi.get_list.User1": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "SavedQueryRestApi.post": {
        "properties": {
          "catalog": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "db_id": {},
          "description": {
            "nullable": true,
            "type": "string"
          },
          "extra_json": {
            "nullable": true,
            "type": "string"
          },
          "label": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "schema": {
            "maxLength": 128,
            "nullable": true,
            "type": "string"
          },
          "sql": {
            "nullable": true,
            "type": "string"
          },
          "template_parameters": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "SavedQueryRestApi.put": {
        "properties": {
          "catalog": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "db_id": {},
          "description": {
            "nullable": true,
            "type": "string"
          },
          "extra_json": {
            "nullable": true,
            "type": "string"
          },
          "label": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "schema": {
            "maxLength": 128,
            "nullable": true,
            "type": "string"
          },
          "sql": {
            "nullable": true,
            "type": "string"
          },
          "template_parameters": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "SchemasResponseSchema": {
        "properties": {
          "result": {
            "items": {
              "description": "A database schema name",
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "SelectStarResponseSchema": {
        "properties": {
          "result": {
            "description": "SQL select star",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Slice": {
        "properties": {
          "cache_timeout": {
            "description": "Duration (in seconds) of the caching timeout for this chart.",
            "type": "integer"
          },
          "certification_details": {
            "description": "Details of the certification.",
            "type": "string"
          },
          "certified_by": {
            "description": "Person or group that has certified this dashboard.",
            "type": "string"
          },
          "changed_on": {
            "description": "Timestamp of the last modification.",
            "format": "date-time",
            "type": "string"
          },
          "changed_on_humanized": {
            "description": "Timestamp of the last modification in human readable form.",
            "type": "string"
          },
          "datasource": {
            "description": "Datasource identifier.",
            "type": "string"
          },
          "description": {
            "description": "Slice description.",
            "type": "string"
          },
          "description_markeddown": {
            "description": "Sanitized HTML version of the chart description.",
            "type": "string"
          },
          "edit_url": {
            "description": "The URL for editing the slice.",
            "type": "string"
          },
          "form_data": {
            "description": "Form data associated with the slice.",
            "type": "object"
          },
          "is_managed_externally": {
            "description": "If the chart is managed outside externally.",
            "type": "boolean"
          },
          "modified": {
            "description": "Last modification in human readable form.",
            "type": "string"
          },
          "owners": {
            "description": "Owners identifiers.",
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "query_context": {
            "description": "The context associated with the query.",
            "type": "object"
          },
          "slice_id": {
            "description": "The slice ID.",
            "type": "integer"
          },
          "slice_name": {
            "description": "The slice name.",
            "type": "string"
          },
          "slice_url": {
            "description": "The slice URL.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "SqlLabPermalinkSchema": {
        "properties": {
          "autorun": {
            "type": "boolean"
          },
          "catalog": {
            "description": "The catalog name of the query",
            "nullable": true,
            "type": "string"
          },
          "dbId": {
            "description": "The id of the database",
            "type": "integer"
          },
          "name": {
            "description": "The label of the editor tab",
            "type": "string"
          },
          "schema": {
            "description": "The schema name of the query",
            "nullable": true,
            "type": "string"
          },
          "sql": {
            "description": "SQL query text",
            "type": "string"
          },
          "templateParams": {
            "description": "stringfied JSON string for template parameters",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "dbId",
          "name",
          "sql"
        ],
        "type": "object"
      },
      "StopQuerySchema": {
        "properties": {
          "client_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "SupersetRoleApi.get": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "SupersetRoleApi.get_list": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "SupersetRoleApi.post": {
        "properties": {
          "name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "SupersetRoleApi.put": {
        "properties": {
          "name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "SupersetUserApi.get": {
        "properties": {
          "active": {
            "nullable": true,
            "type": "boolean"
          },
          "changed_by": {
            "$ref": "#/components/schemas/SupersetUserApi.get.User1"
          },
          "changed_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "created_by": {
            "$ref": "#/components/schemas/SupersetUserApi.get.User"
          },
          "created_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "email": {
            "maxLength": 320,
            "type": "string"
          },
          "fail_login_count": {
            "nullable": true,
            "type": "integer"
          },
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "groups": {
            "$ref": "#/components/schemas/SupersetUserApi.get.Group"
          },
          "id": {
            "type": "integer"
          },
          "last_login": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          },
          "login_count": {
            "nullable": true,
            "type": "integer"
          },
          "roles": {
            "$ref": "#/components/schemas/SupersetUserApi.get.Role"
          },
          "username": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "email",
          "first_name",
          "last_name",
          "username"
        ],
        "type": "object"
      },
      "SupersetUserApi.get.Group": {
        "properties": {
          "description": {
            "maxLength": 512,
            "nullable": true,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "label": {
            "maxLength": 150,
            "nullable": true,
            "type": "string"
          },
          "name": {
            "maxLength": 100,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "SupersetUserApi.get.Role": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "SupersetUserApi.get.User": {
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "SupersetUserApi.get.User1": {
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "SupersetUserApi.get_list": {
        "properties": {
          "active": {
            "nullable": true,
            "type": "boolean"
          },
          "changed_by": {
            "$ref": "#/components/schemas/SupersetUserApi.get_list.User1"
          },
          "changed_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "created_by": {
            "$ref": "#/components/schemas/SupersetUserApi.get_list.User"
          },
          "created_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "email": {
            "maxLength": 320,
            "type": "string"
          },
          "fail_login_count": {
            "nullable": true,
            "type": "integer"
          },
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "groups": {
            "$ref": "#/components/schemas/SupersetUserApi.get_list.Group"
          },
          "id": {
            "type": "integer"
          },
          "last_login": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          },
          "login_count": {
            "nullable": true,
            "type": "integer"
          },
          "roles": {
            "$ref": "#/components/schemas/SupersetUserApi.get_list.Role"
          },
          "username": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "email",
          "first_name",
          "last_name",
          "username"
        ],
        "type": "object"
      },
      "SupersetUserApi.get_list.Group": {
        "properties": {
          "description": {
            "maxLength": 512,
            "nullable": true,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "label": {
            "maxLength": 150,
            "nullable": true,
            "type": "string"
          },
          "name": {
            "maxLength": 100,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "SupersetUserApi.get_list.Role": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "SupersetUserApi.get_list.User": {
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "SupersetUserApi.get_list.User1": {
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "SupersetUserApi.post": {
        "properties": {
          "active": {
            "description": "Is user active?It's not a good policy to remove a user, just make it inactive",
            "type": "boolean"
          },
          "email": {
            "description": "The user's email",
            "type": "string"
          },
          "first_name": {
            "description": "The user's first name",
            "type": "string"
          },
          "groups": {
            "description": "The user's roles",
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "last_name": {
            "description": "The user's last name",
            "type": "string"
          },
          "password": {
            "description": "The user's password for authentication",
            "type": "string"
          },
          "roles": {
            "description": "The user's roles",
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "username": {
            "description": "The user's username",
            "maxLength": 250,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "email",
          "first_name",
          "last_name",
          "password",
          "username"
        ],
        "type": "object"
      },
      "SupersetUserApi.put": {
        "properties": {
          "active": {
            "description": "Is user active?It's not a good policy to remove a user, just make it inactive",
            "type": "boolean"
          },
          "email": {
            "description": "The user's email",
            "type": "string"
          },
          "first_name": {
            "description": "The user's first name",
            "type": "string"
          },
          "groups": {
            "description": "The user's roles",
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "last_name": {
            "description": "The user's last name",
            "type": "string"
          },
          "password": {
            "description": "The user's password for authentication",
            "type": "string"
          },
          "roles": {
            "description": "The user's roles",
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "username": {
            "description": "The user's username",
            "maxLength": 250,
            "minLength": 1,
            "type": "string"
          }
        },
        "type": "object"
      },
      "Tab": {
        "properties": {
          "children": {
            "items": {
              "$ref": "#/components/schemas/Tab"
            },
            "type": "array"
          },
          "parents": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "title": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "TabState": {
        "properties": {
          "active": {
            "type": "boolean"
          },
          "autorun": {
            "type": "boolean"
          },
          "database_id": {
            "type": "integer"
          },
          "extra_json": {
            "type": "object"
          },
          "hide_left_bar": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "latest_query": {
            "$ref": "#/components/schemas/QueryResult"
          },
          "query_limit": {
            "type": "integer"
          },
          "saved_query": {
            "nullable": true,
            "type": "object"
          },
          "schema": {
            "type": "string"
          },
          "sql": {
            "type": "string"
          },
          "table_schemas": {
            "items": {
              "$ref": "#/components/schemas/Table"
            },
            "type": "array"
          },
          "user_id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Table": {
        "properties": {
          "database_id": {
            "type": "integer"
          },
          "description": {
            "type": "string"
          },
          "expanded": {
            "type": "boolean"
          },
          "id": {
            "type": "integer"
          },
          "schema": {
            "type": "string"
          },
          "tab_state_id": {
            "type": "integer"
          },
          "table": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "TableExtraMetadataResponseSchema": {
        "properties": {
          "clustering": {
            "type": "object"
          },
          "metadata": {
            "type": "object"
          },
          "partitions": {
            "type": "object"
          }
        },
        "type": "object"
      },
      "TableMetadataColumnsResponse": {
        "properties": {
          "duplicates_constraint": {
            "type": "string"
          },
          "keys": {
            "description": "",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "longType": {
            "description": "The actual backend long type for the column",
            "type": "string"
          },
          "name": {
            "description": "The column name",
            "type": "string"
          },
          "type": {
            "description": "The column type",
            "type": "string"
          }
        },
        "type": "object"
      },
      "TableMetadataForeignKeysIndexesResponse": {
        "properties": {
          "column_names": {
            "items": {
              "description": "A list of column names that compose the foreign key or  index",
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of the foreign key or index",
            "type": "string"
          },
          "options": {
            "$ref": "#/components/schemas/TableMetadataOptionsResponse"
          },
          "referred_columns": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "referred_schema": {
            "type": "string"
          },
          "referred_table": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "TableMetadataOptionsResponse": {
        "properties": {
          "deferrable": {
            "type": "boolean"
          },
          "initially": {
            "type": "boolean"
          },
          "match": {
            "type": "boolean"
          },
          "ondelete": {
            "type": "boolean"
          },
          "onupdate": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "TableMetadataPrimaryKeyResponse": {
        "properties": {
          "column_names": {
            "items": {
              "description": "A list of column names that compose the primary key",
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "The primary key index name",
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "TableMetadataResponseSchema": {
        "properties": {
          "columns": {
            "description": "A list of columns and their metadata",
            "items": {
              "$ref": "#/components/schemas/TableMetadataColumnsResponse"
            },
            "type": "array"
          },
          "foreignKeys": {
            "description": "A list of foreign keys and their metadata",
            "items": {
              "$ref": "#/components/schemas/TableMetadataForeignKeysIndexesResponse"
            },
            "type": "array"
          },
          "indexes": {
            "description": "A list of indexes and their metadata",
            "items": {
              "$ref": "#/components/schemas/TableMetadataForeignKeysIndexesResponse"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of the table",
            "type": "string"
          },
          "primaryKey": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TableMetadataPrimaryKeyResponse"
              }
            ],
            "description": "Primary keys metadata"
          },
          "selectStar": {
            "description": "SQL select star",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Tables": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "schema": {
            "type": "string"
          },
          "table_name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "TabsPayloadSchema": {
        "properties": {
          "all_tabs": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "tab_tree": {
            "items": {
              "$ref": "#/components/schemas/Tab"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "Tag": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "enum": [
              1,
              2,
              3,
              4
            ]
          }
        },
        "type": "object"
      },
      "Tag1": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "enum": [
              1,
              2,
              3,
              4
            ]
          }
        },
        "type": "object"
      },
      "TagGetResponseSchema": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "TagObject": {
        "properties": {
          "description": {
            "nullable": true,
            "type": "string"
          },
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "objects_to_tag": {
            "description": "Objects to tag",
            "items": {},
            "type": "array"
          }
        },
        "type": "object"
      },
      "TagPostBulkResponseObject": {
        "properties": {
          "objects_skipped": {
            "description": "Objects to tag",
            "items": {},
            "type": "array"
          },
          "objects_tagged": {
            "description": "Objects to tag",
            "items": {},
            "type": "array"
          }
        },
        "type": "object"
      },
      "TagPostBulkResponseSchema": {
        "properties": {
          "result": {
            "$ref": "#/components/schemas/TagPostBulkResponseObject"
          }
        },
        "type": "object"
      },
      "TagPostBulkSchema": {
        "properties": {
          "tags": {
            "items": {
              "$ref": "#/components/schemas/TagObject"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "TagRestApi.get": {
        "properties": {
          "changed_by": {
            "$ref": "#/components/schemas/TagRestApi.get.User"
          },
          "changed_on_delta_humanized": {
            "readOnly": true
          },
          "created_by": {
            "$ref": "#/components/schemas/TagRestApi.get.User1"
          },
          "created_on_delta_humanized": {
            "readOnly": true
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "name": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          },
          "type": {
            "enum": [
              1,
              2,
              3,
              4
            ]
          }
        },
        "type": "object"
      },
      "TagRestApi.get.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "TagRestApi.get.User1": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "TagRestApi.get_list": {
        "properties": {
          "changed_by": {
            "$ref": "#/components/schemas/TagRestApi.get_list.User"
          },
          "changed_on_delta_humanized": {
            "readOnly": true
          },
          "created_by": {
            "$ref": "#/components/schemas/TagRestApi.get_list.User1"
          },
          "created_on_delta_humanized": {
            "readOnly": true
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "name": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          },
          "type": {
            "enum": [
              1,
              2,
              3,
              4
            ]
          }
        },
        "type": "object"
      },
      "TagRestApi.get_list.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "TagRestApi.get_list.User1": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "TagRestApi.post": {
        "properties": {
          "description": {
            "nullable": true,
            "type": "string"
          },
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "objects_to_tag": {
            "description": "Objects to tag",
            "items": {},
            "type": "array"
          }
        },
        "type": "object"
      },
      "TagRestApi.put": {
        "properties": {
          "description": {
            "nullable": true,
            "type": "string"
          },
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "objects_to_tag": {
            "description": "Objects to tag",
            "items": {},
            "type": "array"
          }
        },
        "type": "object"
      },
      "TaggedObjectEntityResponseSchema": {
        "properties": {
          "changed_on": {
            "format": "date-time",
            "type": "string"
          },
          "created_by": {
            "$ref": "#/components/schemas/User1"
          },
          "creator": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "owners": {
            "items": {
              "$ref": "#/components/schemas/User2"
            },
            "type": "array"
          },
          "tags": {
            "items": {
              "$ref": "#/components/schemas/TagGetResponseSchema"
            },
            "type": "array"
          },
          "type": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "TemporaryCachePostSchema": {
        "properties": {
          "value": {
            "description": "Any type of JSON supported text.",
            "type": "string"
          }
        },
        "required": [
          "value"
        ],
        "type": "object"
      },
      "TemporaryCachePutSchema": {
        "properties": {
          "value": {
            "description": "Any type of JSON supported text.",
            "type": "string"
          }
        },
        "required": [
          "value"
        ],
        "type": "object"
      },
      "Theme": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "json_data": {
            "type": "string"
          },
          "theme_name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ThemeRestApi.get": {
        "properties": {
          "changed_by": {
            "$ref": "#/components/schemas/ThemeRestApi.get.User"
          },
          "changed_on_delta_humanized": {
            "readOnly": true
          },
          "created_by": {
            "$ref": "#/components/schemas/ThemeRestApi.get.User1"
          },
          "id": {
            "type": "integer"
          },
          "is_system": {
            "type": "boolean"
          },
          "is_system_dark": {
            "type": "boolean"
          },
          "is_system_default": {
            "type": "boolean"
          },
          "json_data": {
            "nullable": true,
            "type": "string"
          },
          "theme_name": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ThemeRestApi.get.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "ThemeRestApi.get.User1": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "ThemeRestApi.get_list": {
        "properties": {
          "changed_by": {
            "$ref": "#/components/schemas/ThemeRestApi.get_list.User"
          },
          "changed_by_name": {
            "readOnly": true
          },
          "changed_on_delta_humanized": {
            "readOnly": true
          },
          "created_by": {
            "$ref": "#/components/schemas/ThemeRestApi.get_list.User1"
          },
          "created_on": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "is_system": {
            "type": "boolean"
          },
          "is_system_dark": {
            "type": "boolean"
          },
          "is_system_default": {
            "type": "boolean"
          },
          "json_data": {
            "nullable": true,
            "type": "string"
          },
          "theme_name": {
            "maxLength": 250,
            "nullable": true,
            "type": "string"
          },
          "uuid": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ThemeRestApi.get_list.User": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "ThemeRestApi.get_list.User1": {
        "properties": {
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object"
      },
      "ThemeRestApi.post": {
        "properties": {
          "json_data": {
            "type": "string"
          },
          "theme_name": {
            "type": "string"
          }
        },
        "required": [
          "json_data",
          "theme_name"
        ],
        "type": "object"
      },
      "ThemeRestApi.put": {
        "properties": {
          "json_data": {
            "type": "string"
          },
          "theme_name": {
            "type": "string"
          }
        },
        "required": [
          "json_data",
          "theme_name"
        ],
        "type": "object"
      },
      "UploadFileMetadata": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/UploadFileMetadataItem"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "UploadFileMetadataItem": {
        "properties": {
          "column_names": {
            "description": "A list of columns names in the sheet",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "sheet_name": {
            "description": "The name of the sheet",
            "type": "string"
          }
        },
        "type": "object"
      },
      "UploadFileMetadataPostSchema": {
        "properties": {
          "delimiter": {
            "description": "The character used to separate values in the CSV file (e.g., a comma, semicolon, or tab).",
            "type": "string"
          },
          "file": {
            "description": "The file to upload",
            "format": "binary",
            "type": "string"
          },
          "header_row": {
            "description": "Row containing the headers to use as column names(0 is first line of data). Leave empty if there is no header row.",
            "type": "integer"
          },
          "type": {
            "description": "File type to upload",
            "enum": [
              "csv",
              "excel",
              "columnar"
            ]
          }
        },
        "required": [
          "file",
          "type"
        ],
        "type": "object"
      },
      "UploadPostSchema": {
        "properties": {
          "already_exists": {
            "default": "fail",
            "description": "What to do if the table already exists accepts: fail, replace, append",
            "enum": [
              "fail",
              "replace",
              "append"
            ],
            "type": "string"
          },
          "column_data_types": {
            "description": "[CSV only] A dictionary with column names and their data types if you need to change the defaults. Example: {'user_id':'int'}. Check Python Pandas library for supported data types",
            "type": "string"
          },
          "column_dates": {
            "description": "[CSV and Excel only] A list of column names that should be parsed as dates. Example: date,timestamp",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "columns_read": {
            "description": "A List of the column names that should be read",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dataframe_index": {
            "description": "Write dataframe index as a column.",
            "type": "boolean"
          },
          "day_first": {
            "description": "[CSV only] DD/MM format dates, international and European format",
            "type": "boolean"
          },
          "decimal_character": {
            "description": "[CSV and Excel only] Character to recognize as decimal point. Default is '.'",
            "type": "string"
          },
          "delimiter": {
            "description": "[CSV only] The character used to separate values in the CSV file (e.g., a comma, semicolon, or tab).",
            "type": "string"
          },
          "file": {
            "description": "The file to upload",
            "format": "text/csv",
            "type": "string"
          },
          "header_row": {
            "description": "[CSV and Excel only] Row containing the headers to use as column names (0 is first line of data). Leave empty if there is no header row.",
            "type": "integer"
          },
          "index_column": {
            "description": "[CSV and Excel only] Column to use as the row labels of the dataframe. Leave empty if no index column",
            "type": "string"
          },
          "index_label": {
            "description": "Index label for index column.",
            "type": "string"
          },
          "null_values": {
            "description": "[CSV and Excel only] A list of strings that should be treated as null. Examples: '' for empty strings, 'None', 'N/A', Warning: Hive database supports only a single value",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "rows_to_read": {
            "description": "[CSV and Excel only] Number of rows to read from the file. If None, reads all rows.",
            "minimum": 1,
            "nullable": true,
            "type": "integer"
          },
          "schema": {
            "description": "The schema to upload the data file to.",
            "type": "string"
          },
          "sheet_name": {
            "description": "[Excel only]] Strings used for sheet names (default is the first sheet).",
            "type": "string"
          },
          "skip_blank_lines": {
            "description": "[CSV only] Skip blank lines in the CSV file.",
            "type": "boolean"
          },
          "skip_initial_space": {
            "description": "[CSV only] Skip spaces after delimiter.",
            "type": "boolean"
          },
          "skip_rows": {
            "description": "[CSV and Excel only] Number of rows to skip at start of file.",
            "type": "integer"
          },
          "table_name": {
            "description": "The name of the table to be created/appended",
            "maxLength": 10000,
            "minLength": 1,
            "type": "string"
          },
          "type": {
            "description": "File type to upload",
            "enum": [
              "csv",
              "excel",
              "columnar"
            ]
          }
        },
        "required": [
          "file",
          "table_name",
          "type"
        ],
        "type": "object"
      },
      "User": {
        "properties": {
          "first_name": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "User1": {
        "properties": {
          "first_name": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "User2": {
        "properties": {
          "first_name": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "type": "string"
          },
          "username": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "User3": {
        "properties": {
          "first_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "username": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "UserRegistrationsRestAPI.get": {
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "UserRegistrationsRestAPI.get_list": {
        "properties": {
          "email": {
            "maxLength": 320,
            "type": "string"
          },
          "first_name": {
            "maxLength": 64,
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "last_name": {
            "maxLength": 64,
            "type": "string"
          },
          "registration_date": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "registration_hash": {
            "maxLength": 256,
            "nullable": true,
            "type": "string"
          },
          "username": {
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "email",
          "first_name",
          "last_name",
          "username"
        ],
        "type": "object"
      },
      "UserRegistrationsRestAPI.post": {
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "UserRegistrationsRestAPI.put": {
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "UserResponseSchema": {
        "properties": {
          "email": {
            "type": "string"
          },
          "first_name": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "is_active": {
            "type": "boolean"
          },
          "is_anonymous": {
            "type": "boolean"
          },
          "last_name": {
            "type": "string"
          },
          "login_count": {
            "type": "integer"
          },
          "username": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ValidateSQLRequest": {
        "properties": {
          "catalog": {
            "nullable": true,
            "type": "string"
          },
          "schema": {
            "nullable": true,
            "type": "string"
          },
          "sql": {
            "description": "SQL statement to validate",
            "type": "string"
          },
          "template_params": {
            "nullable": true,
            "type": "object"
          }
        },
        "required": [
          "sql"
        ],
        "type": "object"
      },
      "ValidateSQLResponse": {
        "properties": {
          "end_column": {
            "type": "integer"
          },
          "line_number": {
            "type": "integer"
          },
          "message": {
            "type": "string"
          },
          "start_column": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "ValidatorConfigJSON": {
        "properties": {
          "op": {
            "description": "The operation to compare with a threshold to apply to the SQL output\n",
            "enum": [
              "<",
              "<=",
              ">",
              ">=",
              "==",
              "!="
            ],
            "type": "string"
          },
          "threshold": {
            "type": "number"
          }
        },
        "type": "object"
      },
      "ViewMenuApi.get": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "maxLength": 250,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "ViewMenuApi.get_list": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "maxLength": 250,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "ViewMenuApi.post": {
        "properties": {
          "name": {
            "maxLength": 250,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "ViewMenuApi.put": {
        "properties": {
          "name": {
            "maxLength": 250,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "advanced_data_type_convert_schema": {
        "properties": {
          "type": {
            "default": "port",
            "type": "string"
          },
          "values": {
            "items": {
              "default": "http"
            },
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "type",
          "values"
        ],
        "type": "object"
      },
      "database_catalogs_query_schema": {
        "properties": {
          "force": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "database_schemas_query_schema": {
        "properties": {
          "catalog": {
            "type": "string"
          },
          "force": {
            "type": "boolean"
          },
          "upload_allowed": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "database_tables_query_schema": {
        "properties": {
          "catalog_name": {
            "type": "string"
          },
          "force": {
            "type": "boolean"
          },
          "schema_name": {
            "type": "string"
          }
        },
        "required": [
          "schema_name"
        ],
        "type": "object"
      },
      "delete_tags_schema": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "get_delete_ids_schema": {
        "items": {
          "type": "integer"
        },
        "type": "array"
      },
      "get_export_ids_schema": {
        "items": {
          "type": "integer"
        },
        "type": "array"
      },
      "get_fav_star_ids_schema": {
        "items": {
          "type": "integer"
        },
        "type": "array"
      },
      "get_info_schema": {
        "properties": {
          "add_columns": {
            "additionalProperties": {
              "properties": {
                "page": {
                  "type": "integer"
                },
                "page_size": {
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "type": "object"
          },
          "edit_columns": {
            "additionalProperties": {
              "properties": {
                "page": {
                  "type": "integer"
                },
                "page_size": {
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "type": "object"
          },
          "keys": {
            "items": {
              "enum": [
                "add_columns",
                "edit_columns",
                "filters",
                "permissions",
                "add_title",
                "edit_title",
                "none"
              ],
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "get_item_schema": {
        "properties": {
          "columns": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "keys": {
            "items": {
              "enum": [
                "show_columns",
                "description_columns",
                "label_columns",
                "show_title",
                "none"
              ],
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "get_list_schema": {
        "properties": {
          "columns": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "filters": {
            "items": {
              "properties": {
                "col": {
                  "type": "string"
                },
                "opr": {
                  "type": "string"
                },
                "value": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string"
                    },
                    {
                      "type": "boolean"
                    },
                    {
                      "items": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "type": "string"
                          },
                          {
                            "type": "boolean"
                          }
                        ]
                      },
                      "type": "array"
                    }
                  ]
                }
              },
              "required": [
                "col",
                "opr",
                "value"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "keys": {
            "items": {
              "enum": [
                "list_columns",
                "order_columns",
                "label_columns",
                "description_columns",
                "list_title",
                "none"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "order_column": {
            "type": "string"
          },
          "order_direction": {
            "enum": [
              "asc",
              "desc"
            ],
            "type": "string"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          },
          "select_columns": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "get_recent_activity_schema": {
        "properties": {
          "actions": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "distinct": {
            "type": "boolean"
          },
          "page": {
            "type": "number"
          },
          "page_size": {
            "type": "number"
          }
        },
        "type": "object"
      },
      "get_related_schema": {
        "properties": {
          "filter": {
            "type": "string"
          },
          "include_ids": {
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "page": {
            "type": "integer"
          },
          "page_size": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "queries_get_updated_since_schema": {
        "properties": {
          "last_updated_ms": {
            "type": "number"
          }
        },
        "required": [
          "last_updated_ms"
        ],
        "type": "object"
      },
      "screenshot_query_schema": {
        "properties": {
          "force": {
            "type": "boolean"
          },
          "thumb_size": {
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "window_size": {
            "items": {
              "type": "integer"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "sql_lab_get_results_schema": {
        "properties": {
          "key": {
            "type": "string"
          }
        },
        "required": [
          "key"
        ],
        "type": "object"
      },
      "thumbnail_query_schema": {
        "properties": {
          "force": {
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "securitySchemes": {
      "jwt": {
        "bearerFormat": "JWT",
        "scheme": "bearer",
        "type": "http"
      },
      "jwt_refresh": {
        "bearerFormat": "JWT",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "Superset",
    "title": "Superset",
    "version": "v1"
  },
  "openapi": "3.0.2",
  "paths": {
    "/api/v1/advanced_data_type/convert": {
      "get": {
        "description": "Returns an AdvancedDataTypeResponse object populated with the passed in args.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/advanced_data_type_convert_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdvancedDataTypeSchema"
                }
              }
            },
            "description": "AdvancedDataTypeResponse object has been returned."
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Return an AdvancedDataTypeResponse",
        "tags": [
          "Advanced Data Type"
        ]
      }
    },
    "/api/v1/advanced_data_type/types": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "a successful return of the available advanced data types has taken place."
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Return a list of available advanced data types",
        "tags": [
          "Advanced Data Type"
        ]
      }
    },
    "/api/v1/annotation_layer/": {
      "delete": {
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_delete_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "CSS templates bulk delete"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Delete multiple annotation layers in a bulk operation",
        "tags": [
          "Annotation Layers"
        ]
      },
      "get": {
        "description": "Gets a list of annotation layers, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ids": {
                      "description": "A list of item ids, useful when you don't know the column id",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "list_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "list_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "List Items",
                      "type": "string"
                    },
                    "order_columns": {
                      "description": "A list of allowed columns to sort",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/AnnotationLayerRestApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a list of annotation layers",
        "tags": [
          "Annotation Layers"
        ]
      },
      "post": {
        "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": []
          }
        ],
        "summary": "Create an annotation layer",
        "tags": [
          "Annotation Layers"
        ]
      }
    },
    "/api/v1/annotation_layer/_info": {
      "get": {
        "description": "Get metadata information about this API resource",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_info_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "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": []
          }
        ],
        "summary": "Get metadata information about this API resource",
        "tags": [
          "Annotation Layers"
        ]
      }
    },
    "/api/v1/annotation_layer/related/{column_name}": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "column_name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_related_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RelatedResponseSchema"
                }
              }
            },
            "description": "Related column data"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get related fields data",
        "tags": [
          "Annotation Layers"
        ]
      }
    },
    "/api/v1/annotation_layer/{pk}": {
      "delete": {
        "parameters": [
          {
            "description": "The annotation layer pk for this annotation",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item deleted"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Delete annotation layer",
        "tags": [
          "Annotation Layers"
        ]
      },
      "get": {
        "description": "Get an item model",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_item_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "id": {
                      "description": "The item id",
                      "type": "string"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "result": {
                      "$ref": "#/components/schemas/AnnotationLayerRestApi.get"
                    },
                    "show_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "show_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "Show Item Details",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get an annotation layer",
        "tags": [
          "Annotation Layers"
        ]
      },
      "put": {
        "parameters": [
          {
            "description": "The annotation layer pk for this annotation",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnnotationLayerRestApi.put"
              }
            }
          },
          "description": "Annotation schema",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "result": {
                      "$ref": "#/components/schemas/AnnotationLayerRestApi.put"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Annotation changed"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Update an annotation layer",
        "tags": [
          "Annotation Layers"
        ]
      }
    },
    "/api/v1/annotation_layer/{pk}/annotation/": {
      "delete": {
        "parameters": [
          {
            "description": "The annotation layer pk for this annotation",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "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": []
          }
        ],
        "summary": "Bulk delete annotation layers",
        "tags": [
          "Annotation Layers"
        ]
      },
      "get": {
        "description": "Gets a list of annotation layers, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
        "parameters": [
          {
            "description": "The annotation layer id for this annotation",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "ids": {
                      "description": "A list of annotation ids",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/AnnotationRestApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Annotations"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a list of annotation layers",
        "tags": [
          "Annotation Layers"
        ]
      },
      "post": {
        "parameters": [
          {
            "description": "The annotation layer pk for this annotation",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnnotationRestApi.post"
              }
            }
          },
          "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": []
          }
        ],
        "summary": "Create an annotation layer",
        "tags": [
          "Annotation Layers"
        ]
      }
    },
    "/api/v1/annotation_layer/{pk}/annotation/{annotation_id}": {
      "delete": {
        "parameters": [
          {
            "description": "The annotation layer pk for this annotation",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "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": []
          }
        ],
        "summary": "Delete annotation layer",
        "tags": [
          "Annotation Layers"
        ]
      },
      "get": {
        "parameters": [
          {
            "description": "The annotation layer pk for this annotation",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "The annotation pk",
            "in": "path",
            "name": "annotation_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_item_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "description": "The item id",
                      "type": "string"
                    },
                    "result": {
                      "$ref": "#/components/schemas/AnnotationRestApi.get"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get an annotation layer",
        "tags": [
          "Annotation Layers"
        ]
      },
      "put": {
        "parameters": [
          {
            "description": "The annotation layer pk for this annotation",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "The annotation pk for this annotation",
            "in": "path",
            "name": "annotation_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnnotationRestApi.put"
              }
            }
          },
          "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": []
          }
        ],
        "summary": "Update an annotation layer",
        "tags": [
          "Annotation Layers"
        ]
      }
    },
    "/api/v1/assets/export/": {
      "get": {
        "description": "Gets a ZIP file with all the Superset assets (databases, datasets, charts, dashboards, saved queries) as YAML files.",
        "responses": {
          "200": {
            "content": {
              "application/zip": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "ZIP file"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Export all assets",
        "tags": [
          "Import/export"
        ]
      }
    },
    "/api/v1/assets/import/": {
      "post": {
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "bundle": {
                    "description": "upload file (ZIP or JSON)",
                    "format": "binary",
                    "type": "string"
                  },
                  "passwords": {
                    "description": "JSON map of passwords for each featured database in the ZIP file. If the ZIP includes a database config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
                    "type": "string"
                  },
                  "sparse": {
                    "description": "allow sparse update of resources",
                    "type": "boolean"
                  },
                  "ssh_tunnel_passwords": {
                    "description": "JSON map of passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
                    "type": "string"
                  },
                  "ssh_tunnel_private_key_passwords": {
                    "description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
                    "type": "string"
                  },
                  "ssh_tunnel_private_keys": {
                    "description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Assets import result"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Import multiple assets",
        "tags": [
          "Import/export"
        ]
      }
    },
    "/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": []
          }
        ],
        "summary": "Read off of the Redis events stream",
        "tags": [
          "AsyncEventsRestApi"
        ]
      }
    },
    "/api/v1/available_domains/": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "$ref": "#/components/schemas/AvailableDomainsSchema"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "a list of available domains"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get all available domains",
        "tags": [
          "Available Domains"
        ]
      }
    },
    "/api/v1/cachekey/invalidate": {
      "post": {
        "description": "Takes a list of datasources, finds and invalidates the associated cache records and removes the database records.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CacheInvalidationRequestSchema"
              }
            }
          },
          "description": "A list of datasources uuid or the tuples of database and datasource names",
          "required": true
        },
        "responses": {
          "201": {
            "description": "cache was successfully invalidated"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Invalidate cache records and remove the database records",
        "tags": [
          "CacheRestApi"
        ]
      }
    },
    "/api/v1/chart/": {
      "delete": {
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_delete_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Charts bulk delete"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Bulk delete charts",
        "tags": [
          "Charts"
        ]
      },
      "get": {
        "description": "Gets a list of charts, use Rison or JSON query parameters for filtering, sorting, pagination and  for selecting specific columns and metadata.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ids": {
                      "description": "A list of item ids, useful when you don't know the column id",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "list_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "list_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "List Items",
                      "type": "string"
                    },
                    "order_columns": {
                      "description": "A list of allowed columns to sort",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/ChartRestApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a list of charts",
        "tags": [
          "Charts"
        ]
      },
      "post": {
        "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"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Create a new chart",
        "tags": [
          "Charts"
        ]
      }
    },
    "/api/v1/chart/_info": {
      "get": {
        "description": "Get metadata information about this API resource",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_info_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "add_columns": {
                      "type": "object"
                    },
                    "edit_columns": {
                      "type": "object"
                    },
                    "filters": {
                      "properties": {
                        "column_name": {
                          "items": {
                            "properties": {
                              "name": {
                                "description": "The filter name. Will be translated by babel",
                                "type": "string"
                              },
                              "operator": {
                                "description": "The filter operation key to use on list filters",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "permissions": {
                      "description": "The user permissions for this API resource",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get metadata information about this API resource",
        "tags": [
          "Charts"
        ]
      }
    },
    "/api/v1/chart/data": {
      "post": {
        "description": "Takes a query context constructed in the client and returns payload data response for the given query.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChartDataQueryContextSchema"
              }
            }
          },
          "description": "A query context consists of a datasource from which to fetch data and one or many query objects.",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChartDataResponseSchema"
                }
              }
            },
            "description": "Query result"
          },
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChartDataAsyncResponseSchema"
                }
              }
            },
            "description": "Async job details"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Return payload data response for the given query",
        "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": []
          }
        ],
        "summary": "Return payload data response for the given query",
        "tags": [
          "Charts"
        ]
      }
    },
    "/api/v1/chart/export/": {
      "get": {
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_export_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/zip": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "A zip file with chart(s), dataset(s) and database(s) as YAML"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Download multiple charts as YAML files",
        "tags": [
          "Charts"
        ]
      }
    },
    "/api/v1/chart/favorite_status/": {
      "get": {
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_fav_star_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetFavStarIdsSchema"
                }
              }
            },
            "description": "None"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Check favorited charts for current user",
        "tags": [
          "Charts"
        ]
      }
    },
    "/api/v1/chart/import/": {
      "post": {
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "formData": {
                    "description": "upload file (ZIP)",
                    "format": "binary",
                    "type": "string"
                  },
                  "overwrite": {
                    "description": "overwrite existing charts?",
                    "type": "boolean"
                  },
                  "passwords": {
                    "description": "JSON map of passwords for each featured database in the ZIP file. If the ZIP includes a database config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
                    "type": "string"
                  },
                  "ssh_tunnel_passwords": {
                    "description": "JSON map of passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
                    "type": "string"
                  },
                  "ssh_tunnel_private_key_passwords": {
                    "description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
                    "type": "string"
                  },
                  "ssh_tunnel_private_keys": {
                    "description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Chart import result"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Import chart(s) with associated datasets and databases",
        "tags": [
          "Charts"
        ]
      }
    },
    "/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": []
          }
        ],
        "summary": "Get related fields data",
        "tags": [
          "Charts"
        ]
      }
    },
    "/api/v1/chart/warm_up_cache": {
      "put": {
        "description": "Warms up the cache for the chart. Note for slices a force refresh occurs. In terms of the `extra_filters` these can be obtained from records in the JSON encoded `logs.json` column associated with the `explore_json` action.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChartCacheWarmUpRequestSchema"
              }
            }
          },
          "description": "Identifies the chart to warm up cache for, and any additional dashboard or filter context to use.",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChartCacheWarmUpResponseSchema"
                }
              }
            },
            "description": "Each chart's warmup status"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Warm up the cache for the chart",
        "tags": [
          "Charts"
        ]
      }
    },
    "/api/v1/chart/{id_or_uuid}": {
      "get": {
        "description": "Get a chart",
        "parameters": [
          {
            "description": "Either the id of the chart, or its uuid",
            "in": "path",
            "name": "id_or_uuid",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "$ref": "#/components/schemas/ChartGetResponseSchema"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Chart"
          },
          "302": {
            "description": "Redirects to the current digest"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a chart detail information",
        "tags": [
          "Charts"
        ]
      }
    },
    "/api/v1/chart/{pk}": {
      "delete": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Chart delete"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Delete a chart",
        "tags": [
          "Charts"
        ]
      },
      "put": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChartRestApi.put"
              }
            }
          },
          "description": "Chart schema",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "result": {
                      "$ref": "#/components/schemas/ChartRestApi.put"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Chart changed"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Update a chart",
        "tags": [
          "Charts"
        ]
      }
    },
    "/api/v1/chart/{pk}/cache_screenshot/": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/screenshot_query_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChartCacheScreenshotResponseSchema"
                }
              }
            },
            "description": "Chart async result"
          },
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChartCacheScreenshotResponseSchema"
                }
              }
            },
            "description": "Chart screenshot task created"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Compute and cache a screenshot",
        "tags": [
          "Charts"
        ]
      }
    },
    "/api/v1/chart/{pk}/data/": {
      "get": {
        "description": "Takes a chart ID and uses the query context stored when the chart was saved to return payload data response.",
        "parameters": [
          {
            "description": "The chart ID",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "The format in which the data should be returned",
            "in": "query",
            "name": "format",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The type in which the data should be returned",
            "in": "query",
            "name": "type",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Should the queries be forced to load from the source",
            "in": "query",
            "name": "force",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChartDataResponseSchema"
                }
              }
            },
            "description": "Query result"
          },
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChartDataAsyncResponseSchema"
                }
              }
            },
            "description": "Async job details"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Return payload data response for a chart",
        "tags": [
          "Charts"
        ]
      }
    },
    "/api/v1/chart/{pk}/favorites/": {
      "delete": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Chart removed from favorites"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Remove the chart from the user favorite list",
        "tags": [
          "Charts"
        ]
      },
      "post": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Chart added to favorites"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Mark the chart as favorite for the current user",
        "tags": [
          "Charts"
        ]
      }
    },
    "/api/v1/chart/{pk}/screenshot/{digest}/": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "digest",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "image/*": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Chart screenshot image"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a computed screenshot from cache",
        "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"
            }
          },
          {
            "description": "A hex digest that makes this chart unique",
            "in": "path",
            "name": "digest",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "image/*": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Chart thumbnail image"
          },
          "302": {
            "description": "Redirects to the current digest"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get chart thumbnail",
        "tags": [
          "Charts"
        ]
      }
    },
    "/api/v1/css_template/": {
      "delete": {
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_delete_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "CSS templates bulk delete"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Bulk delete CSS templates",
        "tags": [
          "CSS Templates"
        ]
      },
      "get": {
        "description": "Gets a list of CSS templates, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ids": {
                      "description": "A list of item ids, useful when you don't know the column id",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "list_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "list_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "List Items",
                      "type": "string"
                    },
                    "order_columns": {
                      "description": "A list of allowed columns to sort",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/CssTemplateRestApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a list of CSS templates",
        "tags": [
          "CSS Templates"
        ]
      },
      "post": {
        "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": []
          }
        ],
        "summary": "Create a CSS template",
        "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": []
          }
        ],
        "summary": "Get metadata information about this API resource",
        "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": []
          }
        ],
        "summary": "Get related fields data",
        "tags": [
          "CSS Templates"
        ]
      }
    },
    "/api/v1/css_template/{pk}": {
      "delete": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item deleted"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Delete a CSS template",
        "tags": [
          "CSS Templates"
        ]
      },
      "get": {
        "description": "Get an item model",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_item_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "id": {
                      "description": "The item id",
                      "type": "string"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "result": {
                      "$ref": "#/components/schemas/CssTemplateRestApi.get"
                    },
                    "show_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "show_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "Show Item Details",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a CSS template",
        "tags": [
          "CSS Templates"
        ]
      },
      "put": {
        "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": []
          }
        ],
        "summary": "Update a CSS template",
        "tags": [
          "CSS Templates"
        ]
      }
    },
    "/api/v1/dashboard/": {
      "delete": {
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_delete_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dashboard bulk delete"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Bulk delete dashboards",
        "tags": [
          "Dashboards"
        ]
      },
      "get": {
        "description": "Gets a list of dashboards, use Rison or JSON query parameters for filtering, sorting, pagination and  for selecting specific columns and metadata.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ids": {
                      "description": "A list of item ids, useful when you don't know the column id",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "list_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "list_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "List Items",
                      "type": "string"
                    },
                    "order_columns": {
                      "description": "A list of allowed columns to sort",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/DashboardRestApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a list of dashboards",
        "tags": [
          "Dashboards"
        ]
      },
      "post": {
        "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"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Create a new dashboard",
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/v1/dashboard/_info": {
      "get": {
        "description": "Get metadata information about this API resource",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_info_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "add_columns": {
                      "type": "object"
                    },
                    "edit_columns": {
                      "type": "object"
                    },
                    "filters": {
                      "properties": {
                        "column_name": {
                          "items": {
                            "properties": {
                              "name": {
                                "description": "The filter name. Will be translated by babel",
                                "type": "string"
                              },
                              "operator": {
                                "description": "The filter operation key to use on list filters",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "permissions": {
                      "description": "The user permissions for this API resource",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get metadata information about this API resource",
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/v1/dashboard/export/": {
      "get": {
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_export_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "Dashboard export"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Download multiple dashboards as YAML files",
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/v1/dashboard/favorite_status/": {
      "get": {
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_fav_star_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetFavStarIdsSchema"
                }
              }
            },
            "description": "None"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Check favorited dashboards for current user",
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/v1/dashboard/import/": {
      "post": {
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "formData": {
                    "description": "upload file (ZIP or JSON)",
                    "format": "binary",
                    "type": "string"
                  },
                  "overwrite": {
                    "description": "overwrite existing dashboards?",
                    "type": "boolean"
                  },
                  "passwords": {
                    "description": "JSON map of passwords for each featured database in the ZIP file. If the ZIP includes a database config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
                    "type": "string"
                  },
                  "ssh_tunnel_passwords": {
                    "description": "JSON map of passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
                    "type": "string"
                  },
                  "ssh_tunnel_private_key_passwords": {
                    "description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
                    "type": "string"
                  },
                  "ssh_tunnel_private_keys": {
                    "description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dashboard import result"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Import dashboard(s) with associated charts/datasets/databases",
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/v1/dashboard/permalink/{key}": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "state": {
                      "description": "The stored state",
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Returns the stored state."
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get dashboard's permanent link state",
        "tags": [
          "Dashboard Permanent Link"
        ]
      }
    },
    "/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": []
          }
        ],
        "summary": "Get related fields data",
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/v1/dashboard/{id_or_slug}": {
      "get": {
        "parameters": [
          {
            "description": "Either the id of the dashboard, or its slug",
            "in": "path",
            "name": "id_or_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "$ref": "#/components/schemas/DashboardGetResponseSchema"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dashboard"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a dashboard detail information",
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/v1/dashboard/{id_or_slug}/charts": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "id_or_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "items": {
                        "$ref": "#/components/schemas/ChartEntityResponseSchema"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dashboard chart definitions"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a dashboard's chart definitions.",
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/v1/dashboard/{id_or_slug}/copy/": {
      "post": {
        "parameters": [
          {
            "description": "The dashboard id or slug",
            "in": "path",
            "name": "id_or_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardCopySchema"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "last_modified_time": {
                      "type": "number"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Id of new dashboard and last modified time"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Create a copy of an existing dashboard",
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/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"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get dashboard's datasets",
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/v1/dashboard/{id_or_slug}/embedded": {
      "delete": {
        "parameters": [
          {
            "description": "The dashboard id or slug",
            "in": "path",
            "name": "id_or_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successfully removed the configuration"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Delete a dashboard's embedded configuration",
        "tags": [
          "Dashboards"
        ]
      },
      "get": {
        "parameters": [
          {
            "description": "The dashboard id or slug",
            "in": "path",
            "name": "id_or_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "$ref": "#/components/schemas/EmbeddedDashboardResponseSchema"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Result contains the embedded dashboard config"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get the dashboard's embedded configuration",
        "tags": [
          "Dashboards"
        ]
      },
      "post": {
        "parameters": [
          {
            "description": "The dashboard id or slug",
            "in": "path",
            "name": "id_or_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmbeddedDashboardConfig"
              }
            }
          },
          "description": "The embedded configuration to set",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "$ref": "#/components/schemas/EmbeddedDashboardResponseSchema"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successfully set the configuration"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Set a dashboard's embedded configuration",
        "tags": [
          "Dashboards"
        ]
      },
      "put": {
        "description": "Sets a dashboard's embedded configuration.",
        "parameters": [
          {
            "description": "The dashboard id or slug",
            "in": "path",
            "name": "id_or_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmbeddedDashboardConfig"
              }
            }
          },
          "description": "The embedded configuration to set",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "$ref": "#/components/schemas/EmbeddedDashboardResponseSchema"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Successfully set the configuration"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/v1/dashboard/{id_or_slug}/tabs": {
      "get": {
        "description": "Returns a list of a dashboard's tabs and dashboard's nested tree structure for associated tabs.",
        "parameters": [
          {
            "description": "Either the id of the dashboard, or its slug",
            "in": "path",
            "name": "id_or_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "items": {
                        "$ref": "#/components/schemas/TabsPayloadSchema"
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dashboard tabs"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get dashboard's tabs",
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/v1/dashboard/{pk}": {
      "delete": {
        "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": []
          }
        ],
        "summary": "Delete a dashboard",
        "tags": [
          "Dashboards"
        ]
      },
      "put": {
        "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": []
          }
        ],
        "summary": "Update a dashboard",
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/v1/dashboard/{pk}/cache_dashboard_screenshot/": {
      "post": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardScreenshotPostSchema"
              }
            }
          }
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DashboardCacheScreenshotResponseSchema"
                }
              }
            },
            "description": "Dashboard async result"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Compute and cache a screenshot",
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/v1/dashboard/{pk}/colors": {
      "put": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "mark_updated",
            "schema": {
              "description": "Whether to update the dashboard changed_on field",
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardColorsConfigUpdateSchema"
              }
            }
          },
          "description": "Colors configuration",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dashboard colors updated"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Update colors configuration for a dashboard.",
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/v1/dashboard/{pk}/favorites/": {
      "delete": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dashboard removed from favorites"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Remove the dashboard from the user favorite list",
        "tags": [
          "Dashboards"
        ]
      },
      "post": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dashboard added to favorites"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Mark the dashboard as favorite for the current user",
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/v1/dashboard/{pk}/filter_state": {
      "post": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "tab_id",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "examples": {
                "numerical_range_filter": {
                  "description": "**This body should be stringified and put into the value field.**",
                  "summary": "Numerical Range Filter",
                  "value": {
                    "extraFormData": {
                      "filters": [
                        {
                          "col": "tz_offset",
                          "op": ">=",
                          "val": [
                            1000
                          ]
                        },
                        {
                          "col": "tz_offset",
                          "op": "<=",
                          "val": [
                            2000
                          ]
                        }
                      ]
                    },
                    "filterState": {
                      "label": "1000 <= x <= 2000",
                      "value": [
                        1000,
                        2000
                      ]
                    },
                    "id": "NATIVE_FILTER_ID"
                  }
                },
                "time_grain_filter": {
                  "description": "**This body should be stringified and put into the value field.**",
                  "summary": "Time Grain Filter",
                  "value": {
                    "extraFormData": {
                      "time_grain_sqla": "P1W/1970-01-03T00:00:00Z"
                    },
                    "filterState": {
                      "label": "Week ending Saturday",
                      "value": [
                        "P1W/1970-01-03T00:00:00Z"
                      ]
                    },
                    "id": "NATIVE_FILTER_ID"
                  }
                },
                "time_range_filter": {
                  "description": "**This body should be stringified and put into the value field.**",
                  "summary": "Time Range Filter",
                  "value": {
                    "extraFormData": {
                      "time_range": "DATEADD(DATETIME('2025-01-16T00:00:00'), -7, day) : 2025-01-16T00:00:00"
                    },
                    "filterState": {
                      "value": "DATEADD(DATETIME('2025-01-16T00:00:00'), -7, day) : 2025-01-16T00:00:00"
                    },
                    "id": "NATIVE_FILTER_ID"
                  }
                },
                "timecolumn_filter": {
                  "description": "**This body should be stringified and put into the value field.**",
                  "summary": "Time Column Filter",
                  "value": {
                    "extraFormData": {
                      "granularity_sqla": "order_date"
                    },
                    "filterState": {
                      "value": [
                        "order_date"
                      ]
                    },
                    "id": "NATIVE_FILTER_ID"
                  }
                },
                "value_filter": {
                  "description": "**This body should be stringified and put into the value field.**",
                  "summary": "Value Filter",
                  "value": {
                    "extraFormData": {
                      "filters": [
                        {
                          "col": "real_name",
                          "op": "IN",
                          "val": [
                            "John Doe"
                          ]
                        }
                      ]
                    },
                    "filterState": {
                      "value": [
                        "John Doe"
                      ]
                    },
                    "id": "NATIVE_FILTER_ID"
                  }
                }
              },
              "schema": {
                "$ref": "#/components/schemas/TemporaryCachePostSchema"
              }
            }
          },
          "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": []
          }
        ],
        "summary": "Create a dashboard's filter state",
        "tags": [
          "Dashboard Filter State"
        ]
      }
    },
    "/api/v1/dashboard/{pk}/filter_state/{key}": {
      "delete": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "The value key.",
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "description": "The result of the operation",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Deleted the stored value."
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Delete a dashboard's filter state value",
        "tags": [
          "Dashboard Filter State"
        ]
      },
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "value": {
                      "description": "The stored value",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Returns the stored value."
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a dashboard's filter state value",
        "tags": [
          "Dashboard Filter State"
        ]
      },
      "put": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tab_id",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TemporaryCachePutSchema"
              }
            }
          },
          "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": []
          }
        ],
        "summary": "Update a dashboard's filter state value",
        "tags": [
          "Dashboard Filter State"
        ]
      }
    },
    "/api/v1/dashboard/{pk}/filters": {
      "put": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardNativeFiltersConfigUpdateSchema"
              }
            }
          },
          "description": "Native filters configuration",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dashboard native filters updated"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Update native filters configuration for a dashboard.",
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/v1/dashboard/{pk}/permalink": {
      "post": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "examples": {
                "numerical_range_filter": {
                  "summary": "Numerical Range Filter",
                  "value": {
                    "dataMask": {
                      "extraFormData": {
                        "filters": [
                          {
                            "col": "tz_offset",
                            "op": ">=",
                            "val": [
                              1000
                            ]
                          },
                          {
                            "col": "tz_offset",
                            "op": "<=",
                            "val": [
                              2000
                            ]
                          }
                        ]
                      },
                      "filterState": {
                        "label": "1000 <= x <= 200",
                        "value": [
                          1000,
                          2000
                        ]
                      },
                      "id": "NATIVE_FILTER_ID"
                    }
                  }
                },
                "time_grain_filter": {
                  "summary": "Time Grain Filter",
                  "value": {
                    "dataMask": {
                      "extraFormData": {
                        "time_grain_sqla": "P1W/1970-01-03T00:00:00Z"
                      },
                      "filterState": {
                        "label": "Week ending Saturday",
                        "value": [
                          "P1W/1970-01-03T00:00:00Z"
                        ]
                      },
                      "id": "NATIVE_FILTER_ID"
                    }
                  }
                },
                "time_range_filter": {
                  "summary": "Time Range Filter",
                  "value": {
                    "dataMask": {
                      "extraFormData": {
                        "time_range": "DATEADD(DATETIME(\"2025-01-16T00:00:00\"), -7, day) : 2025-01-16T00:00:00"
                      },
                      "filterState": {
                        "value": "DATEADD(DATETIME(\"2025-01-16T00:00:00\"), -7, day) : 2025-01-16T00:00:00"
                      },
                      "id": "NATIVE_FILTER_ID"
                    }
                  }
                },
                "timecolumn_filter": {
                  "summary": "Time Column Filter",
                  "value": {
                    "dataMask": {
                      "extraFormData": {
                        "granularity_sqla": "order_date"
                      },
                      "filterState": {
                        "value": [
                          "order_date"
                        ]
                      },
                      "id": "NATIVE_FILTER_ID"
                    }
                  }
                },
                "value_filter": {
                  "summary": "Value Filter",
                  "value": {
                    "dataMask": {
                      "extraFormData": {
                        "filters": [
                          {
                            "col": "real_name",
                            "op": "IN",
                            "val": [
                              "John Doe"
                            ]
                          }
                        ]
                      },
                      "filterState": {
                        "value": [
                          "John Doe"
                        ]
                      },
                      "id": "NATIVE_FILTER_ID"
                    }
                  }
                }
              },
              "schema": {
                "$ref": "#/components/schemas/DashboardPermalinkStateSchema"
              }
            }
          },
          "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": []
          }
        ],
        "summary": "Create a new dashboard's permanent link",
        "tags": [
          "Dashboard Permanent Link"
        ]
      }
    },
    "/api/v1/dashboard/{pk}/screenshot/{digest}/": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "digest",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "download_format",
            "schema": {
              "enum": [
                "png",
                "pdf"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "image/*": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Dashboard thumbnail image"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a computed screenshot from cache",
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/v1/dashboard/{pk}/thumbnail/{digest}/": {
      "get": {
        "description": "Computes async or get already computed dashboard thumbnail from cache.",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A hex digest that makes this dashboard unique",
            "in": "path",
            "name": "digest",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "image/*": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Dashboard thumbnail image"
          },
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Thumbnail does not exist on cache, fired async to compute"
          },
          "302": {
            "description": "Redirects to the current digest"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get dashboard's thumbnail",
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/v1/database/": {
      "get": {
        "description": "Gets a list of databases, use Rison or JSON query parameters for filtering, sorting, pagination and  for selecting specific columns and metadata.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ids": {
                      "description": "A list of item ids, useful when you don't know the column id",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "list_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "list_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "List Items",
                      "type": "string"
                    },
                    "order_columns": {
                      "description": "A list of allowed columns to sort",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/DatabaseRestApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a list of databases",
        "tags": [
          "Database"
        ]
      },
      "post": {
        "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"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Create a new database",
        "tags": [
          "Database"
        ]
      }
    },
    "/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": []
          }
        ],
        "summary": "Get metadata information about this API resource",
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/available/": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "properties": {
                      "available_drivers": {
                        "description": "Installed drivers for the engine",
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "default_driver": {
                        "description": "Default driver for the engine",
                        "type": "string"
                      },
                      "engine": {
                        "description": "Name of the SQLAlchemy engine",
                        "type": "string"
                      },
                      "engine_information": {
                        "description": "Dict with public properties form the DB Engine",
                        "properties": {
                          "disable_ssh_tunneling": {
                            "description": "Whether the engine supports SSH Tunnels",
                            "type": "boolean"
                          },
                          "supports_file_upload": {
                            "description": "Whether the engine supports file uploads",
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "name": {
                        "description": "Name of the database",
                        "type": "string"
                      },
                      "parameters": {
                        "description": "JSON schema defining the needed parameters",
                        "type": "object"
                      },
                      "preferred": {
                        "description": "Is the database preferred?",
                        "type": "boolean"
                      },
                      "sqlalchemy_uri_placeholder": {
                        "description": "Example placeholder for the SQLAlchemy URI",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Database names"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get names of databases currently available",
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/export/": {
      "get": {
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_export_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/zip": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "A zip file with database(s) and dataset(s) as YAML"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Download database(s) and associated dataset(s) as a zip file",
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/import/": {
      "post": {
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "formData": {
                    "description": "upload file (ZIP)",
                    "format": "binary",
                    "type": "string"
                  },
                  "overwrite": {
                    "description": "overwrite existing databases?",
                    "type": "boolean"
                  },
                  "passwords": {
                    "description": "JSON map of passwords for each featured database in the ZIP file. If the ZIP includes a database config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
                    "type": "string"
                  },
                  "ssh_tunnel_passwords": {
                    "description": "JSON map of passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
                    "type": "string"
                  },
                  "ssh_tunnel_private_key_passwords": {
                    "description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
                    "type": "string"
                  },
                  "ssh_tunnel_private_keys": {
                    "description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Database import result"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Import database(s) with associated datasets",
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/oauth2/": {
      "get": {
        "description": "-> Receive and store personal access tokens from OAuth for user-level authorization",
        "parameters": [
          {
            "in": "query",
            "name": "state",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "code",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "scope",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "error",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "A dummy self-closing HTML page"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Receive personal access tokens from OAuth2",
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/related/{column_name}": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "column_name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_related_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RelatedResponseSchema"
                }
              }
            },
            "description": "Related column data"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get related fields data",
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/test_connection/": {
      "post": {
        "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": []
          }
        ],
        "summary": "Test a database connection",
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/upload_metadata/": {
      "post": {
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/UploadFileMetadataPostSchema"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "$ref": "#/components/schemas/UploadFileMetadata"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Upload response"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Upload a file and returns file metadata",
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/validate_parameters/": {
      "post": {
        "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": []
          }
        ],
        "summary": "Validate database connection parameters",
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/{pk}": {
      "delete": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Database deleted"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Delete a database",
        "tags": [
          "Database"
        ]
      },
      "get": {
        "parameters": [
          {
            "description": "The database id",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "Database"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a database",
        "tags": [
          "Database"
        ]
      },
      "put": {
        "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": []
          }
        ],
        "summary": "Change a database",
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/{pk}/catalogs/": {
      "get": {
        "parameters": [
          {
            "description": "The database id",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/database_catalogs_query_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CatalogsResponseSchema"
                }
              }
            },
            "description": "A List of all catalogs from the database"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get all catalogs from a database",
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/{pk}/connection": {
      "get": {
        "parameters": [
          {
            "description": "The database id",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatabaseConnectionSchema"
                }
              }
            },
            "description": "Database with connection info"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a database connection info",
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/{pk}/function_names/": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatabaseFunctionNamesResponse"
                }
              }
            },
            "description": "Query result"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get function names supported by a database",
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/{pk}/related_objects/": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatabaseRelatedObjectsResponse"
                }
              }
            },
            "description": "Query result"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get charts and dashboards count associated to a database",
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/{pk}/schemas/": {
      "get": {
        "parameters": [
          {
            "description": "The database id",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/database_schemas_query_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchemasResponseSchema"
                }
              }
            },
            "description": "A List of all schemas from the database"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get all schemas from a database",
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/{pk}/schemas_access_for_file_upload/": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatabaseSchemaAccessForFileUploadResponse"
                }
              }
            },
            "description": "The list of the database schemas where to upload information"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "The list of the database schemas where to upload information",
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/{pk}/select_star/{table_name}/": {
      "get": {
        "parameters": [
          {
            "description": "The database id",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Table name",
            "in": "path",
            "name": "table_name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Table schema",
            "in": "path",
            "name": "schema_name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SelectStarResponseSchema"
                }
              }
            },
            "description": "SQL statement for a select star for table"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get database select star for table",
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/{pk}/select_star/{table_name}/{schema_name}/": {
      "get": {
        "parameters": [
          {
            "description": "The database id",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Table name",
            "in": "path",
            "name": "table_name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Table schema",
            "in": "path",
            "name": "schema_name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SelectStarResponseSchema"
                }
              }
            },
            "description": "SQL statement for a select star for table"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get database select star for table",
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/{pk}/ssh_tunnel/": {
      "delete": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "SSH Tunnel deleted"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Delete a SSH tunnel",
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/{pk}/sync_permissions/": {
      "post": {
        "parameters": [
          {
            "description": "The database connection ID",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Task created to sync permissions."
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Re-sync all permissions for a database connection",
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/{pk}/table/{table_name}/{schema_name}/": {
      "get": {
        "parameters": [
          {
            "description": "The database id",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Table name",
            "in": "path",
            "name": "table_name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Table schema",
            "in": "path",
            "name": "schema_name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TableMetadataResponseSchema"
                }
              }
            },
            "description": "Table metadata information"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get database table metadata",
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/{pk}/table_extra/{table_name}/{schema_name}/": {
      "get": {
        "description": "Response depends on each DB engine spec normally focused on partitions.",
        "parameters": [
          {
            "description": "The database id",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Table name",
            "in": "path",
            "name": "table_name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Table schema",
            "in": "path",
            "name": "schema_name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TableExtraMetadataResponseSchema"
                }
              }
            },
            "description": "Table extra metadata information"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get table extra metadata",
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/{pk}/table_metadata/": {
      "get": {
        "description": "Metadata associated with the table (columns, indexes, etc.)",
        "parameters": [
          {
            "description": "The database id",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Table name",
            "in": "query",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Optional table schema, if not passed default schema will be used",
            "in": "query",
            "name": "schema",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Optional table catalog, if not passed default catalog will be used",
            "in": "query",
            "name": "catalog",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TableExtraMetadataResponseSchema"
                }
              }
            },
            "description": "Table metadata information"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get table metadata",
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/{pk}/table_metadata/extra/": {
      "get": {
        "description": "Extra metadata associated with the table (partitions, description, etc.)",
        "parameters": [
          {
            "description": "The database id",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Table name",
            "in": "query",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Optional table schema, if not passed the schema configured in the database will be used",
            "in": "query",
            "name": "schema",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Optional table catalog, if not passed the catalog configured in the database will be used",
            "in": "query",
            "name": "catalog",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TableExtraMetadataResponseSchema"
                }
              }
            },
            "description": "Table extra metadata information"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get table extra metadata",
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/{pk}/tables/": {
      "get": {
        "parameters": [
          {
            "description": "The database id",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/database_tables_query_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "type": "integer"
                    },
                    "result": {
                      "description": "A List of tables for given database",
                      "items": {
                        "$ref": "#/components/schemas/DatabaseTablesResponse"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Tables list"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a list of tables for given database",
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/{pk}/upload/": {
      "post": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/UploadPostSchema"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "CSV upload response"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Upload a file to a database table",
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/database/{pk}/validate_sql/": {
      "post": {
        "description": "Validates that arbitrary SQL is acceptable for the given database.",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ValidateSQLRequest"
              }
            }
          },
          "description": "Validate SQL request",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "description": "A List of SQL errors found on the statement",
                      "items": {
                        "$ref": "#/components/schemas/ValidateSQLResponse"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Validation result"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Validate arbitrary SQL",
        "tags": [
          "Database"
        ]
      }
    },
    "/api/v1/dataset/": {
      "delete": {
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_delete_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dataset bulk delete"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Bulk delete datasets",
        "tags": [
          "Datasets"
        ]
      },
      "get": {
        "description": "Gets a list of datasets, use Rison or JSON query parameters for filtering, sorting, pagination and  for selecting specific columns and metadata.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ids": {
                      "description": "A list of item ids, useful when you don't know the column id",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "list_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "list_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "List Items",
                      "type": "string"
                    },
                    "order_columns": {
                      "description": "A list of allowed columns to sort",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/DatasetRestApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a list of datasets",
        "tags": [
          "Datasets"
        ]
      },
      "post": {
        "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": []
          }
        ],
        "summary": "Create a new dataset",
        "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": []
          }
        ],
        "summary": "Get metadata information about this API resource",
        "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": []
          }
        ],
        "summary": "Get distinct values from field data",
        "tags": [
          "Datasets"
        ]
      }
    },
    "/api/v1/dataset/duplicate": {
      "post": {
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DatasetDuplicateSchema"
              }
            }
          },
          "description": "Dataset schema",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "result": {
                      "$ref": "#/components/schemas/DatasetDuplicateSchema"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dataset duplicated"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Duplicate a dataset",
        "tags": [
          "Datasets"
        ]
      }
    },
    "/api/v1/dataset/export/": {
      "get": {
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_export_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "Dataset export"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Download multiple datasets as YAML files",
        "tags": [
          "Datasets"
        ]
      }
    },
    "/api/v1/dataset/get_or_create/": {
      "post": {
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetOrCreateDatasetSchema"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "properties": {
                        "table_id": {
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "The ID of the table"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Retrieve a table by name, or create it if it does not exist",
        "tags": [
          "Datasets"
        ]
      }
    },
    "/api/v1/dataset/import/": {
      "post": {
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "formData": {
                    "description": "upload file (ZIP or YAML)",
                    "format": "binary",
                    "type": "string"
                  },
                  "overwrite": {
                    "description": "overwrite existing datasets?",
                    "type": "boolean"
                  },
                  "passwords": {
                    "description": "JSON map of passwords for each featured database in the ZIP file. If the ZIP includes a database config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
                    "type": "string"
                  },
                  "ssh_tunnel_passwords": {
                    "description": "JSON map of passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
                    "type": "string"
                  },
                  "ssh_tunnel_private_key_passwords": {
                    "description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
                    "type": "string"
                  },
                  "ssh_tunnel_private_keys": {
                    "description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
                    "type": "string"
                  },
                  "sync_columns": {
                    "description": "sync columns?",
                    "type": "boolean"
                  },
                  "sync_metrics": {
                    "description": "sync metrics?",
                    "type": "boolean"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dataset import result"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Import dataset(s) with associated databases",
        "tags": [
          "Datasets"
        ]
      }
    },
    "/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": []
          }
        ],
        "summary": "Get related fields data",
        "tags": [
          "Datasets"
        ]
      }
    },
    "/api/v1/dataset/warm_up_cache": {
      "put": {
        "description": "Warms up the cache for the table. Note for slices a force refresh occurs. In terms of the `extra_filters` these can be obtained from records in the JSON encoded `logs.json` column associated with the `explore_json` action.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DatasetCacheWarmUpRequestSchema"
              }
            }
          },
          "description": "Identifies the database and table to warm up cache for, and any additional dashboard or filter context to use.",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatasetCacheWarmUpResponseSchema"
                }
              }
            },
            "description": "Each chart's warmup status"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Warm up the cache for each chart powered by the given table",
        "tags": [
          "Datasets"
        ]
      }
    },
    "/api/v1/dataset/{pk}": {
      "delete": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dataset delete"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Delete a dataset",
        "tags": [
          "Datasets"
        ]
      },
      "get": {
        "description": "Get a dataset by ID",
        "parameters": [
          {
            "description": "The dataset ID",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_item_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          },
          {
            "description": "Should Jinja macros from sql, metrics and columns be rendered and included in the response",
            "in": "query",
            "name": "include_rendered_sql",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "description": "The item id",
                      "type": "string"
                    },
                    "result": {
                      "$ref": "#/components/schemas/DatasetRestApi.get"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dataset object has been returned."
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a dataset",
        "tags": [
          "Datasets"
        ]
      },
      "put": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "override_columns",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DatasetRestApi.put"
              }
            }
          },
          "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": []
          }
        ],
        "summary": "Update a dataset",
        "tags": [
          "Datasets"
        ]
      }
    },
    "/api/v1/dataset/{pk}/column/{column_id}": {
      "delete": {
        "parameters": [
          {
            "description": "The dataset pk for this column",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "The column id for this dataset",
            "in": "path",
            "name": "column_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Column deleted"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Delete a dataset column",
        "tags": [
          "Datasets"
        ]
      }
    },
    "/api/v1/dataset/{pk}/drill_info/": {
      "get": {
        "parameters": [
          {
            "description": "The dataset ID",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dataset drill info"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get dataset drill info",
        "tags": [
          "Datasets"
        ]
      }
    },
    "/api/v1/dataset/{pk}/metric/{metric_id}": {
      "delete": {
        "parameters": [
          {
            "description": "The dataset pk for this column",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "The metric id for this dataset",
            "in": "path",
            "name": "metric_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Metric deleted"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Delete a dataset metric",
        "tags": [
          "Datasets"
        ]
      }
    },
    "/api/v1/dataset/{pk}/refresh": {
      "put": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Dataset delete"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Refresh and update columns of a dataset",
        "tags": [
          "Datasets"
        ]
      }
    },
    "/api/v1/dataset/{pk}/related_objects": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatasetRelatedObjectsResponse"
                }
              }
            },
            "description": "Query result"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get charts and dashboards count associated to a dataset",
        "tags": [
          "Datasets"
        ]
      }
    },
    "/api/v1/datasource/{datasource_type}/{datasource_id}/column/{column_name}/values/": {
      "get": {
        "parameters": [
          {
            "description": "The type of datasource",
            "in": "path",
            "name": "datasource_type",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The id of the datasource",
            "in": "path",
            "name": "datasource_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "The name of the column to get values for",
            "in": "path",
            "name": "column_name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "items": {
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "integer"
                          },
                          {
                            "type": "number"
                          },
                          {
                            "type": "boolean"
                          },
                          {
                            "type": "object"
                          }
                        ]
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "A List of distinct values for the column"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get possible values for a datasource column",
        "tags": [
          "Datasources"
        ]
      }
    },
    "/api/v1/embedded_dashboard/{uuid}": {
      "get": {
        "parameters": [
          {
            "description": "The embedded configuration uuid",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The ui config of embedded dashboard (optional).",
            "in": "query",
            "name": "uiConfig",
            "schema": {
              "type": "number"
            }
          },
          {
            "description": "Show filters (optional).",
            "in": "query",
            "name": "show_filters",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Expand filters (optional).",
            "in": "query",
            "name": "expand_filters",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Native filters key to apply filters. (optional).",
            "in": "query",
            "name": "native_filters_key",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Permalink key to apply filters. (optional).",
            "in": "query",
            "name": "permalink_key",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "$ref": "#/components/schemas/EmbeddedDashboardResponseSchema"
                    }
                  },
                  "type": "object"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "Result contains the embedded dashboard configuration"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a report schedule log",
        "tags": [
          "Embedded Dashboard"
        ]
      }
    },
    "/api/v1/explore/": {
      "get": {
        "description": "Assembles Explore related information (form_data, slice, dataset) in a single endpoint.<br/><br/> The information can be assembled from:<br/> - The cache using a form_data_key<br/> - The metadata database using a permalink_key<br/> - Build from scratch using dataset or slice identifiers.",
        "parameters": [
          {
            "in": "query",
            "name": "form_data_key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "permalink_key",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "slice_id",
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "datasource_id",
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "datasource_type",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExploreContextSchema"
                }
              }
            },
            "description": "Returns the initial context."
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Assemble Explore related information in a single endpoint",
        "tags": [
          "Explore"
        ]
      }
    },
    "/api/v1/explore/form_data": {
      "post": {
        "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": []
          }
        ],
        "summary": "Create a new form_data",
        "tags": [
          "Explore Form Data"
        ]
      }
    },
    "/api/v1/explore/form_data/{key}": {
      "delete": {
        "parameters": [
          {
            "description": "The form_data key.",
            "in": "path",
            "name": "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": []
          }
        ],
        "summary": "Delete a form_data",
        "tags": [
          "Explore Form Data"
        ]
      },
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "form_data": {
                      "description": "The stored form_data",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Returns the stored form_data."
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a form_data",
        "tags": [
          "Explore Form Data"
        ]
      },
      "put": {
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tab_id",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FormDataPutSchema"
              }
            }
          },
          "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": []
          }
        ],
        "summary": "Update an existing form_data",
        "tags": [
          "Explore Form Data"
        ]
      }
    },
    "/api/v1/explore/permalink": {
      "post": {
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExplorePermalinkStateSchema"
              }
            }
          },
          "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": []
          }
        ],
        "summary": "Create a new permanent link",
        "tags": [
          "Explore Permanent Link"
        ]
      }
    },
    "/api/v1/explore/permalink/{key}": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "state": {
                      "description": "The stored state",
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Returns the stored form_data."
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get chart's permanent link state",
        "tags": [
          "Explore Permanent Link"
        ]
      }
    },
    "/api/v1/log/": {
      "get": {
        "description": "Gets a list of logs, use Rison or JSON query parameters for filtering, sorting, pagination and  for selecting specific columns and metadata.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ids": {
                      "description": "A list of item ids, useful when you don't know the column id",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "list_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "list_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "List Items",
                      "type": "string"
                    },
                    "order_columns": {
                      "description": "A list of allowed columns to sort",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/LogRestApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a list of logs",
        "tags": [
          "LogRestApi"
        ]
      },
      "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/recent_activity/": {
      "get": {
        "parameters": [
          {
            "description": "The id of the user",
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_recent_activity_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecentActivityResponseSchema"
                }
              }
            },
            "description": "A List of recent activity objects"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get recent activity data for a user",
        "tags": [
          "LogRestApi"
        ]
      }
    },
    "/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": []
          }
        ],
        "summary": "Get a log detail information",
        "tags": [
          "LogRestApi"
        ]
      }
    },
    "/api/v1/me/": {
      "get": {
        "description": "Gets the user object corresponding to the agent making the request, or returns a 401 error if the user is unauthenticated.",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "$ref": "#/components/schemas/UserResponseSchema"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "The current user"
          },
          "401": {
            "$ref": "#/components/responses/401"
          }
        },
        "summary": "Get the user object",
        "tags": [
          "Current User"
        ]
      },
      "put": {
        "description": "Updates the current user's first name, last name, or password.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CurrentUserPutSchema"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "$ref": "#/components/schemas/UserResponseSchema"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "User updated successfully"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          }
        },
        "summary": "Update the current user",
        "tags": [
          "Current User"
        ]
      }
    },
    "/api/v1/me/roles/": {
      "get": {
        "description": "Gets the user roles corresponding to the agent making the request, or returns a 401 error if the user is unauthenticated.",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "$ref": "#/components/schemas/UserResponseSchema"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "The current user"
          },
          "401": {
            "$ref": "#/components/responses/401"
          }
        },
        "summary": "Get the user roles",
        "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": "Gets a list of queries, use Rison or JSON query parameters for filtering, sorting, pagination and  for selecting specific columns and metadata.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ids": {
                      "description": "A list of item ids, useful when you don't know the column id",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "list_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "list_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "List Items",
                      "type": "string"
                    },
                    "order_columns": {
                      "description": "A list of allowed columns to sort",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/QueryRestApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a list of queries",
        "tags": [
          "Queries"
        ]
      }
    },
    "/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": []
          }
        ],
        "summary": "Get distinct values from field data",
        "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": []
          }
        ],
        "summary": "Get related fields data",
        "tags": [
          "Queries"
        ]
      }
    },
    "/api/v1/query/stop": {
      "post": {
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StopQuerySchema"
              }
            }
          },
          "description": "Stop query schema",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Query stopped"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Manually stop a query with client_id",
        "tags": [
          "Queries"
        ]
      }
    },
    "/api/v1/query/updated_since": {
      "get": {
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/queries_get_updated_since_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "description": "A List of queries that changed after last_updated_ms",
                      "items": {
                        "$ref": "#/components/schemas/QueryRestApi.get"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Queries list"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a list of queries that changed after last_updated_ms",
        "tags": [
          "Queries"
        ]
      }
    },
    "/api/v1/query/{pk}": {
      "get": {
        "description": "Get an item model",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_item_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "id": {
                      "description": "The item id",
                      "type": "string"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "result": {
                      "$ref": "#/components/schemas/QueryRestApi.get"
                    },
                    "show_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "show_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "Show Item Details",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get query detail information",
        "tags": [
          "Queries"
        ]
      }
    },
    "/api/v1/report/": {
      "delete": {
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_delete_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Report Schedule bulk delete"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Bulk delete report schedules",
        "tags": [
          "Report Schedules"
        ]
      },
      "get": {
        "description": "Gets a list of report schedules, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ids": {
                      "description": "A list of item ids, useful when you don't know the column id",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "list_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "list_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "List Items",
                      "type": "string"
                    },
                    "order_columns": {
                      "description": "A list of allowed columns to sort",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/ReportScheduleRestApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a list of report schedules",
        "tags": [
          "Report Schedules"
        ]
      },
      "post": {
        "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"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Create a report schedule",
        "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": []
          }
        ],
        "summary": "Get metadata information about this API resource",
        "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": []
          }
        ],
        "summary": "Get related fields data",
        "tags": [
          "Report Schedules"
        ]
      }
    },
    "/api/v1/report/slack_channels/": {
      "get": {
        "description": "Get slack channels",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_slack_channels_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "items": {
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Slack channels"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get slack channels",
        "tags": [
          "Report Schedules"
        ]
      }
    },
    "/api/v1/report/{pk}": {
      "delete": {
        "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": []
          }
        ],
        "summary": "Delete a report schedule",
        "tags": [
          "Report Schedules"
        ]
      },
      "get": {
        "description": "Get an item model",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_item_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "id": {
                      "description": "The item id",
                      "type": "string"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "result": {
                      "$ref": "#/components/schemas/ReportScheduleRestApi.get"
                    },
                    "show_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "show_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "Show Item Details",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a report schedule",
        "tags": [
          "Report Schedules"
        ]
      },
      "put": {
        "parameters": [
          {
            "description": "The Report Schedule pk",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReportScheduleRestApi.put"
              }
            }
          },
          "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"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Update a report schedule",
        "tags": [
          "Report Schedules"
        ]
      }
    },
    "/api/v1/report/{pk}/log/": {
      "get": {
        "description": "Gets a list of report schedule logs, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
        "parameters": [
          {
            "description": "The report schedule id for these logs",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "ids": {
                      "description": "A list of log ids",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/ReportExecutionLogRestApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from logs"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a list of report schedule logs",
        "tags": [
          "Report Schedules"
        ]
      }
    },
    "/api/v1/report/{pk}/log/{log_id}": {
      "get": {
        "parameters": [
          {
            "description": "The report schedule pk for log",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "The log pk",
            "in": "path",
            "name": "log_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_item_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "description": "The log id",
                      "type": "string"
                    },
                    "result": {
                      "$ref": "#/components/schemas/ReportExecutionLogRestApi.get"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item log"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a report schedule log",
        "tags": [
          "Report Schedules"
        ]
      }
    },
    "/api/v1/rowlevelsecurity/": {
      "delete": {
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_delete_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "RLS Rule bulk delete"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Bulk delete RLS rules",
        "tags": [
          "Row Level Security"
        ]
      },
      "get": {
        "description": "Gets a list of RLS, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ids": {
                      "description": "A list of item ids, useful when you don't know the column id",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "list_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "list_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "List Items",
                      "type": "string"
                    },
                    "order_columns": {
                      "description": "A list of allowed columns to sort",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/RLSRestApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a list of RLS",
        "tags": [
          "Row Level Security"
        ]
      },
      "post": {
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RLSRestApi.post"
              }
            }
          },
          "description": "RLS schema",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "result": {
                      "$ref": "#/components/schemas/RLSRestApi.post"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "RLS Rule added"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Create a new RLS rule",
        "tags": [
          "Row Level Security"
        ]
      }
    },
    "/api/v1/rowlevelsecurity/_info": {
      "get": {
        "description": "Get metadata information about this API resource",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_info_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "add_columns": {
                      "type": "object"
                    },
                    "edit_columns": {
                      "type": "object"
                    },
                    "filters": {
                      "properties": {
                        "column_name": {
                          "items": {
                            "properties": {
                              "name": {
                                "description": "The filter name. Will be translated by babel",
                                "type": "string"
                              },
                              "operator": {
                                "description": "The filter operation key to use on list filters",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "permissions": {
                      "description": "The user permissions for this API resource",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get metadata information about this API resource",
        "tags": [
          "Row Level Security"
        ]
      }
    },
    "/api/v1/rowlevelsecurity/related/{column_name}": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "column_name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_related_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RelatedResponseSchema"
                }
              }
            },
            "description": "Related column data"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get related fields data",
        "tags": [
          "Row Level Security"
        ]
      }
    },
    "/api/v1/rowlevelsecurity/{pk}": {
      "delete": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item deleted"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Delete an RLS",
        "tags": [
          "Row Level Security"
        ]
      },
      "get": {
        "description": "Get an item model",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_item_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "id": {
                      "description": "The item id",
                      "type": "string"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "result": {
                      "$ref": "#/components/schemas/RLSRestApi.get"
                    },
                    "show_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "show_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "Show Item Details",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get an RLS",
        "tags": [
          "Row Level Security"
        ]
      },
      "put": {
        "parameters": [
          {
            "description": "The Rule pk",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RLSRestApi.put"
              }
            }
          },
          "description": "RLS schema",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "result": {
                      "$ref": "#/components/schemas/RLSRestApi.put"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Rule changed"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Update an RLS rule",
        "tags": [
          "Row Level Security"
        ]
      }
    },
    "/api/v1/saved_query/": {
      "delete": {
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_delete_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Saved queries bulk delete"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Bulk delete saved queries",
        "tags": [
          "Queries"
        ]
      },
      "get": {
        "description": "Gets a list of saved queries, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ids": {
                      "description": "A list of item ids, useful when you don't know the column id",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "list_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "list_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "List Items",
                      "type": "string"
                    },
                    "order_columns": {
                      "description": "A list of allowed columns to sort",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/SavedQueryRestApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a list of saved queries",
        "tags": [
          "Queries"
        ]
      },
      "post": {
        "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": []
          }
        ],
        "summary": "Create a saved query",
        "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": []
          }
        ],
        "summary": "Get metadata information about this API resource",
        "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": []
          }
        ],
        "summary": "Get distinct values from field data",
        "tags": [
          "Queries"
        ]
      }
    },
    "/api/v1/saved_query/export/": {
      "get": {
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_export_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/zip": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "A zip file with saved query(ies) and database(s) as YAML"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Download multiple saved queries as YAML files",
        "tags": [
          "Queries"
        ]
      }
    },
    "/api/v1/saved_query/import/": {
      "post": {
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "formData": {
                    "description": "upload file (ZIP)",
                    "format": "binary",
                    "type": "string"
                  },
                  "overwrite": {
                    "description": "overwrite existing saved queries?",
                    "type": "boolean"
                  },
                  "passwords": {
                    "description": "JSON map of passwords for each featured database in the ZIP file. If the ZIP includes a database config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
                    "type": "string"
                  },
                  "ssh_tunnel_passwords": {
                    "description": "JSON map of passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
                    "type": "string"
                  },
                  "ssh_tunnel_private_key_passwords": {
                    "description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
                    "type": "string"
                  },
                  "ssh_tunnel_private_keys": {
                    "description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Saved Query import result"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Import saved queries with associated databases",
        "tags": [
          "Queries"
        ]
      }
    },
    "/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": []
          }
        ],
        "summary": "Get related fields data",
        "tags": [
          "Queries"
        ]
      }
    },
    "/api/v1/saved_query/{pk}": {
      "delete": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item deleted"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Delete a saved query",
        "tags": [
          "Queries"
        ]
      },
      "get": {
        "description": "Get an item model",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_item_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "id": {
                      "description": "The item id",
                      "type": "string"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "result": {
                      "$ref": "#/components/schemas/SavedQueryRestApi.get"
                    },
                    "show_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "show_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "Show Item Details",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a saved query",
        "tags": [
          "Queries"
        ]
      },
      "put": {
        "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": []
          }
        ],
        "summary": "Update a saved query",
        "tags": [
          "Queries"
        ]
      }
    },
    "/api/v1/security/csrf_token/": {
      "get": {
        "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": []
          }
        ],
        "summary": "Get the CSRF token",
        "tags": [
          "Security"
        ]
      }
    },
    "/api/v1/security/groups/": {
      "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/GroupApi.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": [
          "Security Groups"
        ]
      },
      "post": {
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupPostSchema"
              }
            }
          },
          "description": "Model schema",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "$ref": "#/components/schemas/GroupPostSchema"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Group created"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Security Groups"
        ]
      }
    },
    "/api/v1/security/groups/_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": [
          "Security Groups"
        ]
      }
    },
    "/api/v1/security/groups/{pk}": {
      "delete": {
        "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": [
          "Security Groups"
        ]
      },
      "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/GroupApi.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": [
          "Security Groups"
        ]
      },
      "put": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupPutSchema"
              }
            }
          },
          "description": "Model schema",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "$ref": "#/components/schemas/GroupPutSchema"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Group updated"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Security Groups"
        ]
      }
    },
    "/api/v1/security/guest_token/": {
      "post": {
        "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"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a guest token",
        "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/permissions-resources/": {
      "get": {
        "description": "Get a list of models",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ids": {
                      "description": "A list of item ids, useful when you don't know the column id",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "list_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "list_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "List Items",
                      "type": "string"
                    },
                    "order_columns": {
                      "description": "A list of allowed columns to sort",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/PermissionViewMenuApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Security Permissions on Resources (View Menus)"
        ]
      },
      "post": {
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PermissionViewMenuApi.post"
              }
            }
          },
          "description": "Model schema",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "result": {
                      "$ref": "#/components/schemas/PermissionViewMenuApi.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": [
          "Security Permissions on Resources (View Menus)"
        ]
      }
    },
    "/api/v1/security/permissions-resources/_info": {
      "get": {
        "description": "Get metadata information about this API resource",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_info_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "add_columns": {
                      "type": "object"
                    },
                    "edit_columns": {
                      "type": "object"
                    },
                    "filters": {
                      "properties": {
                        "column_name": {
                          "items": {
                            "properties": {
                              "name": {
                                "description": "The filter name. Will be translated by babel",
                                "type": "string"
                              },
                              "operator": {
                                "description": "The filter operation key to use on list filters",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "permissions": {
                      "description": "The user permissions for this API resource",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Security Permissions on Resources (View Menus)"
        ]
      }
    },
    "/api/v1/security/permissions-resources/{pk}": {
      "delete": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item deleted"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Security Permissions on Resources (View Menus)"
        ]
      },
      "get": {
        "description": "Get an item model",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_item_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "id": {
                      "description": "The item id",
                      "type": "string"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "result": {
                      "$ref": "#/components/schemas/PermissionViewMenuApi.get"
                    },
                    "show_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "show_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "Show Item Details",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Security Permissions on Resources (View Menus)"
        ]
      },
      "put": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PermissionViewMenuApi.put"
              }
            }
          },
          "description": "Model schema",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "$ref": "#/components/schemas/PermissionViewMenuApi.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": [
          "Security Permissions on Resources (View Menus)"
        ]
      }
    },
    "/api/v1/security/permissions/": {
      "get": {
        "description": "Get a list of models",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ids": {
                      "description": "A list of item ids, useful when you don't know the column id",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "list_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "list_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "List Items",
                      "type": "string"
                    },
                    "order_columns": {
                      "description": "A list of allowed columns to sort",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/PermissionApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Security Permissions"
        ]
      }
    },
    "/api/v1/security/permissions/_info": {
      "get": {
        "description": "Get metadata information about this API resource",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_info_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "add_columns": {
                      "type": "object"
                    },
                    "edit_columns": {
                      "type": "object"
                    },
                    "filters": {
                      "properties": {
                        "column_name": {
                          "items": {
                            "properties": {
                              "name": {
                                "description": "The filter name. Will be translated by babel",
                                "type": "string"
                              },
                              "operator": {
                                "description": "The filter operation key to use on list filters",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "permissions": {
                      "description": "The user permissions for this API resource",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Security Permissions"
        ]
      }
    },
    "/api/v1/security/permissions/{pk}": {
      "get": {
        "description": "Get an item model",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_item_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "id": {
                      "description": "The item id",
                      "type": "string"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "result": {
                      "$ref": "#/components/schemas/PermissionApi.get"
                    },
                    "show_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "show_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "Show Item Details",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Security Permissions"
        ]
      }
    },
    "/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/v1/security/resources/": {
      "get": {
        "description": "Get a list of models",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ids": {
                      "description": "A list of item ids, useful when you don't know the column id",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "list_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "list_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "List Items",
                      "type": "string"
                    },
                    "order_columns": {
                      "description": "A list of allowed columns to sort",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/ViewMenuApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Security Resources (View Menus)"
        ]
      },
      "post": {
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ViewMenuApi.post"
              }
            }
          },
          "description": "Model schema",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "result": {
                      "$ref": "#/components/schemas/ViewMenuApi.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": [
          "Security Resources (View Menus)"
        ]
      }
    },
    "/api/v1/security/resources/_info": {
      "get": {
        "description": "Get metadata information about this API resource",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_info_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "add_columns": {
                      "type": "object"
                    },
                    "edit_columns": {
                      "type": "object"
                    },
                    "filters": {
                      "properties": {
                        "column_name": {
                          "items": {
                            "properties": {
                              "name": {
                                "description": "The filter name. Will be translated by babel",
                                "type": "string"
                              },
                              "operator": {
                                "description": "The filter operation key to use on list filters",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "permissions": {
                      "description": "The user permissions for this API resource",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Security Resources (View Menus)"
        ]
      }
    },
    "/api/v1/security/resources/{pk}": {
      "delete": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item deleted"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Security Resources (View Menus)"
        ]
      },
      "get": {
        "description": "Get an item model",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_item_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "id": {
                      "description": "The item id",
                      "type": "string"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "result": {
                      "$ref": "#/components/schemas/ViewMenuApi.get"
                    },
                    "show_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "show_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "Show Item Details",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Security Resources (View Menus)"
        ]
      },
      "put": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ViewMenuApi.put"
              }
            }
          },
          "description": "Model schema",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "$ref": "#/components/schemas/ViewMenuApi.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": [
          "Security Resources (View Menus)"
        ]
      }
    },
    "/api/v1/security/roles/": {
      "get": {
        "description": "Get a list of models",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ids": {
                      "description": "A list of item ids, useful when you don't know the column id",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "list_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "list_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "List Items",
                      "type": "string"
                    },
                    "order_columns": {
                      "description": "A list of allowed columns to sort",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/SupersetRoleApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Security Roles"
        ]
      },
      "post": {
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SupersetRoleApi.post"
              }
            }
          },
          "description": "Model schema",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "result": {
                      "$ref": "#/components/schemas/SupersetRoleApi.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": [
          "Security Roles"
        ]
      }
    },
    "/api/v1/security/roles/_info": {
      "get": {
        "description": "Get metadata information about this API resource",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_info_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "add_columns": {
                      "type": "object"
                    },
                    "edit_columns": {
                      "type": "object"
                    },
                    "filters": {
                      "properties": {
                        "column_name": {
                          "items": {
                            "properties": {
                              "name": {
                                "description": "The filter name. Will be translated by babel",
                                "type": "string"
                              },
                              "operator": {
                                "description": "The filter operation key to use on list filters",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "permissions": {
                      "description": "The user permissions for this API resource",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Security Roles"
        ]
      }
    },
    "/api/v1/security/roles/search/": {
      "get": {
        "description": "Fetch a paginated list of roles with user and permission IDs.",
        "parameters": [
          {
            "in": "query",
            "name": "q",
            "schema": {
              "properties": {
                "filters": {
                  "items": {
                    "properties": {
                      "col": {
                        "enum": [
                          "user_ids",
                          "permission_ids",
                          "name"
                        ],
                        "type": "string"
                      },
                      "value": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                },
                "order_column": {
                  "default": "id",
                  "enum": [
                    "id",
                    "name"
                  ],
                  "type": "string"
                },
                "order_direction": {
                  "default": "asc",
                  "enum": [
                    "asc",
                    "desc"
                  ],
                  "type": "string"
                },
                "page": {
                  "default": 0,
                  "type": "integer"
                },
                "page_size": {
                  "default": 10,
                  "type": "integer"
                }
              },
              "type": "object"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RolesResponseSchema"
                }
              }
            },
            "description": "Successfully retrieved roles"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Bad request (invalid input)"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "List roles",
        "tags": [
          "Security Roles"
        ]
      }
    },
    "/api/v1/security/roles/{pk}": {
      "delete": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item deleted"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Security Roles"
        ]
      },
      "get": {
        "description": "Get an item model",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_item_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "id": {
                      "description": "The item id",
                      "type": "string"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "result": {
                      "$ref": "#/components/schemas/SupersetRoleApi.get"
                    },
                    "show_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "show_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "Show Item Details",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Security Roles"
        ]
      },
      "put": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SupersetRoleApi.put"
              }
            }
          },
          "description": "Model schema",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "$ref": "#/components/schemas/SupersetRoleApi.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": [
          "Security Roles"
        ]
      }
    },
    "/api/v1/security/roles/{role_id}/groups": {
      "put": {
        "parameters": [
          {
            "in": "path",
            "name": "role_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RoleGroupPutSchema"
              }
            }
          },
          "description": "Update role groups schema",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "$ref": "#/components/schemas/RoleGroupPutSchema"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Role groups updated"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Security Roles"
        ]
      }
    },
    "/api/v1/security/roles/{role_id}/permissions": {
      "post": {
        "parameters": [
          {
            "in": "path",
            "name": "role_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RolePermissionPostSchema"
              }
            }
          },
          "description": "Add role permissions schema",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "$ref": "#/components/schemas/RolePermissionPostSchema"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Permissions added"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Security Roles"
        ]
      }
    },
    "/api/v1/security/roles/{role_id}/permissions/": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "role_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "items": {
                        "$ref": "#/components/schemas/RolePermissionListSchema"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "List of permissions"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Security Roles"
        ]
      }
    },
    "/api/v1/security/roles/{role_id}/users": {
      "put": {
        "parameters": [
          {
            "in": "path",
            "name": "role_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RoleUserPutSchema"
              }
            }
          },
          "description": "Update role users schema",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "$ref": "#/components/schemas/RoleUserPutSchema"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Role users updated"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Security Roles"
        ]
      }
    },
    "/api/v1/security/user_registrations/": {
      "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/UserRegistrationsRestAPI.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": [
          "UserRegistrationsRestAPI"
        ]
      },
      "post": {
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserRegistrationsRestAPI.post"
              }
            }
          },
          "description": "Model schema",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "result": {
                      "$ref": "#/components/schemas/UserRegistrationsRestAPI.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": [
          "UserRegistrationsRestAPI"
        ]
      }
    },
    "/api/v1/security/user_registrations/_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": [
          "UserRegistrationsRestAPI"
        ]
      }
    },
    "/api/v1/security/user_registrations/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": []
          }
        ],
        "summary": "Get distinct values from field data",
        "tags": [
          "UserRegistrationsRestAPI"
        ]
      }
    },
    "/api/v1/security/user_registrations/related/{column_name}": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "column_name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_related_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RelatedResponseSchema"
                }
              }
            },
            "description": "Related column data"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get related fields data",
        "tags": [
          "UserRegistrationsRestAPI"
        ]
      }
    },
    "/api/v1/security/user_registrations/{pk}": {
      "delete": {
        "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": [
          "UserRegistrationsRestAPI"
        ]
      },
      "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/UserRegistrationsRestAPI.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": [
          "UserRegistrationsRestAPI"
        ]
      },
      "put": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserRegistrationsRestAPI.put"
              }
            }
          },
          "description": "Model schema",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "$ref": "#/components/schemas/UserRegistrationsRestAPI.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": [
          "UserRegistrationsRestAPI"
        ]
      }
    },
    "/api/v1/security/users/": {
      "get": {
        "description": "Get a list of models",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ids": {
                      "description": "A list of item ids, useful when you don't know the column id",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "list_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "list_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "List Items",
                      "type": "string"
                    },
                    "order_columns": {
                      "description": "A list of allowed columns to sort",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/SupersetUserApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Security Users"
        ]
      },
      "post": {
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SupersetUserApi.post"
              }
            }
          },
          "description": "Model schema",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "$ref": "#/components/schemas/SupersetUserApi.post"
                    }
                  },
                  "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": [
          "Security Users"
        ]
      }
    },
    "/api/v1/security/users/_info": {
      "get": {
        "description": "Get metadata information about this API resource",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_info_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "add_columns": {
                      "type": "object"
                    },
                    "edit_columns": {
                      "type": "object"
                    },
                    "filters": {
                      "properties": {
                        "column_name": {
                          "items": {
                            "properties": {
                              "name": {
                                "description": "The filter name. Will be translated by babel",
                                "type": "string"
                              },
                              "operator": {
                                "description": "The filter operation key to use on list filters",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "permissions": {
                      "description": "The user permissions for this API resource",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Security Users"
        ]
      }
    },
    "/api/v1/security/users/{pk}": {
      "delete": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item deleted"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Security Users"
        ]
      },
      "get": {
        "description": "Get an item model",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_item_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "id": {
                      "description": "The item id",
                      "type": "string"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "result": {
                      "$ref": "#/components/schemas/SupersetUserApi.get"
                    },
                    "show_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "show_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "Show Item Details",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Security Users"
        ]
      },
      "put": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SupersetUserApi.put"
              }
            }
          },
          "description": "Model schema",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "$ref": "#/components/schemas/SupersetUserApi.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": [
          "Security Users"
        ]
      }
    },
    "/api/v1/sqllab/": {
      "get": {
        "description": "Assembles SQLLab bootstrap data (active_tab, databases, queries, tab_state_ids) in a single endpoint. The data can be assembled from the current user's id.",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SQLLabBootstrapSchema"
                }
              }
            },
            "description": "Returns the initial bootstrap data for SqlLab"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get the bootstrap data for SqlLab page",
        "tags": [
          "SQL Lab"
        ]
      }
    },
    "/api/v1/sqllab/estimate/": {
      "post": {
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EstimateQueryCostSchema"
              }
            }
          },
          "description": "SQL query and params",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Query estimation result"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Estimate the SQL query execution cost",
        "tags": [
          "SQL Lab"
        ]
      }
    },
    "/api/v1/sqllab/execute/": {
      "post": {
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExecutePayloadSchema"
              }
            }
          },
          "description": "SQL query and params",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryExecutionResponseSchema"
                }
              }
            },
            "description": "Query execution result"
          },
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryExecutionResponseSchema"
                }
              }
            },
            "description": "Query execution result, query still running"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Execute a SQL query",
        "tags": [
          "SQL Lab"
        ]
      }
    },
    "/api/v1/sqllab/export/{client_id}/": {
      "get": {
        "parameters": [
          {
            "description": "The SQL query result identifier",
            "in": "path",
            "name": "client_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "SQL query results"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Export the SQL query results to a CSV",
        "tags": [
          "SQL Lab"
        ]
      }
    },
    "/api/v1/sqllab/format_sql/": {
      "post": {
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FormatQueryPayloadSchema"
              }
            }
          },
          "description": "SQL query",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Format SQL result"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Format SQL code",
        "tags": [
          "SQL Lab"
        ]
      }
    },
    "/api/v1/sqllab/permalink": {
      "post": {
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExplorePermalinkStateSchema"
              }
            }
          },
          "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": []
          }
        ],
        "summary": "Create a new permanent link",
        "tags": [
          "SQL Lab Permanent Link"
        ]
      }
    },
    "/api/v1/sqllab/permalink/{key}": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "state": {
                      "description": "The stored state",
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Returns the stored form_data."
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get permanent link state for SQLLab editor.",
        "tags": [
          "SQL Lab Permanent Link"
        ]
      }
    },
    "/api/v1/sqllab/results/": {
      "get": {
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/sql_lab_get_results_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryExecutionResponseSchema"
                }
              }
            },
            "description": "SQL query execution result"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "410": {
            "$ref": "#/components/responses/410"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get the result of a SQL query execution",
        "tags": [
          "SQL Lab"
        ]
      }
    },
    "/api/v1/tag/": {
      "delete": {
        "description": "Bulk deletes tags. This will remove all tagged objects with this tag.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/delete_tags_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Deletes multiple Tags"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Bulk delete tags",
        "tags": [
          "Tags"
        ]
      },
      "get": {
        "description": "Get a list of tags, use Rison or JSON query parameters for filtering, sorting, pagination and  for selecting specific columns and metadata.",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_list_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "The total record count on the backend",
                      "type": "number"
                    },
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "ids": {
                      "description": "A list of item ids, useful when you don't know the column id",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "list_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "list_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "List Items",
                      "type": "string"
                    },
                    "order_columns": {
                      "description": "A list of allowed columns to sort",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "result": {
                      "description": "The result from the get list query",
                      "items": {
                        "$ref": "#/components/schemas/TagRestApi.get_list"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Items from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a list of tags",
        "tags": [
          "Tags"
        ]
      },
      "post": {
        "description": "Create a new Tag",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TagRestApi.post"
              }
            }
          },
          "description": "Tag schema",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "result": {
                      "$ref": "#/components/schemas/TagRestApi.post"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Tag added"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Create a tag",
        "tags": [
          "Tags"
        ]
      }
    },
    "/api/v1/tag/_info": {
      "get": {
        "description": "Get metadata information about this API resource",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_info_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "add_columns": {
                      "type": "object"
                    },
                    "edit_columns": {
                      "type": "object"
                    },
                    "filters": {
                      "properties": {
                        "column_name": {
                          "items": {
                            "properties": {
                              "name": {
                                "description": "The filter name. Will be translated by babel",
                                "type": "string"
                              },
                              "operator": {
                                "description": "The filter operation key to use on list filters",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "permissions": {
                      "description": "The user permissions for this API resource",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get metadata information about tag API endpoints",
        "tags": [
          "Tags"
        ]
      }
    },
    "/api/v1/tag/bulk_create": {
      "post": {
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TagPostBulkSchema"
              }
            }
          },
          "description": "Tag schema",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TagPostBulkResponseSchema"
                }
              }
            },
            "description": "Bulk created tags and tagged objects"
          },
          "302": {
            "description": "Redirects to the current digest"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Bulk create tags and tagged objects",
        "tags": [
          "Tags"
        ]
      }
    },
    "/api/v1/tag/favorite_status/": {
      "get": {
        "description": "Get favorited tags for current user",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_fav_star_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetFavStarIdsSchema"
                }
              }
            },
            "description": "None"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Tags"
        ]
      }
    },
    "/api/v1/tag/get_objects/": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "tag_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "items": {
                        "$ref": "#/components/schemas/TaggedObjectEntityResponseSchema"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "List of tagged objects associated with a Tag"
          },
          "302": {
            "description": "Redirects to the current digest"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get all objects associated with a tag",
        "tags": [
          "Tags"
        ]
      }
    },
    "/api/v1/tag/related/{column_name}": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "column_name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_related_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RelatedResponseSchema"
                }
              }
            },
            "description": "Related column data"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get related fields data",
        "tags": [
          "Tags"
        ]
      }
    },
    "/api/v1/tag/{object_type}/{object_id}/": {
      "post": {
        "description": "Adds tags to an object. Creates new tags if they do not already exist.",
        "parameters": [
          {
            "in": "path",
            "name": "object_type",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "object_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "tags": {
                    "description": "list of tag names to add to object",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "type": "object"
              }
            }
          },
          "description": "Tag schema",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Tag added"
          },
          "302": {
            "description": "Redirects to the current digest"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Add tags to an object",
        "tags": [
          "Tags"
        ]
      }
    },
    "/api/v1/tag/{object_type}/{object_id}/{tag}/": {
      "delete": {
        "parameters": [
          {
            "in": "path",
            "name": "tag",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "object_type",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "object_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Chart delete"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Delete a tagged object",
        "tags": [
          "Tags"
        ]
      }
    },
    "/api/v1/tag/{pk}": {
      "delete": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item deleted"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Delete a tag",
        "tags": [
          "Tags"
        ]
      },
      "get": {
        "description": "Get an item model",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_item_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "description_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The description for the column name. Will be translated by babel",
                          "example": "A Nice description for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "id": {
                      "description": "The item id",
                      "type": "string"
                    },
                    "label_columns": {
                      "properties": {
                        "column_name": {
                          "description": "The label for the column name. Will be translated by babel",
                          "example": "A Nice label for the column",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "result": {
                      "$ref": "#/components/schemas/TagRestApi.get"
                    },
                    "show_columns": {
                      "description": "A list of columns",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "show_title": {
                      "description": "A title to render. Will be translated by babel",
                      "example": "Show Item Details",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Item from Model"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get a tag detail information",
        "tags": [
          "Tags"
        ]
      },
      "put": {
        "description": "Changes a Tag.",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TagRestApi.put"
              }
            }
          },
          "description": "Chart schema",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "result": {
                      "$ref": "#/components/schemas/TagRestApi.put"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Tag changed"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Update a tag",
        "tags": [
          "Tags"
        ]
      }
    },
    "/api/v1/tag/{pk}/favorites/": {
      "delete": {
        "description": "Remove the tag from the user favorite list",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Tag removed from favorites"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Tags"
        ]
      },
      "post": {
        "description": "Marks the tag as favorite for the current user",
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Tag added to favorites"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "tags": [
          "Tags"
        ]
      }
    },
    "/api/v1/theme/": {
      "delete": {
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_delete_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Themes bulk delete"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Bulk delete themes",
        "tags": [
          "Themes"
        ]
      },
      "get": {
        "description": "Gets a list of themes, 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/ThemeRestApi.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": []
          }
        ],
        "summary": "Get a list of themes",
        "tags": [
          "Themes"
        ]
      },
      "post": {
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ThemeRestApi.post"
              }
            }
          },
          "description": "Theme schema",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "result": {
                      "$ref": "#/components/schemas/ThemeRestApi.post"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Theme created"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Create a theme",
        "tags": [
          "Themes"
        ]
      }
    },
    "/api/v1/theme/_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": []
          }
        ],
        "summary": "Get metadata information about this API resource",
        "tags": [
          "Themes"
        ]
      }
    },
    "/api/v1/theme/export/": {
      "get": {
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_export_ids_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/zip": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Theme export"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Download multiple themes as YAML files",
        "tags": [
          "Themes"
        ]
      }
    },
    "/api/v1/theme/import/": {
      "post": {
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "formData": {
                    "format": "binary",
                    "type": "string"
                  },
                  "overwrite": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Theme imported"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Import themes from a ZIP file",
        "tags": [
          "Themes"
        ]
      }
    },
    "/api/v1/theme/related/{column_name}": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "column_name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_related_schema"
                }
              }
            },
            "in": "query",
            "name": "q"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RelatedResponseSchema"
                }
              }
            },
            "description": "Related column data"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Get related fields data",
        "tags": [
          "Themes"
        ]
      }
    },
    "/api/v1/theme/unset_system_dark": {
      "delete": {
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "System dark theme cleared"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Clear the system dark theme",
        "tags": [
          "Themes"
        ]
      }
    },
    "/api/v1/theme/unset_system_default": {
      "delete": {
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "result": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "System default theme cleared"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Clear the system default theme",
        "tags": [
          "Themes"
        ]
      }
    },
    "/api/v1/theme/{pk}": {
      "delete": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Theme deleted"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Delete a theme",
        "tags": [
          "Themes"
        ]
      },
      "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/ThemeRestApi.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": []
          }
        ],
        "summary": "Get a theme",
        "tags": [
          "Themes"
        ]
      },
      "put": {
        "parameters": [
          {
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ThemeRestApi.put"
              }
            }
          },
          "description": "Theme schema",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "result": {
                      "$ref": "#/components/schemas/ThemeRestApi.put"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Theme updated"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Update a theme",
        "tags": [
          "Themes"
        ]
      }
    },
    "/api/v1/theme/{pk}/set_system_dark": {
      "put": {
        "parameters": [
          {
            "description": "The theme id",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "result": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Theme successfully set as system dark"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Set a theme as the system dark theme",
        "tags": [
          "Themes"
        ]
      }
    },
    "/api/v1/theme/{pk}/set_system_default": {
      "put": {
        "parameters": [
          {
            "description": "The theme id",
            "in": "path",
            "name": "pk",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "result": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Theme successfully set as system default"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "jwt": []
          }
        ],
        "summary": "Set a theme as the system default theme",
        "tags": [
          "Themes"
        ]
      }
    },
    "/api/v1/user/{user_id}/avatar.png": {
      "get": {
        "description": "Gets the avatar URL for the user with the given ID, or returns a 401 error if the user is unauthenticated.",
        "parameters": [
          {
            "description": "The ID of the user",
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "301": {
            "description": "A redirect to the user's avatar URL"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        },
        "summary": "Get the user avatar",
        "tags": [
          "User"
        ]
      }
    },
    "/api/{version}/_openapi": {
      "get": {
        "description": "Get the OpenAPI spec for a specific API version",
        "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://superset.bebesh.ru/"
    }
  ]
}
