{
  "title": "mosaicRule",
  "type": "object",
  "$schema": "http://json-schema.org/draft-04/schema",
  "description": "The image service uses a mosaic rule to mosaick multiple rasters on the fly. The mosaic rule parameter is used by many image service operations, for example, export image and identify operations.",
  "properties": {
    "ascending": {
      "type": "boolean",
      "description": "Indicate whether to use ascending or descending order.",
      "default": true
    },
    "fids": {
      "type": "array",
      "description": "A list that defines a subset of rasters used in the mosaic, be aware that the rasters may not be visible at all scales.",
      "items": {
        "type": "number"
      }
    },
    "itemRenderingRule": {
      "type": "object",
      "description": "The rendering rule applies on items before mosaicking.",
      "$ref": "renderingRule_schema.json"
    },
    "lockRasterIds": {
      "type": "array",
      "description": "Lock a few rasters in the image service. Used together with `esriMosaicLockRaster`.",
      "items": {
        "type": "number"
      }
    },
    "mosaicMethod": {
      "type": "string",
      "description": "A string value that determines how the selected rasters are ordered.",
      "enum": [
        "esriMosaicAttribute",
        "esriMosaicCenter",
        "esriMosaicLockRaster",
        "esriMosaicNadir",
        "esriMosaicNone",
        "esriMosaicNorthwest",
        "esriMosaicSeamline",
        "esriMosaicViewpoint"
      ]
    },
    "mosaicOperation": {
      "type": "string",
      "description": "Use the mosaic operation to resolve overlap pixel values: from first or last raster, use the min, max or mean of the pixel values, or blend them.",
      "enum": [
        "MT_BLEND",
        "MT_FIRST",
        "MT_LAST",
        "MT_MAX",
        "MT_MEAN",
        "MT_MIN",
        "MT_SUM"
      ],
      "default": "MT_FIRST"
    },
    "multidimensionalDefinition": {
      "type": "array",
      "description": "Definition of multidimentional variables.",
      "items": {
        "type": "object",
        "$ref": "multidimensionalDefinition_schema.json"
      }
    },
    "sortField": {
      "type": "string",
      "description": "The field name used together with `esriMosaicAttribute` method."
    },
    "sortValue": {
      "type": [
        "null",
        "number",
        "string"
      ],
      "description": "The base sort value used together with `esriMosaicAttribute` method and `sortField` parameter.",
      "default": 0
    },
    "viewpoint": {
      "type": "object",
      "description": "Use a view point along with `esriMosaicViewpoint`.",
      "$ref": "point_geometry_schema.json"
    },
    "where": {
      "type": "string",
      "description": "<em>Deprecated. Use `layerDefinition.definitionExpression` instead.</em>"
    }
  },
  "required": [
    "mosaicMethod"
  ],
  "additionalProperties": false,
  "esriDocumentation": {
    "additionalInformation": "[Mosaic rule](http://resources.arcgis.com/en/help/arcgis-rest-api/index.html#//02r3000000s4000000) in ArcGIS REST API",
    "examples": [
      {
        "title": "mosaic rule `None`",
        "code": {
          "mosaicRule": {
            "mosaicMethod": "esriMosaicNone",
            "ascending": true,
            "fids": [
              1,
              2,
              3
            ],
            "mosaicOperation": "MT_FIRST"
          }
        }
      },
      {
        "title": "mosaic rule `ByAttribute`",
        "code": {
          "mosaicRule": {
            "mosaicMethod": "esriMosaicAttribute",
            "sortField": "acquisitionDate",
            "sortValue": "2010/12/31"
          }
        }
      },
      {
        "title": "mosaic rule `Viewpoint`",
        "code": {
          "mosaicRule": {
            "mosaicMethod": "esriMosaicViewpoint",
            "viewpoint": {
              "x": 100,
              "y": 90,
              "spatialReference": {
                "wkid": 4326
              }
            },
            "where": "ImageType='Landsat7'"
          }
        }
      },
      {
        "title": "mosaic rule `LockRaster`",
        "code": {
          "mosaicRule": {
            "mosaicMethod": "esriMosaicLockRaster",
            "lockRasterIds": [
              1,
              2,
              3
            ]
          }
        }
      }
    ]
  }
}
