{
  "title": "ClassBreaks Renderer",
  "type": "object",
  "$schema": "http://json-schema.org/draft-04/schema",
  "description": "A class breaks renderer symbolizes based on the value of some numeric attribute. The classBreakInfo define the values at which the symbology changes.",
  "properties": {
    "authoringInfo": {
      "type": "object",
      "description": "An object containing metadata about the authoring process for creating a renderer object. This allows the authoring clients to save specific overridable settings so that next time it is accessed via the UI, their selections are remembered. Non-authoring clients can ignore it.",
      "$ref": "authoringInfo_schema.json"
    },
    "backgroundFillSymbol": {
      "type": "object",
      "description": "Supported only for polygon features.",
      "$ref": "polygonSymbol3D_schema.json"
    },
    "classBreakInfos": {
      "type": "array",
      "description": "Array of classBreakInfo objects.",
      "items": {
        "type": "object",
        "$ref": "classBreakInfo_schema.json"
      }
    },
    "defaultLabel": {
      "type": "string",
      "description": "Label for the default symbol used to draw unspecified values."
    },
    "defaultSymbol": {
      "type": "object",
      "description": "Symbol used when a value cannot be classified.",
      "$ref": "symbol3D_schema.json"
    },
    "field": {
      "type": "string",
      "description": "Attribute field used for renderer."
    },
    "legendOptions": {
      "type": "object",
      "description": "A legend containing one title, which is a string describing the renderer in the legend.",
      "$ref": "rendererLegendOptions_schema.json"
    },
    "minValue": {
      "type": "number",
      "description": "The minimum numeric data value needed to begin class breaks."
    },
    "normalizationField": {
      "type": "string",
      "description": "Used when normalizationType is field. The string value indicating the attribute field by which the data value is normalized."
    },
    "normalizationTotal": {
      "type": "number",
      "description": "Used when normalizationType is percent-of-total, this number property contains the total of all data values."
    },
    "normalizationType": {
      "type": "string",
      "description": "Determine how the data was normalized.",
      "enum": [
        "esriNormalizeByField",
        "esriNormalizeByLog",
        "esriNormalizeByPercentOfTotal"
      ]
    },
    "type": {
      "type": "string",
      "description": "Specifies the type of renderer used.",
      "enum": [
        "classBreaks"
      ]
    },
    "valueExpression": {
      "type": "string",
      "description": "An [Arcade expression](https://developers.arcgis.com/arcade/) evaluating to a number."
    },
    "valueExpressionTitle": {
      "type": "string",
      "description": "The title identifying and describing the associated [Arcade](https://developers.arcgis.com/arcade/) expression as defined in the `valueExpression` property."
    },
    "visualVariables": {
      "type": "array",
      "description": "An array of objects used to set rendering properties.",
      "items": {
        "type": "object",
        "$ref": "visualVariable_schema.json"
      }
    }
  },
  "required": [
    "classBreakInfos",
    "type"
  ],
  "additionalProperties": false
}
