Update Definition (Feature Layer)
- URL:https://<layer-url>/updateDefinition
Description
The updateDefinition operation supports updating a definition property in a feature service layer. The result of this operation is a response indicating success or failure with an error code and description.
Request parameters
|
Parameter |
Details |
|---|---|
| updateDefinition |
The service update to the layer definition property for a feature service layer. |
| async |
Support options for asynchronous processing. The default format is false. Values: true | false |
| f |
Description: The response format. The default response format is html. Values: html | json | pjson |
Example usage
https://services.myserver.com/OrgID/ArcGIS/rest/admin/services/example/FeatureServer/0/updateDefinition
Example 1: Enable attachments on a feature service layer
Example 2: Rename feature service layer
Example 3: Update feature service layer renderer
Example 4: Update feature service time info
Example 5: Update other feature service layer properties
Example 6: Update feature service domain and alias
Example 7: Update definition: Rebuild index
Example 8: Update definition: Multiscale geometry
Example 9: Adding keywords and exifInfo attachment fields
Example 1
Below is a sample JSON object for the updateDefinition parameter that demonstrates how to enable attachments on a feature service layer:
{"hasAttachments": true}
Example 2
Below is a sample JSON object for the updateDefinition parameter that demonstrates how to rename a feature service layer:
{"name": "newName"}
Example 3
Below is a sample JSON object for the updateDefinition parameter that demonstrates how to update a feature service layer's renderer. The following request is formatted for readability:
{
"drawingInfo": {
"renderer": {
"type": "uniqueValue",
"field1": "symbolid",
"field2": null,
"field3": null,
"fieldDelimiter": ", ",
"defaultSymbol": null,
"defaultLabel": null,
"uniqueValueInfos": [
{
"symbol": {
"type": "esriSLS",
"style": "esriSLSSolid",
"color": [
0,
0,
0,
255
],
"width": 2
},
"value": "1",
"label": "Active Burnout",
"description": ""
},
{
"symbol": {
"type": "esriSLS",
"style": "esriSLSSolid",
"color": [
169,
0,
230,
255
],
"width": 13
},
"value": "0",
"label": "Aerial Hazard",
"description": ""
},
{
"symbol": {
"type": "esriSLS",
"style": "esriSLSSolid",
"color": [
0,
0,
0,
255
],
"width": 15
},
"value": "3",
"label": "Completed Burnout",
"description": ""
},
{
"symbol": {
"type": "esriSLS",
"style": "esriSLSSolid",
"color": [
0,
0,
0,
255
],
"width": 18
},
"value": "4",
"label": "Completed Dozer Line",
"description": ""
},
{
"symbol": {
"type": "esriSLS",
"style": "esriSLSSolid",
"color": [
56,
168,
0,
255
],
"width": 12
},
"value": "6",
"label": "Escape Route",
"description": ""
},
{
"symbol": {
"type": "esriSLS",
"style": "esriSLSSolid",
"color": [
0,
0,
0,
255
],
"width": 18
},
"value": "7",
"label": "Fire Break Planned or Incomplete",
"description": ""
},
{
"symbol": {
"type": "esriSLS",
"style": "esriSLSSolid",
"color": [
0,
0,
0,
255
],
"width": 28
},
"value": "9",
"label": "Foam Drop",
"description": ""
},
{
"symbol": {
"type": "esriSLS",
"style": "esriSLSSolid",
"color": [
0,
0,
0,
255
],
"width": 16.350000381469727
},
"value": "13",
"label": "Management Action Point (MAP)",
"description": ""
},
{
"symbol": {
"type": "esriSLS",
"style": "esriSLSSolid",
"color": [
0,
0,
0,
255
],
"width": 8
},
"value": "15",
"label": "Planned Secondary Line",
"description": ""
},
{
"symbol": {
"type": "esriSLS",
"style": "esriSLSSolid",
"color": [
0,
0,
0,
255
],
"width": 15
},
"value": "16",
"label": "Proposed Burnout",
"description": ""
},
{
"symbol": {
"type": "esriSLS",
"style": "esriSLSSolid",
"color": [
0,
0,
0,
255
],
"width": 18
},
"value": "18",
"label": "Retardant Drop",
"description": ""
},
{
"symbol": {
"type": "esriSLS",
"style": "esriSLSSolid",
"color": [
255,
0,
0,
255
],
"width": 4
},
"value": "19",
"label": "Uncontrolled Fire Edge",
"description": ""
},
{
"symbol": {
"type": "esriSLS",
"style": "esriSLSSolid",
"color": [
0,
0,
0,
255
],
"width": 33.75000190734863
},
"value": "21",
"label": "Division Break",
"description": ""
}
]
},
"transparency": 0,
"labelingInfo": null
}
}
Example 4
Below is a sample JSON object for the updateDefinition parameter that demonstrates how to update the time information for a feature service layer. The following request is formatted for readability:
{
"timeInfo": {
"startTimeField": "startTime",
"endTimeField": "endTime"
}
}
Example 5
Below is a sample JSON object for the updateDefinition parameter that demonstrates how to update the feature service layer's properties. The following request is formatted for readability:
{
"xssTrustedFields": "field1, field2",
"displayField": "field1",
"description": "",
"copywriteText": "",
"minScale": 0,
"maxScale": 0,
"maxRecordCount": 1000,
"standardMaxRecordCount": 4000,
"tileMaxRecordCount": 4000,
"maxRecordCountFactor": 1,
"types": "",
"templates": "",
"defaultVisibility": true,
"typeIdField": ""
}
Example 6
Below is a sample JSON object for the updateDefinition parameter that demonstrates how to update the feature service's domain and alias. The following request is formatted for readability:
Note:When updating field properties, note that not all of these properties may be updated. For example, the editable property cannot be changed using the updateDefinition operation; however, the name, alias, and domain properties can be updated.
{
"fields": [
{
"name": "SUB_REGION",
"alias": "SUBREGIONTEST",
"domain": {
"type": "codedValue",
"name": "SubRegion123",
"codedValues": [
{
"name": "E N Cen",
"code": "ENC"
},
{
"name": "E S Cen",
"code": "SEC"
},
{
"name": "Mid Atl ",
"code": "MA"
},
{
"name": "Mtn",
"code": "MTN"
},
{
"name": "N Eng",
"code": "NE"
},
{
"name": "Pacific",
"code": "PAC"
},
{
"name": "S Atl ",
"code": "SA"
}
]
},
"defaultValue": null
}
]
}
Example 7
Below is a sample JSON object for the updateDefinition parameter that demonstrates how to update rebuild index for a feature service layer:
{
{
"indexes": [
{
"name": "user_11.bookmarkspatialreference_WFL_Wilson_HydroArc_Shape_sidx",
"fields": "Shape"
}
]
}
}
Example 8
The following examples demonstrate how to optimize the drawing of complex lines and polygons:
- The operation is only supported when the layer metadata has supportsMultiScaleGeometry=true and when async=true.
- The multiscale geometry is supported on polyline and polygon data in any projection, but it can be used only when the output projection is Mercator (102100).
- The Mercator levels of resolution are used when creating the multiscale geometry. Supported generalization levels are [1–17].
- When editing or syncing the data, the multiscale geometries are updated.
- At query time, use the maxAllowedOffset or the quantization offset to determine the generalized geometry for that level. If the shape for the requested level does not exist, use the closest generalized geometry. For instance, if the user requests level 5 geometry and it does not exist, search for the next generalized geometry (6 or higher).
If you pass the levels, the minReductionFactor, or both, build the multiscale geometries for these levels or when the difference between the actual geometry and the generalized geometry is greater than the minReductionFactor. Identify the first level to build based on the extent of the data. Try to find the level where the Mercator cell contains all the data. The minReductionFactor is between [0,1]. The default is 0.2.
Below is a sample JSON object for the updateDefinition parameter that demonstrates how to enable multiscale geometry on a layer:
{"multiScaleGeometryInfo": {"levels": [1, 3, 5, 7, 9]}}
Below is a sample JSON object for the updateDefinition parameter that demonstrates how to disable multiscale geometry:
{"multiScaleGeometryInfo": null}
Example 9
Below is a sample JSON object for the udpateDefinition parameter that demonstrates how to add the keywords and exifInfo attachment fields. This requires attachments already be enabled on the layer. For ArcGIS Enterprise hosted feature services, this was added in at 10.8.1 and requires both fields to be provided in the call.
{
"attachmentProperties": [
{
"name": "keywords",
"isEnabled": true
},
{
"name": "exifInfo",
"isEnabled": true
}
]
}
JSON Response syntax
{
"success": <true|false>,
"error": {
"code": <code>,
"message": "<description>",
"details": [
"<message>"
]
}
}
JSON Response examples
When updateDefinition succeeds:
{
"success": true
}
When updateDefinition fails:
{
"error": {
"code": 400,
"message": "",
"details": [
"Unable to update feature service layer definition."
]
}
}