{
  "title": "CSV Layer (CSV)",
  "type": "object",
  "$schema": "http://json-schema.org/draft-04/schema",
  "description": "The CSV layer type references a CSV or TXT file from a publically-accessible web server. It then dynamically loads into the scene at run time. The CSV layer will maintain a reference to the CSV resource.",
  "properties": {
    "columnDelimiter": {
      "type": "string",
      "description": "A string defining the character used to separate columns in a CSV file.",
      "enum": [
        "\t",
        " ",
        ",",
        ";",
        "|"
      ]
    },
    "disablePopup": {
      "type": "boolean",
      "description": "Indicates whether to allow a client to ignore popups defined by the service item."
    },
    "id": {
      "type": "string",
      "description": "A unique identifying string for the layer."
    },
    "layerDefinition": {
      "description": "Additional properties that define drawing information and other configurations for the layer.",
      "allOf": [
        {
          "$ref": "layerDefinition_schema.json"
        },
        {
          "properties": {
            "definitionExpression": {},
            "drawingInfo": {},
            "elevationInfo": {},
            "featureReduction": {},
            "fields": {},
            "maxScale": {},
            "minScale": {},
            "name": {},
            "type": {},
            "typeIdField": {},
            "types": {}
          },
          "additionalProperties": false
        }
      ]
    },
    "layerType": {
      "type": "string",
      "description": "String indicating the layer type.",
      "enum": [
        "CSV"
      ]
    },
    "listMode": {
      "type": "string",
      "description": "To show or hide the layer in the layer list",
      "enum": [
        "hide",
        "show"
      ]
    },
    "locationInfo": {
      "type": "object",
      "description": "A locationInfo object defining how location information will be retrieved from a CSV file.",
      "$ref": "locationInfo_schema.json"
    },
    "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
    },
    "popupInfo": {
      "type": "object",
      "description": "A popupInfo object defining the content of popup windows when you click or query a feature.",
      "$ref": "popupInfo_schema.json"
    },
    "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."
    },
    "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": "Labels will display if this property is set to `true` and the layer also has a [labelingInfo](labelingInfo.md) property associated with it. This property can get stored in the web scene config.",
      "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 layer.",
      "format": "uri"
    },
    "visibility": {
      "type": "boolean",
      "description": "Boolean property determining whether the layer is initially visible in the web scene.",
      "default": true
    }
  },
  "required": [
    "id",
    "layerType",
    "title",
    "url"
  ],
  "additionalProperties": false,
  "esriDocumentation": {
    "examples": [
      {
        "title": "csv Layer",
        "code": {
          "operationalLayers": [
            {
              "id": "15844915609-layer-0",
              "layerType": "CSV",
              "title": "earthquake",
              "url": "http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_week.csv",
              "columnDelimiter": ",",
              "opacity": 1,
              "visibility": true,
              "layerDefinition": {
                "drawingInfo": {
                  "renderer": {
                    "type": "simple",
                    "symbol": {
                      "type": "PointSymbol3D",
                      "symbolLayers": [
                        {
                          "material": {
                            "color": [
                              238,
                              69,
                              0
                            ],
                            "transparency": 50
                          },
                          "type": "Icon",
                          "resource": {
                            "primitive": "circle"
                          },
                          "size": 17.25,
                          "outline": {
                            "color": [
                              255,
                              255,
                              255
                            ],
                            "size": 0.5
                          }
                        }
                      ]
                    }
                  }
                }
              }
            }
          ]
        }
      }
    ]
  }
}
