{
  "title": "Scene Layer (ArcGISSceneServiceLayer)",
  "type": "object",
  "$schema": "http://json-schema.org/draft-04/schema",
  "description": "The SceneLayer is a layer type designed for on-demand streaming and displaying large amounts of data in a SceneView. SceneLayers support two geometry types: Point and 3D Objects (e.g. buildings). The SceneLayer displays data published to a Scene Service. Scene Services can hold large volumes of features in an open format that is suitable for web streaming. The SceneLayer loads these features progressively, starting from coarse representations and refines them to higher detail as necessary for close-up views.",
  "properties": {
    "disablePopup": {
      "type": "boolean",
      "description": "disablePopups allows a client to ignore popups defined by the service item."
    },
    "id": {
      "type": "string",
      "description": "A unique identifying string for the layer."
    },
    "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."
    },
    "layerDefinition": {
      "type": "object",
      "description": "A layerDefinition object defining the attribute schema and drawing information for the layer.",
      "allOf": [
        {
          "$ref": "layerDefinition_schema.json"
        },
        {
          "properties": {
            "definitionExpression": {},
            "drawingInfo": {},
            "elevationInfo": {},
            "featureReduction": {},
            "minScale": {},
            "maxScale": {},
            "rangeInfos": {}
          },
          "additionalProperties": false
        }
      ]
    },
    "layerType": {
      "type": "string",
      "description": "String indicating the layer type.",
      "enum": [
        "ArcGISSceneServiceLayer"
      ]
    },
    "listMode": {
      "type": "string",
      "description": "To show or hide layers in the layer list",
      "enum": [
        "hide",
        "show"
      ]
    },
    "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 scene layer package file. A URI format is used, starting with `file:` followed by a file system path with an extension of `.slpk`. A relative path must be from the file which defines the layer. For example `file:../p20/northamerica.slpk`.",
      "pattern": "^file:.+\\.slpk$"
    },
    "popupInfo": {
      "type": "object",
      "description": "A popupInfo object defining the content of pop-up windows when you click or query a feature.",
      "$ref": "popupInfo_schema.json"
    },
    "screenSizePerspective": {
      "type": "boolean",
      "description": "Apply [perspective scaling](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html#screenSizePerspectiveEnabled) to screen-size symbols.",
      "default": false
    },
    "showLabels": {
      "type": "boolean",
      "description": "If the layer has a labelingInfo property then labels show on the scene only if the showLabels property it true.",
      "default": false
    },
    "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."
    },
    "url": {
      "type": "string",
      "description": "The URL to the service.",
      "format": "uri"
    },
    "visibility": {
      "type": "boolean",
      "description": "Boolean property determining whether the layer is initially visible in the web scene",
      "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 Scene Layer as an [operationalLayer](https://www.arcgis.com/home/webscene/viewer.html?webscene=40b3391c9cad4beca75155e79d42366d)",
        "code": {
          "operationalLayers": [
            {
              "id": "1598894cf8a-layer-1",
              "opacity": 1,
              "title": "Buildings Textured",
              "url": "http://tiles.arcgis.com/tiles/lVkj5PBOw7tRmIPU/arcgis/rest/services/sf_small/SceneServer/layers/0",
              "visibility": true,
              "layerType": "ArcGISSceneServiceLayer",
              "itemId": "44a4ce7c2d2048ddb0606f8ed2cdf293"
            }
          ]
        }
      }
    ]
  }
}
