{
  "title": "Tiled Map Service Layer (ArcGISTiledMapServiceLayer)",
  "type": "object",
  "$schema": "http://json-schema.org/draft-04/schema",
  "description": "An ArcGIS Tiled Map Service layer displays map content from an ArcGIS Server Map service that has been cached (tiled).",
  "properties": {
    "id": {
      "type": "string",
      "description": "A unique identifying string for the layer."
    },
    "isReference": {
      "type": "boolean",
      "description": "This property is applicable if used as a baseMapLayer. A boolean value indicating whether or not the baseMapLayer draws on top (true) of other layers, including operationalLayers , or below (false)."
    },
    "itemId": {
      "type": "string",
      "description": "Optional string containing the item ID of the service if it's registered on ArcGIS Online or your organization's portal."
    },
    "layerType": {
      "type": "string",
      "description": "String indicating the layer type.",
      "enum": [
        "ArcGISTiledMapServiceLayer"
      ]
    },
    "layers": {
      "type": "array",
      "description": "An array of layer objects defining a URL for queries and the popup window content.",
      "items": {
        "allOf": [
          {
            "$ref": "layer_schema.json"
          },
          {
            "properties": {
              "disablePopup": {},
              "id": {},
              "popupInfo": {},
              "showLegend": {},
              "listMode": {}
            },
            "additionalProperties": false
          }
        ]
      },
      "uniqueItems": true
    },
    "listMode": {
      "type": "string",
      "description": "To show or hide the sublayer in the layer list. If the layer has sublayers, selecting `hide-children` will hide them in the layer list.",
      "enum": [
        "hide",
        "hide-children",
        "show"
      ]
    },
    "maxScale": {
      "type": "number",
      "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator.",
      "minimum": 0
    },
    "minScale": {
      "type": "number",
      "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator.",
      "minimum": 0
    },
    "opacity": {
      "type": "number",
      "description": "The degree of transparency applied to the layer on the client side, where 0 is full transparency and 1 is no transparency.",
      "minimum": 0,
      "maximum": 1,
      "default": 1
    },
    "path": {
      "type": "string",
      "description": "For offline data, a path to a tile package file. A URI format is used, starting with `file:` followed by a file system path with an extension of `.tpk` or `.tpkx`. A relative path must be from the file which defines the layer. For example `file:../p20/northamerica.tpk`.",
      "pattern": "^file:.+\\.tpkx?$"
    },
    "refreshInterval": {
      "type": "number",
      "description": "Refresh interval of the layer in minutes. Non-zero value indicates automatic layer refresh at the specified interval. Value of 0 indicates auto refresh is not enabled."
    },
    "showLegend": {
      "type": "boolean",
      "description": "Boolean value indicating whether to display the layer in the legend. Default value is `true`.",
      "default": true
    },
    "title": {
      "type": "string",
      "description": "A user-friendly string title for the layer that can be used in a table of contents. If this is not included, a title is derived from the service."
    },
    "url": {
      "type": "string",
      "description": "URL to the ArcGIS Server tiled Map Service"
    },
    "visibility": {
      "type": "boolean",
      "description": "Boolean property determining whether the layer is initially visible in the map.",
      "default": true
    }
  },
  "anyOf": [
    {
      "required": [
        "id",
        "layerType",
        "title",
        "url"
      ]
    },
    {
      "required": [
        "id",
        "layerType",
        "path",
        "title"
      ]
    }
  ],
  "additionalProperties": false,
  "esriDocumentation": {
    "examples": [
      {
        "title": "operationalLayer",
        "description": "Live sample web scene showing the ArcGISTiledMapServiceLayer as an [operationalLayer](https://www.arcgis.com/home/webscene/viewer.html?webscene=b7077db71c5743cb935151efda288835)",
        "code": {
          "operationalLayers": [
            {
              "id": "World_Imagery_6919",
              "layerType": "ArcGISTiledMapServiceLayer",
              "url": "https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer",
              "visibility": true,
              "opacity": 0.34,
              "title": "World_Imagery",
              "minScale": 147914382,
              "maxScale": 70.5310735
            }
          ]
        }
      },
      {
        "title": "baseMapLayer",
        "description": "Live sample web scene showing the ArcGISTiledMapServiceLayer as a [baseMapLayer](https://www.arcgis.com/home/webscene/viewer.html?webscene=2025161aa6db48f5a640381bbf2cdb93)",
        "code": {
          "baseMapLayers": [
            {
              "id": "World_Terrain_Base_3",
              "layerType": "ArcGISTiledMapServiceLayer",
              "url": "https://services.arcgisonline.com/ArcGIS/rest/services/World_Terrain_Base/MapServer",
              "visibility": true,
              "opacity": 1,
              "title": "World Terrain Base"
            },
            {
              "id": "World_Reference_Overlay_5790",
              "layerType": "ArcGISTiledMapServiceLayer",
              "url": "https://services.arcgisonline.com/ArcGIS/rest/services/Reference/World_Reference_Overlay/MapServer",
              "visibility": true,
              "opacity": 1,
              "title": "World Reference",
              "isReference": true
            }
          ],
          "title": "Terrain with Labels"
        }
      }
    ]
  }
}
