{
  "openapi": "3.1.0",
  "info": {
    "title": "Waylay Query: timeseries queries (v1 protocol)",
    "description": "\nExecute and store queries on the Waylay timeseries.\n\nProtocol version: v1.",
    "version": "0.6.8"
  },
  "paths": {
    "/queries/v1": {
      "get": {
        "tags": [
          "Status"
        ],
        "summary": "Get Version And Health",
        "description": "Get the version and health status for waylay-query.",
        "operationId": "get_version_and_health_queries_v1_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "type": "object",
                  "title": "Response Get Version And Health Queries V1 Get"
                }
              }
            }
          }
        },
        "security": [
          {
            "waylayApiKeySecret": []
          }
        ]
      }
    },
    "/queries/v1/data": {
      "post": {
        "tags": [
          "Execute Queries"
        ],
        "summary": "Execute Query",
        "description": "Execute a timeseries query.\n\nExecutes the timeseries query specified in the request body,\nafter applying any overrides from the url parameters.\n\nNote that string values in the query body can contain `{var_name}` placeholders.\nThese will get replaced with by `var_name` bindings\nin the query body for that variable.\n\n```json\n{\n    \"station_id\": \"29758\",\n    \"resource\": \"weather_station_{station_id}\",\n    ...\n}\n```\nresults in using a `weather_station_29758` resource.",
        "operationId": "execute_query_queries_v1_data_post",
        "parameters": [
          {
            "name": "resource",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "title": "Resource",
              "description": "Default Resource Override.",
              "examples": [
                "13efb488-75ac-4dac-828a-d49c5c2ebbfc"
              ]
            },
            "description": "Default Resource Override."
          },
          {
            "name": "metric",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "title": "Metric",
              "description": "Default Metric Override.",
              "examples": [
                "temperature",
                "uptime"
              ]
            },
            "description": "Default Metric Override."
          },
          {
            "name": "aggregation",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "title": "Aggregation Override.",
              "oneOf": [
                {
                  "const": "first",
                  "title": "First",
                  "description": "Use the first value (in time) to represent all data for the sample interval."
                },
                {
                  "const": "last",
                  "title": "Last",
                  "description": "Use the last value (in time) to represent all data for the sample interval."
                },
                {
                  "const": "mean",
                  "title": "Mean",
                  "description": "Aggregate data by the mean value: The sum of values divided by number of observations."
                },
                {
                  "const": "median",
                  "title": "Median",
                  "description": "Aggregate data by the median value: The n/2-th value when ordered, the average of the (n-1)/2-th and (n+1)/2-th value when n is uneven."
                },
                {
                  "const": "sum",
                  "title": "Sum",
                  "description": "The sum of all values summarizes the data for the sample interval."
                },
                {
                  "const": "count",
                  "title": "Count",
                  "description": "Use the count of observations in the sample interval."
                },
                {
                  "const": "count-numeric",
                  "title": "Count Numeric",
                  "description": "Use the count of numeric observations in the sample interval."
                },
                {
                  "const": "count-non-numeric",
                  "title": "Count Non-numeric",
                  "description": "Use the count of non-numeric observations in the sample interval."
                },
                {
                  "const": "std",
                  "title": "Standard Deviation",
                  "description": "Use the standard deviation of all observations in the sample interval."
                },
                {
                  "const": "max",
                  "title": "Maximum",
                  "description": "Use the maximum of all values in the sample interval."
                },
                {
                  "const": "min",
                  "title": "Minimum",
                  "description": "Use the minimum of all values in the sample interval."
                },
                {
                  "title": "Precentile",
                  "description": "Aggregate data by the p-th percentile, where p is a number between 0 and 1.",
                  "pattern": "^percentile\\((1(\\.0*)?)|(0\\.[0-9]*)\\)$",
                  "example": "percentile(0.02)"
                }
              ]
            }
          },
          {
            "name": "interpolation",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/InterpolationMethod",
              "title": "Interpolation Override.",
              "oneOf": [
                {
                  "const": "pad",
                  "title": "pad",
                  "description": "Interpolate with the value of the first observed point. This method also extrapolates."
                },
                {
                  "const": "fixed",
                  "title": "fixed",
                  "description": "Interpolate with a fixed, user-specified value. This method also extrapolates."
                },
                {
                  "const": "backfill",
                  "title": "backfill",
                  "description": "Same as pad, but using the last observed value. This method also extrapolates"
                },
                {
                  "const": "linear",
                  "title": "linear",
                  "description": "Linearly go from the first observed value of the gap to the last observed oneThis method also extrapolates"
                },
                {
                  "const": "nearest",
                  "title": "nearest",
                  "description": "Use the value that is closest in time."
                },
                {
                  "const": "zero",
                  "title": "zero",
                  "description": "Interpolate with a spline function of order 0, which is a piecewise polynomial."
                },
                {
                  "const": "slinear",
                  "title": "slinear",
                  "description": "Interpolate with a spline function of order 1, which is a piecewise polynomial."
                },
                {
                  "const": "quadratic",
                  "title": "quadratic",
                  "description": "Interpolate with a spline function of order 2, which is a piecewise polynomial."
                },
                {
                  "const": "cubic",
                  "title": "cubic",
                  "description": "Interpolate with a spline function of order 3, which is a piecewise polynomial."
                },
                {
                  "const": "polynomial",
                  "title": "polynomial",
                  "description": "Interpolate with a polynomial of the lowest possible degree passing trough the data points."
                },
                {
                  "const": "spline",
                  "title": "spline",
                  "description": "Interpolate with a spline function of a user-specified order."
                },
                {
                  "const": "from_derivatives",
                  "title": "from_derivatives",
                  "description": "Interpolate with the derivative of order 1."
                },
                {
                  "const": "pchip",
                  "title": "pchip",
                  "description": "Interpolate with a piecewise cubic spline function."
                },
                {
                  "const": "akima",
                  "title": "akima",
                  "description": "Interpolate with a non-smoothing spline of order 2, called Akima interpolation."
                }
              ]
            }
          },
          {
            "name": "freq",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "title": "Grouping Interval Override",
              "description": "Override for the `freq` query attribute.",
              "oneOf": [
                {
                  "type": "string",
                  "format": "period",
                  "example": "PT3H15M",
                  "pattern": "^P([0-9]+Y)?([0-9]+M)?([0-9]+W)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\.[0-9]*)?S)?)?$",
                  "title": "ISO8601 period ",
                  "description": "A period in [ISO8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) format."
                },
                {
                  "title": "Inferred Frequency",
                  "type": "string",
                  "description": "When `inferred` is specified, the frequency of aggregation will be inferred from the main/first time series. This can be used to regularize the time series",
                  "const": "inferred"
                }
              ]
            },
            "description": "Override for the `freq` query attribute."
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "title": "From Override.",
              "oneOf": [
                {
                  "title": "ISO8601 absolute timestamp",
                  "type": "string",
                  "format": "date-time",
                  "example": "2018-03-21T12:23:00+01:00",
                  "description": "A date or date-time in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) format. When no timezone is specified, the UTC timezone is assumed (`+00:00`)",
                  "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}(T.*)?"
                },
                {
                  "type": "integer",
                  "title": "UNIX epoch milliseconds",
                  "minimum": 0,
                  "description": "Absolute timestamp milliseconds in unix epoch since 1970-01-01.",
                  "example": 1534836422284
                },
                {
                  "type": "string",
                  "format": "period",
                  "example": "PT3H15M",
                  "pattern": "^P([0-9]+Y)?([0-9]+M)?([0-9]+W)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\.[0-9]*)?S)?)?$",
                  "title": "ISO8601 Period Before Now",
                  "description": "Specifies a timestamp before _now_ as a period in [ISO8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) format."
                }
              ]
            }
          },
          {
            "name": "until",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "title": "From Override.",
              "oneOf": [
                {
                  "title": "ISO8601 absolute timestamp",
                  "type": "string",
                  "format": "date-time",
                  "example": "2018-03-21T12:23:00+01:00",
                  "description": "A date or date-time in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) format. When no timezone is specified, the UTC timezone is assumed (`+00:00`)",
                  "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}(T.*)?"
                },
                {
                  "type": "integer",
                  "title": "UNIX epoch milliseconds",
                  "minimum": 0,
                  "description": "Absolute timestamp milliseconds in unix epoch since 1970-01-01.",
                  "example": 1534836422284
                },
                {
                  "type": "string",
                  "format": "period",
                  "example": "PT3H15M",
                  "pattern": "^P([0-9]+Y)?([0-9]+M)?([0-9]+W)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\.[0-9]*)?S)?)?$",
                  "title": "ISO8601 Period Before Now",
                  "description": "Specifies a timestamp before _now_ as a period in [ISO8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) format."
                }
              ]
            }
          },
          {
            "name": "window",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "title": "Window Override.",
              "oneOf": [
                {
                  "type": "string",
                  "format": "period",
                  "example": "PT3H15M",
                  "pattern": "^P([0-9]+Y)?([0-9]+M)?([0-9]+W)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\.[0-9]*)?S)?)?$",
                  "title": "ISO8601 period ",
                  "description": "A period in [ISO8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) format."
                }
              ]
            }
          },
          {
            "name": "periods",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "title": "Periods Override."
            }
          },
          {
            "name": "render",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/_RenderMode",
              "title": "Render Mode",
              "oneOf": [
                {
                  "const": "HEADER_ROW",
                  "description": "Render rows of timestamp and values. Show column headers. Includes an iso timestamp.\n\n###### options\n- `iso_timestamp`: `True`\n- `header_array`: `row`\n- `roll_up`: `False`\n- `data_axis`: `column`",
                  "type": "string"
                },
                {
                  "const": "COMPACT",
                  "description": "Render rows of timestamp and values. Show column headers.\n\n###### options\n- `iso_timestamp`: `False`\n- `header_array`: `row`\n- `roll_up`: `False`\n- `data_axis`: `column`",
                  "type": "string"
                },
                {
                  "const": "COMPACT_WS",
                  "description": "Render rows of timestamp and values. Show column headers. Show the time window attributes.\n\n###### options\n- `iso_timestamp`: `False`\n- `header_array`: `row`\n- `roll_up`: `False`\n- `data_axis`: `column`\n- `include_window_spec`: `True`",
                  "type": "string"
                },
                {
                  "const": "SERIES",
                  "description": "Render timestamps and each series (column) as a values array. Show column headers.\n\n###### options\n- `iso_timestamp`: `False`\n- `header_array`: `row`\n- `data_axis`: `row`\n- `roll_up`: `True`\n- `include_window_spec`: `True`",
                  "type": "string"
                },
                {
                  "const": "HEADER_COLUMN",
                  "description": "Renders row index in `rows`, and each series as a values array.\n\nThe series are prefixed by their series attributes.The `rows` index is prefixed by the labels for these attributes.\n\n###### options\n- `iso_timestamp`: `True`\n- `header_array`: `column`\n- `roll_up`: `False`\n- `data_axis`: `row`",
                  "type": "string"
                },
                {
                  "const": "FLAT_DICT",
                  "description": "Render an object for each observation. Uses flattened keys.\n\n###### options\n- `iso_timestamp`: `True`\n- `hierarchical`: `False`\n- `show_levels`: `True`\n- `roll_up`: `False`",
                  "type": "string"
                },
                {
                  "const": "HIER_DICT",
                  "description": "Render an hierarchical object for each observation. Shows an iso timestamp.\n\n###### options\n- `iso_timestamp`: `True`\n- `hierarchical`: `True`\n- `show_levels`: `True`\n- `roll_up`: `True`",
                  "type": "string"
                },
                {
                  "const": "METRIC_FLAT_DICT",
                  "description": "Render an object with metric keys for each observation. Shows an iso timestamp.\n\n###### options\n- `iso_timestamp`: `True`\n- `hierarchical`: `['metric']`\n- `show_levels`: `False`\n- `roll_up`: `True`\n- `key_skip_empty`: `True`",
                  "type": "string"
                },
                {
                  "const": "UPLOAD",
                  "description": "Render in an object format compatible with the `/data/v1/events` upload.\n\n###### options\n- `iso_timestamp`: `False`\n- `hierarchical`: `False`\n- `show_levels`: `False`\n- `roll_up`: `True`",
                  "type": "string"
                },
                {
                  "const": "CSV",
                  "description": "Render in csv format with row headers.\n\n###### options\n- `iso_timestamp`: `False`",
                  "type": "string"
                }
              ]
            }
          },
          {
            "name": "accept",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Accept header",
              "description": "Use a 'text/csv' accept header to get CSV formatted results."
            },
            "description": "Use a 'text/csv' accept header to get CSV formatted results."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Query-Input"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryResult"
                },
                "examples": {
                  "default": {
                    "summary": "Query response example for `?render=DEFAULT`",
                    "value": {
                      "data": [
                        {
                          "column_names": [
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max",
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean",
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max",
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean"
                          ],
                          "columns": [
                            "timestamp",
                            {
                              "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                              "metric": "temperature",
                              "aggregation": "max"
                            },
                            {
                              "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                              "metric": "humidity",
                              "aggregation": "mean"
                            },
                            {
                              "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                              "metric": "temperature",
                              "aggregation": "max"
                            },
                            {
                              "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                              "metric": "humidity",
                              "aggregation": "mean"
                            }
                          ],
                          "data": [
                            [
                              1717977600000,
                              12.67,
                              80.0,
                              12.78,
                              83.125
                            ],
                            [
                              1718006400000,
                              13.74,
                              88.0,
                              13.06,
                              80.875
                            ],
                            [
                              1718035200000,
                              null,
                              null,
                              13.35,
                              78.5
                            ],
                            [
                              1718064000000,
                              7.49,
                              88.0,
                              13.0,
                              81.875
                            ],
                            [
                              1718092800000,
                              null,
                              null,
                              14.84,
                              62.375
                            ],
                            [
                              1718121600000,
                              null,
                              null,
                              14.59,
                              76.5
                            ],
                            [
                              1718150400000,
                              9.34,
                              90.0,
                              13.08,
                              85.375
                            ],
                            [
                              1718179200000,
                              null,
                              null,
                              15.41,
                              61.75
                            ],
                            [
                              1718208000000,
                              null,
                              null,
                              15.1,
                              74.0
                            ],
                            [
                              1718236800000,
                              9.03,
                              90.0,
                              14.99,
                              82.875
                            ],
                            [
                              1718265600000,
                              null,
                              null,
                              18.64,
                              57.5
                            ],
                            [
                              1718294400000,
                              null,
                              null,
                              18.35,
                              62.5
                            ],
                            [
                              1718323200000,
                              12.98,
                              80.0,
                              13.02,
                              81.625
                            ],
                            [
                              1718352000000,
                              null,
                              null,
                              18.19,
                              81.5
                            ],
                            [
                              1718380800000,
                              null,
                              null,
                              17.75,
                              88.875
                            ],
                            [
                              1718409600000,
                              11.8,
                              88.0,
                              13.4,
                              87.25
                            ],
                            [
                              1718438400000,
                              null,
                              null,
                              16.53,
                              64.5
                            ],
                            [
                              1718467200000,
                              null,
                              null,
                              14.69,
                              84.875
                            ],
                            [
                              1718496000000,
                              12.12,
                              89.0,
                              13.77,
                              87.875
                            ],
                            [
                              1718524800000,
                              null,
                              null,
                              19.27,
                              73.125
                            ],
                            [
                              1718553600000,
                              null,
                              null,
                              19.12,
                              69.75
                            ]
                          ],
                          "data_axis": "column",
                          "attributes": {
                            "role": "input"
                          },
                          "window_spec": {
                            "from": 1717977600000,
                            "until": 1718582400000,
                            "window": "P7D",
                            "freq": "PT8H"
                          }
                        }
                      ],
                      "messages": [
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'temperature', 'max'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T13:00:20.886997+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        },
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'humidity', 'mean'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T13:00:20.887995+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        }
                      ],
                      "query": {
                        "freq": "PT8H",
                        "from_": "2024-06-16 12:00 AM",
                        "until": "2024-06-17 12:00 AM",
                        "data": [
                          {
                            "metric": "temperature",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "97de31f5-7b69-4a56-87e0-6b5c8a6b1872",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "8eb0799f-1af7-4af2-8233-517cb4bdc3c6",
                            "aggregation": "mean"
                          },
                          {
                            "metric": "temperature",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "5055a943-e1c0-41d6-a6c9-7b20427a742d",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "16ac581f-f5ce-4845-9b6a-1b16249af051",
                            "aggregation": "mean"
                          }
                        ]
                      }
                    }
                  },
                  "hier_dict": {
                    "summary": "Query response example for `?render=HIER_DICT`",
                    "value": {
                      "data": [
                        [
                          {
                            "role": "input",
                            "timestamp": 1717977600000,
                            "timestamp_iso": "2024-06-10T00:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {
                                "mean": 80.0
                              },
                              "temperature": {
                                "max": 12.67
                              }
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 83.125
                              },
                              "temperature": {
                                "max": 12.78
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718006400000,
                            "timestamp_iso": "2024-06-10T08:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {
                                "mean": 88.0
                              },
                              "temperature": {
                                "max": 13.74
                              }
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 80.875
                              },
                              "temperature": {
                                "max": 13.06
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718035200000,
                            "timestamp_iso": "2024-06-10T16:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {},
                              "temperature": {}
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 78.5
                              },
                              "temperature": {
                                "max": 13.35
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718064000000,
                            "timestamp_iso": "2024-06-11T00:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {
                                "mean": 88.0
                              },
                              "temperature": {
                                "max": 7.49
                              }
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 81.875
                              },
                              "temperature": {
                                "max": 13.0
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718092800000,
                            "timestamp_iso": "2024-06-11T08:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {},
                              "temperature": {}
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 62.375
                              },
                              "temperature": {
                                "max": 14.84
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718121600000,
                            "timestamp_iso": "2024-06-11T16:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {},
                              "temperature": {}
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 76.5
                              },
                              "temperature": {
                                "max": 14.59
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718150400000,
                            "timestamp_iso": "2024-06-12T00:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {
                                "mean": 90.0
                              },
                              "temperature": {
                                "max": 9.34
                              }
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 85.375
                              },
                              "temperature": {
                                "max": 13.08
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718179200000,
                            "timestamp_iso": "2024-06-12T08:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {},
                              "temperature": {}
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 61.75
                              },
                              "temperature": {
                                "max": 15.41
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718208000000,
                            "timestamp_iso": "2024-06-12T16:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {},
                              "temperature": {}
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 74.0
                              },
                              "temperature": {
                                "max": 15.1
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718236800000,
                            "timestamp_iso": "2024-06-13T00:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {
                                "mean": 90.0
                              },
                              "temperature": {
                                "max": 9.03
                              }
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 82.875
                              },
                              "temperature": {
                                "max": 14.99
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718265600000,
                            "timestamp_iso": "2024-06-13T08:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {},
                              "temperature": {}
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 57.5
                              },
                              "temperature": {
                                "max": 18.64
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718294400000,
                            "timestamp_iso": "2024-06-13T16:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {},
                              "temperature": {}
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 62.5
                              },
                              "temperature": {
                                "max": 18.35
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718323200000,
                            "timestamp_iso": "2024-06-14T00:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {
                                "mean": 80.0
                              },
                              "temperature": {
                                "max": 12.98
                              }
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 81.625
                              },
                              "temperature": {
                                "max": 13.02
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718352000000,
                            "timestamp_iso": "2024-06-14T08:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {},
                              "temperature": {}
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 81.5
                              },
                              "temperature": {
                                "max": 18.19
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718380800000,
                            "timestamp_iso": "2024-06-14T16:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {},
                              "temperature": {}
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 88.875
                              },
                              "temperature": {
                                "max": 17.75
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718409600000,
                            "timestamp_iso": "2024-06-15T00:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {
                                "mean": 88.0
                              },
                              "temperature": {
                                "max": 11.8
                              }
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 87.25
                              },
                              "temperature": {
                                "max": 13.4
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718438400000,
                            "timestamp_iso": "2024-06-15T08:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {},
                              "temperature": {}
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 64.5
                              },
                              "temperature": {
                                "max": 16.53
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718467200000,
                            "timestamp_iso": "2024-06-15T16:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {},
                              "temperature": {}
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 84.875
                              },
                              "temperature": {
                                "max": 14.69
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718496000000,
                            "timestamp_iso": "2024-06-16T00:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {
                                "mean": 89.0
                              },
                              "temperature": {
                                "max": 12.12
                              }
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 87.875
                              },
                              "temperature": {
                                "max": 13.77
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718524800000,
                            "timestamp_iso": "2024-06-16T08:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {},
                              "temperature": {}
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 73.125
                              },
                              "temperature": {
                                "max": 19.27
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718553600000,
                            "timestamp_iso": "2024-06-16T16:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {},
                              "temperature": {}
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 69.75
                              },
                              "temperature": {
                                "max": 19.12
                              }
                            }
                          }
                        ]
                      ],
                      "messages": [
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'temperature', 'max'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T12:57:58.698912+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        },
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'humidity', 'mean'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T12:57:58.699998+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        }
                      ],
                      "query": {
                        "freq": "PT8H",
                        "from_": "2024-06-16 12:00 AM",
                        "until": "2024-06-17 12:00 AM",
                        "data": [
                          {
                            "metric": "temperature",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "97de31f5-7b69-4a56-87e0-6b5c8a6b1872",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "8eb0799f-1af7-4af2-8233-517cb4bdc3c6",
                            "aggregation": "mean"
                          },
                          {
                            "metric": "temperature",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "5055a943-e1c0-41d6-a6c9-7b20427a742d",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "16ac581f-f5ce-4845-9b6a-1b16249af051",
                            "aggregation": "mean"
                          }
                        ],
                        "render": {
                          "mode": "HIER_DICT"
                        }
                      }
                    }
                  },
                  "upload": {
                    "summary": "Query response example for `?render=UPLOAD`",
                    "value": {
                      "data": [
                        [
                          {
                            "role": "input",
                            "timestamp": 1717977600000,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 12.67,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 80.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 12.78,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 83.125
                          },
                          {
                            "role": "input",
                            "timestamp": 1718006400000,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 13.74,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 88.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.06,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 80.875
                          },
                          {
                            "role": "input",
                            "timestamp": 1718035200000,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.35,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 78.5
                          },
                          {
                            "role": "input",
                            "timestamp": 1718064000000,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 7.49,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 88.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 81.875
                          },
                          {
                            "role": "input",
                            "timestamp": 1718092800000,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 14.84,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 62.375
                          },
                          {
                            "role": "input",
                            "timestamp": 1718121600000,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 14.59,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 76.5
                          },
                          {
                            "role": "input",
                            "timestamp": 1718150400000,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 9.34,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 90.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.08,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 85.375
                          },
                          {
                            "role": "input",
                            "timestamp": 1718179200000,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 15.41,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 61.75
                          },
                          {
                            "role": "input",
                            "timestamp": 1718208000000,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 15.1,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 74.0
                          },
                          {
                            "role": "input",
                            "timestamp": 1718236800000,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 9.03,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 90.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 14.99,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 82.875
                          },
                          {
                            "role": "input",
                            "timestamp": 1718265600000,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 18.64,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 57.5
                          },
                          {
                            "role": "input",
                            "timestamp": 1718294400000,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 18.35,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 62.5
                          },
                          {
                            "role": "input",
                            "timestamp": 1718323200000,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 12.98,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 80.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.02,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 81.625
                          },
                          {
                            "role": "input",
                            "timestamp": 1718352000000,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 18.19,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 81.5
                          },
                          {
                            "role": "input",
                            "timestamp": 1718380800000,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 17.75,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 88.875
                          },
                          {
                            "role": "input",
                            "timestamp": 1718409600000,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 11.8,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 88.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.4,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 87.25
                          },
                          {
                            "role": "input",
                            "timestamp": 1718438400000,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 16.53,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 64.5
                          },
                          {
                            "role": "input",
                            "timestamp": 1718467200000,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 14.69,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 84.875
                          },
                          {
                            "role": "input",
                            "timestamp": 1718496000000,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 12.12,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 89.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.77,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 87.875
                          },
                          {
                            "role": "input",
                            "timestamp": 1718524800000,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 19.27,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 73.125
                          },
                          {
                            "role": "input",
                            "timestamp": 1718553600000,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 19.12,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 69.75
                          }
                        ]
                      ],
                      "messages": [
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'temperature', 'max'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T13:03:24.128684+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        },
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'humidity', 'mean'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T13:03:24.129391+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        }
                      ],
                      "query": {
                        "freq": "PT8H",
                        "from_": "2024-06-16 12:00 AM",
                        "until": "2024-06-17 12:00 AM",
                        "data": [
                          {
                            "metric": "temperature",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "97de31f5-7b69-4a56-87e0-6b5c8a6b1872",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "8eb0799f-1af7-4af2-8233-517cb4bdc3c6",
                            "aggregation": "mean"
                          },
                          {
                            "metric": "temperature",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "5055a943-e1c0-41d6-a6c9-7b20427a742d",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "16ac581f-f5ce-4845-9b6a-1b16249af051",
                            "aggregation": "mean"
                          }
                        ],
                        "render": {
                          "mode": "UPLOAD"
                        }
                      }
                    }
                  },
                  "flat_dict": {
                    "summary": "Query response example for `?render=FLAT_DICT`",
                    "value": {
                      "data": [
                        [
                          {
                            "role": "input",
                            "timestamp": 1717977600000,
                            "timestamp_iso": "2024-06-10T00:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 12.67,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 80.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 12.78,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 83.125
                          },
                          {
                            "role": "input",
                            "timestamp": 1718006400000,
                            "timestamp_iso": "2024-06-10T08:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 13.74,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 88.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.06,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 80.875
                          },
                          {
                            "role": "input",
                            "timestamp": 1718035200000,
                            "timestamp_iso": "2024-06-10T16:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.35,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 78.5
                          },
                          {
                            "role": "input",
                            "timestamp": 1718064000000,
                            "timestamp_iso": "2024-06-11T00:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 7.49,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 88.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 81.875
                          },
                          {
                            "role": "input",
                            "timestamp": 1718092800000,
                            "timestamp_iso": "2024-06-11T08:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 14.84,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 62.375
                          },
                          {
                            "role": "input",
                            "timestamp": 1718121600000,
                            "timestamp_iso": "2024-06-11T16:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 14.59,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 76.5
                          },
                          {
                            "role": "input",
                            "timestamp": 1718150400000,
                            "timestamp_iso": "2024-06-12T00:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 9.34,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 90.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.08,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 85.375
                          },
                          {
                            "role": "input",
                            "timestamp": 1718179200000,
                            "timestamp_iso": "2024-06-12T08:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 15.41,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 61.75
                          },
                          {
                            "role": "input",
                            "timestamp": 1718208000000,
                            "timestamp_iso": "2024-06-12T16:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 15.1,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 74.0
                          },
                          {
                            "role": "input",
                            "timestamp": 1718236800000,
                            "timestamp_iso": "2024-06-13T00:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 9.03,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 90.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 14.99,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 82.875
                          },
                          {
                            "role": "input",
                            "timestamp": 1718265600000,
                            "timestamp_iso": "2024-06-13T08:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 18.64,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 57.5
                          },
                          {
                            "role": "input",
                            "timestamp": 1718294400000,
                            "timestamp_iso": "2024-06-13T16:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 18.35,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 62.5
                          },
                          {
                            "role": "input",
                            "timestamp": 1718323200000,
                            "timestamp_iso": "2024-06-14T00:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 12.98,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 80.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.02,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 81.625
                          },
                          {
                            "role": "input",
                            "timestamp": 1718352000000,
                            "timestamp_iso": "2024-06-14T08:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 18.19,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 81.5
                          },
                          {
                            "role": "input",
                            "timestamp": 1718380800000,
                            "timestamp_iso": "2024-06-14T16:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 17.75,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 88.875
                          },
                          {
                            "role": "input",
                            "timestamp": 1718409600000,
                            "timestamp_iso": "2024-06-15T00:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 11.8,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 88.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.4,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 87.25
                          },
                          {
                            "role": "input",
                            "timestamp": 1718438400000,
                            "timestamp_iso": "2024-06-15T08:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 16.53,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 64.5
                          },
                          {
                            "role": "input",
                            "timestamp": 1718467200000,
                            "timestamp_iso": "2024-06-15T16:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 14.69,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 84.875
                          },
                          {
                            "role": "input",
                            "timestamp": 1718496000000,
                            "timestamp_iso": "2024-06-16T00:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 12.12,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 89.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.77,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 87.875
                          },
                          {
                            "role": "input",
                            "timestamp": 1718524800000,
                            "timestamp_iso": "2024-06-16T08:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 19.27,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 73.125
                          },
                          {
                            "role": "input",
                            "timestamp": 1718553600000,
                            "timestamp_iso": "2024-06-16T16:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 19.12,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 69.75
                          }
                        ]
                      ],
                      "messages": [
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'temperature', 'max'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T12:59:32.689972+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        },
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'humidity', 'mean'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T12:59:32.691573+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        }
                      ],
                      "query": {
                        "freq": "PT8H",
                        "from_": "2024-06-16 12:00 AM",
                        "until": "2024-06-17 12:00 AM",
                        "data": [
                          {
                            "metric": "temperature",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "97de31f5-7b69-4a56-87e0-6b5c8a6b1872",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "8eb0799f-1af7-4af2-8233-517cb4bdc3c6",
                            "aggregation": "mean"
                          },
                          {
                            "metric": "temperature",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "5055a943-e1c0-41d6-a6c9-7b20427a742d",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "16ac581f-f5ce-4845-9b6a-1b16249af051",
                            "aggregation": "mean"
                          }
                        ],
                        "render": {
                          "mode": "FLAT_DICT"
                        }
                      }
                    }
                  },
                  "metric_flat_dict": {
                    "summary": "Query response example for `?render=METRIC_FLAT_DICT`",
                    "value": {
                      "data": [
                        [
                          {
                            "role": "input",
                            "timestamp": 1717977600000,
                            "timestamp_iso": "2024-06-10T00:00:00+00:00",
                            "humidity": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.mean": 80.0,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 83.125
                            },
                            "temperature": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.max": 12.67,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 12.78
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718006400000,
                            "timestamp_iso": "2024-06-10T08:00:00+00:00",
                            "humidity": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.mean": 88.0,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 80.875
                            },
                            "temperature": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.max": 13.74,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 13.06
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718035200000,
                            "timestamp_iso": "2024-06-10T16:00:00+00:00",
                            "humidity": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 78.5
                            },
                            "temperature": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 13.35
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718064000000,
                            "timestamp_iso": "2024-06-11T00:00:00+00:00",
                            "humidity": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.mean": 88.0,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 81.875
                            },
                            "temperature": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.max": 7.49,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 13.0
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718092800000,
                            "timestamp_iso": "2024-06-11T08:00:00+00:00",
                            "humidity": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 62.375
                            },
                            "temperature": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 14.84
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718121600000,
                            "timestamp_iso": "2024-06-11T16:00:00+00:00",
                            "humidity": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 76.5
                            },
                            "temperature": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 14.59
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718150400000,
                            "timestamp_iso": "2024-06-12T00:00:00+00:00",
                            "humidity": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.mean": 90.0,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 85.375
                            },
                            "temperature": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.max": 9.34,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 13.08
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718179200000,
                            "timestamp_iso": "2024-06-12T08:00:00+00:00",
                            "humidity": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 61.75
                            },
                            "temperature": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 15.41
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718208000000,
                            "timestamp_iso": "2024-06-12T16:00:00+00:00",
                            "humidity": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 74.0
                            },
                            "temperature": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 15.1
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718236800000,
                            "timestamp_iso": "2024-06-13T00:00:00+00:00",
                            "humidity": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.mean": 90.0,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 82.875
                            },
                            "temperature": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.max": 9.03,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 14.99
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718265600000,
                            "timestamp_iso": "2024-06-13T08:00:00+00:00",
                            "humidity": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 57.5
                            },
                            "temperature": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 18.64
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718294400000,
                            "timestamp_iso": "2024-06-13T16:00:00+00:00",
                            "humidity": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 62.5
                            },
                            "temperature": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 18.35
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718323200000,
                            "timestamp_iso": "2024-06-14T00:00:00+00:00",
                            "humidity": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.mean": 80.0,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 81.625
                            },
                            "temperature": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.max": 12.98,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 13.02
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718352000000,
                            "timestamp_iso": "2024-06-14T08:00:00+00:00",
                            "humidity": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 81.5
                            },
                            "temperature": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 18.19
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718380800000,
                            "timestamp_iso": "2024-06-14T16:00:00+00:00",
                            "humidity": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 88.875
                            },
                            "temperature": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 17.75
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718409600000,
                            "timestamp_iso": "2024-06-15T00:00:00+00:00",
                            "humidity": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.mean": 88.0,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 87.25
                            },
                            "temperature": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.max": 11.8,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 13.4
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718438400000,
                            "timestamp_iso": "2024-06-15T08:00:00+00:00",
                            "humidity": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 64.5
                            },
                            "temperature": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 16.53
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718467200000,
                            "timestamp_iso": "2024-06-15T16:00:00+00:00",
                            "humidity": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 84.875
                            },
                            "temperature": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 14.69
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718496000000,
                            "timestamp_iso": "2024-06-16T00:00:00+00:00",
                            "humidity": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.mean": 89.0,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 87.875
                            },
                            "temperature": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.max": 12.12,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 13.77
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718524800000,
                            "timestamp_iso": "2024-06-16T08:00:00+00:00",
                            "humidity": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 73.125
                            },
                            "temperature": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 19.27
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718553600000,
                            "timestamp_iso": "2024-06-16T16:00:00+00:00",
                            "humidity": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 69.75
                            },
                            "temperature": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 19.12
                            }
                          }
                        ]
                      ],
                      "messages": [
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'temperature', 'max'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T15:37:41.460083+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        },
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'humidity', 'mean'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T15:37:41.461241+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        }
                      ],
                      "query": {
                        "freq": "PT8H",
                        "from_": "2024-06-16 12:00 AM",
                        "until": "2024-06-17 12:00 AM",
                        "data": [
                          {
                            "metric": "temperature",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "97de31f5-7b69-4a56-87e0-6b5c8a6b1872",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "8eb0799f-1af7-4af2-8233-517cb4bdc3c6",
                            "aggregation": "mean"
                          },
                          {
                            "metric": "temperature",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "5055a943-e1c0-41d6-a6c9-7b20427a742d",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "16ac581f-f5ce-4845-9b6a-1b16249af051",
                            "aggregation": "mean"
                          }
                        ],
                        "render": {
                          "mode": "METRIC_FLAT_DICT"
                        }
                      }
                    }
                  },
                  "header_column": {
                    "summary": "Query response example for `?render=HEADER_COLUMN`",
                    "value": {
                      "data": [
                        {
                          "column_names": [
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max",
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean",
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max",
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean"
                          ],
                          "rows": [
                            "resource",
                            "metric",
                            "aggregation",
                            {
                              "timestamp": 1717977600000,
                              "timestamp_iso": "2024-06-10T00:00:00+00:00"
                            },
                            {
                              "timestamp": 1718006400000,
                              "timestamp_iso": "2024-06-10T08:00:00+00:00"
                            },
                            {
                              "timestamp": 1718035200000,
                              "timestamp_iso": "2024-06-10T16:00:00+00:00"
                            },
                            {
                              "timestamp": 1718064000000,
                              "timestamp_iso": "2024-06-11T00:00:00+00:00"
                            },
                            {
                              "timestamp": 1718092800000,
                              "timestamp_iso": "2024-06-11T08:00:00+00:00"
                            },
                            {
                              "timestamp": 1718121600000,
                              "timestamp_iso": "2024-06-11T16:00:00+00:00"
                            },
                            {
                              "timestamp": 1718150400000,
                              "timestamp_iso": "2024-06-12T00:00:00+00:00"
                            },
                            {
                              "timestamp": 1718179200000,
                              "timestamp_iso": "2024-06-12T08:00:00+00:00"
                            },
                            {
                              "timestamp": 1718208000000,
                              "timestamp_iso": "2024-06-12T16:00:00+00:00"
                            },
                            {
                              "timestamp": 1718236800000,
                              "timestamp_iso": "2024-06-13T00:00:00+00:00"
                            },
                            {
                              "timestamp": 1718265600000,
                              "timestamp_iso": "2024-06-13T08:00:00+00:00"
                            },
                            {
                              "timestamp": 1718294400000,
                              "timestamp_iso": "2024-06-13T16:00:00+00:00"
                            },
                            {
                              "timestamp": 1718323200000,
                              "timestamp_iso": "2024-06-14T00:00:00+00:00"
                            },
                            {
                              "timestamp": 1718352000000,
                              "timestamp_iso": "2024-06-14T08:00:00+00:00"
                            },
                            {
                              "timestamp": 1718380800000,
                              "timestamp_iso": "2024-06-14T16:00:00+00:00"
                            },
                            {
                              "timestamp": 1718409600000,
                              "timestamp_iso": "2024-06-15T00:00:00+00:00"
                            },
                            {
                              "timestamp": 1718438400000,
                              "timestamp_iso": "2024-06-15T08:00:00+00:00"
                            },
                            {
                              "timestamp": 1718467200000,
                              "timestamp_iso": "2024-06-15T16:00:00+00:00"
                            },
                            {
                              "timestamp": 1718496000000,
                              "timestamp_iso": "2024-06-16T00:00:00+00:00"
                            },
                            {
                              "timestamp": 1718524800000,
                              "timestamp_iso": "2024-06-16T08:00:00+00:00"
                            },
                            {
                              "timestamp": 1718553600000,
                              "timestamp_iso": "2024-06-16T16:00:00+00:00"
                            }
                          ],
                          "data": [
                            [
                              "06e267b9-8714-4c58-ac53-df6a291b59dc",
                              "temperature",
                              "max",
                              12.67,
                              13.74,
                              null,
                              7.49,
                              null,
                              null,
                              9.34,
                              null,
                              null,
                              9.03,
                              null,
                              null,
                              12.98,
                              null,
                              null,
                              11.8,
                              null,
                              null,
                              12.12,
                              null,
                              null
                            ],
                            [
                              "06e267b9-8714-4c58-ac53-df6a291b59dc",
                              "humidity",
                              "mean",
                              80.0,
                              88.0,
                              null,
                              88.0,
                              null,
                              null,
                              90.0,
                              null,
                              null,
                              90.0,
                              null,
                              null,
                              80.0,
                              null,
                              null,
                              88.0,
                              null,
                              null,
                              89.0,
                              null,
                              null
                            ],
                            [
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                              "temperature",
                              "max",
                              12.78,
                              13.06,
                              13.35,
                              13.0,
                              14.84,
                              14.59,
                              13.08,
                              15.41,
                              15.1,
                              14.99,
                              18.64,
                              18.35,
                              13.02,
                              18.19,
                              17.75,
                              13.4,
                              16.53,
                              14.69,
                              13.77,
                              19.27,
                              19.12
                            ],
                            [
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                              "humidity",
                              "mean",
                              83.125,
                              80.875,
                              78.5,
                              81.875,
                              62.375,
                              76.5,
                              85.375,
                              61.75,
                              74.0,
                              82.875,
                              57.5,
                              62.5,
                              81.625,
                              81.5,
                              88.875,
                              87.25,
                              64.5,
                              84.875,
                              87.875,
                              73.125,
                              69.75
                            ]
                          ],
                          "data_axis": "row",
                          "attributes": {
                            "role": "input"
                          }
                        }
                      ],
                      "messages": [
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'temperature', 'max'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T13:02:54.733676+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        },
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'humidity', 'mean'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T13:02:54.734610+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        }
                      ],
                      "query": {
                        "freq": "PT8H",
                        "from_": "2024-06-16 12:00 AM",
                        "until": "2024-06-17 12:00 AM",
                        "data": [
                          {
                            "metric": "temperature",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "97de31f5-7b69-4a56-87e0-6b5c8a6b1872",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "8eb0799f-1af7-4af2-8233-517cb4bdc3c6",
                            "aggregation": "mean"
                          },
                          {
                            "metric": "temperature",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "5055a943-e1c0-41d6-a6c9-7b20427a742d",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "16ac581f-f5ce-4845-9b6a-1b16249af051",
                            "aggregation": "mean"
                          }
                        ],
                        "render": {
                          "mode": "HEADER_COLUMN"
                        }
                      }
                    }
                  },
                  "series": {
                    "summary": "Query response example for `?render=SERIES`",
                    "value": {
                      "data": [
                        {
                          "columns": [
                            "timestamp",
                            {
                              "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                              "metric": "temperature",
                              "aggregation": "max"
                            },
                            {
                              "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                              "metric": "humidity",
                              "aggregation": "mean"
                            },
                            {
                              "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                              "metric": "temperature",
                              "aggregation": "max"
                            },
                            {
                              "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                              "metric": "humidity",
                              "aggregation": "mean"
                            }
                          ],
                          "column_names": [
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max",
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean",
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max",
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean"
                          ],
                          "data": [
                            [
                              1717977600000,
                              1718006400000,
                              1718035200000,
                              1718064000000,
                              1718092800000,
                              1718121600000,
                              1718150400000,
                              1718179200000,
                              1718208000000,
                              1718236800000,
                              1718265600000,
                              1718294400000,
                              1718323200000,
                              1718352000000,
                              1718380800000,
                              1718409600000,
                              1718438400000,
                              1718467200000,
                              1718496000000,
                              1718524800000,
                              1718553600000
                            ],
                            [
                              12.67,
                              13.74,
                              null,
                              7.49,
                              null,
                              null,
                              9.34,
                              null,
                              null,
                              9.03,
                              null,
                              null,
                              12.98,
                              null,
                              null,
                              11.8,
                              null,
                              null,
                              12.12,
                              null,
                              null
                            ],
                            [
                              80.0,
                              88.0,
                              null,
                              88.0,
                              null,
                              null,
                              90.0,
                              null,
                              null,
                              90.0,
                              null,
                              null,
                              80.0,
                              null,
                              null,
                              88.0,
                              null,
                              null,
                              89.0,
                              null,
                              null
                            ],
                            [
                              12.78,
                              13.06,
                              13.35,
                              13.0,
                              14.84,
                              14.59,
                              13.08,
                              15.41,
                              15.1,
                              14.99,
                              18.64,
                              18.35,
                              13.02,
                              18.19,
                              17.75,
                              13.4,
                              16.53,
                              14.69,
                              13.77,
                              19.27,
                              19.12
                            ],
                            [
                              83.125,
                              80.875,
                              78.5,
                              81.875,
                              62.375,
                              76.5,
                              85.375,
                              61.75,
                              74.0,
                              82.875,
                              57.5,
                              62.5,
                              81.625,
                              81.5,
                              88.875,
                              87.25,
                              64.5,
                              84.875,
                              87.875,
                              73.125,
                              69.75
                            ]
                          ],
                          "data_axis": "row",
                          "attributes": {
                            "role": "input"
                          },
                          "window_spec": {
                            "from": 1717977600000,
                            "until": 1718582400000,
                            "window": "P7D",
                            "freq": "PT8H"
                          }
                        }
                      ],
                      "messages": [
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'temperature', 'max'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T13:01:39.240450+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        },
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'humidity', 'mean'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T13:01:39.241481+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        }
                      ],
                      "query": {
                        "freq": "PT8H",
                        "from_": "2024-06-16 12:00 AM",
                        "until": "2024-06-17 12:00 AM",
                        "data": [
                          {
                            "metric": "temperature",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "97de31f5-7b69-4a56-87e0-6b5c8a6b1872",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "8eb0799f-1af7-4af2-8233-517cb4bdc3c6",
                            "aggregation": "mean"
                          },
                          {
                            "metric": "temperature",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "5055a943-e1c0-41d6-a6c9-7b20427a742d",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "16ac581f-f5ce-4845-9b6a-1b16249af051",
                            "aggregation": "mean"
                          }
                        ],
                        "render": {
                          "mode": "SERIES"
                        }
                      }
                    }
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "title": "CSV timeseries data response.",
                  "description": "A CSV representation of the query result,\n- the first `timestamp` column contains event   timestamp in iso format\n- remaining columns contain the (aggregated or non-aggregated) series values, using a header `{resource_id}/{metric}`, `{resource_id}/{metric}/{aggregation}`, or \u2014if specified- the series  `{name}`."
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "waylayApiKeySecret": []
          }
        ]
      }
    },
    "/queries/v1/data/{query_name}": {
      "get": {
        "tags": [
          "Execute Queries"
        ],
        "summary": "Execute Named Query",
        "description": "Execute a named timeseries query.\n\nRetrieves a stored query definition by name,\napplies overrides from the url parameters, and executes it.",
        "operationId": "executeByName",
        "parameters": [
          {
            "name": "query_name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Query Name"
            }
          },
          {
            "name": "resource",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "title": "Resource",
              "description": "Default Resource Override.",
              "examples": [
                "13efb488-75ac-4dac-828a-d49c5c2ebbfc"
              ]
            },
            "description": "Default Resource Override."
          },
          {
            "name": "metric",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "title": "Metric",
              "description": "Default Metric Override.",
              "examples": [
                "temperature",
                "uptime"
              ]
            },
            "description": "Default Metric Override."
          },
          {
            "name": "aggregation",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "title": "Aggregation Override.",
              "oneOf": [
                {
                  "const": "first",
                  "title": "First",
                  "description": "Use the first value (in time) to represent all data for the sample interval."
                },
                {
                  "const": "last",
                  "title": "Last",
                  "description": "Use the last value (in time) to represent all data for the sample interval."
                },
                {
                  "const": "mean",
                  "title": "Mean",
                  "description": "Aggregate data by the mean value: The sum of values divided by number of observations."
                },
                {
                  "const": "median",
                  "title": "Median",
                  "description": "Aggregate data by the median value: The n/2-th value when ordered, the average of the (n-1)/2-th and (n+1)/2-th value when n is uneven."
                },
                {
                  "const": "sum",
                  "title": "Sum",
                  "description": "The sum of all values summarizes the data for the sample interval."
                },
                {
                  "const": "count",
                  "title": "Count",
                  "description": "Use the count of observations in the sample interval."
                },
                {
                  "const": "count-numeric",
                  "title": "Count Numeric",
                  "description": "Use the count of numeric observations in the sample interval."
                },
                {
                  "const": "count-non-numeric",
                  "title": "Count Non-numeric",
                  "description": "Use the count of non-numeric observations in the sample interval."
                },
                {
                  "const": "std",
                  "title": "Standard Deviation",
                  "description": "Use the standard deviation of all observations in the sample interval."
                },
                {
                  "const": "max",
                  "title": "Maximum",
                  "description": "Use the maximum of all values in the sample interval."
                },
                {
                  "const": "min",
                  "title": "Minimum",
                  "description": "Use the minimum of all values in the sample interval."
                },
                {
                  "title": "Precentile",
                  "description": "Aggregate data by the p-th percentile, where p is a number between 0 and 1.",
                  "pattern": "^percentile\\((1(\\.0*)?)|(0\\.[0-9]*)\\)$",
                  "example": "percentile(0.02)"
                }
              ]
            }
          },
          {
            "name": "interpolation",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/InterpolationMethod",
              "title": "Interpolation Override.",
              "oneOf": [
                {
                  "const": "pad",
                  "title": "pad",
                  "description": "Interpolate with the value of the first observed point. This method also extrapolates."
                },
                {
                  "const": "fixed",
                  "title": "fixed",
                  "description": "Interpolate with a fixed, user-specified value. This method also extrapolates."
                },
                {
                  "const": "backfill",
                  "title": "backfill",
                  "description": "Same as pad, but using the last observed value. This method also extrapolates"
                },
                {
                  "const": "linear",
                  "title": "linear",
                  "description": "Linearly go from the first observed value of the gap to the last observed oneThis method also extrapolates"
                },
                {
                  "const": "nearest",
                  "title": "nearest",
                  "description": "Use the value that is closest in time."
                },
                {
                  "const": "zero",
                  "title": "zero",
                  "description": "Interpolate with a spline function of order 0, which is a piecewise polynomial."
                },
                {
                  "const": "slinear",
                  "title": "slinear",
                  "description": "Interpolate with a spline function of order 1, which is a piecewise polynomial."
                },
                {
                  "const": "quadratic",
                  "title": "quadratic",
                  "description": "Interpolate with a spline function of order 2, which is a piecewise polynomial."
                },
                {
                  "const": "cubic",
                  "title": "cubic",
                  "description": "Interpolate with a spline function of order 3, which is a piecewise polynomial."
                },
                {
                  "const": "polynomial",
                  "title": "polynomial",
                  "description": "Interpolate with a polynomial of the lowest possible degree passing trough the data points."
                },
                {
                  "const": "spline",
                  "title": "spline",
                  "description": "Interpolate with a spline function of a user-specified order."
                },
                {
                  "const": "from_derivatives",
                  "title": "from_derivatives",
                  "description": "Interpolate with the derivative of order 1."
                },
                {
                  "const": "pchip",
                  "title": "pchip",
                  "description": "Interpolate with a piecewise cubic spline function."
                },
                {
                  "const": "akima",
                  "title": "akima",
                  "description": "Interpolate with a non-smoothing spline of order 2, called Akima interpolation."
                }
              ]
            }
          },
          {
            "name": "freq",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "title": "Grouping Interval Override",
              "description": "Override for the `freq` query attribute.",
              "oneOf": [
                {
                  "type": "string",
                  "format": "period",
                  "example": "PT3H15M",
                  "pattern": "^P([0-9]+Y)?([0-9]+M)?([0-9]+W)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\.[0-9]*)?S)?)?$",
                  "title": "ISO8601 period ",
                  "description": "A period in [ISO8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) format."
                },
                {
                  "title": "Inferred Frequency",
                  "type": "string",
                  "description": "When `inferred` is specified, the frequency of aggregation will be inferred from the main/first time series. This can be used to regularize the time series",
                  "const": "inferred"
                }
              ]
            },
            "description": "Override for the `freq` query attribute."
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "title": "From Override.",
              "oneOf": [
                {
                  "title": "ISO8601 absolute timestamp",
                  "type": "string",
                  "format": "date-time",
                  "example": "2018-03-21T12:23:00+01:00",
                  "description": "A date or date-time in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) format. When no timezone is specified, the UTC timezone is assumed (`+00:00`)",
                  "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}(T.*)?"
                },
                {
                  "type": "integer",
                  "title": "UNIX epoch milliseconds",
                  "minimum": 0,
                  "description": "Absolute timestamp milliseconds in unix epoch since 1970-01-01.",
                  "example": 1534836422284
                },
                {
                  "type": "string",
                  "format": "period",
                  "example": "PT3H15M",
                  "pattern": "^P([0-9]+Y)?([0-9]+M)?([0-9]+W)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\.[0-9]*)?S)?)?$",
                  "title": "ISO8601 Period Before Now",
                  "description": "Specifies a timestamp before _now_ as a period in [ISO8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) format."
                }
              ]
            }
          },
          {
            "name": "until",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "title": "From Override.",
              "oneOf": [
                {
                  "title": "ISO8601 absolute timestamp",
                  "type": "string",
                  "format": "date-time",
                  "example": "2018-03-21T12:23:00+01:00",
                  "description": "A date or date-time in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) format. When no timezone is specified, the UTC timezone is assumed (`+00:00`)",
                  "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}(T.*)?"
                },
                {
                  "type": "integer",
                  "title": "UNIX epoch milliseconds",
                  "minimum": 0,
                  "description": "Absolute timestamp milliseconds in unix epoch since 1970-01-01.",
                  "example": 1534836422284
                },
                {
                  "type": "string",
                  "format": "period",
                  "example": "PT3H15M",
                  "pattern": "^P([0-9]+Y)?([0-9]+M)?([0-9]+W)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\.[0-9]*)?S)?)?$",
                  "title": "ISO8601 Period Before Now",
                  "description": "Specifies a timestamp before _now_ as a period in [ISO8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) format."
                }
              ]
            }
          },
          {
            "name": "window",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "title": "Window Override.",
              "oneOf": [
                {
                  "type": "string",
                  "format": "period",
                  "example": "PT3H15M",
                  "pattern": "^P([0-9]+Y)?([0-9]+M)?([0-9]+W)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\.[0-9]*)?S)?)?$",
                  "title": "ISO8601 period ",
                  "description": "A period in [ISO8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) format."
                }
              ]
            }
          },
          {
            "name": "periods",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "title": "Periods Override."
            }
          },
          {
            "name": "render",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/_RenderMode",
              "title": "Render Mode",
              "oneOf": [
                {
                  "const": "HEADER_ROW",
                  "description": "Render rows of timestamp and values. Show column headers. Includes an iso timestamp.\n\n###### options\n- `iso_timestamp`: `True`\n- `header_array`: `row`\n- `roll_up`: `False`\n- `data_axis`: `column`",
                  "type": "string"
                },
                {
                  "const": "COMPACT",
                  "description": "Render rows of timestamp and values. Show column headers.\n\n###### options\n- `iso_timestamp`: `False`\n- `header_array`: `row`\n- `roll_up`: `False`\n- `data_axis`: `column`",
                  "type": "string"
                },
                {
                  "const": "COMPACT_WS",
                  "description": "Render rows of timestamp and values. Show column headers. Show the time window attributes.\n\n###### options\n- `iso_timestamp`: `False`\n- `header_array`: `row`\n- `roll_up`: `False`\n- `data_axis`: `column`\n- `include_window_spec`: `True`",
                  "type": "string"
                },
                {
                  "const": "SERIES",
                  "description": "Render timestamps and each series (column) as a values array. Show column headers.\n\n###### options\n- `iso_timestamp`: `False`\n- `header_array`: `row`\n- `data_axis`: `row`\n- `roll_up`: `True`\n- `include_window_spec`: `True`",
                  "type": "string"
                },
                {
                  "const": "HEADER_COLUMN",
                  "description": "Renders row index in `rows`, and each series as a values array.\n\nThe series are prefixed by their series attributes.The `rows` index is prefixed by the labels for these attributes.\n\n###### options\n- `iso_timestamp`: `True`\n- `header_array`: `column`\n- `roll_up`: `False`\n- `data_axis`: `row`",
                  "type": "string"
                },
                {
                  "const": "FLAT_DICT",
                  "description": "Render an object for each observation. Uses flattened keys.\n\n###### options\n- `iso_timestamp`: `True`\n- `hierarchical`: `False`\n- `show_levels`: `True`\n- `roll_up`: `False`",
                  "type": "string"
                },
                {
                  "const": "HIER_DICT",
                  "description": "Render an hierarchical object for each observation. Shows an iso timestamp.\n\n###### options\n- `iso_timestamp`: `True`\n- `hierarchical`: `True`\n- `show_levels`: `True`\n- `roll_up`: `True`",
                  "type": "string"
                },
                {
                  "const": "METRIC_FLAT_DICT",
                  "description": "Render an object with metric keys for each observation. Shows an iso timestamp.\n\n###### options\n- `iso_timestamp`: `True`\n- `hierarchical`: `['metric']`\n- `show_levels`: `False`\n- `roll_up`: `True`\n- `key_skip_empty`: `True`",
                  "type": "string"
                },
                {
                  "const": "UPLOAD",
                  "description": "Render in an object format compatible with the `/data/v1/events` upload.\n\n###### options\n- `iso_timestamp`: `False`\n- `hierarchical`: `False`\n- `show_levels`: `False`\n- `roll_up`: `True`",
                  "type": "string"
                },
                {
                  "const": "CSV",
                  "description": "Render in csv format with row headers.\n\n###### options\n- `iso_timestamp`: `False`",
                  "type": "string"
                }
              ]
            }
          },
          {
            "name": "accept",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Accept header",
              "description": "Use a 'text/csv' accept header to get CSV formatted results."
            },
            "description": "Use a 'text/csv' accept header to get CSV formatted results."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryResult"
                },
                "examples": {
                  "default": {
                    "summary": "Query response example for `?render=DEFAULT`",
                    "value": {
                      "data": [
                        {
                          "column_names": [
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max",
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean",
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max",
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean"
                          ],
                          "columns": [
                            "timestamp",
                            {
                              "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                              "metric": "temperature",
                              "aggregation": "max"
                            },
                            {
                              "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                              "metric": "humidity",
                              "aggregation": "mean"
                            },
                            {
                              "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                              "metric": "temperature",
                              "aggregation": "max"
                            },
                            {
                              "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                              "metric": "humidity",
                              "aggregation": "mean"
                            }
                          ],
                          "data": [
                            [
                              1717977600000,
                              12.67,
                              80.0,
                              12.78,
                              83.125
                            ],
                            [
                              1718006400000,
                              13.74,
                              88.0,
                              13.06,
                              80.875
                            ],
                            [
                              1718035200000,
                              null,
                              null,
                              13.35,
                              78.5
                            ],
                            [
                              1718064000000,
                              7.49,
                              88.0,
                              13.0,
                              81.875
                            ],
                            [
                              1718092800000,
                              null,
                              null,
                              14.84,
                              62.375
                            ],
                            [
                              1718121600000,
                              null,
                              null,
                              14.59,
                              76.5
                            ],
                            [
                              1718150400000,
                              9.34,
                              90.0,
                              13.08,
                              85.375
                            ],
                            [
                              1718179200000,
                              null,
                              null,
                              15.41,
                              61.75
                            ],
                            [
                              1718208000000,
                              null,
                              null,
                              15.1,
                              74.0
                            ],
                            [
                              1718236800000,
                              9.03,
                              90.0,
                              14.99,
                              82.875
                            ],
                            [
                              1718265600000,
                              null,
                              null,
                              18.64,
                              57.5
                            ],
                            [
                              1718294400000,
                              null,
                              null,
                              18.35,
                              62.5
                            ],
                            [
                              1718323200000,
                              12.98,
                              80.0,
                              13.02,
                              81.625
                            ],
                            [
                              1718352000000,
                              null,
                              null,
                              18.19,
                              81.5
                            ],
                            [
                              1718380800000,
                              null,
                              null,
                              17.75,
                              88.875
                            ],
                            [
                              1718409600000,
                              11.8,
                              88.0,
                              13.4,
                              87.25
                            ],
                            [
                              1718438400000,
                              null,
                              null,
                              16.53,
                              64.5
                            ],
                            [
                              1718467200000,
                              null,
                              null,
                              14.69,
                              84.875
                            ],
                            [
                              1718496000000,
                              12.12,
                              89.0,
                              13.77,
                              87.875
                            ],
                            [
                              1718524800000,
                              null,
                              null,
                              19.27,
                              73.125
                            ],
                            [
                              1718553600000,
                              null,
                              null,
                              19.12,
                              69.75
                            ]
                          ],
                          "data_axis": "column",
                          "attributes": {
                            "role": "input"
                          },
                          "window_spec": {
                            "from": 1717977600000,
                            "until": 1718582400000,
                            "window": "P7D",
                            "freq": "PT8H"
                          }
                        }
                      ],
                      "messages": [
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'temperature', 'max'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T13:00:20.886997+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        },
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'humidity', 'mean'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T13:00:20.887995+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        }
                      ],
                      "query": {
                        "freq": "PT8H",
                        "from_": "2024-06-16 12:00 AM",
                        "until": "2024-06-17 12:00 AM",
                        "data": [
                          {
                            "metric": "temperature",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "97de31f5-7b69-4a56-87e0-6b5c8a6b1872",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "8eb0799f-1af7-4af2-8233-517cb4bdc3c6",
                            "aggregation": "mean"
                          },
                          {
                            "metric": "temperature",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "5055a943-e1c0-41d6-a6c9-7b20427a742d",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "16ac581f-f5ce-4845-9b6a-1b16249af051",
                            "aggregation": "mean"
                          }
                        ]
                      }
                    }
                  },
                  "hier_dict": {
                    "summary": "Query response example for `?render=HIER_DICT`",
                    "value": {
                      "data": [
                        [
                          {
                            "role": "input",
                            "timestamp": 1717977600000,
                            "timestamp_iso": "2024-06-10T00:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {
                                "mean": 80.0
                              },
                              "temperature": {
                                "max": 12.67
                              }
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 83.125
                              },
                              "temperature": {
                                "max": 12.78
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718006400000,
                            "timestamp_iso": "2024-06-10T08:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {
                                "mean": 88.0
                              },
                              "temperature": {
                                "max": 13.74
                              }
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 80.875
                              },
                              "temperature": {
                                "max": 13.06
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718035200000,
                            "timestamp_iso": "2024-06-10T16:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {},
                              "temperature": {}
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 78.5
                              },
                              "temperature": {
                                "max": 13.35
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718064000000,
                            "timestamp_iso": "2024-06-11T00:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {
                                "mean": 88.0
                              },
                              "temperature": {
                                "max": 7.49
                              }
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 81.875
                              },
                              "temperature": {
                                "max": 13.0
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718092800000,
                            "timestamp_iso": "2024-06-11T08:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {},
                              "temperature": {}
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 62.375
                              },
                              "temperature": {
                                "max": 14.84
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718121600000,
                            "timestamp_iso": "2024-06-11T16:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {},
                              "temperature": {}
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 76.5
                              },
                              "temperature": {
                                "max": 14.59
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718150400000,
                            "timestamp_iso": "2024-06-12T00:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {
                                "mean": 90.0
                              },
                              "temperature": {
                                "max": 9.34
                              }
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 85.375
                              },
                              "temperature": {
                                "max": 13.08
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718179200000,
                            "timestamp_iso": "2024-06-12T08:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {},
                              "temperature": {}
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 61.75
                              },
                              "temperature": {
                                "max": 15.41
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718208000000,
                            "timestamp_iso": "2024-06-12T16:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {},
                              "temperature": {}
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 74.0
                              },
                              "temperature": {
                                "max": 15.1
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718236800000,
                            "timestamp_iso": "2024-06-13T00:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {
                                "mean": 90.0
                              },
                              "temperature": {
                                "max": 9.03
                              }
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 82.875
                              },
                              "temperature": {
                                "max": 14.99
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718265600000,
                            "timestamp_iso": "2024-06-13T08:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {},
                              "temperature": {}
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 57.5
                              },
                              "temperature": {
                                "max": 18.64
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718294400000,
                            "timestamp_iso": "2024-06-13T16:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {},
                              "temperature": {}
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 62.5
                              },
                              "temperature": {
                                "max": 18.35
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718323200000,
                            "timestamp_iso": "2024-06-14T00:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {
                                "mean": 80.0
                              },
                              "temperature": {
                                "max": 12.98
                              }
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 81.625
                              },
                              "temperature": {
                                "max": 13.02
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718352000000,
                            "timestamp_iso": "2024-06-14T08:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {},
                              "temperature": {}
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 81.5
                              },
                              "temperature": {
                                "max": 18.19
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718380800000,
                            "timestamp_iso": "2024-06-14T16:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {},
                              "temperature": {}
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 88.875
                              },
                              "temperature": {
                                "max": 17.75
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718409600000,
                            "timestamp_iso": "2024-06-15T00:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {
                                "mean": 88.0
                              },
                              "temperature": {
                                "max": 11.8
                              }
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 87.25
                              },
                              "temperature": {
                                "max": 13.4
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718438400000,
                            "timestamp_iso": "2024-06-15T08:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {},
                              "temperature": {}
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 64.5
                              },
                              "temperature": {
                                "max": 16.53
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718467200000,
                            "timestamp_iso": "2024-06-15T16:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {},
                              "temperature": {}
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 84.875
                              },
                              "temperature": {
                                "max": 14.69
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718496000000,
                            "timestamp_iso": "2024-06-16T00:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {
                                "mean": 89.0
                              },
                              "temperature": {
                                "max": 12.12
                              }
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 87.875
                              },
                              "temperature": {
                                "max": 13.77
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718524800000,
                            "timestamp_iso": "2024-06-16T08:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {},
                              "temperature": {}
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 73.125
                              },
                              "temperature": {
                                "max": 19.27
                              }
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718553600000,
                            "timestamp_iso": "2024-06-16T16:00:00+00:00",
                            "levels": [
                              "resource",
                              "metric",
                              "aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc": {
                              "humidity": {},
                              "temperature": {}
                            },
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1": {
                              "humidity": {
                                "mean": 69.75
                              },
                              "temperature": {
                                "max": 19.12
                              }
                            }
                          }
                        ]
                      ],
                      "messages": [
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'temperature', 'max'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T12:57:58.698912+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        },
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'humidity', 'mean'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T12:57:58.699998+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        }
                      ],
                      "query": {
                        "freq": "PT8H",
                        "from_": "2024-06-16 12:00 AM",
                        "until": "2024-06-17 12:00 AM",
                        "data": [
                          {
                            "metric": "temperature",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "97de31f5-7b69-4a56-87e0-6b5c8a6b1872",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "8eb0799f-1af7-4af2-8233-517cb4bdc3c6",
                            "aggregation": "mean"
                          },
                          {
                            "metric": "temperature",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "5055a943-e1c0-41d6-a6c9-7b20427a742d",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "16ac581f-f5ce-4845-9b6a-1b16249af051",
                            "aggregation": "mean"
                          }
                        ],
                        "render": {
                          "mode": "HIER_DICT"
                        }
                      }
                    }
                  },
                  "upload": {
                    "summary": "Query response example for `?render=UPLOAD`",
                    "value": {
                      "data": [
                        [
                          {
                            "role": "input",
                            "timestamp": 1717977600000,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 12.67,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 80.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 12.78,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 83.125
                          },
                          {
                            "role": "input",
                            "timestamp": 1718006400000,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 13.74,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 88.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.06,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 80.875
                          },
                          {
                            "role": "input",
                            "timestamp": 1718035200000,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.35,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 78.5
                          },
                          {
                            "role": "input",
                            "timestamp": 1718064000000,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 7.49,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 88.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 81.875
                          },
                          {
                            "role": "input",
                            "timestamp": 1718092800000,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 14.84,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 62.375
                          },
                          {
                            "role": "input",
                            "timestamp": 1718121600000,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 14.59,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 76.5
                          },
                          {
                            "role": "input",
                            "timestamp": 1718150400000,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 9.34,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 90.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.08,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 85.375
                          },
                          {
                            "role": "input",
                            "timestamp": 1718179200000,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 15.41,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 61.75
                          },
                          {
                            "role": "input",
                            "timestamp": 1718208000000,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 15.1,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 74.0
                          },
                          {
                            "role": "input",
                            "timestamp": 1718236800000,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 9.03,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 90.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 14.99,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 82.875
                          },
                          {
                            "role": "input",
                            "timestamp": 1718265600000,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 18.64,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 57.5
                          },
                          {
                            "role": "input",
                            "timestamp": 1718294400000,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 18.35,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 62.5
                          },
                          {
                            "role": "input",
                            "timestamp": 1718323200000,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 12.98,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 80.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.02,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 81.625
                          },
                          {
                            "role": "input",
                            "timestamp": 1718352000000,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 18.19,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 81.5
                          },
                          {
                            "role": "input",
                            "timestamp": 1718380800000,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 17.75,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 88.875
                          },
                          {
                            "role": "input",
                            "timestamp": 1718409600000,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 11.8,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 88.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.4,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 87.25
                          },
                          {
                            "role": "input",
                            "timestamp": 1718438400000,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 16.53,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 64.5
                          },
                          {
                            "role": "input",
                            "timestamp": 1718467200000,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 14.69,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 84.875
                          },
                          {
                            "role": "input",
                            "timestamp": 1718496000000,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 12.12,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 89.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.77,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 87.875
                          },
                          {
                            "role": "input",
                            "timestamp": 1718524800000,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 19.27,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 73.125
                          },
                          {
                            "role": "input",
                            "timestamp": 1718553600000,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 19.12,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 69.75
                          }
                        ]
                      ],
                      "messages": [
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'temperature', 'max'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T13:03:24.128684+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        },
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'humidity', 'mean'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T13:03:24.129391+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        }
                      ],
                      "query": {
                        "freq": "PT8H",
                        "from_": "2024-06-16 12:00 AM",
                        "until": "2024-06-17 12:00 AM",
                        "data": [
                          {
                            "metric": "temperature",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "97de31f5-7b69-4a56-87e0-6b5c8a6b1872",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "8eb0799f-1af7-4af2-8233-517cb4bdc3c6",
                            "aggregation": "mean"
                          },
                          {
                            "metric": "temperature",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "5055a943-e1c0-41d6-a6c9-7b20427a742d",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "16ac581f-f5ce-4845-9b6a-1b16249af051",
                            "aggregation": "mean"
                          }
                        ],
                        "render": {
                          "mode": "UPLOAD"
                        }
                      }
                    }
                  },
                  "flat_dict": {
                    "summary": "Query response example for `?render=FLAT_DICT`",
                    "value": {
                      "data": [
                        [
                          {
                            "role": "input",
                            "timestamp": 1717977600000,
                            "timestamp_iso": "2024-06-10T00:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 12.67,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 80.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 12.78,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 83.125
                          },
                          {
                            "role": "input",
                            "timestamp": 1718006400000,
                            "timestamp_iso": "2024-06-10T08:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 13.74,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 88.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.06,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 80.875
                          },
                          {
                            "role": "input",
                            "timestamp": 1718035200000,
                            "timestamp_iso": "2024-06-10T16:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.35,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 78.5
                          },
                          {
                            "role": "input",
                            "timestamp": 1718064000000,
                            "timestamp_iso": "2024-06-11T00:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 7.49,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 88.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 81.875
                          },
                          {
                            "role": "input",
                            "timestamp": 1718092800000,
                            "timestamp_iso": "2024-06-11T08:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 14.84,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 62.375
                          },
                          {
                            "role": "input",
                            "timestamp": 1718121600000,
                            "timestamp_iso": "2024-06-11T16:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 14.59,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 76.5
                          },
                          {
                            "role": "input",
                            "timestamp": 1718150400000,
                            "timestamp_iso": "2024-06-12T00:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 9.34,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 90.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.08,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 85.375
                          },
                          {
                            "role": "input",
                            "timestamp": 1718179200000,
                            "timestamp_iso": "2024-06-12T08:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 15.41,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 61.75
                          },
                          {
                            "role": "input",
                            "timestamp": 1718208000000,
                            "timestamp_iso": "2024-06-12T16:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 15.1,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 74.0
                          },
                          {
                            "role": "input",
                            "timestamp": 1718236800000,
                            "timestamp_iso": "2024-06-13T00:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 9.03,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 90.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 14.99,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 82.875
                          },
                          {
                            "role": "input",
                            "timestamp": 1718265600000,
                            "timestamp_iso": "2024-06-13T08:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 18.64,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 57.5
                          },
                          {
                            "role": "input",
                            "timestamp": 1718294400000,
                            "timestamp_iso": "2024-06-13T16:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 18.35,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 62.5
                          },
                          {
                            "role": "input",
                            "timestamp": 1718323200000,
                            "timestamp_iso": "2024-06-14T00:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 12.98,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 80.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.02,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 81.625
                          },
                          {
                            "role": "input",
                            "timestamp": 1718352000000,
                            "timestamp_iso": "2024-06-14T08:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 18.19,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 81.5
                          },
                          {
                            "role": "input",
                            "timestamp": 1718380800000,
                            "timestamp_iso": "2024-06-14T16:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 17.75,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 88.875
                          },
                          {
                            "role": "input",
                            "timestamp": 1718409600000,
                            "timestamp_iso": "2024-06-15T00:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 11.8,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 88.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.4,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 87.25
                          },
                          {
                            "role": "input",
                            "timestamp": 1718438400000,
                            "timestamp_iso": "2024-06-15T08:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 16.53,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 64.5
                          },
                          {
                            "role": "input",
                            "timestamp": 1718467200000,
                            "timestamp_iso": "2024-06-15T16:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 14.69,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 84.875
                          },
                          {
                            "role": "input",
                            "timestamp": 1718496000000,
                            "timestamp_iso": "2024-06-16T00:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max": 12.12,
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean": 89.0,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 13.77,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 87.875
                          },
                          {
                            "role": "input",
                            "timestamp": 1718524800000,
                            "timestamp_iso": "2024-06-16T08:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 19.27,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 73.125
                          },
                          {
                            "role": "input",
                            "timestamp": 1718553600000,
                            "timestamp_iso": "2024-06-16T16:00:00+00:00",
                            "levels": [
                              "resource.metric.aggregation"
                            ],
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max": 19.12,
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean": 69.75
                          }
                        ]
                      ],
                      "messages": [
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'temperature', 'max'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T12:59:32.689972+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        },
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'humidity', 'mean'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T12:59:32.691573+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        }
                      ],
                      "query": {
                        "freq": "PT8H",
                        "from_": "2024-06-16 12:00 AM",
                        "until": "2024-06-17 12:00 AM",
                        "data": [
                          {
                            "metric": "temperature",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "97de31f5-7b69-4a56-87e0-6b5c8a6b1872",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "8eb0799f-1af7-4af2-8233-517cb4bdc3c6",
                            "aggregation": "mean"
                          },
                          {
                            "metric": "temperature",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "5055a943-e1c0-41d6-a6c9-7b20427a742d",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "16ac581f-f5ce-4845-9b6a-1b16249af051",
                            "aggregation": "mean"
                          }
                        ],
                        "render": {
                          "mode": "FLAT_DICT"
                        }
                      }
                    }
                  },
                  "metric_flat_dict": {
                    "summary": "Query response example for `?render=METRIC_FLAT_DICT`",
                    "value": {
                      "data": [
                        [
                          {
                            "role": "input",
                            "timestamp": 1717977600000,
                            "timestamp_iso": "2024-06-10T00:00:00+00:00",
                            "humidity": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.mean": 80.0,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 83.125
                            },
                            "temperature": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.max": 12.67,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 12.78
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718006400000,
                            "timestamp_iso": "2024-06-10T08:00:00+00:00",
                            "humidity": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.mean": 88.0,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 80.875
                            },
                            "temperature": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.max": 13.74,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 13.06
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718035200000,
                            "timestamp_iso": "2024-06-10T16:00:00+00:00",
                            "humidity": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 78.5
                            },
                            "temperature": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 13.35
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718064000000,
                            "timestamp_iso": "2024-06-11T00:00:00+00:00",
                            "humidity": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.mean": 88.0,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 81.875
                            },
                            "temperature": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.max": 7.49,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 13.0
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718092800000,
                            "timestamp_iso": "2024-06-11T08:00:00+00:00",
                            "humidity": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 62.375
                            },
                            "temperature": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 14.84
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718121600000,
                            "timestamp_iso": "2024-06-11T16:00:00+00:00",
                            "humidity": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 76.5
                            },
                            "temperature": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 14.59
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718150400000,
                            "timestamp_iso": "2024-06-12T00:00:00+00:00",
                            "humidity": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.mean": 90.0,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 85.375
                            },
                            "temperature": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.max": 9.34,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 13.08
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718179200000,
                            "timestamp_iso": "2024-06-12T08:00:00+00:00",
                            "humidity": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 61.75
                            },
                            "temperature": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 15.41
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718208000000,
                            "timestamp_iso": "2024-06-12T16:00:00+00:00",
                            "humidity": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 74.0
                            },
                            "temperature": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 15.1
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718236800000,
                            "timestamp_iso": "2024-06-13T00:00:00+00:00",
                            "humidity": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.mean": 90.0,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 82.875
                            },
                            "temperature": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.max": 9.03,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 14.99
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718265600000,
                            "timestamp_iso": "2024-06-13T08:00:00+00:00",
                            "humidity": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 57.5
                            },
                            "temperature": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 18.64
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718294400000,
                            "timestamp_iso": "2024-06-13T16:00:00+00:00",
                            "humidity": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 62.5
                            },
                            "temperature": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 18.35
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718323200000,
                            "timestamp_iso": "2024-06-14T00:00:00+00:00",
                            "humidity": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.mean": 80.0,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 81.625
                            },
                            "temperature": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.max": 12.98,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 13.02
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718352000000,
                            "timestamp_iso": "2024-06-14T08:00:00+00:00",
                            "humidity": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 81.5
                            },
                            "temperature": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 18.19
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718380800000,
                            "timestamp_iso": "2024-06-14T16:00:00+00:00",
                            "humidity": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 88.875
                            },
                            "temperature": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 17.75
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718409600000,
                            "timestamp_iso": "2024-06-15T00:00:00+00:00",
                            "humidity": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.mean": 88.0,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 87.25
                            },
                            "temperature": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.max": 11.8,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 13.4
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718438400000,
                            "timestamp_iso": "2024-06-15T08:00:00+00:00",
                            "humidity": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 64.5
                            },
                            "temperature": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 16.53
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718467200000,
                            "timestamp_iso": "2024-06-15T16:00:00+00:00",
                            "humidity": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 84.875
                            },
                            "temperature": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 14.69
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718496000000,
                            "timestamp_iso": "2024-06-16T00:00:00+00:00",
                            "humidity": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.mean": 89.0,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 87.875
                            },
                            "temperature": {
                              "06e267b9-8714-4c58-ac53-df6a291b59dc.max": 12.12,
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 13.77
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718524800000,
                            "timestamp_iso": "2024-06-16T08:00:00+00:00",
                            "humidity": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 73.125
                            },
                            "temperature": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 19.27
                            }
                          },
                          {
                            "role": "input",
                            "timestamp": 1718553600000,
                            "timestamp_iso": "2024-06-16T16:00:00+00:00",
                            "humidity": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.mean": 69.75
                            },
                            "temperature": {
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.max": 19.12
                            }
                          }
                        ]
                      ],
                      "messages": [
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'temperature', 'max'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T15:37:41.460083+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        },
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'humidity', 'mean'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T15:37:41.461241+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        }
                      ],
                      "query": {
                        "freq": "PT8H",
                        "from_": "2024-06-16 12:00 AM",
                        "until": "2024-06-17 12:00 AM",
                        "data": [
                          {
                            "metric": "temperature",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "97de31f5-7b69-4a56-87e0-6b5c8a6b1872",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "8eb0799f-1af7-4af2-8233-517cb4bdc3c6",
                            "aggregation": "mean"
                          },
                          {
                            "metric": "temperature",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "5055a943-e1c0-41d6-a6c9-7b20427a742d",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "16ac581f-f5ce-4845-9b6a-1b16249af051",
                            "aggregation": "mean"
                          }
                        ],
                        "render": {
                          "mode": "METRIC_FLAT_DICT"
                        }
                      }
                    }
                  },
                  "header_column": {
                    "summary": "Query response example for `?render=HEADER_COLUMN`",
                    "value": {
                      "data": [
                        {
                          "column_names": [
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max",
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean",
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max",
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean"
                          ],
                          "rows": [
                            "resource",
                            "metric",
                            "aggregation",
                            {
                              "timestamp": 1717977600000,
                              "timestamp_iso": "2024-06-10T00:00:00+00:00"
                            },
                            {
                              "timestamp": 1718006400000,
                              "timestamp_iso": "2024-06-10T08:00:00+00:00"
                            },
                            {
                              "timestamp": 1718035200000,
                              "timestamp_iso": "2024-06-10T16:00:00+00:00"
                            },
                            {
                              "timestamp": 1718064000000,
                              "timestamp_iso": "2024-06-11T00:00:00+00:00"
                            },
                            {
                              "timestamp": 1718092800000,
                              "timestamp_iso": "2024-06-11T08:00:00+00:00"
                            },
                            {
                              "timestamp": 1718121600000,
                              "timestamp_iso": "2024-06-11T16:00:00+00:00"
                            },
                            {
                              "timestamp": 1718150400000,
                              "timestamp_iso": "2024-06-12T00:00:00+00:00"
                            },
                            {
                              "timestamp": 1718179200000,
                              "timestamp_iso": "2024-06-12T08:00:00+00:00"
                            },
                            {
                              "timestamp": 1718208000000,
                              "timestamp_iso": "2024-06-12T16:00:00+00:00"
                            },
                            {
                              "timestamp": 1718236800000,
                              "timestamp_iso": "2024-06-13T00:00:00+00:00"
                            },
                            {
                              "timestamp": 1718265600000,
                              "timestamp_iso": "2024-06-13T08:00:00+00:00"
                            },
                            {
                              "timestamp": 1718294400000,
                              "timestamp_iso": "2024-06-13T16:00:00+00:00"
                            },
                            {
                              "timestamp": 1718323200000,
                              "timestamp_iso": "2024-06-14T00:00:00+00:00"
                            },
                            {
                              "timestamp": 1718352000000,
                              "timestamp_iso": "2024-06-14T08:00:00+00:00"
                            },
                            {
                              "timestamp": 1718380800000,
                              "timestamp_iso": "2024-06-14T16:00:00+00:00"
                            },
                            {
                              "timestamp": 1718409600000,
                              "timestamp_iso": "2024-06-15T00:00:00+00:00"
                            },
                            {
                              "timestamp": 1718438400000,
                              "timestamp_iso": "2024-06-15T08:00:00+00:00"
                            },
                            {
                              "timestamp": 1718467200000,
                              "timestamp_iso": "2024-06-15T16:00:00+00:00"
                            },
                            {
                              "timestamp": 1718496000000,
                              "timestamp_iso": "2024-06-16T00:00:00+00:00"
                            },
                            {
                              "timestamp": 1718524800000,
                              "timestamp_iso": "2024-06-16T08:00:00+00:00"
                            },
                            {
                              "timestamp": 1718553600000,
                              "timestamp_iso": "2024-06-16T16:00:00+00:00"
                            }
                          ],
                          "data": [
                            [
                              "06e267b9-8714-4c58-ac53-df6a291b59dc",
                              "temperature",
                              "max",
                              12.67,
                              13.74,
                              null,
                              7.49,
                              null,
                              null,
                              9.34,
                              null,
                              null,
                              9.03,
                              null,
                              null,
                              12.98,
                              null,
                              null,
                              11.8,
                              null,
                              null,
                              12.12,
                              null,
                              null
                            ],
                            [
                              "06e267b9-8714-4c58-ac53-df6a291b59dc",
                              "humidity",
                              "mean",
                              80.0,
                              88.0,
                              null,
                              88.0,
                              null,
                              null,
                              90.0,
                              null,
                              null,
                              90.0,
                              null,
                              null,
                              80.0,
                              null,
                              null,
                              88.0,
                              null,
                              null,
                              89.0,
                              null,
                              null
                            ],
                            [
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                              "temperature",
                              "max",
                              12.78,
                              13.06,
                              13.35,
                              13.0,
                              14.84,
                              14.59,
                              13.08,
                              15.41,
                              15.1,
                              14.99,
                              18.64,
                              18.35,
                              13.02,
                              18.19,
                              17.75,
                              13.4,
                              16.53,
                              14.69,
                              13.77,
                              19.27,
                              19.12
                            ],
                            [
                              "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                              "humidity",
                              "mean",
                              83.125,
                              80.875,
                              78.5,
                              81.875,
                              62.375,
                              76.5,
                              85.375,
                              61.75,
                              74.0,
                              82.875,
                              57.5,
                              62.5,
                              81.625,
                              81.5,
                              88.875,
                              87.25,
                              64.5,
                              84.875,
                              87.875,
                              73.125,
                              69.75
                            ]
                          ],
                          "data_axis": "row",
                          "attributes": {
                            "role": "input"
                          }
                        }
                      ],
                      "messages": [
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'temperature', 'max'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T13:02:54.733676+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        },
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'humidity', 'mean'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T13:02:54.734610+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        }
                      ],
                      "query": {
                        "freq": "PT8H",
                        "from_": "2024-06-16 12:00 AM",
                        "until": "2024-06-17 12:00 AM",
                        "data": [
                          {
                            "metric": "temperature",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "97de31f5-7b69-4a56-87e0-6b5c8a6b1872",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "8eb0799f-1af7-4af2-8233-517cb4bdc3c6",
                            "aggregation": "mean"
                          },
                          {
                            "metric": "temperature",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "5055a943-e1c0-41d6-a6c9-7b20427a742d",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "16ac581f-f5ce-4845-9b6a-1b16249af051",
                            "aggregation": "mean"
                          }
                        ],
                        "render": {
                          "mode": "HEADER_COLUMN"
                        }
                      }
                    }
                  },
                  "series": {
                    "summary": "Query response example for `?render=SERIES`",
                    "value": {
                      "data": [
                        {
                          "columns": [
                            "timestamp",
                            {
                              "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                              "metric": "temperature",
                              "aggregation": "max"
                            },
                            {
                              "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                              "metric": "humidity",
                              "aggregation": "mean"
                            },
                            {
                              "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                              "metric": "temperature",
                              "aggregation": "max"
                            },
                            {
                              "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                              "metric": "humidity",
                              "aggregation": "mean"
                            }
                          ],
                          "column_names": [
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.temperature.max",
                            "06e267b9-8714-4c58-ac53-df6a291b59dc.humidity.mean",
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.temperature.max",
                            "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1.humidity.mean"
                          ],
                          "data": [
                            [
                              1717977600000,
                              1718006400000,
                              1718035200000,
                              1718064000000,
                              1718092800000,
                              1718121600000,
                              1718150400000,
                              1718179200000,
                              1718208000000,
                              1718236800000,
                              1718265600000,
                              1718294400000,
                              1718323200000,
                              1718352000000,
                              1718380800000,
                              1718409600000,
                              1718438400000,
                              1718467200000,
                              1718496000000,
                              1718524800000,
                              1718553600000
                            ],
                            [
                              12.67,
                              13.74,
                              null,
                              7.49,
                              null,
                              null,
                              9.34,
                              null,
                              null,
                              9.03,
                              null,
                              null,
                              12.98,
                              null,
                              null,
                              11.8,
                              null,
                              null,
                              12.12,
                              null,
                              null
                            ],
                            [
                              80.0,
                              88.0,
                              null,
                              88.0,
                              null,
                              null,
                              90.0,
                              null,
                              null,
                              90.0,
                              null,
                              null,
                              80.0,
                              null,
                              null,
                              88.0,
                              null,
                              null,
                              89.0,
                              null,
                              null
                            ],
                            [
                              12.78,
                              13.06,
                              13.35,
                              13.0,
                              14.84,
                              14.59,
                              13.08,
                              15.41,
                              15.1,
                              14.99,
                              18.64,
                              18.35,
                              13.02,
                              18.19,
                              17.75,
                              13.4,
                              16.53,
                              14.69,
                              13.77,
                              19.27,
                              19.12
                            ],
                            [
                              83.125,
                              80.875,
                              78.5,
                              81.875,
                              62.375,
                              76.5,
                              85.375,
                              61.75,
                              74.0,
                              82.875,
                              57.5,
                              62.5,
                              81.625,
                              81.5,
                              88.875,
                              87.25,
                              64.5,
                              84.875,
                              87.875,
                              73.125,
                              69.75
                            ]
                          ],
                          "data_axis": "row",
                          "attributes": {
                            "role": "input"
                          },
                          "window_spec": {
                            "from": 1717977600000,
                            "until": 1718582400000,
                            "window": "P7D",
                            "freq": "PT8H"
                          }
                        }
                      ],
                      "messages": [
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'temperature', 'max'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T13:01:39.240450+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        },
                        {
                          "message": "Series ('06e267b9-8714-4c58-ac53-df6a291b59dc', 'humidity', 'mean'), aggregated on freq PT8H contains 26 null values. These will NOT be interpolated",
                          "level": "warning",
                          "timestamp": "2024-07-01T13:01:39.241481+00:00",
                          "action": "GET /queries/v1/data/weatherHistoryDailyAndHourly",
                          "category": "data"
                        }
                      ],
                      "query": {
                        "freq": "PT8H",
                        "from_": "2024-06-16 12:00 AM",
                        "until": "2024-06-17 12:00 AM",
                        "data": [
                          {
                            "metric": "temperature",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "97de31f5-7b69-4a56-87e0-6b5c8a6b1872",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "06e267b9-8714-4c58-ac53-df6a291b59dc",
                            "seriesId": "8eb0799f-1af7-4af2-8233-517cb4bdc3c6",
                            "aggregation": "mean"
                          },
                          {
                            "metric": "temperature",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "5055a943-e1c0-41d6-a6c9-7b20427a742d",
                            "aggregation": "max"
                          },
                          {
                            "metric": "humidity",
                            "resource": "7f33317b-a45e-4b0a-94a2-9bbbdc746cc1",
                            "seriesId": "16ac581f-f5ce-4845-9b6a-1b16249af051",
                            "aggregation": "mean"
                          }
                        ],
                        "render": {
                          "mode": "SERIES"
                        }
                      }
                    }
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "title": "CSV timeseries data response.",
                  "description": "A CSV representation of the query result,\n- the first `timestamp` column contains event   timestamp in iso format\n- remaining columns contain the (aggregated or non-aggregated) series values, using a header `{resource_id}/{metric}`, `{resource_id}/{metric}/{aggregation}`, or \u2014if specified- the series  `{name}`."
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "waylayApiKeySecret": []
          }
        ]
      }
    },
    "/queries/v1/query": {
      "get": {
        "tags": [
          "Named Queries"
        ],
        "summary": "List Queries",
        "description": "List named queries.",
        "operationId": "list_queries_queries_v1_query_get",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "title": "Filter condition",
              "description": "The QDSL filter condition for the stored queries. Note that this value needs to be escaped when passed as an url paramater.",
              "default": ""
            },
            "description": "The QDSL filter condition for the stored queries. Note that this value needs to be escaped when passed as an url paramater.",
            "examples": {
              "resource": {
                "summary": "resource",
                "description": "Filter queries that reference a given resource id.",
                "value": "resource:APL4995"
              },
              "user": {
                "summary": "current user",
                "description": "Filter queries on the user that created or updated the item.",
                "value": "user:@me"
              },
              "created": {
                "summary": "created after",
                "description": "Filter on a creation timestamp interval.",
                "value": "created:2020-02-20/"
              },
              "modified": {
                "summary": "last modified more than 2 days ago",
                "description": "Filter on a modification timestamp interval.",
                "value": "modified:/now-P2D"
              },
              "meta_contains": {
                "summary": "metadata contains",
                "description": "Filter on a string contained in a metadata property.",
                "value": "meta.comments:contains('{ \"topic\" : \"general\" }'"
              },
              "meta_like": {
                "summary": "metadata matches",
                "description": "Filter on a pattern in a metadata property.",
                "value": "meta.description:like(*http*waylay.io*)"
              },
              "tag": {
                "summary": "tag combination",
                "description": "Filter queries on tag combinations.",
                "value": "tag:stable,demo,release_15 tag:demo,release_16 -tag:dummy"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "title": "Page size",
              "description": "Maximal number of items return in one response.",
              "default": 10
            },
            "description": "Maximal number of items return in one response."
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "title": "Page offset",
              "description": "Numbers of items to skip before listing results in the response page.",
              "default": 0
            },
            "description": "Numbers of items to skip before listing results in the response page."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueriesListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "waylayApiKeySecret": []
          }
        ]
      },
      "post": {
        "tags": [
          "Named Queries"
        ],
        "summary": "Post Query",
        "description": "Create a new named query.",
        "operationId": "post_query_queries_v1_query_post",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QueryEntityInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "waylayApiKeySecret": []
          }
        ]
      }
    },
    "/queries/v1/query/{query_name}": {
      "get": {
        "tags": [
          "Named Queries"
        ],
        "summary": "Get Query",
        "description": "Get the definition of a named query.",
        "operationId": "get_query_queries_v1_query__query_name__get",
        "parameters": [
          {
            "name": "query_name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Query Name",
              "description": "Name of the stored query."
            },
            "description": "Name of the stored query."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "waylayApiKeySecret": []
          }
        ]
      },
      "put": {
        "tags": [
          "Named Queries"
        ],
        "summary": "Update Query",
        "description": "Create or update a named query definition.",
        "operationId": "update_query_queries_v1_query__query_name__put",
        "parameters": [
          {
            "name": "query_name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Query Name",
              "description": "Name of the stored query."
            },
            "description": "Name of the stored query."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/QueryUpdateInput"
                  },
                  {
                    "$ref": "#/components/schemas/Query-Input"
                  }
                ],
                "title": "Query Definition"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "waylayApiKeySecret": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Named Queries"
        ],
        "summary": "Remove Query",
        "description": "Remove definition of a named query.",
        "operationId": "remove_query_queries_v1_query__query_name__delete",
        "parameters": [
          {
            "name": "query_name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Query Name",
              "description": "Name of the stored query."
            },
            "description": "Name of the stored query."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "waylayApiKeySecret": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "AlignAt": {
        "type": "string",
        "enum": [
          "grid",
          "boundary",
          "from",
          "until"
        ],
        "title": "AlignAt",
        "description": "Possible values for `align.at`.\n\n* 'grid' Align to a fixed grid (possibly using timezone information)\n* 'from' Align a the `from` boundary\n* 'until' Align a the `until` boundary\n* 'boundary' Align a the `from` boundary if specified,\n   otherwise the `until` boundary.\n\nWhen not specified, 'grid' is used."
      },
      "AlignShift": {
        "type": "string",
        "enum": [
          "backward",
          "forward",
          "wrap"
        ],
        "title": "AlignShift",
        "description": "Possible values for `align.shift`.\n\n* 'backward': keep the window size of the original interval specification,\n   shifting back.\n* 'forward': keep the window size of the original interval specification,\n   shifting forward.\n* 'wrap': enlarge the window size to include all of the original interval.\n\nWhen not specified, 'backward' is used."
      },
      "Alignment": {
        "properties": {
          "at": {
            "$ref": "#/components/schemas/AlignAt",
            "oneOf": [
              {
                "type": "string",
                "const": "grid",
                "description": "Align to a fixed grid defined by the alignment `frequency` and `timezone`."
              },
              {
                "type": "string",
                "const": "boundary",
                "description": "Align a the `from` boundary if specified, otherwise use the `until` boundary (specfied or computed)"
              },
              {
                "type": "string",
                "const": "from",
                "description": "Align a the `from` window boundary."
              },
              {
                "type": "string",
                "const": "until",
                "description": "Align a the `until` window boundary"
              }
            ],
            "title": "Align At",
            "description": "Method used to align the aggregation grid. The default value is system-dependent (normally `grid`)"
          },
          "shift": {
            "$ref": "#/components/schemas/AlignShift",
            "oneOf": [
              {
                "type": "string",
                "const": "backward",
                "description": "Shift both boundaries (`align.at=grid`) or first boundary (`align.at=until`) backward to align with the grid."
              },
              {
                "type": "string",
                "const": "forward",
                "description": "Shift both boundaries (`align.at=grid`) or last boundary (`align.at=from`) forward to align with the grid."
              },
              {
                "type": "string",
                "const": "wrap",
                "description": "Shift first boundary backward, and last boundary forward to align with the grid"
              }
            ],
            "title": "Align Shift",
            "description": "\nSpecifies in what direction the query window is shifted\nto match the alignment specification.\nWhen not specified, defaults are:\n- `backward` when only the `from` boundary is specified.\n- `forward` when only the `until` boundary is specified.\n- `wrap` otherwise (_none_ or _both_ boundaries specified).\n"
          },
          "freq": {
            "oneOf": [
              {
                "type": "string",
                "pattern": "^P([0-9]+Y)?([0-9]+M)?([0-9]+W)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\.[0-9]*)?S)?)?$",
                "format": "period",
                "title": "ISO8601 period ",
                "description": "A period in [ISO8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) format.",
                "example": "PT3H15M"
              },
              {
                "type": "string",
                "const": "inferred",
                "title": "Inferred Frequency",
                "description": "When `inferred` is specified, the frequency of aggregation will be inferred from the main/first time series. This can be used to regularize the time series"
              }
            ],
            "type": "string",
            "title": "Alignment Grid interval.",
            "description": "\nDefines the grid used to align the aggregation window.\nThe window will align at whole-unit multiples of this interval.\n\nFor intervals like `PT1D`, that are timezone-dependent, use the \n`align.timezone` to fix the absolute timestamp of the grid boundaries.\n\nIf not specified, defaults to the `freq` aggregation interval.\n"
          },
          "timezone": {
            "oneOf": [
              {
                "type": "string",
                "title": "Timezone Identifier",
                "description": "[ICANN timezone identifier](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)"
              },
              {
                "type": "string",
                "pattern": "(+|-)\\d\\d:\\d\\d",
                "title": "UTC Offset",
                "description": "[UTC offset](https://en.wikipedia.org/wiki/UTC_offset)"
              }
            ],
            "type": "string",
            "title": "Alignment Timezone.",
            "description": "\nThe timezone to use when shifting boundaries, especially\nat day granularity.\nAlso affects the rendering of timestamps when\n`render.iso_timestamp` is enabled.\n\nWhen not specified, the `UTC` timezone is used.\n"
          }
        },
        "additionalProperties": true,
        "type": "object",
        "title": "Alignment",
        "description": "Aggregation Alignment Options.\n\nSpecifies how the aggregation grid is aligned."
      },
      "CauseException": {
        "properties": {
          "type": {
            "type": "string",
            "title": "Exception Type"
          },
          "message": {
            "type": "string",
            "title": "Exception Message"
          },
          "stacktrace": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Stack Trace"
          }
        },
        "additionalProperties": true,
        "type": "object",
        "required": [
          "type",
          "message",
          "stacktrace"
        ],
        "title": "CauseException",
        "description": "Describes the exception that caused a message."
      },
      "ColumnDataSet": {
        "properties": {
          "attributes": {
            "$ref": "#/components/schemas/DataSetAttributes"
          },
          "window_spec": {
            "$ref": "#/components/schemas/DataSetWindow"
          },
          "data_axis": {
            "type": "string",
            "const": "row",
            "title": "Data Axis",
            "default": "row"
          },
          "rows": {
            "oneOf": [
              {
                "prefixItems": [
                  {
                    "const": "resource",
                    "title": "Index label for the resource attribute."
                  },
                  {
                    "const": "metric",
                    "title": "Index label for the metric attribute."
                  }
                ]
              },
              {
                "prefixItems": [
                  {
                    "const": "resource",
                    "title": "Index label for the resource attribute."
                  },
                  {
                    "const": "metric",
                    "title": "Index label for the metric attribute."
                  },
                  {
                    "const": "aggregation",
                    "title": "Index label for the aggregation attribute."
                  }
                ]
              }
            ],
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/ColumnIndexRowHeader"
                },
                {
                  "$ref": "#/components/schemas/RowHeader"
                }
              ]
            },
            "type": "array",
            "title": "Row Headers",
            "description": "Header Attributes for the index data.\n\nThe initial string-valued headers (normally `resource`, `metric`,`aggregation`) indicate that row to contain series attributes.\n\nThe remaining object-valued row headers contain the index data."
          },
          "column_names": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Column names",
            "description": "Short names for the columns in the data set.\nThese names are the `name` alias if given in the series specification, otherwise is composed of the `resource`, `metric` and `aggregation` attributes, concatenated with the `render.key_separator` (default `.`) as separator."
          },
          "data": {
            "items": {
              "items": {
                "$ref": "#/components/schemas/Datum"
              },
              "type": "array"
            },
            "type": "array",
            "title": "Series",
            "description": "All metric observation values for a single series. Prefixed by the series attributes."
          }
        },
        "additionalProperties": true,
        "type": "object",
        "required": [
          "rows",
          "column_names",
          "data"
        ],
        "title": "ColumnDataSet",
        "description": "Column-oriented dataset with rows header.\n\nTimeseries data layout with a rows header containing\nthe index data.\nThe data array contains series data prefixed by series attributes.\nThe `rows` index is prefix by the names of these series attributes.\nResult for render options `data_axis=row` and `header_array=column`."
      },
      "ColumnHeader": {
        "properties": {
          "resource": {
            "type": "string",
            "title": "Series resource id"
          },
          "metric": {
            "type": "string",
            "title": "Series metric"
          },
          "aggregation": {
            "type": "string",
            "title": "Aggregation applied to the series."
          }
        },
        "additionalProperties": true,
        "type": "object",
        "required": [
          "resource",
          "metric"
        ],
        "title": "ColumnHeader",
        "description": "Column attributes.\n\nAttributes that identify and describe the data in this column."
      },
      "ColumnIndexRowHeader": {
        "type": "string",
        "title": "Series Attribute Label",
        "description": "Label for a series attribute",
        "examples": [
          "resource",
          "metric",
          "aggregation"
        ]
      },
      "DataAxisOption": {
        "type": "string",
        "enum": [
          "row",
          "column"
        ],
        "title": "DataAxisOption",
        "description": "Allowed values for the render.data_axis option."
      },
      "DataSetAttributes": {
        "properties": {
          "role": {
            "$ref": "#/components/schemas/Role"
          }
        },
        "additionalProperties": true,
        "type": "object",
        "title": "DataSetAttributes",
        "description": "Data Set Attributes.\n\nData attributes that apply to all data in this set."
      },
      "DataSetWindow": {
        "properties": {
          "until": {
            "type": "integer",
            "title": "Time Axis End",
            "description": "Exclusive higher bound of the time axis in unix epoch milliseconds."
          },
          "window": {
            "type": "string",
            "format": "period",
            "title": "Time Axis Length",
            "description": "Time axis length as ISO8601 period."
          },
          "freq": {
            "type": "string",
            "format": "period",
            "title": "Frequency",
            "description": "Time axis aggregation interval as an ISO8601 period ."
          }
        },
        "additionalProperties": true,
        "type": "object",
        "required": [
          "until",
          "window",
          "freq"
        ],
        "title": "DataSetWindow",
        "description": "Data Window.\n\nStatistics of the time axis of a data set.\nPresent with render option `include_window_spec=true`.\","
      },
      "Datum": {
        "oneOf": [
          {
            "type": "number"
          },
          {
            "type": "string"
          },
          {
            "type": "boolean"
          },
          {
            "type": "null"
          }
        ],
        "title": "Value",
        "description": "A single metric value for a timeseries.\n\nA null value indicates that no (aggregated/interpolated) value  exists for the corresponding timestamp."
      },
      "DeleteResponse": {
        "properties": {
          "messages": {
            "items": {
              "$ref": "#/components/schemas/Message"
            },
            "type": "array",
            "title": "Messages"
          },
          "_links": {
            "additionalProperties": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/HALLink"
                },
                {
                  "items": {
                    "$ref": "#/components/schemas/HALLink"
                  },
                  "type": "array"
                }
              ]
            },
            "propertyNames": {
              "$ref": "#/components/schemas/HALLinkRole"
            },
            "type": "object",
            "title": "Links",
            "description": "HAL links, indexed by link relation."
          },
          "_embeddings": {
            "additionalProperties": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/HALEmbedding"
                },
                {
                  "items": {
                    "$ref": "#/components/schemas/HALEmbedding"
                  },
                  "type": "array"
                }
              ]
            },
            "propertyNames": {
              "$ref": "#/components/schemas/HALLinkRole"
            },
            "type": "object",
            "title": "Embeddings",
            "description": "Hal embeddings, indexed by relation."
          }
        },
        "additionalProperties": true,
        "type": "object",
        "title": "DeleteResponse",
        "description": "Confirmation of a delete request."
      },
      "HALEmbedding": {
        "properties": {},
        "additionalProperties": true,
        "type": "object",
        "title": "HALEmbedding",
        "description": "Any embedded representation in a HAL response."
      },
      "HALLink": {
        "properties": {
          "href": {
            "type": "string",
            "title": "Link URL",
            "description": "Target url for this link."
          },
          "type": {
            "type": "string",
            "title": "Link type",
            "description": "Type of the resource referenced by this link."
          },
          "method": {
            "$ref": "#/components/schemas/HALLinkMethod",
            "title": "Link method",
            "description": "Http method required to resolve the link."
          }
        },
        "additionalProperties": true,
        "type": "object",
        "required": [
          "href"
        ],
        "title": "HALLink",
        "description": "A link target in a HAL response."
      },
      "HALLinkMethod": {
        "type": "string",
        "enum": [
          "GET",
          "POST",
          "PUT",
          "DELETE",
          "PATCH"
        ],
        "title": "HALLinkMethod",
        "description": "An http method that can be specified in a HAL link."
      },
      "HALLinkRole": {
        "type": "string",
        "enum": [
          "self",
          "first",
          "prev",
          "next",
          "last",
          "execute"
        ],
        "title": "HALLinkRole",
        "description": "Supported link and embedding roles in HAL representations."
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
          }
        },
        "type": "object",
        "title": "HTTPValidationError"
      },
      "HeaderArrayOption": {
        "type": "string",
        "enum": [
          "row",
          "column"
        ],
        "title": "HeaderArrayOption",
        "description": "Allowed values for the render.header_array option."
      },
      "InterpolationMethod": {
        "type": "string",
        "enum": [
          "pad",
          "fixed",
          "backfill",
          "linear",
          "zero",
          "slinear",
          "quadratic",
          "cubic",
          "polynomial",
          "spline",
          "from_derivatives",
          "pchip",
          "akima"
        ],
        "title": "InterpolationMethod",
        "description": "Interpolation algorithm specifier."
      },
      "InterpolationSpec": {
        "properties": {
          "method": {
            "oneOf": [
              {
                "const": "pad",
                "title": "pad",
                "description": "Interpolate with the value of the first observed point. This method also extrapolates."
              },
              {
                "const": "fixed",
                "title": "fixed",
                "description": "Interpolate with a fixed, user-specified value. This method also extrapolates."
              },
              {
                "const": "backfill",
                "title": "backfill",
                "description": "Same as pad, but using the last observed value. This method also extrapolates"
              },
              {
                "const": "linear",
                "title": "linear",
                "description": "Linearly go from the first observed value of the gap to the last observed oneThis method also extrapolates"
              },
              {
                "const": "nearest",
                "title": "nearest",
                "description": "Use the value that is closest in time."
              },
              {
                "const": "zero",
                "title": "zero",
                "description": "Interpolate with a spline function of order 0, which is a piecewise polynomial."
              },
              {
                "const": "slinear",
                "title": "slinear",
                "description": "Interpolate with a spline function of order 1, which is a piecewise polynomial."
              },
              {
                "const": "quadratic",
                "title": "quadratic",
                "description": "Interpolate with a spline function of order 2, which is a piecewise polynomial."
              },
              {
                "const": "cubic",
                "title": "cubic",
                "description": "Interpolate with a spline function of order 3, which is a piecewise polynomial."
              },
              {
                "const": "polynomial",
                "title": "polynomial",
                "description": "Interpolate with a polynomial of the lowest possible degree passing trough the data points."
              },
              {
                "const": "spline",
                "title": "spline",
                "description": "Interpolate with a spline function of a user-specified order."
              },
              {
                "const": "from_derivatives",
                "title": "from_derivatives",
                "description": "Interpolate with the derivative of order 1."
              },
              {
                "const": "pchip",
                "title": "pchip",
                "description": "Interpolate with a piecewise cubic spline function."
              },
              {
                "const": "akima",
                "title": "akima",
                "description": "Interpolate with a non-smoothing spline of order 2, called Akima interpolation."
              }
            ],
            "type": "string",
            "title": "Interpolation method"
          },
          "value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "integer"
              }
            ],
            "title": "Interpolation parameter",
            "description": "Optional parameter value for the interpolation method (see method description)."
          },
          "order": {
            "type": "integer",
            "title": "Interpolation order",
            "description": "Optional order parameter for the interpolation method (see method description)."
          }
        },
        "additionalProperties": true,
        "type": "object",
        "required": [
          "method"
        ],
        "title": "InterpolationSpec",
        "description": "Defines whether, and how to treat missing values.\n\nThis can occur in two circumstances when aggregating (setting a sample frequency):\n* missing values: if there are missing (or invalid) values stored for\na given freq-interval,\n\"interpolation\" specifies how to compute these.\n* down-sampling: when the specified freq is smaller than the series\u2019\nactual frequency.\n\"interpolation\" specifies how to compute intermediate values."
      },
      "Message": {
        "properties": {
          "code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Code"
          },
          "message": {
            "type": "string",
            "title": "Message"
          },
          "level": {
            "type": "string",
            "enum": [
              "debug",
              "info",
              "warning",
              "error",
              "fatal"
            ],
            "title": "Level",
            "default": "info"
          },
          "args": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Args"
          }
        },
        "type": "object",
        "required": [
          "message"
        ],
        "title": "Message",
        "description": "Individual (info/warning/error) message in a response."
      },
      "MessageProperties": {
        "properties": {
          "resource": {
            "type": "string",
            "title": "Series resource id"
          },
          "metric": {
            "type": "string",
            "title": "Series metric"
          }
        },
        "additionalProperties": true,
        "type": "object",
        "title": "MessageProperties",
        "description": "Additional message arguments."
      },
      "ObjectData": {
        "properties": {
          "timestamp": {
            "$ref": "#/components/schemas/Timestamp"
          },
          "timestamp_iso": {
            "$ref": "#/components/schemas/TimestampIso"
          },
          "role": {
            "$ref": "#/components/schemas/Role"
          },
          "resource": {
            "type": "string",
            "title": "Resource",
            "description": "Series resource id, if applicable for all values."
          },
          "metric": {
            "type": "string",
            "title": "Metric",
            "description": "Series metric, if applicable for all values."
          },
          "aggregation": {
            "type": "string",
            "title": "Aggregation",
            "description": "Series aggregation, if applicable for all values."
          },
          "levels": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Hierarchical Levels",
            "description": "Attribute level names used to key the values for this observation.\n\nLevels that are flattened have a dot-separated key.\n\nIf all observations have the same attribute for a level, that level might be omitted.",
            "examples": [
              [
                "resource",
                "metric",
                "aggregation"
              ],
              [
                "resource.metric"
              ]
            ]
          }
        },
        "additionalProperties": {
          "oneOf": [
            {
              "type": "object",
              "title": "Hierarchical Data",
              "description": "Values for the series whose attributes corresponds with the key. Keyed by sub-levels."
            },
            {
              "$ref": "#/components/schemas/Datum",
              "description": "Series value that corresponds with a (flattened) attribute key."
            }
          ],
          "title": "Data "
        },
        "type": "object",
        "required": [
          "timestamp"
        ],
        "title": "ObjectData",
        "description": "Result data for a timestamp in object format."
      },
      "ObjectDataSet": {
        "properties": {
          "attributes": {
            "$ref": "#/components/schemas/DataSetAttributes"
          },
          "window_spec": {
            "$ref": "#/components/schemas/DataSetWindow"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/ObjectData"
            },
            "type": "array",
            "title": "Data"
          }
        },
        "additionalProperties": true,
        "type": "object",
        "required": [
          "data"
        ],
        "title": "ObjectDataSet",
        "description": "Data result in object format.\n\nResult item when render option `render.header_array` is not set.\n\nThe data values are keyed by their attributes (`resource`, `metric`, `aggregation`),\naccording to the render options:\n* _hierachical_: for each level, a sub-object is created\n  (e.g. `render.mode=hier_dict`)\n* _flattened_: the attributes are '.'-separated concatenation\n  of the attributes (e.g `render.mode=flat_dict`)\n* _mixed_: (.e.g. `render.mode=metric_flat_dict`) a single level\n    (e.g. `metric`) is used as main key, any remaining levels\n    (`resource`,`aggregation`) are indicated with a flattened subkey.\n\nWhen `render.rollup=true`, the attribute levels that are the same for all series are\nnot used as key, but reported as a data or table attribute."
      },
      "QueriesListResponse": {
        "properties": {
          "messages": {
            "items": {
              "$ref": "#/components/schemas/Message"
            },
            "type": "array",
            "title": "Messages"
          },
          "queries": {
            "items": {
              "$ref": "#/components/schemas/QueryListItem"
            },
            "type": "array",
            "title": "Query item list",
            "description": "One page of matching query definitions."
          },
          "count": {
            "type": "integer",
            "title": "Current page size",
            "description": "Number of query definitions returned in the current response."
          },
          "offset": {
            "type": "integer",
            "title": "Page offset",
            "description": "Offset in the full listing (skipped definitions)."
          },
          "limit": {
            "type": "integer",
            "title": "Page size limit",
            "description": "Maximal number of query definitions returned in one response."
          },
          "total_count": {
            "type": "integer",
            "title": "Total count",
            "description": "Total number of query definitions matching the filter."
          },
          "_links": {
            "$ref": "#/components/schemas/QueryListHALLinks"
          }
        },
        "additionalProperties": true,
        "type": "object",
        "required": [
          "queries",
          "count",
          "offset",
          "limit",
          "_links"
        ],
        "title": "QueriesListResponse",
        "description": "Listing of named queries, with paging links."
      },
      "Query-Input": {
        "properties": {
          "resource": {
            "type": "string",
            "title": "Default Resource",
            "description": "Default resource for the series in the query."
          },
          "metric": {
            "type": "string",
            "title": "Default Metric",
            "description": "Default metric for the series in the query."
          },
          "aggregation": {
            "anyOf": [
              {
                "oneOf": [
                  {
                    "const": "first",
                    "title": "First",
                    "description": "Use the first value (in time) to represent all data for the sample interval."
                  },
                  {
                    "const": "last",
                    "title": "Last",
                    "description": "Use the last value (in time) to represent all data for the sample interval."
                  },
                  {
                    "const": "mean",
                    "title": "Mean",
                    "description": "Aggregate data by the mean value: The sum of values divided by number of observations."
                  },
                  {
                    "const": "median",
                    "title": "Median",
                    "description": "Aggregate data by the median value: The n/2-th value when ordered, the average of the (n-1)/2-th and (n+1)/2-th value when n is uneven."
                  },
                  {
                    "const": "sum",
                    "title": "Sum",
                    "description": "The sum of all values summarizes the data for the sample interval."
                  },
                  {
                    "const": "count",
                    "title": "Count",
                    "description": "Use the count of observations in the sample interval."
                  },
                  {
                    "const": "count-numeric",
                    "title": "Count Numeric",
                    "description": "Use the count of numeric observations in the sample interval."
                  },
                  {
                    "const": "count-non-numeric",
                    "title": "Count Non-numeric",
                    "description": "Use the count of non-numeric observations in the sample interval."
                  },
                  {
                    "const": "std",
                    "title": "Standard Deviation",
                    "description": "Use the standard deviation of all observations in the sample interval."
                  },
                  {
                    "const": "max",
                    "title": "Maximum",
                    "description": "Use the maximum of all values in the sample interval."
                  },
                  {
                    "const": "min",
                    "title": "Minimum",
                    "description": "Use the minimum of all values in the sample interval."
                  },
                  {
                    "pattern": "^percentile\\((1(\\.0*)?)|(0\\.[0-9]*)\\)$",
                    "title": "Precentile",
                    "description": "Aggregate data by the p-th percentile, where p is a number between 0 and 1.",
                    "example": "percentile(0.02)"
                  }
                ],
                "type": "string",
                "title": "Aggregation",
                "description": "Aggregation method for a series in the query."
              },
              {
                "items": {
                  "anyOf": [
                    {
                      "oneOf": [
                        {
                          "const": "first",
                          "title": "First",
                          "description": "Use the first value (in time) to represent all data for the sample interval."
                        },
                        {
                          "const": "last",
                          "title": "Last",
                          "description": "Use the last value (in time) to represent all data for the sample interval."
                        },
                        {
                          "const": "mean",
                          "title": "Mean",
                          "description": "Aggregate data by the mean value: The sum of values divided by number of observations."
                        },
                        {
                          "const": "median",
                          "title": "Median",
                          "description": "Aggregate data by the median value: The n/2-th value when ordered, the average of the (n-1)/2-th and (n+1)/2-th value when n is uneven."
                        },
                        {
                          "const": "sum",
                          "title": "Sum",
                          "description": "The sum of all values summarizes the data for the sample interval."
                        },
                        {
                          "const": "count",
                          "title": "Count",
                          "description": "Use the count of observations in the sample interval."
                        },
                        {
                          "const": "count-numeric",
                          "title": "Count Numeric",
                          "description": "Use the count of numeric observations in the sample interval."
                        },
                        {
                          "const": "count-non-numeric",
                          "title": "Count Non-numeric",
                          "description": "Use the count of non-numeric observations in the sample interval."
                        },
                        {
                          "const": "std",
                          "title": "Standard Deviation",
                          "description": "Use the standard deviation of all observations in the sample interval."
                        },
                        {
                          "const": "max",
                          "title": "Maximum",
                          "description": "Use the maximum of all values in the sample interval."
                        },
                        {
                          "const": "min",
                          "title": "Minimum",
                          "description": "Use the minimum of all values in the sample interval."
                        },
                        {
                          "pattern": "^percentile\\((1(\\.0*)?)|(0\\.[0-9]*)\\)$",
                          "title": "Precentile",
                          "description": "Aggregate data by the p-th percentile, where p is a number between 0 and 1.",
                          "example": "percentile(0.02)"
                        }
                      ],
                      "type": "string",
                      "title": "Aggregation",
                      "description": "Aggregation method for a series in the query."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "type": "array",
                "title": "Aggregations",
                "description": "Aggregation methods, leading to sepearate series."
              },
              {
                "additionalProperties": {
                  "anyOf": [
                    {
                      "oneOf": [
                        {
                          "const": "first",
                          "title": "First",
                          "description": "Use the first value (in time) to represent all data for the sample interval."
                        },
                        {
                          "const": "last",
                          "title": "Last",
                          "description": "Use the last value (in time) to represent all data for the sample interval."
                        },
                        {
                          "const": "mean",
                          "title": "Mean",
                          "description": "Aggregate data by the mean value: The sum of values divided by number of observations."
                        },
                        {
                          "const": "median",
                          "title": "Median",
                          "description": "Aggregate data by the median value: The n/2-th value when ordered, the average of the (n-1)/2-th and (n+1)/2-th value when n is uneven."
                        },
                        {
                          "const": "sum",
                          "title": "Sum",
                          "description": "The sum of all values summarizes the data for the sample interval."
                        },
                        {
                          "const": "count",
                          "title": "Count",
                          "description": "Use the count of observations in the sample interval."
                        },
                        {
                          "const": "count-numeric",
                          "title": "Count Numeric",
                          "description": "Use the count of numeric observations in the sample interval."
                        },
                        {
                          "const": "count-non-numeric",
                          "title": "Count Non-numeric",
                          "description": "Use the count of non-numeric observations in the sample interval."
                        },
                        {
                          "const": "std",
                          "title": "Standard Deviation",
                          "description": "Use the standard deviation of all observations in the sample interval."
                        },
                        {
                          "const": "max",
                          "title": "Maximum",
                          "description": "Use the maximum of all values in the sample interval."
                        },
                        {
                          "const": "min",
                          "title": "Minimum",
                          "description": "Use the minimum of all values in the sample interval."
                        },
                        {
                          "pattern": "^percentile\\((1(\\.0*)?)|(0\\.[0-9]*)\\)$",
                          "title": "Precentile",
                          "description": "Aggregate data by the p-th percentile, where p is a number between 0 and 1.",
                          "example": "percentile(0.02)"
                        }
                      ],
                      "type": "string",
                      "title": "Aggregation",
                      "description": "Aggregation method for a series in the query."
                    },
                    {
                      "items": {
                        "anyOf": [
                          {
                            "oneOf": [
                              {
                                "const": "first",
                                "title": "First",
                                "description": "Use the first value (in time) to represent all data for the sample interval."
                              },
                              {
                                "const": "last",
                                "title": "Last",
                                "description": "Use the last value (in time) to represent all data for the sample interval."
                              },
                              {
                                "const": "mean",
                                "title": "Mean",
                                "description": "Aggregate data by the mean value: The sum of values divided by number of observations."
                              },
                              {
                                "const": "median",
                                "title": "Median",
                                "description": "Aggregate data by the median value: The n/2-th value when ordered, the average of the (n-1)/2-th and (n+1)/2-th value when n is uneven."
                              },
                              {
                                "const": "sum",
                                "title": "Sum",
                                "description": "The sum of all values summarizes the data for the sample interval."
                              },
                              {
                                "const": "count",
                                "title": "Count",
                                "description": "Use the count of observations in the sample interval."
                              },
                              {
                                "const": "count-numeric",
                                "title": "Count Numeric",
                                "description": "Use the count of numeric observations in the sample interval."
                              },
                              {
                                "const": "count-non-numeric",
                                "title": "Count Non-numeric",
                                "description": "Use the count of non-numeric observations in the sample interval."
                              },
                              {
                                "const": "std",
                                "title": "Standard Deviation",
                                "description": "Use the standard deviation of all observations in the sample interval."
                              },
                              {
                                "const": "max",
                                "title": "Maximum",
                                "description": "Use the maximum of all values in the sample interval."
                              },
                              {
                                "const": "min",
                                "title": "Minimum",
                                "description": "Use the minimum of all values in the sample interval."
                              },
                              {
                                "pattern": "^percentile\\((1(\\.0*)?)|(0\\.[0-9]*)\\)$",
                                "title": "Precentile",
                                "description": "Aggregate data by the p-th percentile, where p is a number between 0 and 1.",
                                "example": "percentile(0.02)"
                              }
                            ],
                            "type": "string",
                            "title": "Aggregation",
                            "description": "Aggregation method for a series in the query."
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "type": "array",
                      "title": "Aggregations",
                      "description": "Aggregation methods, leading to sepearate series."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "type": "object",
                "title": "Aggregation by Resource or Metric",
                "description": "Aggregation methods specified per resource or metric."
              },
              {
                "additionalProperties": {
                  "anyOf": [
                    {
                      "additionalProperties": {
                        "anyOf": [
                          {
                            "oneOf": [
                              {
                                "const": "first",
                                "title": "First",
                                "description": "Use the first value (in time) to represent all data for the sample interval."
                              },
                              {
                                "const": "last",
                                "title": "Last",
                                "description": "Use the last value (in time) to represent all data for the sample interval."
                              },
                              {
                                "const": "mean",
                                "title": "Mean",
                                "description": "Aggregate data by the mean value: The sum of values divided by number of observations."
                              },
                              {
                                "const": "median",
                                "title": "Median",
                                "description": "Aggregate data by the median value: The n/2-th value when ordered, the average of the (n-1)/2-th and (n+1)/2-th value when n is uneven."
                              },
                              {
                                "const": "sum",
                                "title": "Sum",
                                "description": "The sum of all values summarizes the data for the sample interval."
                              },
                              {
                                "const": "count",
                                "title": "Count",
                                "description": "Use the count of observations in the sample interval."
                              },
                              {
                                "const": "count-numeric",
                                "title": "Count Numeric",
                                "description": "Use the count of numeric observations in the sample interval."
                              },
                              {
                                "const": "count-non-numeric",
                                "title": "Count Non-numeric",
                                "description": "Use the count of non-numeric observations in the sample interval."
                              },
                              {
                                "const": "std",
                                "title": "Standard Deviation",
                                "description": "Use the standard deviation of all observations in the sample interval."
                              },
                              {
                                "const": "max",
                                "title": "Maximum",
                                "description": "Use the maximum of all values in the sample interval."
                              },
                              {
                                "const": "min",
                                "title": "Minimum",
                                "description": "Use the minimum of all values in the sample interval."
                              },
                              {
                                "pattern": "^percentile\\((1(\\.0*)?)|(0\\.[0-9]*)\\)$",
                                "title": "Precentile",
                                "description": "Aggregate data by the p-th percentile, where p is a number between 0 and 1.",
                                "example": "percentile(0.02)"
                              }
                            ],
                            "type": "string",
                            "title": "Aggregation",
                            "description": "Aggregation method for a series in the query."
                          },
                          {
                            "items": {
                              "anyOf": [
                                {
                                  "oneOf": [
                                    {
                                      "const": "first",
                                      "title": "First",
                                      "description": "Use the first value (in time) to represent all data for the sample interval."
                                    },
                                    {
                                      "const": "last",
                                      "title": "Last",
                                      "description": "Use the last value (in time) to represent all data for the sample interval."
                                    },
                                    {
                                      "const": "mean",
                                      "title": "Mean",
                                      "description": "Aggregate data by the mean value: The sum of values divided by number of observations."
                                    },
                                    {
                                      "const": "median",
                                      "title": "Median",
                                      "description": "Aggregate data by the median value: The n/2-th value when ordered, the average of the (n-1)/2-th and (n+1)/2-th value when n is uneven."
                                    },
                                    {
                                      "const": "sum",
                                      "title": "Sum",
                                      "description": "The sum of all values summarizes the data for the sample interval."
                                    },
                                    {
                                      "const": "count",
                                      "title": "Count",
                                      "description": "Use the count of observations in the sample interval."
                                    },
                                    {
                                      "const": "count-numeric",
                                      "title": "Count Numeric",
                                      "description": "Use the count of numeric observations in the sample interval."
                                    },
                                    {
                                      "const": "count-non-numeric",
                                      "title": "Count Non-numeric",
                                      "description": "Use the count of non-numeric observations in the sample interval."
                                    },
                                    {
                                      "const": "std",
                                      "title": "Standard Deviation",
                                      "description": "Use the standard deviation of all observations in the sample interval."
                                    },
                                    {
                                      "const": "max",
                                      "title": "Maximum",
                                      "description": "Use the maximum of all values in the sample interval."
                                    },
                                    {
                                      "const": "min",
                                      "title": "Minimum",
                                      "description": "Use the minimum of all values in the sample interval."
                                    },
                                    {
                                      "pattern": "^percentile\\((1(\\.0*)?)|(0\\.[0-9]*)\\)$",
                                      "title": "Precentile",
                                      "description": "Aggregate data by the p-th percentile, where p is a number between 0 and 1.",
                                      "example": "percentile(0.02)"
                                    }
                                  ],
                                  "type": "string",
                                  "title": "Aggregation",
                                  "description": "Aggregation method for a series in the query."
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "type": "array",
                            "title": "Aggregations",
                            "description": "Aggregation methods, leading to sepearate series."
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "type": "object",
                      "title": "Aggregation by Resource or Metric",
                      "description": "Aggregation methods specified per resource or metric."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "type": "object",
                "title": "Aggregation by Resource and Metric",
                "description": "Aggregation methods specified per resource and metric."
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Aggregation",
            "description": "Default aggregation method(s) for the series in the query."
          },
          "interpolation": {
            "anyOf": [
              {
                "properties": {
                  "method": {
                    "oneOf": [
                      {
                        "const": "pad",
                        "title": "pad",
                        "description": "Interpolate with the value of the first observed point. This method also extrapolates."
                      },
                      {
                        "const": "fixed",
                        "title": "fixed",
                        "description": "Interpolate with a fixed, user-specified value. This method also extrapolates."
                      },
                      {
                        "const": "backfill",
                        "title": "backfill",
                        "description": "Same as pad, but using the last observed value. This method also extrapolates"
                      },
                      {
                        "const": "linear",
                        "title": "linear",
                        "description": "Linearly go from the first observed value of the gap to the last observed oneThis method also extrapolates"
                      },
                      {
                        "const": "nearest",
                        "title": "nearest",
                        "description": "Use the value that is closest in time."
                      },
                      {
                        "const": "zero",
                        "title": "zero",
                        "description": "Interpolate with a spline function of order 0, which is a piecewise polynomial."
                      },
                      {
                        "const": "slinear",
                        "title": "slinear",
                        "description": "Interpolate with a spline function of order 1, which is a piecewise polynomial."
                      },
                      {
                        "const": "quadratic",
                        "title": "quadratic",
                        "description": "Interpolate with a spline function of order 2, which is a piecewise polynomial."
                      },
                      {
                        "const": "cubic",
                        "title": "cubic",
                        "description": "Interpolate with a spline function of order 3, which is a piecewise polynomial."
                      },
                      {
                        "const": "polynomial",
                        "title": "polynomial",
                        "description": "Interpolate with a polynomial of the lowest possible degree passing trough the data points."
                      },
                      {
                        "const": "spline",
                        "title": "spline",
                        "description": "Interpolate with a spline function of a user-specified order."
                      },
                      {
                        "const": "from_derivatives",
                        "title": "from_derivatives",
                        "description": "Interpolate with the derivative of order 1."
                      },
                      {
                        "const": "pchip",
                        "title": "pchip",
                        "description": "Interpolate with a piecewise cubic spline function."
                      },
                      {
                        "const": "akima",
                        "title": "akima",
                        "description": "Interpolate with a non-smoothing spline of order 2, called Akima interpolation."
                      }
                    ],
                    "type": "string",
                    "title": "Interpolation method"
                  },
                  "value": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "integer"
                      }
                    ],
                    "title": "Interpolation parameter",
                    "description": "Optional parameter value for the interpolation method (see method description)."
                  },
                  "order": {
                    "type": "integer",
                    "title": "Interpolation order",
                    "description": "Optional order parameter for the interpolation method (see method description)."
                  }
                },
                "additionalProperties": true,
                "type": "object",
                "required": [
                  "method"
                ],
                "title": "InterpolationSpec",
                "description": "Defines whether, and how to treat missing values.\n\nThis can occur in two circumstances when aggregating (setting a sample frequency):\n* missing values: if there are missing (or invalid) values stored for\na given freq-interval,\n\"interpolation\" specifies how to compute these.\n* down-sampling: when the specified freq is smaller than the series\u2019\nactual frequency.\n\"interpolation\" specifies how to compute intermediate values."
              },
              {
                "oneOf": [
                  {
                    "const": "pad",
                    "title": "pad",
                    "description": "Interpolate with the value of the first observed point. This method also extrapolates."
                  },
                  {
                    "const": "fixed",
                    "title": "fixed",
                    "description": "Interpolate with a fixed, user-specified value. This method also extrapolates."
                  },
                  {
                    "const": "backfill",
                    "title": "backfill",
                    "description": "Same as pad, but using the last observed value. This method also extrapolates"
                  },
                  {
                    "const": "linear",
                    "title": "linear",
                    "description": "Linearly go from the first observed value of the gap to the last observed oneThis method also extrapolates"
                  },
                  {
                    "const": "nearest",
                    "title": "nearest",
                    "description": "Use the value that is closest in time."
                  },
                  {
                    "const": "zero",
                    "title": "zero",
                    "description": "Interpolate with a spline function of order 0, which is a piecewise polynomial."
                  },
                  {
                    "const": "slinear",
                    "title": "slinear",
                    "description": "Interpolate with a spline function of order 1, which is a piecewise polynomial."
                  },
                  {
                    "const": "quadratic",
                    "title": "quadratic",
                    "description": "Interpolate with a spline function of order 2, which is a piecewise polynomial."
                  },
                  {
                    "const": "cubic",
                    "title": "cubic",
                    "description": "Interpolate with a spline function of order 3, which is a piecewise polynomial."
                  },
                  {
                    "const": "polynomial",
                    "title": "polynomial",
                    "description": "Interpolate with a polynomial of the lowest possible degree passing trough the data points."
                  },
                  {
                    "const": "spline",
                    "title": "spline",
                    "description": "Interpolate with a spline function of a user-specified order."
                  },
                  {
                    "const": "from_derivatives",
                    "title": "from_derivatives",
                    "description": "Interpolate with the derivative of order 1."
                  },
                  {
                    "const": "pchip",
                    "title": "pchip",
                    "description": "Interpolate with a piecewise cubic spline function."
                  },
                  {
                    "const": "akima",
                    "title": "akima",
                    "description": "Interpolate with a non-smoothing spline of order 2, called Akima interpolation."
                  }
                ]
              }
            ],
            "title": "Default Interpolation",
            "description": "Default Interpolation method for the series (if aggregated)."
          },
          "freq": {
            "oneOf": [
              {
                "type": "string",
                "pattern": "^P([0-9]+Y)?([0-9]+M)?([0-9]+W)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\.[0-9]*)?S)?)?$",
                "format": "period",
                "title": "ISO8601 period ",
                "description": "A period in [ISO8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) format.",
                "example": "PT3H15M"
              },
              {
                "type": "string",
                "const": "inferred",
                "title": "Inferred Frequency",
                "description": "When `inferred` is specified, the frequency of aggregation will be inferred from the main/first time series. This can be used to regularize the time series"
              }
            ],
            "type": "string",
            "title": "Grouping interval",
            "description": "Interval used to aggregate or regularize data. One of the [time line](https://docs.waylay.io/#/api/query/?id=time-line-properties) specifiers."
          },
          "from": {
            "oneOf": [
              {
                "type": "string",
                "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}(T.*)?",
                "format": "date-time",
                "title": "ISO8601 absolute timestamp",
                "description": "A date or date-time in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) format. When no timezone is specified, the UTC timezone is assumed (`+00:00`)",
                "example": "2018-03-21T12:23:00+01:00"
              },
              {
                "type": "integer",
                "minimum": 0.0,
                "title": "UNIX epoch milliseconds",
                "description": "Absolute timestamp milliseconds in unix epoch since 1970-01-01.",
                "example": 1534836422284
              },
              {
                "type": "string",
                "pattern": "^P([0-9]+Y)?([0-9]+M)?([0-9]+W)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\.[0-9]*)?S)?)?$",
                "format": "period",
                "title": "ISO8601 Period Before Now",
                "description": "Specifies a timestamp before _now_ as a period in [ISO8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) format.",
                "example": "PT3H15M"
              }
            ],
            "title": "Time Window From",
            "description": "The start of the time window for which results will be returned. One of the [time line](https://docs.waylay.io/#/api/query/?id=time-line-properties)  specifiers."
          },
          "until": {
            "oneOf": [
              {
                "type": "string",
                "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}(T.*)?",
                "format": "date-time",
                "title": "ISO8601 absolute timestamp",
                "description": "A date or date-time in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) format. When no timezone is specified, the UTC timezone is assumed (`+00:00`)",
                "example": "2018-03-21T12:23:00+01:00"
              },
              {
                "type": "integer",
                "minimum": 0.0,
                "title": "UNIX epoch milliseconds",
                "description": "Absolute timestamp milliseconds in unix epoch since 1970-01-01.",
                "example": 1534836422284
              },
              {
                "type": "string",
                "pattern": "^P([0-9]+Y)?([0-9]+M)?([0-9]+W)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\.[0-9]*)?S)?)?$",
                "format": "period",
                "title": "ISO8601 Period Before Now",
                "description": "Specifies a timestamp before _now_ as a period in [ISO8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) format.",
                "example": "PT3H15M"
              }
            ],
            "title": "Time Window Until",
            "description": "The end (not-inclusive) of the time window for which results will be returned. One of the [time line](https://docs.waylay.io/#/api/query/?id=time-line-properties)specifiers."
          },
          "window": {
            "oneOf": [
              {
                "type": "string",
                "pattern": "^P([0-9]+Y)?([0-9]+M)?([0-9]+W)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\.[0-9]*)?S)?)?$",
                "format": "period",
                "title": "ISO8601 period ",
                "description": "A period in [ISO8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) format.",
                "example": "PT3H15M"
              }
            ],
            "type": "string",
            "title": "Window",
            "description": "The absolute size of the time window for which results will be returned. One of the [time line](https://docs.waylay.io/#/api/query/?id=time-line-properties) specifiers."
          },
          "periods": {
            "type": "integer",
            "title": "Periods",
            "description": "The size of the time window in number of `freq` units. One of the [time line](https://docs.waylay.io/#/api/query/?id=time-line-properties) specifiers."
          },
          "align": {
            "$ref": "#/components/schemas/Alignment"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/SeriesSpec"
            },
            "type": "array",
            "title": "Series specifications",
            "description": "List of series specifications. When not specified, a single default series specification is assumed(`[{}]`, using the default `metric`,`resource`, ... )."
          },
          "render": {
            "$ref": "#/components/schemas/Render"
          },
          "lookback": {
            "type": "boolean",
            "title": "Lookback option.",
            "description": "If enabled, the **last-known value** for each of the series will be taken into account in the result. \nFor **unaggregated** series, that value will be included as is (with a timestamp before the result window).\nFor **aggregated** series, that value will be used at the first timestamp, but only if\n * no aggregated value on the first timestamp could be computed\n * and the aggregation is compatible with the value, i.e. in mean, min, max, first, last, median"
          }
        },
        "additionalProperties": true,
        "type": "object",
        "title": "Query",
        "description": "Query definition for a Waylay analytics query.\n\nSee also [api docs](https://docs.waylay.io/#/api/query/?id=data-query-json-representation)."
      },
      "Query-Output": {
        "properties": {
          "resource": {
            "type": "string",
            "title": "Default Resource",
            "description": "Default resource for the series in the query."
          },
          "metric": {
            "type": "string",
            "title": "Default Metric",
            "description": "Default metric for the series in the query."
          },
          "aggregation": {
            "anyOf": [
              {
                "oneOf": [
                  {
                    "const": "first",
                    "title": "First",
                    "description": "Use the first value (in time) to represent all data for the sample interval."
                  },
                  {
                    "const": "last",
                    "title": "Last",
                    "description": "Use the last value (in time) to represent all data for the sample interval."
                  },
                  {
                    "const": "mean",
                    "title": "Mean",
                    "description": "Aggregate data by the mean value: The sum of values divided by number of observations."
                  },
                  {
                    "const": "median",
                    "title": "Median",
                    "description": "Aggregate data by the median value: The n/2-th value when ordered, the average of the (n-1)/2-th and (n+1)/2-th value when n is uneven."
                  },
                  {
                    "const": "sum",
                    "title": "Sum",
                    "description": "The sum of all values summarizes the data for the sample interval."
                  },
                  {
                    "const": "count",
                    "title": "Count",
                    "description": "Use the count of observations in the sample interval."
                  },
                  {
                    "const": "count-numeric",
                    "title": "Count Numeric",
                    "description": "Use the count of numeric observations in the sample interval."
                  },
                  {
                    "const": "count-non-numeric",
                    "title": "Count Non-numeric",
                    "description": "Use the count of non-numeric observations in the sample interval."
                  },
                  {
                    "const": "std",
                    "title": "Standard Deviation",
                    "description": "Use the standard deviation of all observations in the sample interval."
                  },
                  {
                    "const": "max",
                    "title": "Maximum",
                    "description": "Use the maximum of all values in the sample interval."
                  },
                  {
                    "const": "min",
                    "title": "Minimum",
                    "description": "Use the minimum of all values in the sample interval."
                  },
                  {
                    "pattern": "^percentile\\((1(\\.0*)?)|(0\\.[0-9]*)\\)$",
                    "title": "Precentile",
                    "description": "Aggregate data by the p-th percentile, where p is a number between 0 and 1.",
                    "example": "percentile(0.02)"
                  }
                ],
                "type": "string",
                "title": "Aggregation",
                "description": "Aggregation method for a series in the query."
              },
              {
                "items": {
                  "anyOf": [
                    {
                      "oneOf": [
                        {
                          "const": "first",
                          "title": "First",
                          "description": "Use the first value (in time) to represent all data for the sample interval."
                        },
                        {
                          "const": "last",
                          "title": "Last",
                          "description": "Use the last value (in time) to represent all data for the sample interval."
                        },
                        {
                          "const": "mean",
                          "title": "Mean",
                          "description": "Aggregate data by the mean value: The sum of values divided by number of observations."
                        },
                        {
                          "const": "median",
                          "title": "Median",
                          "description": "Aggregate data by the median value: The n/2-th value when ordered, the average of the (n-1)/2-th and (n+1)/2-th value when n is uneven."
                        },
                        {
                          "const": "sum",
                          "title": "Sum",
                          "description": "The sum of all values summarizes the data for the sample interval."
                        },
                        {
                          "const": "count",
                          "title": "Count",
                          "description": "Use the count of observations in the sample interval."
                        },
                        {
                          "const": "count-numeric",
                          "title": "Count Numeric",
                          "description": "Use the count of numeric observations in the sample interval."
                        },
                        {
                          "const": "count-non-numeric",
                          "title": "Count Non-numeric",
                          "description": "Use the count of non-numeric observations in the sample interval."
                        },
                        {
                          "const": "std",
                          "title": "Standard Deviation",
                          "description": "Use the standard deviation of all observations in the sample interval."
                        },
                        {
                          "const": "max",
                          "title": "Maximum",
                          "description": "Use the maximum of all values in the sample interval."
                        },
                        {
                          "const": "min",
                          "title": "Minimum",
                          "description": "Use the minimum of all values in the sample interval."
                        },
                        {
                          "pattern": "^percentile\\((1(\\.0*)?)|(0\\.[0-9]*)\\)$",
                          "title": "Precentile",
                          "description": "Aggregate data by the p-th percentile, where p is a number between 0 and 1.",
                          "example": "percentile(0.02)"
                        }
                      ],
                      "type": "string",
                      "title": "Aggregation",
                      "description": "Aggregation method for a series in the query."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "type": "array",
                "title": "Aggregations",
                "description": "Aggregation methods, leading to sepearate series."
              },
              {
                "additionalProperties": {
                  "anyOf": [
                    {
                      "oneOf": [
                        {
                          "const": "first",
                          "title": "First",
                          "description": "Use the first value (in time) to represent all data for the sample interval."
                        },
                        {
                          "const": "last",
                          "title": "Last",
                          "description": "Use the last value (in time) to represent all data for the sample interval."
                        },
                        {
                          "const": "mean",
                          "title": "Mean",
                          "description": "Aggregate data by the mean value: The sum of values divided by number of observations."
                        },
                        {
                          "const": "median",
                          "title": "Median",
                          "description": "Aggregate data by the median value: The n/2-th value when ordered, the average of the (n-1)/2-th and (n+1)/2-th value when n is uneven."
                        },
                        {
                          "const": "sum",
                          "title": "Sum",
                          "description": "The sum of all values summarizes the data for the sample interval."
                        },
                        {
                          "const": "count",
                          "title": "Count",
                          "description": "Use the count of observations in the sample interval."
                        },
                        {
                          "const": "count-numeric",
                          "title": "Count Numeric",
                          "description": "Use the count of numeric observations in the sample interval."
                        },
                        {
                          "const": "count-non-numeric",
                          "title": "Count Non-numeric",
                          "description": "Use the count of non-numeric observations in the sample interval."
                        },
                        {
                          "const": "std",
                          "title": "Standard Deviation",
                          "description": "Use the standard deviation of all observations in the sample interval."
                        },
                        {
                          "const": "max",
                          "title": "Maximum",
                          "description": "Use the maximum of all values in the sample interval."
                        },
                        {
                          "const": "min",
                          "title": "Minimum",
                          "description": "Use the minimum of all values in the sample interval."
                        },
                        {
                          "pattern": "^percentile\\((1(\\.0*)?)|(0\\.[0-9]*)\\)$",
                          "title": "Precentile",
                          "description": "Aggregate data by the p-th percentile, where p is a number between 0 and 1.",
                          "example": "percentile(0.02)"
                        }
                      ],
                      "type": "string",
                      "title": "Aggregation",
                      "description": "Aggregation method for a series in the query."
                    },
                    {
                      "items": {
                        "anyOf": [
                          {
                            "oneOf": [
                              {
                                "const": "first",
                                "title": "First",
                                "description": "Use the first value (in time) to represent all data for the sample interval."
                              },
                              {
                                "const": "last",
                                "title": "Last",
                                "description": "Use the last value (in time) to represent all data for the sample interval."
                              },
                              {
                                "const": "mean",
                                "title": "Mean",
                                "description": "Aggregate data by the mean value: The sum of values divided by number of observations."
                              },
                              {
                                "const": "median",
                                "title": "Median",
                                "description": "Aggregate data by the median value: The n/2-th value when ordered, the average of the (n-1)/2-th and (n+1)/2-th value when n is uneven."
                              },
                              {
                                "const": "sum",
                                "title": "Sum",
                                "description": "The sum of all values summarizes the data for the sample interval."
                              },
                              {
                                "const": "count",
                                "title": "Count",
                                "description": "Use the count of observations in the sample interval."
                              },
                              {
                                "const": "count-numeric",
                                "title": "Count Numeric",
                                "description": "Use the count of numeric observations in the sample interval."
                              },
                              {
                                "const": "count-non-numeric",
                                "title": "Count Non-numeric",
                                "description": "Use the count of non-numeric observations in the sample interval."
                              },
                              {
                                "const": "std",
                                "title": "Standard Deviation",
                                "description": "Use the standard deviation of all observations in the sample interval."
                              },
                              {
                                "const": "max",
                                "title": "Maximum",
                                "description": "Use the maximum of all values in the sample interval."
                              },
                              {
                                "const": "min",
                                "title": "Minimum",
                                "description": "Use the minimum of all values in the sample interval."
                              },
                              {
                                "pattern": "^percentile\\((1(\\.0*)?)|(0\\.[0-9]*)\\)$",
                                "title": "Precentile",
                                "description": "Aggregate data by the p-th percentile, where p is a number between 0 and 1.",
                                "example": "percentile(0.02)"
                              }
                            ],
                            "type": "string",
                            "title": "Aggregation",
                            "description": "Aggregation method for a series in the query."
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "type": "array",
                      "title": "Aggregations",
                      "description": "Aggregation methods, leading to sepearate series."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "type": "object",
                "title": "Aggregation by Resource or Metric",
                "description": "Aggregation methods specified per resource or metric."
              },
              {
                "additionalProperties": {
                  "anyOf": [
                    {
                      "additionalProperties": {
                        "anyOf": [
                          {
                            "oneOf": [
                              {
                                "const": "first",
                                "title": "First",
                                "description": "Use the first value (in time) to represent all data for the sample interval."
                              },
                              {
                                "const": "last",
                                "title": "Last",
                                "description": "Use the last value (in time) to represent all data for the sample interval."
                              },
                              {
                                "const": "mean",
                                "title": "Mean",
                                "description": "Aggregate data by the mean value: The sum of values divided by number of observations."
                              },
                              {
                                "const": "median",
                                "title": "Median",
                                "description": "Aggregate data by the median value: The n/2-th value when ordered, the average of the (n-1)/2-th and (n+1)/2-th value when n is uneven."
                              },
                              {
                                "const": "sum",
                                "title": "Sum",
                                "description": "The sum of all values summarizes the data for the sample interval."
                              },
                              {
                                "const": "count",
                                "title": "Count",
                                "description": "Use the count of observations in the sample interval."
                              },
                              {
                                "const": "count-numeric",
                                "title": "Count Numeric",
                                "description": "Use the count of numeric observations in the sample interval."
                              },
                              {
                                "const": "count-non-numeric",
                                "title": "Count Non-numeric",
                                "description": "Use the count of non-numeric observations in the sample interval."
                              },
                              {
                                "const": "std",
                                "title": "Standard Deviation",
                                "description": "Use the standard deviation of all observations in the sample interval."
                              },
                              {
                                "const": "max",
                                "title": "Maximum",
                                "description": "Use the maximum of all values in the sample interval."
                              },
                              {
                                "const": "min",
                                "title": "Minimum",
                                "description": "Use the minimum of all values in the sample interval."
                              },
                              {
                                "pattern": "^percentile\\((1(\\.0*)?)|(0\\.[0-9]*)\\)$",
                                "title": "Precentile",
                                "description": "Aggregate data by the p-th percentile, where p is a number between 0 and 1.",
                                "example": "percentile(0.02)"
                              }
                            ],
                            "type": "string",
                            "title": "Aggregation",
                            "description": "Aggregation method for a series in the query."
                          },
                          {
                            "items": {
                              "anyOf": [
                                {
                                  "oneOf": [
                                    {
                                      "const": "first",
                                      "title": "First",
                                      "description": "Use the first value (in time) to represent all data for the sample interval."
                                    },
                                    {
                                      "const": "last",
                                      "title": "Last",
                                      "description": "Use the last value (in time) to represent all data for the sample interval."
                                    },
                                    {
                                      "const": "mean",
                                      "title": "Mean",
                                      "description": "Aggregate data by the mean value: The sum of values divided by number of observations."
                                    },
                                    {
                                      "const": "median",
                                      "title": "Median",
                                      "description": "Aggregate data by the median value: The n/2-th value when ordered, the average of the (n-1)/2-th and (n+1)/2-th value when n is uneven."
                                    },
                                    {
                                      "const": "sum",
                                      "title": "Sum",
                                      "description": "The sum of all values summarizes the data for the sample interval."
                                    },
                                    {
                                      "const": "count",
                                      "title": "Count",
                                      "description": "Use the count of observations in the sample interval."
                                    },
                                    {
                                      "const": "count-numeric",
                                      "title": "Count Numeric",
                                      "description": "Use the count of numeric observations in the sample interval."
                                    },
                                    {
                                      "const": "count-non-numeric",
                                      "title": "Count Non-numeric",
                                      "description": "Use the count of non-numeric observations in the sample interval."
                                    },
                                    {
                                      "const": "std",
                                      "title": "Standard Deviation",
                                      "description": "Use the standard deviation of all observations in the sample interval."
                                    },
                                    {
                                      "const": "max",
                                      "title": "Maximum",
                                      "description": "Use the maximum of all values in the sample interval."
                                    },
                                    {
                                      "const": "min",
                                      "title": "Minimum",
                                      "description": "Use the minimum of all values in the sample interval."
                                    },
                                    {
                                      "pattern": "^percentile\\((1(\\.0*)?)|(0\\.[0-9]*)\\)$",
                                      "title": "Precentile",
                                      "description": "Aggregate data by the p-th percentile, where p is a number between 0 and 1.",
                                      "example": "percentile(0.02)"
                                    }
                                  ],
                                  "type": "string",
                                  "title": "Aggregation",
                                  "description": "Aggregation method for a series in the query."
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "type": "array",
                            "title": "Aggregations",
                            "description": "Aggregation methods, leading to sepearate series."
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "type": "object",
                      "title": "Aggregation by Resource or Metric",
                      "description": "Aggregation methods specified per resource or metric."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "type": "object",
                "title": "Aggregation by Resource and Metric",
                "description": "Aggregation methods specified per resource and metric."
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Aggregation",
            "description": "Default aggregation method(s) for the series in the query."
          },
          "interpolation": {
            "anyOf": [
              {
                "properties": {
                  "method": {
                    "oneOf": [
                      {
                        "const": "pad",
                        "title": "pad",
                        "description": "Interpolate with the value of the first observed point. This method also extrapolates."
                      },
                      {
                        "const": "fixed",
                        "title": "fixed",
                        "description": "Interpolate with a fixed, user-specified value. This method also extrapolates."
                      },
                      {
                        "const": "backfill",
                        "title": "backfill",
                        "description": "Same as pad, but using the last observed value. This method also extrapolates"
                      },
                      {
                        "const": "linear",
                        "title": "linear",
                        "description": "Linearly go from the first observed value of the gap to the last observed oneThis method also extrapolates"
                      },
                      {
                        "const": "nearest",
                        "title": "nearest",
                        "description": "Use the value that is closest in time."
                      },
                      {
                        "const": "zero",
                        "title": "zero",
                        "description": "Interpolate with a spline function of order 0, which is a piecewise polynomial."
                      },
                      {
                        "const": "slinear",
                        "title": "slinear",
                        "description": "Interpolate with a spline function of order 1, which is a piecewise polynomial."
                      },
                      {
                        "const": "quadratic",
                        "title": "quadratic",
                        "description": "Interpolate with a spline function of order 2, which is a piecewise polynomial."
                      },
                      {
                        "const": "cubic",
                        "title": "cubic",
                        "description": "Interpolate with a spline function of order 3, which is a piecewise polynomial."
                      },
                      {
                        "const": "polynomial",
                        "title": "polynomial",
                        "description": "Interpolate with a polynomial of the lowest possible degree passing trough the data points."
                      },
                      {
                        "const": "spline",
                        "title": "spline",
                        "description": "Interpolate with a spline function of a user-specified order."
                      },
                      {
                        "const": "from_derivatives",
                        "title": "from_derivatives",
                        "description": "Interpolate with the derivative of order 1."
                      },
                      {
                        "const": "pchip",
                        "title": "pchip",
                        "description": "Interpolate with a piecewise cubic spline function."
                      },
                      {
                        "const": "akima",
                        "title": "akima",
                        "description": "Interpolate with a non-smoothing spline of order 2, called Akima interpolation."
                      }
                    ],
                    "type": "string",
                    "title": "Interpolation method"
                  },
                  "value": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "integer"
                      }
                    ],
                    "title": "Interpolation parameter",
                    "description": "Optional parameter value for the interpolation method (see method description)."
                  },
                  "order": {
                    "type": "integer",
                    "title": "Interpolation order",
                    "description": "Optional order parameter for the interpolation method (see method description)."
                  }
                },
                "additionalProperties": true,
                "type": "object",
                "required": [
                  "method"
                ],
                "title": "InterpolationSpec",
                "description": "Defines whether, and how to treat missing values.\n\nThis can occur in two circumstances when aggregating (setting a sample frequency):\n* missing values: if there are missing (or invalid) values stored for\na given freq-interval,\n\"interpolation\" specifies how to compute these.\n* down-sampling: when the specified freq is smaller than the series\u2019\nactual frequency.\n\"interpolation\" specifies how to compute intermediate values."
              },
              {
                "oneOf": [
                  {
                    "const": "pad",
                    "title": "pad",
                    "description": "Interpolate with the value of the first observed point. This method also extrapolates."
                  },
                  {
                    "const": "fixed",
                    "title": "fixed",
                    "description": "Interpolate with a fixed, user-specified value. This method also extrapolates."
                  },
                  {
                    "const": "backfill",
                    "title": "backfill",
                    "description": "Same as pad, but using the last observed value. This method also extrapolates"
                  },
                  {
                    "const": "linear",
                    "title": "linear",
                    "description": "Linearly go from the first observed value of the gap to the last observed oneThis method also extrapolates"
                  },
                  {
                    "const": "nearest",
                    "title": "nearest",
                    "description": "Use the value that is closest in time."
                  },
                  {
                    "const": "zero",
                    "title": "zero",
                    "description": "Interpolate with a spline function of order 0, which is a piecewise polynomial."
                  },
                  {
                    "const": "slinear",
                    "title": "slinear",
                    "description": "Interpolate with a spline function of order 1, which is a piecewise polynomial."
                  },
                  {
                    "const": "quadratic",
                    "title": "quadratic",
                    "description": "Interpolate with a spline function of order 2, which is a piecewise polynomial."
                  },
                  {
                    "const": "cubic",
                    "title": "cubic",
                    "description": "Interpolate with a spline function of order 3, which is a piecewise polynomial."
                  },
                  {
                    "const": "polynomial",
                    "title": "polynomial",
                    "description": "Interpolate with a polynomial of the lowest possible degree passing trough the data points."
                  },
                  {
                    "const": "spline",
                    "title": "spline",
                    "description": "Interpolate with a spline function of a user-specified order."
                  },
                  {
                    "const": "from_derivatives",
                    "title": "from_derivatives",
                    "description": "Interpolate with the derivative of order 1."
                  },
                  {
                    "const": "pchip",
                    "title": "pchip",
                    "description": "Interpolate with a piecewise cubic spline function."
                  },
                  {
                    "const": "akima",
                    "title": "akima",
                    "description": "Interpolate with a non-smoothing spline of order 2, called Akima interpolation."
                  }
                ]
              }
            ],
            "title": "Default Interpolation",
            "description": "Default Interpolation method for the series (if aggregated)."
          },
          "freq": {
            "oneOf": [
              {
                "type": "string",
                "pattern": "^P([0-9]+Y)?([0-9]+M)?([0-9]+W)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\.[0-9]*)?S)?)?$",
                "format": "period",
                "title": "ISO8601 period ",
                "description": "A period in [ISO8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) format.",
                "example": "PT3H15M"
              },
              {
                "type": "string",
                "const": "inferred",
                "title": "Inferred Frequency",
                "description": "When `inferred` is specified, the frequency of aggregation will be inferred from the main/first time series. This can be used to regularize the time series"
              }
            ],
            "type": "string",
            "title": "Grouping interval",
            "description": "Interval used to aggregate or regularize data. One of the [time line](https://docs.waylay.io/#/api/query/?id=time-line-properties) specifiers."
          },
          "from": {
            "oneOf": [
              {
                "type": "string",
                "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}(T.*)?",
                "format": "date-time",
                "title": "ISO8601 absolute timestamp",
                "description": "A date or date-time in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) format. When no timezone is specified, the UTC timezone is assumed (`+00:00`)",
                "example": "2018-03-21T12:23:00+01:00"
              },
              {
                "type": "integer",
                "minimum": 0.0,
                "title": "UNIX epoch milliseconds",
                "description": "Absolute timestamp milliseconds in unix epoch since 1970-01-01.",
                "example": 1534836422284
              },
              {
                "type": "string",
                "pattern": "^P([0-9]+Y)?([0-9]+M)?([0-9]+W)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\.[0-9]*)?S)?)?$",
                "format": "period",
                "title": "ISO8601 Period Before Now",
                "description": "Specifies a timestamp before _now_ as a period in [ISO8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) format.",
                "example": "PT3H15M"
              }
            ],
            "title": "Time Window From",
            "description": "The start of the time window for which results will be returned. One of the [time line](https://docs.waylay.io/#/api/query/?id=time-line-properties)  specifiers."
          },
          "until": {
            "oneOf": [
              {
                "type": "string",
                "pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}(T.*)?",
                "format": "date-time",
                "title": "ISO8601 absolute timestamp",
                "description": "A date or date-time in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) format. When no timezone is specified, the UTC timezone is assumed (`+00:00`)",
                "example": "2018-03-21T12:23:00+01:00"
              },
              {
                "type": "integer",
                "minimum": 0.0,
                "title": "UNIX epoch milliseconds",
                "description": "Absolute timestamp milliseconds in unix epoch since 1970-01-01.",
                "example": 1534836422284
              },
              {
                "type": "string",
                "pattern": "^P([0-9]+Y)?([0-9]+M)?([0-9]+W)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\.[0-9]*)?S)?)?$",
                "format": "period",
                "title": "ISO8601 Period Before Now",
                "description": "Specifies a timestamp before _now_ as a period in [ISO8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) format.",
                "example": "PT3H15M"
              }
            ],
            "title": "Time Window Until",
            "description": "The end (not-inclusive) of the time window for which results will be returned. One of the [time line](https://docs.waylay.io/#/api/query/?id=time-line-properties)specifiers."
          },
          "window": {
            "oneOf": [
              {
                "type": "string",
                "pattern": "^P([0-9]+Y)?([0-9]+M)?([0-9]+W)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\.[0-9]*)?S)?)?$",
                "format": "period",
                "title": "ISO8601 period ",
                "description": "A period in [ISO8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) format.",
                "example": "PT3H15M"
              }
            ],
            "type": "string",
            "title": "Window",
            "description": "The absolute size of the time window for which results will be returned. One of the [time line](https://docs.waylay.io/#/api/query/?id=time-line-properties) specifiers."
          },
          "periods": {
            "type": "integer",
            "title": "Periods",
            "description": "The size of the time window in number of `freq` units. One of the [time line](https://docs.waylay.io/#/api/query/?id=time-line-properties) specifiers."
          },
          "align": {
            "$ref": "#/components/schemas/Alignment"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/SeriesSpec"
            },
            "type": "array",
            "title": "Series specifications",
            "description": "List of series specifications. When not specified, a single default series specification is assumed(`[{}]`, using the default `metric`,`resource`, ... )."
          },
          "render": {
            "$ref": "#/components/schemas/Render"
          },
          "lookback": {
            "type": "boolean",
            "title": "Lookback option.",
            "description": "If enabled, the **last-known value** for each of the series will be taken into account in the result. \nFor **unaggregated** series, that value will be included as is (with a timestamp before the result window).\nFor **aggregated** series, that value will be used at the first timestamp, but only if\n * no aggregated value on the first timestamp could be computed\n * and the aggregation is compatible with the value, i.e. in mean, min, max, first, last, median"
          }
        },
        "additionalProperties": true,
        "type": "object",
        "title": "Query",
        "description": "Query definition for a Waylay analytics query.\n\nSee also [api docs](https://docs.waylay.io/#/api/query/?id=data-query-json-representation)."
      },
      "QueryEntityInput": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Query name",
            "description": "Name of the stored query definition."
          },
          "meta": {
            "additionalProperties": true,
            "type": "object",
            "title": "Query metadata",
            "description": "User metadata for the query definition."
          },
          "query": {
            "$ref": "#/components/schemas/Query-Input"
          }
        },
        "additionalProperties": true,
        "type": "object",
        "required": [
          "name",
          "query"
        ],
        "title": "QueryEntityInput",
        "description": "Input data to create a query definition."
      },
      "QueryExecutionMessage": {
        "properties": {
          "message": {
            "type": "string",
            "title": "Message",
            "description": "A human readable message."
          },
          "level": {
            "type": "string",
            "enum": [
              "debug",
              "info",
              "warning",
              "error"
            ],
            "title": "Severity Level"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "title": "Timestamp"
          },
          "action": {
            "type": "string",
            "title": "Action",
            "description": "The request action that caused this message."
          },
          "category": {
            "type": "string",
            "title": "Message Category",
            "description": "The subsystem that issued this message.",
            "examples": [
              "data",
              "broker",
              "opt-cfg"
            ]
          },
          "properties": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/MessageProperties"
              }
            ],
            "title": "Message Arguments"
          },
          "exception": {
            "$ref": "#/components/schemas/CauseException",
            "title": "",
            "description": ""
          }
        },
        "additionalProperties": true,
        "type": "object",
        "required": [
          "message",
          "level",
          "timestamp",
          "action",
          "category"
        ],
        "title": "Message Object",
        "description": "A message object that informs or warns about a query execution issue."
      },
      "QueryHALLinks": {
        "properties": {
          "self": {
            "$ref": "#/components/schemas/HALLink",
            "title": "Self link",
            "description": "Link to the query definition."
          },
          "execute": {
            "$ref": "#/components/schemas/HALLink",
            "title": "Execute link",
            "description": "Link to the query execution."
          }
        },
        "additionalProperties": true,
        "type": "object",
        "required": [
          "self",
          "execute"
        ],
        "title": "QueryHALLinks",
        "description": "HAL Links for a query entity."
      },
      "QueryListHALLinks": {
        "properties": {
          "self": {
            "$ref": "#/components/schemas/HALLink",
            "title": "Self link",
            "description": "Link to the current page of results."
          },
          "first": {
            "$ref": "#/components/schemas/HALLink",
            "title": "First page link",
            "description": "Link to the first page of results."
          },
          "prev": {
            "$ref": "#/components/schemas/HALLink",
            "title": "Previous page link",
            "description": "Link to the previous page of results."
          },
          "next": {
            "$ref": "#/components/schemas/HALLink",
            "title": "Next page link",
            "description": "Link to the next page of results."
          },
          "last": {
            "$ref": "#/components/schemas/HALLink",
            "title": "Last page link",
            "description": "Link to the last page of results."
          }
        },
        "additionalProperties": true,
        "type": "object",
        "required": [
          "self"
        ],
        "title": "QueryListHALLinks",
        "description": "HAL Links for a query entity."
      },
      "QueryListItem": {
        "properties": {
          "_links": {
            "$ref": "#/components/schemas/QueryHALLinks"
          },
          "attrs": {
            "additionalProperties": true,
            "type": "object",
            "title": "Query attributes",
            "description": "System provided metadata for the query definition."
          },
          "name": {
            "type": "string",
            "title": "Query name",
            "description": "Name of the stored query definition."
          },
          "meta": {
            "additionalProperties": true,
            "type": "object",
            "title": "Query metadata",
            "description": "User metadata for the query definition."
          }
        },
        "additionalProperties": true,
        "type": "object",
        "required": [
          "_links",
          "attrs",
          "name"
        ],
        "title": "QueryListItem",
        "description": "Listing of a query definition item."
      },
      "QueryResponse": {
        "properties": {
          "_links": {
            "$ref": "#/components/schemas/QueryHALLinks"
          },
          "attrs": {
            "additionalProperties": true,
            "type": "object",
            "title": "Query attributes",
            "description": "System provided metadata for the query definition."
          },
          "name": {
            "type": "string",
            "title": "Query name",
            "description": "Name of the stored query definition."
          },
          "meta": {
            "additionalProperties": true,
            "type": "object",
            "title": "Query metadata",
            "description": "User metadata for the query definition."
          },
          "query": {
            "$ref": "#/components/schemas/Query-Output"
          },
          "messages": {
            "items": {
              "$ref": "#/components/schemas/Message"
            },
            "type": "array",
            "title": "Messages"
          }
        },
        "additionalProperties": true,
        "type": "object",
        "required": [
          "_links",
          "attrs",
          "name",
          "query"
        ],
        "title": "QueryResponse",
        "description": "Represents a single named query."
      },
      "QueryResult": {
        "properties": {
          "data": {
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/RowDataSet"
                },
                {
                  "$ref": "#/components/schemas/SeriesDataSet"
                },
                {
                  "$ref": "#/components/schemas/ColumnDataSet"
                },
                {
                  "$ref": "#/components/schemas/ObjectDataSet"
                }
              ],
              "title": "Response Data Set",
              "description": "Result timeseries data set, with one time dimension."
            },
            "type": "array",
            "title": "Response Data Sets",
            "description": "A list of data sets, each with their own time axis. There will be one dataset for each `role` specified in the query (by default a single `input` role).\n\nThe data is represented according to the `render`  options in the query (default `COMPACT_WS`)."
          },
          "query": {
            "$ref": "#/components/schemas/Query-Output",
            "description": "The query that lead to this result."
          },
          "messages": {
            "items": {
              "$ref": "#/components/schemas/QueryExecutionMessage"
            },
            "type": "array",
            "title": "Messages and Warnings"
          }
        },
        "additionalProperties": true,
        "type": "object",
        "required": [
          "data",
          "query",
          "messages"
        ],
        "title": "Result of a timeseries query.",
        "description": "A json data response.\n\nUses the format as specified by the\n`render` options of the request (defaults to `COMPACT_WS`).\n'"
      },
      "QueryUpdateInput": {
        "properties": {
          "meta": {
            "additionalProperties": true,
            "type": "object",
            "title": "Query metadata",
            "description": "User metadata for the query definition."
          },
          "query": {
            "$ref": "#/components/schemas/Query-Input",
            "title": "Query definition"
          }
        },
        "additionalProperties": true,
        "type": "object",
        "title": "QueryUpdateInput",
        "description": "Input data to update a query definition."
      },
      "Render": {
        "properties": {
          "mode": {
            "$ref": "#/components/schemas/_RenderMode",
            "oneOf": [
              {
                "type": "string",
                "const": "HEADER_ROW",
                "description": "Render rows of timestamp and values. Show column headers. Includes an iso timestamp.\n\n###### options\n- `iso_timestamp`: `True`\n- `header_array`: `row`\n- `roll_up`: `False`\n- `data_axis`: `column`"
              },
              {
                "type": "string",
                "const": "COMPACT",
                "description": "Render rows of timestamp and values. Show column headers.\n\n###### options\n- `iso_timestamp`: `False`\n- `header_array`: `row`\n- `roll_up`: `False`\n- `data_axis`: `column`"
              },
              {
                "type": "string",
                "const": "COMPACT_WS",
                "description": "Render rows of timestamp and values. Show column headers. Show the time window attributes.\n\n###### options\n- `iso_timestamp`: `False`\n- `header_array`: `row`\n- `roll_up`: `False`\n- `data_axis`: `column`\n- `include_window_spec`: `True`"
              },
              {
                "type": "string",
                "const": "SERIES",
                "description": "Render timestamps and each series (column) as a values array. Show column headers.\n\n###### options\n- `iso_timestamp`: `False`\n- `header_array`: `row`\n- `data_axis`: `row`\n- `roll_up`: `True`\n- `include_window_spec`: `True`"
              },
              {
                "type": "string",
                "const": "HEADER_COLUMN",
                "description": "Renders row index in `rows`, and each series as a values array.\n\nThe series are prefixed by their series attributes.The `rows` index is prefixed by the labels for these attributes.\n\n###### options\n- `iso_timestamp`: `True`\n- `header_array`: `column`\n- `roll_up`: `False`\n- `data_axis`: `row`"
              },
              {
                "type": "string",
                "const": "FLAT_DICT",
                "description": "Render an object for each observation. Uses flattened keys.\n\n###### options\n- `iso_timestamp`: `True`\n- `hierarchical`: `False`\n- `show_levels`: `True`\n- `roll_up`: `False`"
              },
              {
                "type": "string",
                "const": "HIER_DICT",
                "description": "Render an hierarchical object for each observation. Shows an iso timestamp.\n\n###### options\n- `iso_timestamp`: `True`\n- `hierarchical`: `True`\n- `show_levels`: `True`\n- `roll_up`: `True`"
              },
              {
                "type": "string",
                "const": "METRIC_FLAT_DICT",
                "description": "Render an object with metric keys for each observation. Shows an iso timestamp.\n\n###### options\n- `iso_timestamp`: `True`\n- `hierarchical`: `['metric']`\n- `show_levels`: `False`\n- `roll_up`: `True`\n- `key_skip_empty`: `True`"
              },
              {
                "type": "string",
                "const": "UPLOAD",
                "description": "Render in an object format compatible with the `/data/v1/events` upload.\n\n###### options\n- `iso_timestamp`: `False`\n- `hierarchical`: `False`\n- `show_levels`: `False`\n- `roll_up`: `True`"
              },
              {
                "type": "string",
                "const": "CSV",
                "description": "Render in csv format with row headers.\n\n###### options\n- `iso_timestamp`: `False`"
              }
            ],
            "title": "Named configuration of render options.",
            "description": "A render mode combines a number of render option under a single name. Each option can still be overriden by an explicit value.",
            "default": "COMPACT_WS"
          },
          "roll_up": {
            "type": "boolean",
            "title": "Roll Up",
            "description": "move up attributes on rows (or columns) that are the same for             all rows (or columns) to a table attribute.             Levels enumerated in 'hierarchical' are excluded."
          },
          "hierarchical": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            ],
            "title": "Hierarchical",
            "description": "if true, use hierarchical objects to represent multiple row (or column) dimensions, otherwise multi-keys get concatenated with a dot-delimiter. If the value is a list, only these levels are kept as separate levels, while remaining levels get concatenated keys"
          },
          "value_key": {
            "type": "string",
            "title": "Value Key",
            "description": "if set, use this key in the value object to report data values"
          },
          "show_levels": {
            "type": "boolean",
            "title": "Show Levels",
            "description": "if set, report the levels used in the data values (either hierarchical or flat)"
          },
          "iso_timestamp": {
            "type": "boolean",
            "title": "Iso Timestamp",
            "description": "if set, render timestamps in a row or column index with both epoch and iso representations"
          },
          "row_key": {
            "type": "string",
            "title": "Row Key",
            "description": "if set, use this key as name of the row-dimension for single-dimensional rows"
          },
          "column_key": {
            "type": "string",
            "title": "Column Key",
            "description": "if set, use this key as name of the column-dimension for single-dimensional columns"
          },
          "header_array": {
            "$ref": "#/components/schemas/HeaderArrayOption",
            "description": "if set, report data as an header and an array.  "
          },
          "data_axis": {
            "$ref": "#/components/schemas/DataAxisOption",
            "description": "orientation of the tabular data as a array of arrays"
          },
          "key_seperator": {
            "type": "string",
            "title": "Key Seperator",
            "description": "character used to concatenate multi-key columns or rows when required"
          },
          "key_skip_empty": {
            "type": "boolean",
            "title": "Key Skip Empty",
            "description": "skip empty values in concatenating multi-key column or row headers"
          },
          "include_window_spec": {
            "type": "boolean",
            "title": "Include Window Spec",
            "description": "if set, include window specification in render modes that support it"
          }
        },
        "additionalProperties": true,
        "type": "object",
        "title": "Render",
        "description": "Configures the representation of data sets returned by the query API."
      },
      "Role": {
        "type": "string",
        "title": "Data set role",
        "description": "The role of series specification that was used to compile this data set.",
        "examples": [
          "input",
          "exogenous",
          "predictions"
        ]
      },
      "RowDataSet": {
        "properties": {
          "attributes": {
            "$ref": "#/components/schemas/DataSetAttributes"
          },
          "window_spec": {
            "$ref": "#/components/schemas/DataSetWindow"
          },
          "data_axis": {
            "type": "string",
            "const": "column",
            "title": "Data Axis",
            "default": "column"
          },
          "columns": {
            "prefixItems": [
              {
                "const": "timestamp",
                "title": "Unix epoch milliseconds timestamp."
              }
            ],
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/RowIndexColumnHeader"
                },
                {
                  "$ref": "#/components/schemas/ColumnHeader"
                }
              ]
            },
            "type": "array",
            "title": "Column Headers",
            "description": "Header Attributes for the column data.\n\nThe initial string-valued headers (normally a single `timestamp`) indicate that column to contain row index data (i.e. timestamps).\n\nThe remaining object-valued column headers identify and describe the actual series data."
          },
          "column_names": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Column names",
            "description": "Short names for the columns in the data set.\nThese names are the `name` alias if given in the series specification, otherwise is composed of the `resource`, `metric` and `aggregation` attributes, concatenated with the `render.key_separator` (default `.`) as separator."
          },
          "data": {
            "items": {
              "prefixItems": [
                {
                  "$ref": "#/components/schemas/Timestamp"
                }
              ],
              "items": {
                "$ref": "#/components/schemas/Datum"
              },
              "type": "array",
              "title": "Observation",
              "description": "Row index data (timestamp), and a value for each of the series."
            },
            "type": "array",
            "title": "Data"
          }
        },
        "additionalProperties": true,
        "type": "object",
        "required": [
          "columns",
          "column_names",
          "data"
        ],
        "title": "RowDataSet",
        "description": "Row-oriented dataset.\n\nTimeseries data layout with a column header and a data row per timestamp.\nResult for render options `data_axis=column` and `header_array=row`.\","
      },
      "RowHeader": {
        "properties": {
          "timestamp": {
            "$ref": "#/components/schemas/Timestamp"
          },
          "timestamp_iso": {
            "$ref": "#/components/schemas/TimestampIso"
          }
        },
        "additionalProperties": true,
        "type": "object",
        "required": [
          "timestamp"
        ],
        "title": "RowHeader",
        "description": "Index entry attributes.\n\nAttributes for a timestamp index entry."
      },
      "RowIndexColumnHeader": {
        "type": "string",
        "title": "Row Index Column Header",
        "description": "Header for a column containing a (representation of) the row index value.\nThese headers precede the header attributes for row data.",
        "examples": [
          "timestamp",
          "timestamp_iso"
        ]
      },
      "SeriesDataSet": {
        "properties": {
          "attributes": {
            "$ref": "#/components/schemas/DataSetAttributes"
          },
          "window_spec": {
            "$ref": "#/components/schemas/DataSetWindow"
          },
          "data_axis": {
            "type": "string",
            "const": "row",
            "title": "Data Axis",
            "default": "row"
          },
          "columns": {
            "prefixItems": [
              {
                "const": "timestamp",
                "title": "Unix epoch milliseconds timestamp."
              }
            ],
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/RowIndexColumnHeader"
                },
                {
                  "$ref": "#/components/schemas/ColumnHeader"
                }
              ]
            },
            "type": "array",
            "title": "Column Headers",
            "description": "Header Attributes for the column data.\n\nThe initial string-valued headers (normally a single `timestamp`) indicate that column to contain row index data (i.e. timestamps).\n\nThe remaining object-valued column headers identify and describe the actual series data."
          },
          "column_names": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Column names",
            "description": "Short names for the columns in the data set.\nThese names are the `name` alias if given in the series specification, otherwise is composed of the `resource`, `metric` and `aggregation` attributes, concatenated with the `render.key_separator` (default `.`) as separator."
          },
          "data": {
            "prefixItems": [
              {
                "items": {
                  "$ref": "#/components/schemas/Timestamp"
                },
                "type": "array",
                "title": "Timestamp Index",
                "description": "The timestamp index for this result data."
              }
            ],
            "items": {
              "items": {
                "$ref": "#/components/schemas/Datum"
              },
              "type": "array",
              "title": "Series",
              "description": "All metric observation values for a single series."
            },
            "type": "array",
            "title": "Data"
          }
        },
        "additionalProperties": true,
        "type": "object",
        "required": [
          "columns",
          "column_names",
          "data"
        ],
        "title": "SeriesDataSet",
        "description": "Column-oriented dataset.\n\nTimeseries data layout with a column header\nand a seperate data array for the time index and each series.\nResult for render options `data_axis=row` and `header_array=row`."
      },
      "SeriesSpec": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Optional alias name for the series. This name is used when exporting the dataset to CSV format.",
            "examples": [
              "demoQuery"
            ]
          },
          "resource": {
            "type": "string",
            "title": "Resource",
            "description": "Resource id for the series, required unless it is specified as a query default.",
            "examples": [
              "13efb488-75ac-4dac-828a-d49c5c2ebbfc"
            ]
          },
          "metric": {
            "type": "string",
            "title": "Metric",
            "description": "Metric name for the series, required unless it is specified as a query default.",
            "examples": [
              "temperature",
              "uptime"
            ]
          },
          "aggregration": {
            "oneOf": [
              {
                "const": "first",
                "title": "First",
                "description": "Use the first value (in time) to represent all data for the sample interval."
              },
              {
                "const": "last",
                "title": "Last",
                "description": "Use the last value (in time) to represent all data for the sample interval."
              },
              {
                "const": "mean",
                "title": "Mean",
                "description": "Aggregate data by the mean value: The sum of values divided by number of observations."
              },
              {
                "const": "median",
                "title": "Median",
                "description": "Aggregate data by the median value: The n/2-th value when ordered, the average of the (n-1)/2-th and (n+1)/2-th value when n is uneven."
              },
              {
                "const": "sum",
                "title": "Sum",
                "description": "The sum of all values summarizes the data for the sample interval."
              },
              {
                "const": "count",
                "title": "Count",
                "description": "Use the count of observations in the sample interval."
              },
              {
                "const": "count-numeric",
                "title": "Count Numeric",
                "description": "Use the count of numeric observations in the sample interval."
              },
              {
                "const": "count-non-numeric",
                "title": "Count Non-numeric",
                "description": "Use the count of non-numeric observations in the sample interval."
              },
              {
                "const": "std",
                "title": "Standard Deviation",
                "description": "Use the standard deviation of all observations in the sample interval."
              },
              {
                "const": "max",
                "title": "Maximum",
                "description": "Use the maximum of all values in the sample interval."
              },
              {
                "const": "min",
                "title": "Minimum",
                "description": "Use the minimum of all values in the sample interval."
              },
              {
                "pattern": "^percentile\\((1(\\.0*)?)|(0\\.[0-9]*)\\)$",
                "title": "Precentile",
                "description": "Aggregate data by the p-th percentile, where p is a number between 0 and 1.",
                "example": "percentile(0.02)"
              }
            ],
            "type": "string",
            "title": "Aggregration",
            "description": "Aggregation method for the series (if aggregated). If missing, the query default is used."
          },
          "interpolation": {
            "anyOf": [
              {
                "properties": {
                  "method": {
                    "oneOf": [
                      {
                        "const": "pad",
                        "title": "pad",
                        "description": "Interpolate with the value of the first observed point. This method also extrapolates."
                      },
                      {
                        "const": "fixed",
                        "title": "fixed",
                        "description": "Interpolate with a fixed, user-specified value. This method also extrapolates."
                      },
                      {
                        "const": "backfill",
                        "title": "backfill",
                        "description": "Same as pad, but using the last observed value. This method also extrapolates"
                      },
                      {
                        "const": "linear",
                        "title": "linear",
                        "description": "Linearly go from the first observed value of the gap to the last observed oneThis method also extrapolates"
                      },
                      {
                        "const": "nearest",
                        "title": "nearest",
                        "description": "Use the value that is closest in time."
                      },
                      {
                        "const": "zero",
                        "title": "zero",
                        "description": "Interpolate with a spline function of order 0, which is a piecewise polynomial."
                      },
                      {
                        "const": "slinear",
                        "title": "slinear",
                        "description": "Interpolate with a spline function of order 1, which is a piecewise polynomial."
                      },
                      {
                        "const": "quadratic",
                        "title": "quadratic",
                        "description": "Interpolate with a spline function of order 2, which is a piecewise polynomial."
                      },
                      {
                        "const": "cubic",
                        "title": "cubic",
                        "description": "Interpolate with a spline function of order 3, which is a piecewise polynomial."
                      },
                      {
                        "const": "polynomial",
                        "title": "polynomial",
                        "description": "Interpolate with a polynomial of the lowest possible degree passing trough the data points."
                      },
                      {
                        "const": "spline",
                        "title": "spline",
                        "description": "Interpolate with a spline function of a user-specified order."
                      },
                      {
                        "const": "from_derivatives",
                        "title": "from_derivatives",
                        "description": "Interpolate with the derivative of order 1."
                      },
                      {
                        "const": "pchip",
                        "title": "pchip",
                        "description": "Interpolate with a piecewise cubic spline function."
                      },
                      {
                        "const": "akima",
                        "title": "akima",
                        "description": "Interpolate with a non-smoothing spline of order 2, called Akima interpolation."
                      }
                    ],
                    "type": "string",
                    "title": "Interpolation method"
                  },
                  "value": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "integer"
                      }
                    ],
                    "title": "Interpolation parameter",
                    "description": "Optional parameter value for the interpolation method (see method description)."
                  },
                  "order": {
                    "type": "integer",
                    "title": "Interpolation order",
                    "description": "Optional order parameter for the interpolation method (see method description)."
                  }
                },
                "additionalProperties": true,
                "type": "object",
                "required": [
                  "method"
                ],
                "title": "InterpolationSpec",
                "description": "Defines whether, and how to treat missing values.\n\nThis can occur in two circumstances when aggregating (setting a sample frequency):\n* missing values: if there are missing (or invalid) values stored for\na given freq-interval,\n\"interpolation\" specifies how to compute these.\n* down-sampling: when the specified freq is smaller than the series\u2019\nactual frequency.\n\"interpolation\" specifies how to compute intermediate values."
              },
              {
                "oneOf": [
                  {
                    "const": "pad",
                    "title": "pad",
                    "description": "Interpolate with the value of the first observed point. This method also extrapolates."
                  },
                  {
                    "const": "fixed",
                    "title": "fixed",
                    "description": "Interpolate with a fixed, user-specified value. This method also extrapolates."
                  },
                  {
                    "const": "backfill",
                    "title": "backfill",
                    "description": "Same as pad, but using the last observed value. This method also extrapolates"
                  },
                  {
                    "const": "linear",
                    "title": "linear",
                    "description": "Linearly go from the first observed value of the gap to the last observed oneThis method also extrapolates"
                  },
                  {
                    "const": "nearest",
                    "title": "nearest",
                    "description": "Use the value that is closest in time."
                  },
                  {
                    "const": "zero",
                    "title": "zero",
                    "description": "Interpolate with a spline function of order 0, which is a piecewise polynomial."
                  },
                  {
                    "const": "slinear",
                    "title": "slinear",
                    "description": "Interpolate with a spline function of order 1, which is a piecewise polynomial."
                  },
                  {
                    "const": "quadratic",
                    "title": "quadratic",
                    "description": "Interpolate with a spline function of order 2, which is a piecewise polynomial."
                  },
                  {
                    "const": "cubic",
                    "title": "cubic",
                    "description": "Interpolate with a spline function of order 3, which is a piecewise polynomial."
                  },
                  {
                    "const": "polynomial",
                    "title": "polynomial",
                    "description": "Interpolate with a polynomial of the lowest possible degree passing trough the data points."
                  },
                  {
                    "const": "spline",
                    "title": "spline",
                    "description": "Interpolate with a spline function of a user-specified order."
                  },
                  {
                    "const": "from_derivatives",
                    "title": "from_derivatives",
                    "description": "Interpolate with the derivative of order 1."
                  },
                  {
                    "const": "pchip",
                    "title": "pchip",
                    "description": "Interpolate with a piecewise cubic spline function."
                  },
                  {
                    "const": "akima",
                    "title": "akima",
                    "description": "Interpolate with a non-smoothing spline of order 2, called Akima interpolation."
                  }
                ]
              }
            ],
            "title": "Interpolation Specification."
          }
        },
        "additionalProperties": true,
        "type": "object",
        "title": "SeriesSpec",
        "description": "Query specification for a single series."
      },
      "Timestamp": {
        "type": "integer",
        "title": "Timestamp",
        "description": "Unix epoch milliseconds timestamp."
      },
      "TimestampIso": {
        "type": "string",
        "format": "date-time",
        "title": "ISO8601 timestamp",
        "description": "ISO8601 rendering of the timestamp, present when `render.iso_timestamp=true`"
      },
      "ValidationError": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "_RenderMode": {
        "type": "string",
        "enum": [
          "HEADER_ROW",
          "COMPACT",
          "SERIES",
          "HEADER_COLUMN",
          "FLAT_DICT",
          "HIER_DICT",
          "METRIC_FLAT_DICT",
          "UPLOAD",
          "COMPACT_WS",
          "CSV"
        ],
        "title": "_RenderMode",
        "description": "Render mode configuration keys."
      }
    },
    "securitySchemes": {
      "waylayApiKeySecret": {
        "type": "http",
        "description": "Waylay apiKey/apiSecret basic authentication. All endpoints support also Waylay JWT Bearer authentication.",
        "scheme": "basic"
      }
    }
  },
  "tags": [
    {
      "name": "Execute Queries",
      "description": "Execute a named or ad-hoc query."
    },
    {
      "name": "Named Queries",
      "description": "List, read, create, update and remove queries that are stored by name."
    },
    {
      "name": "Status",
      "description": "Inspect the technical status of the waylay-query service."
    }
  ],
  "servers": [
    {
      "url": "https://api.waylay.io",
      "description": "Waylay enterprise gateway"
    }
  ]
}