{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "anyOf": [
        {
            "$ref": "#/definitions/ChartVisualizationMetadata"
        },
        {
            "$ref": "#/definitions/AEAChartDialogMetadata"
        }
    ],
    "definitions": {
        "AEAChartDialogMetadata": {
            "properties": {
                "charts_groups": {
                    "$ref": "#/definitions/ChartVisualizationGroups",
                    "description": "Object with label as key and array of metadata's keys as values.\nCalculations that use those metadata will be grouped and displayed in the same dialog."
                },
                "dialog_sizes": {
                    "$ref": "#/definitions/ChartsDialogSizes",
                    "description": "Object with metadataKey as key and Size as value.\nSize use viewport percentage as unit for values."
                },
                "visualization_metadata": {
                    "$ref": "#/definitions/ChartVisualizationMetadata",
                    "description": "Object with metadataKey as key and DrillplanChartMetadata as value."
                }
            },
            "type": "object"
        },
        "AxisConfig": {
            "properties": {
                "direction": {
                    "$ref": "#/definitions/AxisDirection",
                    "description": "Defines a direction of the axis. Could be direct or reversed.\n\n- direct: from left to right and from top to bottom (depends on AxisPosition),\n- reversed _(not recommended)_: from right to left and from bottom to top (depends on AxisPosition)."
                },
                "labelFormat": {
                    "$ref": "#/definitions/AxisLabelFormat",
                    "description": "Define the format for axis label."
                },
                "max": {
                    "description": "Defines a maximum value for axis domain.\n\nWill be calculated automatically from dataset series if it is omitted.",
                    "type": "number"
                },
                "min": {
                    "description": "Defines a minimum value for axis domain.\n\nWill be calculated automatically from dataset series if it is omitted.",
                    "type": "number"
                },
                "position": {
                    "$ref": "#/definitions/AxisPosition",
                    "description": "The position of an axis."
                },
                "rangeScale": {
                    "$ref": "#/definitions/RangeAxis",
                    "description": "Config for the range scale of axis"
                },
                "scaleType": {
                    "$ref": "#/definitions/ScaleType",
                    "description": "Type of the axis scale."
                },
                "showEdgeTicksLabel": {
                    "description": "Define if edge ticks should be showed.",
                    "type": "boolean"
                },
                "showMainTicksLabel": {
                    "description": "Define if main ticks should be showed.",
                    "type": "boolean"
                },
                "showTicks": {
                    "description": "Define if 'ticks' (small lines near values) should be showed.",
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "AxisDirection": {
            "enum": [
                "direct",
                "reversed"
            ],
            "type": "string"
        },
        "AxisLabelFormat": {
            "enum": [
                "label",
                "label-with-unit",
                "unit"
            ],
            "type": "string"
        },
        "AxisPosition": {
            "enum": [
                "bottom",
                "left",
                "right",
                "top"
            ],
            "type": "string"
        },
        "Bar": {
            "properties": {
                "label": {
                    "description": "Displayed label for category.\nIf omitted than label will be getting from DataSeries.name.",
                    "type": "string"
                },
                "seriesGroup": {
                    "description": "Defines a _seriesGroup_ to get a data from a dataset for graphics to be rendered.",
                    "type": "string"
                }
            },
            "required": [
                "seriesGroup"
            ],
            "type": "object"
        },
        "BarChartMetadata": {
            "properties": {
                "barParameters": {
                    "$ref": "#/definitions/BarChartParameters",
                    "description": "Parameters for bars."
                },
                "bars": {
                    "description": "Bars that will be displayed.",
                    "items": {
                        "$ref": "#/definitions/Bar"
                    },
                    "type": "array"
                },
                "categoriesAxisLabel": {
                    "description": "Label for categories-axis.",
                    "type": "string"
                },
                "labelDivider": {
                    "description": "Divider for label. Set (,) as divider for number if property set to __true__. (Default: __false__).",
                    "type": "boolean"
                },
                "parameters": {
                    "description": "Array of metadata of parameters.",
                    "items": {
                        "$ref": "#/definitions/BaseParameterMetadata"
                    },
                    "type": "array"
                },
                "tickDivider": {
                    "description": "Divider for tick. Set (,) as divider for number if property set to __true__. (Default: __false__).",
                    "type": "boolean"
                },
                "type": {
                    "enum": [
                        "bar"
                    ],
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "BarChartParameters": {
            "properties": {
                "barsColors": {
                    "description": "Colors of bars.\nIf some Bar's seriesGroup correspond to a few DataSeries then colors will be applied by the index of Bar.\nBars will be sorting using parameters of DataSeries.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                }
            },
            "type": "object"
        },
        "BaseParameterMetadata": {
            "properties": {
                "key": {
                    "description": "Key of the parameter.",
                    "type": "string"
                },
                "linkedParametersKeys": {
                    "description": "Linked parameters' keys.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "selectionType": {
                    "$ref": "#/definitions/ParameterSelectionType",
                    "description": "Selection type of the parameter for initialization."
                }
            },
            "required": [
                "key"
            ],
            "type": "object"
        },
        "CasingTrackConfig": {
            "properties": {
                "casingParameterKey": {
                    "description": "Key of the casing-series parameter that indicate casing-shoe presenting.",
                    "type": "string"
                },
                "seriesGroups": {
                    "description": "SeriesGroup that will be associated with CasingTrack.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                }
            },
            "required": [
                "seriesGroups"
            ],
            "type": "object"
        },
        "ChartVisualizationGroups": {
            "additionalProperties": {
                "items": {
                    "type": "string"
                },
                "type": "array"
            },
            "type": "object"
        },
        "ChartVisualizationMetadata": {
            "additionalProperties": {
                "anyOf": [
                    {
                        "$ref": "#/definitions/LogChartMetadata"
                    },
                    {
                        "$ref": "#/definitions/Plot2DChartMetadata"
                    },
                    {
                        "$ref": "#/definitions/BarChartMetadata"
                    },
                    {
                        "$ref": "#/definitions/StackBarChartMetadata"
                    },
                    {
                        "$ref": "#/definitions/PorePressureChartMetadata"
                    }
                ]
            },
            "type": "object"
        },
        "ChartsDialogSizes": {
            "additionalProperties": {
                "$ref": "#/definitions/Size"
            },
            "type": "object"
        },
        "Curve": {
            "description": "Provides a config for a curve, one of the track graphic types.",
            "properties": {
                "direction": {
                    "$ref": "#/definitions/AxisDirection",
                    "description": "Defines direction of axis that own this Curve. Could be 'direct' or 'reversed'.\n\n(default: __'direct'__)"
                },
                "hideFromLegend": {
                    "description": "Indicate if element legend should be disabled",
                    "type": "boolean"
                },
                "max": {
                    "description": "Defines a maximum value from a dataset for curve to end rendering at.\n\nWill be calculated automatically from dataset if it is omitted.",
                    "type": "number"
                },
                "min": {
                    "description": "Defines a minimum value from a dataset for curve to start rendering from.\n\nWill be calculated automatically from dataset if it is omitted.",
                    "type": "number"
                },
                "seriesGroup": {
                    "description": "Defines a _seriesGroup_ to get a data from a dataset for graphics to be rendered.",
                    "type": "string"
                },
                "style": {
                    "$ref": "#/definitions/CurveStyle",
                    "description": "Provides a configuration for curve renderer.\n\nA variable number of data-series could be united with one _seriesGroup_ identifier.\nDefault style values will be used for omitted properties of curves from the range of predefined styles.\nIf it is omitted, the default style config will be used."
                }
            },
            "required": [
                "seriesGroup"
            ],
            "type": "object"
        },
        "CurvePointStyle": {
            "enum": [
                "circle",
                "cross",
                "diamond",
                "empty-circle",
                "empty-diamond",
                "empty-square",
                "empty-triangle",
                "square",
                "triangle"
            ],
            "type": "string"
        },
        "CurveStyle": {
            "description": "Provides a config to style a curve.",
            "properties": {
                "connectionStyle": {
                    "$ref": "#/definitions/LineElementInterpolation",
                    "description": "Defines a style of a connection curve between two neighbour value points.\n\n(default: __'linear'__)"
                },
                "linePalette": {
                    "$ref": "#/definitions/Palette",
                    "description": "If pallete is set, then curve will be divided into ranges filled out by specified colors.\n\n_lineStyle_ property is ignored if palette is set."
                },
                "lineStyle": {
                    "$ref": "#/definitions/LineStyle",
                    "description": "Line style for a curve.\n\nIf it is omitted, its value will be picked from preset line style."
                },
                "pointStyle": {
                    "$ref": "#/definitions/CurvePointStyle",
                    "description": "Defines a style to render a track point for a value."
                }
            },
            "type": "object"
        },
        "Fill": {
            "description": "Defines a configuration for a fill part of track graphics.",
            "properties": {
                "from": {
                    "description": "Defines a _seriesGroup_ of a curve to start fill from.\n\nTrack _'left'_ edge is used if it is omitted.",
                    "type": "string"
                },
                "key": {
                    "description": "Key that used in areas overlapping.\nOnly make sens if colors of Fills has opacity.",
                    "type": "string"
                },
                "label": {
                    "description": "Label of a fill displayed in the chart legend.",
                    "type": "string"
                },
                "style": {
                    "$ref": "#/definitions/FillStyle",
                    "description": "Style of a fill."
                },
                "to": {
                    "description": "Defines a _seriesGroup_ of a curve to end fill from.\n\nTrack _'right'_ edge is used if it is omitted.",
                    "type": "string"
                }
            },
            "required": [
                "label"
            ],
            "type": "object"
        },
        "FillPattern": {
            "enum": [
                "dashed",
                "solid"
            ],
            "type": "string"
        },
        "FillStyle": {
            "description": "Provides a configuration for fill style.",
            "properties": {
                "color": {
                    "description": "Color code to use for a fillout of area. Will be picked up automatically from a set of default colors if it is omitted.",
                    "type": "string"
                },
                "opacity": {
                    "description": "Opacity of a fill color.\n\nIts value should be between 0 and 100, where 0 - fill color is invisible.",
                    "type": "number"
                },
                "palette": {
                    "$ref": "#/definitions/Palette",
                    "description": "If pallete is set then Fill area will be divided into ranges filled out by specified colors.\nOther style properties are ignored if palette is set"
                },
                "pattern": {
                    "$ref": "#/definitions/FillPattern",
                    "description": "Pattern to use for a fill.\n\n(default: __'solid'__)"
                }
            },
            "type": "object"
        },
        "FillsOverlap": {
            "description": "Provides a configuration for showing legend for Fills that could be\noverlapped by each others.",
            "properties": {
                "fillsKeys": {
                    "description": "Set of Fill's keys that describe legend for overlapping Fills.\nOrder of keys in array define the order of combining colors for legend.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "label": {
                    "description": "Label of a Fills overlap displayed in the chart legend.",
                    "type": "string"
                }
            },
            "required": [
                "fillsKeys",
                "label"
            ],
            "type": "object"
        },
        "FormationTrackConfig": {
            "properties": {
                "seriesGroups": {
                    "description": "SeriesGroup that will be associated with FormationTrack.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                }
            },
            "required": [
                "seriesGroups"
            ],
            "type": "object"
        },
        "GridSize": {
            "description": "Defines the size of the grid to be rendered on tracks. Size value is based on the index axis.",
            "properties": {
                "majorSize": {
                    "description": "Size of a major grid cell.",
                    "type": "number"
                },
                "minorSize": {
                    "description": "Size of a minor grid cell.",
                    "type": "number"
                }
            },
            "type": "object"
        },
        "GroupedParameterMetadata": {
            "properties": {
                "key": {
                    "description": "Key of the parameter.",
                    "type": "string"
                },
                "level": {
                    "description": "Level of the group that the parameter should present.",
                    "type": "number"
                },
                "linkedParametersKeys": {
                    "description": "Linked parameters' keys.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "selectionType": {
                    "$ref": "#/definitions/ParameterSelectionType",
                    "description": "Selection type of the parameter for initialization."
                }
            },
            "required": [
                "key"
            ],
            "type": "object"
        },
        "HeatMap": {
            "description": "Provides a configuration for a heatmap part of track graphics.\nDataset should contain a set of data-series to be rendered within one\nheatmap.",
            "properties": {
                "max": {
                    "description": "Defines a maximum value of X-axis range.",
                    "type": "number"
                },
                "measurement": {
                    "description": "Measurement type of the X-axis.",
                    "type": "string"
                },
                "min": {
                    "description": "Defines a minimum value of X-axis range.",
                    "type": "number"
                },
                "orderBy": {
                    "description": "A key of a sensitivity parameter to set an order of data rendering.\nValue of the parameter will be the X-coordinate of _HeatPoint_.\nAnd measurement define the unit of X-axis.\nIf ommited data will be picked in the order of appearance in a dataset.",
                    "type": "string"
                },
                "palette": {
                    "$ref": "#/definitions/Palette",
                    "description": "Defines a palette to render heatmap starting from a cold to a hot one for a defined _seriesGroup_.\n\nDefault set of colors is used if it is omitted."
                },
                "seriesGroup": {
                    "description": "Defines a _seriesGroup_ to get a data from a dataset for graphics to be rendered.",
                    "type": "string"
                },
                "unit": {
                    "description": "Unit type of the X-axis.",
                    "type": "string"
                }
            },
            "required": [
                "seriesGroup"
            ],
            "type": "object"
        },
        "LegendParameterMetadata": {
            "properties": {
                "colors": {
                    "description": "Colors of the Stacked Bars that the parameter should present.\nBefore applying the colors parameters will be sorted in ascending order of the parameters values.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "key": {
                    "description": "Key of the parameter.",
                    "type": "string"
                },
                "linkedParametersKeys": {
                    "description": "Linked parameters' keys.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "selectionType": {
                    "$ref": "#/definitions/ParameterSelectionType",
                    "description": "Selection type of the parameter for initialization."
                }
            },
            "required": [
                "key"
            ],
            "type": "object"
        },
        "LineElementInterpolation": {
            "enum": [
                "blocked-centered",
                "blocked-larger",
                "blocked-smaller",
                "linear",
                "monotone-x",
                "monotone-y",
                "none"
            ],
            "type": "string"
        },
        "LinePattern": {
            "enum": [
                "dash-dash-dot",
                "dash-dot",
                "dash-dot-dot",
                "dashed",
                "dotted",
                "long-dash",
                "small-dash",
                "solid"
            ],
            "type": "string"
        },
        "LineStyle": {
            "properties": {
                "color": {
                    "description": "Color code for a line.",
                    "type": "string"
                },
                "opacity": {
                    "description": "Opacity of the line color.",
                    "type": "number"
                },
                "pattern": {
                    "$ref": "#/definitions/LinePattern",
                    "description": "Line drawing pattern.\n\n(default: __'solid'__)"
                }
            },
            "type": "object"
        },
        "LogChartMetadata": {
            "properties": {
                "grid": {
                    "$ref": "#/definitions/GridSize",
                    "description": "Configuration of the grid to be displayed across the tracks. No grid is displayed if it is omitted."
                },
                "hoverLine": {
                    "description": "Defines whether to show a dashed line on chart when a user hovers over it with the mouse cursor.\nWill be disabled if indexTrack.isInteractive === true\n\n(default: __false__)",
                    "type": "boolean"
                },
                "indexDirection": {
                    "$ref": "#/definitions/AxisDirection",
                    "description": "Defines a direction of the index axis. Could be direct or reversed.\n\n- direct: from top to bottom,\n- reversed: from bottom to top.\n\n(default: __'direct'__)"
                },
                "indexTrack": {
                    "description": "Index track configuration. If non-empty - separate track for index axis will be used.",
                    "properties": {
                        "isInteractive": {
                            "description": "Enables slider functionality if true.\n\n(default: __false__)",
                            "type": "boolean"
                        },
                        "parameterKey": {
                            "description": "_key_ of sensitivity parameter that correspond to selected MD\n(if isInteractive === true).",
                            "type": "string"
                        },
                        "secondaryIndex": {
                            "description": "_seriesGroup_ to use as a secondary index. Usually it's a TVD data series.",
                            "type": "string"
                        }
                    },
                    "type": "object"
                },
                "parameters": {
                    "description": "Array of metadata of parameters.",
                    "items": {
                        "$ref": "#/definitions/BaseParameterMetadata"
                    },
                    "type": "array"
                },
                "secondaryAxesEdgeValues": {
                    "description": "Defines if the edge values for secondary axes will be displayed.\nWorks only if log chart contains one track and doen't have depth-track.\n\n(default: __false__)",
                    "type": "boolean"
                },
                "tracks": {
                    "description": "Set of tracks to be rendered. At least one track should be defined.",
                    "items": {
                        "$ref": "#/definitions/Track"
                    },
                    "type": "array"
                },
                "type": {
                    "enum": [
                        "log"
                    ],
                    "type": "string"
                },
                "zoom": {
                    "$ref": "#/definitions/Zoom",
                    "description": "Config for zoom functionality.\nBy default zoom is turned on.\nFor multy-track Chart zoom has next restrictions:\n \t- it is synchronized and always has zoomType setted to 'y-only'.\n \t- will be disabled if indexTrack.isInteractive === false.\n\n(default: __{\n     disable: false;\n     type: ZoomType.DEFAULT;\n     suppressResetButton: false;\n}__)"
                }
            },
            "required": [
                "tracks",
                "type"
            ],
            "type": "object"
        },
        "Margins": {
            "properties": {
                "bottom": {
                    "type": "number"
                },
                "left": {
                    "type": "number"
                },
                "right": {
                    "type": "number"
                },
                "top": {
                    "type": "number"
                }
            },
            "required": [
                "bottom",
                "left",
                "right",
                "top"
            ],
            "type": "object"
        },
        "OWFluidDensityConfig": {
            "properties": {
                "owFluidDensityGroups": {
                    "description": "Offset well fluid density groups.",
                    "items": {
                        "$ref": "#/definitions/OWFluidDensityGroup"
                    },
                    "type": "array"
                }
            },
            "required": [
                "owFluidDensityGroups"
            ],
            "type": "object"
        },
        "OWFluidDensityGroup": {
            "properties": {
                "name": {
                    "description": "Name for offset well fluid density group. Will be displayed in dropdown during selection of displayed group.",
                    "type": "string"
                },
                "seriesGroups": {
                    "description": "Series groups for selecting data for current group.",
                    "items": {
                        "$ref": "#/definitions/PairSeriesGroup"
                    },
                    "type": "array"
                }
            },
            "required": [
                "name"
            ],
            "type": "object"
        },
        "PairSeriesGroup": {
            "properties": {
                "mdSeriesGroup": {
                    "description": "Series group for data series with input values (MD/index values).",
                    "type": "string"
                },
                "seriesGroup": {
                    "description": "Series group for data series with calculated values (series values).",
                    "type": "string"
                }
            },
            "required": [
                "mdSeriesGroup",
                "seriesGroup"
            ],
            "type": "object"
        },
        "Palette": {
            "description": "Specifies a palette settings to apply labels/colors to ranges of values.",
            "properties": {
                "ranges": {
                    "description": "Defines set of ranges to link range of values to specified label and color.\n\nRanges should be declared in the order of 'from' value grow.",
                    "items": {
                        "$ref": "#/definitions/PaletteRangeItem"
                    },
                    "type": "array"
                },
                "useGradient": {
                    "description": "Uses smooth (gradient) transition between colors if colors are defined for a palette _ranges_.",
                    "type": "boolean"
                }
            },
            "required": [
                "ranges"
            ],
            "type": "object"
        },
        "PaletteRangeItem": {
            "description": "Specifies a range for palette values.",
            "properties": {
                "color": {
                    "description": "Color assigned to a palette range.\n\nIt is used in an axis and corresponding graphics (e.g., curves, fill, heatmap).",
                    "type": "string"
                },
                "from": {
                    "description": "Value to begin the range with. Range is identified as __ranges[x].from <= value < ranges[x + 1].from__.\n\nIf it is omitted, 'from' value will be detected automatically by dividing values range in equal parts.",
                    "type": "number"
                },
                "label": {
                    "description": "Text label assigned to a range displayed in an axis.",
                    "type": "string"
                },
                "opacity": {
                    "description": "Opacity of a palette color.\n\nIts value should be between 0 and 100, where 0 - palette color is invisible.",
                    "type": "number"
                }
            },
            "required": [
                "label"
            ],
            "type": "object"
        },
        "ParameterSelectionType": {
            "enum": [
                "multiple",
                "single"
            ],
            "type": "string"
        },
        "Plot2DChartMetadata": {
            "properties": {
                "grid": {
                    "$ref": "#/definitions/GridSize",
                    "description": "Configuration of the grid to be displayed across the tracks. No grid is displayed if it is omitted."
                },
                "hoverLine": {
                    "description": "Defines whether to show a dashed line on chart when a user hovers over it with the mouse cursor.\n\n(default: __false__)",
                    "type": "boolean"
                },
                "indexAxis": {
                    "$ref": "#/definitions/AxisConfig",
                    "description": "Configuration for index axis.\n\n(default: __{\n     position: 'bottom',\n     direction: 'direct',\n     labelFormat: 'label-with-unit',\n     showMainTicksLabel: true,\n     showEdgeTicksLabel: true,\n     showTicks: false\n}__)"
                },
                "parameters": {
                    "description": "Array of metadata of parameters.",
                    "items": {
                        "$ref": "#/definitions/BaseParameterMetadata"
                    },
                    "type": "array"
                },
                "plotMargins": {
                    "$ref": "#/definitions/Margins",
                    "description": "Margins between the plot body and axes of the chart.\n\n(default: __{\n     top: 0,\n     right: 0,\n     bottom: 0,\n     left: 0\n}__)"
                },
                "seriesAxes": {
                    "description": "Configuration for series axes. Series are all axes except of index.\n\n(default: __{\n     position: 'left',\n     direction: 'direct',\n     labelFormat: 'unit',\n     showMainTicksLabel: true,\n     showEdgeTicksLabel: false,\n     showTicks: true\n}__)",
                    "items": {
                        "$ref": "#/definitions/SeriesAxisConfig"
                    },
                    "type": "array"
                },
                "track": {
                    "$ref": "#/definitions/Track",
                    "description": "Track to be rendered."
                },
                "type": {
                    "enum": [
                        "plot2d"
                    ],
                    "type": "string"
                },
                "zoom": {
                    "$ref": "#/definitions/Zoom",
                    "description": "Config for zoom functionality.\nBy default zoom is turned on.\n\n(default: __{\n     disable: false;\n     type: ZoomType.DEFAULT;\n     suppressResetButton: false;\n}__)"
                }
            },
            "required": [
                "track",
                "type"
            ],
            "type": "object"
        },
        "PorePressureChartMetadata": {
            "properties": {
                "casingTrack": {
                    "$ref": "#/definitions/CasingTrackConfig",
                    "description": "Config for Casing track."
                },
                "formationTrack": {
                    "$ref": "#/definitions/FormationTrackConfig",
                    "description": "Config for Formation track."
                },
                "hoverLine": {
                    "description": "Defines whether to show a dashed line on chart with popover when a user hovers over it with the mouse cursor.\n\n(default: __true__)",
                    "type": "boolean"
                },
                "owFluidDensity": {
                    "$ref": "#/definitions/OWFluidDensityConfig",
                    "description": "Config for offset well fluid density data."
                },
                "parameters": {
                    "description": "Array of metadata of parameters.",
                    "items": {
                        "$ref": "#/definitions/BaseParameterMetadata"
                    },
                    "type": "array"
                },
                "pressuresCurves": {
                    "$ref": "#/definitions/PressuresCurvesConfig",
                    "description": "Config for pressures curves."
                },
                "pressuresWindows": {
                    "$ref": "#/definitions/PressureWindowsConfig",
                    "description": "Config for pressures windows areas."
                },
                "type": {
                    "enum": [
                        "pore-pressure"
                    ],
                    "type": "string"
                },
                "zoom": {
                    "$ref": "#/definitions/Zoom",
                    "description": "Config for zoom functionality.\nBy default zoom is turned on.\nFor PorePressure Chart zoom has next restrictions:\n \t- zoom button on chart will be always disabled.\n\n(default: __{\n     disable: false;\n     type: ZoomType.Y_ONLY;\n     suppressResetButton: false;\n}__)"
                }
            },
            "required": [
                "pressuresWindows",
                "type"
            ],
            "type": "object"
        },
        "PressureWindowsConfig": {
            "properties": {
                "ESDSeriesGroup": {
                    "description": "ESD seriesGroup.",
                    "type": "string"
                },
                "extrapolatedParameterKey": {
                    "description": "Parameter that define that calculation are extrapolated.",
                    "type": "string"
                },
                "fluidDensitySeriesGroup": {
                    "description": "Fluid density seriesGroup.",
                    "type": "string"
                },
                "fractureSeriesGroup": {
                    "description": "Fracture pressure seriesGroup.",
                    "type": "string"
                },
                "poreSeriesGroup": {
                    "description": "Pore pressure seriesGroup.",
                    "type": "string"
                }
            },
            "required": [
                "fractureSeriesGroup",
                "poreSeriesGroup"
            ],
            "type": "object"
        },
        "PressuresCurvesConfig": {
            "properties": {
                "curves": {
                    "description": "Pressures curves collection.",
                    "items": {
                        "$ref": "#/definitions/Curve"
                    },
                    "type": "array"
                },
                "fitMDParameterKey": {
                    "description": "Key of the parameter that will be used to define MD value of FIT point.",
                    "type": "string"
                },
                "fitSeriesGroups": {
                    "description": "SeriesGroup that will be associated with FIT points.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                }
            },
            "type": "object"
        },
        "RangeAxis": {
            "properties": {
                "ranges": {
                    "items": {
                        "$ref": "#/definitions/RangeItem"
                    },
                    "type": "array"
                },
                "rangesSeriesGroup": {
                    "description": "Set of DataSeries' seriesGroups that correspond to ranges that should be shown.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                }
            },
            "type": "object"
        },
        "RangeItem": {
            "properties": {
                "end": {
                    "description": "End value of the range.",
                    "type": "number"
                },
                "start": {
                    "description": "Start value of the range.",
                    "type": "number"
                },
                "text": {
                    "description": "Label for the range.",
                    "type": "string"
                }
            },
            "required": [
                "end",
                "start",
                "text"
            ],
            "type": "object"
        },
        "ScaleType": {
            "enum": [
                "linear",
                "logarithmic",
                "power"
            ],
            "type": "string"
        },
        "SeriesAxisConfig": {
            "properties": {
                "direction": {
                    "$ref": "#/definitions/AxisDirection",
                    "description": "Defines a direction of the axis. Could be direct or reversed.\n\n- direct: from left to right and from top to bottom (depends on AxisPosition),\n- reversed _(not recommended)_: from right to left and from bottom to top (depends on AxisPosition)."
                },
                "labelFormat": {
                    "$ref": "#/definitions/AxisLabelFormat",
                    "description": "Define the format for axis label."
                },
                "max": {
                    "description": "Defines a maximum value for axis domain.\n\nWill be calculated automatically from dataset series if it is omitted.",
                    "type": "number"
                },
                "min": {
                    "description": "Defines a minimum value for axis domain.\n\nWill be calculated automatically from dataset series if it is omitted.",
                    "type": "number"
                },
                "name": {
                    "description": "Name of axis.",
                    "type": "string"
                },
                "position": {
                    "$ref": "#/definitions/AxisPosition",
                    "description": "The position of an axis."
                },
                "rangeScale": {
                    "$ref": "#/definitions/RangeAxis",
                    "description": "Config for the range scale of axis"
                },
                "scaleType": {
                    "$ref": "#/definitions/ScaleType",
                    "description": "Type of the axis scale."
                },
                "seriesGroup": {
                    "description": "SeriesGroup of DataSeries that should be drawed on this Axis.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "showEdgeTicksLabel": {
                    "description": "Define if edge ticks should be showed.",
                    "type": "boolean"
                },
                "showMainTicksLabel": {
                    "description": "Define if main ticks should be showed.",
                    "type": "boolean"
                },
                "showTicks": {
                    "description": "Define if 'ticks' (small lines near values) should be showed.",
                    "type": "boolean"
                }
            },
            "required": [
                "seriesGroup"
            ],
            "type": "object"
        },
        "Size": {
            "properties": {
                "height": {
                    "type": "number"
                },
                "width": {
                    "type": "number"
                }
            },
            "required": [
                "height",
                "width"
            ],
            "type": "object"
        },
        "StackBar": {
            "properties": {
                "label": {
                    "description": "Displayed label for category.\nIf omitted than label will be getting from corresponding DataSeries.name.",
                    "type": "string"
                },
                "scaleGroupKey": {
                    "description": "Scale group for StackBars. If ommited than default scale will be used.",
                    "type": "string"
                },
                "seriesGroup": {
                    "description": "Defines a _seriesGroup_ to get a data from a dataset for graphics to be rendered.",
                    "type": "string"
                }
            },
            "required": [
                "seriesGroup"
            ],
            "type": "object"
        },
        "StackBarChartMetadata": {
            "properties": {
                "groupedParameters": {
                    "description": "Parameters that will be used in grouping.",
                    "items": {
                        "$ref": "#/definitions/GroupedParameterMetadata"
                    },
                    "type": "array"
                },
                "legendParameter": {
                    "$ref": "#/definitions/LegendParameterMetadata",
                    "description": "Parameter that will be used to form stacked Bars."
                },
                "parameters": {
                    "description": "Array of metadata of parameters.",
                    "items": {
                        "$ref": "#/definitions/BaseParameterMetadata"
                    },
                    "type": "array"
                },
                "stackBars": {
                    "description": "StackBars that will be displayed.",
                    "items": {
                        "$ref": "#/definitions/StackBar"
                    },
                    "type": "array"
                },
                "type": {
                    "enum": [
                        "stack-bar"
                    ],
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "Track": {
            "description": "Provides a configuration for one track of the Drillplan Chart.",
            "properties": {
                "curves": {
                    "description": "Set of curves to be rendered in a track.",
                    "items": {
                        "$ref": "#/definitions/Curve"
                    },
                    "type": "array"
                },
                "fill": {
                    "description": "Configuration to fill areas between curves. Could be used only when curves are provided.",
                    "items": {
                        "$ref": "#/definitions/Fill"
                    },
                    "type": "array"
                },
                "fillsOverlap": {
                    "description": "Configuration of a legend for overlapping Fills.",
                    "items": {
                        "$ref": "#/definitions/FillsOverlap"
                    },
                    "type": "array"
                },
                "heatmap": {
                    "$ref": "#/definitions/HeatMap",
                    "description": "Configuration of a heatmap view for a track.\n\nIf several data-series fit a defined _seriesGroup_ for a heatmap, only the first one will be used for rendering."
                },
                "scaleType": {
                    "$ref": "#/definitions/ScaleType",
                    "description": "Scale type of axes (except index-axis) for Track.\n\n(default: __'linear'__)"
                }
            },
            "type": "object"
        },
        "Zoom": {
            "description": "Provides a config for a zoom functionality.",
            "properties": {
                "disable": {
                    "description": "Defines whether to add zoom behavior to chart. Default is false.",
                    "type": "boolean"
                },
                "suppressResetButton": {
                    "description": "Defines whether to remove zoom-reset button from chart. Default is false.",
                    "type": "boolean"
                },
                "type": {
                    "$ref": "#/definitions/ZoomType",
                    "description": "Defines type of zoom that will be used by DrillplanChart.\nDefault zoom type apply zoom to both X and Y axes.\nFor multy-track DrillplanLogChart only 'x-only' setting available."
                }
            },
            "required": [
                "disable"
            ],
            "type": "object"
        },
        "ZoomType": {
            "enum": [
                "default",
                "x-only",
                "y-only"
            ],
            "type": "string"
        }
    }
}

