{
  "title": "Multi-dimensional Definition",
  "type": "object",
  "$schema": "http://json-schema.org/draft-04/schema",
  "properties": {
    "dimensionName": {
      "type": "string",
      "description": "Type of dimension being used (ex. StdTime)."
    },
    "isSlice": {
      "type": "boolean",
      "description": "Is slice?",
      "default": true
    },
    "values": {
      "type": "array",
      "description": "Array where every element is either a single value, or an array of two values (lower and upper bound).",
      "items": {
        "oneOf": [
          {
            "type": "number"
          },
          {
            "type": "array",
            "items": {
              "type": "number"
            },
            "minItems": 2,
            "maxItems": 2
          }
        ]
      }
    },
    "variableName": {
      "type": "string",
      "description": "Name of the variable."
    }
  },
  "anyOf": [
    {
      "required": [
        "variableName"
      ]
    },
    {
      "required": [
        "dimensionName",
        "values"
      ]
    }
  ],
  "additionalProperties": false,
  "dependencies": {
    "dimensionName": [
      "values"
    ],
    "values": [
      "dimensionName"
    ]
  },
  "esriDocumentation": {
    "additionalInformation": "[Multidimensional Definition](http://resources.arcgis.com/en/help/arcgis-rest-api/index.html#//02r300000290000000) in ArcGIS REST API",
    "examples": [
      {
        "code": {
          "multidimensionalDefinition": {
            "variableName": "AvgSalinity",
            "dimensionName": "StdZ",
            "values": [
              [
                1406181600000,
                1406182200000
              ],
              [
                1406224800000,
                1406225400000
              ]
            ],
            "isSlice": false
          }
        }
      }
    ]
  }
}
