openapi: 3.0.2
servers:
  - url: http://superset.apache.local
  - url: /api/v1
x-hasEquivalentPaths: true
info:
  description: Superset
  title: Superset
  version: v1
  x-apisguru-categories:
    - enterprise
  x-origin:
    - format: openapi
      url: https://raw.githubusercontent.com/apache/superset/master/docs/src/resources/openapi.json
      version: "3.0"
  x-providerName: superset.apache.local
  x-serviceName: superset
paths:
  /annotation_layer/:
    delete:
      description: Deletes multiple annotation layers in a bulk operation.
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_delete_ids_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: CSS templates bulk delete
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Annotation Layers
    get:
      description: Get a list of Annotation layers, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_list_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  count:
                    description: The total record count on the backend
                    type: number
                  description_columns:
                    properties:
                      column_name:
                        description: The description for the column name. Will be translated by babel
                        example: A Nice description for the column
                        type: string
                    type: object
                  ids:
                    description: A list of item ids, useful when you don't know the column id
                    items:
                      type: string
                    type: array
                  label_columns:
                    properties:
                      column_name:
                        description: The label for the column name. Will be translated by babel
                        example: A Nice label for the column
                        type: string
                    type: object
                  list_columns:
                    description: A list of columns
                    items:
                      type: string
                    type: array
                  list_title:
                    description: A title to render. Will be translated by babel
                    example: List Items
                    type: string
                  order_columns:
                    description: A list of allowed columns to sort
                    items:
                      type: string
                    type: array
                  result:
                    description: The result from the get list query
                    items:
                      $ref: "#/components/schemas/AnnotationLayerRestApi.get_list"
                    type: array
                type: object
          description: Items from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Annotation Layers
    post:
      description: Create an Annotation layer
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnnotationLayerRestApi.post"
        description: Annotation Layer schema
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  id:
                    type: number
                  result:
                    $ref: "#/components/schemas/AnnotationLayerRestApi.post"
                type: object
          description: Annotation added
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Annotation Layers
  /annotation_layer/_info:
    get:
      description: Get metadata information about this API resource
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_info_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  add_columns:
                    type: object
                  edit_columns:
                    type: object
                  filters:
                    properties:
                      column_name:
                        items:
                          properties:
                            name:
                              description: The filter name. Will be translated by babel
                              type: string
                            operator:
                              description: The filter operation key to use on list filters
                              type: string
                          type: object
                        type: array
                    type: object
                  permissions:
                    description: The user permissions for this API resource
                    items:
                      type: string
                    type: array
                type: object
          description: Item from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Annotation Layers
  "/annotation_layer/related/{column_name}":
    get:
      parameters:
        - in: path
          name: column_name
          required: true
          schema:
            type: string
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_related_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RelatedResponseSchema"
          description: Related column data
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Annotation Layers
  "/annotation_layer/{pk}":
    delete:
      description: Delete Annotation layer
      parameters:
        - description: The annotation layer pk for this annotation
          in: path
          name: pk
          required: true
          schema:
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: Item deleted
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Annotation Layers
    get:
      description: Get an Annotation layer
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_item_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  description_columns:
                    properties:
                      column_name:
                        description: The description for the column name. Will be translated by babel
                        example: A Nice description for the column
                        type: string
                    type: object
                  id:
                    description: The item id
                    type: string
                  label_columns:
                    properties:
                      column_name:
                        description: The label for the column name. Will be translated by babel
                        example: A Nice label for the column
                        type: string
                    type: object
                  result:
                    $ref: "#/components/schemas/AnnotationLayerRestApi.get"
                  show_columns:
                    description: A list of columns
                    items:
                      type: string
                    type: array
                  show_title:
                    description: A title to render. Will be translated by babel
                    example: Show Item Details
                    type: string
                type: object
          description: Item from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Annotation Layers
    put:
      description: Update an Annotation layer
      parameters:
        - description: The annotation layer pk for this annotation
          in: path
          name: pk
          required: true
          schema:
            type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnnotationLayerRestApi.put"
        description: Annotation schema
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  id:
                    type: number
                  result:
                    $ref: "#/components/schemas/AnnotationLayerRestApi.put"
                type: object
          description: Annotation changed
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Annotation Layers
  "/annotation_layer/{pk}/annotation/":
    delete:
      description: Deletes multiple annotation in a bulk operation.
      parameters:
        - description: The annotation layer pk for this annotation
          in: path
          name: pk
          required: true
          schema:
            type: integer
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_delete_ids_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: Annotations bulk delete
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Annotation Layers
    get:
      description: Get a list of Annotation layers, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.
      parameters:
        - description: The annotation layer id for this annotation
          in: path
          name: pk
          required: true
          schema:
            type: integer
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_list_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  count:
                    description: The total record count on the backend
                    type: number
                  ids:
                    description: A list of annotation ids
                    items:
                      type: string
                    type: array
                  result:
                    description: The result from the get list query
                    items:
                      $ref: "#/components/schemas/AnnotationRestApi.get_list"
                    type: array
                type: object
          description: Items from Annotations
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Annotation Layers
    post:
      description: Create an Annotation layer
      parameters:
        - description: The annotation layer pk for this annotation
          in: path
          name: pk
          required: true
          schema:
            type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnnotationRestApi.post"
        description: Annotation schema
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  id:
                    type: number
                  result:
                    $ref: "#/components/schemas/AnnotationRestApi.post"
                type: object
          description: Annotation added
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Annotation Layers
  "/annotation_layer/{pk}/annotation/{annotation_id}":
    delete:
      description: Delete Annotation layer
      parameters:
        - description: The annotation layer pk for this annotation
          in: path
          name: pk
          required: true
          schema:
            type: integer
        - description: The annotation pk for this annotation
          in: path
          name: annotation_id
          required: true
          schema:
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: Item deleted
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Annotation Layers
    get:
      description: Get an Annotation layer
      parameters:
        - description: The annotation layer pk for this annotation
          in: path
          name: pk
          required: true
          schema:
            type: integer
        - description: The annotation pk
          in: path
          name: annotation_id
          required: true
          schema:
            type: integer
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_item_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  id:
                    description: The item id
                    type: string
                  result:
                    $ref: "#/components/schemas/AnnotationRestApi.get"
                type: object
          description: Item from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Annotation Layers
    put:
      description: Update an Annotation layer
      parameters:
        - description: The annotation layer pk for this annotation
          in: path
          name: pk
          required: true
          schema:
            type: integer
        - description: The annotation pk for this annotation
          in: path
          name: annotation_id
          required: true
          schema:
            type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnnotationRestApi.put"
        description: Annotation schema
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  id:
                    type: number
                  result:
                    $ref: "#/components/schemas/AnnotationRestApi.put"
                type: object
          description: Annotation changed
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Annotation Layers
  /async_event/:
    get:
      description: Reads off of the Redis events stream, using the user's JWT token and optional query params for last event received.
      parameters:
        - description: Last ID received by the client
          in: query
          name: last_id
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  result:
                    items:
                      properties:
                        channel_id:
                          type: string
                        errors:
                          items:
                            type: object
                          type: array
                        id:
                          type: string
                        job_id:
                          type: string
                        result_url:
                          type: string
                        status:
                          type: string
                        user_id:
                          type: integer
                      type: object
                    type: array
                type: object
          description: Async event results
        "401":
          $ref: "#/components/responses/401"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - AsyncEventsRestApi
  /cachekey/invalidate:
    post:
      description: Takes a list of datasources, finds the associated cache records and invalidates them and removes the database records
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CacheInvalidationRequestSchema"
        description: A list of datasources uuid or the tuples of database and datasource names
        required: true
      responses:
        "201":
          description: cache was successfully invalidated
        "400":
          $ref: "#/components/responses/400"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - CacheRestApi
  /chart/:
    delete:
      description: Deletes multiple Charts in a bulk operation.
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_delete_ids_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: Charts bulk delete
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Charts
    get:
      description: Get a list of charts, use Rison or JSON query parameters for filtering, sorting, pagination and  for selecting specific columns and metadata.
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_list_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  count:
                    description: The total record count on the backend
                    type: number
                  description_columns:
                    properties:
                      column_name:
                        description: The description for the column name. Will be translated by babel
                        example: A Nice description for the column
                        type: string
                    type: object
                  ids:
                    description: A list of item ids, useful when you don't know the column id
                    items:
                      type: string
                    type: array
                  label_columns:
                    properties:
                      column_name:
                        description: The label for the column name. Will be translated by babel
                        example: A Nice label for the column
                        type: string
                    type: object
                  list_columns:
                    description: A list of columns
                    items:
                      type: string
                    type: array
                  list_title:
                    description: A title to render. Will be translated by babel
                    example: List Items
                    type: string
                  order_columns:
                    description: A list of allowed columns to sort
                    items:
                      type: string
                    type: array
                  result:
                    description: The result from the get list query
                    items:
                      $ref: "#/components/schemas/ChartRestApi.get_list"
                    type: array
                type: object
          description: Items from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Charts
    post:
      description: Create a new Chart.
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ChartRestApi.post"
        description: Chart schema
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  id:
                    type: number
                  result:
                    $ref: "#/components/schemas/ChartRestApi.post"
                type: object
          description: Chart added
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Charts
  /chart/_info:
    get:
      description: Several metadata information about chart API endpoints.
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_info_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  add_columns:
                    type: object
                  edit_columns:
                    type: object
                  filters:
                    properties:
                      column_name:
                        items:
                          properties:
                            name:
                              description: The filter name. Will be translated by babel
                              type: string
                            operator:
                              description: The filter operation key to use on list filters
                              type: string
                          type: object
                        type: array
                    type: object
                  permissions:
                    description: The user permissions for this API resource
                    items:
                      type: string
                    type: array
                type: object
          description: Item from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Charts
  /chart/data:
    post:
      description: Takes a query context constructed in the client and returns payload data response for the given query.
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ChartDataQueryContextSchema"
        description: A query context consists of a datasource from which to fetch data and one or many query objects.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ChartDataResponseSchema"
          description: Query result
        "202":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ChartDataAsyncResponseSchema"
          description: Async job details
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Charts
  "/chart/data/{cache_key}":
    get:
      description: Takes a query context cache key and returns payload data response for the given query.
      parameters:
        - in: path
          name: cache_key
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ChartDataResponseSchema"
          description: Query result
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Charts
  /chart/export/:
    get:
      description: Exports multiple charts and downloads them as YAML files
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_export_ids_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/zip:
              schema:
                format: binary
                type: string
          description: A zip file with chart(s), dataset(s) and database(s) as YAML
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Charts
  /chart/favorite_status/:
    get:
      description: Check favorited dashboards for current user
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_fav_star_ids_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetFavStarIdsSchema"
          description: None
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Charts
  /chart/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 file
                  type: string
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: Chart import result
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Charts
  "/chart/related/{column_name}":
    get:
      description: Get a list of all possible owners for a chart. Use `owners` has the `column_name` parameter
      parameters:
        - in: path
          name: column_name
          required: true
          schema:
            type: string
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_related_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RelatedResponseSchema"
          description: Related column data
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Charts
  "/chart/{pk}":
    delete:
      description: Deletes a Chart.
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: Chart delete
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Charts
    get:
      description: Get a chart detail information.
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_item_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  description_columns:
                    properties:
                      column_name:
                        description: The description for the column name. Will be translated by babel
                        example: A Nice description for the column
                        type: string
                    type: object
                  id:
                    description: The item id
                    type: string
                  label_columns:
                    properties:
                      column_name:
                        description: The label for the column name. Will be translated by babel
                        example: A Nice label for the column
                        type: string
                    type: object
                  result:
                    $ref: "#/components/schemas/ChartRestApi.get"
                  show_columns:
                    description: A list of columns
                    items:
                      type: string
                    type: array
                  show_title:
                    description: A title to render. Will be translated by babel
                    example: Show Item Details
                    type: string
                type: object
          description: Item from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Charts
    put:
      description: Changes a Chart.
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ChartRestApi.put"
        description: Chart schema
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  id:
                    type: number
                  result:
                    $ref: "#/components/schemas/ChartRestApi.put"
                type: object
          description: Chart changed
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Charts
  "/chart/{pk}/cache_screenshot/":
    get:
      description: Compute and cache a screenshot.
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/screenshot_query_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ChartCacheScreenshotResponseSchema"
          description: Chart async result
        "302":
          description: Redirects to the current digest
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Charts
  "/chart/{pk}/data/":
    get:
      description: Takes a chart ID and uses the query context stored when the chart was saved to return payload data response.
      parameters:
        - description: The chart ID
          in: path
          name: pk
          required: true
          schema:
            type: integer
        - description: The format in which the data should be returned
          in: query
          name: format
          schema:
            type: string
        - description: The type in which the data should be returned
          in: query
          name: type
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ChartDataResponseSchema"
          description: Query result
        "202":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ChartDataAsyncResponseSchema"
          description: Async job details
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Charts
  "/chart/{pk}/screenshot/{digest}/":
    get:
      description: Get a computed screenshot from cache.
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
        - in: path
          name: digest
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            image/*:
              schema:
                format: binary
                type: string
          description: Chart thumbnail image
        "302":
          description: Redirects to the current digest
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Charts
  "/chart/{pk}/thumbnail/{digest}/":
    get:
      description: Compute or get already computed chart thumbnail from cache.
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
        - in: path
          name: digest
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            image/*:
              schema:
                format: binary
                type: string
          description: Chart thumbnail image
        "302":
          description: Redirects to the current digest
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Charts
  /css_template/:
    delete:
      description: Deletes multiple css templates in a bulk operation.
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_delete_ids_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: CSS templates bulk delete
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - CSS Templates
    get:
      description: Get a list of CSS templates, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_list_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  count:
                    description: The total record count on the backend
                    type: number
                  description_columns:
                    properties:
                      column_name:
                        description: The description for the column name. Will be translated by babel
                        example: A Nice description for the column
                        type: string
                    type: object
                  ids:
                    description: A list of item ids, useful when you don't know the column id
                    items:
                      type: string
                    type: array
                  label_columns:
                    properties:
                      column_name:
                        description: The label for the column name. Will be translated by babel
                        example: A Nice label for the column
                        type: string
                    type: object
                  list_columns:
                    description: A list of columns
                    items:
                      type: string
                    type: array
                  list_title:
                    description: A title to render. Will be translated by babel
                    example: List Items
                    type: string
                  order_columns:
                    description: A list of allowed columns to sort
                    items:
                      type: string
                    type: array
                  result:
                    description: The result from the get list query
                    items:
                      $ref: "#/components/schemas/CssTemplateRestApi.get_list"
                    type: array
                type: object
          description: Items from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - CSS Templates
    post:
      description: Create a CSS template
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CssTemplateRestApi.post"
        description: Model schema
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  id:
                    type: string
                  result:
                    $ref: "#/components/schemas/CssTemplateRestApi.post"
                type: object
          description: Item inserted
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - CSS Templates
  /css_template/_info:
    get:
      description: Get metadata information about this API resource
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_info_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  add_columns:
                    type: object
                  edit_columns:
                    type: object
                  filters:
                    properties:
                      column_name:
                        items:
                          properties:
                            name:
                              description: The filter name. Will be translated by babel
                              type: string
                            operator:
                              description: The filter operation key to use on list filters
                              type: string
                          type: object
                        type: array
                    type: object
                  permissions:
                    description: The user permissions for this API resource
                    items:
                      type: string
                    type: array
                type: object
          description: Item from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - CSS Templates
  "/css_template/related/{column_name}":
    get:
      parameters:
        - in: path
          name: column_name
          required: true
          schema:
            type: string
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_related_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RelatedResponseSchema"
          description: Related column data
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - CSS Templates
  "/css_template/{pk}":
    delete:
      description: Delete CSS template
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: Item deleted
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - CSS Templates
    get:
      description: Get a CSS template
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_item_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  description_columns:
                    properties:
                      column_name:
                        description: The description for the column name. Will be translated by babel
                        example: A Nice description for the column
                        type: string
                    type: object
                  id:
                    description: The item id
                    type: string
                  label_columns:
                    properties:
                      column_name:
                        description: The label for the column name. Will be translated by babel
                        example: A Nice label for the column
                        type: string
                    type: object
                  result:
                    $ref: "#/components/schemas/CssTemplateRestApi.get"
                  show_columns:
                    description: A list of columns
                    items:
                      type: string
                    type: array
                  show_title:
                    description: A title to render. Will be translated by babel
                    example: Show Item Details
                    type: string
                type: object
          description: Item from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - CSS Templates
    put:
      description: Update a CSS template
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CssTemplateRestApi.put"
        description: Model schema
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  result:
                    $ref: "#/components/schemas/CssTemplateRestApi.put"
                type: object
          description: Item changed
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - CSS Templates
  /dashboard/:
    delete:
      description: Deletes multiple Dashboards in a bulk operation.
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_delete_ids_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: Dashboard bulk delete
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Dashboards
    get:
      description: Get a list of dashboards, use Rison or JSON query parameters for filtering, sorting, pagination and  for selecting specific columns and metadata.
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_list_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  count:
                    description: The total record count on the backend
                    type: number
                  description_columns:
                    properties:
                      column_name:
                        description: The description for the column name. Will be translated by babel
                        example: A Nice description for the column
                        type: string
                    type: object
                  ids:
                    description: A list of item ids, useful when you don't know the column id
                    items:
                      type: string
                    type: array
                  label_columns:
                    properties:
                      column_name:
                        description: The label for the column name. Will be translated by babel
                        example: A Nice label for the column
                        type: string
                    type: object
                  list_columns:
                    description: A list of columns
                    items:
                      type: string
                    type: array
                  list_title:
                    description: A title to render. Will be translated by babel
                    example: List Items
                    type: string
                  order_columns:
                    description: A list of allowed columns to sort
                    items:
                      type: string
                    type: array
                  result:
                    description: The result from the get list query
                    items:
                      $ref: "#/components/schemas/DashboardRestApi.get_list"
                    type: array
                type: object
          description: Items from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Dashboards
    post:
      description: Create a new Dashboard.
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DashboardRestApi.post"
        description: Dashboard schema
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  id:
                    type: number
                  result:
                    $ref: "#/components/schemas/DashboardRestApi.post"
                type: object
          description: Dashboard added
        "302":
          description: Redirects to the current digest
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Dashboards
  /dashboard/_info:
    get:
      description: Several metadata information about dashboard API endpoints.
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_info_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  add_columns:
                    type: object
                  edit_columns:
                    type: object
                  filters:
                    properties:
                      column_name:
                        items:
                          properties:
                            name:
                              description: The filter name. Will be translated by babel
                              type: string
                            operator:
                              description: The filter operation key to use on list filters
                              type: string
                          type: object
                        type: array
                    type: object
                  permissions:
                    description: The user permissions for this API resource
                    items:
                      type: string
                    type: array
                type: object
          description: Item from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Dashboards
  /dashboard/export/:
    get:
      description: Exports multiple Dashboards and downloads them as YAML files.
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_export_ids_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            text/plain:
              schema:
                type: string
          description: Dashboard export
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Dashboards
  /dashboard/favorite_status/:
    get:
      description: Check favorited dashboards for current user
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_fav_star_ids_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetFavStarIdsSchema"
          description: None
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Dashboards
  /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 databases?
                  type: boolean
                passwords:
                  description: JSON map of passwords for each file
                  type: string
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: Dashboard import result
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Dashboards
  "/dashboard/related/{column_name}":
    get:
      description: Get a list of all possible owners for a dashboard.
      parameters:
        - in: path
          name: column_name
          required: true
          schema:
            type: string
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_related_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RelatedResponseSchema"
          description: Related column data
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Dashboards
  "/dashboard/{id_or_slug}":
    get:
      description: Get a dashboard detail information.
      parameters:
        - description: Either the id of the dashboard, or its slug
          in: path
          name: id_or_slug
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  result:
                    $ref: "#/components/schemas/DashboardGetResponseSchema"
                type: object
          description: Dashboard
        "302":
          description: Redirects to the current digest
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
      security:
        - jwt: []
      tags:
        - Dashboards
  "/dashboard/{id_or_slug}/charts":
    get:
      description: Get the chart definitions for a given dashboard
      parameters:
        - in: path
          name: id_or_slug
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  result:
                    items:
                      $ref: "#/components/schemas/ChartEntityResponseSchema"
                    type: array
                type: object
          description: Dashboard chart definitions
        "302":
          description: Redirects to the current digest
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
      security:
        - jwt: []
      tags:
        - Dashboards
  "/dashboard/{id_or_slug}/datasets":
    get:
      description: Returns a list of a dashboard's datasets. Each dataset includes only the information necessary to render the dashboard's charts.
      parameters:
        - description: Either the id of the dashboard, or its slug
          in: path
          name: id_or_slug
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  result:
                    items:
                      $ref: "#/components/schemas/DashboardDatasetSchema"
                    type: array
                type: object
          description: Dashboard dataset definitions
        "302":
          description: Redirects to the current digest
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
      security:
        - jwt: []
      tags:
        - Dashboards
  "/dashboard/{pk}":
    delete:
      description: Deletes a Dashboard.
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: Dashboard deleted
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Dashboards
    put:
      description: Changes a Dashboard.
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DashboardRestApi.put"
        description: Dashboard schema
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  id:
                    type: number
                  result:
                    $ref: "#/components/schemas/DashboardRestApi.put"
                type: object
          description: Dashboard changed
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Dashboards
  "/dashboard/{pk}/thumbnail/{digest}/":
    get:
      description: Compute async or get already computed dashboard thumbnail from cache.
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
        - description: A hex digest that makes this dashboard unique
          in: path
          name: digest
          required: true
          schema:
            type: string
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/thumbnail_query_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            image/*:
              schema:
                format: binary
                type: string
          description: Dashboard thumbnail image
        "202":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: Thumbnail does not exist on cache, fired async to compute
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Dashboards
  /database/:
    get:
      description: Get a list of models
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_list_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  count:
                    description: The total record count on the backend
                    type: number
                  description_columns:
                    properties:
                      column_name:
                        description: The description for the column name. Will be translated by babel
                        example: A Nice description for the column
                        type: string
                    type: object
                  ids:
                    description: A list of item ids, useful when you don't know the column id
                    items:
                      type: string
                    type: array
                  label_columns:
                    properties:
                      column_name:
                        description: The label for the column name. Will be translated by babel
                        example: A Nice label for the column
                        type: string
                    type: object
                  list_columns:
                    description: A list of columns
                    items:
                      type: string
                    type: array
                  list_title:
                    description: A title to render. Will be translated by babel
                    example: List Items
                    type: string
                  order_columns:
                    description: A list of allowed columns to sort
                    items:
                      type: string
                    type: array
                  result:
                    description: The result from the get list query
                    items:
                      $ref: "#/components/schemas/DatabaseRestApi.get_list"
                    type: array
                type: object
          description: Items from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Database
    post:
      description: Create a new Database.
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DatabaseRestApi.post"
        description: Database schema
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  id:
                    type: number
                  result:
                    $ref: "#/components/schemas/DatabaseRestApi.post"
                type: object
          description: Database added
        "302":
          description: Redirects to the current digest
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Database
  /database/_info:
    get:
      description: Get metadata information about this API resource
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_info_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  add_columns:
                    type: object
                  edit_columns:
                    type: object
                  filters:
                    properties:
                      column_name:
                        items:
                          properties:
                            name:
                              description: The filter name. Will be translated by babel
                              type: string
                            operator:
                              description: The filter operation key to use on list filters
                              type: string
                          type: object
                        type: array
                    type: object
                  permissions:
                    description: The user permissions for this API resource
                    items:
                      type: string
                    type: array
                type: object
          description: Item from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Database
  /database/available/:
    get:
      description: Get names of databases currently available
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  properties:
                    available_drivers:
                      description: Installed drivers for the engine
                      items:
                        type: string
                      type: array
                    default_driver:
                      description: Default driver for the engine
                      type: string
                    engine:
                      description: Name of the SQLAlchemy engine
                      type: string
                    name:
                      description: Name of the database
                      type: string
                    parameters:
                      description: JSON schema defining the needed parameters
                      type: object
                    preferred:
                      description: Is the database preferred?
                      type: boolean
                    sqlalchemy_uri_placeholder:
                      description: Example placeholder for the SQLAlchemy URI
                      type: string
                  type: object
                type: array
          description: Database names
        "400":
          $ref: "#/components/responses/400"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Database
  /database/export/:
    get:
      description: Download database(s) and associated dataset(s) as a zip file
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_export_ids_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/zip:
              schema:
                format: binary
                type: string
          description: A zip file with database(s) and dataset(s) as YAML
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Database
  /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 file
                  type: string
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: Database import result
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Database
  /database/test_connection:
    post:
      description: Tests a database connection
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DatabaseTestConnectionSchema"
        description: Database schema
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: Database Test Connection
        "400":
          $ref: "#/components/responses/400"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Database
  /database/validate_parameters:
    post:
      description: Validates parameters used to connect to a database
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DatabaseValidateParametersSchema"
        description: DB-specific parameters
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: Database Test Connection
        "400":
          $ref: "#/components/responses/400"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Database
  "/database/{pk}":
    delete:
      description: Deletes a Database.
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: Database deleted
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Database
    get:
      description: Get an item model
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_item_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  description_columns:
                    properties:
                      column_name:
                        description: The description for the column name. Will be translated by babel
                        example: A Nice description for the column
                        type: string
                    type: object
                  id:
                    description: The item id
                    type: string
                  label_columns:
                    properties:
                      column_name:
                        description: The label for the column name. Will be translated by babel
                        example: A Nice label for the column
                        type: string
                    type: object
                  result:
                    $ref: "#/components/schemas/DatabaseRestApi.get"
                  show_columns:
                    description: A list of columns
                    items:
                      type: string
                    type: array
                  show_title:
                    description: A title to render. Will be translated by babel
                    example: Show Item Details
                    type: string
                type: object
          description: Item from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Database
    put:
      description: Changes a Database.
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DatabaseRestApi.put"
        description: Database schema
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  id:
                    type: number
                  result:
                    $ref: "#/components/schemas/DatabaseRestApi.put"
                type: object
          description: Database changed
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Database
  "/database/{pk}/function_names/":
    get:
      description: Get function names supported by a database
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatabaseFunctionNamesResponse"
          description: Query result
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Database
  "/database/{pk}/related_objects/":
    get:
      description: Get charts and dashboards count associated to a database
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatabaseRelatedObjectsResponse"
          description: Query result
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Database
  "/database/{pk}/schemas/":
    get:
      description: Get all schemas from a database
      parameters:
        - description: The database id
          in: path
          name: pk
          required: true
          schema:
            type: integer
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/database_schemas_query_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SchemasResponseSchema"
          description: A List of all schemas from the database
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Database
  "/database/{pk}/select_star/{table_name}/":
    get:
      description: Get database select star for table
      parameters:
        - description: The database id
          in: path
          name: pk
          required: true
          schema:
            type: integer
        - description: Table name
          in: path
          name: table_name
          required: true
          schema:
            type: string
        - description: Table schema
          in: query
          name: schema_name
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SelectStarResponseSchema"
          description: SQL statement for a select star for table
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Database
  "/database/{pk}/select_star/{table_name}/{schema_name}/":
    get:
      description: Get database select star for table
      parameters:
        - description: The database id
          in: path
          name: pk
          required: true
          schema:
            type: integer
        - description: Table name
          in: path
          name: table_name
          required: true
          schema:
            type: string
        - description: Table schema
          in: path
          name: schema_name
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SelectStarResponseSchema"
          description: SQL statement for a select star for table
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Database
  "/database/{pk}/table/{table_name}/{schema_name}/":
    get:
      description: Get database table metadata
      parameters:
        - description: The database id
          in: path
          name: pk
          required: true
          schema:
            type: integer
        - description: Table name
          in: path
          name: table_name
          required: true
          schema:
            type: string
        - description: Table schema
          in: path
          name: schema_name
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TableMetadataResponseSchema"
          description: Table metadata information
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Database
  /dataset/:
    delete:
      description: Deletes multiple Datasets in a bulk operation.
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_delete_ids_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: Dataset bulk delete
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Datasets
    get:
      description: Get a list of models
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_list_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  count:
                    description: The total record count on the backend
                    type: number
                  description_columns:
                    properties:
                      column_name:
                        description: The description for the column name. Will be translated by babel
                        example: A Nice description for the column
                        type: string
                    type: object
                  ids:
                    description: A list of item ids, useful when you don't know the column id
                    items:
                      type: string
                    type: array
                  label_columns:
                    properties:
                      column_name:
                        description: The label for the column name. Will be translated by babel
                        example: A Nice label for the column
                        type: string
                    type: object
                  list_columns:
                    description: A list of columns
                    items:
                      type: string
                    type: array
                  list_title:
                    description: A title to render. Will be translated by babel
                    example: List Items
                    type: string
                  order_columns:
                    description: A list of allowed columns to sort
                    items:
                      type: string
                    type: array
                  result:
                    description: The result from the get list query
                    items:
                      $ref: "#/components/schemas/DatasetRestApi.get_list"
                    type: array
                type: object
          description: Items from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Datasets
    post:
      description: Create a new Dataset
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DatasetRestApi.post"
        description: Dataset schema
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  id:
                    type: number
                  result:
                    $ref: "#/components/schemas/DatasetRestApi.post"
                type: object
          description: Dataset added
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Datasets
  /dataset/_info:
    get:
      description: Get metadata information about this API resource
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_info_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  add_columns:
                    type: object
                  edit_columns:
                    type: object
                  filters:
                    properties:
                      column_name:
                        items:
                          properties:
                            name:
                              description: The filter name. Will be translated by babel
                              type: string
                            operator:
                              description: The filter operation key to use on list filters
                              type: string
                          type: object
                        type: array
                    type: object
                  permissions:
                    description: The user permissions for this API resource
                    items:
                      type: string
                    type: array
                type: object
          description: Item from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Datasets
  "/dataset/distinct/{column_name}":
    get:
      parameters:
        - in: path
          name: column_name
          required: true
          schema:
            type: string
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_related_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DistincResponseSchema"
          description: Distinct field data
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Datasets
  /dataset/export/:
    get:
      description: Exports multiple datasets and downloads them as YAML files
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_export_ids_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            text/plain:
              schema:
                type: string
          description: Dataset export
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Datasets
  /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 file
                  type: string
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: Dataset import result
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Datasets
  "/dataset/related/{column_name}":
    get:
      parameters:
        - in: path
          name: column_name
          required: true
          schema:
            type: string
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_related_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RelatedResponseSchema"
          description: Related column data
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Datasets
  "/dataset/{pk}":
    delete:
      description: Deletes a Dataset
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: Dataset delete
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Datasets
    get:
      description: Get an item model
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_item_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  description_columns:
                    properties:
                      column_name:
                        description: The description for the column name. Will be translated by babel
                        example: A Nice description for the column
                        type: string
                    type: object
                  id:
                    description: The item id
                    type: string
                  label_columns:
                    properties:
                      column_name:
                        description: The label for the column name. Will be translated by babel
                        example: A Nice label for the column
                        type: string
                    type: object
                  result:
                    $ref: "#/components/schemas/DatasetRestApi.get"
                  show_columns:
                    description: A list of columns
                    items:
                      type: string
                    type: array
                  show_title:
                    description: A title to render. Will be translated by babel
                    example: Show Item Details
                    type: string
                type: object
          description: Item from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Datasets
    put:
      description: Changes a Dataset
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
        - in: query
          name: override_columns
          schema:
            type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DatasetRestApi.put"
        description: Dataset schema
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  id:
                    type: number
                  result:
                    $ref: "#/components/schemas/DatasetRestApi.put"
                type: object
          description: Dataset changed
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Datasets
  "/dataset/{pk}/column/{column_id}":
    delete:
      description: Delete a Dataset column
      parameters:
        - description: The dataset pk for this column
          in: path
          name: pk
          required: true
          schema:
            type: integer
        - description: The column id for this dataset
          in: path
          name: column_id
          required: true
          schema:
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: Column deleted
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Datasets
  "/dataset/{pk}/metric/{metric_id}":
    delete:
      description: Delete a Dataset metric
      parameters:
        - description: The dataset pk for this column
          in: path
          name: pk
          required: true
          schema:
            type: integer
        - description: The metric id for this dataset
          in: path
          name: metric_id
          required: true
          schema:
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: Metric deleted
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Datasets
  "/dataset/{pk}/refresh":
    put:
      description: Refreshes and updates columns of a dataset
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: Dataset delete
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Datasets
  "/dataset/{pk}/related_objects":
    get:
      description: Get charts and dashboards count associated to a dataset
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatasetRelatedObjectsResponse"
          description: Query result
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Datasets
  /log/:
    get:
      description: Get a list of models
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_list_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  count:
                    description: The total record count on the backend
                    type: number
                  description_columns:
                    properties:
                      column_name:
                        description: The description for the column name. Will be translated by babel
                        example: A Nice description for the column
                        type: string
                    type: object
                  ids:
                    description: A list of item ids, useful when you don't know the column id
                    items:
                      type: string
                    type: array
                  label_columns:
                    properties:
                      column_name:
                        description: The label for the column name. Will be translated by babel
                        example: A Nice label for the column
                        type: string
                    type: object
                  list_columns:
                    description: A list of columns
                    items:
                      type: string
                    type: array
                  list_title:
                    description: A title to render. Will be translated by babel
                    example: List Items
                    type: string
                  order_columns:
                    description: A list of allowed columns to sort
                    items:
                      type: string
                    type: array
                  result:
                    description: The result from the get list query
                    items:
                      $ref: "#/components/schemas/LogRestApi.get_list"
                    type: array
                type: object
          description: Items from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - LogRestApi
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LogRestApi.post"
        description: Model schema
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  id:
                    type: string
                  result:
                    $ref: "#/components/schemas/LogRestApi.post"
                type: object
          description: Item inserted
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - LogRestApi
  "/log/{pk}":
    get:
      description: Get an item model
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_item_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  description_columns:
                    properties:
                      column_name:
                        description: The description for the column name. Will be translated by babel
                        example: A Nice description for the column
                        type: string
                    type: object
                  id:
                    description: The item id
                    type: string
                  label_columns:
                    properties:
                      column_name:
                        description: The label for the column name. Will be translated by babel
                        example: A Nice label for the column
                        type: string
                    type: object
                  result:
                    $ref: "#/components/schemas/LogRestApi.get"
                  show_columns:
                    description: A list of columns
                    items:
                      type: string
                    type: array
                  show_title:
                    description: A title to render. Will be translated by babel
                    example: Show Item Details
                    type: string
                type: object
          description: Item from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - LogRestApi
  /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
  "/openapi/{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
  /query/:
    get:
      description: Get a list of queries, use Rison or JSON query parameters for filtering, sorting, pagination and  for selecting specific columns and metadata.
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_list_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  count:
                    description: The total record count on the backend
                    type: number
                  description_columns:
                    properties:
                      column_name:
                        description: The description for the column name. Will be translated by babel
                        example: A Nice description for the column
                        type: string
                    type: object
                  ids:
                    description: A list of item ids, useful when you don't know the column id
                    items:
                      type: string
                    type: array
                  label_columns:
                    properties:
                      column_name:
                        description: The label for the column name. Will be translated by babel
                        example: A Nice label for the column
                        type: string
                    type: object
                  list_columns:
                    description: A list of columns
                    items:
                      type: string
                    type: array
                  list_title:
                    description: A title to render. Will be translated by babel
                    example: List Items
                    type: string
                  order_columns:
                    description: A list of allowed columns to sort
                    items:
                      type: string
                    type: array
                  result:
                    description: The result from the get list query
                    items:
                      $ref: "#/components/schemas/QueryRestApi.get_list"
                    type: array
                type: object
          description: Items from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Queries
  "/query/distinct/{column_name}":
    get:
      parameters:
        - in: path
          name: column_name
          required: true
          schema:
            type: string
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_related_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DistincResponseSchema"
          description: Distinct field data
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Queries
  "/query/related/{column_name}":
    get:
      parameters:
        - in: path
          name: column_name
          required: true
          schema:
            type: string
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_related_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RelatedResponseSchema"
          description: Related column data
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Queries
  "/query/{pk}":
    get:
      description: Get query detail information.
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_item_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  description_columns:
                    properties:
                      column_name:
                        description: The description for the column name. Will be translated by babel
                        example: A Nice description for the column
                        type: string
                    type: object
                  id:
                    description: The item id
                    type: string
                  label_columns:
                    properties:
                      column_name:
                        description: The label for the column name. Will be translated by babel
                        example: A Nice label for the column
                        type: string
                    type: object
                  result:
                    $ref: "#/components/schemas/QueryRestApi.get"
                  show_columns:
                    description: A list of columns
                    items:
                      type: string
                    type: array
                  show_title:
                    description: A title to render. Will be translated by babel
                    example: Show Item Details
                    type: string
                type: object
          description: Item from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Queries
  /report/:
    delete:
      description: Deletes multiple report schedules in a bulk operation.
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_delete_ids_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: Report Schedule bulk delete
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Report Schedules
    get:
      description: Get a list of report schedules, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_list_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  count:
                    description: The total record count on the backend
                    type: number
                  description_columns:
                    properties:
                      column_name:
                        description: The description for the column name. Will be translated by babel
                        example: A Nice description for the column
                        type: string
                    type: object
                  ids:
                    description: A list of item ids, useful when you don't know the column id
                    items:
                      type: string
                    type: array
                  label_columns:
                    properties:
                      column_name:
                        description: The label for the column name. Will be translated by babel
                        example: A Nice label for the column
                        type: string
                    type: object
                  list_columns:
                    description: A list of columns
                    items:
                      type: string
                    type: array
                  list_title:
                    description: A title to render. Will be translated by babel
                    example: List Items
                    type: string
                  order_columns:
                    description: A list of allowed columns to sort
                    items:
                      type: string
                    type: array
                  result:
                    description: The result from the get list query
                    items:
                      $ref: "#/components/schemas/ReportScheduleRestApi.get_list"
                    type: array
                type: object
          description: Items from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Report Schedules
    post:
      description: Create a report schedule
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ReportScheduleRestApi.post"
        description: Report Schedule schema
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  id:
                    type: number
                  result:
                    $ref: "#/components/schemas/ReportScheduleRestApi.post"
                type: object
          description: Report schedule added
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Report Schedules
  /report/_info:
    get:
      description: Get metadata information about this API resource
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_info_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  add_columns:
                    type: object
                  edit_columns:
                    type: object
                  filters:
                    properties:
                      column_name:
                        items:
                          properties:
                            name:
                              description: The filter name. Will be translated by babel
                              type: string
                            operator:
                              description: The filter operation key to use on list filters
                              type: string
                          type: object
                        type: array
                    type: object
                  permissions:
                    description: The user permissions for this API resource
                    items:
                      type: string
                    type: array
                type: object
          description: Item from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Report Schedules
  "/report/related/{column_name}":
    get:
      parameters:
        - in: path
          name: column_name
          required: true
          schema:
            type: string
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_related_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RelatedResponseSchema"
          description: Related column data
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Report Schedules
  "/report/{pk}":
    delete:
      description: Delete a report schedule
      parameters:
        - description: The report schedule pk
          in: path
          name: pk
          required: true
          schema:
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: Item deleted
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Report Schedules
    get:
      description: Get a report schedule
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_item_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  description_columns:
                    properties:
                      column_name:
                        description: The description for the column name. Will be translated by babel
                        example: A Nice description for the column
                        type: string
                    type: object
                  id:
                    description: The item id
                    type: string
                  label_columns:
                    properties:
                      column_name:
                        description: The label for the column name. Will be translated by babel
                        example: A Nice label for the column
                        type: string
                    type: object
                  result:
                    $ref: "#/components/schemas/ReportScheduleRestApi.get"
                  show_columns:
                    description: A list of columns
                    items:
                      type: string
                    type: array
                  show_title:
                    description: A title to render. Will be translated by babel
                    example: Show Item Details
                    type: string
                type: object
          description: Item from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Report Schedules
    put:
      description: Update a report schedule
      parameters:
        - description: The Report Schedule pk
          in: path
          name: pk
          required: true
          schema:
            type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ReportScheduleRestApi.put"
        description: Report Schedule schema
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  id:
                    type: number
                  result:
                    $ref: "#/components/schemas/ReportScheduleRestApi.put"
                type: object
          description: Report Schedule changed
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Report Schedules
  "/report/{pk}/log/":
    get:
      description: Get a list of report schedule logs, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.
      parameters:
        - description: The report schedule id for these logs
          in: path
          name: pk
          required: true
          schema:
            type: integer
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_list_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  count:
                    description: The total record count on the backend
                    type: number
                  ids:
                    description: A list of log ids
                    items:
                      type: string
                    type: array
                  result:
                    description: The result from the get list query
                    items:
                      $ref: "#/components/schemas/ReportExecutionLogRestApi.get_list"
                    type: array
                type: object
          description: Items from logs
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Report Schedules
  "/report/{pk}/log/{log_id}":
    get:
      description: Get a report schedule log
      parameters:
        - description: The report schedule pk for log
          in: path
          name: pk
          required: true
          schema:
            type: integer
        - description: The log pk
          in: path
          name: log_id
          required: true
          schema:
            type: integer
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_item_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  id:
                    description: The log id
                    type: string
                  result:
                    $ref: "#/components/schemas/ReportExecutionLogRestApi.get"
                type: object
          description: Item log
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Report Schedules
  /saved_query/:
    delete:
      description: Deletes multiple saved queries in a bulk operation.
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_delete_ids_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: Saved queries bulk delete
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Queries
    get:
      description: Get a list of saved queries, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_list_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  count:
                    description: The total record count on the backend
                    type: number
                  description_columns:
                    properties:
                      column_name:
                        description: The description for the column name. Will be translated by babel
                        example: A Nice description for the column
                        type: string
                    type: object
                  ids:
                    description: A list of item ids, useful when you don't know the column id
                    items:
                      type: string
                    type: array
                  label_columns:
                    properties:
                      column_name:
                        description: The label for the column name. Will be translated by babel
                        example: A Nice label for the column
                        type: string
                    type: object
                  list_columns:
                    description: A list of columns
                    items:
                      type: string
                    type: array
                  list_title:
                    description: A title to render. Will be translated by babel
                    example: List Items
                    type: string
                  order_columns:
                    description: A list of allowed columns to sort
                    items:
                      type: string
                    type: array
                  result:
                    description: The result from the get list query
                    items:
                      $ref: "#/components/schemas/SavedQueryRestApi.get_list"
                    type: array
                type: object
          description: Items from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Queries
    post:
      description: Create a saved query
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SavedQueryRestApi.post"
        description: Model schema
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                properties:
                  id:
                    type: string
                  result:
                    $ref: "#/components/schemas/SavedQueryRestApi.post"
                type: object
          description: Item inserted
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Queries
  /saved_query/_info:
    get:
      description: Get metadata information about this API resource
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_info_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  add_columns:
                    type: object
                  edit_columns:
                    type: object
                  filters:
                    properties:
                      column_name:
                        items:
                          properties:
                            name:
                              description: The filter name. Will be translated by babel
                              type: string
                            operator:
                              description: The filter operation key to use on list filters
                              type: string
                          type: object
                        type: array
                    type: object
                  permissions:
                    description: The user permissions for this API resource
                    items:
                      type: string
                    type: array
                type: object
          description: Item from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Queries
  "/saved_query/distinct/{column_name}":
    get:
      parameters:
        - in: path
          name: column_name
          required: true
          schema:
            type: string
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_related_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DistincResponseSchema"
          description: Distinct field data
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Queries
  /saved_query/export/:
    get:
      description: Exports multiple saved queries and downloads them as YAML files
      parameters:
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_export_ids_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/zip:
              schema:
                format: binary
                type: string
          description: A zip file with saved query(ies) and database(s) as YAML
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Queries
  /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 file
                  type: string
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: Saved Query import result
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Queries
  "/saved_query/related/{column_name}":
    get:
      parameters:
        - in: path
          name: column_name
          required: true
          schema:
            type: string
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_related_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RelatedResponseSchema"
          description: Related column data
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Queries
  "/saved_query/{pk}":
    delete:
      description: Delete saved query
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: Item deleted
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Queries
    get:
      description: Get a saved query
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
        - content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_item_schema"
          in: query
          name: q
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  description_columns:
                    properties:
                      column_name:
                        description: The description for the column name. Will be translated by babel
                        example: A Nice description for the column
                        type: string
                    type: object
                  id:
                    description: The item id
                    type: string
                  label_columns:
                    properties:
                      column_name:
                        description: The label for the column name. Will be translated by babel
                        example: A Nice label for the column
                        type: string
                    type: object
                  result:
                    $ref: "#/components/schemas/SavedQueryRestApi.get"
                  show_columns:
                    description: A list of columns
                    items:
                      type: string
                    type: array
                  show_title:
                    description: A title to render. Will be translated by babel
                    example: Show Item Details
                    type: string
                type: object
          description: Item from Model
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Queries
    put:
      description: Update a saved query
      parameters:
        - in: path
          name: pk
          required: true
          schema:
            type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SavedQueryRestApi.put"
        description: Model schema
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  result:
                    $ref: "#/components/schemas/SavedQueryRestApi.put"
                type: object
          description: Item changed
        "400":
          $ref: "#/components/responses/400"
        "401":
          $ref: "#/components/responses/401"
        "404":
          $ref: "#/components/responses/404"
        "422":
          $ref: "#/components/responses/422"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Queries
  /security/csrf_token/:
    get:
      description: Fetch the CSRF token
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  result:
                    type: string
                type: object
          description: Result contains the CSRF token
        "401":
          $ref: "#/components/responses/401"
        "500":
          $ref: "#/components/responses/500"
      security:
        - jwt: []
      tags:
        - Security
  /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
  /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
components:
  responses:
    "400":
      content:
        application/json:
          schema:
            properties:
              message:
                type: string
            type: object
      description: Bad request
    "401":
      content:
        application/json:
          schema:
            properties:
              message:
                type: string
            type: object
      description: Unauthorized
    "403":
      content:
        application/json:
          schema:
            properties:
              message:
                type: string
            type: object
      description: Forbidden
    "404":
      content:
        application/json:
          schema:
            properties:
              message:
                type: string
            type: object
      description: Not found
    "422":
      content:
        application/json:
          schema:
            properties:
              message:
                type: string
            type: object
      description: Could not process entity
    "500":
      content:
        application/json:
          schema:
            properties:
              message:
                type: string
            type: object
      description: Fatal error
  schemas:
    AnnotationLayer:
      properties:
        annotationType:
          description: Type of annotation layer
          enum:
            - FORMULA
            - INTERVAL
            - EVENT
            - TIME_SERIES
          type: string
        color:
          description: Layer color
          nullable: true
          type: string
        descriptionColumns:
          description: Columns to use as the description. If none are provided, all will be shown.
          items:
            type: string
          type: array
        hideLine:
          description: Should line be hidden. Only applies to line annotations
          nullable: true
          type: boolean
        intervalEndColumn:
          description: Column containing end of interval. Only applies to interval layers
          nullable: true
          type: string
        name:
          description: Name of layer
          type: string
        opacity:
          description: Opacity of layer
          enum:
            - ""
            - opacityLow
            - opacityMedium
            - opacityHigh
          nullable: true
          type: string
        overrides:
          additionalProperties:
            nullable: true
          description: which properties should be overridable
          nullable: true
          type: object
        show:
          description: Should the layer be shown
          type: boolean
        showMarkers:
          description: Should markers be shown. Only applies to line annotations.
          type: boolean
        sourceType:
          description: Type of source for annotation data
          enum:
            - ""
            - line
            - NATIVE
            - table
          type: string
        style:
          description: Line style. Only applies to time-series annotations
          enum:
            - dashed
            - dotted
            - solid
            - longDashed
          type: string
        timeColumn:
          description: Column with event date or interval start date
          nullable: true
          type: string
        titleColumn:
          description: Column with title
          nullable: true
          type: string
        value:
          description: For formula annotations, this contains the formula. For other types, this is the primary key of the source object.
        width:
          description: Width of annotation line
          format: float
          minimum: 0
          type: number
      required:
        - name
        - show
        - showMarkers
        - value
      type: object
    AnnotationLayerRestApi.get:
      properties:
        descr:
          nullable: true
          type: string
        id:
          format: int32
          type: integer
        name:
          maxLength: 250
          nullable: true
          type: string
      type: object
    AnnotationLayerRestApi.get_list:
      properties:
        changed_by:
          $ref: "#/components/schemas/Meta4"
        changed_on:
          format: date-time
          nullable: true
          type: string
        changed_on_delta_humanized:
          readOnly: true
        created_by:
          $ref: "#/components/schemas/Meta3"
        created_on:
          format: date-time
          nullable: true
          type: string
        descr:
          nullable: true
          type: string
        id:
          format: int32
          type: integer
        name:
          maxLength: 250
          nullable: true
          type: string
      type: object
    AnnotationLayerRestApi.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
      type: object
    AnnotationLayerRestApi.put:
      properties:
        descr:
          description: Give a description for this annotation layer
          type: string
        name:
          description: The annotation layer name
          maxLength: 250
          minLength: 1
          type: string
      type: object
    AnnotationRestApi.get:
      properties:
        end_dttm:
          format: date-time
          nullable: true
          type: string
        id:
          format: int32
          type: integer
        json_metadata:
          nullable: true
          type: string
        layer:
          $ref: "#/components/schemas/Meta2"
        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_list:
      properties:
        changed_by:
          $ref: "#/components/schemas/Meta1"
        changed_on_delta_humanized:
          readOnly: true
        created_by:
          $ref: "#/components/schemas/Meta"
        end_dttm:
          format: date-time
          nullable: true
          type: string
        id:
          format: int32
          type: integer
        long_descr:
          nullable: true
          type: string
        short_descr:
          maxLength: 500
          nullable: true
          type: string
        start_dttm:
          format: date-time
          nullable: true
          type: string
      type: object
    AnnotationRestApi.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
      type: object
    AnnotationRestApi.put:
      properties:
        end_dttm:
          description: The annotation end date time
          format: date-time
          type: string
        json_metadata:
          description: JSON metadata
          type: string
        long_descr:
          description: A long description
          type: string
        short_descr:
          description: A short description
          maxLength: 500
          minLength: 1
          type: string
        start_dttm:
          description: The annotation start date time
          format: date-time
          type: string
      type: object
    CacheInvalidationRequestSchema:
      properties:
        datasource_uids:
          description: "The uid of the dataset/datasource this new chart will use. A complete datasource identification needs `datasouce_uid` "
          items:
            type: string
          type: array
        datasources:
          description: A list of the data source and database names
          items:
            $ref: "#/components/schemas/Datasource"
          type: array
      type: object
    CacheRestApi.get:
      properties:
        id:
          format: int32
          type: integer
      type: object
    CacheRestApi.get_list:
      properties:
        id:
          format: int32
          type: integer
      type: object
    CacheRestApi.post:
      properties:
        id:
          format: int32
          type: integer
      type: object
    CacheRestApi.put:
      properties:
        id:
          format: int32
          type: integer
      type: object
    ChartCacheScreenshotResponseSchema:
      properties:
        cache_key:
          description: The cache key
          type: string
        chart_url:
          description: The url to render the chart
          type: string
        image_url:
          description: The url to fetch the screenshot
          type: string
      type: object
    ChartDataAdhocMetricSchema:
      properties:
        aggregate:
          description: Aggregation operator. Only required for simple expression types.
          enum:
            - AVG
            - COUNT
            - COUNT_DISTINCT
            - MAX
            - MIN
            - SUM
          type: string
        column:
          $ref: "#/components/schemas/ChartDataColumn"
        expressionType:
          description: Simple or SQL metric
          enum:
            - SIMPLE
            - SQL
          example: SQL
          type: string
        hasCustomLabel:
          description: When false, the label will be automatically generated based on the aggregate expression. When true, a custom label has to be specified.
          example: true
          type: boolean
        label:
          description: Label for the metric. Is automatically generated unless hasCustomLabel is true, in which case label must be defined.
          example: Weighted observations
          type: string
        optionName:
          description: Unique identifier. Can be any string value, as long as all metrics have a unique identifier. If undefined, a random name will be generated.
          example: metric_aec60732-fac0-4b17-b736-93f1a5c93e30
          type: string
        sqlExpression:
          description: The metric as defined by a SQL aggregate expression. Only required for SQL expression type.
          example: SUM(weight * observations) / SUM(weight)
          type: string
      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.

            In 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.
          items: {}
          type: array
        percentiles:
          description: Upper and lower percentiles for percentile whisker type.
          example:
            - 1
            - 99
        whisker_type:
          description: Whisker type. Any numpy function will work.
          enum:
            - tukey
            - min/max
            - percentile
          example: tukey
          type: string
      required:
        - whisker_type
      type: object
    ChartDataColumn:
      properties:
        column_name:
          description: The name of the target column
          example: mycol
          type: string
        type:
          description: Type of target column
          example: BIGINT
          type: string
      type: object
    ChartDataContributionOptionsSchema:
      properties:
        orientation:
          description: Should cell values be calculated across the row or column.
          enum:
            - row
            - column
          example: row
          type: string
      required:
        - orientation
      type: object
    ChartDataDatasource:
      properties:
        id:
          description: Datasource id
          format: int32
          type: integer
        type:
          description: Datasource type
          enum:
            - druid
            - table
          type: string
      required:
        - id
      type: object
    ChartDataExtras:
      properties:
        druid_time_origin:
          description: Starting point for time grain counting on legacy Druid datasources. Used to change e.g. Monday/Sunday first-day-of-week.
          nullable: true
          type: string
        having:
          description: HAVING clause to be added to aggregate queries using AND operator.
          type: string
        having_druid:
          description: HAVING filters to be added to legacy Druid datasource queries.
          items:
            $ref: "#/components/schemas/ChartDataFilter"
          type: array
        relative_end:
          description: 'End time for relative time deltas. Default: `config["DEFAULT_RELATIVE_START_TIME"]`'
          enum:
            - today
            - now
          type: string
        relative_start:
          description: 'Start time for relative time deltas. Default: `config["DEFAULT_RELATIVE_START_TIME"]`'
          enum:
            - today
            - now
          type: string
        time_grain_sqla:
          description: To what level of granularity should the temporal column be aggregated. Supports [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Durations) durations.
          enum:
            - PT1S
            - PT5S
            - PT30S
            - PT1M
            - PT5M
            - PT10M
            - PT15M
            - PT0.5H
            - PT1H
            - PT6H
            - P1D
            - P1W
            - P1M
            - P0.25Y
            - P1Y
            - 1969-12-28T00:00:00Z/P1W
            - 1969-12-29T00:00:00Z/P1W
            - P1W/1970-01-03T00:00:00Z
            - P1W/1970-01-04T00:00:00Z
          example: P1D
          nullable: true
          type: string
        time_range_endpoints:
          items: {}
          type: array
        where:
          description: WHERE clause to be added to queries using AND operator.
          type: string
      type: object
    ChartDataFilter:
      properties:
        col:
          description: The column to filter.
          example: country
          type: string
        op:
          description: The comparison operator.
          enum:
            - ==
            - "!="
            - ">"
            - <
            - ">="
            - <=
            - LIKE
            - ILIKE
            - IS NULL
            - IS NOT NULL
            - IN
            - NOT IN
            - REGEX
            - IS TRUE
            - IS FALSE
          example: IN
          type: string
        val:
          description: The value or values to compare against. Can be a string, integer, decimal or list, depending on the operator.
          example:
            - China
            - France
            - Japan
      required:
        - col
        - op
      type: object
    ChartDataGeodeticParseOptionsSchema:
      properties:
        altitude:
          description: Name of target column for decoded altitude. If omitted, altitude information in geodetic string is ignored.
          type: string
        geodetic:
          description: Name of source column containing geodetic point strings
          type: string
        latitude:
          description: Name of target column for decoded latitude
          type: string
        longitude:
          description: Name of target column for decoded longitude
          type: string
      required:
        - geodetic
        - latitude
        - longitude
      type: object
    ChartDataGeohashDecodeOptionsSchema:
      properties:
        geohash:
          description: Name of source column containing geohash string
          type: string
        latitude:
          description: Name of target column for decoded latitude
          type: string
        longitude:
          description: Name of target column for decoded longitude
          type: string
      required:
        - geohash
        - latitude
        - longitude
      type: object
    ChartDataGeohashEncodeOptionsSchema:
      properties:
        geohash:
          description: Name of target column for encoded geohash string
          type: string
        latitude:
          description: Name of source latitude column
          type: string
        longitude:
          description: Name of source longitude column
          type: string
      required:
        - geohash
        - latitude
        - longitude
      type: object
    ChartDataPivotOptionsSchema:
      properties:
        aggregates:
          description: |-
            The keys are the name of the aggregate column to be created, and the values specify the details of how to apply the aggregation. If an operator requires additional options, these can be passed here to be unpacked in the operator call. The following numpy operators are supported: average, argmin, argmax, cumsum, cumprod, max, mean, median, nansum, nanmin, nanmax, nanmean, nanmedian, min, percentile, prod, product, std, sum, var. Any options required by the operator can be passed to the `options` object.

            In 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:
          items:
            description: Columns to group by on the table columns
            type: string
          type: array
        drop_missing_columns:
          description: "Do not include columns whose entries are all missing (default: `true`)."
          type: boolean
        marginal_distribution_name:
          description: "Name of marginal distribution row/column. (default: `All`)"
          type: string
        marginal_distributions:
          description: "Add totals for row/column. (default: `false`)"
          type: boolean
        metric_fill_value:
          description: Value to replace missing values with in aggregate calculations.
          type: number
      type: object
    ChartDataPostProcessingOperation:
      properties:
        operation:
          description: Post processing operation type
          enum:
            - aggregate
            - boxplot
            - contribution
            - cum
            - geodetic_parse
            - geohash_decode
            - geohash_encode
            - pivot
            - prophet
            - rolling
            - select
            - sort
            - diff
            - compare
          example: aggregate
          type: string
        options:
          description: Options specifying how to perform the operation. Please refer to the respective post processing operation option schemas. For example, `ChartDataPostProcessingOperationOptions` specifies the required options for the pivot operation.
          example:
            aggregates:
              age_mean:
                column: age
                operator: mean
              age_q1:
                column: age
                operator: percentile
                options:
                  q: 0.25
            groupby:
              - country
              - gender
          type: object
      required:
        - operation
      type: object
    ChartDataProphetOptionsSchema:
      properties:
        confidence_interval:
          description: Width of predicted confidence interval
          example: 0.8
          format: float
          maximum: 1
          minimum: 0
          type: number
        monthly_seasonality:
          description: Should monthly seasonality be applied. An integer value will specify Fourier order of seasonality, `None` will automatically detect seasonality.
          example: false
        periods:
          example: 7
          format: int32
          type: integer
        time_grain:
          description: Time grain used to specify time period increments in prediction. Supports [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Durations) durations.
          enum:
            - PT1S
            - PT5S
            - PT30S
            - PT1M
            - PT5M
            - PT10M
            - PT15M
            - PT0.5H
            - PT1H
            - PT6H
            - P1D
            - P1W
            - P1M
            - P0.25Y
            - P1Y
            - 1969-12-28T00:00:00Z/P1W
            - 1969-12-29T00:00:00Z/P1W
            - P1W/1970-01-03T00:00:00Z
            - P1W/1970-01-04T00:00:00Z
          example: P1D
          type: string
        weekly_seasonality:
          description: Should weekly seasonality be applied. An integer value will specify Fourier order of seasonality, `None` will automatically detect seasonality.
          example: false
        yearly_seasonality:
          description: Should yearly seasonality be applied. An integer value will specify Fourier order of seasonality, `None` will automatically detect seasonality.
          example: false
      required:
        - confidence_interval
        - periods
        - time_grain
      type: object
    ChartDataQueryContextSchema:
      properties:
        datasource:
          $ref: "#/components/schemas/ChartDataDatasource"
        force:
          description: "Should the queries be forced to load from the source. Default: `false`"
          type: boolean
        queries:
          items:
            $ref: "#/components/schemas/ChartDataQueryObject"
          type: array
        result_format: {}
        result_type: {}
      type: object
    ChartDataQueryObject:
      properties:
        annotation_layers:
          description: Annotation layers to apply to chart
          items:
            $ref: "#/components/schemas/AnnotationLayer"
          nullable: true
          type: array
        applied_time_extras:
          description: A mapping of temporal extras that have been applied to the query
          example:
            __time_range: "1 year ago : now"
          nullable: true
          type: object
        apply_fetch_values_predicate:
          description: Add fetch values predicate (where clause) to query if defined in datasource
          nullable: true
          type: boolean
        columns:
          description: Columns which to select in the query.
          items:
            type: string
          nullable: true
          type: array
        datasource:
          allOf:
            - $ref: "#/components/schemas/ChartDataDatasource"
          nullable: true
        druid_time_origin:
          description: Starting point for time grain counting on legacy Druid datasources. Used to change e.g. Monday/Sunday first-day-of-week. This field is deprecated and should be passed to `extras` as `druid_time_origin`.
          nullable: true
          type: string
        extras:
          allOf:
            - $ref: "#/components/schemas/ChartDataExtras"
          description: Extra parameters to add to the query.
          nullable: true
        filters:
          items:
            $ref: "#/components/schemas/ChartDataFilter"
          nullable: true
          type: array
        granularity:
          description: Name of temporal column used for time filtering. For legacy Druid datasources this defines the time grain.
          nullable: true
          type: string
        granularity_sqla:
          description: Name of temporal column used for time filtering for SQL datasources. This field is deprecated, use `granularity` instead.
          nullable: true
          type: string
        groupby:
          items:
            description: Columns by which to group the query.
            type: string
          nullable: true
          type: array
        having:
          description: HAVING clause to be added to aggregate queries using AND operator. This field is deprecated and should be passed to `extras`.
          nullable: true
          type: string
        having_filters:
          description: HAVING filters to be added to legacy Druid datasource queries. This field is deprecated and should be passed to `extras` as `having_druid`.
          items:
            $ref: "#/components/schemas/ChartDataFilter"
          nullable: true
          type: array
        is_rowcount:
          description: Should the rowcount of the actual query be returned
          nullable: true
          type: boolean
        is_timeseries:
          description: Is the `query_object` a timeseries.
          nullable: true
          type: boolean
        metrics:
          description: Aggregate expressions. Metrics can be passed as both references to datasource metrics (strings), or ad-hoc metricswhich are defined only within the query object. See `ChartDataAdhocMetricSchema` for the structure of ad-hoc metrics.
          items: {}
          nullable: true
          type: array
        order_desc:
          description: "Reverse order. Default: `false`"
          nullable: true
          type: boolean
        orderby:
          description: Expects a list of lists where the first element is the column name which to sort by, and the second element is a boolean.
          example:
            - - my_col_1
              - false
            - - my_col_2
              - true
          items: {}
          nullable: true
          type: array
        post_processing:
          description: Post processing operations to be applied to the result set. Operations are applied to the result set in sequential order.
          items:
            allOf:
              - $ref: "#/components/schemas/ChartDataPostProcessingOperation"
            nullable: true
          nullable: true
          type: array
        result_type:
          nullable: true
        row_limit:
          description: 'Maximum row count (0=disabled). Default: `config["ROW_LIMIT"]`'
          format: int32
          minimum: 0
          nullable: true
          type: integer
        row_offset:
          description: "Number of rows to skip. Default: `0`"
          format: int32
          minimum: 0
          nullable: true
          type: integer
        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: 
            - ISO 8601
            - X days/years/hours/day/year/weeks
            - X days/years/hours/day/year/weeks ago
            - X days/years/hours/day/year/weeks from now

            Additionally, the following freeform can be used:

            - Last day
            - Last week
            - Last month
            - Last quarter
            - Last year
            - No filter
            - Last X seconds/minutes/hours/days/weeks/months/years
            - Next X seconds/minutes/hours/days/weeks/months/years
          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. Default: `0`"
          format: int32
          nullable: true
          type: integer
        timeseries_limit_metric:
          description: Metric used to limit timeseries queries by.
          nullable: true
        url_params:
          additionalProperties:
            description: The value of the query parameter
            type: string
          description: Optional query parameters passed to a dashboard or Explore view
          nullable: true
          type: object
        where:
          description: WHERE clause to be added to queries using AND operator.This field is deprecated and should be passed to `extras`.
          nullable: true
          type: string
      type: object
    ChartDataResponseResult:
      properties:
        annotation_data:
          description: All requested annotation data
          items:
            additionalProperties:
              type: string
            type: object
          nullable: true
          type: array
        applied_filters:
          description: A list with applied filters
          items:
            type: object
          type: array
        cache_key:
          description: Unique cache key for query object
          nullable: true
          type: string
        cache_timeout:
          description: "Cache timeout in following order: custom timeout, datasource timeout, default config timeout."
          format: int32
          nullable: true
          type: integer
        cached_dttm:
          description: Cache timestamp
          nullable: true
          type: string
        data:
          description: A list with results
          items:
            type: object
          type: array
        error:
          description: Error
          nullable: true
          type: string
        is_cached:
          description: Is the result cached
          type: boolean
        query:
          description: The executed query statement
          type: string
        rejected_filters:
          description: A list with rejected filters
          items:
            type: object
          type: array
        rowcount:
          description: Amount of rows in result set
          format: int32
          type: integer
        stacktrace:
          nullable: true
          type: string
        status:
          description: Status of the query
          enum:
            - stopped
            - failed
            - pending
            - running
            - scheduled
            - success
            - timed_out
          type: string
      required:
        - cache_key
        - cache_timeout
        - cached_dttm
        - is_cached
        - query
      type: object
    ChartDataResponseSchema:
      properties:
        result:
          description: A list of results for each corresponding query in the request.
          items:
            $ref: "#/components/schemas/ChartDataResponseResult"
          type: array
      type: object
    ChartDataRollingOptionsSchema:
      properties:
        center:
          description: "Should the label be at the center of the window. Default: `false`"
          example: false
          type: boolean
        min_periods:
          description: The minimum amount of periods required for a row to be included in the result set.
          example: 7
          format: int32
          type: integer
        rolling_type:
          description: Type of rolling window. Any numpy function will work.
          enum:
            - average
            - argmin
            - argmax
            - cumsum
            - cumprod
            - max
            - mean
            - median
            - nansum
            - nanmin
            - nanmax
            - nanmean
            - nanmedian
            - nanpercentile
            - min
            - percentile
            - prod
            - product
            - std
            - sum
            - var
          example: percentile
          type: string
        rolling_type_options:
          example: {}
          type: object
        win_type:
          description: Type of window function. See [SciPy window functions](https://docs.scipy.org/doc/scipy/reference/signal.windows.html#module-scipy.signal.windows) for more details. Some window functions require passing additional parameters to `rolling_type_options`. For instance, to use `gaussian`, the parameter `std` needs to be provided.
          enum:
            - boxcar
            - triang
            - blackman
            - hamming
            - bartlett
            - parzen
            - bohman
            - blackmanharris
            - nuttall
            - barthann
            - kaiser
            - gaussian
            - general_gaussian
            - slepian
            - exponential
          type: string
        window:
          description: Size of the rolling window in days.
          example: 7
          format: int32
          type: integer
      required:
        - rolling_type
        - window
      type: object
    ChartDataSelectOptionsSchema:
      properties:
        columns:
          description: Columns which to select from the input data, in the desired order. If columns are renamed, the original column name should be referenced here.
          example:
            - country
            - gender
            - age
          items:
            type: string
          type: array
        exclude:
          description: Columns to exclude from selection.
          example:
            - my_temp_column
          items:
            type: string
          type: array
        rename:
          description: "columns which to rename, mapping source column to target column. For instance, `{'y': 'y2'}` will rename the column `y` to `y2`."
          example:
            - age: average_age
          items:
            type: object
          type: array
      type: object
    ChartDataSortOptionsSchema:
      properties:
        aggregates:
          description: |-
            The keys are the name of the aggregate column to be created, and the values specify the details of how to apply the aggregation. If an operator requires additional options, these can be passed here to be unpacked in the operator call. The following numpy operators are supported: average, argmin, argmax, cumsum, cumprod, max, mean, median, nansum, nanmin, nanmax, nanmean, nanmedian, min, percentile, prod, product, std, sum, var. Any options required by the operator can be passed to the `options` object.

            In the example, a new column `first_quantile` is created based on values in the column `my_col` using the `percentile` operator with the `q=0.25` parameter.
          example:
            first_quantile:
              column: my_col
              operator: percentile
              options:
                q: 0.25
          type: object
        columns:
          description: columns by by which to sort. The key specifies the column name, value specifies if sorting in ascending order.
          example:
            country: true
            gender: false
          type: object
      required:
        - columns
      type: object
    ChartEntityResponseSchema:
      properties:
        cache_timeout:
          description: Duration (in seconds) of the caching timeout for this chart. Note this defaults to the datasource/table timeout if undefined.
          format: int32
          type: integer
        changed_on:
          description: The ISO date that the chart was last changed.
          type: string
        datasource:
          description: The datasource name.
          type: string
        description:
          description: A description of the chart propose.
          type: string
        description_markeddown:
          description: Sanitized HTML version of the chart description.
          type: string
        form_data:
          description: Form data from the Explore controls used to form the chart's data query.
          type: object
        modified:
          type: string
        slice_id:
          format: int32
          type: integer
        slice_name:
          description: The name of the chart.
          type: string
        slice_url:
          description: The URL of the chart.
          type: string
      type: object
    ChartFavStarResponseResult:
      properties:
        id:
          description: The Chart id
          format: int32
          type: integer
        value:
          description: The FaveStar value
          type: boolean
      type: object
    ChartGetDatasourceObjectDataResponse:
      properties:
        datasource_id:
          description: The datasource identifier
          format: int32
          type: integer
        datasource_type:
          description: The datasource type
          format: int32
          type: integer
      type: object
    ChartGetDatasourceObjectResponse:
      properties:
        label:
          description: The name of the datasource
          type: string
        value:
          $ref: "#/components/schemas/ChartGetDatasourceObjectDataResponse"
      type: object
    ChartGetDatasourceResponseSchema:
      properties:
        count:
          description: The total number of datasources
          format: int32
          type: integer
        result:
          $ref: "#/components/schemas/ChartGetDatasourceObjectResponse"
      type: object
    ChartRestApi.get:
      properties:
        cache_timeout:
          format: int32
          nullable: true
          type: integer
        dashboards:
          $ref: "#/components/schemas/Meta9"
        description:
          nullable: true
          type: string
        owners:
          $ref: "#/components/schemas/Meta10"
        params:
          nullable: true
          type: string
        query_context:
          nullable: true
          type: string
        slice_name:
          maxLength: 250
          nullable: true
          type: string
        viz_type:
          maxLength: 250
          nullable: true
          type: string
      type: object
    ChartRestApi.get_list:
      properties:
        cache_timeout:
          format: int32
          nullable: true
          type: integer
        changed_by:
          $ref: "#/components/schemas/Meta8"
        changed_by_name:
          readOnly: true
        changed_by_url:
          readOnly: true
        changed_on_delta_humanized:
          readOnly: true
        changed_on_utc:
          readOnly: true
        created_by:
          $ref: "#/components/schemas/Meta5"
        datasource_id:
          format: int32
          nullable: true
          type: integer
        datasource_name_text:
          readOnly: true
        datasource_type:
          maxLength: 200
          nullable: true
          type: string
        datasource_url:
          readOnly: true
        description:
          nullable: true
          type: string
        description_markeddown:
          readOnly: true
        edit_url:
          readOnly: true
        id:
          format: int32
          type: integer
        owners:
          $ref: "#/components/schemas/Meta7"
        params:
          nullable: true
          type: string
        slice_name:
          maxLength: 250
          nullable: true
          type: string
        table:
          $ref: "#/components/schemas/Meta6"
        thumbnail_url:
          readOnly: true
        url:
          readOnly: true
        viz_type:
          maxLength: 250
          nullable: true
          type: string
      type: object
    ChartRestApi.post:
      properties:
        cache_timeout:
          description: Duration (in seconds) of the caching timeout for this chart. Note this defaults to the datasource/table timeout if undefined.
          format: int32
          nullable: true
          type: integer
        dashboards:
          items:
            description: A list of dashboards to include this new chart to.
            format: int32
            type: integer
          type: array
        datasource_id:
          description: The id of the dataset/datasource this new chart will use. A complete datasource identification needs `datasouce_id` and `datasource_type`.
          format: int32
          type: integer
        datasource_name:
          description: The datasource name.
          nullable: true
          type: string
        datasource_type:
          description: The type of dataset/datasource identified on `datasource_id`.
          enum:
            - druid
            - table
            - view
          type: string
        description:
          description: A description of the chart propose.
          nullable: true
          type: string
        owners:
          items:
            description: Owner are users ids allowed to delete or change this chart. If left empty you will be one of the owners of the chart.
            format: int32
            type: integer
          type: array
        params:
          description: Parameters are generated dynamically when clicking the save or overwrite button in the explore view. This JSON object for power users who may want to alter specific parameters.
          nullable: true
          type: string
        query_context:
          description: The query context represents the queries that need to run in order to generate the data the visualization, and in what format the data should be returned.
          nullable: true
          type: string
        slice_name:
          description: The name of the chart.
          maxLength: 250
          minLength: 1
          type: string
        viz_type:
          description: The type of chart visualization used.
          example:
            - bar
            - line_multi
            - area
            - table
          maxLength: 250
          minLength: 0
          type: string
      required:
        - datasource_id
        - datasource_type
        - slice_name
      type: object
    ChartRestApi.put:
      properties:
        cache_timeout:
          description: Duration (in seconds) of the caching timeout for this chart. Note this defaults to the datasource/table timeout if undefined.
          format: int32
          nullable: true
          type: integer
        dashboards:
          items:
            description: A list of dashboards to include this new chart to.
            format: int32
            type: integer
          type: array
        datasource_id:
          description: The id of the dataset/datasource this new chart will use. A complete datasource identification needs `datasouce_id` and `datasource_type`.
          format: int32
          nullable: true
          type: integer
        datasource_type:
          description: The type of dataset/datasource identified on `datasource_id`.
          enum:
            - druid
            - table
            - view
          nullable: true
          type: string
        description:
          description: A description of the chart propose.
          nullable: true
          type: string
        owners:
          items:
            description: Owner are users ids allowed to delete or change this chart. If left empty you will be one of the owners of the chart.
            format: int32
            type: integer
          type: array
        params:
          description: Parameters are generated dynamically when clicking the save or overwrite button in the explore view. This JSON object for power users who may want to alter specific parameters.
          nullable: true
          type: string
        query_context:
          description: The query context represents the queries that need to run in order to generate the data the visualization, and in what format the data should be returned.
          nullable: true
          type: string
        slice_name:
          description: The name of the chart.
          maxLength: 250
          minLength: 0
          nullable: true
          type: string
        viz_type:
          description: The type of chart visualization used.
          example:
            - bar
            - line_multi
            - area
            - table
          maxLength: 250
          minLength: 0
          nullable: true
          type: string
      type: object
    CssTemplateRestApi.get:
      properties:
        created_by:
          $ref: "#/components/schemas/Meta13"
        css:
          nullable: true
          type: string
        id:
          format: int32
          type: integer
        template_name:
          maxLength: 250
          nullable: true
          type: string
      type: object
    CssTemplateRestApi.get_list:
      properties:
        changed_by:
          $ref: "#/components/schemas/Meta12"
        changed_on_delta_humanized:
          readOnly: true
        created_by:
          $ref: "#/components/schemas/Meta11"
        created_on:
          format: date-time
          nullable: true
          type: string
        css:
          nullable: true
          type: string
        id:
          format: int32
          type: integer
        template_name:
          maxLength: 250
          nullable: true
          type: string
      type: object
    CssTemplateRestApi.post:
      properties:
        css:
          nullable: true
          type: string
        template_name:
          maxLength: 250
          nullable: true
          type: string
      type: object
    CssTemplateRestApi.put:
      properties:
        css:
          nullable: true
          type: string
        template_name:
          maxLength: 250
          nullable: true
          type: string
      type: object
    DashboardDatasetSchema:
      properties:
        cache_timeout:
          format: int32
          type: integer
        column_formats:
          type: object
        column_types:
          items:
            format: int32
            type: integer
          type: array
        columns:
          items:
            type: object
          type: array
        database:
          $ref: "#/components/schemas/Database"
        datasource_name:
          type: string
        default_endpoint:
          type: string
        edit_url:
          type: string
        fetch_values_predicate:
          type: string
        filter_select:
          type: boolean
        filter_select_enabled:
          type: boolean
        granularity_sqla:
          items:
            items:
              type: string
            type: array
          type: array
        health_check_message:
          type: string
        id:
          format: int32
          type: integer
        is_sqllab_view:
          type: boolean
        main_dttm_col:
          type: string
        metrics:
          items:
            type: object
          type: array
        name:
          type: string
        offset:
          format: int32
          type: integer
        order_by_choices:
          items:
            items:
              type: string
            type: array
          type: array
        owners:
          items:
            format: int32
            type: integer
          type: array
        params:
          type: string
        perm:
          type: string
        schema:
          type: string
        select_star:
          type: string
        sql:
          type: string
        table_name:
          type: string
        template_params:
          type: string
        time_grain_sqla:
          items:
            items:
              type: string
            type: array
          type: array
        type:
          type: string
        uid:
          type: string
        verbose_map:
          additionalProperties:
            type: string
          type: object
      type: object
    DashboardGetResponseSchema:
      properties:
        changed_by:
          $ref: "#/components/schemas/User"
        changed_by_name:
          type: string
        changed_by_url:
          type: string
        changed_on:
          format: date-time
          type: string
        changed_on_delta_humanized:
          type: string
        charts:
          items:
            description: The names of the dashboard's charts. Names are used for legacy reasons.
            type: string
          type: array
        css:
          description: Override CSS for the dashboard.
          type: string
        dashboard_title:
          description: A title for the dashboard.
          type: string
        id:
          format: int32
          type: integer
        json_metadata:
          description: This JSON object is generated dynamically when clicking the save or overwrite button in the dashboard view. It is exposed here for reference and for power users who may want to alter  specific parameters.
          type: string
        owners:
          items:
            $ref: "#/components/schemas/User"
          type: array
        position_json:
          description: This json object describes the positioning of the widgets in the dashboard. It is dynamically generated when adjusting the widgets size and positions by using drag & drop in the dashboard view
          type: string
        published:
          type: boolean
        roles:
          items:
            $ref: "#/components/schemas/Roles"
          type: array
        slug:
          type: string
        table_names:
          type: string
        thumbnail_url:
          type: string
        url:
          type: string
      type: object
    DashboardRestApi.get:
      properties:
        id:
          format: int32
          type: integer
      type: object
    DashboardRestApi.get_list:
      properties:
        changed_by:
          $ref: "#/components/schemas/Meta15"
        changed_by_name:
          readOnly: true
        changed_by_url:
          readOnly: true
        changed_on_delta_humanized:
          readOnly: true
        changed_on_utc:
          readOnly: true
        created_by:
          $ref: "#/components/schemas/Meta14"
        css:
          nullable: true
          type: string
        dashboard_title:
          maxLength: 500
          nullable: true
          type: string
        id:
          format: int32
          type: integer
        json_metadata:
          nullable: true
          type: string
        owners:
          $ref: "#/components/schemas/Meta17"
        position_json:
          nullable: true
          type: string
        published:
          nullable: true
          type: boolean
        roles:
          $ref: "#/components/schemas/Meta16"
        slug:
          maxLength: 255
          nullable: true
          type: string
        status:
          readOnly: true
        thumbnail_url:
          readOnly: true
        url:
          readOnly: true
      type: object
    DashboardRestApi.post:
      properties:
        css:
          type: string
        dashboard_title:
          description: A title for the dashboard.
          maxLength: 500
          minLength: 0
          nullable: true
          type: string
        json_metadata:
          description: This JSON object is generated dynamically when clicking the save or overwrite button in the dashboard view. It is exposed here for reference and for power users who may want to alter  specific parameters.
          type: string
        owners:
          items:
            description: Owner are users ids allowed to delete or change this dashboard. If left empty you will be one of the owners of the dashboard.
            format: int32
            type: integer
          type: array
        position_json:
          description: This json object describes the positioning of the widgets in the dashboard. It is dynamically generated when adjusting the widgets size and positions by using drag & drop in the dashboard view
          type: string
        published:
          description: Determines whether or not this dashboard is visible in the list of all dashboards.
          type: boolean
        roles:
          items:
            description: Roles is a list which defines access to the dashboard. These roles are always applied in addition to restrictions on dataset level access. If no roles defined then the dashboard is available to all roles.
            format: int32
            type: integer
          type: array
        slug:
          description: Unique identifying part for the web address of the dashboard.
          maxLength: 255
          minLength: 1
          nullable: true
          type: string
      type: object
    DashboardRestApi.put:
      properties:
        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
        json_metadata:
          description: This JSON object is generated dynamically when clicking the save or overwrite button in the dashboard view. It is exposed here for reference and for power users who may want to alter  specific parameters.
          nullable: true
          type: string
        owners:
          items:
            description: Owner are users ids allowed to delete or change this dashboard. If left empty you will be one of the owners of the dashboard.
            format: int32
            nullable: true
            type: integer
          type: array
        position_json:
          description: This json object describes the positioning of the widgets in the dashboard. It is dynamically generated when adjusting the widgets size and positions by using drag & drop in the dashboard view
          nullable: true
          type: string
        published:
          description: Determines whether or not this dashboard is visible in the list of all dashboards.
          nullable: true
          type: boolean
        roles:
          items:
            description: Roles is a list which defines access to the dashboard. These roles are always applied in addition to restrictions on dataset level access. If no roles defined then the dashboard is available to all roles.
            format: int32
            nullable: true
            type: integer
          type: array
        slug:
          description: Unique identifying part for the web address of the dashboard.
          maxLength: 255
          minLength: 0
          nullable: true
          type: string
      type: object
    Database:
      properties:
        allow_multi_schema_metadata_fetch:
          type: boolean
        allows_cost_estimate:
          type: boolean
        allows_subquery:
          type: boolean
        allows_virtual_table_explore:
          type: boolean
        backend:
          type: string
        explore_database_id:
          format: int32
          type: integer
        id:
          format: int32
          type: integer
        name:
          type: string
      type: object
    DatabaseFunctionNamesResponse:
      properties:
        function_names:
          items:
            type: string
          type: array
      type: object
    DatabaseRelatedChart:
      properties:
        id:
          format: int32
          type: integer
        slice_name:
          type: string
        viz_type:
          type: string
      type: object
    DatabaseRelatedCharts:
      properties:
        count:
          description: Chart count
          format: int32
          type: integer
        result:
          description: A list of dashboards
          items:
            $ref: "#/components/schemas/DatabaseRelatedChart"
          type: array
      type: object
    DatabaseRelatedDashboard:
      properties:
        id:
          format: int32
          type: integer
        json_metadata:
          type: object
        slug:
          type: string
        title:
          type: string
      type: object
    DatabaseRelatedDashboards:
      properties:
        count:
          description: Dashboard count
          format: int32
          type: integer
        result:
          description: A list of dashboards
          items:
            $ref: "#/components/schemas/DatabaseRelatedDashboard"
          type: array
      type: object
    DatabaseRelatedObjectsResponse:
      properties:
        charts:
          $ref: "#/components/schemas/DatabaseRelatedCharts"
        dashboards:
          $ref: "#/components/schemas/DatabaseRelatedDashboards"
      type: object
    DatabaseRestApi.get:
      properties:
        allow_csv_upload:
          nullable: true
          type: boolean
        allow_ctas:
          nullable: true
          type: boolean
        allow_cvas:
          nullable: true
          type: boolean
        allow_dml:
          nullable: true
          type: boolean
        allow_multi_schema_metadata_fetch:
          nullable: true
          type: boolean
        allow_run_async:
          nullable: true
          type: boolean
        backend:
          readOnly: true
        cache_timeout:
          format: int32
          nullable: true
          type: integer
        configuration_method:
          maxLength: 255
          nullable: true
          type: string
        database_name:
          maxLength: 250
          type: string
        encrypted_extra:
          nullable: true
          type: string
        expose_in_sqllab:
          nullable: true
          type: boolean
        extra:
          nullable: true
          type: string
        force_ctas_schema:
          maxLength: 250
          nullable: true
          type: string
        id:
          format: int32
          type: integer
        impersonate_user:
          nullable: true
          type: boolean
        parameters:
          readOnly: true
        server_cert:
          nullable: true
          type: string
        sqlalchemy_uri:
          maxLength: 1024
          type: string
      required:
        - database_name
        - sqlalchemy_uri
      type: object
    DatabaseRestApi.get_list:
      properties:
        allow_csv_upload:
          nullable: true
          type: boolean
        allow_ctas:
          nullable: true
          type: boolean
        allow_cvas:
          nullable: true
          type: boolean
        allow_dml:
          nullable: true
          type: boolean
        allow_multi_schema_metadata_fetch:
          nullable: true
          type: boolean
        allow_run_async:
          nullable: true
          type: boolean
        allows_cost_estimate:
          readOnly: true
        allows_subquery:
          readOnly: true
        allows_virtual_table_explore:
          readOnly: true
        backend:
          readOnly: true
        changed_on:
          format: date-time
          nullable: true
          type: string
        changed_on_delta_humanized:
          readOnly: true
        created_by:
          $ref: "#/components/schemas/Meta18"
        database_name:
          maxLength: 250
          type: string
        explore_database_id:
          readOnly: true
        expose_in_sqllab:
          nullable: true
          type: boolean
        extra:
          nullable: true
          type: string
        force_ctas_schema:
          maxLength: 250
          nullable: true
          type: string
        id:
          format: int32
          type: integer
      required:
        - database_name
      type: object
    DatabaseRestApi.post:
      properties:
        allow_csv_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_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_multi_schema_metadata_fetch:
          description: Allow SQL Lab to fetch a list of all tables and all views across all database schemas. For large data warehouse with thousands of tables, this can be expensive and put strain on the system.
          type: boolean
        allow_run_async:
          description: Operate the database in asynchronous mode, meaning  that the queries are executed on remote workers as opposed to on the web server itself. This assumes that you have a Celery worker setup as well as a results backend. Refer to the installation docs for more information.
          type: boolean
        cache_timeout:
          description: Duration (in seconds) of the caching timeout for charts of this database. A timeout of 0 indicates that the cache never expires. Note this defaults to the global timeout if undefined.
          format: int32
          nullable: true
          type: integer
        configuration_method:
          default: sqlalchemy_form
          description: Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri.
        database_name:
          description: A database name to identify this connection.
          maxLength: 250
          minLength: 1
          type: string
        encrypted_extra:
          description: <p>JSON string containing additional connection configuration.<br>This is used to provide connection information for systems like Hive, Presto, and BigQuery, which do not conform to the username:password syntax normally used by SQLAlchemy.</p>
          nullable: true
          type: string
        engine:
          description: SQLAlchemy engine to use
          nullable: true
          type: string
        expose_in_sqllab:
          description: Expose this database to SQLLab
          type: boolean
        extra:
          description: "<p>JSON string containing extra configuration elements.<br>1. The <code>engine_params</code> object gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\">sqlalchemy.MetaData</a> call.<br>2. The <code>metadata_cache_timeout</code> is a cache timeout setting in seconds for metadata fetch of this database. Specify it as <strong>\"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}</strong>. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.<br>3. The <code>schemas_allowed_for_csv_upload</code> is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as <strong>\"schemas_allowed_for_csv_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.</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
        parameters:
          additionalProperties: {}
          description: DB-specific parameters for configuration
          type: object
        server_cert:
          description: <p>Optional CA_BUNDLE contents to validate HTTPS requests. Only available on certain database engines.</p>
          nullable: true
          type: string
        sqlalchemy_uri:
          description: <p>Refer to the <a href="https://docs.sqlalchemy.org/en/rel_1_2/core/engines.html#database-urls">SqlAlchemy docs</a> for more information on how to structure your URI.</p>
          maxLength: 1024
          minLength: 1
          type: string
      required:
        - database_name
      type: object
    DatabaseRestApi.put:
      properties:
        allow_csv_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_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_multi_schema_metadata_fetch:
          description: Allow SQL Lab to fetch a list of all tables and all views across all database schemas. For large data warehouse with thousands of tables, this can be expensive and put strain on the system.
          type: boolean
        allow_run_async:
          description: Operate the database in asynchronous mode, meaning  that the queries are executed on remote workers as opposed to on the web server itself. This assumes that you have a Celery worker setup as well as a results backend. Refer to the installation docs for more information.
          type: boolean
        cache_timeout:
          description: Duration (in seconds) of the caching timeout for charts of this database. A timeout of 0 indicates that the cache never expires. Note this defaults to the global timeout if undefined.
          format: int32
          nullable: true
          type: integer
        configuration_method:
          default: sqlalchemy_form
          description: Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri.
        database_name:
          description: A database name to identify this connection.
          maxLength: 250
          minLength: 1
          nullable: true
          type: string
        encrypted_extra:
          description: <p>JSON string containing additional connection configuration.<br>This is used to provide connection information for systems like Hive, Presto, and BigQuery, which do not conform to the username:password syntax normally used by SQLAlchemy.</p>
          nullable: true
          type: string
        engine:
          description: SQLAlchemy engine to use
          nullable: true
          type: string
        expose_in_sqllab:
          description: Expose this database to SQLLab
          type: boolean
        extra:
          description: "<p>JSON string containing extra configuration elements.<br>1. The <code>engine_params</code> object gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\">sqlalchemy.MetaData</a> call.<br>2. The <code>metadata_cache_timeout</code> is a cache timeout setting in seconds for metadata fetch of this database. Specify it as <strong>\"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}</strong>. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.<br>3. The <code>schemas_allowed_for_csv_upload</code> is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as <strong>\"schemas_allowed_for_csv_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.</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
        parameters:
          additionalProperties: {}
          description: DB-specific parameters for configuration
          type: object
        server_cert:
          description: <p>Optional CA_BUNDLE contents to validate HTTPS requests. Only available on certain database engines.</p>
          nullable: true
          type: string
        sqlalchemy_uri:
          description: <p>Refer to the <a href="https://docs.sqlalchemy.org/en/rel_1_2/core/engines.html#database-urls">SqlAlchemy docs</a> for more information on how to structure your URI.</p>
          maxLength: 1024
          minLength: 0
          type: string
      type: object
    DatabaseTestConnectionSchema:
      properties:
        configuration_method:
          default: sqlalchemy_form
          description: Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri.
        database_name:
          description: A database name to identify this connection.
          maxLength: 250
          minLength: 1
          nullable: true
          type: string
        encrypted_extra:
          description: <p>JSON string containing additional connection configuration.<br>This is used to provide connection information for systems like Hive, Presto, and BigQuery, which do not conform to the username:password syntax normally used by SQLAlchemy.</p>
          nullable: true
          type: string
        engine:
          description: SQLAlchemy engine to use
          nullable: true
          type: string
        extra:
          description: "<p>JSON string containing extra configuration elements.<br>1. The <code>engine_params</code> object gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\">sqlalchemy.MetaData</a> call.<br>2. The <code>metadata_cache_timeout</code> is a cache timeout setting in seconds for metadata fetch of this database. Specify it as <strong>\"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}</strong>. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.<br>3. The <code>schemas_allowed_for_csv_upload</code> is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as <strong>\"schemas_allowed_for_csv_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.</p>"
          type: string
        impersonate_user:
          description: If Presto, all the queries in SQL Lab are going to be executed as the currently logged on user who must have permission to run them.<br/>If Hive and hive.server2.enable.doAs is enabled, will run the queries as service account, but impersonate the currently logged on user via hive.server2.proxy.user property.
          type: boolean
        parameters:
          additionalProperties: {}
          description: DB-specific parameters for configuration
          type: object
        server_cert:
          description: <p>Optional CA_BUNDLE contents to validate HTTPS requests. Only available on certain database engines.</p>
          nullable: true
          type: string
        sqlalchemy_uri:
          description: <p>Refer to the <a href="https://docs.sqlalchemy.org/en/rel_1_2/core/engines.html#database-urls">SqlAlchemy docs</a> for more information on how to structure your URI.</p>
          maxLength: 1024
          minLength: 1
          type: string
      type: object
    DatabaseValidateParametersSchema:
      properties:
        configuration_method:
          description: Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri.
        database_name:
          description: A database name to identify this connection.
          maxLength: 250
          minLength: 1
          nullable: true
          type: string
        encrypted_extra:
          description: <p>JSON string containing additional connection configuration.<br>This is used to provide connection information for systems like Hive, Presto, and BigQuery, which do not conform to the username:password syntax normally used by SQLAlchemy.</p>
          nullable: true
          type: string
        engine:
          description: SQLAlchemy engine to use
          type: string
        extra:
          description: "<p>JSON string containing extra configuration elements.<br>1. The <code>engine_params</code> object gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\">sqlalchemy.MetaData</a> call.<br>2. The <code>metadata_cache_timeout</code> is a cache timeout setting in seconds for metadata fetch of this database. Specify it as <strong>\"metadata_cache_timeout\": {\"schema_cache_timeout\": 600, \"table_cache_timeout\": 600}</strong>. If unset, cache will not be enabled for the functionality. A timeout of 0 indicates that the cache never expires.<br>3. The <code>schemas_allowed_for_csv_upload</code> is a comma separated list of schemas that CSVs are allowed to upload to. Specify it as <strong>\"schemas_allowed_for_csv_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.</p>"
          type: string
        impersonate_user:
          description: If Presto, all the queries in SQL Lab are going to be executed as the currently logged on user who must have permission to run them.<br/>If Hive and hive.server2.enable.doAs is enabled, will run the queries as service account, but impersonate the currently logged on user via hive.server2.proxy.user property.
          type: boolean
        parameters:
          additionalProperties:
            nullable: true
          description: DB-specific parameters for configuration
          type: object
        server_cert:
          description: <p>Optional CA_BUNDLE contents to validate HTTPS requests. Only available on certain database engines.</p>
          nullable: true
          type: string
      required:
        - configuration_method
        - engine
      type: object
    DatasetColumnsPut:
      properties:
        column_name:
          maxLength: 255
          minLength: 1
          type: string
        description:
          nullable: true
          type: string
        expression:
          nullable: true
          type: string
        filterable:
          type: boolean
        groupby:
          type: boolean
        id:
          format: int32
          type: integer
        is_active:
          type: boolean
        is_dttm:
          type: boolean
        python_date_format:
          maxLength: 255
          minLength: 1
          nullable: true
          type: string
        type:
          maxLength: 32
          minLength: 1
          type: string
        uuid:
          nullable: true
          type: string
        verbose_name:
          nullable: true
          type: string
      required:
        - column_name
      type: object
    DatasetColumnsRestApi.get:
      properties:
        id:
          format: int32
          type: integer
      type: object
    DatasetColumnsRestApi.get_list:
      properties:
        id:
          format: int32
          type: integer
      type: object
    DatasetColumnsRestApi.post:
      properties:
        id:
          format: int32
          type: integer
      type: object
    DatasetColumnsRestApi.put:
      properties:
        id:
          format: int32
          type: integer
      type: object
    DatasetMetricRestApi.get:
      properties:
        id:
          format: int32
          type: integer
      type: object
    DatasetMetricRestApi.get_list:
      properties:
        id:
          format: int32
          type: integer
      type: object
    DatasetMetricRestApi.post:
      properties:
        id:
          format: int32
          type: integer
      type: object
    DatasetMetricRestApi.put:
      properties:
        id:
          format: int32
          type: integer
      type: object
    DatasetMetricsPut:
      properties:
        d3format:
          maxLength: 128
          minLength: 1
          nullable: true
          type: string
        description:
          nullable: true
          type: string
        expression:
          type: string
        id:
          format: int32
          type: integer
        metric_name:
          maxLength: 255
          minLength: 1
          type: string
        metric_type:
          maxLength: 32
          minLength: 1
          nullable: true
          type: string
        warning_text:
          nullable: true
          type: string
      required:
        - expression
        - metric_name
      type: object
    DatasetRelatedChart:
      properties:
        id:
          format: int32
          type: integer
        slice_name:
          type: string
        viz_type:
          type: string
      type: object
    DatasetRelatedCharts:
      properties:
        count:
          description: Chart count
          format: int32
          type: integer
        result:
          description: A list of dashboards
          items:
            $ref: "#/components/schemas/DatasetRelatedChart"
          type: array
      type: object
    DatasetRelatedDashboard:
      properties:
        id:
          format: int32
          type: integer
        json_metadata:
          type: object
        slug:
          type: string
        title:
          type: string
      type: object
    DatasetRelatedDashboards:
      properties:
        count:
          description: Dashboard count
          format: int32
          type: integer
        result:
          description: A list of dashboards
          items:
            $ref: "#/components/schemas/DatasetRelatedDashboard"
          type: array
      type: object
    DatasetRelatedObjectsResponse:
      properties:
        charts:
          $ref: "#/components/schemas/DatasetRelatedCharts"
        dashboards:
          $ref: "#/components/schemas/DatasetRelatedDashboards"
      type: object
    DatasetRestApi.get:
      properties:
        cache_timeout:
          format: int32
          nullable: true
          type: integer
        columns:
          $ref: "#/components/schemas/Meta22"
        database:
          $ref: "#/components/schemas/Meta23"
        datasource_type:
          readOnly: true
        default_endpoint:
          nullable: true
          type: string
        description:
          nullable: true
          type: string
        extra:
          nullable: true
          type: string
        fetch_values_predicate:
          maxLength: 1000
          nullable: true
          type: string
        filter_select_enabled:
          nullable: true
          type: boolean
        id:
          format: int32
          type: integer
        is_sqllab_view:
          nullable: true
          type: boolean
        main_dttm_col:
          maxLength: 250
          nullable: true
          type: string
        metrics:
          $ref: "#/components/schemas/Meta25"
        offset:
          format: int32
          nullable: true
          type: integer
        owners:
          $ref: "#/components/schemas/Meta24"
        schema:
          maxLength: 255
          nullable: true
          type: string
        sql:
          nullable: true
          type: string
        table_name:
          maxLength: 250
          type: string
        template_params:
          nullable: true
          type: string
        url:
          readOnly: true
      required:
        - columns
        - database
        - metrics
        - table_name
      type: object
    DatasetRestApi.get_list:
      properties:
        changed_by:
          $ref: "#/components/schemas/Meta19"
        changed_by_name:
          readOnly: true
        changed_by_url:
          readOnly: true
        changed_on_delta_humanized:
          readOnly: true
        changed_on_utc:
          readOnly: true
        database:
          $ref: "#/components/schemas/Meta21"
        default_endpoint:
          nullable: true
          type: string
        explore_url:
          readOnly: true
        extra:
          nullable: true
          type: string
        id:
          format: int32
          type: integer
        kind:
          readOnly: true
        owners:
          $ref: "#/components/schemas/Meta20"
        schema:
          maxLength: 255
          nullable: true
          type: string
        sql:
          nullable: true
          type: string
        table_name:
          maxLength: 250
          type: string
      required:
        - database
        - table_name
      type: object
    DatasetRestApi.post:
      properties:
        database:
          format: int32
          type: integer
        owners:
          items:
            format: int32
            type: integer
          type: array
        schema:
          maxLength: 250
          minLength: 0
          type: string
        table_name:
          maxLength: 250
          minLength: 1
          type: string
      required:
        - database
        - table_name
      type: object
    DatasetRestApi.put:
      properties:
        cache_timeout:
          format: int32
          nullable: true
          type: integer
        columns:
          items:
            $ref: "#/components/schemas/DatasetColumnsPut"
          type: array
        database_id:
          format: int32
          type: integer
        default_endpoint:
          nullable: true
          type: string
        description:
          nullable: true
          type: string
        extra:
          nullable: true
          type: string
        fetch_values_predicate:
          maxLength: 1000
          minLength: 0
          nullable: true
          type: string
        filter_select_enabled:
          nullable: true
          type: boolean
        is_sqllab_view:
          nullable: true
          type: boolean
        main_dttm_col:
          nullable: true
          type: string
        metrics:
          items:
            $ref: "#/components/schemas/DatasetMetricsPut"
          type: array
        offset:
          format: int32
          nullable: true
          type: integer
        owners:
          items:
            format: int32
            type: integer
          type: array
        schema:
          maxLength: 255
          minLength: 0
          nullable: true
          type: string
        sql:
          nullable: true
          type: string
        table_name:
          maxLength: 250
          minLength: 1
          nullable: true
          type: string
        template_params:
          nullable: true
          type: string
      type: object
    Datasource:
      properties:
        database_name:
          description: Datasource name
          type: string
        datasource_name:
          description: The datasource name.
          type: string
        datasource_type:
          description: The type of dataset/datasource identified on `datasource_id`.
          enum:
            - druid
            - table
            - view
          type: string
        schema:
          description: Datasource schema
          type: string
      required:
        - datasource_type
      type: object
    DistincResponseSchema:
      properties:
        count:
          description: The total number of distinct values
          format: int32
          type: integer
        result:
          items:
            $ref: "#/components/schemas/DistinctResultResponse"
          type: array
      type: object
    DistinctResultResponse:
      properties:
        text:
          description: The distinct item
          type: string
      type: object
    GetFavStarIdsSchema:
      properties:
        result:
          description: A list of results for each corresponding chart in the request
          items:
            $ref: "#/components/schemas/ChartFavStarResponseResult"
          type: array
      type: object
    LogRestApi.get:
      properties:
        action:
          maxLength: 512
          nullable: true
          type: string
        dashboard_id:
          format: int32
          nullable: true
          type: integer
        dttm:
          format: date-time
          nullable: true
          type: string
        duration_ms:
          format: int32
          nullable: true
          type: integer
        json:
          nullable: true
          type: string
        referrer:
          maxLength: 1024
          nullable: true
          type: string
        slice_id:
          format: int32
          nullable: true
          type: integer
        user:
          $ref: "#/components/schemas/Meta43"
        user_id:
          format: int32
          nullable: true
          type: integer
      type: object
    LogRestApi.get_list:
      properties:
        action:
          maxLength: 512
          nullable: true
          type: string
        dashboard_id:
          format: int32
          nullable: true
          type: integer
        dttm:
          format: date-time
          nullable: true
          type: string
        duration_ms:
          format: int32
          nullable: true
          type: integer
        json:
          nullable: true
          type: string
        referrer:
          maxLength: 1024
          nullable: true
          type: string
        slice_id:
          format: int32
          nullable: true
          type: integer
        user:
          $ref: "#/components/schemas/Meta42"
        user_id:
          format: int32
          nullable: true
          type: integer
      type: object
    LogRestApi.post:
      properties:
        id:
          format: int32
          type: integer
      type: object
    LogRestApi.put:
      properties:
        action:
          maxLength: 512
          nullable: true
          type: string
        dttm:
          format: date-time
          nullable: true
          type: string
        json:
          nullable: true
          type: string
        user:
          nullable: true
      type: object
    Meta:
      properties:
        first_name:
          maxLength: 64
          type: string
        id:
          format: int32
          type: integer
      required:
        - first_name
      type: object
    Meta1:
      properties:
        first_name:
          maxLength: 64
          type: string
        id:
          format: int32
          type: integer
      required:
        - first_name
      type: object
    Meta10:
      properties:
        first_name:
          maxLength: 64
          type: string
        id:
          format: int32
          type: integer
        last_name:
          maxLength: 64
          type: string
        username:
          maxLength: 64
          type: string
      required:
        - first_name
        - last_name
        - username
      type: object
    Meta11:
      properties:
        first_name:
          maxLength: 64
          type: string
        id:
          format: int32
          type: integer
        last_name:
          maxLength: 64
          type: string
      required:
        - first_name
        - last_name
      type: object
    Meta12:
      properties:
        active:
          nullable: true
          type: boolean
        changed_on:
          format: date-time
          nullable: true
          type: string
        created_on:
          format: date-time
          nullable: true
          type: string
        email:
          maxLength: 64
          type: string
        fail_login_count:
          format: int32
          nullable: true
          type: integer
        first_name:
          maxLength: 64
          type: string
        id:
          format: int32
          type: integer
        last_login:
          format: date-time
          nullable: true
          type: string
        last_name:
          maxLength: 64
          type: string
        login_count:
          format: int32
          nullable: true
          type: integer
        password:
          maxLength: 256
          nullable: true
          type: string
        username:
          maxLength: 64
          type: string
      required:
        - email
        - first_name
        - last_name
        - username
      type: object
    Meta13:
      properties:
        first_name:
          maxLength: 64
          type: string
        id:
          format: int32
          type: integer
        last_name:
          maxLength: 64
          type: string
      required:
        - first_name
        - last_name
      type: object
    Meta14:
      properties:
        first_name:
          maxLength: 64
          type: string
        id:
          format: int32
          type: integer
        last_name:
          maxLength: 64
          type: string
      required:
        - first_name
        - last_name
      type: object
    Meta15:
      properties:
        first_name:
          maxLength: 64
          type: string
        id:
          format: int32
          type: integer
        last_name:
          maxLength: 64
          type: string
        username:
          maxLength: 64
          type: string
      required:
        - first_name
        - last_name
        - username
      type: object
    Meta16:
      properties:
        id:
          format: int32
          type: integer
        name:
          maxLength: 64
          type: string
      required:
        - name
      type: object
    Meta17:
      properties:
        first_name:
          maxLength: 64
          type: string
        id:
          format: int32
          type: integer
        last_name:
          maxLength: 64
          type: string
        username:
          maxLength: 64
          type: string
      required:
        - first_name
        - last_name
        - username
      type: object
    Meta18:
      properties:
        first_name:
          maxLength: 64
          type: string
        last_name:
          maxLength: 64
          type: string
      required:
        - first_name
        - last_name
      type: object
    Meta19:
      properties:
        first_name:
          maxLength: 64
          type: string
        username:
          maxLength: 64
          type: string
      required:
        - first_name
        - username
      type: object
    Meta2:
      properties:
        id:
          format: int32
          type: integer
        name:
          maxLength: 250
          nullable: true
          type: string
      type: object
    Meta20:
      properties:
        first_name:
          maxLength: 64
          type: string
        id:
          format: int32
          type: integer
        last_name:
          maxLength: 64
          type: string
        username:
          maxLength: 64
          type: string
      required:
        - first_name
        - last_name
        - username
      type: object
    Meta21:
      properties:
        database_name:
          maxLength: 250
          type: string
        id:
          format: int32
          type: integer
      required:
        - database_name
      type: object
    Meta22:
      properties:
        changed_on:
          format: date-time
          nullable: true
          type: string
        column_name:
          maxLength: 255
          type: string
        created_on:
          format: date-time
          nullable: true
          type: string
        description:
          nullable: true
          type: string
        expression:
          nullable: true
          type: string
        filterable:
          nullable: true
          type: boolean
        groupby:
          nullable: true
          type: boolean
        id:
          format: int32
          type: integer
        is_active:
          nullable: true
          type: boolean
        is_dttm:
          nullable: true
          type: boolean
        python_date_format:
          maxLength: 255
          nullable: true
          type: string
        type:
          maxLength: 32
          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
    Meta23:
      properties:
        database_name:
          maxLength: 250
          type: string
        id:
          format: int32
          type: integer
      required:
        - database_name
      type: object
    Meta24:
      properties:
        first_name:
          maxLength: 64
          type: string
        id:
          format: int32
          type: integer
        last_name:
          maxLength: 64
          type: string
        username:
          maxLength: 64
          type: string
      required:
        - first_name
        - last_name
        - username
      type: object
    Meta25:
      properties:
        changed_on:
          format: date-time
          nullable: true
          type: string
        created_on:
          format: date-time
          nullable: true
          type: string
        d3format:
          maxLength: 128
          nullable: true
          type: string
        description:
          nullable: true
          type: string
        expression:
          type: string
        extra:
          nullable: true
          type: string
        id:
          format: int32
          type: integer
        metric_name:
          maxLength: 255
          type: string
        metric_type:
          maxLength: 32
          nullable: true
          type: string
        uuid:
          format: uuid
          nullable: true
          type: string
        verbose_name:
          maxLength: 1024
          nullable: true
          type: string
        warning_text:
          nullable: true
          type: string
      required:
        - expression
        - metric_name
      type: object
    Meta26:
      properties:
        first_name:
          maxLength: 64
          type: string
        id:
          format: int32
          type: integer
        last_name:
          maxLength: 64
          type: string
        username:
          maxLength: 64
          type: string
      required:
        - first_name
        - last_name
        - username
      type: object
    Meta27:
      properties:
        database_name:
          maxLength: 250
          type: string
      required:
        - database_name
      type: object
    Meta28:
      properties:
        id:
          format: int32
          type: integer
      type: object
    Meta29:
      properties:
        first_name:
          maxLength: 64
          type: string
        id:
          format: int32
          type: integer
        last_name:
          maxLength: 64
          type: string
      required:
        - first_name
        - last_name
      type: object
    Meta3:
      properties:
        first_name:
          maxLength: 64
          type: string
        last_name:
          maxLength: 64
          type: string
      required:
        - first_name
        - last_name
      type: object
    Meta30:
      properties:
        database_name:
          maxLength: 250
          type: string
        id:
          format: int32
          type: integer
      required:
        - database_name
      type: object
    Meta31:
      properties:
        first_name:
          maxLength: 64
          type: string
        id:
          format: int32
          type: integer
        last_name:
          maxLength: 64
          type: string
      required:
        - first_name
        - last_name
      type: object
    Meta32:
      properties:
        database_name:
          maxLength: 250
          type: string
        id:
          format: int32
          type: integer
      required:
        - database_name
      type: object
    Meta33:
      properties:
        first_name:
          maxLength: 64
          type: string
        last_name:
          maxLength: 64
          type: string
      required:
        - first_name
        - last_name
      type: object
    Meta34:
      properties:
        first_name:
          maxLength: 64
          type: string
        last_name:
          maxLength: 64
          type: string
      required:
        - first_name
        - last_name
      type: object
    Meta35:
      properties:
        id:
          format: int32
          type: integer
        type:
          maxLength: 50
          type: string
      required:
        - type
      type: object
    Meta36:
      properties:
        first_name:
          maxLength: 64
          type: string
        id:
          format: int32
          type: integer
        last_name:
          maxLength: 64
          type: string
      required:
        - first_name
        - last_name
      type: object
    Meta37:
      properties:
        database_name:
          maxLength: 250
          type: string
        id:
          format: int32
          type: integer
      required:
        - database_name
      type: object
    Meta38:
      properties:
        id:
          format: int32
          type: integer
        recipient_config_json:
          nullable: true
          type: string
        type:
          maxLength: 50
          type: string
      required:
        - type
      type: object
    Meta39:
      properties:
        first_name:
          maxLength: 64
          type: string
        id:
          format: int32
          type: integer
        last_name:
          maxLength: 64
          type: string
      required:
        - first_name
        - last_name
      type: object
    Meta4:
      properties:
        first_name:
          maxLength: 64
          type: string
        last_name:
          maxLength: 64
          type: string
      required:
        - first_name
        - last_name
      type: object
    Meta40:
      properties:
        id:
          format: int32
          type: integer
        slice_name:
          maxLength: 250
          nullable: true
          type: string
        viz_type:
          maxLength: 250
          nullable: true
          type: string
      type: object
    Meta41:
      properties:
        dashboard_title:
          maxLength: 500
          nullable: true
          type: string
        id:
          format: int32
          type: integer
      type: object
    Meta42:
      properties:
        username:
          maxLength: 64
          type: string
      required:
        - username
      type: object
    Meta43:
      properties:
        username:
          maxLength: 64
          type: string
      required:
        - username
      type: object
    Meta5:
      properties:
        first_name:
          maxLength: 64
          type: string
        id:
          format: int32
          type: integer
        last_name:
          maxLength: 64
          type: string
      required:
        - first_name
        - last_name
      type: object
    Meta6:
      properties:
        default_endpoint:
          nullable: true
          type: string
        table_name:
          maxLength: 250
          type: string
      required:
        - table_name
      type: object
    Meta7:
      properties:
        first_name:
          maxLength: 64
          type: string
        id:
          format: int32
          type: integer
        last_name:
          maxLength: 64
          type: string
        username:
          maxLength: 64
          type: string
      required:
        - first_name
        - last_name
        - username
      type: object
    Meta8:
      properties:
        first_name:
          maxLength: 64
          type: string
        last_name:
          maxLength: 64
          type: string
      required:
        - first_name
        - last_name
      type: object
    Meta9:
      properties:
        dashboard_title:
          maxLength: 500
          nullable: true
          type: string
        id:
          format: int32
          type: integer
      type: object
    QueryRestApi.get:
      properties:
        changed_on:
          format: date-time
          nullable: true
          type: string
        client_id:
          maxLength: 11
          type: string
        database:
          $ref: "#/components/schemas/Meta28"
        end_result_backend_time:
          nullable: true
          type: number
        end_time:
          nullable: true
          type: number
        error_message:
          nullable: true
          type: string
        executed_sql:
          nullable: true
          type: string
        id:
          format: int32
          type: integer
        limit:
          format: int32
          nullable: true
          type: integer
        progress:
          format: int32
          nullable: true
          type: integer
        results_key:
          maxLength: 64
          nullable: true
          type: string
        rows:
          format: int32
          nullable: true
          type: integer
        schema:
          maxLength: 256
          nullable: true
          type: string
        select_as_cta:
          nullable: true
          type: boolean
        select_as_cta_used:
          nullable: true
          type: boolean
        select_sql:
          nullable: true
          type: string
        sql:
          nullable: true
          type: string
        sql_editor_id:
          maxLength: 256
          nullable: true
          type: string
        start_running_time:
          nullable: true
          type: number
        start_time:
          nullable: true
          type: number
        status:
          maxLength: 16
          nullable: true
          type: string
        tab_name:
          maxLength: 256
          nullable: true
          type: string
        tmp_schema_name:
          maxLength: 256
          nullable: true
          type: string
        tmp_table_name:
          maxLength: 256
          nullable: true
          type: string
        tracking_url:
          nullable: true
          type: string
      required:
        - client_id
        - database
      type: object
    QueryRestApi.get_list:
      properties:
        changed_on:
          format: date-time
          nullable: true
          type: string
        database:
          $ref: "#/components/schemas/Meta27"
        end_time:
          nullable: true
          type: number
        executed_sql:
          nullable: true
          type: string
        id:
          format: int32
          type: integer
        rows:
          format: int32
          nullable: true
          type: integer
        schema:
          maxLength: 256
          nullable: true
          type: string
        sql:
          nullable: true
          type: string
        sql_tables:
          readOnly: true
        start_time:
          nullable: true
          type: number
        status:
          maxLength: 16
          nullable: true
          type: string
        tab_name:
          maxLength: 256
          nullable: true
          type: string
        tmp_table_name:
          maxLength: 256
          nullable: true
          type: string
        tracking_url:
          nullable: true
          type: string
        user:
          $ref: "#/components/schemas/Meta26"
      required:
        - database
      type: object
    QueryRestApi.post:
      properties:
        id:
          format: int32
          type: integer
      type: object
    QueryRestApi.put:
      properties:
        id:
          format: int32
          type: integer
      type: object
    RelatedResponseSchema:
      properties:
        count:
          description: The total number of related values
          format: int32
          type: integer
        result:
          items:
            $ref: "#/components/schemas/RelatedResultResponse"
          type: array
      type: object
    RelatedResultResponse:
      properties:
        text:
          description: The related item string representation
          type: string
        value:
          description: The related item identifier
          format: int32
          type: integer
      type: object
    ReportExecutionLogRestApi.get:
      properties:
        end_dttm:
          format: date-time
          nullable: true
          type: string
        error_message:
          nullable: true
          type: string
        id:
          format: int32
          type: integer
        scheduled_dttm:
          format: date-time
          type: string
        start_dttm:
          format: date-time
          nullable: true
          type: string
        state:
          maxLength: 50
          type: string
        uuid:
          format: uuid
          nullable: true
          type: string
        value:
          format: float
          nullable: true
          type: number
        value_row_json:
          nullable: true
          type: string
      required:
        - scheduled_dttm
        - state
      type: object
    ReportExecutionLogRestApi.get_list:
      properties:
        end_dttm:
          format: date-time
          nullable: true
          type: string
        error_message:
          nullable: true
          type: string
        id:
          format: int32
          type: integer
        scheduled_dttm:
          format: date-time
          type: string
        start_dttm:
          format: date-time
          nullable: true
          type: string
        state:
          maxLength: 50
          type: string
        uuid:
          format: uuid
          nullable: true
          type: string
        value:
          format: float
          nullable: true
          type: number
        value_row_json:
          nullable: true
          type: string
      required:
        - scheduled_dttm
        - state
      type: object
    ReportExecutionLogRestApi.post:
      properties:
        id:
          format: int32
          type: integer
      type: object
    ReportExecutionLogRestApi.put:
      properties:
        id:
          format: int32
          type: integer
      type: object
    ReportRecipient:
      properties:
        recipient_config_json:
          $ref: "#/components/schemas/ReportRecipientConfigJSON"
        type:
          description: The recipient type, check spec for valid options
          enum:
            - Email
            - Slack
          type: string
      required:
        - type
      type: object
    ReportRecipientConfigJSON:
      properties:
        target:
          type: string
      type: object
    ReportScheduleRestApi.get:
      properties:
        active:
          nullable: true
          type: boolean
        chart:
          $ref: "#/components/schemas/Meta40"
        context_markdown:
          nullable: true
          type: string
        creation_method:
          maxLength: 255
          nullable: true
          type: string
        crontab:
          maxLength: 1000
          type: string
        dashboard:
          $ref: "#/components/schemas/Meta41"
        database:
          $ref: "#/components/schemas/Meta37"
        description:
          nullable: true
          type: string
        grace_period:
          format: int32
          nullable: true
          type: integer
        id:
          format: int32
          type: integer
        last_eval_dttm:
          format: date-time
          nullable: true
          type: string
        last_state:
          maxLength: 50
          nullable: true
          type: string
        last_value:
          format: float
          nullable: true
          type: number
        last_value_row_json:
          nullable: true
          type: string
        log_retention:
          format: int32
          nullable: true
          type: integer
        name:
          maxLength: 150
          type: string
        owners:
          $ref: "#/components/schemas/Meta39"
        recipients:
          $ref: "#/components/schemas/Meta38"
        report_format:
          maxLength: 50
          nullable: true
          type: string
        sql:
          nullable: true
          type: string
        timezone:
          maxLength: 100
          type: string
        type:
          maxLength: 50
          type: string
        validator_config_json:
          nullable: true
          type: string
        validator_type:
          maxLength: 100
          nullable: true
          type: string
        working_timeout:
          format: int32
          nullable: true
          type: integer
      required:
        - crontab
        - name
        - recipients
        - type
      type: object
    ReportScheduleRestApi.get_list:
      properties:
        active:
          nullable: true
          type: boolean
        changed_by:
          $ref: "#/components/schemas/Meta34"
        changed_on:
          format: date-time
          nullable: true
          type: string
        changed_on_delta_humanized:
          readOnly: true
        created_by:
          $ref: "#/components/schemas/Meta33"
        created_on:
          format: date-time
          nullable: true
          type: string
        creation_method:
          maxLength: 255
          nullable: true
          type: string
        crontab:
          maxLength: 1000
          type: string
        crontab_humanized:
          readOnly: true
        description:
          nullable: true
          type: string
        id:
          format: int32
          type: integer
        last_eval_dttm:
          format: date-time
          nullable: true
          type: string
        last_state:
          maxLength: 50
          nullable: true
          type: string
        name:
          maxLength: 150
          type: string
        owners:
          $ref: "#/components/schemas/Meta36"
        recipients:
          $ref: "#/components/schemas/Meta35"
        timezone:
          maxLength: 100
          type: string
        type:
          maxLength: 50
          type: string
      required:
        - crontab
        - name
        - recipients
        - type
      type: object
    ReportScheduleRestApi.post:
      properties:
        active:
          type: boolean
        chart:
          format: int32
          nullable: true
          type: integer
        context_markdown:
          description: Markdown description
          nullable: true
          type: string
        creation_method:
          description: Creation method is used to inform the frontend whether the report/alert was created in the dashboard, chart, or alerts and reports UI.
        crontab:
          description: A CRON expression.[Crontab Guru](https://crontab.guru/) is a helpful resource that can help you craft a CRON expression.
          example: "*/5 * * * *"
          maxLength: 1000
          minLength: 1
          type: string
        dashboard:
          format: int32
          nullable: true
          type: integer
        database:
          format: int32
          type: integer
        description:
          description: Use a nice description to give context to this Alert/Report
          example: Daily sales dashboard to marketing
          nullable: true
          type: string
        grace_period:
          description: Once an alert is triggered, how long, in seconds, before Superset nags you again. (in seconds)
          example: 14400
          format: int32
          minimum: 1
          type: integer
        log_retention:
          description: How long to keep the logs around for this report (in days)
          example: 90
          format: int32
          minimum: 1
          type: integer
        name:
          description: The report schedule name.
          example: Daily dashboard email
          maxLength: 150
          minLength: 1
          type: string
        owners:
          items:
            description: Owner are users ids allowed to delete or change this report. If left empty you will be one of the owners of the report.
            format: int32
            type: integer
          type: array
        recipients:
          items:
            $ref: "#/components/schemas/ReportRecipient"
          type: array
        report_format:
          enum:
            - PNG
            - CSV
            - TEXT
          type: string
        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.
          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:
            - Not Null - When the return value is Not NULL, Empty, or 0
            - Operator - When `sql_return_value comparison_operator threshold` is True e.g. `50 <= 75`<br>Supports the comparison operators <, <=, >, >=, ==, and !=
          enum:
            - not null
            - operator
          type: string
        working_timeout:
          description: If an alert is staled at a working state, how long until it's state is reseted to error
          example: 3600
          format: int32
          minimum: 1
          type: integer
      required:
        - crontab
        - name
        - type
      type: object
    ReportScheduleRestApi.put:
      properties:
        active:
          type: boolean
        chart:
          format: int32
          nullable: true
          type: integer
        context_markdown:
          description: Markdown description
          nullable: true
          type: string
        creation_method:
          description: Creation method is used to inform the frontend whether the report/alert was created in the dashboard, chart, or alerts and reports UI.
          nullable: true
        crontab:
          description: A CRON expression.[Crontab Guru](https://crontab.guru/) is a helpful resource that can help you craft a CRON expression.
          maxLength: 1000
          minLength: 1
          type: string
        dashboard:
          format: int32
          nullable: true
          type: integer
        database:
          format: int32
          type: integer
        description:
          description: Use a nice description to give context to this Alert/Report
          example: Daily sales dashboard to marketing
          nullable: true
          type: string
        grace_period:
          description: Once an alert is triggered, how long, in seconds, before Superset nags you again. (in seconds)
          example: 14400
          format: int32
          minimum: 1
          type: integer
        log_retention:
          description: How long to keep the logs around for this report (in days)
          example: 90
          format: int32
          minimum: 1
          type: integer
        name:
          description: The report schedule name.
          maxLength: 150
          minLength: 1
          type: string
        owners:
          items:
            description: Owner are users ids allowed to delete or change this report. If left empty you will be one of the owners of the report.
            format: int32
            type: integer
          type: array
        recipients:
          items:
            $ref: "#/components/schemas/ReportRecipient"
          type: array
        report_format:
          enum:
            - PNG
            - CSV
            - TEXT
          type: string
        sql:
          description: A SQL statement that defines whether the alert should get triggered or not. The query is expected to return either NULL or a number value.
          example: SELECT value FROM time_series_table
          nullable: true
          type: string
        timezone:
          description: A timezone string that represents the location of the timezone.
          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:
            - Not Null - When the return value is Not NULL, Empty, or 0
            - Operator - When `sql_return_value comparison_operator threshold` is True e.g. `50 <= 75`<br>Supports the comparison operators <, <=, >, >=, ==, and !=
          enum:
            - not null
            - operator
          nullable: true
          type: string
        working_timeout:
          description: If an alert is staled at a working state, how long until it's state is reseted to error
          example: 3600
          format: int32
          minimum: 1
          nullable: true
          type: integer
      type: object
    Roles:
      properties:
        id:
          format: int32
          type: integer
        name:
          type: string
      type: object
    SavedQueryRestApi.get:
      properties:
        created_by:
          $ref: "#/components/schemas/Meta31"
        database:
          $ref: "#/components/schemas/Meta32"
        description:
          nullable: true
          type: string
        id:
          format: int32
          type: integer
        label:
          maxLength: 256
          nullable: true
          type: string
        schema:
          maxLength: 128
          nullable: true
          type: string
        sql:
          nullable: true
          type: string
        sql_tables:
          readOnly: true
      type: object
    SavedQueryRestApi.get_list:
      properties:
        changed_on_delta_humanized:
          readOnly: true
        created_by:
          $ref: "#/components/schemas/Meta29"
        created_on:
          format: date-time
          nullable: true
          type: string
        database:
          $ref: "#/components/schemas/Meta30"
        db_id:
          format: int32
          nullable: true
          type: integer
        description:
          nullable: true
          type: string
        extra:
          readOnly: true
        id:
          format: int32
          type: integer
        label:
          maxLength: 256
          nullable: true
          type: string
        last_run_delta_humanized:
          readOnly: true
        rows:
          format: int32
          nullable: true
          type: integer
        schema:
          maxLength: 128
          nullable: true
          type: string
        sql:
          nullable: true
          type: string
        sql_tables:
          readOnly: true
      type: object
    SavedQueryRestApi.post:
      properties:
        db_id:
          format: int32
          nullable: true
          type: integer
        description:
          nullable: true
          type: string
        label:
          maxLength: 256
          nullable: true
          type: string
        schema:
          maxLength: 128
          nullable: true
          type: string
        sql:
          nullable: true
          type: string
      type: object
    SavedQueryRestApi.put:
      properties:
        db_id:
          format: int32
          nullable: true
          type: integer
        description:
          nullable: true
          type: string
        label:
          maxLength: 256
          nullable: true
          type: string
        schema:
          maxLength: 128
          nullable: true
          type: string
        sql:
          nullable: true
          type: string
      type: object
    SchemasResponseSchema:
      properties:
        result:
          items:
            description: A database schema name
            type: string
          type: array
      type: object
    SelectStarResponseSchema:
      properties:
        result:
          description: SQL select star
          type: string
      type: object
    TableMetadataColumnsResponse:
      properties:
        duplicates_constraint:
          type: string
        keys:
          description: ""
          items:
            type: string
          type: array
        longType:
          description: The actual backend long type for the column
          type: string
        name:
          description: The column name
          type: string
        type:
          description: The column type
          type: string
      type: object
    TableMetadataForeignKeysIndexesResponse:
      properties:
        column_names:
          items:
            description: A list of column names that compose the foreign key or index
            type: string
          type: array
        name:
          description: The name of the foreign key or index
          type: string
        options:
          $ref: "#/components/schemas/TableMetadataOptionsResponse"
        referred_columns:
          items:
            type: string
          type: array
        referred_schema:
          type: string
        referred_table:
          type: string
        type:
          type: string
      type: object
    TableMetadataOptionsResponse:
      properties:
        deferrable:
          type: boolean
        initially:
          type: boolean
        match:
          type: boolean
        ondelete:
          type: boolean
        onupdate:
          type: boolean
      type: object
    TableMetadataPrimaryKeyResponse:
      properties:
        column_names:
          items:
            description: A list of column names that compose the primary key
            type: string
          type: array
        name:
          description: The primary key index name
          type: string
        type:
          type: string
      type: object
    TableMetadataResponseSchema:
      properties:
        columns:
          description: A list of columns and their metadata
          items:
            $ref: "#/components/schemas/TableMetadataColumnsResponse"
          type: array
        foreignKeys:
          description: A list of foreign keys and their metadata
          items:
            $ref: "#/components/schemas/TableMetadataForeignKeysIndexesResponse"
          type: array
        indexes:
          description: A list of indexes and their metadata
          items:
            $ref: "#/components/schemas/TableMetadataForeignKeysIndexesResponse"
          type: array
        name:
          description: The name of the table
          type: string
        primaryKey:
          allOf:
            - $ref: "#/components/schemas/TableMetadataPrimaryKeyResponse"
          description: Primary keys metadata
        selectStar:
          description: SQL select star
          type: string
      type: object
    User:
      properties:
        first_name:
          type: string
        id:
          format: int32
          type: integer
        last_name:
          type: string
        username:
          type: string
      type: object
    ValidatorConfigJSON:
      properties:
        op:
          description: |
            The operation to compare with a threshold to apply to the SQL output
          enum:
            - <
            - <=
            - ">"
            - ">="
            - ==
            - "!="
          type: string
        threshold:
          format: int32
          type: integer
      type: object
    database_schemas_query_schema:
      properties:
        force:
          type: boolean
      type: object
    get_delete_ids_schema:
      items:
        type: integer
      type: array
    get_export_ids_schema:
      items:
        type: integer
      type: array
    get_fav_star_ids_schema:
      items:
        type: integer
      type: array
    get_info_schema:
      properties:
        add_columns:
          additionalProperties:
            properties:
              page:
                type: integer
              page_size:
                type: integer
            type: object
          type: object
        edit_columns:
          additionalProperties:
            properties:
              page:
                type: integer
              page_size:
                type: integer
            type: object
          type: object
        keys:
          items:
            enum:
              - add_columns
              - edit_columns
              - filters
              - permissions
              - add_title
              - edit_title
              - none
            type: string
          type: array
      type: object
    get_item_schema:
      properties:
        columns:
          items:
            type: string
          type: array
        keys:
          items:
            enum:
              - show_columns
              - description_columns
              - label_columns
              - show_title
              - none
            type: string
          type: array
      type: object
    get_list_schema:
      properties:
        columns:
          items:
            type: string
          type: array
        filters:
          items:
            properties:
              col:
                type: string
              opr:
                type: string
              value:
                anyOf:
                  - type: number
                  - type: string
                  - type: boolean
                  - items: {}
                    type: array
            required:
              - col
              - opr
              - value
            type: object
          type: array
        keys:
          items:
            enum:
              - list_columns
              - order_columns
              - label_columns
              - description_columns
              - list_title
              - none
            type: string
          type: array
        order_column:
          type: string
        order_direction:
          enum:
            - asc
            - desc
          type: string
        page:
          type: integer
        page_size:
          type: integer
      type: object
    get_related_schema:
      properties:
        filter:
          type: string
        include_ids:
          items:
            type: integer
          type: array
        page:
          type: integer
        page_size:
          type: integer
      type: object
    screenshot_query_schema:
      properties:
        force:
          type: boolean
        thumb_size:
          items:
            type: integer
          type: array
        window_size:
          items:
            type: integer
          type: array
      type: object
    thumbnail_query_schema:
      properties:
        force:
          type: boolean
      type: object
  securitySchemes:
    jwt:
      bearerFormat: JWT
      scheme: bearer
      type: http
    jwt_refresh:
      bearerFormat: JWT
      scheme: bearer
      type: http
