{
    "$ref": "#/definitions/viewer-spec.Event",
    "definitions": {
        "@arcgis.core.analysis.Analysis.Analysis": {
            "$ref": "esri.analysis.Analysis"
        },
        "@arcgis.core.analysis.ElevationProfile.ElevationProfileLineGround.ElevationProfileLineGround": {
            "$ref": "esri.analysis.ElevationProfile.ElevationProfileLineGround"
        },
        "@arcgis.core.analysis.ElevationProfile.ElevationProfileLineInput.ElevationProfileLineInput": {
            "$ref": "esri.analysis.ElevationProfile.ElevationProfileLineInput"
        },
        "@arcgis.core.analysis.ElevationProfile.ElevationProfileLineQuery.ElevationProfileLineQuery": {
            "$ref": "esri.analysis.ElevationProfile.ElevationProfileLineQuery"
        },
        "@arcgis.core.analysis.ElevationProfile.ElevationProfileLineScene.ElevationProfileLineScene": {
            "$ref": "esri.analysis.ElevationProfile.ElevationProfileLineScene"
        },
        "@arcgis.core.analysis.ElevationProfile.types.ElevationProfileLineUnion": {
            "$ref": "esri.analysis.ElevationProfile.types"
        },
        "@arcgis.core.analysis.VolumeMeasurement.types.VolumeMeasureType": {
            "$ref": "esri.analysis.VolumeMeasurement.types"
        },
        "@arcgis.core.core.Collection.CollectionAfterEvent": {
            "properties": {},
            "type": "object"
        },
        "@arcgis.core.core.Collection.CollectionAfterItemEvent": {
            "additionalProperties": false,
            "properties": {
                "item": {
                    "$ref": "T",
                    "description": "The item to add or remove from the collection."
                }
            },
            "required": [
                "item"
            ],
            "type": "object"
        },
        "@arcgis.core.core.Collection.CollectionChangeEvent": {
            "additionalProperties": false,
            "description": "Event object emitted when a [Collection](https://developers.arcgis.com/javascript/latest/references/core/core/Collection/) changes. It contains arrays of added, removed, and moved items.",
            "properties": {
                "added": {
                    "description": "An array of items added to the collection using either [add()](https://developers.arcgis.com/javascript/latest/references/core/core/Collection/#add) or [addMany()](https://developers.arcgis.com/javascript/latest/references/core/core/Collection/#addMany).",
                    "items": {
                        "$ref": "#/definitions/@arcgis.core.layers.Layer.Layer"
                    },
                    "type": "array"
                },
                "moved": {
                    "description": "An array of items that moved in the collection using [reorder()](https://developers.arcgis.com/javascript/latest/references/core/core/Collection/#reorder).",
                    "items": {
                        "$ref": "#/definitions/@arcgis.core.layers.Layer.Layer"
                    },
                    "type": "array"
                },
                "removed": {
                    "description": "An array of items removed from the collection using either [remove()](https://developers.arcgis.com/javascript/latest/references/core/core/Collection/#remove), [removeMany()](https://developers.arcgis.com/javascript/latest/references/core/core/Collection/#removeMany), [removeAt()](https://developers.arcgis.com/javascript/latest/references/core/core/Collection/#removeAt), or [removeAll()](https://developers.arcgis.com/javascript/latest/references/core/core/Collection/#removeAll).",
                    "items": {
                        "$ref": "#/definitions/@arcgis.core.layers.Layer.Layer"
                    },
                    "type": "array"
                }
            },
            "required": [
                "added",
                "moved",
                "removed"
            ],
            "type": "object"
        },
        "@arcgis.core.core.Error.Error": {
            "$ref": "esri.core.Error"
        },
        "@arcgis.core.core.quantity.Area": {
            "$ref": "esri.core.quantity"
        },
        "@arcgis.core.core.quantity.Length": {
            "$ref": "esri.core.quantity"
        },
        "@arcgis.core.core.quantity.Volume": {
            "$ref": "esri.core.quantity"
        },
        "@arcgis.core.editing.types.EditedFeatureResult": {
            "$ref": "esri.editing.types"
        },
        "@arcgis.core.editing.types.EditedFeatures": {
            "$ref": "esri.editing.types"
        },
        "@arcgis.core.editing.types.EditsResultEvent": {
            "additionalProperties": false,
            "properties": {
                "addedAttachments": {
                    "description": "An array of successfully added attachments.",
                    "items": {
                        "$ref": "#/definitions/@arcgis.core.editing.types.FeatureEditResult"
                    },
                    "type": "array"
                },
                "addedFeatures": {
                    "description": "An array of successfully added features.",
                    "items": {
                        "$ref": "#/definitions/@arcgis.core.editing.types.FeatureEditResult"
                    },
                    "type": "array"
                },
                "deletedAttachments": {
                    "description": "An array of successfully deleted attachments.",
                    "items": {
                        "$ref": "#/definitions/@arcgis.core.editing.types.FeatureEditResult"
                    },
                    "type": "array"
                },
                "deletedFeatures": {
                    "description": "An array of successfully deleted features.",
                    "items": {
                        "$ref": "#/definitions/@arcgis.core.editing.types.FeatureEditResult"
                    },
                    "type": "array"
                },
                "editedFeatures": {
                    "description": "Edited features as result of editing a feature that participates in composite relationships in a database. This parameter is returned only when the `returnServiceEditsOption` parameter of the [FeatureLayer.applyEdits()](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#applyEdits) method is set to `original-and-current-features`. This parameter was added at 4.20.",
                    "items": {
                        "$ref": "#/definitions/@arcgis.core.editing.types.EditedFeatureResult"
                    },
                    "type": "array"
                },
                "exceededTransferLimit": {
                    "description": "Returns `true` when the number of records returned exceeds the maximum number configured on the service.",
                    "type": "boolean"
                },
                "updatedAttachments": {
                    "description": "An array of successfully updated attachments.",
                    "items": {
                        "$ref": "#/definitions/@arcgis.core.editing.types.FeatureEditResult"
                    },
                    "type": "array"
                },
                "updatedFeatures": {
                    "description": "An array of successfully updated features.",
                    "items": {
                        "$ref": "#/definitions/@arcgis.core.editing.types.FeatureEditResult"
                    },
                    "type": "array"
                }
            },
            "required": [
                "addedAttachments",
                "addedFeatures",
                "deletedAttachments",
                "deletedFeatures",
                "exceededTransferLimit",
                "updatedAttachments",
                "updatedFeatures"
            ],
            "type": "object"
        },
        "@arcgis.core.editing.types.FeatureEditResult": {
            "$ref": "esri.editing.types"
        },
        "@arcgis.core.form.elements.AttachmentElement.AttachmentElement": {
            "$ref": "esri.form.elements.AttachmentElement"
        },
        "@arcgis.core.form.elements.FieldElement.FieldElement": {
            "$ref": "esri.form.elements.FieldElement"
        },
        "@arcgis.core.form.elements.GroupElement.GroupElement": {
            "$ref": "esri.form.elements.GroupElement"
        },
        "@arcgis.core.form.elements.RelationshipElement.RelationshipElement": {
            "$ref": "esri.form.elements.RelationshipElement"
        },
        "@arcgis.core.form.elements.TextElement.TextElement": {
            "$ref": "esri.form.elements.TextElement"
        },
        "@arcgis.core.form.elements.UtilityNetworkAssociationsElement.UtilityNetworkAssociationsElement": {
            "$ref": "esri.form.elements.UtilityNetworkAssociationsElement"
        },
        "@arcgis.core.form.elements.inputs.attachments.AttachmentInput.AttachmentInput": {
            "$ref": "esri.form.elements.inputs.attachments.AttachmentInput"
        },
        "@arcgis.core.form.elements.inputs.attachments.AudioInput.AudioInput": {
            "$ref": "esri.form.elements.inputs.attachments.AudioInput"
        },
        "@arcgis.core.form.elements.inputs.attachments.DocumentInput.DocumentInput": {
            "$ref": "esri.form.elements.inputs.attachments.DocumentInput"
        },
        "@arcgis.core.form.elements.inputs.attachments.ImageInput.ImageInput": {
            "$ref": "esri.form.elements.inputs.attachments.ImageInput"
        },
        "@arcgis.core.form.elements.inputs.attachments.SignatureInput.SignatureInput": {
            "$ref": "esri.form.elements.inputs.attachments.SignatureInput"
        },
        "@arcgis.core.form.elements.inputs.attachments.VideoInput.VideoInput": {
            "$ref": "esri.form.elements.inputs.attachments.VideoInput"
        },
        "@arcgis.core.geometry.Extent.Extent": {
            "$ref": "esri.geometry.Extent"
        },
        "@arcgis.core.geometry.Mesh.Mesh": {
            "$ref": "esri.geometry.Mesh"
        },
        "@arcgis.core.geometry.Multipoint.Multipoint": {
            "$ref": "esri.geometry.Multipoint"
        },
        "@arcgis.core.geometry.Point.Point": {
            "$ref": "esri.geometry.Point"
        },
        "@arcgis.core.geometry.Polyline.Polyline": {
            "$ref": "esri.geometry.Polyline"
        },
        "@arcgis.core.geometry.support.MeshGeoreferencedVertexSpace.MeshGeoreferencedVertexSpace": {
            "$ref": "esri.geometry.support.MeshGeoreferencedVertexSpace"
        },
        "@arcgis.core.geometry.support.MeshLocalVertexSpace.MeshLocalVertexSpace": {
            "$ref": "esri.geometry.support.MeshLocalVertexSpace"
        },
        "@arcgis.core.geometry.types.MeshVertexSpaceUnion": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@arcgis.core.geometry.support.MeshLocalVertexSpace.MeshLocalVertexSpace"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.geometry.support.MeshGeoreferencedVertexSpace.MeshGeoreferencedVertexSpace"
                }
            ]
        },
        "@arcgis.core.layers.BaseElevationLayer.BaseElevationLayer": {
            "$ref": "esri.layers.BaseElevationLayer"
        },
        "@arcgis.core.layers.ElevationLayer.ElevationLayer": {
            "$ref": "esri.layers.ElevationLayer"
        },
        "@arcgis.core.layers.Layer.Layer": {
            "$ref": "esri.layers.Layer"
        },
        "@arcgis.core.layers.Layer.LayerLayerviewCreateErrorEvent": {
            "additionalProperties": false,
            "properties": {
                "error": {
                    "$ref": "#/definitions/Error",
                    "description": "An error object describing why the layer view failed to create."
                },
                "view": {
                    "$ref": "#/definitions/@arcgis.core.views.View.View",
                    "description": "The view that failed to create a layerview for the layer   emitting this event."
                }
            },
            "required": [
                "error",
                "view"
            ],
            "type": "object"
        },
        "@arcgis.core.layers.Layer.LayerLayerviewCreateEvent": {
            "additionalProperties": false,
            "properties": {
                "layerView": {
                    "$ref": "#/definitions/@arcgis.core.views.layers.LayerView.LayerView",
                    "description": "The LayerView rendered                                                in the view representing the layer in `layer`."
                },
                "view": {
                    "$ref": "#/definitions/@arcgis.core.views.View.View",
                    "description": "The view in which the `layerView` was created."
                }
            },
            "required": [
                "layerView",
                "view"
            ],
            "type": "object"
        },
        "@arcgis.core.layers.Layer.LayerLayerviewDestroyEvent": {
            "additionalProperties": false,
            "properties": {
                "layerView": {
                    "$ref": "#/definitions/@arcgis.core.views.layers.LayerView.LayerView",
                    "description": "The destroyed LayerView representing the layer."
                },
                "view": {
                    "$ref": "#/definitions/@arcgis.core.views.View.View",
                    "description": "The view in which the `layerView` was destroyed."
                }
            },
            "required": [
                "layerView",
                "view"
            ],
            "type": "object"
        },
        "@arcgis.core.layers.LinkChartLayer.InitializationLinkChartConfig": {
            "additionalProperties": false,
            "description": "Defines the initial layout for the link chart and any layout settings for newly created link chart layers.",
            "properties": {
                "doNotRecalculateLayout": {
                    "description": "By default, the layout algorithm always runs on link charts when they are first created. If all diagram locations are set for every entity in the inclusion definition, this property can be set to `true` which skips the layout algorithm step and increases the performance of larger link charts.",
                    "type": "boolean"
                },
                "layoutMode": {
                    "$ref": "#/definitions/@arcgis.core.layers.knowledgeGraph.types.LayoutMode",
                    "description": "The layout mode to be applied by default. The system default is `organic-standard`."
                },
                "layoutSettings": {
                    "$ref": "#/definitions/@arcgis.core.linkChart.LayoutSettings.LayoutSettings",
                    "description": "Additional layout options for the default layout configuration."
                }
            },
            "type": "object"
        },
        "@arcgis.core.layers.buildingSublayers.BuildingComponentSublayer.BuildingComponentSublayer": {
            "$ref": "esri.layers.buildingSublayers.BuildingComponentSublayer"
        },
        "@arcgis.core.layers.buildingSublayers.BuildingGroupSublayer.BuildingGroupSublayer": {
            "$ref": "esri.layers.buildingSublayers.BuildingGroupSublayer"
        },
        "@arcgis.core.layers.knowledgeGraph.types.LayoutMode": {
            "$ref": "esri.layers.knowledgeGraph.types"
        },
        "@arcgis.core.layers.mixins.RefreshableLayer.RefreshEvent": {
            "additionalProperties": false,
            "properties": {
                "dataChanged": {
                    "description": "Indicates if the layer's data has changed.",
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "@arcgis.core.layers.support.CodedValueDomain.CodedValueDomain": {
            "$ref": "esri.layers.support.CodedValueDomain"
        },
        "@arcgis.core.layers.support.DateTimeFieldFormat.DateTimeFieldFormat": {
            "$ref": "esri.layers.support.DateTimeFieldFormat"
        },
        "@arcgis.core.layers.support.FeatureReductionBinning.FeatureReductionBinning": {
            "$ref": "esri.layers.support.FeatureReductionBinning"
        },
        "@arcgis.core.layers.support.FeatureReductionCluster.FeatureReductionCluster": {
            "$ref": "esri.layers.support.FeatureReductionCluster"
        },
        "@arcgis.core.layers.support.FeatureReductionSelection.FeatureReductionSelection": {
            "$ref": "esri.layers.support.FeatureReductionSelection"
        },
        "@arcgis.core.layers.support.InheritedDomain.InheritedDomain": {
            "$ref": "esri.layers.support.InheritedDomain"
        },
        "@arcgis.core.layers.support.NumberFieldFormat.NumberFieldFormat": {
            "$ref": "esri.layers.support.NumberFieldFormat"
        },
        "@arcgis.core.layers.support.ParquetGeometryEncodingLocation.ParquetGeometryEncodingLocation": {
            "$ref": "esri.layers.support.ParquetGeometryEncodingLocation"
        },
        "@arcgis.core.layers.support.ParquetGeometryEncodingWkb.ParquetGeometryEncodingWkb": {
            "$ref": "esri.layers.support.ParquetGeometryEncodingWkb"
        },
        "@arcgis.core.layers.support.RangeDomain.RangeDomain": {
            "$ref": "esri.layers.support.RangeDomain"
        },
        "@arcgis.core.linkChart.LayoutSettings.LayoutSettings": {
            "$ref": "esri.linkChart.LayoutSettings"
        },
        "@arcgis.core.portal.PortalItem.PortalItem": {
            "$ref": "esri.portal.PortalItem"
        },
        "@arcgis.core.renderers.ClassBreaksRenderer.ClassBreaksRenderer": {
            "$ref": "esri.renderers.ClassBreaksRenderer"
        },
        "@arcgis.core.renderers.DictionaryRenderer.DictionaryRenderer": {
            "$ref": "esri.renderers.DictionaryRenderer"
        },
        "@arcgis.core.renderers.DotDensityRenderer.DotDensityRenderer": {
            "$ref": "esri.renderers.DotDensityRenderer"
        },
        "@arcgis.core.renderers.HeatmapRenderer.HeatmapRenderer": {
            "$ref": "esri.renderers.HeatmapRenderer"
        },
        "@arcgis.core.renderers.PieChartRenderer.PieChartRenderer": {
            "$ref": "esri.renderers.PieChartRenderer"
        },
        "@arcgis.core.renderers.SimpleRenderer.SimpleRenderer": {
            "$ref": "esri.renderers.SimpleRenderer"
        },
        "@arcgis.core.renderers.UniqueValueRenderer.UniqueValueRenderer": {
            "$ref": "esri.renderers.UniqueValueRenderer"
        },
        "@arcgis.core.renderers.types.RendererUnion": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@arcgis.core.renderers.SimpleRenderer.SimpleRenderer"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.renderers.ClassBreaksRenderer.ClassBreaksRenderer"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.renderers.UniqueValueRenderer.UniqueValueRenderer"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.renderers.DotDensityRenderer.DotDensityRenderer"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.renderers.DictionaryRenderer.DictionaryRenderer"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.renderers.PieChartRenderer.PieChartRenderer"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.renderers.HeatmapRenderer.HeatmapRenderer"
                }
            ],
            "description": "Union of renderers."
        },
        "@arcgis.core.symbols.CIMSymbol.CIMSymbol": {
            "$ref": "esri.symbols.CIMSymbol"
        },
        "@arcgis.core.symbols.LabelSymbol3D.LabelSymbol3D": {
            "$ref": "esri.symbols.LabelSymbol3D"
        },
        "@arcgis.core.symbols.LineSymbol3D.LineSymbol3D": {
            "$ref": "esri.symbols.LineSymbol3D"
        },
        "@arcgis.core.symbols.MeshSymbol3D.MeshSymbol3D": {
            "$ref": "esri.symbols.MeshSymbol3D"
        },
        "@arcgis.core.symbols.PictureFillSymbol.PictureFillSymbol": {
            "$ref": "esri.symbols.PictureFillSymbol"
        },
        "@arcgis.core.symbols.PictureMarkerSymbol.PictureMarkerSymbol": {
            "$ref": "esri.symbols.PictureMarkerSymbol"
        },
        "@arcgis.core.symbols.PointSymbol3D.PointSymbol3D": {
            "$ref": "esri.symbols.PointSymbol3D"
        },
        "@arcgis.core.symbols.PolygonSymbol3D.PolygonSymbol3D": {
            "$ref": "esri.symbols.PolygonSymbol3D"
        },
        "@arcgis.core.symbols.SimpleFillSymbol.SimpleFillSymbol": {
            "$ref": "esri.symbols.SimpleFillSymbol"
        },
        "@arcgis.core.symbols.SimpleLineSymbol.SimpleLineSymbol": {
            "$ref": "esri.symbols.SimpleLineSymbol"
        },
        "@arcgis.core.symbols.SimpleMarkerSymbol.SimpleMarkerSymbol": {
            "$ref": "esri.symbols.SimpleMarkerSymbol"
        },
        "@arcgis.core.symbols.TextSymbol.TextSymbol": {
            "$ref": "esri.symbols.TextSymbol"
        },
        "@arcgis.core.symbols.WebStyleSymbol.WebStyleSymbol": {
            "$ref": "esri.symbols.WebStyleSymbol"
        },
        "@arcgis.core.symbols.cim.types.CIMAnimatedSymbolEasingType": {
            "$ref": "esri.symbols.cim.types"
        },
        "@arcgis.core.symbols.cim.types.CIMAnimatedSymbolProperties": {
            "additionalProperties": false,
            "description": "Represents animated symbol properties, a collection of symbol properties that apply when the symbol layer has animation data.",
            "properties": {
                "duration": {
                    "description": "The time (in seconds) it take to play through the symbol's animation once. This determines a symbol's playback speed.",
                    "type": "number"
                },
                "easing": {
                    "$ref": "#/definitions/@arcgis.core.symbols.cim.types.CIMAnimatedSymbolEasingType",
                    "description": "The easing method to use when animating the symbol. Only for use with [CIMSymbolAnimation](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMSymbolAnimation), not animated GIFs/PNGs."
                },
                "playAnimation": {
                    "description": "Indicates whether the animated symbol should play its animation.",
                    "type": "boolean"
                },
                "randomizeStartSeed": {
                    "description": "The starting value for generating a random number. Used by the `randomizeStartTime` property to determine the time offset for each feature.",
                    "type": "number"
                },
                "randomizeStartTime": {
                    "description": "Indicates whether to generate a randomized start offset in seconds to apply to the symbol animation of each feature.",
                    "type": "boolean"
                },
                "repeatDelay": {
                    "description": "The number of seconds to delay before repeating an animation cycle.",
                    "type": "number"
                },
                "repeatType": {
                    "$ref": "#/definitions/@arcgis.core.symbols.cim.types.CIMAnimatedSymbolRepeatType",
                    "description": "Determines how to repeat the animation of a symbol when the animation cycle ends."
                },
                "reverseAnimation": {
                    "description": "Indicates whether the animated symbol should play back in reverse.",
                    "type": "boolean"
                },
                "startTimeOffset": {
                    "description": "The time offset in seconds to use as the starting point of the symbol animation. This is used if `randomizeStartTime` is `false`.",
                    "type": "number"
                }
            },
            "type": "object"
        },
        "@arcgis.core.symbols.cim.types.CIMAnimatedSymbolRepeatType": {
            "$ref": "esri.symbols.cim.types"
        },
        "@arcgis.core.symbols.cim.types.CIMColorRampUnion": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.cim.types.CIMFixedColorRamp"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.cim.types.CIMLinearContinuousColorRamp"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.cim.types.CIMMultipartColorRamp"
                }
            ],
            "description": "Represents a color ramp."
        },
        "@arcgis.core.symbols.cim.types.CIMFixedColorRamp": {
            "$ref": "esri.symbols.cim.types"
        },
        "@arcgis.core.symbols.cim.types.CIMGradientFill": {
            "$ref": "esri.symbols.cim.types"
        },
        "@arcgis.core.symbols.cim.types.CIMGradientStroke": {
            "$ref": "esri.symbols.cim.types"
        },
        "@arcgis.core.symbols.cim.types.CIMHatchFill": {
            "$ref": "esri.symbols.cim.types"
        },
        "@arcgis.core.symbols.cim.types.CIMLineSymbol": {
            "$ref": "esri.symbols.cim.types"
        },
        "@arcgis.core.symbols.cim.types.CIMLinearContinuousColorRamp": {
            "$ref": "esri.symbols.cim.types"
        },
        "@arcgis.core.symbols.cim.types.CIMMultipartColorRamp": {
            "$ref": "esri.symbols.cim.types"
        },
        "@arcgis.core.symbols.cim.types.CIMPictureFill": {
            "$ref": "esri.symbols.cim.types"
        },
        "@arcgis.core.symbols.cim.types.CIMPictureMarker": {
            "$ref": "esri.symbols.cim.types"
        },
        "@arcgis.core.symbols.cim.types.CIMPictureStroke": {
            "$ref": "esri.symbols.cim.types"
        },
        "@arcgis.core.symbols.cim.types.CIMPointSymbol": {
            "$ref": "esri.symbols.cim.types"
        },
        "@arcgis.core.symbols.cim.types.CIMPolygonSymbol": {
            "$ref": "esri.symbols.cim.types"
        },
        "@arcgis.core.symbols.cim.types.CIMSolidFill": {
            "$ref": "esri.symbols.cim.types"
        },
        "@arcgis.core.symbols.cim.types.CIMSolidStroke": {
            "$ref": "esri.symbols.cim.types"
        },
        "@arcgis.core.symbols.cim.types.CIMSymbolUnion": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.cim.types.CIMLineSymbol"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.cim.types.CIMPointSymbol"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.cim.types.CIMPolygonSymbol"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.cim.types.CIMTextSymbol"
                }
            ],
            "description": "Represents a union type of all CIM symbol types."
        },
        "@arcgis.core.symbols.cim.types.CIMTextSymbol": {
            "$ref": "esri.symbols.cim.types"
        },
        "@arcgis.core.symbols.cim.types.CIMVectorMarker": {
            "$ref": "esri.symbols.cim.types"
        },
        "@arcgis.core.symbols.types.SymbolUnion": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.PictureFillSymbol.PictureFillSymbol"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.PictureMarkerSymbol.PictureMarkerSymbol"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.SimpleFillSymbol.SimpleFillSymbol"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.SimpleLineSymbol.SimpleLineSymbol"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.SimpleMarkerSymbol.SimpleMarkerSymbol"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.TextSymbol.TextSymbol"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.CIMSymbol.CIMSymbol"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.LabelSymbol3D.LabelSymbol3D"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.LineSymbol3D.LineSymbol3D"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.MeshSymbol3D.MeshSymbol3D"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.PointSymbol3D.PointSymbol3D"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.PolygonSymbol3D.PolygonSymbol3D"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.WebStyleSymbol.WebStyleSymbol"
                }
            ],
            "description": "Union of all symbols."
        },
        "@arcgis.core.views.2d.analysis.AreaMeasurementAnalysisView2D.AreaMeasurementAnalysisView2D": {
            "$ref": "esri.views.2d.analysis.AreaMeasurementAnalysisView2D"
        },
        "@arcgis.core.views.2d.analysis.DistanceMeasurementAnalysisView2D.DistanceMeasurementAnalysisView2D": {
            "$ref": "esri.views.2d.analysis.DistanceMeasurementAnalysisView2D"
        },
        "@arcgis.core.views.2d.analysis.ElevationProfileAnalysisView2D.ElevationProfileAnalysisView2D": {
            "$ref": "esri.views.2d.analysis.ElevationProfileAnalysisView2D"
        },
        "@arcgis.core.views.3d.analysis.AreaMeasurementAnalysisView3D.AreaMeasurementAnalysisView3D": {
            "$ref": "esri.views.3d.analysis.AreaMeasurementAnalysisView3D"
        },
        "@arcgis.core.views.3d.analysis.DimensionAnalysisView3D.DimensionAnalysisView3D": {
            "$ref": "esri.views.3d.analysis.DimensionAnalysisView3D"
        },
        "@arcgis.core.views.3d.analysis.DirectLineMeasurement.types.DirectLineMeasurementAnalysisResult": {
            "additionalProperties": false,
            "description": "Result obtained from a [DirectLineMeasurementAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/DirectLineMeasurementAnalysis/).",
            "properties": {
                "directDistance": {
                    "$ref": "#/definitions/@arcgis.core.core.quantity.Length",
                    "description": "The 3D distance between the two points that is computed in a Euclidean manner."
                },
                "horizontalDistance": {
                    "$ref": "#/definitions/@arcgis.core.core.quantity.Length",
                    "description": "Horizontal distance between the two points. It can be measured as the euclidean distance or the geodesic distance depending on the configured measurement mode. In automatic mode, the distance is measured geodetically if the spatial reference is a GCS or WebMercator; otherwise (in non-WebMercator PCS) it is Euclidean."
                },
                "mode": {
                    "$ref": "#/definitions/@arcgis.core.views.analysis.types.MeasurementMode",
                    "description": "Describes how the `horizontalDistance` is computed.\n- In `euclidean` mode, the horizontal distance is the 2D distance between the two points, computed in a Euclidean manner.   This mode is used in scenes with projected coordinate systems (PCS), apart from Web Mercator.\n- In `geodesic` mode, the horizontal distance is computed geodetically.   This mode is used in scenes with geographic coordinate systems (GCS) or in Web Mercator."
                },
                "verticalDistance": {
                    "$ref": "#/definitions/@arcgis.core.core.quantity.Length",
                    "description": "Vertical distance measured as the absolute difference of the elevation of the two points."
                }
            },
            "required": [
                "directDistance",
                "horizontalDistance",
                "mode",
                "verticalDistance"
            ],
            "type": "object"
        },
        "@arcgis.core.views.3d.analysis.DirectLineMeasurementAnalysisView3D.DirectLineMeasurementAnalysisView3D": {
            "$ref": "esri.views.3d.analysis.DirectLineMeasurementAnalysisView3D"
        },
        "@arcgis.core.views.3d.analysis.ElevationProfileAnalysisView3D.ElevationProfileAnalysisView3D": {
            "$ref": "esri.views.3d.analysis.ElevationProfileAnalysisView3D"
        },
        "@arcgis.core.views.3d.analysis.LineOfSightAnalysisResult.LineOfSightAnalysisResult": {
            "additionalProperties": false,
            "description": "Contains the result for a line of sight analysis from a [LineOfSightAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/LineOfSightAnalysis/).",
            "properties": {
                "declaredClass": {
                    "description": "The name of the class. The declared class name is formatted as `esri.folder.className`.",
                    "type": "string"
                },
                "destroyed": {
                    "type": "boolean"
                },
                "initialized": {
                    "description": "Set to `true` once the initialize function has executed.",
                    "type": "boolean"
                },
                "intersectedGraphic": {
                    "$ref": "T_22",
                    "description": "The first [Graphic](https://developers.arcgis.com/javascript/latest/references/core/Graphic/) intersected by the line of sight. If no graphic is intersected then this property is `null`."
                },
                "intersectedLocation": {
                    "$ref": "#/definitions/@arcgis.core.geometry.Point.Point",
                    "description": "A [Point](https://developers.arcgis.com/javascript/latest/references/core/geometry/Point/) representing the location where the line of sight first intersects the ground or 3D objects in the scene. If the target is visible this property is `null`."
                },
                "target": {
                    "$ref": "T_16",
                    "description": "Represents a target in a [LineOfSightAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/LineOfSightAnalysis/) which is used to calculate the visibility from the [LineOfSightAnalysis.observer](https://developers.arcgis.com/javascript/latest/references/core/analysis/LineOfSightAnalysis/#observer)."
                },
                "visible": {
                    "description": "Whether the target is visible from the observer or not.",
                    "type": "boolean"
                }
            },
            "required": [
                "declaredClass",
                "destroyed",
                "initialized",
                "intersectedGraphic",
                "intersectedLocation",
                "target",
                "visible"
            ],
            "type": "object"
        },
        "@arcgis.core.views.3d.analysis.LineOfSightAnalysisView3D.LineOfSightAnalysisView3D": {
            "$ref": "esri.views.3d.analysis.LineOfSightAnalysisView3D"
        },
        "@arcgis.core.views.3d.analysis.ShadowCastAnalysisView3D.ShadowCastAnalysisView3D": {
            "$ref": "esri.views.3d.analysis.ShadowCastAnalysisView3D"
        },
        "@arcgis.core.views.3d.analysis.SliceAnalysisView3D.SliceAnalysisView3D": {
            "$ref": "esri.views.3d.analysis.SliceAnalysisView3D"
        },
        "@arcgis.core.views.3d.analysis.ViewshedAnalysisView3D.ViewshedAnalysisView3D": {
            "$ref": "esri.views.3d.analysis.ViewshedAnalysisView3D"
        },
        "@arcgis.core.views.3d.analysis.VolumeMeasurement.VolumeMeasurementResult.VolumeMeasurementResult": {
            "additionalProperties": false,
            "description": "Result obtained from a [VolumeMeasurementAnalysisView3D.result](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/VolumeMeasurementAnalysisView3D/#result).\n\nIf the result is unavailable, the [VolumeMeasurementAnalysisView3D.error](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/VolumeMeasurementAnalysisView3D/#error) property provides the details on the cause.",
            "properties": {
                "area": {
                    "$ref": "#/definitions/@arcgis.core.core.quantity.Area",
                    "description": "The area of the measured volume."
                },
                "cutVolume": {
                    "$ref": "#/definitions/@arcgis.core.core.quantity.Volume",
                    "description": "Volume that needs to be removed to reach the target surface defined by the polygon."
                },
                "declaredClass": {
                    "description": "The name of the class. The declared class name is formatted as `esri.folder.className`.",
                    "type": "string"
                },
                "destroyed": {
                    "type": "boolean"
                },
                "fillVolume": {
                    "$ref": "#/definitions/@arcgis.core.core.quantity.Volume",
                    "description": "Volume that needs to be added to reach the target surface defined by the polygon."
                },
                "initialized": {
                    "description": "Set to `true` once the initialize function has executed.",
                    "type": "boolean"
                },
                "measureType": {
                    "$ref": "#/definitions/@arcgis.core.analysis.VolumeMeasurement.types.VolumeMeasureType",
                    "description": "Volume measure type."
                },
                "netVolume": {
                    "$ref": "#/definitions/@arcgis.core.core.quantity.Volume",
                    "description": "Difference between the cut volume and fill volume. A positive value indicates a surplus volume that needs to be removed."
                },
                "perimeter": {
                    "$ref": "#/definitions/@arcgis.core.core.quantity.Length",
                    "description": "The perimeter of the measured volume."
                },
                "totalVolume": {
                    "$ref": "#/definitions/@arcgis.core.core.quantity.Volume",
                    "description": "Sum of the cut volume and fill volume."
                }
            },
            "required": [
                "area",
                "cutVolume",
                "declaredClass",
                "destroyed",
                "fillVolume",
                "initialized",
                "measureType",
                "netVolume",
                "perimeter",
                "totalVolume"
            ],
            "type": "object"
        },
        "@arcgis.core.views.3d.analysis.VolumeMeasurementAnalysisView3D.VolumeMeasurementAnalysisView3D": {
            "$ref": "esri.views.3d.analysis.VolumeMeasurementAnalysisView3D"
        },
        "@arcgis.core.views.3d.environment.CloudyWeather.CloudyWeather": {
            "$ref": "esri.views.3d.environment.CloudyWeather"
        },
        "@arcgis.core.views.3d.environment.FoggyWeather.FoggyWeather": {
            "$ref": "esri.views.3d.environment.FoggyWeather"
        },
        "@arcgis.core.views.3d.environment.RainyWeather.RainyWeather": {
            "$ref": "esri.views.3d.environment.RainyWeather"
        },
        "@arcgis.core.views.3d.environment.SnowyWeather.SnowyWeather": {
            "$ref": "esri.views.3d.environment.SnowyWeather"
        },
        "@arcgis.core.views.3d.environment.SunLighting.SunLighting": {
            "$ref": "esri.views.3d.environment.SunLighting"
        },
        "@arcgis.core.views.3d.environment.SunnyWeather.SunnyWeather": {
            "$ref": "esri.views.3d.environment.SunnyWeather"
        },
        "@arcgis.core.views.3d.environment.VirtualLighting.VirtualLighting": {
            "$ref": "esri.views.3d.environment.VirtualLighting"
        },
        "@arcgis.core.views.3d.environment.types.LightingUnion": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@arcgis.core.views.3d.environment.SunLighting.SunLighting"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.views.3d.environment.VirtualLighting.VirtualLighting"
                }
            ]
        },
        "@arcgis.core.views.3d.environment.types.WeatherUnion": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@arcgis.core.views.3d.environment.CloudyWeather.CloudyWeather"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.views.3d.environment.FoggyWeather.FoggyWeather"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.views.3d.environment.RainyWeather.RainyWeather"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.views.3d.environment.SnowyWeather.SnowyWeather"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.views.3d.environment.SunnyWeather.SunnyWeather"
                }
            ]
        },
        "@arcgis.core.views.View.View": {
            "$ref": "esri.views.View"
        },
        "@arcgis.core.views.analysis.AreaMeasurement.types.AreaMeasurementResult": {
            "additionalProperties": false,
            "description": "Result obtained from an [AreaMeasurementAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/AreaMeasurementAnalysis/).",
            "properties": {
                "area": {
                    "$ref": "#/definitions/@arcgis.core.core.quantity.Area",
                    "description": "Area of the polygon."
                },
                "mode": {
                    "$ref": "#/definitions/@arcgis.core.views.analysis.types.MeasurementMode",
                    "description": "Specifies how the measurement is calculated. Where `\"euclidean\"` denotes that polygon area and perimeter are computed on a flat (or \"planar\") surface. Conversely, `\"geodesic\"` denotes that computations are performed on an ellipsoid.\n\n> [!WARNING] > > **Note** > > How the area and perimeter are computed depends on the view type, the spatial reference, and the measured perimeter. > > - In a [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/) (2D): >   - For **geographic coordinate systems** (GCS) and **Web Mercator**, measurements are calculated geodetically >     (on the ellipsoid). >   - For **projected coordinate systems** (PCS), apart from Web Mercator, the area and perimeter are always calculated >     in a Euclidean (in their respective PCS). > >  - In a [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/) (3D): >   - For **geographic coordinate systems** (GCS) and **Web Mercator**, short measurements use a >     Euclidean computation in an [ECEF](https://en.wikipedia.org/wiki/ECEF) (Earth-Centered, Earth-Fixed) coordinate >     system (or an equivalent on other planets). Specifically, if the measurement's perimeter is ≤ 100 km the analysis >     uses Euclidean calculations. If the perimeter is > 100 km, it uses geodetic calculations. >   - For **projected coordinate systems** (PCS), apart from Web Mercator, the area and perimeter are always calculated >     in a Euclidean (in their respective PCS)."
                },
                "perimeter": {
                    "$ref": "#/definitions/@arcgis.core.core.quantity.Length",
                    "description": "Perimeter length of the polygon."
                }
            },
            "required": [
                "area",
                "mode",
                "perimeter"
            ],
            "type": "object"
        },
        "@arcgis.core.views.analysis.DistanceMeasurement.types.DistanceMeasurementResult": {
            "additionalProperties": false,
            "description": "Result obtained from an [DistanceMeasurementAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/DistanceMeasurementAnalysis/).",
            "properties": {
                "length": {
                    "$ref": "#/definitions/@arcgis.core.core.quantity.Length",
                    "description": "Length of the polyline."
                },
                "mode": {
                    "$ref": "#/definitions/@arcgis.core.views.analysis.types.MeasurementMode",
                    "description": "Describes the mode in which the measurement is computed.   In `euclidean` mode, length is computed from a flat polyline with straight segments in   a [ECEF](https://en.wikipedia.org/wiki/ECEF) coordinate system.   In `geodesic` mode, the length is computed from a geodesic polyline in a WGS84 ellipsoid."
                }
            },
            "required": [
                "length",
                "mode"
            ],
            "type": "object"
        },
        "@arcgis.core.views.analysis.ElevationProfile.ElevationProfileResult.ElevationProfileResult": {
            "additionalProperties": false,
            "description": "Represents the result for each [profile line](https://developers.arcgis.com/javascript/latest/references/core/analysis/ElevationProfile/ElevationProfileLine/) configured in the [ElevationProfileAnalysis.profiles](https://developers.arcgis.com/javascript/latest/references/core/analysis/ElevationProfileAnalysis/#profiles) collection. This result is initialized by the analysis view and is dynamically updated as the elevation profile is generated.",
            "properties": {
                "available": {
                    "description": "Indicates whether the line is available. Unavailable lines are not sampled or displayed, and the corresponding [samples](https://developers.arcgis.com/javascript/latest/references/core/views/analysis/ElevationProfile/ElevationProfileResult/#samples) and [statistics](https://developers.arcgis.com/javascript/latest/references/core/views/analysis/ElevationProfile/ElevationProfileResult/#statistics) will be empty.\n\nAvailability rules for each line type:\n- `ground`: Available if any ground layers are visible.\n- `input`: Always available.\n- `query`: Available if the source is visible and any layers in that source (e.g. ground elevation layers) are also visible.\n- `scene`: Always available in 3D.",
                    "type": "boolean"
                },
                "declaredClass": {
                    "description": "The name of the class. The declared class name is formatted as `esri.folder.className`.",
                    "type": "string"
                },
                "destroyed": {
                    "type": "boolean"
                },
                "initialized": {
                    "description": "Set to `true` once the initialize function has executed.",
                    "type": "boolean"
                },
                "profile": {
                    "$ref": "#/definitions/@arcgis.core.analysis.ElevationProfile.types.ElevationProfileLineUnion",
                    "description": "The [profile line](https://developers.arcgis.com/javascript/latest/references/core/analysis/ElevationProfileAnalysis/#profiles) whose elevation is represented by this result."
                },
                "progress": {
                    "description": "Represents the progress of the elevation profile generation, ranging from 0 to 1.",
                    "type": "number"
                },
                "samples": {
                    "description": "Contains the samples that make up the elevation profile. Each sample represents a point along the profile.\n\nThe distance and elevation values are given in the effective units specified in [ElevationProfileAnalysisView2D.effectiveDisplayUnits](https://developers.arcgis.com/javascript/latest/references/core/views/2d/analysis/ElevationProfileAnalysisView2D/#effectiveDisplayUnits) or [ElevationProfileAnalysisView3D.effectiveDisplayUnits](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/ElevationProfileAnalysisView3D/#effectiveDisplayUnits).",
                    "items": {
                        "$ref": "#/definitions/@arcgis.core.views.analysis.ElevationProfile.types.ElevationProfileSample"
                    },
                    "type": "array"
                },
                "statistics": {
                    "$ref": "#/definitions/@arcgis.core.views.analysis.ElevationProfile.types.ElevationProfileStatistics",
                    "description": "Provides statistics about the elevation profile, including minimum, maximum, and average elevation values, elevation gain and loss, and slope information.\n\nThe distance and elevation values are given in the effective units specified in [ElevationProfileAnalysisView2D.effectiveDisplayUnits](https://developers.arcgis.com/javascript/latest/references/core/views/2d/analysis/ElevationProfileAnalysisView2D/#effectiveDisplayUnits) or [ElevationProfileAnalysisView3D.effectiveDisplayUnits](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/ElevationProfileAnalysisView3D/#effectiveDisplayUnits)."
                }
            },
            "required": [
                "available",
                "declaredClass",
                "destroyed",
                "initialized",
                "profile",
                "progress",
                "samples",
                "statistics"
            ],
            "type": "object"
        },
        "@arcgis.core.views.analysis.ElevationProfile.types.ElevationProfileSample": {
            "$ref": "esri.views.analysis.ElevationProfile.types"
        },
        "@arcgis.core.views.analysis.ElevationProfile.types.ElevationProfileStatistics": {
            "$ref": "esri.views.analysis.ElevationProfile.types"
        },
        "@arcgis.core.views.analysis.types.AnalysisViewUnion": {
            "$ref": "esri.views.analysis.types"
        },
        "@arcgis.core.views.analysis.types.MeasurementMode": {
            "$ref": "esri.views.analysis.types"
        },
        "@arcgis.core.views.layers.LayerView.LayerView": {
            "$ref": "esri.views.layers.LayerView"
        },
        "@arcgis.core.views.layers.StreamLayerView.StreamUpdateRateEvent": {
            "additionalProperties": false,
            "description": "The [update-event](https://developers.arcgis.com/javascript/latest/references/core/views/layers/StreamLayerView/#event-update-rate)'s payload. The update rate of features being processed on the client and pushed from the server.",
            "properties": {
                "client": {
                    "description": "The client update rate per second. Returns number of features being processed on the client.",
                    "type": "number"
                },
                "websocket": {
                    "description": "Update rate per second for websocket/service. Returns number of features being pushed from the server.",
                    "type": "number"
                }
            },
            "required": [
                "client",
                "websocket"
            ],
            "type": "object"
        },
        "@arcgis.core.views.types.AnalysisViewCreateErrorEvent": {
            "additionalProperties": false,
            "properties": {
                "analysis": {
                    "$ref": "#/definitions/@arcgis.core.analysis.Analysis.Analysis",
                    "description": "The analysis for which the `analysisView` was created."
                },
                "error": {
                    "$ref": "#/definitions/Error",
                    "description": "An error object describing why the analysis view could not be created."
                }
            },
            "required": [
                "analysis",
                "error"
            ],
            "type": "object"
        },
        "@arcgis.core.views.types.AnalysisViewCreateEvent": {
            "additionalProperties": false,
            "properties": {
                "analysis": {
                    "$ref": "#/definitions/@arcgis.core.analysis.Analysis.Analysis",
                    "description": "The analysis for which the `analysisView` was created."
                },
                "analysisView": {
                    "$ref": "#/definitions/@arcgis.core.views.analysis.types.AnalysisViewUnion",
                    "description": "The analysis view that was created."
                }
            },
            "required": [
                "analysis",
                "analysisView"
            ],
            "type": "object"
        },
        "@arcgis.core.views.types.AnalysisViewDestroyEvent": {
            "additionalProperties": false,
            "properties": {
                "analysis": {
                    "$ref": "#/definitions/@arcgis.core.analysis.Analysis.Analysis",
                    "description": "The analysis whose analysis view was destroyed."
                },
                "analysisView": {
                    "$ref": "#/definitions/@arcgis.core.views.analysis.types.AnalysisViewUnion",
                    "description": "The analysis view that was destroyed."
                }
            },
            "required": [
                "analysis",
                "analysisView"
            ],
            "type": "object"
        },
        "@arcgis.core.webdoc.applicationProperties.Viewing.Viewing": {
            "$ref": "esri.webdoc.applicationProperties.Viewing"
        },
        "@arcgis.core.webscene.ApplicationProperties.ApplicationProperties": {
            "additionalProperties": false,
            "description": "Represents configuration of application and UI elements.",
            "properties": {
                "declaredClass": {
                    "description": "The name of the class. The declared class name is formatted as `esri.folder.className`.",
                    "type": "string"
                },
                "destroyed": {
                    "type": "boolean"
                },
                "initialized": {
                    "description": "Set to `true` once the initialize function has executed.",
                    "type": "boolean"
                },
                "viewing": {
                    "$ref": "#/definitions/@arcgis.core.webdoc.applicationProperties.Viewing.Viewing",
                    "description": "View-specific properties of application and UI elements."
                }
            },
            "required": [
                "declaredClass",
                "destroyed",
                "initialized",
                "viewing"
            ],
            "type": "object"
        },
        "@arcgis.core.webscene.support.FeatureReferenceGlobalId.FeatureReferenceGlobalId": {
            "$ref": "esri.webscene.support.FeatureReferenceGlobalId"
        },
        "@arcgis.core.webscene.support.FeatureReferenceObjectId.FeatureReferenceObjectId": {
            "$ref": "esri.webscene.support.FeatureReferenceObjectId"
        },
        "@arcgis.core.webscene.types.FeatureReferenceIdUnion": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@arcgis.core.webscene.support.FeatureReferenceGlobalId.FeatureReferenceGlobalId"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.webscene.support.FeatureReferenceObjectId.FeatureReferenceObjectId"
                }
            ]
        },
        "@arcgis.core.widgets.Popup.types.ActionEvent": {
            "additionalProperties": false,
            "properties": {
                "action": {
                    "$ref": "#/definitions/@arcgis.core.widgets.Popup.types.PopupAction",
                    "description": "The action clicked by the user. For a description of this object and a specification of its properties, see the [Popup.actions](https://developers.arcgis.com/javascript/latest/references/core/widgets/Popup/#actions) property of this class."
                }
            },
            "required": [
                "action"
            ],
            "type": "object"
        },
        "@arcgis.core.widgets.Popup.types.PopupAction": {
            "$ref": "esri.widgets.Popup.types"
        },
        "@vertigis.arcgis-extensions.FailureMode.FailureMode": {
            "description": "Possible modes of failure when there is an error resolving or initializing an item.",
            "enum": [
                "error",
                "ignore",
                "warn"
            ],
            "type": "string"
        },
        "@vertigis.arcgis-extensions.data._Relationship.RelationshipType": {
            "description": "The type of the Relationship.",
            "type": "string"
        },
        "@vertigis.arcgis-extensions.data._TableExtension.TableReference": {
            "additionalProperties": false,
            "description": "Matches an existing table in a map.",
            "properties": {
                "id": {
                    "description": "The table's ID.",
                    "type": "string"
                },
                "title": {
                    "description": "The table's title.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "@vertigis.arcgis-extensions.mapping.BasemapExtension.BasemapProperties": {
            "additionalProperties": false,
            "description": "Properties that can be specified for the {@link mapping /BasemapExtension!BasemapExtensionProperties.basemap} property.",
            "properties": {
                "baseMapLayers": {
                    "description": "An array of BasemapLayer objects defining the basemaps used in the web map/web scene.",
                    "items": {
                        "$ref": "#/definitions/BasemapLayerJson"
                    },
                    "type": "array"
                },
                "elevationLayers": {
                    "description": "Deprecated, use ground.layers instead. An array of elevationLayer objects defining the basemaps used in the web scene.",
                    "items": {
                        "$ref": "#/definitions/ElevationLayerJson"
                    },
                    "type": "array"
                },
                "id": {
                    "description": "An identifier used to refer to the basemap when referencing it elsewhere.\n\nNOTE: Only available in web scenes!",
                    "type": "string"
                },
                "title": {
                    "description": "String title for the basemap that can be used in a table of contents. If not defined, then it takes the title of the first baseMapLayer in the array.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "@vertigis.arcgis-extensions.mapping.MapExtension.ViewMode": {
            "description": "Viewing mode for a map (2D map or 3D scene).",
            "enum": [
                "map",
                "scene"
            ],
            "type": "string"
        },
        "@vertigis.arcgis-extensions.mapping.MapExtension.WebMapLike": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@arcgis.core.portal.PortalItem.PortalItem"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.ItemJson.ItemJson"
                },
                {
                    "$ref": "@vertigis.arcgis-extensions.PortalUri.PortalUri"
                },
                {
                    "$ref": "@vertigis.arcgis-extensions.utilities.uri.Uri"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.WebMapJson.WebMapJson"
                },
                {
                    "type": "string"
                }
            ],
            "description": "A web map definition or reference."
        },
        "@vertigis.arcgis-extensions.mapping.MapExtension.WebSceneLike": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@arcgis.core.portal.PortalItem.PortalItem"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.ItemJson.ItemJson"
                },
                {
                    "$ref": "@vertigis.arcgis-extensions.PortalUri.PortalUri"
                },
                {
                    "$ref": "@vertigis.arcgis-extensions.utilities.uri.Uri"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.WebSceneJson.WebSceneJson"
                },
                {
                    "type": "string"
                }
            ],
            "description": "A web scene definition or reference."
        },
        "@vertigis.arcgis-extensions.mapping._LayerExtension.LayerReference": {
            "additionalProperties": false,
            "description": "Matches an existing layer.",
            "properties": {
                "id": {
                    "description": "The layer's ID.",
                    "type": "string"
                },
                "path": {
                    "description": "The path to the geodatabase used by an MMAP layer. Mobile only.",
                    "type": "string"
                },
                "subtype": {
                    "description": "The Layer's type, used for Layer types with multiple possible layer extension mappings.",
                    "type": "string"
                },
                "title": {
                    "description": "The layer's title.",
                    "type": "string"
                },
                "url": {
                    "description": "The layer's url.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "@vertigis.arcgis-extensions.support.Action.BoundAction": {
            "additionalProperties": false,
            "description": "An action that is bound to arguments.",
            "properties": {
                "arguments": {
                    "description": "Arguments for the action. Can either be a primitive value (string, number, boolean), or a plain JSON object containing named arguments."
                },
                "name": {
                    "description": "Determines which action to perform. It is up to the calling application how it transforms an action name into actual executable code.",
                    "type": "string"
                }
            },
            "required": [
                "arguments",
                "name"
            ],
            "type": "object"
        },
        "@vertigis.arcgis-extensions.support.Action.CompositeAction": {
            "description": "A composite action that is made up of a sequence of one or more actions. The intent is that the application should execute these in the given order. If any of the actions produces an output, that should be used as the input arguments for all subsequent actions.",
            "items": {
                "$ref": "#/definitions/SimpleAction"
            },
            "type": "array"
        },
        "@vertigis.arcgis-extensions.support.InitializableBase.InitializeWarningEvent": {
            "additionalProperties": false,
            "description": "Raised when there is an error initializing an {@link support /InitializableBase!InitializableBase}.",
            "properties": {
                "error": {
                    "$ref": "@vertigis.arcgis-extensions.support.InitializeError.InitializeError",
                    "description": "Original error that occurred."
                },
                "target": {
                    "$ref": "@vertigis.arcgis-extensions.support.InitializableBase.InitializableBase",
                    "description": "The {@link support /InitializableBase!InitializableBase} that raised the event."
                }
            },
            "required": [
                "error",
                "target"
            ],
            "type": "object"
        },
        "@vertigis.arcgis-extensions.utilities.ObservableMap.MapAfterItemEvent": {
            "additionalProperties": false,
            "description": "Raised after an item is added or removed from an {@link ObservableMap}.",
            "properties": {
                "item": {
                    "$ref": "T_37",
                    "description": "The item to add or remove from the collection."
                },
                "target": {
                    "$ref": "@vertigis.arcgis-extensions.utilities.collection.AfterItemChangeEvent.TCollection",
                    "description": "The collection like object that raised the event."
                }
            },
            "required": [
                "item",
                "target"
            ],
            "type": "object"
        },
        "@vertigis.arcgis-extensions.utilities.ObservableMap.MapChangeEvent": {
            "additionalProperties": false,
            "description": "Raised when items are added or removed from an {@link ObservableMap}.",
            "properties": {
                "added": {
                    "description": "The items that were added.",
                    "items": {
                        "items": [
                            {
                                "type": "string"
                            },
                            {}
                        ],
                        "maxItems": 2,
                        "minItems": 2,
                        "type": "array"
                    },
                    "type": "array"
                },
                "removed": {
                    "description": "The items that were removed.",
                    "items": {
                        "items": [
                            {
                                "type": "string"
                            },
                            {}
                        ],
                        "maxItems": 2,
                        "minItems": 2,
                        "type": "array"
                    },
                    "type": "array"
                },
                "target": {
                    "$ref": "@vertigis.arcgis-extensions.utilities.ObservableMap.ObservableMap",
                    "description": "The {@link ObservableMap} that raised the event."
                }
            },
            "required": [
                "added",
                "removed",
                "target"
            ],
            "type": "object"
        },
        "ArcGISPortalIdentity": {
            "additionalProperties": false,
            "type": "object"
        },
        "AttachmentInputUnion": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@arcgis.core.form.elements.inputs.attachments.AudioInput.AudioInput"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.form.elements.inputs.attachments.DocumentInput.DocumentInput"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.form.elements.inputs.attachments.ImageInput.ImageInput"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.form.elements.inputs.attachments.SignatureInput.SignatureInput"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.form.elements.inputs.attachments.VideoInput.VideoInput"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.form.elements.inputs.attachments.AttachmentInput.AttachmentInput"
                }
            ]
        },
        "AuthenticationType": {
            "description": "A type of authentication.",
            "enum": [
                "Network",
                "OAuth2",
                "Token",
                "Unknown"
            ],
            "type": "string"
        },
        "BasemapLayerJson": {
            "anyOf": [
                {
                    "$ref": "#/definitions/esri.rest-api.ImageServiceLayerJson.ImageServiceLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.ImageServiceVectorLayerJson.ImageServiceVectorLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.MapServiceLayerJson.MapServiceLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SceneLayerJson.SceneLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.TiledImageServiceLayerJson.TiledImageServiceLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.TiledMapServiceLayerJson.TiledMapServiceLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.VectorTileLayerJson.VectorTileLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.WebTileLayerJson.WebTileLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.WMSLayerJson.WMSLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.BingLayerJson.BingLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.OpenStreetMapLayerJson.OpenStreetMapLayerJson"
                }
            ],
            "description": "A base map layer in a web map/scene."
        },
        "BuildingSublayerUnion": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@arcgis.core.layers.buildingSublayers.BuildingComponentSublayer.BuildingComponentSublayer"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.layers.buildingSublayers.BuildingGroupSublayer.BuildingGroupSublayer"
                }
            ]
        },
        "CIMSymbolLayerUnion": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.cim.types.CIMGradientFill"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.cim.types.CIMGradientStroke"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.cim.types.CIMHatchFill"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.cim.types.CIMPictureMarker"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.cim.types.CIMVectorMarker"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.cim.types.CIMPictureFill"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.cim.types.CIMPictureStroke"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.cim.types.CIMSolidFill"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.cim.types.CIMSolidStroke"
                }
            ],
            "description": "Represents a symbol layer, the component that makes up a symbol. A symbol layer is represented by a marker, stroke, or fill symbol layer. Symbol layers are the building blocks of CIM symbols, they combine to make rich graphical depictions. You can configure the shape, color, texture, size, position, etc of each symbol layer, and combine multiple symbol layers to create your desired symbol. The symbol layers are typically displayed in the order they are defined, so the first symbol layer will be displayed on top, and the last symbol layer will be displayed on bottom.\n\n> [!WARNING] > > **Known Limitations** > > CIMSymbols within a FeatureLayer will render the symbol layers in the following order from top to bottom for performance reasons, regardless of the order they are defined within the symbol. > 1. CIMTextSymbol embedded within a CIMVectorMarker symbol layer > 2. Marker symbols - CIMVectorMarker and CIMPictureMarker > 3. Stroke symbols - CIMSolidStroke, CIMPictureStroke, and CIMGradientStroke > 4. Fill symbols - CIMSolidFill, CIMHatchFill, CIMPictureFill, and CIMGradientFill"
        },
        "CIMSymbolUnion": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.cim.types.CIMLineSymbol"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.cim.types.CIMPointSymbol"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.cim.types.CIMPolygonSymbol"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.cim.types.CIMTextSymbol"
                }
            ],
            "description": "Represents a union type of all CIM symbol types."
        },
        "ColorJson": {
            "anyOf": [
                {
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 4,
                    "minItems": 4,
                    "type": "array"
                },
                {
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 3,
                    "minItems": 3,
                    "type": "array"
                }
            ],
            "description": "Color is represented as a four-element array. The four elements represent values for red, green, blue, and alpha in that order. Values range from 0 through 255. If color is undefined for a symbol, the color value is null. See {@link https://developers.arcgis.com/web-map-specification/objects/color/} {@link https://developers.arcgis.com/web-scene-specification/objects/color/}."
        },
        "DataSourceJson": {
            "anyOf": [
                {
                    "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.JoinTableDataSourceJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.QueryTableDataSourceJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.RasterDataSourceJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.TableDataSourceJson"
                }
            ],
            "description": "This object applies if the layerDefinition source is set to DynamicDataLayer. See {@link https://developers.arcgis.com/web-map-specification/objects/dataSource/} {@link https://developers.arcgis.com/web-scene-specification/objects/dataSource/}."
        },
        "DomainJson": {
            "anyOf": [
                {
                    "$ref": "#/definitions/esri.rest-api.DomainJson.CodedValueDomainJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.DomainJson.InheritedDomainJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.DomainJson.RangeDomainJson"
                }
            ],
            "description": "A domain specifies the set of valid values for a field.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/domain/} {@link https://developers.arcgis.com/web-scene-specification/objects/domain/}."
        },
        "DomainUnion": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@arcgis.core.layers.support.CodedValueDomain.CodedValueDomain"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.layers.support.InheritedDomain.InheritedDomain"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.layers.support.RangeDomain.RangeDomain"
                }
            ],
            "description": "Supported domain types. Domains are used to constrain allowable values of a layer."
        },
        "EdgesJson": {
            "anyOf": [
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.SketchEdgesJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.SolidEdgesJson"
                }
            ],
            "description": "Edges describe additional styles applied to visually important edges of 3D objects."
        },
        "EffectFunctionJson": {
            "anyOf": [
                {
                    "$ref": "#/definitions/esri.rest-api.LayerJson.HueRotateEffectFunctionJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.LayerJson.BlurEffectFunctionJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.LayerJson.DropShadowEffectFunctionJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.LayerJson.BloomEffectFunctionJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.LayerJson.BrightnessEffectFunctionJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.LayerJson.ContrastEffectFunctionJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.LayerJson.GrayscaleEffectFunctionJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.LayerJson.InvertEffectFunctionJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.LayerJson.OpacityEffectFunctionJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.LayerJson.SaturateEffectFunctionJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.LayerJson.SepiaEffectFunctionJson"
                }
            ],
            "description": "Effect functions that can be combined to build a layer effect."
        },
        "EffectJson": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.LayerJson.ScaleDependentEffectJson"
                    },
                    "type": "array"
                },
                {
                    "items": {
                        "$ref": "#/definitions/EffectFunctionJson"
                    },
                    "type": "array"
                }
            ],
            "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
        },
        "ElevationLayerJson": {
            "anyOf": [
                {
                    "$ref": "#/definitions/esri.rest-api.RasterDataElevationLayerJson.RasterDataElevationLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.TiledElevationServiceLayerJson.TiledElevationServiceLayerJson"
                }
            ],
            "description": "Elevation layers that can be used in a web scene's ground."
        },
        "ElevationLayerUnion": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@arcgis.core.layers.ElevationLayer.ElevationLayer"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.layers.BaseElevationLayer.BaseElevationLayer"
                }
            ],
            "description": "Union of supported ground elevation layer types."
        },
        "ElevationProfileLineUnion": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@arcgis.core.analysis.ElevationProfile.ElevationProfileLineGround.ElevationProfileLineGround"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.analysis.ElevationProfile.ElevationProfileLineInput.ElevationProfileLineInput"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.analysis.ElevationProfile.ElevationProfileLineQuery.ElevationProfileLineQuery"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.analysis.ElevationProfile.ElevationProfileLineScene.ElevationProfileLineScene"
                }
            ],
            "description": "Union of all supported elevation profile lines."
        },
        "Error": {
            "additionalProperties": false,
            "properties": {
                "cause": {},
                "message": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "stack": {
                    "type": "string"
                }
            },
            "required": [
                "message",
                "name"
            ],
            "type": "object"
        },
        "FeatureReductionJson": {
            "anyOf": [
                {
                    "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.FeatureReductionClusterJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.FeatureReductionSelectionJson"
                }
            ],
            "description": "Feature reductions declutter the screen by hiding features that would otherwise intersect with other features on screen."
        },
        "FeatureReductionUnion": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@arcgis.core.layers.support.FeatureReductionBinning.FeatureReductionBinning"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.layers.support.FeatureReductionCluster.FeatureReductionCluster"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.layers.support.FeatureReductionSelection.FeatureReductionSelection"
                }
            ]
        },
        "FieldFormatUnion": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@arcgis.core.layers.support.DateTimeFieldFormat.DateTimeFieldFormat"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.layers.support.NumberFieldFormat.NumberFieldFormat"
                }
            ],
            "description": "Supported field formatting types."
        },
        "FilterModeJson": {
            "anyOf": [
                {
                    "$ref": "#/definitions/esri.rest-api.BuildingSceneLayerJson.FilterModeSolidJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.BuildingSceneLayerJson.FilterModeWireFrameJson"
                }
            ],
            "description": "Filter mode represents the way elements draw when participating in a filter block."
        },
        "FormElementUnion": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@arcgis.core.form.elements.FieldElement.FieldElement"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.form.elements.AttachmentElement.AttachmentElement"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.form.elements.RelationshipElement.RelationshipElement"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.form.elements.TextElement.TextElement"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.form.elements.GroupElement.GroupElement"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.form.elements.UtilityNetworkAssociationsElement.UtilityNetworkAssociationsElement"
                }
            ],
            "description": "Form element types.\n\n> [!CAUTION] > > * The `AttachmentElement` is not yet fully supported by the [FeatureForm](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureForm/) widget."
        },
        "GeolocateAccuracyChangedEventArgs": {
            "additionalProperties": false,
            "description": "Arguments for the \"geolocation.accuracy-changed\" event.",
            "properties": {
                "accuracy": {
                    "description": "The current geolocation accuracy, in meters.",
                    "type": "number"
                }
            },
            "required": [
                "accuracy"
            ],
            "type": "object"
        },
        "GeolocationEvent": {
            "additionalProperties": false,
            "description": "Arguments for geolocation events such as \"geolocation.position-acquired\" and \"geolocation.position-lost\".",
            "properties": {
                "gnssDeviceConnectionInfo": {
                    "$ref": "#/definitions/GnssDeviceConnectionInfo",
                    "description": "The GNSS source associated with the raised geolocation event. Mobile only."
                }
            },
            "type": "object"
        },
        "GeolocationStatusChangedEventArgs": {
            "additionalProperties": false,
            "description": "Arguments for the \"geolocation.status-changed\" event.",
            "properties": {
                "isEnabled": {
                    "description": "Indicates whether the geolocation is enabled.",
                    "type": "boolean"
                }
            },
            "required": [
                "isEnabled"
            ],
            "type": "object"
        },
        "GeometryJson": {
            "anyOf": [
                {
                    "$ref": "#/definitions/esri.rest-api.GeometryJson.PointJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.GeometryJson.MultipointJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.GeometryJson.PolylineJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.GeometryJson.PolygonJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.GeometryJson.ExtentJson"
                }
            ],
            "description": "A geometry as defined in the ArcGIS REST and web map specifications.\n\nSee {@link http://resources.arcgis.com/en/help/rest/apiref/geometry.html}. See {@link https://developers.arcgis.com/web-map-specification/objects/geometry/} {@link https://developers.arcgis.com/web-map-specification/objects/geometryType/}."
        },
        "GeometryUnion": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@arcgis.core.geometry.Extent.Extent"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.geometry.Multipoint.Multipoint"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.geometry.Point.Point"
                },
                {
                    "$ref": "T_6"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.geometry.Polyline.Polyline"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.geometry.Mesh.Mesh"
                }
            ],
            "description": "Union of all geometries."
        },
        "GnssDeviceConnectionInfo": {
            "additionalProperties": false,
            "description": "A geolocation source.",
            "properties": {
                "deviceFullName": {
                    "description": "Full name of the GNSS device.",
                    "type": "string"
                },
                "deviceName": {
                    "description": "Name of the GNSS device.",
                    "type": "string"
                },
                "deviceType": {
                    "$ref": "#/definitions/GnssDeviceType",
                    "description": "The type of the device. Options are Integrated, Bluetooth, USB, and Emulator."
                },
                "settings": {
                    "$ref": "GnssDeviceSettings",
                    "description": "The device settings, including the correction service's spatial reference, the desired datum transformation, and the device's antenna height."
                }
            },
            "required": [
                "deviceFullName",
                "deviceName",
                "deviceType",
                "settings"
            ],
            "type": "object"
        },
        "GnssDeviceType": {
            "enum": [
                "bluetooth",
                "emulator",
                "integrated",
                "usb"
            ],
            "type": "string"
        },
        "HasMaps": {
            "additionalProperties": false,
            "description": "Defines an object that has a `maps` property.",
            "properties": {
                "maps": {
                    "$ref": "#/definitions/MapsLike",
                    "description": "Map(s) to use for the command/operation."
                }
            },
            "type": "object"
        },
        "LayerEventArgs": {
            "additionalProperties": false,
            "description": "Arguments for the \"layers.visibility-changed\" event.",
            "properties": {
                "layerContent": {
                    "$ref": "ILayerContent",
                    "description": "The layer whose visibility was changed. Mobile only."
                },
                "layers": {
                    "$ref": "#/definitions/LayersLike",
                    "description": "The layer(s) whose visibility was changed. Web only."
                }
            },
            "type": "object"
        },
        "LayerLike": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@vertigis.arcgis-extensions.mapping._LayerExtension.LayerReference"
                },
                {
                    "$ref": "#/definitions/@vertigis.arcgis-extensions.data._TableExtension.TableReference"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.layers.Layer.Layer"
                },
                {
                    "$ref": "@vertigis.arcgis-extensions.mapping._LayerExtension.LayerExtension"
                },
                {
                    "$ref": "esri.SublayerLike"
                },
                {
                    "$ref": "@vertigis.arcgis-extensions.mapping._SublayerExtension.SublayerExtension"
                },
                {
                    "$ref": "@vertigis.arcgis-extensions.data._TableExtension.TableExtension"
                },
                {
                    "type": "string"
                }
            ],
            "description": "A (sub)layer extension, or an object that is convertible to one."
        },
        "LayersLike": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@vertigis.arcgis-extensions.mapping._LayerExtension.LayerReference"
                },
                {
                    "$ref": "#/definitions/@vertigis.arcgis-extensions.data._TableExtension.TableReference"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.layers.Layer.Layer"
                },
                {
                    "$ref": "@vertigis.arcgis-extensions.mapping._LayerExtension.LayerExtension"
                },
                {
                    "$ref": "esri.SublayerLike"
                },
                {
                    "$ref": "@vertigis.arcgis-extensions.mapping._SublayerExtension.SublayerExtension"
                },
                {
                    "$ref": "@vertigis.arcgis-extensions.data._TableExtension.TableExtension"
                },
                {
                    "items": {
                        "$ref": "#/definitions/LayerLike"
                    },
                    "type": "array"
                },
                {
                    "type": "string"
                }
            ],
            "description": "One or more objects that are convertible to layer extensions."
        },
        "LightingJson": {
            "anyOf": [
                {
                    "$ref": "#/definitions/esri.rest-api.EnvironmentJson.SunLightingJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.EnvironmentJson.VirtualLightingJson"
                }
            ],
            "description": "Settings for defining the lighting of the scene."
        },
        "MapEvent": {
            "additionalProperties": false,
            "description": "Arguments for the various map events.",
            "properties": {
                "mapExtension": {
                    "$ref": "@vertigis.arcgis-extensions.mapping.MapExtension.MapExtension",
                    "description": "The map extension for which the event was generated. This property is required in VertiGIS Studio Mobile. Mobile only."
                },
                "maps": {
                    "$ref": "#/definitions/MapsLike",
                    "description": "The map from which the event was generated. Web only."
                }
            },
            "type": "object"
        },
        "MapInitializedEvent": {
            "additionalProperties": false,
            "description": "Event args for the map.initialized event.",
            "properties": {
                "loadTime": {
                    "$ref": "TimeSpan",
                    "description": "The amount of time that the map took to load. Mobile only."
                },
                "mapExtension": {
                    "$ref": "@vertigis.arcgis-extensions.mapping.MapExtension.MapExtension",
                    "description": "The map extension for which the event was generated. This property is required in VertiGIS Studio Mobile. Mobile only."
                },
                "maps": {
                    "$ref": "#/definitions/MapsLike",
                    "description": "The map from which the event was generated. Web only."
                }
            },
            "required": [
                "loadTime"
            ],
            "type": "object"
        },
        "MapsLike": {
            "anyOf": [
                {
                    "$ref": "@vertigis.arcgis-extensions.mapping.MapExtension.MapExtension"
                },
                {
                    "items": {
                        "$ref": "@vertigis.arcgis-extensions.mapping.MapExtension.MapExtension"
                    },
                    "type": "array"
                }
            ],
            "description": "One or map extensions."
        },
        "NestableAttachmentInputUnion": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@arcgis.core.form.elements.inputs.attachments.AudioInput.AudioInput"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.form.elements.inputs.attachments.DocumentInput.DocumentInput"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.form.elements.inputs.attachments.ImageInput.ImageInput"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.form.elements.inputs.attachments.SignatureInput.SignatureInput"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.form.elements.inputs.attachments.VideoInput.VideoInput"
                }
            ]
        },
        "NestableFormElementUnion": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@arcgis.core.form.elements.FieldElement.FieldElement"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.form.elements.RelationshipElement.RelationshipElement"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.form.elements.TextElement.TextElement"
                }
            ],
            "description": "A union of the types of [form](https://developers.arcgis.com/javascript/latest/references/core/form/FormTemplate/) elements that may be included in a [GroupElement](https://developers.arcgis.com/javascript/latest/references/core/form/elements/GroupElement/)."
        },
        "OperationalLayerJson": {
            "anyOf": [
                {
                    "$ref": "#/definitions/esri.rest-api.AnnotationLayerJson.AnnotationLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.BuildingSceneLayerJson.BuildingSceneLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.CSVLayerJson.CSVLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.FeatureLayerJson.FeatureLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.GeoJSONLayerJson.GeoJSONLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.GeoRSSLayerJson.GeoRSSLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.GroupLayerJson.GroupLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.ImageServiceLayerJson.ImageServiceLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.ImageServiceVectorLayerJson.ImageServiceVectorLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.IntegratedMeshLayerJson.IntegratedMeshLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.KMLLayerJson.KMLLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.MediaLayerJson.MediaLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.MapServiceLayerJson.MapServiceLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.PointCloudLayerJson.PointCloudLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SceneLayerJson.SceneLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.StreamLayerJson.StreamLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SubtypeGroupLayerJson.SubtypeGroupLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.TiledImageServiceLayerJson.TiledImageServiceLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.TiledMapServiceLayerJson.TiledMapServiceLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.VectorTileLayerJson.VectorTileLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.WebTileLayerJson.WebTileLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.WFSLayerJson.WFSLayerJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.WMSLayerJson.WMSLayerJson"
                }
            ],
            "description": "An operational layer in a web map/scene."
        },
        "ParquetGeometryEncodingUnion": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@arcgis.core.layers.support.ParquetGeometryEncodingLocation.ParquetGeometryEncodingLocation"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.layers.support.ParquetGeometryEncodingWkb.ParquetGeometryEncodingWkb"
                }
            ],
            "description": "Supported Parquet geometry encoding types."
        },
        "PointCloudFilterJson": {
            "anyOf": [
                {
                    "$ref": "#/definitions/esri.rest-api.DrawingInfoJson.PointCloudBitfieldFilterJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.DrawingInfoJson.PointCloudReturnFilterJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.DrawingInfoJson.PointCloudValueFilterJson"
                }
            ],
            "description": "Filters applied to the pointCloud which will hide a point.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/pointCloudFilter/}."
        },
        "PopupPositionResult": {
            "enum": [
                "bottom-center",
                "bottom-left",
                "bottom-right",
                "top-center",
                "top-left",
                "top-right"
            ],
            "type": "string"
        },
        "PortalType": {
            "description": "The type of Portal.",
            "enum": [
                "AGOL",
                "ArcGISEnterprise"
            ],
            "type": "string"
        },
        "PrintErrorEventArgs": {
            "additionalProperties": false,
            "description": "Arguments for the printing.print-error event.",
            "properties": {
                "downloadLogUrl": {
                    "description": "The URL from which to download the print log created by the engine.",
                    "type": "string"
                },
                "errorCode": {
                    "description": "The HTTP status code associated with the error, if it's a HTTP error.",
                    "type": "number"
                },
                "instanceId": {
                    "description": "A unique ID to track the running of this print.",
                    "type": "string"
                },
                "message": {
                    "description": "The error message.",
                    "type": "string"
                },
                "printTemplateId": {
                    "description": "The ID of the print template being used.",
                    "type": "string"
                }
            },
            "required": [
                "instanceId",
                "message",
                "printTemplateId"
            ],
            "type": "object"
        },
        "PrintFinishedEventArgs": {
            "additionalProperties": false,
            "description": "Arguments for the printing.print-finished event.",
            "properties": {
                "downloadLogUrl": {
                    "description": "The URL from which to download the print log created by the engine.",
                    "type": "string"
                },
                "downloadUrl": {
                    "description": "The URL from which to download the print.",
                    "type": "string"
                },
                "instanceId": {
                    "description": "A unique ID to track the running of this print.",
                    "type": "string"
                },
                "printTemplateId": {
                    "description": "The ID of the print template being used.",
                    "type": "string"
                }
            },
            "required": [
                "downloadUrl",
                "instanceId",
                "printTemplateId"
            ],
            "type": "object"
        },
        "PrintProgressEventArgs": {
            "additionalProperties": false,
            "description": "Arguments for the printing.print-progress event.",
            "properties": {
                "instanceId": {
                    "description": "A unique ID to track the running of this print.",
                    "type": "string"
                },
                "printTemplateId": {
                    "description": "The ID of the print template being used.",
                    "type": "string"
                }
            },
            "required": [
                "instanceId",
                "printTemplateId"
            ],
            "type": "object"
        },
        "PrintStartedEventArgs": {
            "additionalProperties": false,
            "description": "Arguments for the printing.print-started event.",
            "properties": {
                "instanceId": {
                    "description": "A unique ID to track the running of this print.",
                    "type": "string"
                },
                "printTemplateId": {
                    "description": "The ID of the print template being used.",
                    "type": "string"
                },
                "title": {
                    "description": "The title of the print.",
                    "type": "string"
                }
            },
            "required": [
                "instanceId",
                "printTemplateId"
            ],
            "type": "object"
        },
        "RendererJson": {
            "anyOf": [
                {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.ClassBreaksRendererJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.HeatmapRendererJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.PointCloudClassBreaksRendererJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.PointCloudRGBRendererJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.PointCloudStretchRendererJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.PointCloudUniqueValueRendererJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.PredominanceRendererJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.SimpleRendererJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.TemporalRendererJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.UniqueValueFromStyleRendererJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.UniqueValueRendererJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.VectorFieldRendererJson"
                }
            ],
            "description": "A renderer.\n\nPart of the ArcGIS REST API (see http://resources.arcgis.com/en/help/rest/apiref/renderer.html)."
        },
        "RendererUnion": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@arcgis.core.renderers.SimpleRenderer.SimpleRenderer"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.renderers.ClassBreaksRenderer.ClassBreaksRenderer"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.renderers.UniqueValueRenderer.UniqueValueRenderer"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.renderers.DotDensityRenderer.DotDensityRenderer"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.renderers.DictionaryRenderer.DictionaryRenderer"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.renderers.PieChartRenderer.PieChartRenderer"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.renderers.HeatmapRenderer.HeatmapRenderer"
                }
            ],
            "description": "Union of renderers."
        },
        "SignInCompletedEventArgs": {
            "additionalProperties": false,
            "description": "Arguments for the auth.sign-in-completed and auth.portal-sign-in-completed events. Only available in VertiGIS Studio Mobile.",
            "properties": {
                "identity": {
                    "$ref": "#/definitions/ArcGISPortalIdentity",
                    "description": "The identity that was obtained from the sign in."
                }
            },
            "required": [
                "identity"
            ],
            "type": "object"
        },
        "SignInEventArgs": {
            "additionalProperties": false,
            "description": "Arguments for the auth.sign-in events. Only available in VertiGIS Studio Mobile.",
            "properties": {
                "authenticationType": {
                    "$ref": "#/definitions/AuthenticationType",
                    "description": "The authentication method used for the sign in process. Not available in VertiGIS Studio Web."
                },
                "portalType": {
                    "$ref": "#/definitions/PortalType",
                    "description": "The type of Portal: AGOL or ArcGISEnterprise."
                },
                "requestInfo": {
                    "description": "Information about the resource that is required to sign in. Not available in VertiGIS Studio Web. Will be an instance of esri.security.CredentialRequestInfo for VertiGIS Studio Mobile."
                }
            },
            "required": [
                "authenticationType",
                "portalType",
                "requestInfo"
            ],
            "type": "object"
        },
        "SignInFailedEventArgs": {
            "additionalProperties": false,
            "description": "Arguments for the auth.sign-in-failed event. Only available in the VertiGIS Studio Mobile Viewer.",
            "properties": {
                "authenticationType": {
                    "$ref": "#/definitions/AuthenticationType",
                    "description": "The authentication method used for the sign in process. Not available in VertiGIS Studio Web."
                },
                "exception": {
                    "description": "The exception that occurred during the sign in. Not available in VertiGIS Studio Web."
                },
                "portalType": {
                    "$ref": "#/definitions/PortalType",
                    "description": "The type of Portal: AGOL or ArcGISEnterprise."
                },
                "requestInfo": {
                    "description": "Information about the resource that is required to sign in. Not available in VertiGIS Studio Web. Will be an instance of esri.security.CredentialRequestInfo for VertiGIS Studio Mobile."
                }
            },
            "required": [
                "authenticationType",
                "exception",
                "portalType",
                "requestInfo"
            ],
            "type": "object"
        },
        "SimpleAction": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@vertigis.arcgis-extensions.support.Action.BoundAction"
                },
                {
                    "type": "string"
                }
            ],
            "description": "Defines a single action to perform."
        },
        "Symbol2DJson": {
            "anyOf": [
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.CIMSymbolJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.CIMSymbolReferenceJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.PictureFillSymbolJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.PictureMarkerSymbolJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.SimpleFillSymbolJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.SimpleLineSymbolJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.SimpleMarkerSymbolJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.TextSymbolJson"
                }
            ],
            "description": "Symbol types used in web maps."
        },
        "Symbol3DJson": {
            "anyOf": [
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.CIMSymbolJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.CIMSymbolReferenceJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.LabelSymbol3DJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.LineSymbol3DJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.MeshSymbol3DJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.PointSymbol3DJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.PolygonSymbol3DJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.StyleSymbolReferenceJson"
                }
            ],
            "description": "Symbol types used in web scenes."
        },
        "SymbolUnion": {
            "anyOf": [
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.PictureFillSymbol.PictureFillSymbol"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.PictureMarkerSymbol.PictureMarkerSymbol"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.SimpleFillSymbol.SimpleFillSymbol"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.SimpleLineSymbol.SimpleLineSymbol"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.SimpleMarkerSymbol.SimpleMarkerSymbol"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.TextSymbol.TextSymbol"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.CIMSymbol.CIMSymbol"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.LabelSymbol3D.LabelSymbol3D"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.LineSymbol3D.LineSymbol3D"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.MeshSymbol3D.MeshSymbol3D"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.PointSymbol3D.PointSymbol3D"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.PolygonSymbol3D.PolygonSymbol3D"
                },
                {
                    "$ref": "#/definitions/@arcgis.core.symbols.WebStyleSymbol.WebStyleSymbol"
                }
            ],
            "description": "Union of all symbols."
        },
        "TimeSpan": {
            "additionalProperties": false,
            "description": "{@link https://learn.microsoft.com/en-us/dotnet/api/system.timespan?view=net-9.0}.",
            "type": "object"
        },
        "VisualVariableJson": {
            "anyOf": [
                {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.ColorInfoJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.SizeInfoJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.TransparencyInfoJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.RotationInfoJson"
                }
            ],
            "description": "A visualVariable is an object containing the type of drawing property, the axis the variable is applied to, and additional properties for the variable. There are three types of visual variables, 'colorInfo', 'sizeInfo', and 'transparencyInfo'.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/visualVariable/} {@link https://developers.arcgis.com/web-scene-specification/objects/visualVariable/}."
        },
        "WeatherJson": {
            "anyOf": [
                {
                    "$ref": "#/definitions/esri.rest-api.EnvironmentJson.CloudyWeatherJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.EnvironmentJson.FoggyWeatherJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.EnvironmentJson.RainyWeatherJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.EnvironmentJson.SunnyWeatherJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.EnvironmentJson.SnowyWeatherJson"
                }
            ],
            "description": "Indicates the type of weather visualization in the scene."
        },
        "WorkflowErrorEventArgs": {
            "additionalProperties": false,
            "description": "Arguments for the \"workflow.workflow-error\" event.",
            "properties": {
                "errorMessage": {
                    "description": "The human readable error message.",
                    "type": "string"
                },
                "exception": {
                    "$ref": "#/definitions/Error",
                    "description": "The Error object containing detailed information about the error."
                },
                "workflow": {
                    "$ref": "WorkflowModel",
                    "description": "The workflow pertaining to the event."
                }
            },
            "required": [
                "workflow"
            ],
            "type": "object"
        },
        "WorkflowFinishedEventArgs": {
            "additionalProperties": false,
            "description": "Arguments for the \"workflow.workflow-finished\" event.",
            "properties": {
                "workflow": {
                    "$ref": "WorkflowModel",
                    "description": "The workflow pertaining to the event."
                }
            },
            "required": [
                "workflow"
            ],
            "type": "object"
        },
        "auth.sign-in-completed": {
            "description": "Raised when successfully signed in. Principal event type used in Web, SignInCompletedEventArgs used in Mobile.",
            "enum": [
                "auth.sign-in-completed"
            ]
        },
        "auth.sign-in-completed:input": {
            "anyOf": [
                {
                    "$ref": "Principal"
                },
                {
                    "$ref": "#/definitions/SignInCompletedEventArgs"
                }
            ]
        },
        "auth.sign-in-failed": {
            "description": "Raised when a sign-in attempt fails.",
            "enum": [
                "auth.sign-in-failed"
            ]
        },
        "auth.sign-in-failed:input": {
            "anyOf": [
                {
                    "$ref": "#/definitions/SignInFailedEventArgs"
                },
                {
                    "type": "null"
                }
            ]
        },
        "auth.sign-in-requested": {
            "description": "Raised when the user requests a sign-in.",
            "enum": [
                "auth.sign-in-requested"
            ]
        },
        "auth.sign-in-requested:input": {
            "anyOf": [
                {
                    "$ref": "#/definitions/SignInEventArgs"
                },
                {
                    "type": "null"
                }
            ]
        },
        "auth.sign-out-completed": {
            "description": "Raised when the user is signed out.",
            "enum": [
                "auth.sign-out-completed"
            ]
        },
        "auth.sign-out-requested": {
            "description": "Raised when the user requests a sign-out.",
            "enum": [
                "auth.sign-out-requested"
            ]
        },
        "auth.token-refreshed": {
            "description": "Raised when the user's token is refreshed. Will be the new token in the VertiGIS Studio Web, and a TokenCredential object in VertiGIS Studio Mobile.",
            "enum": [
                "auth.token-refreshed"
            ]
        },
        "auth.token-refreshed:input": {
            "type": "string"
        },
        "edit.feature-added": {
            "description": "Raised when a new feature is added to a feature source.",
            "enum": [
                "edit.feature-added"
            ]
        },
        "edit.feature-added:input": {
            "$ref": "@vertigis.arcgis-extensions.data.Feature.Feature"
        },
        "edit.feature-deleted": {
            "description": "Raised when a feature is deleted from a feature source.",
            "enum": [
                "edit.feature-deleted"
            ]
        },
        "edit.feature-deleted:input": {
            "$ref": "@vertigis.arcgis-extensions.data.Feature.Feature"
        },
        "edit.feature-updated": {
            "description": "Raised when the attributes or geometry of a feature from a feature source are updated.",
            "enum": [
                "edit.feature-updated"
            ]
        },
        "edit.feature-updated:input": {
            "$ref": "@vertigis.arcgis-extensions.data.Feature.Feature"
        },
        "esri.rest-api.AnnotationLayerJson.AnnotationLayerJson": {
            "additionalProperties": false,
            "description": "Annotation layers can be created by referencing a layer from a feature service. Annotation layers honor any feature templates configured in the source document.",
            "properties": {
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "customParameters": {
                    "description": "A sequence of custom parameters appended to the URL of all requests related to supporting ArcGIS layer types."
                },
                "disablePopup": {
                    "description": "Indicates whether to allow a client to ignore popups defined by the service item.",
                    "type": "boolean"
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "enableEditing": {
                    "description": "Indicates whether a client can add, remove or update features in the layer.",
                    "type": "boolean"
                },
                "id": {
                    "description": "A unique identifying string for the layer.",
                    "type": "string"
                },
                "layerDefinition": {
                    "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.LayerDefinitionJson",
                    "description": "A layerDefinition object defining the attribute schema and drawing information for the layer."
                },
                "layerType": {
                    "const": "ArcGISAnnotationLayer",
                    "description": "The layer type.",
                    "type": "string"
                },
                "listMode": {
                    "description": "Indicates how the layer should display in the table of contents. The known values are listed below. See {@link support /esri!ListMode}."
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "popupInfo": {
                    "$ref": "#/definitions/esri.rest-api.PopupInfoJson.PopupInfoJson",
                    "description": "A PopupInfo object defining the content of pop-up windows when you click or query a feature."
                },
                "refreshInterval": {
                    "description": "When the refresh interval is set on a layer, the client must refresh that layer only, not the entire web map. The default value is '0', meaning the no refresh. You can enable a refresh interval on the following types of layers: ArcGIS Server web service, hosted feature layer, hosted tile layer, OGC WMS, OGS WMTS, tile layer, GeoRSS, Living Atlas layers, basemaps (including Bing Maps basemaps), CSV from the web with latitude and longitude fields, and KML when added to ArcGIS Online through the My Content page. See {@link https://doc.arcgis.com/en/arcgis-online/create-maps/set-refresh-interval.htm}.",
                    "type": "number"
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "url": {
                    "description": "The URL to the layer.If the layer is not from a web service but rather a feature collection, than the url property is omitted.",
                    "type": "string"
                },
                "visibility": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                },
                "visibleLayers": {
                    "description": "An array of sublayer ids that should appear visible. These ids refer to subsets of the Annotation features in the AnnotationLayer, identified by their AnnotationClassId.",
                    "items": {
                        "type": "number"
                    },
                    "type": "array"
                }
            },
            "required": [
                "layerType"
            ],
            "type": "object"
        },
        "esri.rest-api.BasemapJson.BasemapJson": {
            "additionalProperties": false,
            "description": "A basemap layer is a layer that provides geographic context to the map. A web map always contains a basemap. A web scene is not required to always contain a basemap. The basemap has a title and is the combination of each BasemapLayer.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/basemap/}.",
            "properties": {
                "baseMapLayers": {
                    "description": "An array of BasemapLayer objects defining the basemaps used in the web map/web scene.",
                    "items": {
                        "$ref": "#/definitions/BasemapLayerJson"
                    },
                    "type": "array"
                },
                "elevationLayers": {
                    "description": "Deprecated, use ground.layers instead. An array of elevationLayer objects defining the basemaps used in the web scene.",
                    "items": {
                        "$ref": "#/definitions/ElevationLayerJson"
                    },
                    "type": "array"
                },
                "id": {
                    "description": "An identifier used to refer to the basemap when referencing it elsewhere.\n\nNOTE: Only available in web scenes!",
                    "type": "string"
                },
                "title": {
                    "description": "String title for the basemap that can be used in a table of contents. If not defined, then it takes the title of the first baseMapLayer in the array.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.BingLayerJson.BingLayerJson": {
            "additionalProperties": false,
            "description": "Indicates if working with Microsoft Bing layers. There are three layer types associated with Bing Layers: BingMapsAerial, BingMapsRoad, and BingMapsHybrid.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/bingLayer/}.",
            "properties": {
                "bingKey": {
                    "description": "String value that unlocks the use of Bing layers in a web map.",
                    "type": "string"
                },
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "canShareBingPublic": {
                    "description": "Boolean value indicating whether the Bing key can be shared to the public.",
                    "type": "boolean"
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "id": {
                    "description": "A unique identifying string for the layer.",
                    "type": "string"
                },
                "isReference": {
                    "description": "This 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).",
                    "type": "boolean"
                },
                "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": "The type of layer.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad"
                    ],
                    "type": "string"
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "portalUrl": {
                    "description": "A string value representing the URL to the portal/organization. Calls should be made to this property to retrieve the Bing key. If the key is not made accessible to the public or if canShareBingPublic is false, any web maps using Bing layers will not work.",
                    "type": "string"
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "visibility": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                }
            },
            "required": [
                "bingKey",
                "canShareBingPublic",
                "layerType",
                "portalUrl"
            ],
            "type": "object"
        },
        "esri.rest-api.BuildingSceneLayerJson.AuthoringInfoFilterBlockJson": {
            "additionalProperties": false,
            "description": "The filter authoring info object contains metadata about the authoring process for creating a filter block object. This allows the authoring client to save specific, overridable settings. The next time it is accessed via an authoring client, their selections are remembered. Non-authoring clients can ignore it.",
            "properties": {
                "filterTypes": {
                    "description": "Array of defined filter types. Each filter type has an array of filter values.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.BuildingSceneLayerJson.AuthoringInfoFilterTypeJson"
                    },
                    "type": "array"
                }
            },
            "type": "object"
        },
        "esri.rest-api.BuildingSceneLayerJson.AuthoringInfoFilterTypeJson": {
            "additionalProperties": false,
            "description": "The file authoring information for a filter, including the filter type and its value settings.",
            "properties": {
                "filterType": {
                    "description": "Represents the filter type name. Name is a unique identifier.",
                    "type": "string"
                },
                "filterValues": {
                    "description": "Array of filter values. Filter values are the attributes that can be stored for individual fields in a layer.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                }
            },
            "type": "object"
        },
        "esri.rest-api.BuildingSceneLayerJson.BuildingSceneLayerJson": {
            "additionalProperties": false,
            "description": "The BuildingSceneLayer is a layer type designed for on-demand streaming and displaying building data.",
            "properties": {
                "activeFilterId": {
                    "description": "Specifies the id of the currently active filter.",
                    "type": "string"
                },
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "filters": {
                    "description": "A list of filters available for this layer. Overrides filters defined on the service.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.BuildingSceneLayerJson.FilterJson"
                    },
                    "type": "array"
                },
                "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"
                },
                "layerDefinition": {
                    "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.LayerDefinitionJson",
                    "description": "Additional properties that can define an elevation offset for the layer."
                },
                "layerType": {
                    "const": "BuildingSceneLayer",
                    "description": "The type of layer.",
                    "type": "string"
                },
                "listMode": {
                    "description": "Indicates how the layer should display in the table of contents. The known values are listed below. See {@link support /esri!ListMode}."
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "refreshInterval": {
                    "description": "When the refresh interval is set on a layer, the client must refresh that layer only, not the entire web map. The default value is '0', meaning the no refresh. You can enable a refresh interval on the following types of layers: ArcGIS Server web service, hosted feature layer, hosted tile layer, OGC WMS, OGS WMTS, tile layer, GeoRSS, Living Atlas layers, basemaps (including Bing Maps basemaps), CSV from the web with latitude and longitude fields, and KML when added to ArcGIS Online through the My Content page. See {@link https://doc.arcgis.com/en/arcgis-online/create-maps/set-refresh-interval.htm}.",
                    "type": "number"
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "sublayers": {
                    "description": "An array of objects specifying overrides for building scene layer sublayers.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.BuildingSceneSublayerJson.BuildingSceneSublayerJson"
                    },
                    "type": "array"
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "url": {
                    "description": "The URL to the service.",
                    "type": "string"
                },
                "visibility": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                }
            },
            "required": [
                "layerType"
            ],
            "type": "object"
        },
        "esri.rest-api.BuildingSceneLayerJson.FilterAuthoringInfoCheckboxJson": {
            "additionalProperties": false,
            "description": "Client UI with checkbox representation for each filter type and filter value.",
            "properties": {
                "filterBlocks": {
                    "description": "Array of filter block authoring infos.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.BuildingSceneLayerJson.AuthoringInfoFilterBlockJson"
                    },
                    "type": "array"
                },
                "type": {
                    "const": "checkbox",
                    "description": "Type of filter authoring info. Value of this property must be checkbox.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.BuildingSceneLayerJson.FilterBlockJson": {
            "additionalProperties": false,
            "description": "A filter block defines what elements will be filtered with a specific filter mode. To ensure performance on client applications, it is not recommended to declare multiple filter blocks with the same filter mode. Filter blocks are contained in a filter for a building scene layer. Each filter includes at least one filter block.",
            "properties": {
                "filterExpression": {
                    "description": "SQL expression to select features that belong to this filter block.",
                    "type": "string"
                },
                "filterMode": {
                    "$ref": "#/definitions/FilterModeJson",
                    "description": "Filter mode defines how features are drawn. For example, the filter mode of a filter can be solid or wire frame."
                },
                "title": {
                    "description": "Title of the filter block.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.BuildingSceneLayerJson.FilterJson": {
            "additionalProperties": false,
            "description": "Filter allows client applications to reduce the drawn elements of a building to specific types and values. Filters on the webscene override the list of existing filters on the service.",
            "properties": {
                "description": {
                    "description": "Description of the filter.",
                    "type": "string"
                },
                "filterAuthoringInfo": {
                    "$ref": "#/definitions/esri.rest-api.BuildingSceneLayerJson.FilterAuthoringInfoCheckboxJson",
                    "description": "Metadata about the authoring process for this filter."
                },
                "filterBlocks": {
                    "description": "Array of filter blocks defining the filter. A filter contains at least one filter block.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.BuildingSceneLayerJson.FilterBlockJson"
                    },
                    "type": "array"
                },
                "id": {
                    "description": "Unique filter id (uuid). Either a new id to extend the list of filters, or an existing id to override properties of an existing filter.",
                    "type": "string"
                },
                "name": {
                    "description": "Name of the filter.",
                    "type": "string"
                }
            },
            "required": [
                "filterBlocks"
            ],
            "type": "object"
        },
        "esri.rest-api.BuildingSceneLayerJson.FilterModeSolidJson": {
            "additionalProperties": false,
            "description": "Draw elements of this filter block in solid mode. This mode does not change the display of features.",
            "properties": {
                "type": {
                    "const": "solid",
                    "description": "Declares filter mode of type solid. Value of this property must be solid.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.BuildingSceneLayerJson.FilterModeWireFrameJson": {
            "additionalProperties": false,
            "description": "Draw elements of this filter block in wireframe mode. This mode draws only the edges of the features with the specified edge style.",
            "properties": {
                "edges": {
                    "$ref": "#/definitions/EdgesJson",
                    "description": "A size in points by which to extend edges beyond their original end points."
                },
                "type": {
                    "const": "wireFrame",
                    "description": "Declares filter mode of type wire frame. Value of this property must be wireFrame.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.BuildingSceneSublayerJson.BuildingSceneSublayerJson": {
            "additionalProperties": false,
            "description": "The BuildingSceneLayer sublayer is a part of a building scene layer.",
            "properties": {
                "disablePopup": {
                    "description": "Allows a client to ignore popups defined by the service item.",
                    "type": "boolean"
                },
                "id": {
                    "description": "Identifies the sublayer inside the building scene layer.",
                    "type": "number"
                },
                "layerDefinition": {
                    "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.LayerDefinitionJson",
                    "description": "Additional properties that can define drawing information and a definition expression for the sublayer. See layerDefinition properties table."
                },
                "listMode": {
                    "description": "To show or hide the sublayer in the layer list. If property is present, must be one of the following values: show, hide."
                },
                "opacity": {
                    "description": "The degree of transparency applied to the sublayer on the client side, where 0 is full transparency and 1 is no transparency. This is multiplied with the opacity of the containing layers.",
                    "type": "number"
                },
                "popupInfo": {
                    "$ref": "#/definitions/esri.rest-api.PopupInfoJson.PopupInfoJson",
                    "description": "A popupInfo object defining the content of pop-up windows when you click or query a feature."
                },
                "title": {
                    "description": "A user-friendly string title for the sublayer that can be used in a table of contents.",
                    "type": "string"
                },
                "visibility": {
                    "description": "Boolean property determining whether the sublayer is initially visible in the web scene.",
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "esri.rest-api.CSVLayerJson.CSVLayerJson": {
            "additionalProperties": false,
            "description": "The CSV layer type references a CSV or TXT file from a publicly-accessible web server. It then dynamically loads into the map at run time. The CSV layer will maintain a reference to the CSV resource.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/csvLayer/} {@link https://developers.arcgis.com/web-scene-specification/objects/csvLayer/}.",
            "properties": {
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "columnDelimiter": {
                    "description": "A string defining the character used to separate columns in a CSV file. You can set this property using any of the following: \",\", \" \", \";\", \"|\", \"\\t\". Used with CSV layers only.",
                    "type": "string"
                },
                "disablePopup": {
                    "description": "Indicates whether to allow a client to ignore popups defined by the service item.",
                    "type": "boolean"
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "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"
                },
                "layerDefinition": {
                    "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.LayerDefinitionJson",
                    "description": "A layerDefinition object defining the attribute schema and drawing information for the layer."
                },
                "layerType": {
                    "const": "CSV",
                    "description": "The type of layer.",
                    "type": "string"
                },
                "listMode": {
                    "description": "Indicates how the layer should display in the table of contents. The known values are listed below. See {@link support /esri!ListMode}."
                },
                "locationInfo": {
                    "$ref": "#/definitions/esri.rest-api.CSVLayerJson.LocationInfoJson",
                    "description": "A LocationInfo object defining how location information will be retrieved from a CSV file. Used with CSV layers only."
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "popupInfo": {
                    "$ref": "#/definitions/esri.rest-api.PopupInfoJson.PopupInfoJson",
                    "description": "A PopupInfo object defining the content of pop-up windows when you click or query a feature."
                },
                "refreshInterval": {
                    "description": "When the refresh interval is set on a layer, the client must refresh that layer only, not the entire web map. The default value is '0', meaning the no refresh. You can enable a refresh interval on the following types of layers: ArcGIS Server web service, hosted feature layer, hosted tile layer, OGC WMS, OGS WMTS, tile layer, GeoRSS, Living Atlas layers, basemaps (including Bing Maps basemaps), CSV from the web with latitude and longitude fields, and KML when added to ArcGIS Online through the My Content page. See {@link https://doc.arcgis.com/en/arcgis-online/create-maps/set-refresh-interval.htm}.",
                    "type": "number"
                },
                "screenSizePerspective": {
                    "description": "Apply perspective scaling to screen-size symbols.",
                    "type": "boolean"
                },
                "showLabels": {
                    "description": "Indicates whether to display labels for this layer. If true, labels will appear as defined in the labelingInfo property.",
                    "type": "boolean"
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "url": {
                    "description": "The URL to the CSV file that backs the layer.",
                    "type": "string"
                },
                "visibility": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                }
            },
            "required": [
                "layerType"
            ],
            "type": "object"
        },
        "esri.rest-api.CSVLayerJson.LocationInfoJson": {
            "additionalProperties": false,
            "description": "Defines how location information will be retrieved from a CSV file referenced through the web.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/locationInfo/} {@link https://developers.arcgis.com/web-scene-specification/objects/locationInfo/}.",
            "properties": {
                "latitudeFieldName": {
                    "description": "A string defining the field name that holds the latitude (Y) coordinate.",
                    "type": "string"
                },
                "locationType": {
                    "description": "A string whose value is always \"coordinates\".",
                    "type": "string"
                },
                "longitudeFieldName": {
                    "description": "A string defining the field name that holds the longitude (X) coordinate.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.DefinitionEditorJson.DefinitionEditorJson": {
            "additionalProperties": false,
            "description": "The definitionEditor stores interactive filters at the same level as layerDefinition.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/definitionEditor/} {@link https://developers.arcgis.com/web-scene-specification/objects/definitionEditor/}.",
            "properties": {
                "inputs": {
                    "description": "An array of input objects.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.DefinitionEditorJson.InputJson"
                    },
                    "type": "array"
                },
                "parameterizedExpression": {
                    "description": "A string value representing the where clause for the interactive filter.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.DefinitionEditorJson.InputJson": {
            "additionalProperties": false,
            "description": "The input objects specified by the definitionEditor. See {@link https://developers.arcgis.com/web-map-specification/objects/input/} {@link https://developers.arcgis.com/web-scene-specification/objects/input/}.",
            "properties": {
                "hint": {
                    "description": "A string value representing a hint for the input.",
                    "type": "string"
                },
                "parameters": {
                    "description": "An array of parameter objects.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.DefinitionEditorJson.ParameterJson"
                    },
                    "type": "array"
                },
                "prompt": {
                    "description": "A string value representing the prompt for the input.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.DefinitionEditorJson.ParameterJson": {
            "additionalProperties": false,
            "description": "Objects defined by a definitionEditor input. See {@link https://developers.arcgis.com/web-map-specification/objects/parameter/} {@link https://developers.arcgis.com/web-scene-specification/objects/parameter/}.",
            "properties": {
                "defaultValue": {
                    "description": "The default value that is automatically given if nothing is provided.",
                    "type": [
                        "string",
                        "number"
                    ]
                },
                "fieldName": {
                    "description": "A string value representing the name of the field to query.",
                    "type": "string"
                },
                "parameterId": {
                    "description": "Number given to uniquely identify the specified parameter.",
                    "type": "number"
                },
                "type": {
                    "description": "The field type for the specified field parameter. See Field.FieldType.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.DomainJson.CodedValueDomainJson": {
            "additionalProperties": false,
            "description": "Coded value domain specifies an explicit set of valid values for a field. Each valid value is assigned a unique name. See {@link https://developers.arcgis.com/web-map-specification/objects/codedValue_domain/}.",
            "properties": {
                "codedValues": {
                    "description": "The set of valid coded values.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.DomainJson.CodedValueJson"
                    },
                    "type": "array"
                },
                "name": {
                    "description": "The name of the domain.",
                    "type": "string"
                },
                "type": {
                    "const": "codedValue",
                    "description": "Type of domain.",
                    "type": "string"
                }
            },
            "required": [
                "codedValues",
                "name",
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.DomainJson.CodedValueJson": {
            "additionalProperties": false,
            "description": "A set of valid coded values with unique names. See {@link https://developers.arcgis.com/web-map-specification/objects/codedValue/} {@link https://developers.arcgis.com/web-scene-specification/objects/codedValue_domain/}.",
            "properties": {
                "code": {
                    "description": "Value indicating which unique code is used to identify the feature attribute.",
                    "type": [
                        "string",
                        "number"
                    ]
                },
                "name": {
                    "description": "The human-readable name for the coded value.",
                    "type": "string"
                }
            },
            "required": [
                "code",
                "name"
            ],
            "type": "object"
        },
        "esri.rest-api.DomainJson.InheritedDomainJson": {
            "additionalProperties": false,
            "description": "This domain applies to domains on subtypes. It implies that the domain for a field at the subtype level is the same as the domain for the field at the layer level. See {@link https://developers.arcgis.com/web-map-specification/objects/inherited_domain/} {@link https://developers.arcgis.com/web-scene-specification/objects/inherited_domain/}.",
            "properties": {
                "type": {
                    "const": "inherited",
                    "description": "The type of domain.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.DomainJson.RangeDomainJson": {
            "additionalProperties": false,
            "description": "Range domain specifies a range of valid values for a field. See {@link https://developers.arcgis.com/web-map-specification/objects/range_domain/} {@link https://developers.arcgis.com/web-scene-specification/objects/range_domain/}.",
            "properties": {
                "name": {
                    "description": "The name of the domain.",
                    "type": "string"
                },
                "range": {
                    "description": "An array in the format [<minValue>, <maxValue>].",
                    "items": {
                        "type": "number"
                    },
                    "type": "array"
                },
                "type": {
                    "const": "range",
                    "description": "Type of domain.",
                    "type": "string"
                }
            },
            "required": [
                "name",
                "range",
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.DrawingInfoJson.DrawingInfoJson": {
            "additionalProperties": false,
            "description": "The drawingInfo object contains drawing information for a feature collection or a single layer in a map service. This object is used in LayerDefinition.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/drawingInfo/} {@link https://developers.arcgis.com/web-scene-specification/objects/drawingInfo/}.",
            "properties": {
                "filters": {
                    "description": "Filters for PointCloud layers.",
                    "items": {
                        "$ref": "#/definitions/PointCloudFilterJson"
                    },
                    "type": "array"
                },
                "fixedSymbols": {
                    "description": "Only used for feature collections with a renderer. The feature's symbol is defined by the layer's renderer. Not implemented in JSAPI 4.x.",
                    "type": "boolean"
                },
                "labelingInfo": {
                    "description": "An object defining the properties used for labeling the layer.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.DrawingInfoJson.LabelingInfoJson"
                    },
                    "type": "array"
                },
                "renderer": {
                    "$ref": "#/definitions/RendererJson",
                    "description": "A renderer object that provides the symbology for the layer."
                },
                "scaleSymbols": {
                    "description": "Boolean property indicating whether symbols should stay the same size in screen units as you zoom in. A value of false means the symbols stay the same size in screen units regardless of the map scale. Not implemented in JSAPI 4.x.",
                    "type": "boolean"
                },
                "showLabels": {
                    "description": "Defines whether labels should be shown or not. This is only valid for sublayers.",
                    "type": "boolean"
                },
                "transparency": {
                    "description": "Number value ranging between 0 (no transparency) to 100 (completely transparent).",
                    "type": "number"
                }
            },
            "type": "object"
        },
        "esri.rest-api.DrawingInfoJson.LabelingInfoJson": {
            "additionalProperties": false,
            "description": "The labelingInfo object specifies the label definition for a layer.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/labelingInfo/} {@link https://developers.arcgis.com/web-scene-specification/objects/labelingInfo/}.",
            "properties": {
                "labelExpression": {
                    "description": "This read-only web map property allows formatting of labels. Use labelExpressionInfo instead.",
                    "type": "string"
                },
                "labelExpressionInfo": {
                    "$ref": "__type",
                    "description": "This object allows label text to be read similar to that of the popupInfo's description property. See {@link https://developers.arcgis.com/web-map-specification/objects/labelExpressionInfo/} {@link https://developers.arcgis.com/web-scene-specification/objects/labelExpressionInfo/}."
                },
                "labelPlacement": {
                    "description": "This string property specifies the label placement with respect to that of its feature. A list of label placement values categorized by feature geometry types.",
                    "enum": [
                        "esriServerLinePlacementAboveAfter",
                        "esriServerLinePlacementAboveAlong",
                        "esriServerLinePlacementAboveBefore",
                        "esriServerLinePlacementAboveEnd",
                        "esriServerLinePlacementAboveStart",
                        "esriServerLinePlacementBelowAfter",
                        "esriServerLinePlacementBelowAlong",
                        "esriServerLinePlacementBelowBefore",
                        "esriServerLinePlacementBelowEnd",
                        "esriServerLinePlacementBelowStart",
                        "esriServerLinePlacementCenterAfter",
                        "esriServerLinePlacementCenterAlong",
                        "esriServerLinePlacementCenterBefore",
                        "esriServerLinePlacementCenterEnd",
                        "esriServerLinePlacementCenterStart",
                        "esriServerPointLabelPlacementAboveCenter",
                        "esriServerPointLabelPlacementAboveLeft",
                        "esriServerPointLabelPlacementAboveRight",
                        "esriServerPointLabelPlacementBelowCenter",
                        "esriServerPointLabelPlacementBelowLeft",
                        "esriServerPointLabelPlacementBelowRight",
                        "esriServerPointLabelPlacementCenterCenter",
                        "esriServerPointLabelPlacementCenterLeft",
                        "esriServerPointLabelPlacementCenterRight",
                        "esriServerPolygonPlacementAlwaysHorizontal"
                    ],
                    "type": "string"
                },
                "maxScale": {
                    "description": "Represents the maximum scale at which the layer definition will be applied.",
                    "type": "number"
                },
                "minScale": {
                    "description": "Represents the minimum scale at which the layer definition will be applied.",
                    "type": "number"
                },
                "name": {
                    "description": "The name of the label class.",
                    "type": "string"
                },
                "repeatLabel": {
                    "description": "A boolean value indicating whether or not to repeat the label along or across the feature. If true, the label will be repeated according to the repeatLabelDistance. If missing, the default depends on the geometry of the feature: false for point and polygon feature geometries, and true for line feature geometries.",
                    "type": "boolean"
                },
                "repeatLabelDistance": {
                    "description": "The repeat label distance used when repeatLabel is true. It represents a screen distance in points.",
                    "type": "number"
                },
                "symbol": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/esri.rest-api.SymbolJson.TextSymbolJson"
                        },
                        {
                            "$ref": "#/definitions/esri.rest-api.SymbolJson.LabelSymbol3DJson"
                        }
                    ],
                    "description": "The text symbol used to label."
                },
                "useCodedValues": {
                    "description": "Boolean value indicating whether to display the coded values for the specified field name(s).",
                    "type": "boolean"
                },
                "where": {
                    "description": "String template used to determine which features to label.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.DrawingInfoJson.PointCloudBitfieldFilterJson": {
            "additionalProperties": false,
            "description": "Filters points based on the value of the specified bitfield attribute.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/pointCloudBitfieldFilter/}.",
            "properties": {
                "field": {
                    "description": "The name of the field that is used for the filter.",
                    "type": "string"
                },
                "requiredClearBits": {
                    "description": "List ALL bit numbers that must cleared (=0) for the point to be kept. Bit\n0 is LSB.",
                    "items": {
                        "type": "number"
                    },
                    "type": "array"
                },
                "requiredSetBits": {
                    "description": "List ALL bit numbers that must set (=1) for the point to be kept. Bit 0 is LSB.",
                    "items": {
                        "type": "number"
                    },
                    "type": "array"
                },
                "type": {
                    "const": "pointCloudBitfieldFilter",
                    "description": "Filters points based on the value of an specified attribute.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.DrawingInfoJson.PointCloudReturnFilterJson": {
            "additionalProperties": false,
            "description": "Filters points based on the value of the return number/return count.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/pointCloudReturnFilter/}.",
            "properties": {
                "field": {
                    "description": "The name of the field that is used for the filter.",
                    "type": "string"
                },
                "includedReturns": {
                    "description": "All points with at least one specified return status will be kept. Status values: last, firstOfMany, lastOfMany, single.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "type": {
                    "const": "pointCloudReturnFilter",
                    "description": "Filters points based on the value of an specified attribute.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.DrawingInfoJson.PointCloudValueFilterJson": {
            "additionalProperties": false,
            "description": "Filters points based on the value of an specified attribute.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/pointCloudValueFilter/}.",
            "properties": {
                "field": {
                    "description": "The name of the field that is used for the filter.",
                    "type": "string"
                },
                "mode": {
                    "description": "Defines if values should be included or excluded. Must be one of the following values: exclude, include.",
                    "type": "string"
                },
                "type": {
                    "const": "pointCloudValueFilter",
                    "description": "Filters points based on the value of an specified attribute.",
                    "type": "string"
                },
                "values": {
                    "description": "List of values.",
                    "items": {
                        "type": "number"
                    },
                    "type": "array"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.EnvironmentJson.CloudyWeatherJson": {
            "additionalProperties": false,
            "description": "Object containing information for changing the weather conditions in the scene to cloudy.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/cloudyWeather/}.",
            "properties": {
                "cloudCover": {
                    "description": "Specifies the amount of cloud cover in the sky.",
                    "type": "number"
                },
                "type": {
                    "const": "cloudy",
                    "description": "The type of weather.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.EnvironmentJson.ColorBackgroundJson": {
            "additionalProperties": false,
            "description": "Specifies a single color to fill the background of the scene with. The scene background is displayed behind any scene objects, stars and atmosphere.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/environment_background_color/}.",
            "properties": {
                "color": {
                    "$ref": "#/definitions/ColorJson",
                    "description": "Color is represented as a three or four-element array."
                },
                "transparency": {
                    "description": "The value has to lie between 100 (full transparency) and 0 (full opacity). Web scenes only.",
                    "type": "number"
                },
                "type": {
                    "const": "color",
                    "description": "The type of background. Web scenes only.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.EnvironmentJson.EnvironmentJson": {
            "additionalProperties": false,
            "description": "Represents settings that affect the environment in which the WebScene is displayed (such as lighting). It is part of the initial state of the WebScene as well as slides in the presentation.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/environment/}.",
            "properties": {
                "atmosphereEnabled": {
                    "description": "Whether the atmosphere should be visualized. This includes sky and haze effects.",
                    "type": "boolean"
                },
                "background": {
                    "$ref": "#/definitions/esri.rest-api.EnvironmentJson.ColorBackgroundJson",
                    "description": "Specifies how the background of the scene (which lies behind sky, stars and atmosphere) should be displayed."
                },
                "lighting": {
                    "$ref": "#/definitions/LightingJson",
                    "description": "Object containing information on how the scene is lit."
                },
                "starsEnabled": {
                    "description": "Whether stars should be displayed in the sky.",
                    "type": "boolean"
                },
                "weather": {
                    "$ref": "#/definitions/WeatherJson",
                    "description": "Indicates the type of weather visualization in the scene."
                }
            },
            "type": "object"
        },
        "esri.rest-api.EnvironmentJson.FoggyWeatherJson": {
            "additionalProperties": false,
            "description": "Object containing information for changing the weather conditions in the scene to foggy.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/foggyWeather/}.",
            "properties": {
                "fogStrength": {
                    "description": "Specifies the amount of fog used in the scene.",
                    "type": "number"
                },
                "type": {
                    "const": "foggy",
                    "description": "The type of weather.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.EnvironmentJson.RainyWeatherJson": {
            "additionalProperties": false,
            "description": "Object containing information for changing the weather conditions in the scene to rainy.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/rainyWeather/}.",
            "properties": {
                "cloudCover": {
                    "description": "Specifies the amount of cloud cover in the sky.",
                    "type": "number"
                },
                "precipitation": {
                    "description": "Specifies the amount of snowfall in the scene.",
                    "type": "number"
                },
                "type": {
                    "const": "rainy",
                    "description": "The type of weather.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.EnvironmentJson.SnowyWeatherJson": {
            "additionalProperties": false,
            "description": "Object containing information for changing the weather conditions in the scene to snowy.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/sunnyWeather/}.",
            "properties": {
                "cloudCover": {
                    "description": "Specifies the amount of cloud cover in the sky.",
                    "type": "number"
                },
                "precipitation": {
                    "description": "Specifies the amount of snowfall in the scene.",
                    "type": "number"
                },
                "snowCover": {
                    "description": "Display surfaces covered with snow.",
                    "enum": [
                        "disabled",
                        "enabled"
                    ],
                    "type": "string"
                },
                "type": {
                    "const": "snowy",
                    "description": "The type of weather.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.EnvironmentJson.SunLightingJson": {
            "additionalProperties": false,
            "description": "Object containing information for the sun lighting type. The position of the light is set to the sun's location.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/sunLighting/}.",
            "properties": {
                "datetime": {
                    "description": "The current date and time of the simulated sun. It is a number representing the number of milliseconds since 1 January, 1970 UTC.",
                    "type": "number"
                },
                "directShadows": {
                    "description": "Indicates whether to show shadows cast by the sun.",
                    "type": "boolean"
                },
                "displayUTCOffset": {
                    "description": "UTC offset in decimal hours. Not to be applied to datetime for sun position, only to adjust display of datetime in UI. If displayUTCOffset is null, offset is calculated for the current location (approximate only).",
                    "type": "number"
                },
                "type": {
                    "const": "sun",
                    "description": "The type of lighting.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.EnvironmentJson.SunnyWeatherJson": {
            "additionalProperties": false,
            "description": "Object containing information for changing the weather conditions in the scene to sunny.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/sunnyWeather/}.",
            "properties": {
                "cloudCover": {
                    "description": "Specifies the amount of cloud cover in the sky.",
                    "type": "number"
                },
                "type": {
                    "const": "sunny",
                    "description": "The type of weather.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.EnvironmentJson.VirtualLightingJson": {
            "additionalProperties": false,
            "description": "Object containing information for the virtual lighting type. The position of the light follows the camera and is set behind the camera with a small offset to the left side.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/sunLighting/}.",
            "properties": {
                "directShadows": {
                    "description": "Indicates whether to show shadows cast by the main light source.",
                    "type": "boolean"
                },
                "type": {
                    "const": "virtual",
                    "description": "The type of lighting.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.FeatureCollectionJson.FeatureCollectionJson": {
            "additionalProperties": false,
            "description": "Defines a layer of features whose geometry and attributes will be stored directly within the web map.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/featureCollection/}.",
            "properties": {
                "layers": {
                    "description": "An array of Layer objects defining all the styling, geometry, and attribute information for the features.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.SublayerJson.SublayerJson"
                    },
                    "type": "array"
                },
                "showLegend": {
                    "description": "Indicates if this layer should be shown in the legend in client applications. The default is true.",
                    "type": "boolean"
                }
            },
            "required": [
                "layers"
            ],
            "type": "object"
        },
        "esri.rest-api.FeatureJson.FeatureJson": {
            "additionalProperties": false,
            "description": "Contains information about an attribute field and feature geometry.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/feature/} {@link https://developers.arcgis.com/web-scene-specification/objects/feature/}.",
            "properties": {
                "attributes": {
                    "description": "The feature attributes. It is a JSON object that contains a dictionary of name-value pairs. The names are the feature field names. The values are the field values and they can be any of the standard JSON types - string, number and boolean. Note that date values are encoded as numbers. The number represents the number of milliseconds since epoch (January 1,\n1970) in UTC."
                },
                "geometry": {
                    "$ref": "#/definitions/GeometryJson",
                    "description": "The feature geometry."
                },
                "popupInfo": {
                    "$ref": "#/definitions/esri.rest-api.PopupInfoJson.PopupInfoJson",
                    "description": "A popupInfo object defining the content of popup window when you click a feature on the map. Applicable to features in a map notes feature layer only."
                },
                "symbol": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.SymbolJson",
                    "description": "Symbol used for drawing the feature."
                }
            },
            "type": "object"
        },
        "esri.rest-api.FeatureLayerJson.FeatureLayerJson": {
            "additionalProperties": false,
            "description": "Feature layers can be created by referencing a layer from either a map service or a feature service or by specifying a feature collection object. Use a map service if you just want to retrieve geometries and attributes from the server and symbolize them yourself. Use a feature service if you want to take advantage of symbols from the service's source map document. Also, use a feature service if you plan on doing editing with the feature layer. Feature layers honor any feature templates configured in the source map document. Feature collection objects are used to create a feature layer based on the supplied definition.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/featureLayer/} {@link https://developers.arcgis.com/web-scene-specification/objects/featureLayer/}.",
            "properties": {
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "capabilities": {
                    "description": "A comma-separated string listing which editing operations are allowed on an editable feature service. Available operations include: Create | Delete | Query | Update | Editing.",
                    "type": "string"
                },
                "customParameters": {
                    "description": "A sequence of custom parameters appended to the URL of all requests related to supporting ArcGIS layer types."
                },
                "definitionEditor": {
                    "$ref": "#/definitions/esri.rest-api.DefinitionEditorJson.DefinitionEditorJson",
                    "description": "Stores interactive filters."
                },
                "disablePopup": {
                    "description": "Indicates whether to allow a client to ignore popups defined by the service item.",
                    "type": "boolean"
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "featureCollection": {
                    "$ref": "#/definitions/esri.rest-api.FeatureCollectionJson.FeatureCollectionJson",
                    "description": "A featureCollection object defining a layer of features whose geometry and attributes will be stored directly within the web map. This is only used when no url property is supplied."
                },
                "featureCollectionType": {
                    "description": "Indicates the type of features in the feature collection. If featureCollectionType is missing, it means the feature collection is a regular single-layer or multi-layer feature collection.",
                    "enum": [
                        "markup",
                        "notes",
                        "route"
                    ],
                    "type": "string"
                },
                "formInfo": {
                    "$ref": "#/definitions/esri.rest-api.FormInfoJson.FormInfoJson",
                    "description": "A formInfo object defining the content of the form when you are editing a feature."
                },
                "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"
                },
                "layerDefinition": {
                    "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.LayerDefinitionJson",
                    "description": "A layerDefinition object defining the attribute schema and drawing information for the layer."
                },
                "layerType": {
                    "const": "ArcGISFeatureLayer",
                    "description": "The type of layer.",
                    "type": "string"
                },
                "listMode": {
                    "description": "Indicates how the layer should display in the table of contents. The known values are listed below. See {@link support /esri!ListMode}."
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "mode": {
                    "description": "Used with ArcGIS feature services and individual layers in ArcGIS map services, this property determines how the features are retrieved from the server. This property is represented as 0, 1, or 2.\n\n- 0: Snapshot mode. Immediately retrieves all features when the map is   loaded.\n- 1: On-demand mode. Features within the current view extent are retrieved   as the user navigates the map. This is the default and the most common   way to use feature services in web maps.\n- 2: Selection-only mode. No features are initially retrieved. This mode is   used when you have a map service and a feature service from the same   parent URL that are working together in the same map, with the map   service being used for display and the feature service used for   editing.",
                    "enum": [
                        0,
                        1,
                        2,
                        6
                    ],
                    "type": "number"
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "popupInfo": {
                    "$ref": "#/definitions/esri.rest-api.PopupInfoJson.PopupInfoJson",
                    "description": "A PopupInfo object defining the content of pop-up windows when you click or query a feature."
                },
                "refreshInterval": {
                    "description": "When the refresh interval is set on a layer, the client must refresh that layer only, not the entire web map. The default value is '0', meaning the no refresh. You can enable a refresh interval on the following types of layers: ArcGIS Server web service, hosted feature layer, hosted tile layer, OGC WMS, OGS WMTS, tile layer, GeoRSS, Living Atlas layers, basemaps (including Bing Maps basemaps), CSV from the web with latitude and longitude fields, and KML when added to ArcGIS Online through the My Content page. See {@link https://doc.arcgis.com/en/arcgis-online/create-maps/set-refresh-interval.htm}.",
                    "type": "number"
                },
                "screenSizePerspective": {
                    "description": "Apply perspective scaling to screen-size symbols.",
                    "type": "boolean"
                },
                "showLabels": {
                    "description": "Indicates whether to display labels for this layer. If true, labels will appear as defined in the labelingInfo property.",
                    "type": "boolean"
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "subtypeCode": {
                    "description": "The feature subtype code identifying the layer. Used with SubtypeGroupLayers.",
                    "type": [
                        "string",
                        "number"
                    ]
                },
                "timeAnimation": {
                    "description": "Indicates whether to disable time animation if the layer supports it.",
                    "type": "boolean"
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "url": {
                    "description": "The URL to the layer.If the layer is not from a web service but rather a feature collection, than the url property is omitted.",
                    "type": "string"
                },
                "visibility": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                },
                "visibleLayers": {
                    "description": "An array of sublayer ids that should appear visible. Used with feature layers that are based on feature collections.",
                    "items": {
                        "type": "number"
                    },
                    "type": "array"
                }
            },
            "required": [
                "layerType"
            ],
            "type": "object"
        },
        "esri.rest-api.FeatureSetJson.FeatureSetJson": {
            "additionalProperties": false,
            "description": "Contains the geometry and attributes of features in a layer. This object is used with feature collections only. For more information, see Layer.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/featureSet/} {@link https://developers.arcgis.com/web-scene-specification/objects/featureSet/}.",
            "properties": {
                "features": {
                    "description": "An array of Feature objects, each one containing geometry and a set of attributes.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.FeatureJson.FeatureJson"
                    },
                    "type": "array"
                },
                "geometryType": {
                    "$ref": "esri.rest-api.GeometryJson.GeometryJsonType",
                    "description": "One of the GeometryType constants. See Geometry.GeometryJsonType."
                },
                "spatialReference": {
                    "$ref": "#/definitions/esri.rest-api.SpatialReferenceJson.SpatialReferenceJson",
                    "description": "<not in spec>."
                }
            },
            "required": [
                "features",
                "geometryType"
            ],
            "type": "object"
        },
        "esri.rest-api.FieldJson.FieldJson": {
            "additionalProperties": false,
            "description": "Contains information about an attribute field. This field could come from a feature collection or a single layer in a map service. Used in layerDefinition.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/field/} {@link https://developers.arcgis.com/web-scene-specification/objects/field/}.",
            "properties": {
                "alias": {
                    "description": "The field alias (human-readable name).",
                    "type": "string"
                },
                "domain": {
                    "$ref": "#/definitions/DomainJson",
                    "description": "A domain object that provides the attribute domain information for the field, if a domain exists."
                },
                "editable": {
                    "description": "Whether this field is editable.",
                    "type": "boolean"
                },
                "exactMatch": {
                    "description": "A Boolean defining whether or not the field is an exact match.",
                    "type": "boolean"
                },
                "length": {
                    "description": "A number defining how many characters are allowed in a string field.",
                    "type": "number"
                },
                "name": {
                    "description": "A string defining the field name.",
                    "type": "string"
                },
                "nullable": {
                    "description": "Whether this field can have a null value.",
                    "type": "boolean"
                },
                "type": {
                    "$ref": "FieldJsonType",
                    "description": "Type of the Field. See {@link FieldJsonType}."
                },
                "visible": {
                    "description": "<not in spec>.",
                    "type": "boolean"
                }
            },
            "required": [
                "name"
            ],
            "type": "object"
        },
        "esri.rest-api.FormInfoJson.FormAttachmentElementJson": {
            "additionalProperties": false,
            "description": "Defines how one or more attachments can participate in the form. When present in the form, the user has the ability to upload an attachment specific to the form element. See {@link https://developers.arcgis.com/web-map-specification/objects/formAttachmentElement/}.",
            "properties": {
                "attachmentKeyword": {
                    "description": "A string to identify the attachment(s). When a file is attached using the form, this property is used to set the value of the keywords field for the attachment. When a form is displaying existing attachments, this property is used to query attachments using an exact match on the keywords field.",
                    "type": "string"
                },
                "description": {
                    "description": "A string that describes the element in detail.",
                    "type": "string"
                },
                "editable": {
                    "description": "Indicates whether the attachments can be edited. If not present, the default is true.",
                    "type": "boolean"
                },
                "inputType": {
                    "$ref": "__type",
                    "description": "The input user interface to use for the attachment."
                },
                "label": {
                    "description": "A string value indicating what the element represents.",
                    "type": "string"
                },
                "type": {
                    "const": "attachment",
                    "description": "String value indicating which type of element to use.",
                    "type": "string"
                },
                "visibilityExpression": {
                    "description": "A reference to an Arcade expression that returns a boolean value. When this expression evaluates to true, the element is displayed. When the expression evaluates to false the element is not displayed. If no expression is provided, the default behavior is that the element is displayed.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.FormInfoJson.FormBarcodeScannerInputJson": {
            "additionalProperties": false,
            "description": "Defines the desired user interface is a barcode or QR code scanner. If the client does not support barcode scanning, a single-line text box should be used. See {@link https://developers.arcgis.com/web-map-specification/objects/formBarcodeScannerInput/}.",
            "properties": {
                "maxLength": {
                    "description": "This represents the maximum number of characters allowed. This only applies for string fields. If not supplied, the value is derived from the length property of the referenced field in the service.",
                    "type": "number"
                },
                "minLength": {
                    "description": "This represents the minimum number of characters allowed. This only applies for string fields. If not supplied, the value is 0, meaning there is no minimum constraint.",
                    "type": "number"
                },
                "type": {
                    "const": "barcode-scanner",
                    "description": "The input type identifier.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.FormInfoJson.FormComboBoxInputJson": {
            "additionalProperties": false,
            "description": "Defines the desired user interface is a list of values in a drop-down that supports typing to filter. Only one value can be selected at a time. See {@link https://developers.arcgis.com/web-map-specification/objects/formComboBoxInput/}.",
            "properties": {
                "noValueOptionLabel": {
                    "description": "The text used to represent a null value.",
                    "type": "string"
                },
                "showNoValueOption": {
                    "description": "Determines whether null value option is displayed. This only applies to fields that support null values. If not provided, the default value is false.",
                    "type": "boolean"
                },
                "type": {
                    "const": "combo-box",
                    "description": "The input type identifier.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.FormInfoJson.FormDateTimePickerInputJson": {
            "additionalProperties": false,
            "description": "Defines the desired user interface is a calendar date picker. See {@link https://developers.arcgis.com/web-map-specification/objects/formDatetimePickerInput/}.",
            "properties": {
                "includeTime": {
                    "description": "Indicates if the datetime picker should provide an option to select the time. If not provided, the default value is false.",
                    "type": "boolean"
                },
                "max": {
                    "description": "The maximum date to allow. The number represents the number of milliseconds since epoch (January 1, 1970) in UTC.",
                    "type": "number"
                },
                "min": {
                    "description": "The minimum date to allow. The number represents the number of milliseconds since epoch (January 1, 1970) in UTC.",
                    "type": "number"
                },
                "type": {
                    "const": "datetime-picker",
                    "description": "The input type identifier.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.FormInfoJson.FormExpressionInfoJson": {
            "additionalProperties": false,
            "description": "Arcade expression used in the form. See {@link https://developers.arcgis.com/web-map-specification/objects/formExpressionInfo/}.",
            "properties": {
                "expression": {
                    "description": "The Arcade expression.",
                    "type": "string"
                },
                "name": {
                    "description": "Unique identifier for the expression.",
                    "type": "string"
                },
                "returnType": {
                    "const": "boolean",
                    "description": "Return type of the Arcade expression. This can be determined by the authoring client by executing the expression using a sample feature(s), although it can be corrected by the user.",
                    "type": "string"
                },
                "title": {
                    "description": "Title of the expression.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.FormInfoJson.FormFieldElementJson": {
            "additionalProperties": false,
            "description": "Defines how a field in the dataset participates in the form. See {@link https://developers.arcgis.com/web-map-specification/objects/formFieldElement/}.",
            "properties": {
                "description": {
                    "description": "A string that describes the element in detail.",
                    "type": "string"
                },
                "domain": {
                    "$ref": "#/definitions/DomainJson",
                    "description": "The domain to apply to this field. If defined, it takes precedence over domains defined in field, type, or subtype."
                },
                "editable": {
                    "description": "A Boolean determining whether users can edit this form element. If not supplied, the editable state is derived from the editable property of referenced field in the service.",
                    "type": "boolean"
                },
                "fieldName": {
                    "description": "A string containing the field name as defined by the feature layer.",
                    "type": "string"
                },
                "inputType": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/esri.rest-api.FormInfoJson.FormBarcodeScannerInputJson"
                        },
                        {
                            "$ref": "#/definitions/esri.rest-api.FormInfoJson.FormComboBoxInputJson"
                        },
                        {
                            "$ref": "#/definitions/esri.rest-api.FormInfoJson.FormDateTimePickerInputJson"
                        },
                        {
                            "$ref": "#/definitions/esri.rest-api.FormInfoJson.FormRadioButtonsInputJson"
                        },
                        {
                            "$ref": "#/definitions/esri.rest-api.FormInfoJson.FormSwitchInputJson"
                        },
                        {
                            "$ref": "#/definitions/esri.rest-api.FormInfoJson.FormTextAreaInputJson"
                        },
                        {
                            "$ref": "#/definitions/esri.rest-api.FormInfoJson.FormTextBoxInputJson"
                        }
                    ],
                    "description": "The input user interface to use for the element. If an input type is not supplied or the client application does not understand the supplied input type, the client application is responsible for defining the default user interface."
                },
                "label": {
                    "description": "A string indicating what the element represents. If not supplied, the label is derived from the alias property in the referenced field in the service.",
                    "type": "string"
                },
                "requiredExpression": {
                    "description": "A reference to an Arcade expression that returns a boolean value. When this expression evaluates to true and the element is visible, the element must have a valid value in order for the feature to be created or edited. When the expression evaluates to false the element is not required. If no expression is provided, the default behavior is that the element is not required. If the referenced field is non-nullable, the required expression is ignored and the element is always required.",
                    "type": "string"
                },
                "type": {
                    "const": "field",
                    "description": "A string indicating which type of element to use.",
                    "type": "string"
                },
                "visibilityExpression": {
                    "description": "A reference to an Arcade expression that returns a boolean value. When this expression evaluates to true, the element is displayed. When the expression evaluates to false the element is not displayed. If no expression is provided, the default behavior is that the element is displayed. Care must be taken when defining a visibility expression for a non-nullable field i.e. to make sure that such fields either have default values or are made visible to users so that they can provide a value before submitting the form.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.FormInfoJson.FormGroupElementJson": {
            "additionalProperties": false,
            "description": "Defines a container that holds a set of form elements that can be expanded, collapsed, or displayed together. See {@link https://developers.arcgis.com/web-map-specification/objects/formGroupElement/}.",
            "properties": {
                "description": {
                    "description": "A string that describes the element in detail.",
                    "type": "string"
                },
                "formElements": {
                    "description": "An array of Form Element objects that represent an ordered list of form elements. Nested group elements are not supported.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/definitions/esri.rest-api.FormInfoJson.FormAttachmentElementJson"
                            },
                            {
                                "$ref": "#/definitions/esri.rest-api.FormInfoJson.FormFieldElementJson"
                            },
                            {
                                "$ref": "#/definitions/esri.rest-api.FormInfoJson.FormRelationshipElementJson"
                            }
                        ]
                    },
                    "type": "array"
                },
                "initialState": {
                    "description": "Defines if the group should be expanded or collapsed when the form is initially displayed. If not provided, the default value is expanded.",
                    "enum": [
                        "collapsed",
                        "expanded"
                    ],
                    "type": "string"
                },
                "label": {
                    "description": "A string value indicating what the element represents.",
                    "type": "string"
                },
                "type": {
                    "const": "group",
                    "description": "String value indicating which type of element to use.",
                    "type": "string"
                },
                "visibilityExpression": {
                    "description": "A reference to an Arcade expression that returns a boolean value. When this expression evaluates to true, the element is displayed. When the expression evaluates to false the element is not displayed. If no expression is provided, the default behavior is that the element is displayed.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.FormInfoJson.FormInfoJson": {
            "additionalProperties": false,
            "description": "Defines the form configuration when a user edits a feature. See {@link https://developers.arcgis.com/web-map-specification/objects/formInfo/}.",
            "properties": {
                "description": {
                    "description": "A string that appears in the body of the form as a description.",
                    "type": "string"
                },
                "expressionInfos": {
                    "description": "List of Arcade expressions used in the form.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.FormInfoJson.FormExpressionInfoJson"
                    },
                    "type": "array"
                },
                "formElements": {
                    "description": "An array of formElement objects that represent an ordered list of form elements.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/definitions/esri.rest-api.FormInfoJson.FormAttachmentElementJson"
                            },
                            {
                                "$ref": "#/definitions/esri.rest-api.FormInfoJson.FormFieldElementJson"
                            },
                            {
                                "$ref": "#/definitions/esri.rest-api.FormInfoJson.FormGroupElementJson"
                            },
                            {
                                "$ref": "#/definitions/esri.rest-api.FormInfoJson.FormRelationshipElementJson"
                            }
                        ]
                    },
                    "type": "array"
                },
                "title": {
                    "description": "A string that appears at the top of the form as a title.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.FormInfoJson.FormRadioButtonsInputJson": {
            "additionalProperties": false,
            "description": "Defines the desired user interface is a radio button group. See {@link https://developers.arcgis.com/web-map-specification/objects/formRadioButtonsInput/}.",
            "properties": {
                "noValueOptionLabel": {
                    "description": "The text used to represent a null value.",
                    "type": "string"
                },
                "showNoValueOption": {
                    "description": "Determines whether null value option is displayed. This only applies to fields that support null values. If not provided, the default value is false.",
                    "type": "boolean"
                },
                "type": {
                    "const": "radio-buttons",
                    "description": "The input type identifier.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.FormInfoJson.FormRelationshipElementJson": {
            "additionalProperties": false,
            "description": "Defines how a relationship between feature layers and tables can participate in the form. When present in the form, the user may have the option to add or edit related records. See {@link https://developers.arcgis.com/web-map-specification/objects/formRelationshipElement/}.",
            "properties": {
                "description": {
                    "description": "A string that describes the element in detail.",
                    "type": "string"
                },
                "displayCount": {
                    "description": "An integer that indicates the maximum number of records to display.",
                    "type": "number"
                },
                "displayType": {
                    "const": "list",
                    "description": "A string that defines how the related records should be displayed.",
                    "type": "string"
                },
                "editable": {
                    "description": "A Boolean determining whether users can edit this form element. If not supplied the default value is true.",
                    "type": "boolean"
                },
                "label": {
                    "description": "A string value indicating what the element represents.",
                    "type": "string"
                },
                "type": {
                    "const": "relationship",
                    "description": "String value indicating which type of element to use.",
                    "type": "string"
                },
                "visibilityExpression": {
                    "description": "A reference to an Arcade expression that returns a boolean value. When this expression evaluates to true, the element is displayed. When the expression evaluates to false the element is not displayed. If no expression is provided, the default behavior is that the element is displayed.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.FormInfoJson.FormSwitchInputJson": {
            "additionalProperties": false,
            "description": "Defines a desired user interface to present a binary switch, or toggle. This should be used when selecting between two options. See {@link https://developers.arcgis.com/web-map-specification/objects/formSwitchInput/}.",
            "properties": {
                "offValue": {
                    "description": "The coded value when switch state is off.",
                    "type": [
                        "string",
                        "number"
                    ]
                },
                "onValue": {
                    "description": "The coded value when switch state is on.",
                    "type": [
                        "string",
                        "number"
                    ]
                },
                "type": {
                    "const": "switch",
                    "description": "The input type identifier.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.FormInfoJson.FormTextAreaInputJson": {
            "additionalProperties": false,
            "description": "Defines the desired user interface is a multi-line text area. See {@link https://developers.arcgis.com/web-map-specification/objects/formTextAreaInput/}.",
            "properties": {
                "maxLength": {
                    "description": "This represents the maximum number of characters allowed. If not supplied, the value is derived from the length property of the referenced field in the service.",
                    "type": "number"
                },
                "minLength": {
                    "description": "This represents the minimum number of characters allowed. If not supplied, the value is 0, meaning there is no minimum constraint.",
                    "type": "number"
                },
                "type": {
                    "const": "text-area",
                    "description": "The input type identifier.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.FormInfoJson.FormTextBoxInputJson": {
            "additionalProperties": false,
            "description": "Defines the desired user interface is a single-line text box. See {@link https://developers.arcgis.com/web-map-specification/objects/formTextBoxInput/}.",
            "properties": {
                "maxLength": {
                    "description": "This represents the maximum number of characters allowed. This only applies for string fields. If not supplied, the value is derived from the length property of the referenced field in the service.",
                    "type": "number"
                },
                "minLength": {
                    "description": "This represents the minimum number of characters allowed. This only applies for string fields. If not supplied, the value is 0, meaning there is no minimum constraint.",
                    "type": "number"
                },
                "type": {
                    "const": "text-box",
                    "description": "The input type identifier.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.GeoJSONLayerJson.GeoJSONLayerJson": {
            "additionalProperties": false,
            "description": "The GeoJSON layer type references a GeoJSON or TXT file from a publicly-accessible web server. It then dynamically loads into the map at run time. The GeoJSON layer will maintain a reference to the GeoJSON resource.\n\nWeb map spec: {@link https://developers.arcgis.com/web-map-specification/objects/geoJsonLayer/}. Web scene spec: {@link https://developers.arcgis.com/web-scene-specification/objects/geoJsonLayer/}.",
            "properties": {
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "disablePopup": {
                    "description": "Indicates whether to allow a client to ignore popups defined by the service item.",
                    "type": "boolean"
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "id": {
                    "description": "A unique identifying string for the layer.",
                    "type": "string"
                },
                "layerDefinition": {
                    "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.LayerDefinitionJson",
                    "description": "A layerDefinition object defining the attribute schema and drawing information for the layer."
                },
                "layerType": {
                    "const": "GeoJSON",
                    "description": "The type of layer.",
                    "type": "string"
                },
                "listMode": {
                    "description": "Indicates how the layer should display in the table of contents. The known values are listed below. See {@link support /esri!ListMode}."
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "popupInfo": {
                    "$ref": "#/definitions/esri.rest-api.PopupInfoJson.PopupInfoJson",
                    "description": "A PopupInfo object defining the content of pop-up windows when you click or query a feature."
                },
                "refreshInterval": {
                    "description": "When the refresh interval is set on a layer, the client must refresh that layer only, not the entire web map. The default value is '0', meaning the no refresh. You can enable a refresh interval on the following types of layers: ArcGIS Server web service, hosted feature layer, hosted tile layer, OGC WMS, OGS WMTS, tile layer, GeoRSS, Living Atlas layers, basemaps (including Bing Maps basemaps), CSV from the web with latitude and longitude fields, and KML when added to ArcGIS Online through the My Content page. See {@link https://doc.arcgis.com/en/arcgis-online/create-maps/set-refresh-interval.htm}.",
                    "type": "number"
                },
                "screenSizePerspective": {
                    "description": "Apply perspective scaling to screen-size symbols.",
                    "type": "boolean"
                },
                "showLabels": {
                    "description": "Indicates whether to display labels for this layer. If true, labels will appear as defined in the labelingInfo property.",
                    "type": "boolean"
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "url": {
                    "description": "The URL to the GeoJSON file that backs the layer.",
                    "type": "string"
                },
                "visibility": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                }
            },
            "required": [
                "layerType"
            ],
            "type": "object"
        },
        "esri.rest-api.GeoRSSLayerJson.GeoRSSLayerJson": {
            "additionalProperties": false,
            "description": "GeoRSS feeds may contain any combination of points, lines, and polygons. Web clients use a GeoRSS to JSON request service. This service returns one to many feature collections with different geometry types. The returned JSON specifies the point, lines, and polygons symbols used to display the features in that layer.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/geoRSSLayer/}.",
            "properties": {
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "id": {
                    "description": "A unique identifying string for the layer.",
                    "type": "string"
                },
                "layerType": {
                    "const": "GeoRSS",
                    "description": "The type of layer.",
                    "type": "string"
                },
                "lineSymbol": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.SimpleLineSymbolJson",
                    "description": "Defined by the GeoRSS to JSON request service. If the GeoRSS feed does not have lines, this property is not added to the layer JSON."
                },
                "listMode": {
                    "description": "Indicates how the layer should display in the table of contents. The known values are listed below. See {@link support /esri!ListMode}."
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "pointSymbol": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.PictureMarkerSymbolJson",
                    "description": "Defined by the GeoRSS to JSON request service. If the GeoRSS feed does not have points, this property is not added to the layer JSON."
                },
                "polygonSymbol": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.SimpleFillSymbolJson",
                    "description": "Defined by the GeoRSS to JSON request service. If the GeoRSS feed does not have polygons, this property is not added to the layer JSON."
                },
                "refreshInterval": {
                    "description": "When the refresh interval is set on a layer, the client must refresh that layer only, not the entire web map. The default value is '0', meaning the no refresh. You can enable a refresh interval on the following types of layers: ArcGIS Server web service, hosted feature layer, hosted tile layer, OGC WMS, OGS WMTS, tile layer, GeoRSS, Living Atlas layers, basemaps (including Bing Maps basemaps), CSV from the web with latitude and longitude fields, and KML when added to ArcGIS Online through the My Content page. See {@link https://doc.arcgis.com/en/arcgis-online/create-maps/set-refresh-interval.htm}.",
                    "type": "number"
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "url": {
                    "description": "The URL to the layer.",
                    "type": "string"
                },
                "visibility": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                }
            },
            "required": [
                "layerType"
            ],
            "type": "object"
        },
        "esri.rest-api.GeometryJson.ExtentJson": {
            "additionalProperties": false,
            "description": "This object defines the bounding geometry given the lower-left and upper-right corners of the bounding box. A spatial reference is also required. See {@link https://developers.arcgis.com/web-map-specification/objects/envelope_geometry/} {@link https://developers.arcgis.com/web-map-specification/objects/extent/} {@link https://developers.arcgis.com/web-scene-specification/objects/extent/}.",
            "properties": {
                "spatialReference": {
                    "$ref": "#/definitions/esri.rest-api.SpatialReferenceJson.SpatialReferenceJson",
                    "description": "The spatial reference can be defined using a well-known ID (WKID) or well-known text (WKT)."
                },
                "xmax": {
                    "description": "A numeric value indicating the top-right X-coordinate of an extent envelope.",
                    "type": "number"
                },
                "xmin": {
                    "description": "A numeric value indicating the bottom-left X-coordinate of an extent envelope.",
                    "type": "number"
                },
                "ymax": {
                    "description": "A numeric value indicating the top-right Y-coordinate of an extent envelope.",
                    "type": "number"
                },
                "ymin": {
                    "description": "A numeric value indicating the bottom-left Y-coordinate of an extent envelope.",
                    "type": "number"
                }
            },
            "type": "object"
        },
        "esri.rest-api.GeometryJson.MultipointJson": {
            "additionalProperties": false,
            "description": "Contains an array of points, along with a spatial reference field. See {@link https://developers.arcgis.com/web-map-specification/objects/multipoint_geometry/} {@link https://developers.arcgis.com/web-scene-specification/objects/multipoint_geometry/}.",
            "properties": {
                "hasM": {
                    "description": "Indicates whether the geometry contains M coordinate values.",
                    "type": "boolean"
                },
                "hasZ": {
                    "description": "Indicates whether the geometry contains Z coordinate values.",
                    "type": "boolean"
                },
                "points": {
                    "description": "An array that corresponds to 2D and 3D points.",
                    "items": {
                        "items": {
                            "type": "number"
                        },
                        "type": "array"
                    },
                    "type": "array"
                },
                "spatialReference": {
                    "$ref": "#/definitions/esri.rest-api.SpatialReferenceJson.SpatialReferenceJson",
                    "description": "The spatial reference can be defined using a well-known ID (WKID) or well-known text (WKT)."
                }
            },
            "required": [
                "points"
            ],
            "type": "object"
        },
        "esri.rest-api.GeometryJson.PointJson": {
            "additionalProperties": false,
            "description": "Defines the JSON formats of the point and spatial reference objects. See {@link https://developers.arcgis.com/web-map-specification/objects/point_geometry/}. See {@link https://developers.arcgis.com/web-map-specification/objects/point_geometry/}.",
            "properties": {
                "m": {
                    "description": "M coordinate which contains measures used for linear referencing.",
                    "type": "number"
                },
                "spatialReference": {
                    "$ref": "#/definitions/esri.rest-api.SpatialReferenceJson.SpatialReferenceJson",
                    "description": "The spatial reference can be defined using a well-known ID (WKID) or well-known text (WKT)."
                },
                "x": {
                    "description": "X coordinate which is measured along the east/west axis.",
                    "type": [
                        "string",
                        "number"
                    ]
                },
                "y": {
                    "description": "Y coordinate which is measured along the north/south axis.",
                    "type": [
                        "string",
                        "number"
                    ]
                },
                "z": {
                    "description": "Z coordinate which measures height or elevation.",
                    "type": [
                        "string",
                        "number"
                    ]
                }
            },
            "required": [
                "x",
                "y"
            ],
            "type": "object"
        },
        "esri.rest-api.GeometryJson.PolygonJson": {
            "additionalProperties": false,
            "description": "A polygon contains an array of rings and a spatial reference. See {@link https://developers.arcgis.com/web-map-specification/objects/polygon_geometry/} {@link https://developers.arcgis.com/web-scene-specification/objects/polygon_geometry/}.",
            "properties": {
                "hasM": {
                    "description": "Indicates whether the geometry contains M coordinate values.",
                    "type": "boolean"
                },
                "hasZ": {
                    "description": "Indicates whether the geometry contains Z coordinate values.",
                    "type": "boolean"
                },
                "rings": {
                    "description": "Represents an array of points. Each point is an array of numbers.",
                    "items": {
                        "items": {
                            "items": {
                                "type": "number"
                            },
                            "type": "array"
                        },
                        "type": "array"
                    },
                    "type": "array"
                },
                "spatialReference": {
                    "$ref": "#/definitions/esri.rest-api.SpatialReferenceJson.SpatialReferenceJson",
                    "description": "The spatial reference can be defined using a well-known ID (WKID) or well-known text (WKT)."
                }
            },
            "required": [
                "rings"
            ],
            "type": "object"
        },
        "esri.rest-api.GeometryJson.PolylineJson": {
            "additionalProperties": false,
            "description": "Contains an array of paths and a spatialReference. See {@link https://developers.arcgis.com/web-map-specification/objects/polyline_geometry/} {@link https://developers.arcgis.com/web-scene-specification/objects/polyline_geometry/}.",
            "properties": {
                "hasM": {
                    "description": "Indicates whether the geometry contains M coordinate values.",
                    "type": "boolean"
                },
                "hasZ": {
                    "description": "Indicates whether the geometry contains Z coordinate values.",
                    "type": "boolean"
                },
                "paths": {
                    "description": "Three nested arrays which corresponds to a polyline.",
                    "items": {
                        "items": {
                            "items": {
                                "type": "number"
                            },
                            "type": "array"
                        },
                        "type": "array"
                    },
                    "type": "array"
                },
                "spatialReference": {
                    "$ref": "#/definitions/esri.rest-api.SpatialReferenceJson.SpatialReferenceJson",
                    "description": "The spatial reference can be defined using a well-known ID (WKID) or well-known text (WKT)."
                }
            },
            "required": [
                "paths"
            ],
            "type": "object"
        },
        "esri.rest-api.GroundJson.GroundJson": {
            "additionalProperties": false,
            "description": "Ground defines the main surface of the web scene, based on elevation layers..\n\nSee https://developers.arcgis.com/web-scene-specification/objects/ground/.",
            "properties": {
                "layers": {
                    "description": "An array of elevationLayer objects defining the elevation of the ground in the web scene.",
                    "items": {
                        "$ref": "#/definitions/ElevationLayerJson"
                    },
                    "type": "array"
                },
                "navigationConstraint": {
                    "$ref": "__type",
                    "description": "Determines whether the camera is constrained to navigate only above, or also under the ground surface."
                },
                "surfaceColor": {
                    "$ref": "#/definitions/ColorJson",
                    "description": "Defines the color of the ground surface, displayed underneath the basemap. If no color, the default grid is shown."
                },
                "transparency": {
                    "description": "The transparency of the ground surface. It is used for seeing through the ground, therefore this property also changes the transparency of the basemap. Draped operational layers are not affected by this property. The value has to lie between 100 (full transparency) and 0 (full opacity).",
                    "type": "number"
                }
            },
            "type": "object"
        },
        "esri.rest-api.GroupLayerJson.GroupLayerJson": {
            "additionalProperties": false,
            "description": "GroupLayer provides the ability to organize several sublayers into one common layer. Suppose there are several FeatureLayers that all represent water features in different dimensions. For example, wells (points), streams (lines), and lakes (polygons). The GroupLayer provides the functionality to treat them as one layer called Water Features even though they are stored as separate feature layers.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/groupLayer/}.",
            "properties": {
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "id": {
                    "description": "A unique identifying string for the layer.",
                    "type": "string"
                },
                "layerType": {
                    "const": "GroupLayer",
                    "description": "String indicating the layer type. Value of this property must be GroupLayer.",
                    "type": "string"
                },
                "layers": {
                    "description": "List of child operationalLayers.",
                    "items": {
                        "$ref": "#/definitions/OperationalLayerJson"
                    },
                    "type": "array"
                },
                "listMode": {
                    "description": "To show or hide the group layer in the layer list. See {@link support /esri!ListMode}."
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "refreshInterval": {
                    "description": "When the refresh interval is set on a layer, the client must refresh that layer only, not the entire web map. The default value is '0', meaning the no refresh. You can enable a refresh interval on the following types of layers: ArcGIS Server web service, hosted feature layer, hosted tile layer, OGC WMS, OGS WMTS, tile layer, GeoRSS, Living Atlas layers, basemaps (including Bing Maps basemaps), CSV from the web with latitude and longitude fields, and KML when added to ArcGIS Online through the My Content page. See {@link https://doc.arcgis.com/en/arcgis-online/create-maps/set-refresh-interval.htm}.",
                    "type": "number"
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "visibility": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityMode": {
                    "description": "How visibility of children is affected: independent, exclusive, inherited.",
                    "enum": [
                        "exclusive",
                        "independent",
                        "inherited"
                    ],
                    "type": "string"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                }
            },
            "required": [
                "layerType"
            ],
            "type": "object"
        },
        "esri.rest-api.ImageServiceLayerJson.ImageServiceLayerJson": {
            "additionalProperties": false,
            "description": "An image service provides access to raster data through a web service. Multiple rasters can be served as one image service through mosaic dataset technology, dynamically processed and mosaiced on the fly. An image service supports accessing both the mosaicked image and its catalog, as well as individual rasters in the catalog. Also, image services can be cached (tiled) or uncached (dynamic). This object specifically details properties within uncached image services.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/imageServiceLayer/} {@link https://developers.arcgis.com/web-scene-specification/objects/imageServiceLayer/}.",
            "properties": {
                "bandIds": {
                    "description": "An array of bandIds that are visible, can specify bands to export or rearrange band order(from image service).",
                    "items": {
                        "type": "number"
                    },
                    "type": "array"
                },
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "compressionQuality": {
                    "description": "Controls how much loss the image will be subjected to by the compression algorithm (from image service).",
                    "type": "number"
                },
                "copyright": {
                    "description": "The attribution information for the layer. (not in the documentation).",
                    "type": "string"
                },
                "customParameters": {
                    "description": "A sequence of custom parameters appended to the URL of all requests related to supporting ArcGIS layer types."
                },
                "definitionEditor": {
                    "$ref": "#/definitions/esri.rest-api.DefinitionEditorJson.DefinitionEditorJson",
                    "description": "Stores interactive filters."
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "format": {
                    "description": "The output image type.",
                    "enum": [
                        "jpg",
                        "jpgpng",
                        "lerc",
                        "png",
                        "png24",
                        "png32",
                        "png8",
                        "tiff"
                    ],
                    "type": "string"
                },
                "id": {
                    "description": "A unique identifying string for the layer.",
                    "type": "string"
                },
                "interpolation": {
                    "description": "The algorithm used for interpolation.",
                    "enum": [
                        "RSP_BilinearInterpolation",
                        "RSP_CubicConvolution",
                        "RSP_Majority",
                        "RSP_NearestNeighbor"
                    ],
                    "type": "string"
                },
                "isReference": {
                    "description": "This 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).",
                    "type": "boolean"
                },
                "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"
                },
                "layerDefinition": {
                    "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.LayerDefinitionJson",
                    "description": "A layerDefinition object defining the attribute schema and drawing information for the layer."
                },
                "layerType": {
                    "const": "ArcGISImageServiceLayer",
                    "description": "The type of layer.",
                    "type": "string"
                },
                "listMode": {
                    "description": "Indicates how the layer should display in the table of contents. The known values are listed below. See {@link support /esri!ListMode}."
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "mosaicRule": {
                    "$ref": "#/definitions/esri.rest-api.MosaicRuleJson.MosaicRuleJson",
                    "description": "Specifies the mosaic rule when defining how individual images should be mosaiced."
                },
                "noDataInterpretation": {
                    "description": "A string value of interpretation of noData setting. Default is 'esriNoDataMatchAny' when noData is a number, and 'esriNoDataMatchAll' when noData is an array.",
                    "enum": [
                        "esriNoDataMatchAll",
                        "esriNoDataMatchAny"
                    ],
                    "type": "string"
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "pixelType": {
                    "description": "Pertains to the type of values stored in the raster, such as signed integer, unsigned integer, or floating point. See OutputPixelType.",
                    "type": "string"
                },
                "popupInfo": {
                    "$ref": "#/definitions/esri.rest-api.PopupInfoJson.PopupInfoJson",
                    "description": "A PopupInfo object defining the content of pop-up windows when you click or query a feature."
                },
                "refreshInterval": {
                    "description": "When the refresh interval is set on a layer, the client must refresh that layer only, not the entire web map. The default value is '0', meaning the no refresh. You can enable a refresh interval on the following types of layers: ArcGIS Server web service, hosted feature layer, hosted tile layer, OGC WMS, OGS WMTS, tile layer, GeoRSS, Living Atlas layers, basemaps (including Bing Maps basemaps), CSV from the web with latitude and longitude fields, and KML when added to ArcGIS Online through the My Content page. See {@link https://doc.arcgis.com/en/arcgis-online/create-maps/set-refresh-interval.htm}.",
                    "type": "number"
                },
                "renderingRule": {
                    "$ref": "#/definitions/esri.rest-api.ImageServiceLayerJson.RenderingRuleJson",
                    "description": "Specifies the rule for how the requested image should be rendered."
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "timeAnimation": {
                    "description": "This property is applicable to layers that support time. If 'true', timeAnimation is enabled.",
                    "type": "boolean"
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "url": {
                    "description": "The URL to the layer.",
                    "type": "string"
                },
                "visibility": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                }
            },
            "required": [
                "layerType"
            ],
            "type": "object"
        },
        "esri.rest-api.ImageServiceLayerJson.RenderingRuleJson": {
            "additionalProperties": false,
            "description": "Specifies the rendering rule for how the requested image should be rendered.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/renderingRule/} {@link https://developers.arcgis.com/web-scene-specification/objects/renderingRule/}.",
            "properties": {
                "outputPixelType": {
                    "description": "Defines the pixel type of the output image.",
                    "enum": [
                        "C128",
                        "C64",
                        "F32",
                        "F64",
                        "S16",
                        "S32",
                        "S8",
                        "U1",
                        "U16",
                        "U2",
                        "U32",
                        "U4",
                        "U8",
                        "UNKNOWN"
                    ],
                    "type": "string"
                },
                "rasterFunction": {
                    "description": "The raster function name identifies the processing or rendering to be performed. See {@link http://resources.arcgis.com/en/help/arcgis-rest-api/#/Raster_Function_Objects/02r3000000rv000000/}.",
                    "type": "string"
                },
                "rasterFunctionArguments": {
                    "description": "The arguments for the referenced rasterFunction."
                },
                "variableName": {
                    "description": "Variable name for the raster function.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.ImageServiceVectorLayerJson.ImageServiceVectorLayerJson": {
            "additionalProperties": false,
            "description": "The imageServiceVectorLayer displays pixel values as vectors. To do this, the image service layer must be a two-band raster in which one band holds magnitude values and one band holds direction values. The imageServiceVectorLayer also supports time-enabled data.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/imageServiceVectorLayer/}.",
            "properties": {
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "customParameters": {
                    "description": "A sequence of custom parameters appended to the URL of all requests related to supporting ArcGIS layer types."
                },
                "definitionEditor": {
                    "$ref": "#/definitions/esri.rest-api.DefinitionEditorJson.DefinitionEditorJson",
                    "description": "Stores interactive filters."
                },
                "disablePopup": {
                    "description": "Boolean property indicating whether to ignore popups defined by the service item.",
                    "type": "boolean"
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "id": {
                    "description": "A unique identifying string for the layer.",
                    "type": "string"
                },
                "isReference": {
                    "description": "This 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).",
                    "type": "boolean"
                },
                "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"
                },
                "layerDefinition": {
                    "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.LayerDefinitionJson",
                    "description": "A layerDefinition object defining the attribute schema and drawing information for the layer."
                },
                "layerType": {
                    "const": "ArcGISImageServiceVectorLayer",
                    "description": "The type of layer.",
                    "type": "string"
                },
                "listMode": {
                    "description": "Indicates how the layer should display in the table of contents. The known values are listed below. See {@link support /esri!ListMode}."
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "mosaicRule": {
                    "$ref": "#/definitions/esri.rest-api.MosaicRuleJson.MosaicRuleJson",
                    "description": "Specifies the mosaic rule when defining how individual images should be mosaiced."
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "refreshInterval": {
                    "description": "When the refresh interval is set on a layer, the client must refresh that layer only, not the entire web map. The default value is '0', meaning the no refresh. You can enable a refresh interval on the following types of layers: ArcGIS Server web service, hosted feature layer, hosted tile layer, OGC WMS, OGS WMTS, tile layer, GeoRSS, Living Atlas layers, basemaps (including Bing Maps basemaps), CSV from the web with latitude and longitude fields, and KML when added to ArcGIS Online through the My Content page. See {@link https://doc.arcgis.com/en/arcgis-online/create-maps/set-refresh-interval.htm}.",
                    "type": "number"
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "timeAnimation": {
                    "description": "This property is applicable to layers that support time. If 'true', timeAnimation is enabled.",
                    "type": "boolean"
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "url": {
                    "description": "The URL to the layer.",
                    "type": "string"
                },
                "visibility": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                }
            },
            "required": [
                "disablePopup",
                "layerType",
                "url"
            ],
            "type": "object"
        },
        "esri.rest-api.IntegratedMeshLayerJson.IntegratedMeshLayerJson": {
            "additionalProperties": false,
            "description": "An integrated mesh can represent built and natural 3D features, such as building walls, trees, valleys, and cliffs, with realistic textures and includes elevation information.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/integratedMeshLayer/}.",
            "properties": {
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "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": {
                    "const": "IntegratedMeshLayer",
                    "description": "The type of layer.",
                    "type": "string"
                },
                "listMode": {
                    "description": "Indicates how the layer should display in the table of contents. The known values are listed below. See {@link support /esri!ListMode}."
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "refreshInterval": {
                    "description": "When the refresh interval is set on a layer, the client must refresh that layer only, not the entire web map. The default value is '0', meaning the no refresh. You can enable a refresh interval on the following types of layers: ArcGIS Server web service, hosted feature layer, hosted tile layer, OGC WMS, OGS WMTS, tile layer, GeoRSS, Living Atlas layers, basemaps (including Bing Maps basemaps), CSV from the web with latitude and longitude fields, and KML when added to ArcGIS Online through the My Content page. See {@link https://doc.arcgis.com/en/arcgis-online/create-maps/set-refresh-interval.htm}.",
                    "type": "number"
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "url": {
                    "description": "URL to the ArcGIS Server Image Service.",
                    "type": "string"
                },
                "visibility": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                }
            },
            "required": [
                "layerType"
            ],
            "type": "object"
        },
        "esri.rest-api.ItemJson.ItemJson": {
            "additionalProperties": false,
            "description": "An item (a unit of content) in the portal. Each item has a unique identifier and a well known URL that is independent of the user owning the item. An item can have associated binary or textual data that's available via the item data resource. For example, an item of type Map Package returns the actual bits corresponding to the map package via the item data resource. The numViews is incremented when an item is opened.\n\nSee {@link http://resources.arcgis.com/en/help/arcgis-rest-api/index.html#/Item/02r30000007w000000/}.",
            "properties": {
                "access": {
                    "description": "Indicates the level of access to this item: private, shared, org, or public.",
                    "type": "string"
                },
                "accessInformation": {
                    "description": "Information on the source of the item and its copyright status.",
                    "type": "string"
                },
                "advancedSettings": {
                    "description": "<not in spec>."
                },
                "appCategories": {
                    "description": "An array that primarily applies to a list of categories that the application item is applicable to.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "avgRating": {
                    "description": "Average rating. Uses a weighted average called \"Bayesian average.\".",
                    "type": "number"
                },
                "banner": {
                    "description": "Primarily applies to the banner associated with an application. The URL to the banner used for the application.",
                    "type": "string"
                },
                "categories": {
                    "description": "An array of organization categories that are set on the item.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "commentsEnabled": {
                    "description": "Indicates if comments are allowed on the item.",
                    "type": "boolean"
                },
                "contentOrigin": {
                    "description": "<not in spec>.",
                    "type": "string"
                },
                "created": {
                    "description": "The date the item was created. Shown in UNIX time in milliseconds.",
                    "type": "number"
                },
                "culture": {
                    "description": "The item locale information (language and country).",
                    "type": "string"
                },
                "description": {
                    "description": "Item description.",
                    "type": "string"
                },
                "documentation": {
                    "description": "<not in spec>."
                },
                "extent": {
                    "description": "The bounding rectangle of the item. Should always be in WGS84.",
                    "items": {
                        "items": {
                            "type": "number"
                        },
                        "type": "array"
                    },
                    "type": "array"
                },
                "groupDesignations": {
                    "description": "<not in spec>."
                },
                "guid": {
                    "description": "<not in spec>.",
                    "type": "string"
                },
                "id": {
                    "description": "The unique ID for this item.",
                    "type": "string"
                },
                "industries": {
                    "description": "Primarily applies to industries associated with the application.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "isOrgItem": {
                    "description": "<not in spec>.",
                    "type": "boolean"
                },
                "itemControl": {
                    "description": "Indicates user's control to the item.\n\nValues: admin (for item owner and org admin) | update (for members of groups with item update capability that the item is shared with).",
                    "enum": [
                        "admin",
                        "update"
                    ],
                    "type": "string"
                },
                "languages": {
                    "description": "Primarily applies to languages associated with the application.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "largeThumbnail": {
                    "description": "Primarily applies to thumbnails associated with an application. The URL to the thumbnail used for the application.",
                    "type": "string"
                },
                "lastViewed": {
                    "description": "The date/time the item was last accessed in UNIX format (in milliseconds).",
                    "type": "number"
                },
                "licenseInfo": {
                    "description": "Any license information or restrictions.",
                    "type": "string"
                },
                "listed": {
                    "description": "Primarily applies to the banner associated with an application. The URL to the banner used for the application.",
                    "type": "boolean"
                },
                "modified": {
                    "description": "The date the item was last modified. Shown in UNIX time in milliseconds.",
                    "type": "number"
                },
                "name": {
                    "description": "The file name of the item for file types. Read-only.",
                    "type": "string"
                },
                "numComments": {
                    "description": "Number of comments on the item.",
                    "type": "number"
                },
                "numRatings": {
                    "description": "Number of ratings on the item.",
                    "type": "number"
                },
                "numViews": {
                    "description": "Number of views of the item.",
                    "type": "number"
                },
                "orgId": {
                    "description": "<not in spec>.",
                    "type": "string"
                },
                "owner": {
                    "description": "The username of the user who owns this item.",
                    "type": "string"
                },
                "ownerFolder": {
                    "description": "The ID of the folder in which the owner has stored the item. The property is only returned to the item owner or the org admin.",
                    "type": "string"
                },
                "properties": {
                    "description": "A JSON object that primarily applies to system requirements, Terms and Conditions, version, supported platforms, YouTube video ID, etc associated with the application.",
                    "type": "string"
                },
                "protected": {
                    "description": "Protects the item from deletion. False is the default.",
                    "type": "boolean"
                },
                "proxyFilter": {
                    "description": "A JSON object used to restrict service item response results based on specified filter, i.e. limit results returned from a geocode service based on defined filters.See serviceProxyFilter for object details."
                },
                "scoreCompleteness": {
                    "description": "Item information completeness score based upon item snippet, thumbnail, description, title, tags etc.",
                    "type": "number"
                },
                "screenshots": {
                    "description": "Primarily applies to screenshots associated with an application. The URL to the screenshots used for the application.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "size": {
                    "description": "The size of the item.",
                    "type": "number"
                },
                "snippet": {
                    "description": "A short summary description of the item.",
                    "type": "string"
                },
                "spatialReference": {
                    "$ref": "#/definitions/esri.rest-api.SpatialReferenceJson.SpatialReferenceJson",
                    "description": "The coordinate system of the item."
                },
                "subInfo": {
                    "description": "<not in spec>.",
                    "type": "number"
                },
                "tags": {
                    "description": "User defined tags that describe the item.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "thumbnail": {
                    "description": "The URL to the thumbnail used for the item.",
                    "type": "string"
                },
                "title": {
                    "description": "The title of the item. This is the name that's displayed to users and by which they refer to the item. Every item must have a title.",
                    "type": "string"
                },
                "type": {
                    "description": "The GIS content type of this item. Example types include Web Map, Map Service, Shapefile, and Web Mapping Application. See {@link http://resources.arcgis.com/en/help/arcgis-rest-api/index.html#//02r3000000ms000000}.",
                    "type": "string"
                },
                "typeKeywords": {
                    "description": "A set of keywords that further describes the type of this item. Each item is tagged with a set of type keywords that are derived based on its primary type.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "url": {
                    "description": "The URL for the resource represented by the item. Applies only to items that represent web-accessible resources such as map services.",
                    "type": "string"
                }
            },
            "required": [
                "id"
            ],
            "type": "object"
        },
        "esri.rest-api.KMLLayerJson.KMLLayerJson": {
            "additionalProperties": false,
            "description": "Keyhole Markup Language (KML) is an XML-based format for storing geographic data and associated content and is an official Open Geospatial Consortium (OGC) standard. KML is a common format for sharing geographic data with non-GIS users as it can be easily delivered on the Internet.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/kmlLayer/}.",
            "properties": {
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "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": {
                    "const": "KML",
                    "description": "The type of layer.",
                    "type": "string"
                },
                "listMode": {
                    "description": "Indicates how the layer should display in the table of contents. The known values are listed below. See {@link support /esri!ListMode}."
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "refreshInterval": {
                    "description": "When the refresh interval is set on a layer, the client must refresh that layer only, not the entire web map. The default value is '0', meaning the no refresh. You can enable a refresh interval on the following types of layers: ArcGIS Server web service, hosted feature layer, hosted tile layer, OGC WMS, OGS WMTS, tile layer, GeoRSS, Living Atlas layers, basemaps (including Bing Maps basemaps), CSV from the web with latitude and longitude fields, and KML when added to ArcGIS Online through the My Content page. See {@link https://doc.arcgis.com/en/arcgis-online/create-maps/set-refresh-interval.htm}.",
                    "type": "number"
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "url": {
                    "description": "The URL to the layer.",
                    "type": "string"
                },
                "visibility": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                },
                "visibleFolders": {
                    "description": "Array of numeric IDs of folders that will be made visible.",
                    "items": {
                        "type": "number"
                    },
                    "type": "array"
                }
            },
            "required": [
                "layerType"
            ],
            "type": "object"
        },
        "esri.rest-api.LayerDefinitionJson.DynamicDataLayerJson": {
            "additionalProperties": false,
            "description": "A dynamic data layer derived from a registered workspace. More information on this can be found in the ArcGIS REST API help. See {@link https://developers.arcgis.com/web-map-specification/objects/dynamicDataLayer_source/} {@link https://developers.arcgis.com/web-scene-specification/objects/dynamicDataLayer_source/}.",
            "properties": {
                "dataSource": {
                    "$ref": "#/definitions/DataSourceJson",
                    "description": "This object applies if the layerDefinition source is set to DynamicDataLayer. See {@link https://developers.arcgis.com/web-map-specification/objects/dataSource/} {@link https://developers.arcgis.com/web-scene-specification/objects/dataSource/}."
                },
                "fields": {
                    "description": "An array of objects specifying information about an attribute field.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.FieldJson.FieldJson"
                    },
                    "type": "array"
                },
                "type": {
                    "const": "dataLayer",
                    "description": "A string value indicating the type. This value is dataLayer.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.LayerDefinitionJson.DynamicMapLayerJson": {
            "additionalProperties": false,
            "description": "A dynamic map layer refers to a layer in the current map service. More information on this can be found in the ArcGIS REST API help. See {@link https://developers.arcgis.com/web-map-specification/objects/dynamicMapLayer_source/} {@link https://developers.arcgis.com/web-scene-specification/objects/dynamicMapLayer_source/}.",
            "properties": {
                "gdbVersion": {
                    "description": "If applicable, specify this to use an alternate geodatabase version.",
                    "type": "string"
                },
                "mapLayerId": {
                    "description": "The current map layer's ID.",
                    "type": "number"
                },
                "type": {
                    "const": "mapLayer",
                    "description": "A string value indicating the type. This value is mapLayer.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.LayerDefinitionJson.ElevationInfoJson": {
            "additionalProperties": false,
            "description": "Specifies how graphics are placed on the vertical axis (z). This property may only be used in a SceneView. See {@link https://developers.arcgis.com/web-scene-specification/objects/elevationInfo/}.",
            "properties": {
                "featureExpression": {
                    "description": "Deprecated with 1.8, use featureExpressionInfo instead. Ignores geometry z-values."
                },
                "featureExpressionInfo": {
                    "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.FeatureExpressionInfoJson",
                    "description": "Sets the offset distance, type and other parameters."
                },
                "mode": {
                    "$ref": "ElevationModeJsonType",
                    "description": "Determines how the service elevation values are combined with the basemap elevation."
                },
                "offset": {
                    "description": "Offset is always added to the result of the above logic except for `\"onTheGround\"` where offset is ignored.",
                    "type": "number"
                },
                "unit": {
                    "description": "A string value indicating the unit for the values in elevationInfo. Applies to both offset and featureExpressionInfo. Defaults to meter if not set. Supported units: \"foot\", \"kilometer\", \"meter\", \"mile\", \"us-foot\", \"yard\".",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.LayerDefinitionJson.FeatureExpressionInfoJson": {
            "additionalProperties": false,
            "description": "An object that defines an expression for per-feature elevation. If not set, geometry.z values are used for elevation. Unit is applied to the resulting expression value.",
            "properties": {
                "expression": {
                    "description": "An Arcade expression evaluating to a number. Value of \"0\" does not use geometry.z values.",
                    "type": "string"
                },
                "title": {
                    "description": "Title of the expression.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.LayerDefinitionJson.FeatureReductionClusterJson": {
            "additionalProperties": false,
            "description": "Feature reduction of type cluster declutters the screen by hiding features that would otherwise intersect with other features on screen. The default clusterRadius for the JavaScript API is 60.",
            "properties": {
                "clusterMaxSize": {
                    "description": "Size of the largest cluster, in screen units (points).",
                    "type": "number"
                },
                "clusterMinSize": {
                    "description": "Size of the smallest cluster, in screen units (points).",
                    "type": "number"
                },
                "clusterRadius": {
                    "description": "Strength of clustering, in screen units (points).",
                    "type": "number"
                },
                "disablePopup": {
                    "description": "Indicates whether to ignore popups defined by the service item.",
                    "type": "boolean"
                },
                "drawingInfo": {
                    "$ref": "#/definitions/esri.rest-api.DrawingInfoJson.DrawingInfoJson",
                    "description": "Contains labeling information for the cluster."
                },
                "popupInfo": {
                    "$ref": "#/definitions/esri.rest-api.PopupInfoJson.PopupInfoJson",
                    "description": "Defines the look and feel of popup windows when a user clicks or queries a feature."
                },
                "showLabels": {
                    "description": "Defines whether labels should be shown in the clusters.",
                    "type": "boolean"
                },
                "type": {
                    "const": "cluster",
                    "description": "The type of feature reduction.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.LayerDefinitionJson.FeatureReductionSelectionJson": {
            "additionalProperties": false,
            "description": "Feature reduction of type selection declutters the screen by hiding features that would otherwise intersect with other features on screen. The default behavior of this feature reduction type is to select features by depth order, i.e. hide all features that would otherwise be overlapped by at least one other feature which is closer to the viewer.",
            "properties": {
                "type": {
                    "const": "selection",
                    "description": "The type of feature reduction.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.LayerDefinitionJson.FieldOverrideJson": {
            "additionalProperties": false,
            "description": "Defines overridden properties on a field for a specific view of the data. See {@link https://developers.arcgis.com/web-map-specification/objects/fieldOverride/}.",
            "properties": {
                "alias": {
                    "description": "A string containing the overridden field alias.",
                    "type": "string"
                },
                "editable": {
                    "description": "A Boolean determining whether users can edit this field.",
                    "type": "boolean"
                },
                "name": {
                    "description": "A string containing the field name as defined by the service.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.LayerDefinitionJson.JoinTableDataSourceJson": {
            "additionalProperties": false,
            "description": "Join Table data source is the result of a join operation. Nested joins are supported. To use nested joins, set either leftTableSource or rightTableSource to be a joinTable. See {@link https://developers.arcgis.com/web-map-specification/objects/joinTableDataSource/} {@link https://developers.arcgis.com/web-scene-specification/objects/joinTableDataSource/}.",
            "properties": {
                "joinType": {
                    "$ref": "JoinJsonType",
                    "description": "The type of join (left outer or left inner)."
                },
                "leftTableKey": {
                    "description": "Field name from the left table.",
                    "type": "string"
                },
                "leftTableSource": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.DynamicDataLayerJson"
                        },
                        {
                            "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.DynamicMapLayerJson"
                        }
                    ],
                    "description": "The left source. If the leftTableSource is a table, the resulting joinTable is a table. If the leftTableSource is a layer, the resulting joinTable is a layer."
                },
                "rightTableKey": {
                    "description": "Field name from the right table.",
                    "type": "string"
                },
                "rightTableSource": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.DynamicDataLayerJson"
                        },
                        {
                            "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.DynamicMapLayerJson"
                        }
                    ],
                    "description": "The right table source."
                },
                "type": {
                    "const": "joinTable",
                    "description": "Type of the DataSource.",
                    "type": "string"
                },
                "workspaceId": {
                    "description": "The unique string value used to identify the data-source's workspace.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.LayerDefinitionJson.LayerDefinitionJson": {
            "additionalProperties": false,
            "description": "The LayerDefinition object defines the attribute schema and drawing information for a layer drawn using client-side graphics. This could include a feature collection, a CSV file referenced through the web, or a single layer in an ArcGIS map service. Also used for dynamic layers.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/layerDefinition/} {@link https://developers.arcgis.com/web-scene-specification/objects/layerDefinition/}.",
            "properties": {
                "allowGeometryUpdates": {
                    "description": "Boolean value indicating whether the geometry of the features in the layer can be edited.",
                    "type": "boolean"
                },
                "capabilities": {
                    "description": "A comma-separated string listing which editing operations are allowed on an editable feature service. Available operations include: Create | Delete | Query | Update | Editing.",
                    "type": "string"
                },
                "copyrightText": {
                    "description": "String value for the copyright text information for the layer.",
                    "type": "string"
                },
                "currentVersion": {
                    "description": "Numeric value indicating the server version of the layer.",
                    "type": "number"
                },
                "defaultVisibility": {
                    "description": "Boolean value indicating whether the layer's visibility is turned on.",
                    "type": "boolean"
                },
                "definitionEditor": {
                    "$ref": "#/definitions/esri.rest-api.DefinitionEditorJson.DefinitionEditorJson",
                    "description": "Stores interactive filters."
                },
                "definitionExpression": {
                    "description": "An optional SQL-based definition expression that narrows down the data to be displayed in the layer. Used with ArcGIS Server map services.",
                    "type": "string"
                },
                "description": {
                    "description": "String value of the layer as defined in the map service.",
                    "type": "string"
                },
                "displayField": {
                    "description": "The name of the field that best summarizes the feature. Values from this field are used by default as the titles for pop-up windows.",
                    "type": "string"
                },
                "drawingInfo": {
                    "$ref": "#/definitions/esri.rest-api.DrawingInfoJson.DrawingInfoJson",
                    "description": "A drawingInfo object containing drawing, labeling, and transparency information for the layer."
                },
                "elevationInfo": {
                    "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.ElevationInfoJson",
                    "description": "Specifies how graphics are placed on the vertical axis (z). This property may only be used in a SceneView."
                },
                "extent": {
                    "$ref": "#/definitions/esri.rest-api.GeometryJson.ExtentJson",
                    "description": "The rectangular map extent that should be requested from the service, given in the format [[xmin, ymin],[xmax,ymax]]."
                },
                "featureReduction": {
                    "$ref": "#/definitions/FeatureReductionJson",
                    "description": "Feature reductions declutter the screen by hiding features that would otherwise intersect with other features on screen."
                },
                "fieldOverrides": {
                    "description": "The layer-specific overrides of field properties. Used by SubtypeGroupLayer to modify field information for each subtype. Any field missing from this array should be hidden.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.FieldOverrideJson"
                    },
                    "type": "array"
                },
                "fields": {
                    "description": "An array of Field objects containing information about the attribute fields for the feature collection or layer.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.FieldJson.FieldJson"
                    },
                    "type": "array"
                },
                "floorInfo": {
                    "$ref": "__type",
                    "description": "Contains floor-awareness information for the layer. See {@link https://developers.arcgis.com/web-map-specification/objects/layerFloorInfo/}."
                },
                "geometryType": {
                    "description": "The type of geometry used in the layer definition. One of the GeometryType constants.",
                    "type": "string"
                },
                "globalIdField": {
                    "description": "The unique identifier for a feature or table row within a geodatabase.",
                    "type": "string"
                },
                "hasAttachments": {
                    "description": "Indicates whether attachments should be loaded for the layer.",
                    "type": "boolean"
                },
                "hasM": {
                    "description": "Boolean value indicating whether layer has M values.",
                    "type": "boolean"
                },
                "hasStaticData": {
                    "description": "Boolean value indicating whether data changes. True if it does not.",
                    "type": "boolean"
                },
                "hasZ": {
                    "description": "Boolean value indicating whether layer has Z values.",
                    "type": "boolean"
                },
                "htmlPopupType": {
                    "description": "String value indicating the HTML popup type. Possible values are listed in the htmlPopupType table below.",
                    "enum": [
                        "esriServerHTMLPopupTypeAsHTMLText",
                        "esriServerHTMLPopupTypeAsURL",
                        "esriServerHTMLPopupTypeNone"
                    ],
                    "type": "string"
                },
                "id": {
                    "description": "The identifier assigned to the layer.",
                    "type": [
                        "string",
                        "number"
                    ]
                },
                "isDataVersioned": {
                    "description": "Boolean value indicating whether the data is versioned.",
                    "type": "boolean"
                },
                "maxRecordCount": {
                    "description": "Numeric value indicating the maximum number of records that will be returned at once for a query.",
                    "type": "number"
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer definition will be applied. The number is the scale's denominator; thus, a value of\n2400 represents a scale of 1/2,400. A value of 0 indicates that the layer definition will be applied no matter how far you zoom in.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer definition will be applied. The number is the scale's denominator; thus, a value of\n2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "name": {
                    "description": "A string containing a unique name for the layer that could be displayed in a legend.",
                    "type": "string"
                },
                "objectIdField": {
                    "description": "Indicates the name of the object ID field in the dataset.",
                    "type": "string"
                },
                "orderBy": {
                    "description": "Determines the display order of features on the map.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.OrderByClauseJson"
                    },
                    "type": "array"
                },
                "overrideSymbols": {
                    "description": "Dictates whether a client can support having an end user modify symbols on individual features.",
                    "type": "boolean"
                },
                "rangeInfos": {
                    "description": "Indicates range information.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.RangeInfoJson"
                    },
                    "type": "array"
                },
                "source": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.DynamicDataLayerJson"
                        },
                        {
                            "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.DynamicMapLayerJson"
                        }
                    ],
                    "description": "An object indicating the layerDefinition's layer source. See {@link https://developers.arcgis.com/web-map-specification/objects/source/} {@link https://developers.arcgis.com/web-scene-specification/objects/source/}."
                },
                "spatialReference": {
                    "$ref": "#/definitions/esri.rest-api.SpatialReferenceJson.SpatialReferenceJson",
                    "description": "An object containing the WKID or WKT identifying the spatial reference of the layer's geometry."
                },
                "supportedQueryFormats": {
                    "description": "String value indicating the output formats that are supported in a query.",
                    "type": "string"
                },
                "supportsAdvancedQueries": {
                    "description": "Boolean value indicating whether the layer supports orderByFields in a query operation.",
                    "type": "boolean"
                },
                "supportsAttachmentsByUploadId": {
                    "description": "Boolean value indicating whether the layer supports uploading attachments with the Uploads operation. This can be then used in the Add Attachment and Update Attachment operations.",
                    "type": "boolean"
                },
                "supportsCalculate": {
                    "description": "Boolean value indicating whether the layer supports the Calculate REST operation when updating features.",
                    "type": "boolean"
                },
                "supportsRollbackOnFailureParameter": {
                    "description": "Boolean value indicating whether the layer supports rolling back edits made on a feature layer if some of the edits fail.",
                    "type": "boolean"
                },
                "supportsStatistics": {
                    "description": "Boolean value indicating whether feature layer query operations support statistical functions.",
                    "type": "boolean"
                },
                "supportsValidateSql": {
                    "description": "Boolean value indicating whether the validateSQL operation is supported across a feature service layer.",
                    "type": "boolean"
                },
                "templates": {
                    "description": "An array of template objects describing features that can be created in this layer. Templates are used with map notes, other feature collections, and editable web-based CSV layers. They are not used with ArcGIS feature services, which already have feature templates defined in the service.\n\nTemplates are defined as a property of the layer definition when there are no types defined; otherwise, templates are defined as properties of the types.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.TemplateJson.TemplateJson"
                    },
                    "type": "array"
                },
                "timeInfo": {
                    "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.LayerTimeInfoJson",
                    "description": "The time info metadata of the layer. May be set for feature layers inside a feature collection item."
                },
                "type": {
                    "description": "Indicates whether the layerDefinition applies to a \"Feature Layer\" or a \"Table\".",
                    "type": "string"
                },
                "typeIdField": {
                    "description": "The name of the field holding the type ID for the features, if types exist for the dataset. Each available type has an ID, and each feature's typeIdField can be read to determine the type for each feature.",
                    "type": "string"
                },
                "types": {
                    "description": "An array of Type objects available for the dataset. This is used when the typeIdField is populated.\n\nTypes contain information about the combinations of attributes that are allowed for features in the dataset. Each feature in the dataset can have a type, indicated in its typeIdField.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.TypeJson.TypeJson"
                    },
                    "type": "array"
                },
                "visibilityField": {
                    "description": "String value indicating the attribute field that is used to control the visibility of a feature. If applicable, when rendering a feature the client should use this field to control visibility. The field's values are 0 = do not display, 1 = display.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.LayerDefinitionJson.LayerTimeInfoJson": {
            "additionalProperties": false,
            "description": "Time info if the layer/table supports querying and exporting maps based on time. See {@link https://developers.arcgis.com/web-map-specification/objects/layerTimeInfo/}.",
            "properties": {
                "endTimeField": {
                    "description": "The name of the attribute field that contains the end time information.",
                    "type": "string"
                },
                "exportOptions": {
                    "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.TimeInfoExportOptionsJson",
                    "description": "The default time-related export options for this layer."
                },
                "hasLiveData": {
                    "description": "Indicates whether service has live data.",
                    "type": "boolean"
                },
                "startTimeField": {
                    "description": "The name of the attribute field that contains the start time information.",
                    "type": "string"
                },
                "timeExtent": {
                    "description": "The time extent for all the data in the layer.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                },
                "timeInterval": {
                    "description": "Time interval of the data in the layer. Typically used for the TimeSlider when animating the layer.",
                    "type": "number"
                },
                "timeIntervalUnits": {
                    "$ref": "TemporalUnitJsonType",
                    "description": "Temporal unit in which the time interval is measured."
                },
                "timeReference": {
                    "$ref": "__type",
                    "description": "Defines information about daylight savings time and the time zone in which data was collected. See {@link https://developers.arcgis.com/web-map-specification/objects/timeReference/}."
                },
                "trackIdField": {
                    "description": "The field that contains the trackId.",
                    "type": "string"
                }
            },
            "required": [
                "trackIdField"
            ],
            "type": "object"
        },
        "esri.rest-api.LayerDefinitionJson.OrderByClauseJson": {
            "additionalProperties": false,
            "description": "A clause in a layer definition's `orderBy` property.",
            "properties": {
                "field": {
                    "description": "The number or date field whose values will be used to sort features.",
                    "type": "string"
                },
                "order": {
                    "description": "The sort order.",
                    "enum": [
                        "asc",
                        "desc"
                    ],
                    "type": "string"
                },
                "valueExpression": {
                    "description": "The [Arcade expression](https://developers.arcgis.com/javascript/latest/arcade/) whose return value will be used to sort features. (Currently undocumented by ESRI's Webmap Spec).\n\n[Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-mixins-OrderedLayer.html#orderBy).",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.LayerDefinitionJson.QueryTableDataSourceJson": {
            "additionalProperties": false,
            "description": "Query table data source is a layer/table that is defined by a SQL query. See {@link https://developers.arcgis.com/web-map-specification/objects/queryTableDataSource/} {@link https://developers.arcgis.com/web-scene-specification/objects/queryTableDataSource/}.",
            "properties": {
                "geometryType": {
                    "description": "The geometry type. When querying a table that does not have a geometry column, do not include geometryType.",
                    "enum": [
                        "esriGeometryMultipoint",
                        "esriGeometryPoint",
                        "esriGeometryPolygon",
                        "esriGeometryPolyline"
                    ],
                    "type": "string"
                },
                "oidFields": {
                    "description": "Comma separated list of identifier fields. There are only certain field types that can be used as a unique identifier. These field types include integer, string, GUID, and date. If a single integer field is specified, map server uses the values in that field directly to uniquely identify all features and rows returned from a queryTable. However, if a single string field or a group of fields is used as the unique identifier, map server maps those unique values to an integer.",
                    "type": "string"
                },
                "query": {
                    "description": "The SQL query.",
                    "type": "string"
                },
                "spatialReference": {
                    "$ref": "#/definitions/esri.rest-api.SpatialReferenceJson.SpatialReferenceJson",
                    "description": "The spatial reference of the geometry column. When querying a table that does not have a geometry column, do not include spatialReference."
                },
                "type": {
                    "const": "queryTable",
                    "description": "Type of the DataSource.",
                    "type": "string"
                },
                "workspaceId": {
                    "description": "The unique string value used to identify the data-source's workspace.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.LayerDefinitionJson.RangeInfoJson": {
            "additionalProperties": false,
            "description": "Range Information.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/rangeInfo/}.",
            "properties": {
                "currentRangeExtent": {
                    "description": "Contains the min and max values within which the features are visible.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                },
                "field": {
                    "description": "Field name to used for the range.",
                    "type": "string"
                },
                "fullRangeExtent": {
                    "description": "Contains the min and max values of all the features for this rangeInfo.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                },
                "name": {
                    "description": "A unique name that can be referenced by webMap.activeRanges.",
                    "type": "string"
                },
                "type": {
                    "const": "rangeInfo",
                    "description": "Type of range object. Value of this property must be rangeInfo.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.LayerDefinitionJson.RasterDataSourceJson": {
            "additionalProperties": false,
            "description": "Raster data source is a file-based raster that resides in a registered raster workspace. See {@link https://developers.arcgis.com/web-map-specification/objects/rasterDataSource/} {@link https://developers.arcgis.com/web-scene-specification/objects/rasterDataSource/}.",
            "properties": {
                "dataSourceName": {
                    "description": "The fully-qualified string value used to specify where the dataSource is derived.",
                    "type": "string"
                },
                "type": {
                    "const": "raster",
                    "description": "Type of the DataSource.",
                    "type": "string"
                },
                "workspaceId": {
                    "description": "The unique string value used to identify the data-source's workspace.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.LayerDefinitionJson.TableDataSourceJson": {
            "additionalProperties": false,
            "description": "Table data source is a table, feature class, or raster that resides in a registered workspace (either a folder or geodatabase). In the case of a geodatabase, if versioned, use version to switch to an alternate geodatabase version. If version is empty or missing, the registered geodatabase version will be used. See {@link https://developers.arcgis.com/web-map-specification/objects/tableDataSource/} {@link https://developers.arcgis.com/web-scene-specification/objects/tableDataSource/}.",
            "properties": {
                "dataSourceName": {
                    "description": "The fully-qualified string value used to specify where the dataSource is derived.",
                    "type": "string"
                },
                "gdbVersion": {
                    "description": "If applicable, the value indicating the version of the geodatabase.",
                    "type": "string"
                },
                "type": {
                    "const": "table",
                    "description": "Type of the DataSource.",
                    "type": "string"
                },
                "workspaceId": {
                    "description": "The unique string value used to identify the data-source's workspace.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.LayerDefinitionJson.TimeInfoExportOptionsJson": {
            "additionalProperties": false,
            "description": "The default time-related export options for a layer. See https://developers.arcgis.com/web-map-specification/objects/timeInfoExportOptions/.",
            "properties": {
                "timeDataCumulative": {
                    "description": "If true, draw all the features from the beginning of time for that data.",
                    "type": "boolean"
                },
                "timeOffset": {
                    "description": "Time offset value for this layer so that it can be overlaid on the top of a previous or future time period.",
                    "type": "number"
                },
                "timeOffsetUnits": {
                    "$ref": "TemporalUnitJsonType",
                    "description": "Temporal unit in which the time offset is measured."
                },
                "useTime": {
                    "description": "If true, use the time extent specified by the time parameter.",
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "esri.rest-api.LayerJson.BloomEffectFunctionJson": {
            "additionalProperties": false,
            "description": "An Effect Function for the bloom effect.",
            "properties": {
                "radius": {
                    "description": "Determines the radius of the blur. Negative values are not allowed. Leaves the pixels inside the radius untouched.",
                    "type": "number"
                },
                "strength": {
                    "description": "The intensity of the bloom effect. The higher the value, the brighter the glow. Negative values are not allowed.",
                    "type": "number"
                },
                "threshold": {
                    "description": "The minimum color luminosity for a pixel to bloom, where at 0 all pixels bloom and 1 only the pixels with 100% luminosity colors bloom.",
                    "type": "number"
                },
                "type": {
                    "const": "bloom",
                    "description": "Effect type.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.LayerJson.BlurEffectFunctionJson": {
            "additionalProperties": false,
            "description": "An Effect Function for the blur effect.",
            "properties": {
                "radius": {
                    "description": "The radius of the blur in points. It defines the value of the standard deviation to the Gaussian function. Negative values are not allowed.",
                    "type": "number"
                },
                "type": {
                    "const": "blur",
                    "description": "Effect type.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.LayerJson.BrightnessEffectFunctionJson": {
            "additionalProperties": false,
            "description": "An Effect Function for the brightness effect.",
            "properties": {
                "amount": {
                    "description": "Amount of effect. A value of 0 leaves the input unchanged. Grayscale, invert, sepia, and opacity effects accept a maximum amount of 1 which applies the effect at 100%. Brightness, contrast, and saturate can accept amount above 1. Negative values are not allowed.",
                    "type": "number"
                },
                "type": {
                    "const": "brightness",
                    "description": "Effect type.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.LayerJson.ContrastEffectFunctionJson": {
            "additionalProperties": false,
            "description": "An Effect Function for the contrast effect.",
            "properties": {
                "amount": {
                    "description": "Amount of effect. A value of 0 leaves the input unchanged. Grayscale, invert, sepia, and opacity effects accept a maximum amount of 1 which applies the effect at 100%. Brightness, contrast, and saturate can accept amount above 1. Negative values are not allowed.",
                    "type": "number"
                },
                "type": {
                    "const": "contrast",
                    "description": "Effect type.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.LayerJson.DropShadowEffectFunctionJson": {
            "additionalProperties": false,
            "description": "An Effect Function for the drop-shadow effect.",
            "properties": {
                "blurRadius": {
                    "description": "The radius of the blur in points. It defines the value of the standard deviation to the Gaussian function.",
                    "type": "number"
                },
                "color": {
                    "$ref": "#/definitions/ColorJson",
                    "description": "Color is represented as a four-element array. The four elements represent values for red, green, blue, and alpha in that order. Values range from 0 through 255."
                },
                "type": {
                    "const": "drop-shadow",
                    "description": "Effect type.",
                    "type": "string"
                },
                "xoffset": {
                    "description": "The distance of the shadow on the x-axis in points.",
                    "type": "number"
                },
                "yoffset": {
                    "description": "The distance of the shadow on the y-axis in points.",
                    "type": "number"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.LayerJson.GrayscaleEffectFunctionJson": {
            "additionalProperties": false,
            "description": "An Effect Function for the grayscale effect.",
            "properties": {
                "amount": {
                    "description": "Amount of effect. A value of 0 leaves the input unchanged. Grayscale, invert, sepia, and opacity effects accept a maximum amount of 1 which applies the effect at 100%. Brightness, contrast, and saturate can accept amount above 1. Negative values are not allowed.",
                    "type": "number"
                },
                "type": {
                    "const": "grayscale",
                    "description": "Effect type.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.LayerJson.HueRotateEffectFunctionJson": {
            "additionalProperties": false,
            "description": "An Effect Function for the hue-rotate effect.",
            "properties": {
                "angle": {
                    "description": "The relative change in hue as an angle in degree. A value of 0 leaves the input unchanged. A positive hue rotation increases the hue value, while a negative one decreases the hue value.",
                    "type": "number"
                },
                "type": {
                    "const": "hue-rotate",
                    "description": "Effect type.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.LayerJson.InvertEffectFunctionJson": {
            "additionalProperties": false,
            "description": "An Effect Function for the invert effect.",
            "properties": {
                "amount": {
                    "description": "Amount of effect. A value of 0 leaves the input unchanged. Grayscale, invert, sepia, and opacity effects accept a maximum amount of 1 which applies the effect at 100%. Brightness, contrast, and saturate can accept amount above 1. Negative values are not allowed.",
                    "type": "number"
                },
                "type": {
                    "const": "invert",
                    "description": "Effect type.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.LayerJson.OpacityEffectFunctionJson": {
            "additionalProperties": false,
            "description": "An Effect Function for the opacity effect.",
            "properties": {
                "amount": {
                    "description": "Amount of effect. A value of 0 leaves the input unchanged. Grayscale, invert, sepia, and opacity effects accept a maximum amount of 1 which applies the effect at 100%. Brightness, contrast, and saturate can accept amount above 1. Negative values are not allowed.",
                    "type": "number"
                },
                "type": {
                    "const": "opacity",
                    "description": "Effect type.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.LayerJson.SaturateEffectFunctionJson": {
            "additionalProperties": false,
            "description": "An Effect Function for the saturate effect.",
            "properties": {
                "amount": {
                    "description": "Amount of effect. A value of 0 leaves the input unchanged. Grayscale, invert, sepia, and opacity effects accept a maximum amount of 1 which applies the effect at 100%. Brightness, contrast, and saturate can accept amount above 1. Negative values are not allowed.",
                    "type": "number"
                },
                "type": {
                    "const": "saturate",
                    "description": "Effect type.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.LayerJson.ScaleDependentEffectJson": {
            "additionalProperties": false,
            "description": "An object describing the effect to apply at a scale stop.",
            "properties": {
                "scale": {
                    "description": "The scale of the view for the effect to take place.",
                    "type": "number"
                },
                "value": {
                    "description": "The effect to be applied at the corresponding scale.",
                    "items": {
                        "$ref": "#/definitions/EffectFunctionJson"
                    },
                    "type": "array"
                }
            },
            "required": [
                "scale",
                "value"
            ],
            "type": "object"
        },
        "esri.rest-api.LayerJson.SepiaEffectFunctionJson": {
            "additionalProperties": false,
            "description": "An Effect Function for the sepia effect.",
            "properties": {
                "amount": {
                    "description": "Amount of effect. A value of 0 leaves the input unchanged. Grayscale, invert, sepia, and opacity effects accept a maximum amount of 1 which applies the effect at 100%. Brightness, contrast, and saturate can accept amount above 1. Negative values are not allowed.",
                    "type": "number"
                },
                "type": {
                    "const": "sepia",
                    "description": "Effect type.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.MapServiceLayerJson.MapServiceLayerJson": {
            "additionalProperties": false,
            "description": "ArcGIS web maps are designed to work with web services hosted on ArcGIS Server and ArcGIS Online, in addition to other types of servers. Map services can be cached (tiled) or uncached (dynamic). This object specifically details properties within uncached map services.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/mapServiceLayer/} {@link https://developers.arcgis.com/web-scene-specification/objects/mapServiceLayer/}.",
            "properties": {
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "customParameters": {
                    "description": "A sequence of custom parameters appended to the URL of all requests related to supporting ArcGIS layer types."
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "id": {
                    "description": "A unique identifying string for the layer.",
                    "type": "string"
                },
                "isReference": {
                    "description": "This 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).",
                    "type": "boolean"
                },
                "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": {
                    "const": "ArcGISMapServiceLayer",
                    "description": "Type of the layer.",
                    "type": "string"
                },
                "layers": {
                    "description": "An array of layer objects defining the styling, geometry, and attribute information for the features.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.SublayerJson.SublayerJson"
                    },
                    "type": "array"
                },
                "listMode": {
                    "description": "Indicates how the layer should display in the table of contents. The known values are listed below. See {@link support /esri!ListMode}."
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "refreshInterval": {
                    "description": "When the refresh interval is set on a layer, the client must refresh that layer only, not the entire web map. The default value is '0', meaning the no refresh. You can enable a refresh interval on the following types of layers: ArcGIS Server web service, hosted feature layer, hosted tile layer, OGC WMS, OGS WMTS, tile layer, GeoRSS, Living Atlas layers, basemaps (including Bing Maps basemaps), CSV from the web with latitude and longitude fields, and KML when added to ArcGIS Online through the My Content page. See {@link https://doc.arcgis.com/en/arcgis-online/create-maps/set-refresh-interval.htm}.",
                    "type": "number"
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "timeAnimation": {
                    "description": "This property is applicable to layers that support time. If 'true', timeAnimation is enabled.",
                    "type": "boolean"
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "url": {
                    "description": "The URL to the layer.",
                    "type": "string"
                },
                "visibility": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                },
                "visibleLayers": {
                    "description": "An array of layers that should appear visible. Used with ArcGIS map services that are not tiled in addition to WMS layers. Array of items of the following types: Number With ArcGIS map services, the array contains integers of the index positions of each visible layer.",
                    "items": {
                        "type": "number"
                    },
                    "type": "array"
                }
            },
            "required": [
                "layerType"
            ],
            "type": "object"
        },
        "esri.rest-api.MediaLayerJson.GeoreferenceJson": {
            "additionalProperties": false,
            "description": "The georeference used to place a media in a MediaLayer.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/mediaLayer_georeference/} {@link https://developers.arcgis.com/web-scene-specification/objects/mediaLayer_georeference/}.",
            "properties": {
                "coefficients": {
                    "description": "An array of 8 coefficients representing the projective transformation..",
                    "items": {
                        "type": "number"
                    },
                    "type": "array"
                },
                "controlPoints": {
                    "description": "An array of 4 user defined control points placed on the media..",
                    "items": {
                        "$ref": "__type"
                    },
                    "type": "array"
                },
                "height": {
                    "description": "Numeric value indicating the height of media in pixels.",
                    "type": "number"
                },
                "spatialReference": {
                    "$ref": "#/definitions/esri.rest-api.SpatialReferenceJson.SpatialReferenceJson",
                    "description": "Image format of the cached tiles."
                },
                "width": {
                    "description": "Numeric value indicating the width of media in pixels.",
                    "type": "number"
                }
            },
            "type": "object"
        },
        "esri.rest-api.MediaLayerJson.MediaLayerJson": {
            "additionalProperties": false,
            "description": "The MediaLayer is used to add image and video elements to the map at a specified geographic location. This layer can be used to display old scanned maps, weather data, satellite imagery, aerial and drone images, fantasy images and video feedback, etc. The geographic location of the image or video can be set using the extent and rotation, corner points or control points.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/mediaLayer/} {@link https://developers.arcgis.com/web-scene-specification/objects/mediaLayer/}.",
            "properties": {
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "georeference": {
                    "$ref": "#/definitions/esri.rest-api.MediaLayerJson.GeoreferenceJson",
                    "description": "Attribution to the Web Tile Layer provider. It is displayed in the attribution on the web map. Input required by the user when the layer is added to the web map."
                },
                "id": {
                    "description": "A unique identifying string for the layer.",
                    "type": "string"
                },
                "itemId": {
                    "description": "Optional string containing the item ID of the Media Layer item registered on ArcGIS Online or your organization's portal.",
                    "type": "string"
                },
                "layerType": {
                    "const": "MediaLayer",
                    "description": "The type of layer.",
                    "type": "string"
                },
                "listMode": {
                    "description": "Indicates how the layer should display in the table of contents. The known values are listed below. See {@link support /esri!ListMode}."
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "mediaType": {
                    "description": "Indicates the type of media that the url points to. The currently supported media types are image and video. Images must be in JPEG or PNG format. For supported video formats, please refer to the MDN video codec guide. 'mediaType' is applicable only when the url is defined.",
                    "enum": [
                        "image",
                        "video"
                    ],
                    "type": "string"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "refreshInterval": {
                    "description": "When the refresh interval is set on a layer, the client must refresh that layer only, not the entire web map. The default value is '0', meaning the no refresh. You can enable a refresh interval on the following types of layers: ArcGIS Server web service, hosted feature layer, hosted tile layer, OGC WMS, OGS WMTS, tile layer, GeoRSS, Living Atlas layers, basemaps (including Bing Maps basemaps), CSV from the web with latitude and longitude fields, and KML when added to ArcGIS Online through the My Content page. See {@link https://doc.arcgis.com/en/arcgis-online/create-maps/set-refresh-interval.htm}.",
                    "type": "number"
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "url": {
                    "description": "Url URL to the media file. It is not applicable when itemId is defined. The url is relative when the media file is stored as an item resource. Relative urls are only applicable for image media types. Video media types only support external video urls at this time. See related mediaType property.",
                    "type": "string"
                },
                "visibility": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                }
            },
            "required": [
                "layerType"
            ],
            "type": "object"
        },
        "esri.rest-api.MosaicRuleJson.MosaicRuleJson": {
            "additionalProperties": false,
            "description": "Specifies the mosaic rule when defining how individual images should be mosaiced. It specifies selection, mosaic method, sort order, overlapping pixel resolution, etc. Mosaic rules are for mosaicing rasters in the mosaic dataset.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/mosaicRule/} {@link https://developers.arcgis.com/web-scene-specification/objects/mosaicRule/}.",
            "properties": {
                "ascending": {
                    "description": "Indicates whether the sort should be ascending.",
                    "type": "boolean"
                },
                "fids": {
                    "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"
                    },
                    "type": "array"
                },
                "itemRenderingRule": {
                    "description": "The rendering rule applies on items before mosaicing.",
                    "type": "string"
                },
                "lockRasterIds": {
                    "description": "Lock a few rasters in the image service. Used together with esriMosaicLockRaster.",
                    "items": {
                        "type": "number"
                    },
                    "type": "array"
                },
                "mosaicMethod": {
                    "description": "The mosaic method determines how the selected rasters are ordered.",
                    "enum": [
                        "esriMosaicAttribute",
                        "esriMosaicCenter",
                        "esriMosaicLockRaster",
                        "esriMosaicNadir",
                        "esriMosaicNone",
                        "esriMosaicNorthwest",
                        "esriMosaicSeamline",
                        "esriMosaicViewPoint"
                    ],
                    "type": "string"
                },
                "mosaicOperation": {
                    "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"
                    ],
                    "type": "string"
                },
                "multidimensionalDefinition": {
                    "description": "Definition of multidimensional variables.\n\nSee https://developers.arcgis.com/web-map-specification/objects/multidimensionalDefinition/ and https://developers.arcgis.com/web-scene-specification/objects/multidimensionalDefinition/.",
                    "items": {
                        "$ref": "__type"
                    },
                    "type": "array"
                },
                "sortField": {
                    "description": "The field name used together with esriMosaicAttribute method.",
                    "type": "string"
                },
                "sortValue": {
                    "description": "The base sort value used together with esriMosaicAttribute method and sortField parameter.",
                    "type": [
                        "string",
                        "number"
                    ]
                },
                "viewpoint": {
                    "$ref": "#/definitions/esri.rest-api.GeometryJson.PointJson",
                    "description": "Use a view point along with esriMosaicViewpoint."
                },
                "where": {
                    "description": "Use a where clause to define a subset of rasters used in the mosaic, be aware that the rasters may not be visible at all scales.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.OpenStreetMapLayerJson.OpenStreetMapLayerJson": {
            "additionalProperties": false,
            "description": "Allows use of OpenStreetMap data for use in basemaps only.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/openStreetMapLayer/} {@link https://developers.arcgis.com/web-scene-specification/objects/openStreetMapLayer/} Note: In the JavaScript API, open street map derived from Web tile layer.",
            "properties": {
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "id": {
                    "description": "A unique identifying string for the layer.",
                    "type": "string"
                },
                "isReference": {
                    "description": "This 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).",
                    "type": "boolean"
                },
                "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": {
                    "const": "OpenStreetMap",
                    "description": "The type of layer.",
                    "type": "string"
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "visibility": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                }
            },
            "required": [
                "layerType"
            ],
            "type": "object"
        },
        "esri.rest-api.PointCloudLayerJson.PointCloudLayerJson": {
            "additionalProperties": false,
            "description": "Point cloud data is post-processed spatially organized lidar data that consists of large collections of 3D points. Elevations for the ground, buildings, forest canopy, highway overpasses, and anything else encountered during the lidar survey make up the point cloud data. Point cloud layers allow for fast visualization of point cloud data in the browser.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/pointCloudLayer/}.",
            "properties": {
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "disablePopup": {
                    "description": "Indicates whether to allow a client to ignore popups defined by the service item.",
                    "type": "boolean"
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "id": {
                    "description": "A unique identifying string for the layer.",
                    "type": "string"
                },
                "layerDefinition": {
                    "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.LayerDefinitionJson",
                    "description": "A layerDefinition object defining the attribute schema and drawing information for the layer."
                },
                "layerType": {
                    "const": "PointCloudLayer",
                    "description": "The type of layer.",
                    "type": "string"
                },
                "listMode": {
                    "description": "Indicates how the layer should display in the table of contents. The known values are listed below. See {@link support /esri!ListMode}."
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "popupInfo": {
                    "$ref": "#/definitions/esri.rest-api.PopupInfoJson.PopupInfoJson",
                    "description": "A PopupInfo object defining the content of pop-up windows when you click or query a feature."
                },
                "refreshInterval": {
                    "description": "When the refresh interval is set on a layer, the client must refresh that layer only, not the entire web map. The default value is '0', meaning the no refresh. You can enable a refresh interval on the following types of layers: ArcGIS Server web service, hosted feature layer, hosted tile layer, OGC WMS, OGS WMTS, tile layer, GeoRSS, Living Atlas layers, basemaps (including Bing Maps basemaps), CSV from the web with latitude and longitude fields, and KML when added to ArcGIS Online through the My Content page. See {@link https://doc.arcgis.com/en/arcgis-online/create-maps/set-refresh-interval.htm}.",
                    "type": "number"
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "url": {
                    "description": "URL to the ArcGIS Server Image Service.",
                    "type": "string"
                },
                "visibility": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                }
            },
            "required": [
                "layerType"
            ],
            "type": "object"
        },
        "esri.rest-api.PopupInfoJson.FieldInfoJson": {
            "additionalProperties": false,
            "description": "Defines how a field in the dataset participates (or does not participate) in a pop-up window.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/fieldInfo/} {@link https://developers.arcgis.com/web-scene-specification/objects/fieldInfo/}.",
            "properties": {
                "fieldName": {
                    "description": "The field name as defined by the service.",
                    "type": "string"
                },
                "format": {
                    "$ref": "#/definitions/esri.rest-api.PopupInfoJson.FormatJson",
                    "description": "A format object used with numerical or date fields to provide more detail about how the value should be displayed in a web map pop-up window."
                },
                "isEditable": {
                    "description": "Determines whether users can edit this field.",
                    "type": "boolean"
                },
                "label": {
                    "description": "The field alias. This can be overridden by the web map author.",
                    "type": "string"
                },
                "stringFieldOption": {
                    "description": "The type of input box editors will see when editing the field. Applies only to string fields.",
                    "enum": [
                        "richtext",
                        "textarea",
                        "textbox"
                    ],
                    "type": "string"
                },
                "tooltip": {
                    "description": "Provides an editing hint for editors of the field. This string could provide a short description of the field and how editors should format or supply its value.",
                    "type": "string"
                },
                "visible": {
                    "description": "Determines whether the field is visible in the pop-up window.",
                    "type": "boolean"
                }
            },
            "required": [
                "fieldName"
            ],
            "type": "object"
        },
        "esri.rest-api.PopupInfoJson.FormatJson": {
            "additionalProperties": false,
            "description": "The format object can be used with numerical or date fields to provide more detail about how values should be displayed in web map pop-up windows.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/format/} {@link https://developers.arcgis.com/web-scene-specification/objects/format/}.",
            "properties": {
                "dateFormat": {
                    "$ref": "DateFormatJsonType",
                    "description": "A string used with date fields to specify how the date should appear in pop-up windows."
                },
                "digitSeparator": {
                    "description": "A Boolean used with numerical fields. A value of true allows the number to have a digit (or thousands) separator when the value appears in pop-up windows. Depending on the locale, this separator is a decimal point or a comma. A value of false means that no separator will be used.",
                    "type": "boolean"
                },
                "places": {
                    "description": "An integer used with numerical fields to specify the number of supported decimal places that should appear in pop-up windows. Any places beyond this value are rounded.",
                    "type": "number"
                }
            },
            "type": "object"
        },
        "esri.rest-api.PopupInfoJson.MediaInfoJson": {
            "additionalProperties": false,
            "description": "Defines an image or a chart to be displayed in a pop-up window. See https://developers.arcgis.com/web-map-specification/objects/mediaInfo/ and https://developers.arcgis.com/web-scene-specification/objects/mediaInfo/.",
            "properties": {
                "altText": {
                    "description": "A string providing the alternate text for the media.",
                    "type": "string"
                },
                "caption": {
                    "description": "A caption describing the media. This can contain a field name enclosed in `{}`, such as `{IMAGE_CAPTION}`.",
                    "type": "string"
                },
                "refreshInterval": {
                    "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. If the property does not exist, it's equivalent to having a value of 0. Only applicable when type is set to image.",
                    "type": "number"
                },
                "title": {
                    "description": "A title for the media. This can contain a field name enclosed in `{}`, such as `{IMAGE_TITLE}`.",
                    "type": "string"
                },
                "type": {
                    "description": "Defines the type of media. One of the {@link MediaJsonType} constants.",
                    "type": "string"
                },
                "value": {
                    "$ref": "#/definitions/esri.rest-api.PopupInfoJson.ValueJson",
                    "description": "Contains information about how the image should be retrieved or how the chart should be constructed."
                }
            },
            "type": "object"
        },
        "esri.rest-api.PopupInfoJson.OrderByFieldsJson": {
            "additionalProperties": false,
            "description": "Object indicating the field display order for the related records and whether they should be sorted in ascending or descending order.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/orderByFields/} {@link https://developers.arcgis.com/web-scene-specification/objects/orderByFields/}.",
            "properties": {
                "field": {
                    "description": "The attribute value of the field selected that will drive the sorting of related records.",
                    "type": "string"
                },
                "order": {
                    "description": "Set the ascending (asc) or descending (desc) sort order of the returned related records.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.PopupInfoJson.PopupElementJson": {
            "additionalProperties": false,
            "description": "Popup elements allow users to author popups, using multiple elements such as tabular views, string description, media (charts and images), and attachments of the attributes and control the order in which they appear. Specifically, popupElements do the following: 1) provide the ability to explicitly add a field/ value table in addition to a description, 2) allow adding multiple description elements, and 3) allow a user to author and consume elements of a popup in the order of their choosing.\n\nEach popupElement has a type property. This string value indicates the type of popupElement used.\n\nSee https://developers.arcgis.com/web-map-specification/objects/popupElement/ and https://developers.arcgis.com/web-scene-specification/objects/popupElement/.",
            "properties": {
                "attributes": {
                    "description": "A dictionary of key value pairs representing attributes to be used instead of fields and their values. This property is only used when the element is of type expression and should be returned as part of the arcade expression itself. This property allows passing arcade derived attribute values into fields or media elements."
                },
                "description": {
                    "description": "An optional string value describing the element in detail. This property does not apply when the type is text or expression.",
                    "type": "string"
                },
                "displayCount": {
                    "description": "This property applies to elements of type relationship. An integer that indicates the maximum number of records to display.",
                    "type": "number"
                },
                "displayType": {
                    "description": "This property applies to elements of type attachments and relationship. A string value indicating how to display the attachment. Possible values are, 'preview', and 'list' for attachments types, and 'list' for relationship types. If list is specified, attachments show as links.",
                    "type": "string"
                },
                "expressionInfo": {
                    "$ref": "#/definitions/esri.rest-api.PopupInfoJson.PopupExpressionInfoJson",
                    "description": "This property applies to elements of type expression. An Arcade expression that defines the pop-up element content."
                },
                "fieldInfos": {
                    "description": "This property applies to elements of type fields. It is an array of popupInfo.fieldInfo objects representing a field/value pair displayed as a table within the popupElement. If the fieldInfos property is not provided, the popupElement will display whatever is specified directly in the popupInfo.fieldInfos property.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.PopupInfoJson.FieldInfoJson"
                    },
                    "type": "array"
                },
                "mediaInfos": {
                    "description": "This property applies to elements of type media. An array of popupInfo.mediaInfo objects representing an image or chart for display. If no mediaInfos property is provided, the popupElement will display whatever is specified in the popupInfo.mediaInfo property.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.PopupInfoJson.MediaInfoJson"
                    },
                    "type": "array"
                },
                "orderByFields": {
                    "description": "This property applies to elements of type relationship. Array of orderByFields objects indicating the field display order for the related records and whether they should be sorted in ascending 'asc' or descending 'desc' order.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.PopupInfoJson.OrderByFieldsJson"
                    },
                    "type": "array"
                },
                "relationshipId": {
                    "description": "This property applies to elements of type relationship. The id of the relationship as defined in the feature layer definition.",
                    "type": "number"
                },
                "text": {
                    "description": "This property applies to elements of type text. This is string value indicating the text to be displayed within the popupElement. If no text property is provided, the popupElement will display whatever is specified in the popupInfo.description property.",
                    "type": "string"
                },
                "title": {
                    "description": "An optional string value indicating what the element represents. This property does not apply when the type is text or expression.",
                    "type": "string"
                },
                "type": {
                    "description": "String value indicating which element to use.",
                    "enum": [
                        "attachments",
                        "expression",
                        "fields",
                        "media",
                        "relationship",
                        "text"
                    ],
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.PopupInfoJson.PopupExpressionInfoJson": {
            "additionalProperties": false,
            "description": "Arcade expression added to the pop-up.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/popupExpressionInfo/}.",
            "properties": {
                "expression": {
                    "description": "The Arcade expression.",
                    "type": "string"
                },
                "name": {
                    "description": "Unique identifier for the expression.",
                    "type": "string"
                },
                "returnType": {
                    "description": "Return type of the Arcade expression, can be number or string. Defaults to string value. Number values are assumed to be double. This can be determined by the authoring client by executing the expression using a sample feature(s), although it can be corrected by the user. Knowing the returnType allows the authoring client to present fields in relevant contexts. For example, numeric fields in numeric contexts such as charts.",
                    "enum": [
                        "number",
                        "string"
                    ],
                    "type": "string"
                },
                "title": {
                    "description": "Title of the expression.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.PopupInfoJson.PopupInfoJson": {
            "additionalProperties": false,
            "description": "Defines the look and feel of pop-up windows when users click or query a feature.\n\nSee https://developers.arcgis.com/web-map-specification/objects/popupInfo/ and https://developers.arcgis.com/web-scene-specification/objects/popupInfo/.",
            "properties": {
                "description": {
                    "description": "A string that appears in the body of the pop-up window as a description. This can contain a field name enclosed in `{}`, such as `{DETAILS}`.",
                    "type": "string"
                },
                "expressionInfos": {
                    "description": "List of Arcade expressions added to the pop-up.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.PopupInfoJson.PopupExpressionInfoJson"
                    },
                    "type": "array"
                },
                "fieldInfos": {
                    "description": "An array of {@link FieldInfoJson} objects defining how each field in the dataset participates (or does not participate) in the pop-up window. The order of the array is the order that fields are shown in the pop-up window.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.PopupInfoJson.FieldInfoJson"
                    },
                    "type": "array"
                },
                "mediaInfos": {
                    "description": "Array of various mediaInfo to display. Can be of type image, piechart, barchart, columnchart, or linechart. The order given is the order in which is displays.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.PopupInfoJson.MediaInfoJson"
                    },
                    "type": "array"
                },
                "popupElements": {
                    "description": "An array of popupElement objects that represent an ordered list of popup elements.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.PopupInfoJson.PopupElementJson"
                    },
                    "type": "array"
                },
                "relatedRecordsInfo": {
                    "$ref": "#/definitions/esri.rest-api.PopupInfoJson.RelatedRecordsInfoJson",
                    "description": "Indicates whether to enable related records if they exist on a layer."
                },
                "showAttachments": {
                    "description": "Determines whether attachments will be loaded for feature layers that have attachments.",
                    "type": "boolean"
                },
                "title": {
                    "description": "Appears at the top of the pop-up window as a title. This can contain a field name enclosed in `{}`, such as `{NAME}`.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.PopupInfoJson.RelatedRecordsInfoJson": {
            "additionalProperties": false,
            "description": "The sort in the popupInfo for the parent feature. This impacts the sorting order for the returned child records.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/relatedRecordsInfo/} {@link https://developers.arcgis.com/web-scene-specification/objects/relatedRecordsInfo/}.",
            "properties": {
                "orderByFields": {
                    "description": "Array of orderByFields objects indicating the field display order for the related records and whether they should be sorted in ascending 'asc' or descending 'desc' order.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.PopupInfoJson.OrderByFieldsJson"
                    },
                    "type": "array"
                },
                "showRelatedRecords": {
                    "description": "Required boolean value indicating whether to display related records. If true, client should const the user navigate to the related records. Defaults to true if the layer participates in a relationship AND the related layer/table has already been added to the map (either as an operationalLayer or as a table).",
                    "type": "boolean"
                }
            },
            "required": [
                "showRelatedRecords"
            ],
            "type": "object"
        },
        "esri.rest-api.PopupInfoJson.ValueJson": {
            "additionalProperties": false,
            "description": "The value object contains information for pop-up windows about how images should be retrieved or charts constructed.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/value/} {@link https://developers.arcgis.com/web-scene-specification/objects/value/}.",
            "properties": {
                "fields": {
                    "description": "Used with charts. An array of field names to display in the chart.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "linkURL": {
                    "description": "Used with images. A string containing a URL to be launched in a browser when a user clicks the image.",
                    "type": "string"
                },
                "normalizeField": {
                    "description": "Used with charts. An optional string containing the name of a field. The values of all fields in the chart will be normalized (divided) by the value of this field.",
                    "type": "string"
                },
                "sourceURL": {
                    "description": "Used with images. The URL to the image.",
                    "type": "string"
                },
                "tooltipField": {
                    "description": "String value indicating the tooltip for a chart specified from another field. This field is needed when related records are not sued. It is used for showing tooltips from another field in the same layer or related layer/table.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.RasterDataElevationLayerJson.RasterDataElevationLayerJson": {
            "additionalProperties": false,
            "description": "RasterDataElevationLayer is a single-band raster layer used for rendering elevation.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/rasterDataElevationLayer/}.",
            "properties": {
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "id": {
                    "description": "A unique identifying string for the layer.",
                    "type": "string"
                },
                "isReference": {
                    "description": "This 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).",
                    "type": "boolean"
                },
                "layerType": {
                    "const": "RasterDataElevationLayer",
                    "description": "The type of layer.",
                    "type": "string"
                },
                "listMode": {
                    "description": "Indicates how the layer should display in the table of contents. The known values are listed below. See {@link support /esri!ListMode}."
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "path": {
                    "description": "For offline data, a path to an ArcGIS Runtime supported raster data file. A URI format is used, starting with file: followed by a file system path. A relative path must be from the file which defines the layer. For example `file:../data/raster_data/beijing.tif`.",
                    "type": "string"
                },
                "refreshInterval": {
                    "description": "When the refresh interval is set on a layer, the client must refresh that layer only, not the entire web map. The default value is '0', meaning the no refresh. You can enable a refresh interval on the following types of layers: ArcGIS Server web service, hosted feature layer, hosted tile layer, OGC WMS, OGS WMTS, tile layer, GeoRSS, Living Atlas layers, basemaps (including Bing Maps basemaps), CSV from the web with latitude and longitude fields, and KML when added to ArcGIS Online through the My Content page. See {@link https://doc.arcgis.com/en/arcgis-online/create-maps/set-refresh-interval.htm}.",
                    "type": "number"
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "visibility": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                }
            },
            "required": [
                "layerType"
            ],
            "type": "object"
        },
        "esri.rest-api.RendererJson.AuthoringInfoJson": {
            "additionalProperties": false,
            "description": "The authoringInfo is an object containing metadata about the authoring process for creating a renderer object. This allows the authoring clients to save specific overridable settings so that next time it is accessed via the UI, their selections are remembered. Non-authoring clients should ignore it. In order to support the slider with color/size/transparency information, the selection of the various themes, classification, and additional properties are saved within this object.\n\nNote: The authoringInfo object is not required with a renderer. It is only used if rendering was generated using Map Viewer rendering tools.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/authoringInfo/} {@link https://developers.arcgis.com/web-scene-specification/objects/authoringInfo/}.",
            "properties": {
                "classificationMethod": {
                    "$ref": "esri.rest-api.RendererJson.ClassificationMethodJsonType",
                    "description": "Used for classed color or size. The default value is esriClassifyManual."
                },
                "colorRamp": {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.ColorRampJson",
                    "description": "A colorRamp object is used to specify a range of colors that are applied to a group of symbols."
                },
                "field": {
                    "$ref": "#/definitions/esri.rest-api.FieldJson.FieldJson",
                    "description": "Contains information about an attribute field."
                },
                "fields": {
                    "description": "An array of string values representing field names used for creating predominance renderers.",
                    "type": "string"
                },
                "standardDeviationInterval": {
                    "description": "Use if the classificationMethod is esriClassifyStandardDeviation. Possible values: 0.25, 0.33, 0.5, 1.",
                    "type": "number"
                },
                "type": {
                    "$ref": "AuthoringInfoJsonType",
                    "description": "In case of classed renderers this is set to either classedSize or classedColor."
                },
                "visualVariables": {
                    "$ref": "#/definitions/VisualVariableJson",
                    "description": "An array of visualVariable objects used for continuous color or size, simple, and unique values with feature opacity."
                }
            },
            "type": "object"
        },
        "esri.rest-api.RendererJson.ClassBreakInfoJson": {
            "additionalProperties": false,
            "description": "The classBreaksInfo object provides information about the class breaks associated with the renderer.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/classBreakInfo/} {@link https://developers.arcgis.com/web-scene-specification/objects/classBreakInfo/}.",
            "properties": {
                "classMaxValue": {
                    "description": "A numeric value used to specify the maximum value for a break.",
                    "type": "number"
                },
                "classMinValue": {
                    "description": "A numeric value used to specify discontinuous class breaks. If this value is null or is missing, the map server will calculate the minimum value based on the preceding class' maximum value.",
                    "type": "number"
                },
                "description": {
                    "description": "String value used to describe the drawn symbol.",
                    "type": "string"
                },
                "label": {
                    "description": "String value used to label the drawn symbol.",
                    "type": "string"
                },
                "symbol": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.SymbolJson",
                    "description": "An object used to display the value."
                }
            },
            "required": [
                "classMaxValue",
                "symbol"
            ],
            "type": "object"
        },
        "esri.rest-api.RendererJson.ClassBreaksRendererJson": {
            "additionalProperties": false,
            "description": "A class breaks renderer symbolizes based on the value of some numeric attribute. The classBreakInfo define the values at which the symbology changes.\n\nIf the Normalization Type property is defined than the class breaks contain a normalized min/max value instead of the actual value. The data value, obtained from the field property, is normalized using one of the following functions before it is compared with the class breaks.\n\n1. Field - Divide the data value using the attribute value of the field    specified by the normalizationField property.\n2. Log - Compute the base 10 logarithm of the data value. This can be a useful    approach for some data distributions because it reduced the influence of    very large data values.\n3. Percent-of-total - Divide the data value by the sum of all data values then    multiply by 100. Use the normalizationTotal property to determine the    total value.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/classBreaks_renderer/} {@link https://developers.arcgis.com/web-scene-specification/objects/classBreaksRenderer/}.",
            "properties": {
                "authoringInfo": {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.AuthoringInfoJson",
                    "description": "An object containing metadata about the authoring process for creating a renderer object. This allows the authoring clients to save specific overridable settings so that next time it is accessed via the UI, their selections are remembered. Non-authoring clients should ignore it."
                },
                "backgroundFillSymbol": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/esri.rest-api.SymbolJson.SimpleFillSymbolJson"
                        },
                        {
                            "$ref": "#/definitions/esri.rest-api.SymbolJson.PolygonSymbol3DJson"
                        }
                    ],
                    "description": "Supported only for polygon features. It is a SimpleFillSymbol."
                },
                "classBreakInfos": {
                    "description": "Array of objects with value, label, and description.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.RendererJson.ClassBreakInfoJson"
                    },
                    "type": "array"
                },
                "classificationMethod": {
                    "$ref": "esri.rest-api.RendererJson.ClassificationMethodJsonType",
                    "description": "Determines the classification method that was used to generate class breaks."
                },
                "defaultLabel": {
                    "description": "Default string for the default symbol used to draw unspecified values.",
                    "type": "string"
                },
                "defaultSymbol": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.SymbolJson",
                    "description": "Symbol used when a value cannot be classified."
                },
                "field": {
                    "description": "String value specifying the numeric field used in generating the class breaks.",
                    "type": "string"
                },
                "minValue": {
                    "description": "The minimum numeric data value needed to begin class breaks.",
                    "type": "number"
                },
                "normalizationField": {
                    "description": "Used when normalizationType is NormalizationType.BY_FIELD.",
                    "type": "string"
                },
                "normalizationTotal": {
                    "description": "Used when normalizationType is NormalizationType.BY_FIELD.",
                    "type": "number"
                },
                "normalizationType": {
                    "description": "One of the NormalizationType constants.",
                    "enum": [
                        "esriNormalizeByField",
                        "esriNormalizeByLog",
                        "esriNormalizeByPercentOfTotal"
                    ],
                    "type": "string"
                },
                "rotationExpression": {
                    "description": "A constant value or an expression that derives the angle of rotation based on a feature attribute value. When an attribute name is specified, it's enclosed in square brackets.",
                    "type": "string"
                },
                "rotationType": {
                    "$ref": "RotationJsonType",
                    "description": "String value (either geographic or arithmetic) which controls the origin and direction of rotation on point features. If the rotationType is defined as 'arithmetic', the symbol is rotated from East in a counter-clockwise direction where East is the 0� axis. If the rotationType is defined as 'geographic', the symbol is rotated from North in a clockwise direction where North is the 0� axis."
                },
                "type": {
                    "const": "classBreaks",
                    "description": "The type of renderer. See {@link RendererJsonType}.",
                    "type": "string"
                },
                "visualVariables": {
                    "description": "An array of visualVariable objects used for continuous color or size, simple, and unique values with feature opacity.",
                    "items": {
                        "$ref": "#/definitions/VisualVariableJson"
                    },
                    "type": "array"
                }
            },
            "required": [
                "classBreakInfos",
                "classificationMethod",
                "field",
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.RendererJson.ColorClassBreakInfoJson": {
            "additionalProperties": false,
            "description": "The classBreaksInfo object provides information about the class breaks associated with the renderer.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/colorClassBreakInfo/}.",
            "properties": {
                "classMaxValue": {
                    "description": "A numeric value used to specify the maximum value for a break.",
                    "type": "number"
                },
                "classMinValue": {
                    "description": "A numeric value used to specify discontinuous class breaks. If this value is null or is missing, the map server will calculate the minimum value based on the preceding class' maximum value.",
                    "type": "number"
                },
                "color": {
                    "$ref": "#/definitions/ColorJson",
                    "description": "Color is represented as a three or four-element array."
                },
                "description": {
                    "description": "String value used to describe the class.",
                    "type": "string"
                },
                "label": {
                    "description": "String value used to label the class.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.RendererJson.ColorInfoJson": {
            "additionalProperties": false,
            "description": "The colorInfo visual variable defines how a continuous color ramp is applied to features based on the values of a numeric field attribute. The minimum and maximum values of the data should be indicated along with their respective color values. You must specify either colors or stops to construct the color ramp.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/colorInfo_visualVariable/} {@link https://developers.arcgis.com/web-scene-specification/objects/colorInfo_visualVariable/}.",
            "properties": {
                "colors": {
                    "description": "An array of colors that define the color ramp. Either colors or stops must be specified to construct the color ramp.",
                    "items": {
                        "$ref": "#/definitions/ColorJson"
                    },
                    "type": "array"
                },
                "field": {
                    "description": "A string value indicating the name of the feature attribute field that contains the data value to render.",
                    "type": "string"
                },
                "legendOptions": {
                    "$ref": "__type",
                    "description": "Options available for the legend. See {@link https://developers.arcgis.com/web-map-specification/objects/legendOptions/} {@link https://developers.arcgis.com/web-scene-specification/objects/legendOptions/}."
                },
                "maxDataValue": {
                    "description": "The maximum data value.",
                    "type": "number"
                },
                "minDataValue": {
                    "description": "The minimum data value.",
                    "type": "number"
                },
                "normalizationField": {
                    "description": "String value indicating the name of the attribute field used to normalize the data.",
                    "type": "string"
                },
                "stops": {
                    "description": "An array of stop objects.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.RendererJson.ColorStopJson"
                    },
                    "type": "array"
                },
                "type": {
                    "const": "colorInfo",
                    "description": "The type of the VisualVariable.",
                    "type": "string"
                }
            },
            "required": [
                "field",
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.RendererJson.ColorRampJson": {
            "additionalProperties": false,
            "description": "A colorRamp object is used to specify a range of colors that are applied to a group of symbols. See {@link https://developers.arcgis.com/web-map-specification/objects/colorRamp/}.",
            "properties": {
                "algorithm": {
                    "description": "Algorithm used for calculating the ramp.",
                    "enum": [
                        "esriCIELabAlgorithm",
                        "esriHSVAlgorithm",
                        "esriLabLChAlgorithm"
                    ],
                    "type": "string"
                },
                "colorRamps": {
                    "description": "A multipart color ramp is defined by a list of constituent color ramps.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.RendererJson.ColorRampJson"
                    },
                    "type": "array"
                },
                "fromColor": {
                    "description": "Array representing the initial color to start the ramp from.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 4,
                    "minItems": 4,
                    "type": "array"
                },
                "toColor": {
                    "description": "Array representing the final color to end the ramp with.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 4,
                    "minItems": 4,
                    "type": "array"
                },
                "type": {
                    "description": "Value indicating the type of colorRamp.",
                    "enum": [
                        "algorithmic",
                        "multipart"
                    ],
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.RendererJson.ColorStopJson": {
            "additionalProperties": false,
            "description": "A sizeStop object describes the size of the symbol at various values of the expression.",
            "properties": {
                "color": {
                    "anyOf": [
                        {
                            "items": [
                                {
                                    "type": "number"
                                },
                                {
                                    "type": "number"
                                },
                                {
                                    "type": "number"
                                },
                                {
                                    "type": "number"
                                }
                            ],
                            "maxItems": 4,
                            "minItems": 4,
                            "type": "array"
                        },
                        {
                            "items": [
                                {
                                    "type": "number"
                                },
                                {
                                    "type": "number"
                                },
                                {
                                    "type": "number"
                                }
                            ],
                            "maxItems": 3,
                            "minItems": 3,
                            "type": "array"
                        },
                        {
                            "type": "string"
                        }
                    ],
                    "description": "A CSS color string or an array of rbga values. The color to place at the stop indicated by either a ratio or value."
                },
                "label": {
                    "description": "Value if a label is needed on the legend for a stop.",
                    "type": "string"
                },
                "value": {
                    "description": "The pixel intensity value. Describes the pixel intensity value that the color should be associated with. Just like in colorInfo, using value will ignore maxPixelIntensity and minPixelIntensity properties. It will actually set those properties to maximum and minimum values you set in the colorStops array. The hard values are converted to ratios to create the color gradient that is used in the heatmap calculations. Setting minPixelIntensity or maxPixelIntensity, after setting colorStops with values, removes the hard link between the color ramp and the pixel intensity values that were used to create it.",
                    "type": "number"
                }
            },
            "type": "object"
        },
        "esri.rest-api.RendererJson.ColorUniqueValueInfosJson": {
            "additionalProperties": false,
            "description": "The classBreaksInfo object provides information about the class breaks associated with the renderer.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/colorUniqueValueInfo/}.",
            "properties": {
                "color": {
                    "$ref": "#/definitions/ColorJson",
                    "description": "Color is represented as a three or four-element array."
                },
                "description": {
                    "description": "String value used to describe the class.",
                    "type": "string"
                },
                "label": {
                    "description": "String value used to label the class.",
                    "type": "string"
                },
                "values": {
                    "description": "List of string values used to classify points.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                }
            },
            "type": "object"
        },
        "esri.rest-api.RendererJson.HeatmapRendererJson": {
            "additionalProperties": false,
            "description": "The HeatmapRenderer renders point data into a raster visualization that emphasizes areas of higher density or weighted values.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/heatmapRenderer/}.",
            "properties": {
                "authoringInfo": {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.AuthoringInfoJson",
                    "description": "An object containing metadata about the authoring process for creating a renderer object. This allows the authoring clients to save specific overridable settings so that next time it is accessed via the UI, their selections are remembered. Non-authoring clients should ignore it."
                },
                "blurRadius": {
                    "description": "The radius (in pixels) of the circle over which the majority of each points value is spread over.",
                    "type": "number"
                },
                "colorStops": {
                    "description": "An array of colorStop objects describing the renderer's color ramp with more specificity than just colors.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.RendererJson.ColorStopJson"
                    },
                    "type": "array"
                },
                "field": {
                    "description": "Value specifying the field used in generating the heat map.",
                    "type": "string"
                },
                "maxPixelIntensity": {
                    "description": "The pixel intensity value which is assigned the final color in the color ramp.",
                    "type": "number"
                },
                "minPixelIntensity": {
                    "description": "The pixel intensity value which is assigned the initial color in the color ramp.",
                    "type": "number"
                },
                "rotationExpression": {
                    "description": "A constant value or an expression that derives the angle of rotation based on a feature attribute value. When an attribute name is specified, it's enclosed in square brackets.",
                    "type": "string"
                },
                "rotationType": {
                    "$ref": "RotationJsonType",
                    "description": "String value (either geographic or arithmetic) which controls the origin and direction of rotation on point features. If the rotationType is defined as 'arithmetic', the symbol is rotated from East in a counter-clockwise direction where East is the 0� axis. If the rotationType is defined as 'geographic', the symbol is rotated from North in a clockwise direction where North is the 0� axis."
                },
                "type": {
                    "const": "heatmap",
                    "description": "The type of renderer. See {@link RendererJsonType}.",
                    "type": "string"
                },
                "visualVariables": {
                    "description": "An array of visualVariable objects used for continuous color or size, simple, and unique values with feature opacity.",
                    "items": {
                        "$ref": "#/definitions/VisualVariableJson"
                    },
                    "type": "array"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.RendererJson.PointCloudClassBreaksRendererJson": {
            "additionalProperties": false,
            "description": "PointCloudClassBreaksRenderer defines the color of each point in a PointCloudLayer based on the value of a numeric attribute. Colors are assigned based on classes or ranges of data. Each point is assigned a symbol based on the class break in which the value of the attribute falls.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/pointCloudClassBreaksRenderer/}.",
            "properties": {
                "authoringInfo": {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.AuthoringInfoJson",
                    "description": "An object containing metadata about the authoring process for creating a renderer object. This allows the authoring clients to save specific overridable settings so that next time it is accessed via the UI, their selections are remembered. Non-authoring clients should ignore it."
                },
                "colorClassBreakInfos": {
                    "description": "Each element in the array is an object that provides information about a class break associated with the renderer.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.RendererJson.ColorClassBreakInfoJson"
                    },
                    "type": "array"
                },
                "colorModulation": {
                    "$ref": "__type",
                    "description": "Indicates whether modulation should be used to render the point.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/colorModulationInfo/}."
                },
                "field": {
                    "description": "The name of the field that is used for the renderer.",
                    "type": "string"
                },
                "fieldTransformType": {
                    "description": "A transform that is applied to the field value before evaluating the renderer.",
                    "enum": [
                        "absoluteValue",
                        "highFourBit",
                        "lowFourBit",
                        "moduloTen",
                        "none"
                    ],
                    "type": "string"
                },
                "pointSizeAlgorithm": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/esri.rest-api.RendererJson.PointCloudSplatAlgorithmJson"
                        },
                        {
                            "$ref": "#/definitions/esri.rest-api.RendererJson.PointCloudFixedSizeAlgorithmJson"
                        }
                    ],
                    "description": "Size algorithms for point cloud performance."
                },
                "pointsPerInch": {
                    "description": "Number of point to draw per display inch.",
                    "type": "number"
                },
                "rotationExpression": {
                    "description": "A constant value or an expression that derives the angle of rotation based on a feature attribute value. When an attribute name is specified, it's enclosed in square brackets.",
                    "type": "string"
                },
                "rotationType": {
                    "$ref": "RotationJsonType",
                    "description": "String value (either geographic or arithmetic) which controls the origin and direction of rotation on point features. If the rotationType is defined as 'arithmetic', the symbol is rotated from East in a counter-clockwise direction where East is the 0� axis. If the rotationType is defined as 'geographic', the symbol is rotated from North in a clockwise direction where North is the 0� axis."
                },
                "type": {
                    "const": "pointCloudClassBreaksRenderer",
                    "description": "The type of renderer. See {@link RendererJsonType}.",
                    "type": "string"
                },
                "visualVariables": {
                    "description": "An array of visualVariable objects used for continuous color or size, simple, and unique values with feature opacity.",
                    "items": {
                        "$ref": "#/definitions/VisualVariableJson"
                    },
                    "type": "array"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.RendererJson.PointCloudFixedSizeAlgorithmJson": {
            "additionalProperties": false,
            "description": "Render points with fixed real world or screen space size.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/pointCloudFixedSizeAlgorithm/}.",
            "properties": {
                "size": {
                    "description": "Symbol size in real world units or display unit.",
                    "type": "number"
                },
                "type": {
                    "const": "pointCloudFixedSizeAlgorithm",
                    "description": "Type:String Value of this property must be pointCloudFixedSizeAlgorithm.",
                    "type": "string"
                },
                "useRealWorldSymbolSizes": {
                    "description": "If true symbol size is in meters, display unit (pt) otherwise.",
                    "type": "boolean"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.RendererJson.PointCloudRGBRendererJson": {
            "additionalProperties": false,
            "description": "PointCloudRGBRenderer defines the color of each point in a PointCloudLayer based on the value of a color attribute.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/pointCloudRGBRenderer/}.",
            "properties": {
                "authoringInfo": {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.AuthoringInfoJson",
                    "description": "An object containing metadata about the authoring process for creating a renderer object. This allows the authoring clients to save specific overridable settings so that next time it is accessed via the UI, their selections are remembered. Non-authoring clients should ignore it."
                },
                "colorModulation": {
                    "$ref": "__type",
                    "description": "Indicates whether modulation should be used to render the point.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/colorModulationInfo/}."
                },
                "field": {
                    "description": "The name of the field that is used for the renderer.",
                    "type": "string"
                },
                "fieldTransformType": {
                    "description": "A transform that is applied to the field value before evaluating the renderer.",
                    "enum": [
                        "absoluteValue",
                        "highFourBit",
                        "lowFourBit",
                        "moduloTen",
                        "none"
                    ],
                    "type": "string"
                },
                "pointSizeAlgorithm": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/esri.rest-api.RendererJson.PointCloudSplatAlgorithmJson"
                        },
                        {
                            "$ref": "#/definitions/esri.rest-api.RendererJson.PointCloudFixedSizeAlgorithmJson"
                        }
                    ],
                    "description": "Size algorithms for point cloud performance."
                },
                "pointsPerInch": {
                    "description": "Number of point to draw per display inch.",
                    "type": "number"
                },
                "rotationExpression": {
                    "description": "A constant value or an expression that derives the angle of rotation based on a feature attribute value. When an attribute name is specified, it's enclosed in square brackets.",
                    "type": "string"
                },
                "rotationType": {
                    "$ref": "RotationJsonType",
                    "description": "String value (either geographic or arithmetic) which controls the origin and direction of rotation on point features. If the rotationType is defined as 'arithmetic', the symbol is rotated from East in a counter-clockwise direction where East is the 0� axis. If the rotationType is defined as 'geographic', the symbol is rotated from North in a clockwise direction where North is the 0� axis."
                },
                "type": {
                    "const": "pointCloudRGBRenderer",
                    "description": "The type of renderer. See {@link RendererJsonType}.",
                    "type": "string"
                },
                "visualVariables": {
                    "description": "An array of visualVariable objects used for continuous color or size, simple, and unique values with feature opacity.",
                    "items": {
                        "$ref": "#/definitions/VisualVariableJson"
                    },
                    "type": "array"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.RendererJson.PointCloudSplatAlgorithmJson": {
            "additionalProperties": false,
            "description": "Render points using sizes depending on point density.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/pointCloudSplatAlgorithm/}.",
            "properties": {
                "minSize": {
                    "description": "Minimum display space point size in points.",
                    "type": "number"
                },
                "scaleFactor": {
                    "description": "Scale factor to applied to the computed point size (in real world).",
                    "type": "number"
                },
                "type": {
                    "const": "pointCloudSplatAlgorithm",
                    "description": "Type:String Value of this property must be pointCloudSplatAlgorithm.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.RendererJson.PointCloudStretchRendererJson": {
            "additionalProperties": false,
            "description": "PointCloudStretchRenderer defines the color of each point in a PointCloudLayer based on the value of a numeric attribute. They allow you to easily map continuous color ramps to minimum and maximum data values of one of the layer's numeric attribute fields.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/pointCloudStretchRenderer/}.",
            "properties": {
                "authoringInfo": {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.AuthoringInfoJson",
                    "description": "An object containing metadata about the authoring process for creating a renderer object. This allows the authoring clients to save specific overridable settings so that next time it is accessed via the UI, their selections are remembered. Non-authoring clients should ignore it."
                },
                "colorModulation": {
                    "$ref": "__type",
                    "description": "Indicates whether modulation should be used to render the point.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/colorModulationInfo/}."
                },
                "field": {
                    "description": "The name of the field that is used for the renderer.",
                    "type": "string"
                },
                "fieldTransformType": {
                    "description": "A transform that is applied to the field value before evaluating the renderer.",
                    "enum": [
                        "absoluteValue",
                        "highFourBit",
                        "lowFourBit",
                        "moduloTen",
                        "none"
                    ],
                    "type": "string"
                },
                "pointSizeAlgorithm": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/esri.rest-api.RendererJson.PointCloudSplatAlgorithmJson"
                        },
                        {
                            "$ref": "#/definitions/esri.rest-api.RendererJson.PointCloudFixedSizeAlgorithmJson"
                        }
                    ],
                    "description": "Size algorithms for point cloud performance."
                },
                "pointsPerInch": {
                    "description": "Number of point to draw per display inch.",
                    "type": "number"
                },
                "rotationExpression": {
                    "description": "A constant value or an expression that derives the angle of rotation based on a feature attribute value. When an attribute name is specified, it's enclosed in square brackets.",
                    "type": "string"
                },
                "rotationType": {
                    "$ref": "RotationJsonType",
                    "description": "String value (either geographic or arithmetic) which controls the origin and direction of rotation on point features. If the rotationType is defined as 'arithmetic', the symbol is rotated from East in a counter-clockwise direction where East is the 0� axis. If the rotationType is defined as 'geographic', the symbol is rotated from North in a clockwise direction where North is the 0� axis."
                },
                "type": {
                    "const": "pointCloudStretchRenderer",
                    "description": "The type of renderer. See {@link RendererJsonType}.",
                    "type": "string"
                },
                "visualVariables": {
                    "description": "An array of visualVariable objects used for continuous color or size, simple, and unique values with feature opacity.",
                    "items": {
                        "$ref": "#/definitions/VisualVariableJson"
                    },
                    "type": "array"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.RendererJson.PointCloudUniqueValueRendererJson": {
            "additionalProperties": false,
            "description": "PointCloudUniqueValueRenderer allows you to colorize points in a PointCloudLayer based on an attribute. This is done by using unique colors to represent points with equal attribute values.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/pointCloudUniqueValueRenderer/}.",
            "properties": {
                "authoringInfo": {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.AuthoringInfoJson",
                    "description": "An object containing metadata about the authoring process for creating a renderer object. This allows the authoring clients to save specific overridable settings so that next time it is accessed via the UI, their selections are remembered. Non-authoring clients should ignore it."
                },
                "colorModulation": {
                    "$ref": "__type",
                    "description": "Indicates whether modulation should be used to render the point.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/colorModulationInfo/}."
                },
                "colorUniqueValueInfos": {
                    "description": "Unique value infos.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.RendererJson.ColorUniqueValueInfosJson"
                    },
                    "type": "array"
                },
                "field": {
                    "description": "The name of the field that is used for the renderer.",
                    "type": "string"
                },
                "fieldTransformType": {
                    "description": "A transform that is applied to the field value before evaluating the renderer.",
                    "enum": [
                        "absoluteValue",
                        "highFourBit",
                        "lowFourBit",
                        "moduloTen",
                        "none"
                    ],
                    "type": "string"
                },
                "pointSizeAlgorithm": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/esri.rest-api.RendererJson.PointCloudSplatAlgorithmJson"
                        },
                        {
                            "$ref": "#/definitions/esri.rest-api.RendererJson.PointCloudFixedSizeAlgorithmJson"
                        }
                    ],
                    "description": "Size algorithms for point cloud performance."
                },
                "pointsPerInch": {
                    "description": "Number of point to draw per display inch.",
                    "type": "number"
                },
                "rotationExpression": {
                    "description": "A constant value or an expression that derives the angle of rotation based on a feature attribute value. When an attribute name is specified, it's enclosed in square brackets.",
                    "type": "string"
                },
                "rotationType": {
                    "$ref": "RotationJsonType",
                    "description": "String value (either geographic or arithmetic) which controls the origin and direction of rotation on point features. If the rotationType is defined as 'arithmetic', the symbol is rotated from East in a counter-clockwise direction where East is the 0� axis. If the rotationType is defined as 'geographic', the symbol is rotated from North in a clockwise direction where North is the 0� axis."
                },
                "type": {
                    "const": "pointCloudUniqueValueRenderer",
                    "description": "The type of renderer. See {@link RendererJsonType}.",
                    "type": "string"
                },
                "visualVariables": {
                    "description": "An array of visualVariable objects used for continuous color or size, simple, and unique values with feature opacity.",
                    "items": {
                        "$ref": "#/definitions/VisualVariableJson"
                    },
                    "type": "array"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.RendererJson.PredominanceRendererJson": {
            "additionalProperties": false,
            "description": "This renderer is a type of UniqueValue renderer which is based off the valueExpression property rather than field. Optionally, size and/or transparency visual variables may be included with valueExpression. Note that this renderer is supported for ArcGIS Online hosted feature services and feature collections.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/predominance_renderer/}.",
            "properties": {
                "authoringInfo": {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.AuthoringInfoJson",
                    "description": "An object containing metadata about the authoring process for creating a renderer object. This allows the authoring clients to save specific overridable settings so that next time it is accessed via the UI, their selections are remembered. Non-authoring clients should ignore it."
                },
                "backgroundFillSymbol": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.SimpleFillSymbolJson",
                    "description": "A simple fill symbol that is only for polygon features."
                },
                "defaultLabel": {
                    "description": "Default string for the default symbol used to draw unspecified values.",
                    "type": "string"
                },
                "defaultSymbol": {
                    "$ref": "#/definitions/Symbol2DJson",
                    "description": "Symbol used when a value cannot be classified."
                },
                "rotationExpression": {
                    "description": "A constant value or an expression that derives the angle of rotation based on a feature attribute value. When an attribute name is specified, it's enclosed in square brackets.",
                    "type": "string"
                },
                "rotationType": {
                    "$ref": "RotationJsonType",
                    "description": "String value (either geographic or arithmetic) which controls the origin and direction of rotation on point features. If the rotationType is defined as 'arithmetic', the symbol is rotated from East in a counter-clockwise direction where East is the 0� axis. If the rotationType is defined as 'geographic', the symbol is rotated from North in a clockwise direction where North is the 0� axis."
                },
                "type": {
                    "const": "predominance",
                    "description": "The type of renderer. See {@link RendererJsonType}.",
                    "type": "string"
                },
                "uniqueValueInfos": {
                    "description": "Array of objects with value, label, description and symbol.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.RendererJson.UniqueValueInfoJson"
                    },
                    "type": "array"
                },
                "visualVariables": {
                    "description": "An array of visualVariable objects used for continuous color or size, simple, and unique values with feature opacity.",
                    "items": {
                        "$ref": "#/definitions/VisualVariableJson"
                    },
                    "type": "array"
                }
            },
            "required": [
                "backgroundFillSymbol",
                "type",
                "uniqueValueInfos"
            ],
            "type": "object"
        },
        "esri.rest-api.RendererJson.RotationInfoJson": {
            "additionalProperties": false,
            "description": "The rotation visual variable defines how features rendered with marker symbols are rotated. The rotation value is determined by mapping the values to data in a field, or by other arithmetic means with a function.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/rotationInfo_visualVariable/} {@link https://developers.arcgis.com/web-map-specification/objects/rotationInfo_visualVariable/}.",
            "properties": {
                "field": {
                    "description": "A string value indicating the name of the feature attribute field that contains the data value to render.",
                    "type": "string"
                },
                "legendOptions": {
                    "$ref": "__type",
                    "description": "Options available for the legend. See {@link https://developers.arcgis.com/web-map-specification/objects/legendOptions/} {@link https://developers.arcgis.com/web-scene-specification/objects/legendOptions/}."
                },
                "normalizationField": {
                    "description": "String value indicating the name of the attribute field used to normalize the data.",
                    "type": "string"
                },
                "rotationType": {
                    "$ref": "RotationJsonType",
                    "description": "Defines the origin and direction of rotation depending on how the angle of rotation was measured. Possible values are geographic which rotates the symbol from the north in a clockwise direction and arithmetic which rotates the symbol from the east in a counter-clockwise direction.\n\nMust be one of the following values: geographic, arithmetic."
                },
                "type": {
                    "const": "rotationInfo",
                    "description": "The type of the VisualVariable.",
                    "type": "string"
                },
                "valueExpression": {
                    "description": "An Arcade expression that computes a value in lieu of a value provided by an attribute field.",
                    "type": "string"
                }
            },
            "required": [
                "field",
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.RendererJson.SimpleRendererJson": {
            "additionalProperties": false,
            "description": "A simple renderer is a renderer that uses one symbol only.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/simple_renderer/} {@link https://developers.arcgis.com/web-scene-specification/objects/simpleRenderer/}.",
            "properties": {
                "authoringInfo": {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.AuthoringInfoJson",
                    "description": "An object containing metadata about the authoring process for creating a renderer object. This allows the authoring clients to save specific overridable settings so that next time it is accessed via the UI, their selections are remembered. Non-authoring clients should ignore it."
                },
                "description": {
                    "description": "The text string that does not appear in the table of contents but may appear in the legend.",
                    "type": "string"
                },
                "label": {
                    "description": "The text string that is displayed in the table of contents.",
                    "type": "string"
                },
                "rotationExpression": {
                    "description": "A constant value or an expression that derives the angle of rotation based on a feature attribute value. When an attribute name is specified, it's enclosed in square brackets.",
                    "type": "string"
                },
                "rotationType": {
                    "$ref": "RotationJsonType",
                    "description": "String value (either geographic or arithmetic) which controls the origin and direction of rotation on point features. If the rotationType is defined as 'arithmetic', the symbol is rotated from East in a counter-clockwise direction where East is the 0� axis. If the rotationType is defined as 'geographic', the symbol is rotated from North in a clockwise direction where North is the 0� axis."
                },
                "symbol": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.SymbolJson",
                    "description": "An object that represents how all features will be drawn."
                },
                "type": {
                    "const": "simple",
                    "description": "The type of renderer. See {@link RendererJsonType}.",
                    "type": "string"
                },
                "visualVariables": {
                    "description": "An array of visualVariable objects used for continuous color or size, simple, and unique values with feature opacity.",
                    "items": {
                        "$ref": "#/definitions/VisualVariableJson"
                    },
                    "type": "array"
                }
            },
            "required": [
                "symbol",
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.RendererJson.SizeInfoJson": {
            "additionalProperties": false,
            "description": "The sizeInfo visual variable defines how a continuous color ramp is applied to features based on the values of a numeric field attribute. The minimum and maximum values of the data should be indicated along with their respective color values. You must specify either colors or stops to construct the color ramp.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/sizeInfo_visualVariable/} {@link https://developers.arcgis.com/web-scene-specification/objects/sizeInfo_visualVariable/}.",
            "properties": {
                "axis": {
                    "description": "Defines the axis the size visual variable should be applied to when rendering features with an ObjectSymbol3DLayer.",
                    "enum": [
                        "all",
                        "depth",
                        "height",
                        "width",
                        "widthAndDepth"
                    ],
                    "type": "string"
                },
                "field": {
                    "description": "A string value indicating the name of the feature attribute field that contains the data value to render.",
                    "type": "string"
                },
                "legendOptions": {
                    "$ref": "__type",
                    "description": "Options available for the legend. See {@link https://developers.arcgis.com/web-map-specification/objects/legendOptions/} {@link https://developers.arcgis.com/web-scene-specification/objects/legendOptions/}."
                },
                "maxDataValue": {
                    "description": "The maximum data value.",
                    "type": "number"
                },
                "maxSize": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/esri.rest-api.RendererJson.SizeJson"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "description": "Specifies the largest marker size to use at any given map scale. This is required if valueUnit is set to unknown. In addition to this property taking an object, it also accepts a number value."
                },
                "minDataValue": {
                    "description": "The minimum data value.",
                    "type": "number"
                },
                "minSize": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/esri.rest-api.RendererJson.SizeJson"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "description": "Specifies the smallest marker size to use at any given map scale. This is required if valueUnit is set to 'unknown'. In addition to this property taking an object, it also accepts a number value."
                },
                "normalizationField": {
                    "description": "String value indicating the name of the attribute field used to normalize the data.",
                    "type": "string"
                },
                "stops": {
                    "description": "An array of objects that define the maximum size of the symbol at various values of the expression.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.RendererJson.SizeStopJson"
                    },
                    "type": "array"
                },
                "target": {
                    "const": "outline",
                    "description": "String value indicating that the sizeInfo should be applied to the outline of polygons.",
                    "type": "string"
                },
                "type": {
                    "const": "sizeInfo",
                    "description": "The type of the VisualVariable.",
                    "type": "string"
                },
                "useSymbolValue": {
                    "description": "When setting a size visual variable on a renderer using an ObjectSymbol3DLayer, this property indicates whether to apply the value defined by the height, width, or depth properties to the corresponding axis of this visual variable instead of proportionally scaling this axis' value after other axes.",
                    "type": "boolean"
                },
                "valueRepresentation": {
                    "description": "Specifies how to apply the data value when mapping real-world sizes. See table below for supported values.",
                    "enum": [
                        "area",
                        "diameter",
                        "distance",
                        "radius",
                        "width"
                    ],
                    "type": "string"
                },
                "valueUnit": {
                    "description": "A string value indicating the required unit of measurement if the data represents a real world distance quantity. If the data value represents a non-distance quantity, e.g. traffic count, census data, etc., valueUnits should be set to 'unknown'.",
                    "enum": [
                        "centimeters",
                        "decimal-degrees",
                        "decimeters",
                        "feet",
                        "inches",
                        "kilometer",
                        "meters",
                        "miles",
                        "millimeters",
                        "nautical-miles",
                        "unknown",
                        "yards"
                    ],
                    "type": "string"
                }
            },
            "required": [
                "field",
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.RendererJson.SizeJson": {
            "additionalProperties": false,
            "description": "Specifies the largest marker size to use at any given map scale. This is required if valueUnit is set to unknown.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/maxSize/} {@link https://developers.arcgis.com/web-map-specification/objects/minSize/} {@link https://developers.arcgis.com/web-scene-specification/objects/maxSize/} {@link https://developers.arcgis.com/web-scene-specification/objects/minSize/}.",
            "properties": {
                "expression": {
                    "description": "The value which allows a size to be defined based on the map scale. Currently, the only supported expression is, view.scale.",
                    "type": "string"
                },
                "stops": {
                    "description": "An array of objects that define the maximum size of the symbol at various values of the expression. Each object in the array has a numeric size property and a numeric value property. If the value calculated from the expression matches the value of a stop, than the size corresponding to that stop is selected. For example, if expression is set to view.scale, the value corresponds to the map's scale. The size represents the maximum symbol size (in pixels) that corresponds to this scale. If the map scale matches the scale value of a stop, the size corresponding to that stop value is used as the maximum symbol size for the features. If the map scale value falls between two stops, the maximum symbol size is interpolated between the sizes of the two stops. The minSize and maxSize stop values are usually the same, although it is possible to have different values depending on how minSize is calculated versus the maxSize.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.RendererJson.SizeStopJson"
                    },
                    "type": "array"
                },
                "target": {
                    "description": "Value indicating that sizeInfo should be applied to the outline of polygons. This value can be outline or null.",
                    "type": "string"
                },
                "type": {
                    "description": "Value indicating the type of rendering, e.g. 'sizeInfo'.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.RendererJson.SizeStopJson": {
            "additionalProperties": false,
            "description": "A sizeStop object describes the size of the symbol at various values of the expression.",
            "properties": {
                "label": {
                    "description": "Value if a label is needed on the legend for a stop.",
                    "type": "string"
                },
                "size": {
                    "description": "Specifies the marker size to use for the specified value.",
                    "type": "number"
                },
                "value": {
                    "description": "The value to be mapped to a size.",
                    "type": "number"
                }
            },
            "type": "object"
        },
        "esri.rest-api.RendererJson.TemporalRendererJson": {
            "additionalProperties": false,
            "description": "A temporal renderer is used to perform time-based rendering of features in a feature layer.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/temporalRenderer/}.",
            "properties": {
                "authoringInfo": {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.AuthoringInfoJson",
                    "description": "An object containing metadata about the authoring process for creating a renderer object. This allows the authoring clients to save specific overridable settings so that next time it is accessed via the UI, their selections are remembered. Non-authoring clients should ignore it."
                },
                "latestObservationRenderer": {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.SimpleRendererJson",
                    "description": "Simple renderer used to symbolize point geometries for the most current observations."
                },
                "observationalRenderer": {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.SimpleRendererJson",
                    "description": "Simple renderer used to symbolize regular/historic observations."
                },
                "rotationExpression": {
                    "description": "A constant value or an expression that derives the angle of rotation based on a feature attribute value. When an attribute name is specified, it's enclosed in square brackets.",
                    "type": "string"
                },
                "rotationType": {
                    "$ref": "RotationJsonType",
                    "description": "String value (either geographic or arithmetic) which controls the origin and direction of rotation on point features. If the rotationType is defined as 'arithmetic', the symbol is rotated from East in a counter-clockwise direction where East is the 0� axis. If the rotationType is defined as 'geographic', the symbol is rotated from North in a clockwise direction where North is the 0� axis."
                },
                "trackRenderer": {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.SimpleRendererJson",
                    "description": "Simple renderer used to symbolize the tracks."
                },
                "type": {
                    "const": "temporal",
                    "description": "The type of renderer. See {@link RendererJsonType}.",
                    "type": "string"
                },
                "visualVariables": {
                    "description": "An array of visualVariable objects used for continuous color or size, simple, and unique values with feature opacity.",
                    "items": {
                        "$ref": "#/definitions/VisualVariableJson"
                    },
                    "type": "array"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.RendererJson.TransparencyInfoJson": {
            "additionalProperties": false,
            "description": "TransparencyInfo is supported by opacityInfo in the JavaScript API. Except type and axis, all properties follow the syntax of the JavaScript API's opacityInfo property. It applies transparency to each feature based on the attribute values in a field. The exception is that the webmap JSON uses transparency (range 0 - 100, with 100 as completely transparent) instead of opacity (range 0 - 1, with 0 as completely transparent).\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/transparencyInfo_visualVariable/} {@link https://developers.arcgis.com/web-scene-specification/objects/transparencyInfo_visualVariable/}.",
            "properties": {
                "field": {
                    "description": "A string value indicating the name of the feature attribute field that contains the data value to render.",
                    "type": "string"
                },
                "legendOptions": {
                    "$ref": "__type",
                    "description": "Options available for the legend."
                },
                "normalizationField": {
                    "description": "String value indicating the name of the attribute field used to normalize the data.",
                    "type": "string"
                },
                "stops": {
                    "description": "An array of transparencyStop objects.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.RendererJson.TransparencyStopJson"
                    },
                    "type": "array"
                },
                "type": {
                    "const": "transparencyInfo",
                    "description": "The type of the VisualVariable.",
                    "type": "string"
                }
            },
            "required": [
                "field",
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.RendererJson.TransparencyStopJson": {
            "additionalProperties": false,
            "description": "The transparencyStop object defines the thematic opacity ramp in a sequence of stops. At least two stops are required. The stops must be listed in ascending order based on the value of the value property in each stop.",
            "properties": {
                "label": {
                    "description": "A string value used to label the stop in the legend.",
                    "type": "string"
                },
                "transparency": {
                    "description": "A numeric transparency value for a stop ranging from 0-100, where 0 is opaque and 100 is 100% transparent.",
                    "type": "number"
                },
                "value": {
                    "description": "The pixel intensity value. Describes the pixel intensity value that the color should be associated with.",
                    "type": "number"
                }
            },
            "required": [
                "label",
                "transparency",
                "value"
            ],
            "type": "object"
        },
        "esri.rest-api.RendererJson.UniqueValueClassJson": {
            "additionalProperties": false,
            "description": "The uniqueValueClass object contains the symbology for grouped unique values in the renderer.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/uniqueValueClass/} {@link https://developers.arcgis.com/web-scene-specification/objects/uniqueValueClass/}.",
            "properties": {
                "description": {
                    "description": "String value used to describe the drawn symbol.",
                    "type": "string"
                },
                "label": {
                    "description": "String value used to label the drawn symbol.",
                    "type": "string"
                },
                "symbol": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.SymbolJson",
                    "description": "An object used to display the value."
                },
                "values": {
                    "description": "A list of unique values that should be rendered with the same symbol. Each item in the list represents a set of value combinations represented by the given symbol. The inner array must contain only one value if only field1 is specified, two values if field1 and field2 are specified, or three values if field1, field2, and field3 are specified. The inner arrays must not contain more than three values.",
                    "items": {
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "type": "array"
                }
            },
            "required": [
                "symbol",
                "values"
            ],
            "type": "object"
        },
        "esri.rest-api.RendererJson.UniqueValueFromStyleRendererJson": {
            "additionalProperties": false,
            "description": "This is a special version of UniqueValue Renderer, which loads uniqueValue infos from a portal style.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/uniqueValueFromStyleRenderer/}.",
            "properties": {
                "authoringInfo": {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.AuthoringInfoJson",
                    "description": "An object containing metadata about the authoring process for creating a renderer object. This allows the authoring clients to save specific overridable settings so that next time it is accessed via the UI, their selections are remembered. Non-authoring clients should ignore it."
                },
                "defaultLabel": {
                    "description": "Default string for the default symbol used to draw unspecified values.",
                    "type": "string"
                },
                "defaultSymbol": {
                    "$ref": "#/definitions/Symbol3DJson",
                    "description": "The defaultSymbol on the renderer that get assigned to features with no value or features that do not fall within the configured data."
                },
                "field1": {
                    "description": "String value specifying the first field used to render matching values.",
                    "type": "string"
                },
                "rotationExpression": {
                    "description": "A constant value or an expression that derives the angle of rotation based on a feature attribute value. When an attribute name is specified, it's enclosed in square brackets.",
                    "type": "string"
                },
                "rotationType": {
                    "$ref": "RotationJsonType",
                    "description": "String value (either geographic or arithmetic) which controls the origin and direction of rotation on point features. If the rotationType is defined as 'arithmetic', the symbol is rotated from East in a counter-clockwise direction where East is the 0� axis. If the rotationType is defined as 'geographic', the symbol is rotated from North in a clockwise direction where North is the 0� axis."
                },
                "styleName": {
                    "description": "A registered web style name. Can not be used in conjunction with styleName.",
                    "type": "string"
                },
                "styleUrl": {
                    "description": "URL that points to the web style definition. Can not be used in conjunction with styleUrl.",
                    "type": "string"
                },
                "type": {
                    "const": "uniqueValue",
                    "description": "The type of renderer. See {@link RendererJsonType}.",
                    "type": "string"
                },
                "visualVariables": {
                    "description": "An array of visualVariable objects used for continuous color or size, simple, and unique values with feature opacity.",
                    "items": {
                        "$ref": "#/definitions/VisualVariableJson"
                    },
                    "type": "array"
                }
            },
            "required": [
                "field1",
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.RendererJson.UniqueValueGroupJson": {
            "additionalProperties": false,
            "description": "Represents a group of unique value classes (i.e. symbols). This is used to group symbols under a common heading and/or when representing multiple unique values with a single symbol.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/uniqueValueGroup/} {@link https://developers.arcgis.com/web-scene-specification/objects/uniqueValueGroup/}.",
            "properties": {
                "classes": {
                    "description": "Specifies the classes (i.e. symbols) to group under a common heading. Classes may be included here without a heading when representing multiple values with a single symbol.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.RendererJson.UniqueValueClassJson"
                    },
                    "type": "array"
                },
                "heading": {
                    "description": "The heading to be displayed for the collection of classes defined in this group.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.RendererJson.UniqueValueInfoJson": {
            "additionalProperties": false,
            "description": "The following is a list of properties found on the uniqueValueInfo object, which is one of the properties on the renderer object. The uniqueValueInfo object contains the symbology for each uniquely drawn value in the renderer.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/uniqueValueInfo/} {@link https://developers.arcgis.com/web-scene-specification/objects/uniqueValueInfo/}.",
            "properties": {
                "description": {
                    "description": "String value used to describe the drawn symbol.",
                    "type": "string"
                },
                "label": {
                    "description": "String value used to label the drawn symbol.",
                    "type": "string"
                },
                "symbol": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.SymbolJson",
                    "description": "An object used to display the value."
                },
                "value": {
                    "description": "String value indicating the unique value.",
                    "type": "string"
                }
            },
            "required": [
                "symbol",
                "value"
            ],
            "type": "object"
        },
        "esri.rest-api.RendererJson.UniqueValueRendererJson": {
            "additionalProperties": false,
            "description": "A unique value renderer symbolizes groups of features that have matching field values.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/uniqueValue_renderer/} {@link https://developers.arcgis.com/web-scene-specification/objects/uniqueValueRenderer/}.",
            "properties": {
                "authoringInfo": {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.AuthoringInfoJson",
                    "description": "An object containing metadata about the authoring process for creating a renderer object. This allows the authoring clients to save specific overridable settings so that next time it is accessed via the UI, their selections are remembered. Non-authoring clients should ignore it."
                },
                "backgroundFillSymbol": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.PolygonSymbol3DJson",
                    "description": "A SimpleFillSymbol used for polygon features. It can only be used for bivariate types and size rendering."
                },
                "defaultLabel": {
                    "description": "Default string for the default symbol used to draw unspecified values.",
                    "type": "string"
                },
                "defaultSymbol": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.SymbolJson",
                    "description": "Symbol used when a value cannot be matched."
                },
                "field1": {
                    "description": "String value specifying the first field used to render matching values.",
                    "type": "string"
                },
                "field2": {
                    "description": "String value specifying the second field used to render matching values.",
                    "type": "string"
                },
                "field3": {
                    "description": "String value specifying the third field used to render matching values.",
                    "type": "string"
                },
                "fieldDelimiter": {
                    "description": "String value inserted between values if multiple attribute fields are specified.",
                    "type": "string"
                },
                "rotationExpression": {
                    "description": "A constant value or an expression that derives the angle of rotation based on a feature attribute value. When an attribute name is specified, it's enclosed in square brackets.",
                    "type": "string"
                },
                "rotationType": {
                    "$ref": "RotationJsonType",
                    "description": "String value (either geographic or arithmetic) which controls the origin and direction of rotation on point features. If the rotationType is defined as 'arithmetic', the symbol is rotated from East in a counter-clockwise direction where East is the 0� axis. If the rotationType is defined as 'geographic', the symbol is rotated from North in a clockwise direction where North is the 0� axis."
                },
                "type": {
                    "const": "uniqueValue",
                    "description": "The type of renderer. See {@link RendererJsonType}.",
                    "type": "string"
                },
                "uniqueValueGroups": {
                    "description": "An array of uniqueValueGroup objects. If present, then uniqueValueGroups should be used in favor of uniqueValueInfos.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.RendererJson.UniqueValueGroupJson"
                    },
                    "type": "array"
                },
                "uniqueValueInfos": {
                    "description": "An array of uniqueValueInfo objects. If uniqueValueGroups is present, then this property should be ignored during webmap reading. In the future, this property will be deprecated and eventually removed.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.RendererJson.UniqueValueInfoJson"
                    },
                    "type": "array"
                },
                "visualVariables": {
                    "description": "An array of visualVariable objects used for continuous color or size, simple, and unique values with feature opacity.",
                    "items": {
                        "$ref": "#/definitions/VisualVariableJson"
                    },
                    "type": "array"
                }
            },
            "required": [
                "field1",
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.RendererJson.VectorFieldRendererJson": {
            "additionalProperties": false,
            "description": "A vector field renderer is a renderer that uses symbolizes a U-V or Magnitude-Direction data.",
            "properties": {
                "attributeField": {
                    "const": "Magnitude",
                    "description": "Name of the feature attribute field that contains the data value.",
                    "type": "string"
                },
                "authoringInfo": {
                    "$ref": "#/definitions/esri.rest-api.RendererJson.AuthoringInfoJson",
                    "description": "An object containing metadata about the authoring process for creating a renderer object. This allows the authoring clients to save specific overridable settings so that next time it is accessed via the UI, their selections are remembered. Non-authoring clients should ignore it."
                },
                "flowRepresentation": {
                    "description": "Sets the flow direction of the data.",
                    "enum": [
                        "flow_from",
                        "flow_to"
                    ],
                    "type": "string"
                },
                "inputUnit": {
                    "$ref": "MagnitudeUnitJsonType",
                    "description": "Input unit for Magnitude."
                },
                "outputUnit": {
                    "$ref": "MagnitudeUnitJsonType",
                    "description": "Output unit for Magnitude."
                },
                "rotationExpression": {
                    "description": "A constant value or an expression that derives the angle of rotation based on a feature attribute value. When an attribute name is specified, it's enclosed in square brackets.",
                    "type": "string"
                },
                "rotationType": {
                    "$ref": "RotationJsonType",
                    "description": "String value (either geographic or arithmetic) which controls the origin and direction of rotation on point features. If the rotationType is defined as 'arithmetic', the symbol is rotated from East in a counter-clockwise direction where East is the 0� axis. If the rotationType is defined as 'geographic', the symbol is rotated from North in a clockwise direction where North is the 0� axis."
                },
                "style": {
                    "description": "A predefined style.",
                    "enum": [
                        "beaufort_ft",
                        "beaufort_km",
                        "beaufort_kn",
                        "beaufort_m",
                        "beaufort_mi",
                        "classified_arrow",
                        "ocean_current_kn",
                        "ocean_current_m",
                        "simple_scalar",
                        "single_arrow",
                        "wind_speed"
                    ],
                    "type": "string"
                },
                "symbolTileSize": {
                    "description": "Determines the density of the symbols. Larger tile size, fewer symbols appear in the display. The VectorFieldRenderer draws one symbol within a defined tile size (in pixels). The default is 50 pixels.",
                    "type": "number"
                },
                "type": {
                    "const": "vectorField",
                    "description": "The type of renderer. See {@link RendererJsonType}.",
                    "type": "string"
                },
                "visualVariables": {
                    "description": "An array of visualVariable objects used for continuous color or size, simple, and unique values with feature opacity.",
                    "items": {
                        "$ref": "#/definitions/VisualVariableJson"
                    },
                    "type": "array"
                }
            },
            "required": [
                "attributeField",
                "flowRepresentation",
                "style",
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.SceneLayerJson.SceneLayerJson": {
            "additionalProperties": false,
            "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).\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/sceneLayer/}.\n\nNote: `isReference` is not part of the web scene layer spec, but we include BasemapLayerJsonBase to align with the existing basemap-layer typing pattern used across layer JSON types.",
            "properties": {
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "customParameters": {
                    "description": "A sequence of custom parameters appended to the URL of all requests related to supporting ArcGIS layer types."
                },
                "disablePopup": {
                    "description": "Indicates whether to allow a client to ignore popups defined by the service item.",
                    "type": "boolean"
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "id": {
                    "description": "A unique identifying string for the layer.",
                    "type": "string"
                },
                "isReference": {
                    "description": "This 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).",
                    "type": "boolean"
                },
                "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"
                },
                "layerDefinition": {
                    "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.LayerDefinitionJson",
                    "description": "A layerDefinition object defining the attribute schema and drawing information for the layer."
                },
                "layerType": {
                    "const": "ArcGISSceneServiceLayer",
                    "description": "The type of layer.",
                    "type": "string"
                },
                "listMode": {
                    "description": "Indicates how the layer should display in the table of contents. The known values are listed below. See {@link support /esri!ListMode}."
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "popupInfo": {
                    "$ref": "#/definitions/esri.rest-api.PopupInfoJson.PopupInfoJson",
                    "description": "A PopupInfo object defining the content of pop-up windows when you click or query a feature."
                },
                "refreshInterval": {
                    "description": "When the refresh interval is set on a layer, the client must refresh that layer only, not the entire web map. The default value is '0', meaning the no refresh. You can enable a refresh interval on the following types of layers: ArcGIS Server web service, hosted feature layer, hosted tile layer, OGC WMS, OGS WMTS, tile layer, GeoRSS, Living Atlas layers, basemaps (including Bing Maps basemaps), CSV from the web with latitude and longitude fields, and KML when added to ArcGIS Online through the My Content page. See {@link https://doc.arcgis.com/en/arcgis-online/create-maps/set-refresh-interval.htm}.",
                    "type": "number"
                },
                "screenSizePerspective": {
                    "description": "Apply perspective scaling to screen-size symbols.",
                    "type": "boolean"
                },
                "showLabels": {
                    "description": "Indicates whether to display labels for this layer. If true, labels will appear as defined in the labelingInfo property.",
                    "type": "boolean"
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "url": {
                    "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": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                }
            },
            "required": [
                "layerType"
            ],
            "type": "object"
        },
        "esri.rest-api.SpatialReferenceJson.SpatialReferenceJson": {
            "additionalProperties": false,
            "description": "The spatialReference object is located at the top level of the web map JSON hierarchy. In addition to this, it is also available within the operationalLayer and basemap objects.\n\nMany predefined spatial references have already been defined and are available for use. A spatial reference can be defined using a well-known ID (WKID) or well-known text (WKT). The default tolerance and resolution values for the associated coordinate system are used.\n\nAll operational layers in the map are drawn or requested in the spatial reference of the basemap layers.\n\nThe basemap defines the map spatial reference and tiling scheme.\n\nEach basemapLayer must be in the same spatial reference and tiling scheme.\n\nFor additional information on working with spatial references, and their associated WKIDs, please refer to the ArcGIS REST API documentation which discusses this.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/spatialReference/} {@link https://developers.arcgis.com/web-scene-specification/objects/spatialReference/}.",
            "properties": {
                "latestVcsWkid": {
                    "description": "(Optional) The current wkid value of the vertical coordinate system.",
                    "type": "number"
                },
                "latestWkid": {
                    "description": "Identifies the current wkid value associated with the same spatial reference. For example a WKID of '102100' (Web Mercator) has a latestWKid of '3857'.",
                    "type": "number"
                },
                "vcsWkid": {
                    "description": "(Optional) The wkid value of the vertical coordinate system.",
                    "type": "number"
                },
                "wkid": {
                    "description": "The well-known ID (WKID) of the coordinate system. Specify either WKID or the well-known text (WKT) of the coordinate system.",
                    "type": "number"
                },
                "wkt": {
                    "description": "The well-known text (WKT) of the coordinate system. Specify either WKT or WKID of the coordinate system.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.StreamLayerJson.StreamLayerJson": {
            "additionalProperties": false,
            "description": "A stream layer in a web map. See {@link https://developers.arcgis.com/web-map-specification/objects/streamLayer/}.",
            "properties": {
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "capabilities": {
                    "description": "A comma-separated string listing which editing operations are allowed on an editable feature service. Available operations include: Create | Delete | Query | Update | Editing.",
                    "type": "string"
                },
                "customParameters": {
                    "description": "A sequence of custom parameters appended to the URL of all requests related to supporting ArcGIS layer types."
                },
                "definitionEditor": {
                    "$ref": "#/definitions/esri.rest-api.DefinitionEditorJson.DefinitionEditorJson",
                    "description": "Stores interactive filters."
                },
                "disablePopup": {
                    "description": "Indicates whether to allow a client to ignore popups defined by the service item.",
                    "type": "boolean"
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "featureCollection": {
                    "$ref": "#/definitions/esri.rest-api.FeatureCollectionJson.FeatureCollectionJson",
                    "description": "A featureCollection object defining a layer of features whose geometry and attributes will be stored directly within the web map. This is only used when no url property is supplied."
                },
                "featureCollectionType": {
                    "description": "Indicates the type of features in the feature collection. If featureCollectionType is missing, it means the feature collection is a regular single-layer or multi-layer feature collection.",
                    "enum": [
                        "markup",
                        "notes",
                        "route"
                    ],
                    "type": "string"
                },
                "formInfo": {
                    "$ref": "#/definitions/esri.rest-api.FormInfoJson.FormInfoJson",
                    "description": "A formInfo object defining the content of the form when you are editing a feature."
                },
                "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"
                },
                "layerDefinition": {
                    "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.LayerDefinitionJson",
                    "description": "A layerDefinition object defining the attribute schema and drawing information for the layer."
                },
                "layerType": {
                    "const": "ArcGISStreamLayer",
                    "description": "The type of layer.",
                    "type": "string"
                },
                "listMode": {
                    "description": "Indicates how the layer should display in the table of contents. The known values are listed below. See {@link support /esri!ListMode}."
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "mode": {
                    "description": "Used with ArcGIS feature services and individual layers in ArcGIS map services, this property determines how the features are retrieved from the server. This property is represented as 0, 1, or 2.\n\n- 0: Snapshot mode. Immediately retrieves all features when the map is   loaded.\n- 1: On-demand mode. Features within the current view extent are retrieved   as the user navigates the map. This is the default and the most common   way to use feature services in web maps.\n- 2: Selection-only mode. No features are initially retrieved. This mode is   used when you have a map service and a feature service from the same   parent URL that are working together in the same map, with the map   service being used for display and the feature service used for   editing.",
                    "enum": [
                        0,
                        1,
                        2,
                        6
                    ],
                    "type": "number"
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "popupInfo": {
                    "$ref": "#/definitions/esri.rest-api.PopupInfoJson.PopupInfoJson",
                    "description": "A PopupInfo object defining the content of pop-up windows when you click or query a feature."
                },
                "refreshInterval": {
                    "description": "When the refresh interval is set on a layer, the client must refresh that layer only, not the entire web map. The default value is '0', meaning the no refresh. You can enable a refresh interval on the following types of layers: ArcGIS Server web service, hosted feature layer, hosted tile layer, OGC WMS, OGS WMTS, tile layer, GeoRSS, Living Atlas layers, basemaps (including Bing Maps basemaps), CSV from the web with latitude and longitude fields, and KML when added to ArcGIS Online through the My Content page. See {@link https://doc.arcgis.com/en/arcgis-online/create-maps/set-refresh-interval.htm}.",
                    "type": "number"
                },
                "screenSizePerspective": {
                    "description": "Apply perspective scaling to screen-size symbols.",
                    "type": "boolean"
                },
                "showLabels": {
                    "description": "Indicates whether to display labels for this layer. If true, labels will appear as defined in the labelingInfo property.",
                    "type": "boolean"
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "subtypeCode": {
                    "description": "The feature subtype code identifying the layer. Used with SubtypeGroupLayers.",
                    "type": [
                        "string",
                        "number"
                    ]
                },
                "timeAnimation": {
                    "description": "Indicates whether to disable time animation if the layer supports it.",
                    "type": "boolean"
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "url": {
                    "description": "The URL to the layer.If the layer is not from a web service but rather a feature collection, than the url property is omitted.",
                    "type": "string"
                },
                "visibility": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                },
                "visibleLayers": {
                    "description": "An array of sublayer ids that should appear visible. Used with feature layers that are based on feature collections.",
                    "items": {
                        "type": "number"
                    },
                    "type": "array"
                }
            },
            "required": [
                "layerType"
            ],
            "type": "object"
        },
        "esri.rest-api.SublayerJson.SublayerJson": {
            "additionalProperties": false,
            "description": "This object allows overrides on pop-up content and drawing behavior for individual layers of a web service. When used with a feature collection, this object also contains geographic features and their attributes.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/layer/} {@link https://developers.arcgis.com/web-scene-specification/objects/layer/}.",
            "properties": {
                "defaultVisibility": {
                    "description": "Default visibility of the layers in the map service.",
                    "type": "boolean"
                },
                "definitionEditor": {
                    "$ref": "#/definitions/esri.rest-api.DefinitionEditorJson.DefinitionEditorJson",
                    "description": "An object that provides interactive filters."
                },
                "disablePopup": {
                    "description": "Indicates whether to allow a client to ignore the popups defined on the layer. The popupInfo object could be saved in the map or item.",
                    "type": "boolean"
                },
                "featureSet": {
                    "$ref": "#/definitions/esri.rest-api.FeatureSetJson.FeatureSetJson",
                    "description": "A featureSet object containing the geometry and attributes of the features in the layer. Used with feature collections only."
                },
                "field": {
                    "$ref": "#/definitions/esri.rest-api.FieldJson.FieldJson",
                    "description": "Information about each field in a layer.\n\nNOTE: This is how it's typed and documented in the web map spec, but is almost certainly total nonsense."
                },
                "id": {
                    "description": "A number indicating the index position of the layer in the WMS or map service.",
                    "type": [
                        "string",
                        "number"
                    ]
                },
                "layerDefinition": {
                    "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.LayerDefinitionJson",
                    "description": "An array of LayerDefinition objects defining the attribute schema and drawing information for the layer."
                },
                "layerUrl": {
                    "description": "A URL to a service that should be used for all queries against the layer. Used with hosted tiled map services on ArcGIS Online when there is an associated feature service that allows for queries.",
                    "type": "string"
                },
                "maxScale": {
                    "description": "Represents the maximum scale at which the layer definition will be applied.",
                    "type": "number"
                },
                "minScale": {
                    "description": "Represents the minimum scale at which the layer definition will be applied.",
                    "type": "number"
                },
                "name": {
                    "description": "(Deprecated, use title instead.) A name for the layer.",
                    "type": "string"
                },
                "nextObjectId": {
                    "description": "Iterates within a feature set. Number objectId value is incremented +1 based on last Object ID defined for the feature in a feature set.",
                    "type": "number"
                },
                "parentLayerId": {
                    "description": "If working with nested layers, this is the numeric value indicating the layer id of the next layer (parent) directly above the current referenced layer.",
                    "type": "number"
                },
                "popupInfo": {
                    "$ref": "#/definitions/esri.rest-api.PopupInfoJson.PopupInfoJson",
                    "description": "A popupInfo object defining the pop-up window content for the layer."
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "subLayerIds": {
                    "description": "If the layer is a parent layer, it will have one or more sub layers included in an array.",
                    "items": {
                        "type": "number"
                    },
                    "type": "array"
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents.",
                    "type": "string"
                },
                "visible": {
                    "description": "Visibility of the sublayer.",
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "esri.rest-api.SubtypeGroupLayerJson.SubtypeGroupLayerJson": {
            "additionalProperties": false,
            "description": "SubtypeGroupLayer provides the ability to organize several sublayers into one common layer. Suppose there are several FeatureLayers that all represent water features in different dimensions. For example, wells (points), streams (lines), and lakes (polygons). The SubtypeGroupLayer provides the functionality to treat them as one layer called Water Features even though they are stored as separate feature layers.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/subtypeGroupLayer/}.",
            "properties": {
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "customParameters": {
                    "description": "A sequence of custom parameters appended to the URL of all requests related to supporting ArcGIS layer types."
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "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"
                },
                "layerDefinition": {
                    "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.LayerDefinitionJson",
                    "description": "A layerDefinition object defining the attribute schema and drawing information for the layer."
                },
                "layerType": {
                    "const": "SubtypeGroupLayer",
                    "description": "String indicating the layer type. Value of this property must be SubtypeGroupLayer.",
                    "type": "string"
                },
                "layers": {
                    "description": "An array of feature layers, each describing the properties for a subtype in the feature service layer.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.SubtypeSublayerJson.SubtypeSublayerJson"
                    },
                    "type": "array"
                },
                "listMode": {
                    "description": "Indicates how the layer should display in the table of contents. The known values are listed below. See {@link support /esri!ListMode}."
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "refreshInterval": {
                    "description": "When the refresh interval is set on a layer, the client must refresh that layer only, not the entire web map. The default value is '0', meaning the no refresh. You can enable a refresh interval on the following types of layers: ArcGIS Server web service, hosted feature layer, hosted tile layer, OGC WMS, OGS WMTS, tile layer, GeoRSS, Living Atlas layers, basemaps (including Bing Maps basemaps), CSV from the web with latitude and longitude fields, and KML when added to ArcGIS Online through the My Content page. See {@link https://doc.arcgis.com/en/arcgis-online/create-maps/set-refresh-interval.htm}.",
                    "type": "number"
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "timeAnimation": {
                    "description": "Indicates whether to disable time animation if the layer supports it.",
                    "type": "boolean"
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "url": {
                    "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": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                }
            },
            "required": [
                "layerType"
            ],
            "type": "object"
        },
        "esri.rest-api.SubtypeSublayerJson.SubtypeSublayerJson": {
            "additionalProperties": false,
            "description": "Feature layers can be created by referencing a sublayer from either a map service or a feature service or by specifying a feature collection object. Use a map service if you just want to retrieve geometries and attributes from the server and symbolize them yourself. Use a feature service if you want to take advantage of symbols from the service's source map document. Also, use a feature service if you plan on doing editing with the feature sublayer. Feature layers honor any feature templates configured in the source map document. Feature collection objects are used to create a feature sublayer based on the supplied definition.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/subtypeLayer/} {@link https://developers.arcgis.com/web-scene-specification/objects/subtypeLayer/}.",
            "properties": {
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "customParameters": {
                    "description": "A sequence of custom parameters appended to the URL of all requests related to supporting ArcGIS sublayer types."
                },
                "disablePopup": {
                    "description": "Indicates whether to allow a client to ignore popups defined by the service item.",
                    "type": "boolean"
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "enableEditing": {
                    "description": "Indicates whether a client should allow feature editing for this layer. Applicable only if the layer has editing capability.",
                    "type": "boolean"
                },
                "id": {
                    "description": "A unique identifying string for the layer.",
                    "type": "string"
                },
                "layerDefinition": {
                    "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.LayerDefinitionJson",
                    "description": "A layerDefinition object defining the attribute schema and drawing information for the layer."
                },
                "layerType": {
                    "const": "ArcGISFeatureLayer",
                    "description": "The type of sublayer.",
                    "type": "string"
                },
                "listMode": {
                    "description": "Indicates how the layer should display in the table of contents. The known values are listed below. See {@link support /esri!ListMode}."
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "popupInfo": {
                    "$ref": "#/definitions/esri.rest-api.PopupInfoJson.PopupInfoJson",
                    "description": "A PopupInfo object defining the content of pop-up windows when you click or query a feature."
                },
                "refreshInterval": {
                    "description": "When the refresh interval is set on a layer, the client must refresh that layer only, not the entire web map. The default value is '0', meaning the no refresh. You can enable a refresh interval on the following types of layers: ArcGIS Server web service, hosted feature layer, hosted tile layer, OGC WMS, OGS WMTS, tile layer, GeoRSS, Living Atlas layers, basemaps (including Bing Maps basemaps), CSV from the web with latitude and longitude fields, and KML when added to ArcGIS Online through the My Content page. See {@link https://doc.arcgis.com/en/arcgis-online/create-maps/set-refresh-interval.htm}.",
                    "type": "number"
                },
                "showLabels": {
                    "description": "Indicates whether to display labels for this sublayer. If true, labels will appear as defined in the labelingInfo property.",
                    "type": "boolean"
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "subtypeCode": {
                    "description": "The feature subtype code identifying the sublayer. Used with SubtypeGroupLayers.",
                    "type": [
                        "string",
                        "number"
                    ]
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "visibility": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                }
            },
            "required": [
                "layerType"
            ],
            "type": "object"
        },
        "esri.rest-api.SymbolJson.BorderJson": {
            "additionalProperties": false,
            "description": "Optional border on the line that is used to improve the contrast of the line color against various background colors.",
            "properties": {
                "color": {
                    "$ref": "#/definitions/ColorJson",
                    "description": "The color of the border."
                },
                "transparency": {
                    "description": "A value between 100 (full transparency) and 0 (full opacity).",
                    "type": "number"
                }
            },
            "type": "object"
        },
        "esri.rest-api.SymbolJson.CIMSymbolJson": {
            "additionalProperties": false,
            "description": "Represents a symbol reference that contains a CIM symbol. In addition to type listed below, a symbol reference will contain additional properties. More details on CIM symbol reference and CIM symbols are available on github: https://github.com/Esri/cim-spec/blob/master/docs/v2/Overview-Symbols.md.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/polygonSymbol3D/}.",
            "properties": {
                "type": {
                    "const": "CIMSymbolReference",
                    "description": "Specifies the type of symbol used.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.SymbolJson.CIMSymbolReferenceJson": {
            "additionalProperties": false,
            "description": "Represents a symbol reference that contains a CIM symbol. More properties and details on CIM symbol reference and CIM symbols are available on github: https://github.com/Esri/cim-spec/blob/main/docs/v3/Overview-Symbols.md, https://github.com/Esri/cim-spec/blob/main/docs/v3/CIMRenderers.md#CIMSymbolReference.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/cimSymbolReference/}.",
            "properties": {
                "symbol": {
                    "description": "The symbol. Supported values are CIMPointSymbol, CIMLineSymbol, and CIMPolygonSymbol."
                },
                "type": {
                    "const": "CIMSymbolReference",
                    "description": "Specifies the type of symbol used.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.SymbolJson.CalloutJson": {
            "additionalProperties": false,
            "description": "Callout configuration for a symbol.",
            "properties": {
                "border": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.BorderJson",
                    "description": "Optional border on the line that is used to improve the contrast of the line color against various background colors."
                },
                "color": {
                    "$ref": "#/definitions/ColorJson",
                    "description": "The color of the line."
                },
                "size": {
                    "description": "The width of the line in points.",
                    "type": "number"
                },
                "transparency": {
                    "description": "A value between 100 (full transparency) and 0 (full opacity).",
                    "type": "number"
                },
                "type": {
                    "const": "line",
                    "description": "The type of the callout. A callout of type line connects an offset symbol or label with its location.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.SymbolJson.ExtrudeSymbol3DLayerJson": {
            "additionalProperties": false,
            "description": "ExtrudeSymbol3DLayer is used to render Polygon geometries by extruding them upward from the ground, creating a 3D volumetric object.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/extrudeSymbol3DLayer/}.",
            "properties": {
                "enable": {
                    "description": "Type: Boolean.",
                    "type": "boolean"
                },
                "material": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.MaterialJson",
                    "description": "The material used to shade the geometry."
                },
                "size": {
                    "description": "Extrusion height in meters, positive only.",
                    "type": "number"
                },
                "type": {
                    "const": "Extrude",
                    "description": "The type of the Symbol3DLayer. See {@link Symbol3DLayerJsonType}.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.SymbolJson.FillSymbol3DLayerJson": {
            "additionalProperties": false,
            "description": "FillSymbol3DLayer is used to render the surfaces of flat 2D Polygon geometries and 3D volumetric meshes in a SceneView.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/fillSymbol3DLayer/}.",
            "properties": {
                "castShadows": {
                    "description": "Boolean to control the shadow casting behavior of the rendered geometries.",
                    "type": "boolean"
                },
                "edges": {
                    "$ref": "#/definitions/EdgesJson",
                    "description": "Specifies an edge visualization style. Only affects MeshSymbol3D."
                },
                "enable": {
                    "description": "Type: Boolean.",
                    "type": "boolean"
                },
                "material": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.MaterialJson",
                    "description": "The material used to shade the geometry."
                },
                "outline": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.OutlineJson",
                    "description": "The outline of the point, line or polygon."
                },
                "type": {
                    "const": "Fill",
                    "description": "The type of the Symbol3DLayer. See {@link Symbol3DLayerJsonType}.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.SymbolJson.FontJson": {
            "additionalProperties": false,
            "description": "Font used for text symbols.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/font/} {@link https://developers.arcgis.com/web-scene-specification/objects/font/}.",
            "properties": {
                "decoration": {
                    "description": "The text decoration.",
                    "enum": [
                        "line-through",
                        "none",
                        "underline"
                    ],
                    "type": "string"
                },
                "family": {
                    "description": "The font family.",
                    "type": "string"
                },
                "size": {
                    "description": "The font size.",
                    "type": "number"
                },
                "style": {
                    "description": "The text style.",
                    "enum": [
                        "italic",
                        "normal",
                        "oblique"
                    ],
                    "type": "string"
                },
                "weight": {
                    "description": "The text weight.",
                    "enum": [
                        "bold",
                        "bolder",
                        "lighter",
                        "normal"
                    ],
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.SymbolJson.IconSymbol3DLayerJson": {
            "additionalProperties": false,
            "description": "IconSymbol3DLayer is used to render Point geometries using a flat 2D icon (e.g. a circle) with a PointSymbol3D in a SceneView.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/iconSymbol3DLayer/}.",
            "properties": {
                "anchor": {
                    "description": "Must be one of the following values: center, left, right, top, bottom, topLeft, topRight, bottomLeft, bottomRight.",
                    "enum": [
                        "bottom",
                        "bottomLeft",
                        "bottomRight",
                        "center",
                        "left",
                        "right",
                        "top",
                        "topLeft",
                        "topRight"
                    ],
                    "type": "string"
                },
                "enable": {
                    "description": "Type: Boolean.",
                    "type": "boolean"
                },
                "material": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.MaterialJson",
                    "description": "The material used to shade the geometry."
                },
                "outline": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.OutlineJson",
                    "description": "The outline of the point, line or polygon."
                },
                "resource": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.ResourceIconSymbolJson",
                    "description": "The shape (primitive) or image URL (href) used to visualize the features."
                },
                "size": {
                    "description": "Icon size in points, positive only.",
                    "type": "number"
                },
                "type": {
                    "const": "Icon",
                    "description": "The type of the Symbol3DLayer. See {@link Symbol3DLayerJsonType}.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.SymbolJson.LabelSymbol3DJson": {
            "additionalProperties": false,
            "description": "LabelSymbol3D is used to render labels for features from a FeatureLayer in a\n3D SceneView.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/labelSymbol3D/}.",
            "properties": {
                "callout": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.CalloutJson",
                    "description": "Callout configuration for a symbol."
                },
                "symbolLayers": {
                    "description": "A Collection of Symbol3DLayer objects used to visualize the graphic or feature.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.SymbolJson.TextSymbol3DLayerJson"
                    },
                    "type": "array"
                },
                "type": {
                    "const": "LabelSymbol3D",
                    "description": "The type of symbol. See {@link SymbolJsonType}.",
                    "type": "string"
                },
                "verticalOffset": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.VerticalOffsetJson",
                    "description": "Shifts the symbol along the vertical world axis by a given length."
                }
            },
            "required": [
                "symbolLayers",
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.SymbolJson.LineSymbol3DJson": {
            "additionalProperties": false,
            "description": "LineSymbol3D is used to render features with Polyline geometry in a 3D SceneView.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/lineSymbol3D/}.",
            "properties": {
                "symbolLayers": {
                    "description": "A Collection of Symbol3DLayer objects used to visualize the graphic or feature.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/definitions/esri.rest-api.SymbolJson.PathSymbol3DLayerJson"
                            },
                            {
                                "$ref": "#/definitions/esri.rest-api.SymbolJson.LineSymbol3DLayerJson"
                            }
                        ]
                    },
                    "type": "array"
                },
                "type": {
                    "const": "LineSymbol3D",
                    "description": "The type of symbol. See {@link SymbolJsonType}.",
                    "type": "string"
                }
            },
            "required": [
                "symbolLayers",
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.SymbolJson.LineSymbol3DLayerJson": {
            "additionalProperties": false,
            "description": "LineSymbol3DLayer renders Polyline geometries using a flat 2D line with a LineSymbol3D in a 3D SceneView.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/lineSymbol3DLayer/}.",
            "properties": {
                "enable": {
                    "description": "Type: Boolean.",
                    "type": "boolean"
                },
                "material": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.MaterialJson",
                    "description": "The material used to shade the geometry."
                },
                "size": {
                    "description": "Line width in points, positive only.",
                    "type": "number"
                },
                "type": {
                    "const": "Line",
                    "description": "The type of the Symbol3DLayer. See {@link Symbol3DLayerJsonType}.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.SymbolJson.MaterialJson": {
            "additionalProperties": false,
            "description": "The material used to shade the geometry.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/material/}.",
            "properties": {
                "color": {
                    "$ref": "#/definitions/ColorJson",
                    "description": "Color is represented as a three or four-element array."
                },
                "colorMixMode": {
                    "description": "Controls how symbolLayer or visualVariable color is applied onto the underlying geometry color/texture. This property only applies to FillSymbol3DLayer within MeshSymbol3D.\n\n- Tint: the feature's appearance (in terms of color) should be altered to   match the symbol / visual variable color.\n- Replace: the feature's color is replaced with the symbol / visual   variable color.\n- Multiply: the feature's color is multiplied with the symbol color.",
                    "enum": [
                        "multiply",
                        "replace",
                        "tint"
                    ],
                    "type": "string"
                },
                "transparency": {
                    "description": "Number value ranging between 0 (no transparency) to 100 (completely transparent).",
                    "type": "number"
                }
            },
            "type": "object"
        },
        "esri.rest-api.SymbolJson.MeshSymbol3DJson": {
            "additionalProperties": false,
            "description": "MeshSymbol3D is used to render 3D mesh features in a SceneLayer in a 3D SceneView.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/meshSymbol3D/}.",
            "properties": {
                "symbolLayers": {
                    "description": "A Collection of Symbol3DLayer objects used to visualize the graphic or feature.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.SymbolJson.FillSymbol3DLayerJson"
                    },
                    "type": "array"
                },
                "type": {
                    "const": "MeshSymbol3D",
                    "description": "The type of symbol. See {@link SymbolJsonType}.",
                    "type": "string"
                }
            },
            "required": [
                "symbolLayers",
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.SymbolJson.ObjectSymbol3DLayerJson": {
            "additionalProperties": false,
            "description": "ObjectSymbol3DLayer is used to render Point geometries using a volumetric 3D shape (e.g., a sphere or cylinder) with a PointSymbol3D in a SceneView.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/objectSymbol3DLayer/}.",
            "properties": {
                "anchor": {
                    "description": "The positioning of the object relative to the geometry. Must be one of the following values: center, bottom, origin.",
                    "enum": [
                        "bottom",
                        "center",
                        "origin",
                        "relative",
                        "top"
                    ],
                    "type": "string"
                },
                "anchorPosition": {
                    "description": "When anchor equals \"relative\", this property specifies the positioning of the object relative to the geometry as a fraction of the symbol layer's bounding box. Otherwise it is ignored.",
                    "items": {
                        "type": "number"
                    },
                    "type": "array"
                },
                "castShadows": {
                    "description": "Boolean to control the shadow casting behavior of the rendered geometries.",
                    "type": "boolean"
                },
                "depth": {
                    "description": "Object depth in meters, positive only.",
                    "type": "number"
                },
                "enable": {
                    "description": "Type: Boolean.",
                    "type": "boolean"
                },
                "heading": {
                    "description": "Angle in degrees, relative to y-axis of SR (typically but not necessarily north).",
                    "type": "number"
                },
                "height": {
                    "description": "Object height in meters, positive only.",
                    "type": "number"
                },
                "material": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.MaterialJson",
                    "description": "The material used to shade the geometry."
                },
                "outline": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.OutlineJson",
                    "description": "The outline of the point, line or polygon."
                },
                "resource": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.ResourceObjectSymbolJson",
                    "description": "The shape (primitive) or image URL (href) used to visualize the features."
                },
                "type": {
                    "const": "Object",
                    "description": "The type of the Symbol3DLayer. See {@link Symbol3DLayerJsonType}.",
                    "type": "string"
                },
                "width": {
                    "description": "Object width in meters, positive only.",
                    "type": "number"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.SymbolJson.OutlineJson": {
            "additionalProperties": false,
            "description": "The outline of the point, line or polygon.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/outline/}.",
            "properties": {
                "color": {
                    "$ref": "#/definitions/ColorJson",
                    "description": "Color is represented as a three or four-element array."
                },
                "size": {
                    "description": "Outline size in points, positive only.",
                    "type": "number"
                },
                "transparency": {
                    "description": "Number value ranging between 0 (no transparency) to 100 (completely transparent).",
                    "type": "number"
                }
            },
            "type": "object"
        },
        "esri.rest-api.SymbolJson.PathSymbol3DLayerJson": {
            "additionalProperties": false,
            "description": "PathSymbol3DLayer renders Polyline geometries using a volumetric 3D tube with a LineSymbol3D in a SceneView.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/pathSymbol3DLayer/}.",
            "properties": {
                "material": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.MaterialJson",
                    "description": "The material used to shade the geometry."
                },
                "size": {
                    "description": "Path size (diameter) in meters, positive only.",
                    "type": "number"
                },
                "type": {
                    "const": "Path",
                    "description": "The type of the Symbol3DLayer. See {@link Symbol3DLayerJsonType}.",
                    "type": "string"
                },
                "width": {
                    "description": "Path width in meters.",
                    "type": "number"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.SymbolJson.PictureFillSymbolJson": {
            "additionalProperties": false,
            "description": "Picture fill symbols can be used to symbolize polygon geometries.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/esriPFS_symbol/}.",
            "properties": {
                "angle": {
                    "description": "Numeric value that defines the number of degrees ranging from 0-360, that a marker symbol is rotated. The rotation is from East in a counter-clockwise direction where East is the 0° axis.",
                    "type": "number"
                },
                "contentType": {
                    "description": "String value indicating the content type for the image.",
                    "type": "string"
                },
                "height": {
                    "description": "Numeric value used if needing to resize the symbol. Specify a value in points. If images are to be displayed in their original size, leave this blank.",
                    "type": "number"
                },
                "imageData": {
                    "description": "String value indicating the base64 encoded data.",
                    "type": "string"
                },
                "outline": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.SimpleLineSymbolJson",
                    "description": "Sets the outline of the symbol."
                },
                "type": {
                    "const": "esriPFS",
                    "description": "The type of symbol. See {@link SymbolJsonType}.",
                    "type": "string"
                },
                "url": {
                    "description": "Relative URL for static layers and full URL for dynamic layers. Access relative URL using http://<mapservice-url>/<layerId1>/images/<imageUrl11>.",
                    "type": "string"
                },
                "width": {
                    "description": "Numeric value used if needing to resize the symbol. If images are to be displayed in their original size, leave this blank.",
                    "type": "number"
                },
                "xoffset": {
                    "description": "Numeric value indicating the offset on the x-axis in pixels.",
                    "type": "number"
                },
                "xscale": {
                    "description": "Numeric value indicating the scale factor in x direction.",
                    "type": "number"
                },
                "yoffset": {
                    "description": "Numeric value indicating the offset on the y-axis in pixels.",
                    "type": "number"
                },
                "yscale": {
                    "description": "Numeric value indicating the scale factor in y direction.",
                    "type": "number"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.SymbolJson.PictureMarkerSymbolJson": {
            "additionalProperties": false,
            "description": "Picture marker symbols can be used to symbolize point geometries.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/esriPMS_symbol/}.",
            "properties": {
                "angle": {
                    "description": "Numeric value that defines the number of degrees ranging from 0-360, that a marker symbol is rotated. The rotation is from East in a counter-clockwise direction where East is the 0° axis.",
                    "type": "number"
                },
                "contentType": {
                    "description": "String value indicating the content type for the image.",
                    "type": "string"
                },
                "height": {
                    "description": "Numeric value used if needing to resize the symbol. If images are to be displayed in their original size, leave this blank.",
                    "type": "number"
                },
                "imageData": {
                    "description": "String value indicating the base64 encoded data.",
                    "type": "string"
                },
                "type": {
                    "const": "esriPMS",
                    "description": "The type of symbol. See {@link SymbolJsonType}.",
                    "type": "string"
                },
                "url": {
                    "description": "String value indicating the URL of the image. The URL should be relative if working with static layers. A full URL should be used for map service dynamic layers. A relative URL can be dereferenced by accessing the map layer image resource or the feature layer image resource.",
                    "type": "string"
                },
                "width": {
                    "description": "Numeric value used if needing to resize the symbol. If images are to be displayed in their original size, leave this blank.",
                    "type": "number"
                },
                "xoffset": {
                    "description": "Numeric value indicating the offset on the x-axis in pixels.",
                    "type": "number"
                },
                "yoffset": {
                    "description": "Numeric value indicating the offset on the y-axis in pixels.",
                    "type": "number"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.SymbolJson.PointSymbol3DJson": {
            "additionalProperties": false,
            "description": "PointSymbol3D is used to render features with Point geometry in a 3D SceneView.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/pointSymbol3D/}.",
            "properties": {
                "callout": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.CalloutJson",
                    "description": "Callout configuration for a symbol."
                },
                "styleOrigin": {
                    "$ref": "__type",
                    "description": "The origin of the style from which the symbol was originally referenced. A reference to the style origin can be either by styleName or by styleUrl (but not both). It may be used to understand where a symbol was originally sourced from, but does not affect actual appearance or rendering of the symbol. See {@link https://developers.arcgis.com/web-scene-specification/objects/styleOrigin/}."
                },
                "symbolLayers": {
                    "description": "A Collection of Symbol3DLayer objects used to visualize the graphic or feature.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/definitions/esri.rest-api.SymbolJson.IconSymbol3DLayerJson"
                            },
                            {
                                "$ref": "#/definitions/esri.rest-api.SymbolJson.ObjectSymbol3DLayerJson"
                            }
                        ]
                    },
                    "type": "array"
                },
                "type": {
                    "const": "PointSymbol3D",
                    "description": "The type of symbol. See {@link SymbolJsonType}.",
                    "type": "string"
                },
                "verticalOffset": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.VerticalOffsetJson",
                    "description": "Shifts the symbol along the vertical world axis by a given length."
                }
            },
            "required": [
                "symbolLayers",
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.SymbolJson.PolygonSymbol3DJson": {
            "additionalProperties": false,
            "description": "PolygonSymbol3D is used to render features with Polygon geometry in a 3D SceneView. Polygon features may also be rendered as points with icons or objects at the centroid of each polygon.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/polygonSymbol3D/}.",
            "properties": {
                "symbolLayers": {
                    "description": "A Collection of Symbol3DLayer objects used to visualize the graphic or feature.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/definitions/esri.rest-api.SymbolJson.ExtrudeSymbol3DLayerJson"
                            },
                            {
                                "$ref": "#/definitions/esri.rest-api.SymbolJson.FillSymbol3DLayerJson"
                            },
                            {
                                "$ref": "#/definitions/esri.rest-api.SymbolJson.LineSymbol3DLayerJson"
                            }
                        ]
                    },
                    "type": "array"
                },
                "type": {
                    "const": "PolygonSymbol3D",
                    "description": "The type of symbol. See {@link SymbolJsonType}.",
                    "type": "string"
                }
            },
            "required": [
                "symbolLayers",
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.SymbolJson.ResourceIconSymbolJson": {
            "additionalProperties": false,
            "description": "The shape (primitive) or image URL (href) used to visualize the features.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/iconSymbol3DLayer_resource/}.",
            "properties": {
                "dataURI": {
                    "description": "An image encoded as base64 string, starting with data:image.",
                    "type": "string"
                },
                "href": {
                    "description": "URL to the returned image. Must be an absolute URL or a relative path starting with \"./\".",
                    "type": "string"
                },
                "primitive": {
                    "description": "Specifies the type of symbol used. Must be one of the following values: circle, square, cross, x, kite.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.SymbolJson.ResourceObjectSymbolJson": {
            "additionalProperties": false,
            "description": "The primitive shape (primitive) or external 3D model (href) used to visualize the points.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/objectSymbol3DLayer_resource/}.",
            "properties": {
                "href": {
                    "description": "Must be an absolute URL or a relative path starting with \"./\".",
                    "type": "string"
                },
                "primitive": {
                    "description": "Must be one of the following values: sphere, cylinder, cube, cone, invertedCone, diamond, tetrahedron.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.SymbolJson.SimpleFillSymbolJson": {
            "additionalProperties": false,
            "description": "Simple fill symbols can be used to symbolize polygon geometries.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/esriSFS_symbol/}.",
            "properties": {
                "color": {
                    "$ref": "#/definitions/ColorJson",
                    "description": "Color is represented as a four-element array. The four elements represent values for red, green, blue, and alpha in that order. Values range from 0 through 255. If color is undefined for a symbol, the color value is null."
                },
                "outline": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.SimpleLineSymbolJson",
                    "description": "Sets the outline of the fill symbol."
                },
                "style": {
                    "description": "The fill style.",
                    "enum": [
                        "esriSFSBackwardDiagonal",
                        "esriSFSCross",
                        "esriSFSDiagonalCross",
                        "esriSFSForwardDiagonal",
                        "esriSFSHorizontal",
                        "esriSFSNull",
                        "esriSFSSolid",
                        "esriSFSVertical"
                    ],
                    "type": "string"
                },
                "type": {
                    "const": "esriSFS",
                    "description": "The type of symbol. See {@link SymbolJsonType}.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.SymbolJson.SimpleLineSymbolJson": {
            "additionalProperties": false,
            "description": "Simple line symbols can be used to symbolize polyline geometries or outlines for polygon fills.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/esriSLS_symbol/}.",
            "properties": {
                "color": {
                    "$ref": "#/definitions/ColorJson",
                    "description": "Color is represented as a four-element array. The four elements represent values for red, green, blue, and alpha in that order. Values range from 0 through 255. If color is undefined for a symbol, the color value is null."
                },
                "style": {
                    "description": "The line style.",
                    "enum": [
                        "esriSLSDash",
                        "esriSLSDashDot",
                        "esriSLSDashDotDot",
                        "esriSLSDot",
                        "esriSLSNull",
                        "esriSLSSolid"
                    ],
                    "type": "string"
                },
                "type": {
                    "const": "esriSLS",
                    "description": "The type of symbol. See {@link SymbolJsonType}.",
                    "type": "string"
                },
                "width": {
                    "description": "Numeric value indicating the width of the line in pixels.",
                    "type": "number"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.SymbolJson.SimpleMarkerSymbolJson": {
            "additionalProperties": false,
            "description": "Simple marker symbols can be used to symbolize point geometries.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/esriSMS_symbol/}.",
            "properties": {
                "angle": {
                    "description": "Numeric value used to rotate the symbol. The symbol is rotated counter-clockwise. For example, The following, angle=-30, in will create a symbol rotated -30 degrees counter-clockwise; that is, 30 degrees clockwise.",
                    "type": "number"
                },
                "color": {
                    "$ref": "#/definitions/ColorJson",
                    "description": "Color is represented as a four-element array. The four elements represent values for red, green, blue, and alpha in that order. Values range from 0 through 255. If color is undefined for a symbol, the color value is null."
                },
                "outline": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.SimpleLineSymbolJson",
                    "description": "Sets the outline of the marker symbol."
                },
                "size": {
                    "description": "Numeric size of the symbol given in pixels.",
                    "type": "number"
                },
                "style": {
                    "description": "The marker style.",
                    "enum": [
                        "esriSMSCircle",
                        "esriSMSCross",
                        "esriSMSDiamond",
                        "esriSMSPath",
                        "esriSMSSquare",
                        "esriSMSTriangle",
                        "esriSMSX"
                    ],
                    "type": "string"
                },
                "type": {
                    "const": "esriSMS",
                    "description": "The type of symbol. See {@link SymbolJsonType}.",
                    "type": "string"
                },
                "xoffset": {
                    "description": "Numeric value indicating the offset on the x-axis in pixels.",
                    "type": "number"
                },
                "yoffset": {
                    "description": "Numeric value indicating the offset on the y-axis in pixels.",
                    "type": "number"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.SymbolJson.SketchEdgesJson": {
            "additionalProperties": false,
            "description": "The sketch edge rendering configuration of a symbol layer. Edges of type sketch are rendered with a hand-drawn look in mind.",
            "properties": {
                "color": {
                    "description": "Color is represented as a three or four-element array.",
                    "items": {
                        "type": "number"
                    },
                    "type": "array"
                },
                "extensionLength": {
                    "description": "A size in points by which to extend edges beyond their original end points.",
                    "type": "number"
                },
                "size": {
                    "description": "Edge size in points, positive only.",
                    "type": "number"
                },
                "transparency": {
                    "description": "The value has to lie between 100 (full transparency) and 0 (full opacity).",
                    "type": "number"
                },
                "type": {
                    "const": "sketch",
                    "description": "The type of edge visualization. Value of this property must be sketch.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.SymbolJson.SolidEdgesJson": {
            "additionalProperties": false,
            "description": "The solid edge rendering configuration of a symbol layer. Edges of type solid are rendered in a single color, unaffected by scene lighting.",
            "properties": {
                "color": {
                    "description": "Color is represented as a three or four-element array.",
                    "items": {
                        "type": "number"
                    },
                    "type": "array"
                },
                "extensionLength": {
                    "description": "A size in points by which to extend edges beyond their original end points.",
                    "type": "number"
                },
                "size": {
                    "description": "Edge size in points, positive only.",
                    "type": "number"
                },
                "transparency": {
                    "description": "The value has to lie between 100 (full transparency) and 0 (full opacity).",
                    "type": "number"
                },
                "type": {
                    "const": "solid",
                    "description": "The type of edge visualization. Value of this property must be solid.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.SymbolJson.StyleSymbolReferenceJson": {
            "additionalProperties": false,
            "description": "The StyleSymbolReference is used to reference a symbol from a portal styleItem.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/styleSymbolReference/}.",
            "properties": {
                "name": {
                    "description": "Identifies a symbol in the style by name.",
                    "type": "string"
                },
                "styleName": {
                    "description": "A registered web style name.",
                    "type": "string"
                },
                "styleUrl": {
                    "description": "URL that points to the web style definition.",
                    "type": "string"
                },
                "type": {
                    "const": "styleSymbolReference",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.SymbolJson.SymbolJson": {
            "anyOf": [
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.CIMSymbolJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.CIMSymbolReferenceJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.PictureFillSymbolJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.PictureMarkerSymbolJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.SimpleFillSymbolJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.SimpleLineSymbolJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.SimpleMarkerSymbolJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.TextSymbolJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.LabelSymbol3DJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.LineSymbol3DJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.MeshSymbol3DJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.PointSymbol3DJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.PolygonSymbol3DJson"
                },
                {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.StyleSymbolReferenceJson"
                }
            ],
            "description": "A symbol representing a feature on the map.\n\nPart of the Esri ArcGIS REST API (see http://resources.arcgis.com/en/help/rest/apiref/symbol.html). See {@link https://developers.arcgis.com/web-map-specification/objects/symbol/}."
        },
        "esri.rest-api.SymbolJson.TextSymbol3DLayerJson": {
            "additionalProperties": false,
            "description": "TextSymbol3DLayer is used to draw text labels for features of any geometry type.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/textSymbol3DLayer/}.",
            "properties": {
                "font": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.FontJson",
                    "description": "Font used for text symbols."
                },
                "material": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.MaterialJson",
                    "description": "The material used to shade the geometry."
                },
                "size": {
                    "description": "Font size in points, positive only.",
                    "type": "number"
                },
                "text": {
                    "description": "Type:String.",
                    "type": "string"
                },
                "type": {
                    "const": "Text",
                    "description": "The type of the Symbol3DLayer. See {@link Symbol3DLayerJsonType}.",
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.SymbolJson.TextSymbolJson": {
            "additionalProperties": false,
            "description": "Text symbols are used to add text to a feature (labeling).\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/esriTS_symbol/}.",
            "properties": {
                "angle": {
                    "description": "A numeric value that defines the number of degrees (0 to 360) that a text symbol is rotated. The rotation is from East in a counter-clockwise direction where East is the 0° axis.",
                    "type": "number"
                },
                "backgroundColor": {
                    "$ref": "#/definitions/ColorJson",
                    "description": "Background color of the text."
                },
                "borderLineColor": {
                    "$ref": "#/definitions/ColorJson",
                    "description": "Value indicating the the color of the border line."
                },
                "borderLineSize": {
                    "description": "Numeric value indicating the the size of the border line in points.",
                    "type": "number"
                },
                "color": {
                    "$ref": "#/definitions/ColorJson",
                    "description": "Color is represented as a four-element array. The four elements represent values for red, green, blue, and alpha in that order. Values range from 0 through 255. If color is undefined for a symbol, the color value is null."
                },
                "font": {
                    "$ref": "#/definitions/esri.rest-api.SymbolJson.FontJson",
                    "description": "Font used for text symbols."
                },
                "haloColor": {
                    "$ref": "#/definitions/ColorJson",
                    "description": "Color of the halo around the text."
                },
                "haloSize": {
                    "description": "Numeric value indicating the point size of a halo around the text symbol.",
                    "type": "number"
                },
                "horizontalAlignment": {
                    "description": "The horizontal alignment of the text.",
                    "enum": [
                        "center",
                        "justify",
                        "left",
                        "right"
                    ],
                    "type": "string"
                },
                "kerning": {
                    "description": "Boolean value indicating whether to adjust the spacing between characters in the text string.",
                    "type": "boolean"
                },
                "rightToLeft": {
                    "description": "Boolean value, set to true if using Hebrew or Arabic fonts.",
                    "type": "boolean"
                },
                "rotated": {
                    "description": "Boolean value indicating whether every character in the text string is rotated.",
                    "type": "boolean"
                },
                "text": {
                    "description": "Only applicable when specified as a client-side graphic.",
                    "type": "string"
                },
                "type": {
                    "const": "esriTS",
                    "description": "The type of symbol. See {@link SymbolJsonType}.",
                    "type": "string"
                },
                "verticalAlignment": {
                    "description": "The vertical alignment of the text.",
                    "enum": [
                        "baseline",
                        "bottom",
                        "middle",
                        "top"
                    ],
                    "type": "string"
                },
                "xoffset": {
                    "description": "Numeric value indicating the offset on the x-axis in pixels.",
                    "type": "number"
                },
                "yoffset": {
                    "description": "Numeric value indicating the offset on the y-axis in pixels.",
                    "type": "number"
                }
            },
            "required": [
                "type"
            ],
            "type": "object"
        },
        "esri.rest-api.SymbolJson.VerticalOffsetJson": {
            "additionalProperties": false,
            "description": "Shifts the symbol along the vertical world axis by a given length. The length is set in screen space units. See {@link https://developers.arcgis.com/web-scene-specification/objects/verticalOffset/}.",
            "properties": {
                "maxWorldLength": {
                    "description": "The maximum vertical symbol lift in world units. It acts as an upper bound to avoid lift becoming too big.",
                    "type": "number"
                },
                "minWorldLength": {
                    "description": "The minimum vertical symbol lift in world units. It acts as a lower bound to avoid lift becoming too small.",
                    "type": "number"
                },
                "screenLength": {
                    "description": "Maximal screen length of lift in points.",
                    "type": "number"
                }
            },
            "required": [
                "screenLength"
            ],
            "type": "object"
        },
        "esri.rest-api.TableJson.TableJson": {
            "additionalProperties": false,
            "description": "Root element in the web map specifying an array of table objects.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/table/} {@link https://developers.arcgis.com/web-scene-specification/objects/table/}.",
            "properties": {
                "capabilities": {
                    "description": "A comma-separated string listing which editing operations are allowed on an editable feature service. Available operations include: 'Create', 'Delete', 'Query', 'Update', and 'Editing'.",
                    "enum": [
                        "Create",
                        "Delete",
                        "Editing",
                        "Query",
                        "Update"
                    ],
                    "type": "string"
                },
                "definitionEditor": {
                    "$ref": "#/definitions/esri.rest-api.DefinitionEditorJson.DefinitionEditorJson",
                    "description": "Object indicating the definitionEditor used as a layer's interactive filter."
                },
                "formInfo": {
                    "$ref": "#/definitions/esri.rest-api.FormInfoJson.FormInfoJson",
                    "description": "A formInfo object defining the content of the form when you are editing a record."
                },
                "id": {
                    "description": "Unique string identifier for the table.",
                    "type": "string"
                },
                "itemId": {
                    "description": "Unique string value indicating an item registered in ArcGIS Online or your organization's portal.",
                    "type": "string"
                },
                "layerDefinition": {
                    "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.LayerDefinitionJson",
                    "description": "A layerDefinition object defining the attribute schema and drawing information for the layer. Used with CSV layers."
                },
                "popupInfo": {
                    "$ref": "#/definitions/esri.rest-api.PopupInfoJson.PopupInfoJson",
                    "description": "An object defining the content of popup windows when you query a record and the sort option for child related records."
                },
                "refreshInterval": {
                    "description": "Refresh interval of the table in minutes. Non-zero value indicates automatic table refresh at the specified interval. Value of 0 indicates auto refresh is not enabled.",
                    "type": "number"
                },
                "title": {
                    "description": "String value for the title of the table.",
                    "type": "string"
                },
                "url": {
                    "description": "String value indicating the URL reference of the hosted table.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.TemplateJson.TemplateJson": {
            "additionalProperties": false,
            "description": "Templates describe features that can be created in a layer. Templates are used with map notes, other feature collections, and editable web-based CSV layers. They are not used with ArcGIS feature services, which already have feature templates defined in the service.\n\nTemplates are defined as a property of the layer definition when there are no types defined; otherwise, templates are defined as properties of the types.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/template/} {@link https://developers.arcgis.com/web-scene-specification/objects/template/}.",
            "properties": {
                "description": {
                    "description": "A detailed description of the template.",
                    "type": "string"
                },
                "drawingTool": {
                    "description": "An optional string that can define a client-side drawing tool to be used with this feature. See the web map specification for more details.",
                    "enum": [
                        "esriFeatureEditToolCircle",
                        "esriFeatureEditToolDownArrow",
                        "esriFeatureEditToolEllipse",
                        "esriFeatureEditToolFreehand",
                        "esriFeatureEditToolLeftArrow",
                        "esriFeatureEditToolLine",
                        "esriFeatureEditToolPoint",
                        "esriFeatureEditToolPolygon",
                        "esriFeatureEditToolRectangle",
                        "esriFeatureEditToolRightArrow",
                        "esriFeatureEditToolText",
                        "esriFeatureEditToolTriangle",
                        "esriFeatureEditToolUpArrow"
                    ],
                    "type": "string"
                },
                "name": {
                    "description": "A string containing a user-friendly name for the template. This name could appear on a menu of feature choices displayed in the client editing environment.",
                    "type": "string"
                },
                "prototype": {
                    "$ref": "#/definitions/esri.rest-api.FeatureJson.FeatureJson",
                    "description": "A feature object representing a prototypical feature for the template."
                }
            },
            "type": "object"
        },
        "esri.rest-api.TiledElevationServiceLayerJson.TiledElevationServiceLayerJson": {
            "additionalProperties": false,
            "description": "ElevationLayer is a tile layer used for rendering elevation in web scenes. A default world elevation layer can be added to the map by setting the map's ground property to world-elevation.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/elevationLayer/}.",
            "properties": {
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "id": {
                    "description": "A unique identifying string for the layer.",
                    "type": "string"
                },
                "isReference": {
                    "description": "This 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).",
                    "type": "boolean"
                },
                "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": {
                    "const": "ArcGISTiledElevationServiceLayer",
                    "description": "The type of layer.",
                    "type": "string"
                },
                "listMode": {
                    "description": "Indicates how the layer should display in the table of contents. The known values are listed below. See {@link support /esri!ListMode}."
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "path": {
                    "description": "For offline data, a path to an ArcGIS Runtime supported raster data file. A URI format is used, starting with file: followed by a file system path. A relative path must be from the file which defines the layer. For example `file:../data/raster_data/beijing.tif`.",
                    "type": "string"
                },
                "refreshInterval": {
                    "description": "When the refresh interval is set on a layer, the client must refresh that layer only, not the entire web map. The default value is '0', meaning the no refresh. You can enable a refresh interval on the following types of layers: ArcGIS Server web service, hosted feature layer, hosted tile layer, OGC WMS, OGS WMTS, tile layer, GeoRSS, Living Atlas layers, basemaps (including Bing Maps basemaps), CSV from the web with latitude and longitude fields, and KML when added to ArcGIS Online through the My Content page. See {@link https://doc.arcgis.com/en/arcgis-online/create-maps/set-refresh-interval.htm}.",
                    "type": "number"
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "url": {
                    "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": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                }
            },
            "required": [
                "layerType"
            ],
            "type": "object"
        },
        "esri.rest-api.TiledImageServiceLayerJson.TiledImageServiceLayerJson": {
            "additionalProperties": false,
            "description": "An ArcGIS Tiled Image Service layer displays map content from an ArcGIS Server Image service that has been cached (tiled).\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/tiledImageServiceLayer/} {@link https://developers.arcgis.com/web-scene-specification/objects/tiledImageServiceLayer/}.",
            "properties": {
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "customParameters": {
                    "description": "A sequence of custom parameters appended to the URL of all requests related to supporting ArcGIS layer types."
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "id": {
                    "description": "A unique identifying string for the layer.",
                    "type": "string"
                },
                "isReference": {
                    "description": "This 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).",
                    "type": "boolean"
                },
                "layerDefinition": {
                    "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.LayerDefinitionJson",
                    "description": "An object that defines the attribute schema and drawing information for a layer drawn using client-side graphics. See layerDefinition properties table."
                },
                "layerType": {
                    "const": "ArcGISTiledImageServiceLayer",
                    "description": "The type of layer.",
                    "type": "string"
                },
                "listMode": {
                    "description": "Indicates how the layer should display in the table of contents. The known values are listed below. See {@link support /esri!ListMode}."
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "refreshInterval": {
                    "description": "When the refresh interval is set on a layer, the client must refresh that layer only, not the entire web map. The default value is '0', meaning the no refresh. You can enable a refresh interval on the following types of layers: ArcGIS Server web service, hosted feature layer, hosted tile layer, OGC WMS, OGS WMTS, tile layer, GeoRSS, Living Atlas layers, basemaps (including Bing Maps basemaps), CSV from the web with latitude and longitude fields, and KML when added to ArcGIS Online through the My Content page. See {@link https://doc.arcgis.com/en/arcgis-online/create-maps/set-refresh-interval.htm}.",
                    "type": "number"
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "url": {
                    "description": "URL to the ArcGIS Server Image Service.",
                    "type": "string"
                },
                "visibility": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                }
            },
            "required": [
                "layerType"
            ],
            "type": "object"
        },
        "esri.rest-api.TiledMapServiceLayerJson.TiledMapServiceLayerJson": {
            "additionalProperties": false,
            "description": "An ArcGIS Tiled Map Service layer displays map content from an ArcGIS Server Map service that has been cached (tiled).\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/tiledMapServiceLayer/} {@link https://developers.arcgis.com/web-scene-specification/objects/tiledMapServiceLayer/}.",
            "properties": {
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "customParameters": {
                    "description": "A sequence of custom parameters appended to the URL of all requests related to supporting ArcGIS layer types."
                },
                "displayLevels": {
                    "description": "NOTE: Applicable if used as a baseMapLayer. Integer value(s) indicating the display levels of the basemap layer. Only applicable for TiledMapService layers. All tiled map service layers should share the same tiling scheme. This property cannot be set via the Map Viewer UI.",
                    "items": {
                        "type": "number"
                    },
                    "type": "array"
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "exclusionAreas": {
                    "$ref": "__type",
                    "description": "Exclusion areas define extent areas where no data will be fetched for a layer. NOTE: Applicable if used as a baseMapLayer. An array of exclusionArea objects defining the layer exclusions. See {@link https://developers.arcgis.com/web-map-specification/objects/exclusionArea/}."
                },
                "id": {
                    "description": "A unique identifying string for the layer.",
                    "type": "string"
                },
                "isReference": {
                    "description": "This 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).",
                    "type": "boolean"
                },
                "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": {
                    "const": "ArcGISTiledMapServiceLayer",
                    "description": "The type of layer.",
                    "type": "string"
                },
                "layers": {
                    "description": "An array of layer objects defining the styling, geometry, and attribute information for the features.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.SublayerJson.SublayerJson"
                    },
                    "type": "array"
                },
                "listMode": {
                    "description": "Indicates how the layer should display in the table of contents. The known values are listed below. See {@link support /esri!ListMode}."
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "path": {
                    "description": "The path to the supporting offline layer. Mobile only. Only valid in MMAP JSON.",
                    "type": "string"
                },
                "refreshInterval": {
                    "description": "When the refresh interval is set on a layer, the client must refresh that layer only, not the entire web map. The default value is '0', meaning the no refresh. You can enable a refresh interval on the following types of layers: ArcGIS Server web service, hosted feature layer, hosted tile layer, OGC WMS, OGS WMTS, tile layer, GeoRSS, Living Atlas layers, basemaps (including Bing Maps basemaps), CSV from the web with latitude and longitude fields, and KML when added to ArcGIS Online through the My Content page. See {@link https://doc.arcgis.com/en/arcgis-online/create-maps/set-refresh-interval.htm}.",
                    "type": "number"
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "url": {
                    "description": "URL to the ArcGIS Server tiled Map Service.",
                    "type": "string"
                },
                "visibility": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                }
            },
            "required": [
                "layerType"
            ],
            "type": "object"
        },
        "esri.rest-api.TypeJson.TypeJson": {
            "additionalProperties": false,
            "description": "Types contain information about the combinations of attributes allowed for features in the dataset. Each feature in the dataset can have a type, indicated in its typeIdField, which is used in LayerDefinition.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/type/} {@link https://developers.arcgis.com/web-scene-specification/objects/type/}.",
            "properties": {
                "domains": {
                    "description": "A set of domain objects for each domain in the type."
                },
                "id": {
                    "description": "A unique numerical ID for the type.",
                    "type": [
                        "string",
                        "number"
                    ]
                },
                "name": {
                    "description": "A string containing a user-friendly name for the type. This might be shown on a menu of feature types that editors can create in the collection.",
                    "type": "string"
                },
                "templates": {
                    "description": "An array of template objects describing features that can be created in this layer. Templates are used with map notes, other feature collections, and editable web-based CSV layers. They are not used with ArcGIS feature services, which already have feature templates defined in the service.\n\nTemplates are defined as a property of the layer definition when there are no types defined; otherwise, templates are defined as properties of the types.\n\nYou might have more than one template per type if the attributes of available features vary slightly. For example, you might have a type named Copper pipe containing two templates: one whose DIAMETER property is 12 and another whose DIAMETER property is 10.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.TemplateJson.TemplateJson"
                    },
                    "type": "array"
                }
            },
            "type": "object"
        },
        "esri.rest-api.VectorTileLayerJson.VectorTileLayerJson": {
            "additionalProperties": false,
            "description": "A vector tile layer references a set of web-accessible vector tiles and the corresponding style for how those tiles should be drawn.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/vectorTileLayer/} {@link https://developers.arcgis.com/web-scene-specification/objects/vectorTileLayer/}.",
            "properties": {
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "customParameters": {
                    "description": "A sequence of custom parameters appended to the URL of all requests related to supporting ArcGIS layer types."
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "id": {
                    "description": "A unique identifying string for the layer.",
                    "type": "string"
                },
                "isReference": {
                    "description": "This 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).",
                    "type": "boolean"
                },
                "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": {
                    "const": "VectorTileLayer",
                    "description": "The type of layer.",
                    "type": "string"
                },
                "listMode": {
                    "description": "Indicates how the layer should display in the table of contents. The known values are listed below. See {@link support /esri!ListMode}."
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "path": {
                    "description": "The path to the supporting offline layer. Mobile only. Only valid in MMAP JSON.",
                    "type": "string"
                },
                "refreshInterval": {
                    "description": "When the refresh interval is set on a layer, the client must refresh that layer only, not the entire web map. The default value is '0', meaning the no refresh. You can enable a refresh interval on the following types of layers: ArcGIS Server web service, hosted feature layer, hosted tile layer, OGC WMS, OGS WMTS, tile layer, GeoRSS, Living Atlas layers, basemaps (including Bing Maps basemaps), CSV from the web with latitude and longitude fields, and KML when added to ArcGIS Online through the My Content page. See {@link https://doc.arcgis.com/en/arcgis-online/create-maps/set-refresh-interval.htm}.",
                    "type": "number"
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "styleUrl": {
                    "description": "A url to a JSON file containing the stylesheet information used to render the layer. You may also pass an object containing the stylesheet information identical to the JSON file.",
                    "type": "string"
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "visibility": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                }
            },
            "required": [
                "layerType"
            ],
            "type": "object"
        },
        "esri.rest-api.ViewpointJson.CameraJson": {
            "additionalProperties": false,
            "description": "The camera defines the position, tilt, and heading of the point from which the SceneView's visible extent is observed.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/camera/}.",
            "properties": {
                "heading": {
                    "description": "The heading of the camera in degrees. Heading is zero when north is the top of the screen. It increases as the view rotates clockwise. The angles are always normalized between 0 and 360 degrees.",
                    "type": "number"
                },
                "position": {
                    "$ref": "#/definitions/esri.rest-api.GeometryJson.PointJson",
                    "description": "The position of the camera defined by a map point."
                },
                "tilt": {
                    "description": "The tilt of the camera in degrees with respect to the surface as projected down from the camera position. Tilt is zero when looking straight down at the surface and 90 degrees when the camera is looking parallel to the surface.",
                    "type": "number"
                }
            },
            "required": [
                "position"
            ],
            "type": "object"
        },
        "esri.rest-api.ViewpointJson.ViewpointJson": {
            "additionalProperties": false,
            "description": "Describes a point of view for a 2D or 3D view. In a 2D view, the viewpoint is determined using a center point and scale value. In a 3D view, it is determined using a camera position. The Viewpoint can be bookmarked for later use, or used for navigation purposes.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/viewpoint/} {@link https://developers.arcgis.com/web-scene-specification/objects/viewpoint/}.",
            "properties": {
                "camera": {
                    "$ref": "#/definitions/esri.rest-api.ViewpointJson.CameraJson",
                    "description": "The camera defines the position, tilt, and heading of the point from which the SceneView's visible extent is observed."
                },
                "rotation": {
                    "description": "The rotation of due north in relation to the top of the view in degrees.",
                    "type": "number"
                },
                "scale": {
                    "description": "The scale of the viewpoint.",
                    "type": "number"
                },
                "targetGeometry": {
                    "$ref": "#/definitions/GeometryJson",
                    "description": "The target geometry framed by the viewpoint."
                }
            },
            "type": "object"
        },
        "esri.rest-api.WFSLayerJson.WFSInfoJson": {
            "additionalProperties": false,
            "description": "Object that defines and provides information about layers in a WFS service.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/wfsInfo/}.",
            "properties": {
                "customParameters": {
                    "description": "A sequence of parameters used to append custom parameters to all WFS requests. These parameters are applied to GetCapabilities, DescribeFeatureType, and GetFeatures."
                },
                "featureUrl": {
                    "description": "URL of the WFS service operation.",
                    "type": "string"
                },
                "maxFeatures": {
                    "description": "Set this to limit the number of requested features that a GetFeature request presents.",
                    "type": "number"
                },
                "name": {
                    "description": "The name of the WFS layer. This is used to set layer visibility.",
                    "type": "string"
                },
                "supportedSpatialReferences": {
                    "description": "List of supported spatial reference IDs.",
                    "items": {
                        "type": "number"
                    },
                    "type": "array"
                },
                "swapXY": {
                    "description": "Boolean value indicating whether X and Y axis are flipped.",
                    "type": "boolean"
                },
                "version": {
                    "description": "Value indicating which version of the WFS specification is used.",
                    "type": "string"
                },
                "wfsNamespace": {
                    "description": "String indicating namespace.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.WFSLayerJson.WFSLayerJson": {
            "additionalProperties": false,
            "description": "OGC Web Feature Service (WFS) is a dynamic feature service that follows the specifications of OGC.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/wfsLayer/} and {@link https://developers.arcgis.com/web-scene-specification/objects/wfsLayer/}.",
            "properties": {
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "disablePopup": {
                    "description": "Indicates whether to allow a client to ignore popups defined by the service item.",
                    "type": "boolean"
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "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"
                },
                "layerDefinition": {
                    "$ref": "#/definitions/esri.rest-api.LayerDefinitionJson.LayerDefinitionJson",
                    "description": "A layerDefinition object defining the attribute schema and drawing information for the layer."
                },
                "layerType": {
                    "const": "WFS",
                    "description": "The type of layer.",
                    "type": "string"
                },
                "listMode": {
                    "description": "Indicates how the layer should display in the table of contents. The known values are listed below. See {@link support /esri!ListMode}."
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "mode": {
                    "description": "Number where 0 means 'snapshot' and 1 means 'ondemand'.",
                    "enum": [
                        0,
                        1
                    ],
                    "type": "number"
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "popupInfo": {
                    "$ref": "#/definitions/esri.rest-api.PopupInfoJson.PopupInfoJson",
                    "description": "A PopupInfo object defining the content of pop-up windows when you click or query a feature."
                },
                "refreshInterval": {
                    "description": "When the refresh interval is set on a layer, the client must refresh that layer only, not the entire web map. The default value is '0', meaning the no refresh. You can enable a refresh interval on the following types of layers: ArcGIS Server web service, hosted feature layer, hosted tile layer, OGC WMS, OGS WMTS, tile layer, GeoRSS, Living Atlas layers, basemaps (including Bing Maps basemaps), CSV from the web with latitude and longitude fields, and KML when added to ArcGIS Online through the My Content page. See {@link https://doc.arcgis.com/en/arcgis-online/create-maps/set-refresh-interval.htm}.",
                    "type": "number"
                },
                "showLabels": {
                    "description": "Indicates whether to display labels for this layer. If true, labels will appear as defined in the labelingInfo property.",
                    "type": "boolean"
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "url": {
                    "description": "The URL to the layer. If the layer is not from a web service but rather a feature collection, than the url property is omitted.",
                    "type": "string"
                },
                "visibility": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                },
                "wfsInfo": {
                    "$ref": "#/definitions/esri.rest-api.WFSLayerJson.WFSInfoJson",
                    "description": "Object that defines and provides information about layers in a WFS service."
                }
            },
            "required": [
                "layerType"
            ],
            "type": "object"
        },
        "esri.rest-api.WMSLayerJson.WMSLayerJson": {
            "additionalProperties": false,
            "description": "A layer consuming a Web Map Service (WMS). The WMS specification is an international specification for serving and consuming dynamic maps on the web. For additional information on publishing WMS services, please see the ArcGIS Server help.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/wmsLayer/}.",
            "properties": {
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "copyright": {
                    "description": "A string containing copyright and access information for a WMS layer. This is copied from the capabilities document exposed by the WMS service.",
                    "type": "string"
                },
                "customLayerParameters": {
                    "description": "A sequence of custom parameters to WMS layer requests. These parameters are applied to GetMap and GetFeatureInfo requests. The customLayerParameters property takes precedence if customParameters is also present."
                },
                "customParameters": {
                    "description": "A sequence of custom parameters to all WMS requests. These parameters are applied to GetCapabilities, GetMap, and GetFeatureInfo requests. If used with the customLayerParameters property, customParameters will not take precedence."
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "extent": {
                    "description": "The rectangular map extent that should be requested from the service.",
                    "items": {
                        "items": {
                            "type": "number"
                        },
                        "type": "array"
                    },
                    "type": "array"
                },
                "featureInfoFormat": {
                    "description": "Format of the Feature.",
                    "enum": [
                        "text/html",
                        "text/plain"
                    ],
                    "type": "string"
                },
                "featureInfoUrl": {
                    "description": "URL of the Feature.",
                    "type": "string"
                },
                "format": {
                    "description": "A string containing the image format to be requested from a WMS service.",
                    "type": "string"
                },
                "id": {
                    "description": "A unique identifying string for the layer.",
                    "type": "string"
                },
                "isReference": {
                    "description": "This 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).",
                    "type": "boolean"
                },
                "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": {
                    "const": "WMS",
                    "description": "Type of the layer.",
                    "type": "string"
                },
                "layers": {
                    "description": "An array of wms sub layer objects defining the styling, geometry, and attribute information for the features.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.WMSSublayerJson.WMSSublayerJson"
                    },
                    "type": "array"
                },
                "legendUrl": {
                    "description": "URL to legend.",
                    "type": "string"
                },
                "listMode": {
                    "description": "Indicates how the layer should display in the table of contents. The known values are listed below. See {@link support /esri!ListMode}."
                },
                "mapUrl": {
                    "description": "The URL of the WMS map. You should also supply the url property, which is the URL of the WMS capabilities document.",
                    "type": "string"
                },
                "maxHeight": {
                    "description": "A number defining the maximum height, in pixels, that should be requested from the service.",
                    "type": "number"
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "maxWidth": {
                    "description": "A number defining the maximum width, in pixels, that should be requested from the service.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "refreshInterval": {
                    "description": "When the refresh interval is set on a layer, the client must refresh that layer only, not the entire web map. The default value is '0', meaning the no refresh. You can enable a refresh interval on the following types of layers: ArcGIS Server web service, hosted feature layer, hosted tile layer, OGC WMS, OGS WMTS, tile layer, GeoRSS, Living Atlas layers, basemaps (including Bing Maps basemaps), CSV from the web with latitude and longitude fields, and KML when added to ArcGIS Online through the My Content page. See {@link https://doc.arcgis.com/en/arcgis-online/create-maps/set-refresh-interval.htm}.",
                    "type": "number"
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "spatialReferences": {
                    "description": "An array of numbers containing well-known IDs for spatial references supported by the service.",
                    "items": {
                        "type": "number"
                    },
                    "type": "array"
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "url": {
                    "description": "The URL to the layer.",
                    "type": "string"
                },
                "version": {
                    "description": "A string containing the version number of the service.",
                    "type": "string"
                },
                "visibility": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                },
                "visibleLayers": {
                    "description": "An array of layers that should appear visible. The array contains the names of the visible layers.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                }
            },
            "required": [
                "layerType"
            ],
            "type": "object"
        },
        "esri.rest-api.WMSSublayerJson.WMSSublayerJson": {
            "additionalProperties": false,
            "description": "A layer object may allow overrides on popup content and drawing behavior for individual layers of a web service.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/wmsLayer_layer/}.",
            "properties": {
                "legendUrl": {
                    "description": "A string URL to a legend graphic for the layer.",
                    "type": "string"
                },
                "name": {
                    "description": "A string containing a unique name for the layer.",
                    "type": "string"
                },
                "queryable": {
                    "description": "Boolean specifying whether a layer is queryable or not.",
                    "type": "boolean"
                },
                "showPopup": {
                    "description": "Boolean specifying whether to display popup or not.",
                    "type": "boolean"
                },
                "title": {
                    "description": "A user-friendly string title for the layer that can be used in a table of contents.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.WebMapJson.ApplicationPropertiesJson": {
            "additionalProperties": false,
            "description": "The applicationProperties object is one of the objects at the top level of the JSON web map JSON schema. This is responsible for containing the viewing and editing properties of the web map. There are specific objects within this object that are applicable only to Collector and are explained within the property descriptions.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/applicationProperties/}.",
            "properties": {
                "editing": {
                    "$ref": "__type",
                    "description": "If locationTracking is set and enabled, the Collector application will update the feature service at the defined interval with the current location of the user logged into the Collector app. See {@link https://developers.arcgis.com/web-map-specification/objects/editing/}."
                },
                "offline": {
                    "$ref": "__type",
                    "description": "Use if working with offline maps. See {@link https://developers.arcgis.com/web-map-specification/objects/offline/}."
                },
                "viewing": {
                    "$ref": "__type",
                    "description": "An object containing all the viewing properties of the web map. If this is null or not defined, the client should assume a logical default. See {@link https://developers.arcgis.com/web-map-specification/objects/viewing/}."
                }
            },
            "type": "object"
        },
        "esri.rest-api.WebMapJson.BookmarkJson": {
            "additionalProperties": false,
            "description": "Predefined bookmarks for use by the application. A bookmark is a saved map extent that allows end users to quickly navigate to a particular area of interest.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/bookmark/}.",
            "properties": {
                "extent": {
                    "$ref": "#/definitions/esri.rest-api.GeometryJson.ExtentJson"
                },
                "name": {
                    "description": "A string name for the bookmark.",
                    "type": "string"
                },
                "thumbnail": {
                    "$ref": "__type",
                    "description": "Object containing a thumbnail image."
                },
                "viewpoint": {
                    "$ref": "#/definitions/esri.rest-api.ViewpointJson.ViewpointJson",
                    "description": "Represents the location displayed on the map. If viewpoint is defined, ignore the extent. If viewpoint is not defined, use the extent property. For backwards compatibility, please save both extent and viewpoint properties."
                }
            },
            "required": [
                "name"
            ],
            "type": "object"
        },
        "esri.rest-api.WebMapJson.FacilityLayerInfoJson": {
            "additionalProperties": false,
            "description": "Defines the layer and field properties for the Facility layer used for floor filtering. See {@link https://developers.arcgis.com/web-map-specification/objects/facilityLayerInfo/}.",
            "properties": {
                "facilityIdField": {
                    "description": "The name of the attribute field that contains a facility feature's unique identifier.",
                    "type": "string"
                },
                "layerId": {
                    "description": "A layer ID that refers to an operational layer in the map. The layer provides access to Facility features to use for floor filtering.",
                    "type": "string"
                },
                "nameField": {
                    "description": "The name of the attribute field that contains a facility feature's name.",
                    "type": "string"
                },
                "siteIdField": {
                    "description": "The name of the attribute field that contains a facility feature's site identifier (a foreign key to the Site layer).",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.WebMapJson.FloorFilterJson": {
            "additionalProperties": false,
            "description": "Configurable properties used by the floor filter widget. See {@link https://developers.arcgis.com/web-map-specification/objects/floorFilter/}.",
            "properties": {
                "enabled": {
                    "description": "Indicates whether the floor filter is actively filtering the displayed content according to the floor filter selection.",
                    "type": "boolean"
                },
                "facility": {
                    "description": "Contains a facility identifier for the initially selected facility in the floor filter.",
                    "type": "string"
                },
                "level": {
                    "description": "Contains a level identifier for the initially selected floor, which is used when filtering floor-aware layers.",
                    "type": "string"
                },
                "longNames": {
                    "description": "Indicates whether the floor filter is showing long names instead of short names for floor levels.",
                    "type": "boolean"
                },
                "minimized": {
                    "description": "Indicates whether the floor filter has been minimized to show only the levels list instead of showing the full set of breadcrumbs.",
                    "type": "boolean"
                },
                "pinnedLevels": {
                    "description": "Indicates whether the floor filter has been pinned to show the floor levels list, instead of including the levels as a breadcrumb dropdown.",
                    "type": "boolean"
                },
                "siteIdentifier": {
                    "description": "Contains a site identifier for the initially selected site in the floor filter.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.WebMapJson.InitialStateJson": {
            "additionalProperties": false,
            "description": "Defines the initial state when opening web scene.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/initialState/}.",
            "properties": {
                "environment": {
                    "$ref": "#/definitions/esri.rest-api.EnvironmentJson.EnvironmentJson",
                    "description": "The initial environment settings of the WebScene."
                },
                "viewpoint": {
                    "$ref": "#/definitions/esri.rest-api.ViewpointJson.ViewpointJson",
                    "description": "Describes a point of view for a 2D or 3D view. In a 3D view, it is determined using a camera position."
                }
            },
            "required": [
                "viewpoint"
            ],
            "type": "object"
        },
        "esri.rest-api.WebMapJson.LevelLayerInfoJson": {
            "additionalProperties": false,
            "description": "Defines the layer and field properties for the Level layer used for floor filtering. See {@link https://developers.arcgis.com/web-map-specification/objects/levelLayerInfo/}.",
            "properties": {
                "facilityIdField": {
                    "description": "The name of the attribute field that contains a level feature's facility identifier (a foreign key to the Facility layer).",
                    "type": "string"
                },
                "layerId": {
                    "description": "A layer ID that refers to an operational layer in the map. The layer provides access to Level features to use for floor filtering.",
                    "type": "string"
                },
                "levelIdField": {
                    "description": "The name of the attribute field that contains a level feature's unique identifier.",
                    "type": "string"
                },
                "levelNumberField": {
                    "description": "The name of the attribute field that contains a level feature's level number specific to its facility.",
                    "type": "string"
                },
                "longNameField": {
                    "description": "The name of the attribute field that contains a level feature's long name.",
                    "type": "string"
                },
                "shortNameField": {
                    "description": "The name of the attribute field that contains a level feature's short name.",
                    "type": "string"
                },
                "verticalOrderField": {
                    "description": "The name of the attribute field that contains a level feature's vertical order. The vertical order defines the order of display in the floor filter widget, and it also references the floor levels of an Indoor Positioning System.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.WebMapJson.MapFloorInfoJson": {
            "additionalProperties": false,
            "description": "Contains floor-awareness information for the map. Defines the layers and required fields for each layer that are used for floor filtering. See {@link https://developers.arcgis.com/web-map-specification/objects/mapFloorInfo/}.",
            "properties": {
                "facilityLayer": {
                    "$ref": "#/definitions/esri.rest-api.WebMapJson.FacilityLayerInfoJson",
                    "description": "Defines the layer and field properties for the Facility layer used for floor filtering."
                },
                "levelLayer": {
                    "$ref": "#/definitions/esri.rest-api.WebMapJson.LevelLayerInfoJson",
                    "description": "Defines the layer and field properties for the Level layer used for floor filtering."
                },
                "siteLayer": {
                    "$ref": "#/definitions/esri.rest-api.WebMapJson.SiteLayerInfoJson",
                    "description": "Defines the layer and field properties for the Site layer used for floor filtering. This property is optional."
                }
            },
            "type": "object"
        },
        "esri.rest-api.WebMapJson.MapRangeInfoJson": {
            "additionalProperties": false,
            "description": "Map Range Information.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/mapRangeInfo/}.",
            "properties": {
                "activeRangeName": {
                    "description": "Active range ID that slider/picker acts upon.",
                    "type": "string"
                },
                "currentRangeExtent": {
                    "description": "Current range for the active range.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                },
                "fullRangeExtent": {
                    "description": "Full range extent for the active range to be presented in the UI.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                }
            },
            "type": "object"
        },
        "esri.rest-api.WebMapJson.PresentationJson": {
            "additionalProperties": false,
            "description": "A presentation consists of multiple slides, where each slide is a specific view into the web scene.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/presentation/} {@link https://developers.arcgis.com/web-scene-specification/objects/presentation/}.",
            "properties": {
                "displayTimeSlider": {
                    "description": "Indicates whether to display the time slider (if accessible). [WebMap only].",
                    "type": "boolean"
                },
                "showLegend": {
                    "description": "Indicates whether to display a legend on all slides. [WebMap only].",
                    "type": "boolean"
                },
                "slideAdvancementInterval": {
                    "description": "Number of seconds to show slide before proceeding to the next slide. [WebMap only].",
                    "type": "number"
                },
                "slides": {
                    "description": "An array of slides that bookmark viewpoints, visible layers, and other settings previously defined in a WebScene.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.WebMapJson.SlideJson"
                    },
                    "type": "array"
                },
                "useTimeExtentOfSlide": {
                    "description": "Indicates whether to use the time extent (if applicable) of a slide. [WebMap only].",
                    "type": "boolean"
                }
            },
            "type": "object"
        },
        "esri.rest-api.WebMapJson.RangeJson": {
            "additionalProperties": false,
            "description": "Range object.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/range/} {@link https://developers.arcgis.com/web-scene-specification/objects/range/}.",
            "properties": {
                "interactionMode": {
                    "description": "Indicates the mode in which the active range should be presented to the user. Must be one of the following values: slider, picker.",
                    "type": "string"
                },
                "numberOfStops": {
                    "description": "This is used to generate the activeRangeValues if activeRangeValues are not specified.",
                    "type": "number"
                },
                "stopInterval": {
                    "description": "Interval in which stops should be generated.",
                    "type": "number"
                }
            },
            "type": "object"
        },
        "esri.rest-api.WebMapJson.SiteLayerInfoJson": {
            "additionalProperties": false,
            "description": "Defines the layer and field properties for the Site layer used for floor filtering. This property is optional. See {@link https://developers.arcgis.com/web-map-specification/objects/siteLayerInfo/}.",
            "properties": {
                "layerId": {
                    "description": "A layer ID that refers to an operational layer in the map. The layer provides access to Site features to use for floor filtering.",
                    "type": "string"
                },
                "nameField": {
                    "description": "The name of the attribute field that contains a site feature's name.",
                    "type": "string"
                },
                "siteIdField": {
                    "description": "The name of the attribute field that contains a site feature's unique identifier.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.WebMapJson.SlideJson": {
            "additionalProperties": false,
            "description": "A slide stores a snapshot of several pre-set properties of the WebScene, such as the basemap, viewpoint and visible layers.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/slide/} {@link https://developers.arcgis.com/web-scene-specification/objects/slide/}.",
            "properties": {
                "baseMap": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/esri.rest-api.BasemapJson.BasemapJson"
                        },
                        {
                            "type": "string"
                        }
                    ],
                    "description": "The basemap of the scene. Only the base and reference layers of the basemap are stored in a slide. This value can be an instance of Basemap or one of the strings listed in the table below. Same as baseMap, but with no elevationLayers property."
                },
                "description": {
                    "$ref": "__type",
                    "description": "Text description of the individual presentation slide."
                },
                "environment": {
                    "$ref": "#/definitions/esri.rest-api.EnvironmentJson.EnvironmentJson",
                    "description": "Represents settings that affect the environment in which the WebScene is displayed (such as lighting)."
                },
                "extent": {
                    "$ref": "#/definitions/esri.rest-api.GeometryJson.ExtentJson",
                    "description": "The standard Esri extent object with spatialReference, xmax, xmin, ymax and ymin. [WebMap Only]."
                },
                "hidden": {
                    "description": "Indicates whether the slide should be hidden within the presentation. [WebMap Only].",
                    "type": "boolean"
                },
                "id": {
                    "description": "The unique id of a slide within the slides property of a Presentation.",
                    "type": "string"
                },
                "mapLocation": {
                    "$ref": "__type",
                    "description": "An object with a centerPoint object and sometimes a resolution. [WebMap Only] {@link https://developers.arcgis.com/web-map-specification/objects/mapLocation/}."
                },
                "thumbnail": {
                    "$ref": "__type",
                    "description": "A data URI encoded thumbnail. See {@link https://developers.arcgis.com/web-scene-specification/objects/thumbnail/}."
                },
                "timeExtent": {
                    "description": "An array of two numbers. The first one indicates start time and the second one indicates end time. [WebMap Only].",
                    "items": {
                        "type": "number"
                    },
                    "type": "array"
                },
                "title": {
                    "$ref": "__type",
                    "description": "Text and formatting for the title of the individual presentation slide https://developers.arcgis.com/web-map-specification/objects/title/ {@link https://developers.arcgis.com/web-scene-specification/objects/title/}."
                },
                "viewpoint": {
                    "$ref": "#/definitions/esri.rest-api.ViewpointJson.ViewpointJson",
                    "description": "The viewpoint of the slide. This acts like a bookmark, saving a predefined location or point of view from which to view the scene."
                },
                "visibleLayers": {
                    "description": "An array of numbers indicating layer visibility. Stores references (by ID) to the layers that are set as visible when a slide is applied to a MapView or SceneView. See {@link https://developers.arcgis.com/web-map-specification/objects/visibleLayer/} {@link https://developers.arcgis.com/web-scene-specification/objects/visibleLayer/}.",
                    "items": {
                        "$ref": "__type"
                    },
                    "type": "array"
                },
                "visiblePopup": {
                    "$ref": "__type",
                    "description": "A presentation slide's visiblePopup which contains anchorPoint, featureId, layerId, and subLayerId. See {@link https://developers.arcgis.com/web-map-specification/objects/visiblePopup/}."
                }
            },
            "type": "object"
        },
        "esri.rest-api.WebMapJson.TimeSliderJson": {
            "additionalProperties": false,
            "description": "Time animation is controlled by a configurable time slider. Those configurations are saved to the web map as a timeSlider widget.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/timeSlider/}.",
            "properties": {
                "properties": {
                    "$ref": "__type",
                    "description": "Properties for the time slider."
                }
            },
            "required": [
                "properties"
            ],
            "type": "object"
        },
        "esri.rest-api.WebMapJson.TraceConfigurationJson": {
            "additionalProperties": false,
            "description": "An array of pre-configured trace configurations for quickly running common traces. See {@link https://developers.arcgis.com/web-map-specification/objects/traceConfiguration/}.",
            "properties": {
                "id": {
                    "description": "A unique identifying string for the trace configuration.",
                    "type": "string"
                },
                "title": {
                    "description": "A user-friendly string title for the trace configuration that can be used in a table of contents.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.WebMapJson.UtilityNetworkJson": {
            "additionalProperties": false,
            "description": "Identifies the central object for utility network schema information to access utility-related functionality, such as tracing and querying associations. See {@link https://developers.arcgis.com/web-map-specification/objects/utilityNetwork/}.",
            "properties": {
                "id": {
                    "description": "A unique identifying string for the utility network.",
                    "type": "string"
                },
                "title": {
                    "description": "A user-friendly string title for the utility network that can be used in a table of contents.",
                    "type": "string"
                },
                "traceConfigurations": {
                    "description": "An array of pre-configured trace configurations for quickly running common traces.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.WebMapJson.TraceConfigurationJson"
                    },
                    "type": "array"
                },
                "url": {
                    "description": "A string value indicating the URL to the utility network layer.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.WebMapJson.WebMapJson": {
            "additionalProperties": false,
            "description": "The web map data lists the basemap, operational layers, and bookmarks to be used in the web map. It also contains information about popup windows and layer styling overrides to be used in the web map. A version property allows you to supply the version of the web map JSON format being used.\n\nPart of the Esri web map specification. See {@link http://resources.arcgis.com/en/help/arcgis-web-map-json/}. See {@link https://developers.arcgis.com/web-map-specification/objects/webmap/}.",
            "properties": {
                "applicationProperties": {
                    "$ref": "#/definitions/esri.rest-api.WebMapJson.ApplicationPropertiesJson",
                    "description": "The applicationProperties object is one of the objects at the top level of the JSON web map JSON schema. This is responsible for containing the viewing and editing properties of the web map. There are specific objects within this object that are applicable only to Collector and are explained within the property descriptions."
                },
                "authoringApp": {
                    "description": "String value indicating the application which authored the webmap.",
                    "type": "string"
                },
                "authoringAppVersion": {
                    "description": "String value indicating the authoring App's version number.",
                    "type": "string"
                },
                "background": {
                    "$ref": "#/definitions/esri.rest-api.EnvironmentJson.ColorBackgroundJson",
                    "description": "The background."
                },
                "baseMap": {
                    "$ref": "#/definitions/esri.rest-api.BasemapJson.BasemapJson",
                    "description": "The map's basemap layer(s). Layers are drawn based on the index position in the array; The first layer in the array is the first layer drawn, the next layer in the array is drawn on top of it, and so on."
                },
                "bookmarks": {
                    "description": "Bookmarks that are saved with the map.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.WebMapJson.BookmarkJson"
                    },
                    "type": "array"
                },
                "initialState": {
                    "$ref": "#/definitions/esri.rest-api.WebMapJson.InitialStateJson",
                    "description": "The initial state at which to open the map."
                },
                "mapFloorInfo": {
                    "$ref": "#/definitions/esri.rest-api.WebMapJson.MapFloorInfoJson",
                    "description": "Contains floor-awareness information for the map."
                },
                "mapRangeInfo": {
                    "$ref": "#/definitions/esri.rest-api.WebMapJson.MapRangeInfoJson",
                    "description": "Map range information."
                },
                "operationalLayers": {
                    "description": "Operational layers contain your business data. They are used to make thematic maps. Usually, a basemap sits beneath your operational layers to give them geographic context. See {@link https://developers.arcgis.com/web-map-specification/objects/operationalLayers/}.",
                    "items": {
                        "$ref": "#/definitions/OperationalLayerJson"
                    },
                    "type": "array"
                },
                "presentation": {
                    "$ref": "#/definitions/esri.rest-api.WebMapJson.PresentationJson",
                    "description": "A presentation consists of multiple slides. Each slide has a different title, extent, basemap, layers etc."
                },
                "spatialReference": {
                    "$ref": "#/definitions/esri.rest-api.SpatialReferenceJson.SpatialReferenceJson",
                    "description": "An object used to specify the spatial reference of the given geometry."
                },
                "tables": {
                    "description": "Specify an array of table objects.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.TableJson.TableJson"
                    },
                    "type": "array"
                },
                "timeZone": {
                    "description": "TODO: Not yet documented in web map spec, but present in 2.29 web maps generated by Maps SDK 4.28.",
                    "type": "string"
                },
                "utilityNetworks": {
                    "description": "An array of utility network objects the map can use to access utility-related functionality, such as tracing and querying associations.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.WebMapJson.UtilityNetworkJson"
                    },
                    "type": "array"
                },
                "version": {
                    "description": "Root element in the web map specifying a string value indicating the web map version. See {@link https://developers.arcgis.com/web-map-specification/objects/version/}.",
                    "type": "string"
                },
                "widgets": {
                    "$ref": "#/definitions/esri.rest-api.WebMapJson.WidgetsJson",
                    "description": "The widgets object contains widgets that should be exposed to the user."
                }
            },
            "required": [
                "baseMap",
                "spatialReference",
                "version"
            ],
            "type": "object"
        },
        "esri.rest-api.WebMapJson.WidgetsJson": {
            "additionalProperties": false,
            "description": "The widgets object contains widgets that should be exposed to the user.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/widgets/} {@link https://developers.arcgis.com/web-scene-specification/objects/widgets/}.",
            "properties": {
                "floorFilter": {
                    "$ref": "#/definitions/esri.rest-api.WebMapJson.FloorFilterJson",
                    "description": "Configurable properties used by the floor filter widget."
                },
                "range": {
                    "$ref": "#/definitions/esri.rest-api.WebMapJson.RangeJson",
                    "description": "Active range."
                },
                "timeSlider": {
                    "$ref": "#/definitions/esri.rest-api.WebMapJson.TimeSliderJson",
                    "description": "Time animation is controlled by a configurable time slider. The time slider widget will act upon all the time aware layers in the map."
                }
            },
            "type": "object"
        },
        "esri.rest-api.WebSceneJson.HeightModelInfoJson": {
            "additionalProperties": false,
            "description": "An object that defines the characteristics of the vertical coordinate system used by the web scene.",
            "properties": {
                "heightModel": {
                    "description": "The surface type or height model of the vertical coordinate system.",
                    "enum": [
                        "ellipsoidal",
                        "gravity_related_height"
                    ],
                    "type": "string"
                },
                "heightUnit": {
                    "description": "The unit of the vertical coordinate system.",
                    "enum": [
                        "150-kilometers",
                        "50-kilometers",
                        "benoit-1895-b-chain",
                        "clarke-foot",
                        "clarke-link",
                        "clarke-yard",
                        "foot",
                        "gold-coast-foot",
                        "indian-1937-yard",
                        "indian-yard",
                        "meter",
                        "sears-1922-truncated-chain",
                        "sears-chain",
                        "sears-foot",
                        "sears-yard",
                        "us-foot"
                    ],
                    "type": "string"
                },
                "vertCRS": {
                    "description": "The datum realization of the vertical coordinate system.",
                    "type": "string"
                }
            },
            "required": [
                "heightModel",
                "heightUnit"
            ],
            "type": "object"
        },
        "esri.rest-api.WebSceneJson.WebSceneJson": {
            "additionalProperties": false,
            "description": "An Esri web scene.\n\nThe web scene is the core element of 3D mapping across the ArcGIS platform. It defines the content, style, environment, and slides of your scene and it can be shared across multiple ArcGIS web and desktop applications. Web scenes can be created, published, and consumed in ArcGIS Pro and ArcGIS Online with the Scene Viewer. The web scene is saved as a JSON document that can be consumed by the ArcGIS API for JavaScript via the WebScene class to easily create compelling 3D applications.\n\nSee {@link https://developers.arcgis.com/web-scene-specification/objects/webscene/}.",
            "properties": {
                "applicationProperties": {
                    "$ref": "#/definitions/esri.rest-api.WebMapJson.ApplicationPropertiesJson",
                    "description": "The applicationProperties object is one of the objects at the top level of the JSON web map JSON schema. This is responsible for containing the viewing and editing properties of the web map. There are specific objects within this object that are applicable only to Collector and are explained within the property descriptions."
                },
                "authoringApp": {
                    "description": "String value indicating the application which authored the webmap.",
                    "type": "string"
                },
                "authoringAppVersion": {
                    "description": "String value indicating the authoring App's version number.",
                    "type": "string"
                },
                "baseMap": {
                    "$ref": "#/definitions/esri.rest-api.BasemapJson.BasemapJson",
                    "description": "The map's basemap layer(s). Layers are drawn based on the index position in the array; The first layer in the array is the first layer drawn, the next layer in the array is drawn on top of it, and so on."
                },
                "clippingArea": {
                    "$ref": "__type",
                    "description": "Defines are to be clipped for display. See {@link https://developers.arcgis.com/web-scene-specification/objects/clippingArea/}."
                },
                "ground": {
                    "$ref": "#/definitions/esri.rest-api.GroundJson.GroundJson",
                    "description": "Ground defines the main surface of the web scene, based on elevation layers."
                },
                "heightModelInfo": {
                    "$ref": "#/definitions/esri.rest-api.WebSceneJson.HeightModelInfoJson",
                    "description": "An object that defines the characteristics of the vertical coordinate system used by the web scene."
                },
                "initialState": {
                    "$ref": "#/definitions/esri.rest-api.WebMapJson.InitialStateJson",
                    "description": "The initial state at which to open the map."
                },
                "mapFloorInfo": {
                    "$ref": "#/definitions/esri.rest-api.WebMapJson.MapFloorInfoJson",
                    "description": "Contains floor-awareness information for the map."
                },
                "mapRangeInfo": {
                    "$ref": "#/definitions/esri.rest-api.WebMapJson.MapRangeInfoJson",
                    "description": "Map range information."
                },
                "operationalLayers": {
                    "description": "Operational layers contain your business data. They are used to make thematic maps. Usually, a basemap sits beneath your operational layers to give them geographic context. See {@link https://developers.arcgis.com/web-map-specification/objects/operationalLayers/}.",
                    "items": {
                        "$ref": "#/definitions/OperationalLayerJson"
                    },
                    "type": "array"
                },
                "presentation": {
                    "$ref": "#/definitions/esri.rest-api.WebMapJson.PresentationJson",
                    "description": "A presentation consists of multiple slides. Each slide has a different title, extent, basemap, layers etc."
                },
                "spatialReference": {
                    "$ref": "#/definitions/esri.rest-api.SpatialReferenceJson.SpatialReferenceJson",
                    "description": "An object used to specify the spatial reference of the given geometry."
                },
                "tables": {
                    "description": "Specify an array of table objects.",
                    "items": {
                        "$ref": "#/definitions/esri.rest-api.TableJson.TableJson"
                    },
                    "type": "array"
                },
                "timeZone": {
                    "description": "TODO: Not yet documented in web map spec, but present in 2.29 web maps generated by Maps SDK 4.28.",
                    "type": "string"
                },
                "version": {
                    "description": "Root element in the web map specifying a string value indicating the web map version. See {@link https://developers.arcgis.com/web-map-specification/objects/version/}.",
                    "type": "string"
                },
                "viewingMode": {
                    "description": "Must be one of the following values: \"global\" | \"local\".",
                    "enum": [
                        "global",
                        "local"
                    ],
                    "type": "string"
                },
                "widgets": {
                    "$ref": "#/definitions/esri.rest-api.WebMapJson.WidgetsJson",
                    "description": "The widgets object contains widgets that should be exposed to the user."
                }
            },
            "required": [
                "baseMap",
                "spatialReference",
                "version"
            ],
            "type": "object"
        },
        "esri.rest-api.WebTileLayerJson.TileInfoJson": {
            "additionalProperties": false,
            "description": "Tile information, returned from the WMTS OGC Web Service. The tileInfo will contain the spatial reference of the layer. TileInfo is the same json representation as the ArcGIS Map/Image service tileInfo except that it may contain a levelValue on the lod objects that should be used instead of the level in the templateUrl.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/tileInfo/} {@link https://developers.arcgis.com/web-scene-specification/objects/tileInfo/}.",
            "properties": {
                "cols": {
                    "description": "Requested tile's column.",
                    "type": "number"
                },
                "compressionQuality": {
                    "description": "Compression quality of the tile.",
                    "type": "number"
                },
                "dpi": {
                    "description": "The dpi of the tiling scheme.",
                    "type": "number"
                },
                "format": {
                    "description": "Image format of the cached tiles.",
                    "type": "string"
                },
                "lods": {
                    "description": "An array of levels of detail that define the tiling scheme. See {@link https://developers.arcgis.com/web-map-specification/objects/lod/} {@link https://developers.arcgis.com/web-scene-specification/objects/lod/}.",
                    "items": {
                        "$ref": "__type"
                    },
                    "type": "array"
                },
                "origin": {
                    "$ref": "#/definitions/esri.rest-api.GeometryJson.PointJson",
                    "description": "The tiling scheme origin."
                },
                "rows": {
                    "description": "Requested tile's row.",
                    "type": "number"
                },
                "spatialReference": {
                    "$ref": "#/definitions/esri.rest-api.SpatialReferenceJson.SpatialReferenceJson",
                    "description": "The spatial reference of the tiling schema."
                }
            },
            "type": "object"
        },
        "esri.rest-api.WebTileLayerJson.WMTSInfoJson": {
            "additionalProperties": false,
            "description": "Object containing layerIdentifier, tileMatrixSet, and URL for WMTSLayer layer types. See {@link https://developers.arcgis.com/web-map-specification/objects/wmtsInfo/}.",
            "properties": {
                "customLayerParameters": {
                    "description": "A sequence of parameters used to append different custom parameters to a WMTS tile request. These parameters are applied to GetTile. The customLayerParameters property takes precedence if customParameters is also present."
                },
                "customParameters": {
                    "description": "A sequence of parameters used to append custom parameters to all WMTS requests. These parameters are applied to GetCapabilities and GetTile. If used with the customLayerParameters property, customParameters will not take precedence."
                },
                "layerIdentifier": {
                    "description": "Identifier for the specific layer used in the WMTS service. Required input by the user.",
                    "type": "string"
                },
                "tileMatrixSet": {
                    "description": "Tiling schema, set by the WMTS service.",
                    "type": "string"
                },
                "url": {
                    "description": "URL to the WMTS web service. Required input by the user.",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "esri.rest-api.WebTileLayerJson.WebTileLayerJson": {
            "additionalProperties": false,
            "description": "A tile layer is a derived from a set of web-accessible tiles which reside on a server. The tiles are accessed by a direct URL request from the web browser. Because the tiles in a tile layer are not available as a service, they must be in a specific format for a web app such as the ArcGIS.com map viewer to display the layer on a map.\n\nSee {@link https://developers.arcgis.com/web-map-specification/objects/tiledLayer/} {@link https://developers.arcgis.com/web-scene-specification/objects/tiledLayer/}.",
            "properties": {
                "blendMode": {
                    "description": "Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer.",
                    "enum": [
                        "average",
                        "color",
                        "color-burn",
                        "color-dodge",
                        "darken",
                        "destination-atop",
                        "destination-in",
                        "destination-out",
                        "destination-over",
                        "difference",
                        "exclusion",
                        "hard-light",
                        "hue",
                        "invert",
                        "lighten",
                        "lighter",
                        "luminosity",
                        "minus",
                        "multiply",
                        "normal",
                        "overlay",
                        "plus",
                        "reflect",
                        "saturation",
                        "screen",
                        "soft-light",
                        "source-atop",
                        "source-in",
                        "source-out",
                        "vivid-light",
                        "xor"
                    ],
                    "type": "string"
                },
                "copyright": {
                    "description": "Attribution to the Web Tile Layer provider. It is displayed in the attribution on the web map. Input required by the user when the layer is added to the web map.",
                    "type": "string"
                },
                "effect": {
                    "$ref": "#/definitions/EffectJson",
                    "description": "Effect provides various filter functions to achieve different visual effects similar to how image filters (photo apps) work."
                },
                "fullExtent": {
                    "$ref": "#/definitions/esri.rest-api.GeometryJson.ExtentJson",
                    "description": "An extent object representing the full extent envelope for the layer."
                },
                "id": {
                    "description": "A unique identifying string for the layer.",
                    "type": "string"
                },
                "isReference": {
                    "description": "This 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).",
                    "type": "boolean"
                },
                "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": {
                    "const": "WebTiledLayer",
                    "description": "The type of layer.",
                    "type": "string"
                },
                "listMode": {
                    "description": "Indicates how the layer should display in the table of contents. The known values are listed below. See {@link support /esri!ListMode}."
                },
                "maxScale": {
                    "description": "A number representing the maximum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400. A value of 0 indicates that the layer will be visible no matter how far you zoom in.",
                    "type": "number"
                },
                "minScale": {
                    "description": "A number representing the minimum scale at which the layer will be visible. The number is the scale's denominator; thus, a value of 2400 represents a scale of 1/2,400.",
                    "type": "number"
                },
                "opacity": {
                    "description": "The degree of transparency applied to the layer on the client side, where\n0 is full transparency and 1 is no transparency.",
                    "type": "number"
                },
                "refreshInterval": {
                    "description": "When the refresh interval is set on a layer, the client must refresh that layer only, not the entire web map. The default value is '0', meaning the no refresh. You can enable a refresh interval on the following types of layers: ArcGIS Server web service, hosted feature layer, hosted tile layer, OGC WMS, OGS WMTS, tile layer, GeoRSS, Living Atlas layers, basemaps (including Bing Maps basemaps), CSV from the web with latitude and longitude fields, and KML when added to ArcGIS Online through the My Content page. See {@link https://doc.arcgis.com/en/arcgis-online/create-maps/set-refresh-interval.htm}.",
                    "type": "number"
                },
                "showLegend": {
                    "description": "Indicates whether to allow map authors the ability to control what layers should be shown in a client's legend.",
                    "type": "boolean"
                },
                "subDomains": {
                    "description": "If sub-domains are detected, they must be specified. The map viewer detects if the Web Tile Layer has sub-domains by parsing the templateURL value for `{subDomain}`.",
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "templateUrl": {
                    "description": "URL to the Web Tile Layer. Input required by the user when the layer is added to the web scene. The template URL contains a parameterized URL. The URL can contain the following template parameters: `{level}`, `{col}`, `{row}`, and `{subDomain}`.",
                    "type": "string"
                },
                "tileInfo": {
                    "$ref": "#/definitions/esri.rest-api.WebTileLayerJson.TileInfoJson",
                    "description": "An extent object representing the full extent envelope for the layer."
                },
                "title": {
                    "description": "A user-friendly title for the layer that can be used in a table of contents. If this is not included, then a title is derived from the service.",
                    "type": "string"
                },
                "type": {
                    "description": "(Deprecated, use layerType instead.) If the layer is referenced through a URL, but is not an ArcGIS web service, then this parameter can be supplied to denote the layer type.",
                    "enum": [
                        "BingMapsAerial",
                        "BingMapsHybrid",
                        "BingMapsRoad",
                        "CSV",
                        "KML",
                        "OpenStreetMap",
                        "WMS",
                        "WebTiledLayer"
                    ],
                    "type": "string"
                },
                "visibility": {
                    "description": "Determines whether the layer is initially visible in the web map.",
                    "type": "boolean"
                },
                "visibilityTimeExtent": {
                    "description": "Represents time extent that will control when a layer should be visible based on webmap's current time. Visibility time extent only affects the layer visibility and will not filter the data.",
                    "items": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "number"
                        }
                    ],
                    "maxItems": 2,
                    "minItems": 2,
                    "type": "array"
                },
                "wmtsInfo": {
                    "$ref": "#/definitions/esri.rest-api.WebTileLayerJson.WMTSInfoJson",
                    "description": "An object representing information about this layer if it is a WMTS layer."
                }
            },
            "required": [
                "layerType"
            ],
            "type": "object"
        },
        "geolocation.accuracy-changed": {
            "description": "Raised when geolocation is activated and the accuracy of geolocation changes.",
            "enum": [
                "geolocation.accuracy-changed"
            ]
        },
        "geolocation.accuracy-changed:input": {
            "$ref": "#/definitions/GeolocateAccuracyChangedEventArgs"
        },
        "geolocation.auto-recenter-started": {
            "description": "Raised when geolocation enters auto recenter mode. For VertiGIS Studio Web Viewer, the event will have no parameter (all maps are always affected).",
            "enum": [
                "geolocation.auto-recenter-started"
            ]
        },
        "geolocation.auto-recenter-started:input": {
            "anyOf": [
                {
                    "$ref": "#/definitions/HasMaps"
                },
                {
                    "type": "null"
                }
            ]
        },
        "geolocation.auto-recenter-stopped": {
            "description": "Raised when geolocation leaves auto recenter mode. For VertiGIS Studio Web Viewer, the event will have no parameter (all maps are always affected).",
            "enum": [
                "geolocation.auto-recenter-stopped"
            ]
        },
        "geolocation.auto-recenter-stopped:input": {
            "anyOf": [
                {
                    "$ref": "#/definitions/HasMaps"
                },
                {
                    "type": "null"
                }
            ]
        },
        "geolocation.position-acquired": {
            "description": "Raised when geolocation is activated and a user position has been received.",
            "enum": [
                "geolocation.position-acquired"
            ]
        },
        "geolocation.position-acquired:input": {
            "$ref": "#/definitions/GeolocationEvent"
        },
        "geolocation.position-changed": {
            "description": "Raised when geolocation is activated and the user's position changes.",
            "enum": [
                "geolocation.position-changed"
            ]
        },
        "geolocation.position-changed:input": {
            "$ref": "#/definitions/@arcgis.core.geometry.Point.Point"
        },
        "geolocation.position-lost": {
            "description": "Raised when geolocation is disabled, either through signal loss or being turned off, and a user position is not available.",
            "enum": [
                "geolocation.position-lost"
            ]
        },
        "geolocation.position-lost:input": {
            "$ref": "#/definitions/GeolocationEvent"
        },
        "geolocation.status-changed": {
            "description": "Raised when geolocation status (enabled or disabled via app permissions) changes.",
            "enum": [
                "geolocation.status-changed"
            ]
        },
        "geolocation.status-changed:input": {
            "$ref": "#/definitions/GeolocationStatusChangedEventArgs"
        },
        "layers.visibility-changed": {
            "description": "Raised when a layer's visibility changes.",
            "enum": [
                "layers.visibility-changed"
            ]
        },
        "layers.visibility-changed:input": {
            "$ref": "#/definitions/LayerEventArgs"
        },
        "map.initialized": {
            "description": "Raised when a map has completed initialization. MapEvent used in Web, MapInitializedEvent used in Mobile.",
            "enum": [
                "map.initialized"
            ]
        },
        "map.initialized:input": {
            "anyOf": [
                {
                    "$ref": "#/definitions/MapEvent"
                },
                {
                    "$ref": "#/definitions/MapInitializedEvent"
                }
            ]
        },
        "map.viewpoint-changed": {
            "description": "Raised when the a map extent is changed. This event is raised in extremely high frequency - for example, every few pixels the map is repositioned during a pan.",
            "enum": [
                "map.viewpoint-changed"
            ]
        },
        "map.viewpoint-changed:input": {
            "$ref": "#/definitions/MapEvent"
        },
        "printing.print-error": {
            "description": "Raised when an error occurs with running a print.",
            "enum": [
                "printing.print-error"
            ]
        },
        "printing.print-error:input": {
            "$ref": "#/definitions/PrintErrorEventArgs"
        },
        "printing.print-finished": {
            "description": "Raised when a print has finished running. Event arguments include the print download URL.",
            "enum": [
                "printing.print-finished"
            ]
        },
        "printing.print-finished:input": {
            "$ref": "#/definitions/PrintFinishedEventArgs"
        },
        "printing.print-progress": {
            "description": "Raised while a print is running to provide updates on its status.",
            "enum": [
                "printing.print-progress"
            ]
        },
        "printing.print-progress:input": {
            "$ref": "#/definitions/PrintProgressEventArgs"
        },
        "printing.print-started": {
            "description": "Raised when a print has started running.",
            "enum": [
                "printing.print-started"
            ]
        },
        "printing.print-started:input": {
            "$ref": "#/definitions/PrintStartedEventArgs"
        },
        "ui.activated": {
            "description": "Raised when a component is activated. The argument is the component ID.",
            "enum": [
                "ui.activated"
            ]
        },
        "ui.activated:input": {
            "type": "string"
        },
        "ui.deactivated": {
            "description": "Raised when a component is deactivated. The argument is the component ID.",
            "enum": [
                "ui.deactivated"
            ]
        },
        "ui.deactivated:input": {
            "type": "string"
        },
        "ui.theme-changed": {
            "description": "Raised when the app's theme is changed. The argument is the theme id.",
            "enum": [
                "ui.theme-changed"
            ]
        },
        "ui.theme-changed:input": {
            "type": "string"
        },
        "viewer-spec.Event": {
            "anyOf": [
                {
                    "$ref": "#/definitions/auth.sign-in-completed"
                },
                {
                    "$ref": "#/definitions/auth.sign-in-failed"
                },
                {
                    "$ref": "#/definitions/auth.sign-in-requested"
                },
                {
                    "$ref": "#/definitions/auth.sign-out-completed"
                },
                {
                    "$ref": "#/definitions/auth.sign-out-requested"
                },
                {
                    "$ref": "#/definitions/auth.token-refreshed"
                },
                {
                    "$ref": "#/definitions/edit.feature-added"
                },
                {
                    "$ref": "#/definitions/edit.feature-deleted"
                },
                {
                    "$ref": "#/definitions/edit.feature-updated"
                },
                {
                    "$ref": "#/definitions/geolocation.accuracy-changed"
                },
                {
                    "$ref": "#/definitions/geolocation.auto-recenter-started"
                },
                {
                    "$ref": "#/definitions/geolocation.auto-recenter-stopped"
                },
                {
                    "$ref": "#/definitions/geolocation.position-acquired"
                },
                {
                    "$ref": "#/definitions/geolocation.position-changed"
                },
                {
                    "$ref": "#/definitions/geolocation.position-lost"
                },
                {
                    "$ref": "#/definitions/geolocation.status-changed"
                },
                {
                    "$ref": "#/definitions/layers.visibility-changed"
                },
                {
                    "$ref": "#/definitions/map.initialized"
                },
                {
                    "$ref": "#/definitions/map.viewpoint-changed"
                },
                {
                    "$ref": "#/definitions/printing.print-error"
                },
                {
                    "$ref": "#/definitions/printing.print-finished"
                },
                {
                    "$ref": "#/definitions/printing.print-progress"
                },
                {
                    "$ref": "#/definitions/printing.print-started"
                },
                {
                    "$ref": "#/definitions/ui.activated"
                },
                {
                    "$ref": "#/definitions/ui.deactivated"
                },
                {
                    "$ref": "#/definitions/ui.theme-changed"
                },
                {
                    "$ref": "#/definitions/workflow.workflow-error"
                },
                {
                    "$ref": "#/definitions/workflow.workflow-finished"
                }
            ]
        },
        "workflow.workflow-error": {
            "description": "Raised when an error occurs while running a workflow.",
            "enum": [
                "workflow.workflow-error"
            ]
        },
        "workflow.workflow-error:input": {
            "$ref": "#/definitions/WorkflowErrorEventArgs"
        },
        "workflow.workflow-finished": {
            "description": "Raised when a workflow finishes running.",
            "enum": [
                "workflow.workflow-finished"
            ]
        },
        "workflow.workflow-finished:input": {
            "$ref": "#/definitions/WorkflowFinishedEventArgs"
        }
    }
}

