{
  "title": "labelingInfo",
  "type": "object",
  "$schema": "http://json-schema.org/draft-04/schema",
  "description": "The labelingInfo object specifies the label definition for a layer.",
  "properties": {
    "labelExpression": {
      "type": "string",
      "description": "Defines the expression for text of labels. <em>Deprecated on FeatureLayer, Use `labelExpressionInfo` instead.</em>"
    },
    "labelExpressionInfo": {
      "type": "object",
      "$ref": "labelExpressionInfo_schema.json"
    },
    "labelPlacement": {
      "type": "string",
      "description": "This string property specifies the label placement with respect to that of its feature. A list of label placement values categorized by feature geometry types.",
      "enum": [
        "esriServerLinePlacementAboveAfter",
        "esriServerLinePlacementAboveAlong",
        "esriServerLinePlacementAboveBefore",
        "esriServerLinePlacementAboveEnd",
        "esriServerLinePlacementAboveStart",
        "esriServerLinePlacementBelowAfter",
        "esriServerLinePlacementBelowAlong",
        "esriServerLinePlacementBelowBefore",
        "esriServerLinePlacementBelowEnd",
        "esriServerLinePlacementBelowStart",
        "esriServerLinePlacementCenterAfter",
        "esriServerLinePlacementCenterAlong",
        "esriServerLinePlacementCenterBefore",
        "esriServerLinePlacementCenterEnd",
        "esriServerLinePlacementCenterStart",
        "esriServerPointLabelPlacementAboveCenter",
        "esriServerPointLabelPlacementAboveLeft",
        "esriServerPointLabelPlacementAboveRight",
        "esriServerPointLabelPlacementBelowCenter",
        "esriServerPointLabelPlacementBelowLeft",
        "esriServerPointLabelPlacementBelowRight",
        "esriServerPointLabelPlacementCenterCenter",
        "esriServerPointLabelPlacementCenterLeft",
        "esriServerPointLabelPlacementCenterRight",
        "esriServerPolygonPlacementAlwaysHorizontal"
      ]
    },
    "maxScale": {
      "type": "number",
      "description": "Represents the maximum scale at which the layer definition will be applied."
    },
    "minScale": {
      "type": "number",
      "description": "Represents the minimum scale at which the layer definition will be applied."
    },
    "name": {
      "type": "string",
      "description": "The name of the label class."
    },
    "symbol": {
      "type": "object",
      "description": "The text symbol used to label.",
      "$ref": "labelSymbol3D_schema.json"
    },
    "useCodedValues": {
      "type": "boolean",
      "description": "Boolean value indicating whether to display the coded values for the specified field name(s)."
    },
    "where": {
      "type": "string",
      "description": "String template used to determine which features to label."
    }
  },
  "additionalProperties": false,
  "esriDocumentation": {
    "examples": [
      {
        "title": "labelingInfo",
        "code": {
          "labelingInfo": [
            {
              "labelExpressionInfo": {
                "expression": "return $feature[\"state_name\"];"
              },
              "useCodedValues": false,
              "maxScale": 0,
              "minScale": 0,
              "labelPlacement": "esriServerPointLabelPlacementAboveLeft",
              "symbol": {
                "type": "LabelSymbol3D",
                "symbolLayers": [
                  {
                    "size": 32,
                    "type": "Text",
                    "material": {
                      "color": [
                        255,
                        255,
                        0
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}
