{
  "type": "object",
  "properties": {
    "datasets": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "title": {
      "type": "string"
    },
    "subtitle": {
      "type": "string"
    },
    "dataDisplayType": {
      "$ref": "#/definitions/DataDisplayType"
    },
    "aggregationPeriod": {
      "enum": [
        "DAYS",
        "HOURS",
        "MINUTES",
        "MONTHS",
        "WEEKS",
        "YEARS"
      ],
      "type": "string"
    },
    "displayLastValueDiff": {
      "type": "boolean"
    },
    "diffType": {
      "$ref": "#/definitions/DiffType"
    },
    "updateFrequency": {
      "type": "number"
    },
    "diffValueDecimalPlaces": {
      "type": "number"
    },
    "useDiffIndicatorColors": {
      "type": "boolean"
    },
    "highlightValue": {
      "type": "boolean"
    },
    "loadConf": {
      "type": "object",
      "properties": {
        "type": {
          "const": "Time",
          "type": "string"
        },
        "lead": {
          "type": "number"
        },
        "lag": {
          "type": "number"
        },
        "leadUnit": {
          "$ref": "#/definitions/DweenTimeUnit"
        },
        "lagUnit": {
          "$ref": "#/definitions/DweenTimeUnit"
        },
        "alignUnit": {
          "enum": [
            "DAYS",
            "HALFHOUR",
            "HOURS",
            "MILLIS",
            "MINUTES",
            "MONTHS",
            "SECONDS",
            "WEEKS",
            "YEARS"
          ],
          "type": "string"
        }
      },
      "required": [
        "alignUnit",
        "lag",
        "lagUnit",
        "leadUnit"
      ]
    },
    "displayInline": {
      "type": "boolean"
    },
    "width": {
      "type": "number"
    },
    "hideUnit": {
      "type": "boolean"
    },
    "decimalPlaces": {
      "type": "number"
    },
    "upToUnit": {
      "enum": [
        "DAYS",
        "HOURS",
        "MINUTES",
        "MONTHS",
        "WEEKS",
        "YEARS"
      ],
      "type": "string"
    },
    "useDataUpToLastFinishedMonth": {
      "type": "boolean"
    },
    "useDataUpToLastFinishedWeek": {
      "type": "boolean"
    },
    "convertToAbsoluteValues": {
      "type": "boolean"
    },
    "hideZeroValues": {
      "type": "boolean"
    },
    "hideIfValueIsZeroOrMore": {
      "type": "boolean"
    },
    "startOfTheProject": {
      "$ref": "#/definitions/JSJoda.Instant"
    },
    "useStartOfTheProject": {
      "type": "boolean"
    },
    "useHorizontalBarChart": {
      "type": "boolean"
    },
    "skipMonthCheck": {
      "type": "boolean"
    },
    "upToRefTime": {
      "type": "boolean"
    },
    "id": {
      "type": "string"
    },
    "reportOptions": {
      "$ref": "#/definitions/ReportOptions"
    },
    "reportMode": {
      "type": "boolean"
    },
    "stateCb": {
      "type": "object"
    },
    "calendarType": {
      "const": "CALENDAR_445",
      "type": "string"
    },
    "hideHeader": {
      "type": "boolean"
    },
    "from": {
      "type": "string"
    },
    "to": {
      "type": "string"
    },
    "referenceTime": {
      "type": "string"
    },
    "instantFrom": {
      "$ref": "#/definitions/JSJoda.Instant"
    },
    "instantTo": {
      "$ref": "#/definitions/JSJoda.Instant"
    },
    "instantReferenceTime": {
      "$ref": "#/definitions/JSJoda.Instant"
    },
    "theme": {
      "enum": [
        "dark",
        "light",
        "transparent"
      ],
      "type": "string"
    }
  },
  "required": [
    "dataDisplayType",
    "datasets",
    "diffType",
    "displayLastValueDiff",
    "loadConf",
    "subtitle",
    "title"
  ],
  "definitions": {
    "DataDisplayType": {
      "type": "string",
      "enum": [
        "Last Value",
        "Week-Year Comparison",
        "Month-Year Comparison",
        "Average Value",
        "Horizontal Bar Chart",
        "Sum of Values"
      ]
    },
    "DiffType": {
      "type": "string",
      "enum": [
        "absolute",
        "percentage"
      ]
    },
    "DweenTimeUnit": {
      "enum": [
        "DAYS",
        "HALFHOUR",
        "HOURS",
        "MILLIS",
        "MINUTES",
        "MONTHS",
        "SECONDS",
        "WEEKS",
        "YEARS"
      ],
      "type": "string"
    },
    "JSJoda.Instant": {
      "type": "object"
    },
    "ReportOptions": {
      "type": "object",
      "properties": {
        "fontSize": {
          "type": "string"
        }
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}