Boaz Leskes 051beb51a3 Version types EXTERNAL & EXTERNAL_GTE test for version equality in read operation & disallow them in the Update API
Separate version check logic for reads and writes for all version types, which allows different behavior in these cases.
Change `VersionType.EXTERNAL` & `VersionType.EXTERNAL_GTE` to behave the same as `VersionType.INTERNAL` for read operations.
The previous behavior was fit for writes but is useless in reads.

This commit also makes the usage of `EXTERNAL` & `EXTERNAL_GTE` in the update api raise a validation error as it make cause data to
be lost.

Closes #5663 , Closes #5661, Closes #5929
2014-04-25 23:06:12 +02:00

92 lines
2.7 KiB
JSON

{
"update": {
"documentation": "http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/docs-update.html",
"methods": ["POST"],
"url": {
"path": "/{index}/{type}/{id}/_update",
"paths": ["/{index}/{type}/{id}/_update"],
"parts": {
"id": {
"type": "string",
"required": true,
"description": "Document ID"
},
"index": {
"type": "string",
"required": true,
"description": "The name of the index"
},
"type": {
"type": "string",
"required": true,
"description": "The type of the document"
}
},
"params": {
"consistency": {
"type": "enum",
"options": ["one", "quorum", "all"],
"description": "Explicit write consistency setting for the operation"
},
"fields": {
"type": "list",
"description": "A comma-separated list of fields to return in the response"
},
"lang": {
"type": "string",
"description": "The script language (default: mvel)"
},
"parent": {
"type": "string",
"description": "ID of the parent document"
},
"refresh": {
"type": "boolean",
"description": "Refresh the index after performing the operation"
},
"replication": {
"type": "enum",
"options": ["sync", "async"],
"default": "sync",
"description": "Specific replication type"
},
"retry_on_conflict": {
"type": "number",
"description": "Specify how many times should the operation be retried when a conflict occurs (default: 0)"
},
"routing": {
"type": "string",
"description": "Specific routing value"
},
"script": {
"description": "The URL-encoded script definition (instead of using request body)"
},
"timeout": {
"type": "time",
"description": "Explicit operation timeout"
},
"timestamp": {
"type": "time",
"description": "Explicit timestamp for the document"
},
"ttl": {
"type": "duration",
"description": "Expiration time for the document"
},
"version": {
"type": "number",
"description": "Explicit version number for concurrency control"
},
"version_type": {
"type": "enum",
"options": ["internal", "force"],
"description": "Specific version type"
}
}
},
"body": {
"description": "The request definition using either `script` or partial `doc`"
}
}
}