{
    "$schema": "http://json-schema.org/draft-04/schema",
    "additionalProperties": false,
    "anyOf": [
        {
            "required": [
                "id",
                "layerType",
                "title",
                "url"
            ]
        },
        {
            "required": [
                "id",
                "layerType",
                "path",
                "title"
            ]
        }
    ],
    "description": "Tiled Elevation Layer is a tile layer used for rendering elevation.",
    "esriDocumentation": {
        "examples": [
            {
                "code": {
                    "ground": {
                        "layers": [
                            {
                                "id": "globalElevation",
                                "layerType": "ArcGISTiledElevationServiceLayer",
                                "title": "Terrain3D",
                                "url": "http://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer",
                                "visibility": true
                            }
                        ]
                    }
                },
                "description": "Live sample web scene showing [elevationLayers](https://www.arcgis.com/home/webscene/viewer.html?webscene=a06aa4a2e4264b789686e66a75d863ca)",
                "schema": "ground_schema.json",
                "title": "Tiled Elevation Layer"
            }
        ]
    },
    "properties": {
        "id": {
            "description": "A unique identifying string for the layer",
            "type": "string"
        },
        "itemId": {
            "description": "Optional string containing the item ID of the service if it's registered on ArcGIS Online or your organization's portal.",
            "type": "string"
        },
        "layerType": {
            "description": "String indicating the layer type",
            "enum": [
                "ArcGISTiledElevationServiceLayer"
            ],
            "type": "string"
        },
        "listMode": {
            "description": "To show or hide the elevation layer in the layer list",
            "enum": [
                "hide",
                "show"
            ],
            "type": "string"
        },
        "path": {
            "description": "For offline data, a path to a tile package containing elevation data. 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/portland.tpk`.",
            "pattern": "^file:.+\\.tpkx?$",
            "type": "string"
        },
        "title": {
            "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.",
            "type": "string"
        },
        "url": {
            "_format": "uri",
            "description": "The URL to the layer.If the layer is not from a web service but rather a feature collection, then the url property is omitted",
            "type": "string"
        },
        "visibility": {
            "default": true,
            "description": "Boolean property determining whether the layer is initially visible in the web scene.",
            "type": "boolean"
        }
    },
    "title": "Tiled Elevation Layer",
    "type": "object"
}