From 7de07df802b607b7791cef59d58b0099765b11f0 Mon Sep 17 00:00:00 2001 From: Simran Date: Tue, 6 Aug 2019 13:44:58 +0200 Subject: [PATCH] Bug fix/fix swagger datatype (#9045) (#9602) * Bug fix/fix swagger datatype (#9045) * remove http so https arangos will work * verify that query parameters are proper swagger data types, fix offending documentation files * return the actual type - not the list of available ones * check formats * there is no uint64 in swagger * Fresh Swagger --- .../Replication/get_api_wal_access_tail.md | 2 +- .../patch_api_view_properties_iresearch.md | 6 +- .../Rest/Views/post_api_view_iresearch.md | 6 +- .../put_api_view_properties_iresearch.md | 6 +- .../system/_admin/aardvark/APP/api-docs.json | 351 ++++++++++++------ utils/generateSwagger.py | 70 +++- 6 files changed, 298 insertions(+), 143 deletions(-) diff --git a/Documentation/DocuBlocks/Rest/Replication/get_api_wal_access_tail.md b/Documentation/DocuBlocks/Rest/Replication/get_api_wal_access_tail.md index 200355f80e..a15de2fe51 100644 --- a/Documentation/DocuBlocks/Rest/Replication/get_api_wal_access_tail.md +++ b/Documentation/DocuBlocks/Rest/Replication/get_api_wal_access_tail.md @@ -20,7 +20,7 @@ Should be set to the value of the *x-arango-replication-lastscanned* header or alternatively 0 on first try. This allows the rocksdb engine to break up large transactions over multiple responses. -@RESTQUERYPARAM{global,bool,optional} +@RESTQUERYPARAM{global,boolean,optional} Whether operations for all databases should be included. When set to *false* only the operations for the current database are included. The value *true* is only valid on the *_system* database. The default is *false*. diff --git a/Documentation/DocuBlocks/Rest/Views/patch_api_view_properties_iresearch.md b/Documentation/DocuBlocks/Rest/Views/patch_api_view_properties_iresearch.md index d39a58d3b8..6a01780d43 100644 --- a/Documentation/DocuBlocks/Rest/Views/patch_api_view_properties_iresearch.md +++ b/Documentation/DocuBlocks/Rest/Views/patch_api_view_properties_iresearch.md @@ -12,7 +12,7 @@ The name of the view. The view properties. If specified, then *properties* should be a JSON object containing the following attributes: -@RESTSTRUCT{cleanupIntervalStep,post_api_view_props,integer,optional,uint64} +@RESTSTRUCT{cleanupIntervalStep,post_api_view_props,integer,optional,int64} Wait at least this many commits between removing unused files in the ArangoSearch data directory (default: 10, to disable use: 0). For the case where the consolidation policies merge segments often (i.e. a lot @@ -29,7 +29,7 @@ _Background:_ However, the files for the released states/snapshots are left on disk, and only removed by "cleanup" operation. -@RESTSTRUCT{commitIntervalMsec,post_api_view_props,integer,optional,uint64} +@RESTSTRUCT{commitIntervalMsec,post_api_view_props,integer,optional,int64} Wait at least this many milliseconds between committing view data store changes and making documents visible to queries (default: 1000, to disable use: 0). @@ -52,7 +52,7 @@ _Background:_ still continue to return a repeatable-read state. -@RESTSTRUCT{consolidationIntervalMsec,post_api_view_props,integer,optional,uint64} +@RESTSTRUCT{consolidationIntervalMsec,post_api_view_props,integer,optional,int64} Wait at least this many milliseconds between applying 'consolidationPolicy' to consolidate view data store and possibly release space on the filesystem (default: 60000, to disable use: 0). diff --git a/Documentation/DocuBlocks/Rest/Views/post_api_view_iresearch.md b/Documentation/DocuBlocks/Rest/Views/post_api_view_iresearch.md index 151150d600..80ffd9998b 100644 --- a/Documentation/DocuBlocks/Rest/Views/post_api_view_iresearch.md +++ b/Documentation/DocuBlocks/Rest/Views/post_api_view_iresearch.md @@ -13,7 +13,7 @@ The type of the view. must be equal to *"arangosearch"* The view properties. If specified, then *properties* should be a JSON object containing the following attributes: -@RESTSTRUCT{cleanupIntervalStep,post_api_view_props,integer,optional,uint64} +@RESTSTRUCT{cleanupIntervalStep,post_api_view_props,integer,optional,int64} Wait at least this many commits between removing unused files in the ArangoSearch data directory (default: 10, to disable use: 0). For the case where the consolidation policies merge segments often (i.e. a lot @@ -30,7 +30,7 @@ _Background:_ However, the files for the released states/snapshots are left on disk, and only removed by "cleanup" operation. -@RESTSTRUCT{commitIntervalMsec,post_api_view_props,integer,optional,uint64} +@RESTSTRUCT{commitIntervalMsec,post_api_view_props,integer,optional,int64} Wait at least this many milliseconds between committing view data store changes and making documents visible to queries (default: 1000, to disable use: 0). @@ -53,7 +53,7 @@ _Background:_ still continue to return a repeatable-read state. -@RESTSTRUCT{consolidationIntervalMsec,post_api_view_props,integer,optional,uint64} +@RESTSTRUCT{consolidationIntervalMsec,post_api_view_props,integer,optional,int64} Wait at least this many milliseconds between applying 'consolidationPolicy' to consolidate view data store and possibly release space on the filesystem (default: 60000, to disable use: 0). diff --git a/Documentation/DocuBlocks/Rest/Views/put_api_view_properties_iresearch.md b/Documentation/DocuBlocks/Rest/Views/put_api_view_properties_iresearch.md index 78581af64e..4dc7c10ef6 100644 --- a/Documentation/DocuBlocks/Rest/Views/put_api_view_properties_iresearch.md +++ b/Documentation/DocuBlocks/Rest/Views/put_api_view_properties_iresearch.md @@ -12,7 +12,7 @@ The name of the view. The view properties. If specified, then *properties* should be a JSON object containing the following attributes: -@RESTSTRUCT{cleanupIntervalStep,post_api_view_props,integer,optional,uint64} +@RESTSTRUCT{cleanupIntervalStep,post_api_view_props,integer,optional,int64} Wait at least this many commits between removing unused files in the ArangoSearch data directory (default: 10, to disable use: 0). For the case where the consolidation policies merge segments often (i.e. a lot @@ -29,7 +29,7 @@ _Background:_ However, the files for the released states/snapshots are left on disk, and only removed by "cleanup" operation. -@RESTSTRUCT{commitIntervalMsec,post_api_view_props,integer,optional,uint64} +@RESTSTRUCT{commitIntervalMsec,post_api_view_props,integer,optional,int64} Wait at least this many milliseconds between committing view data store changes and making documents visible to queries (default: 1000, to disable use: 0). @@ -52,7 +52,7 @@ _Background:_ still continue to return a repeatable-read state. -@RESTSTRUCT{consolidationIntervalMsec,post_api_view_props,integer,optional,uint64} +@RESTSTRUCT{consolidationIntervalMsec,post_api_view_props,integer,optional,int64} Wait at least this many milliseconds between applying 'consolidationPolicy' to consolidate view data store and possibly release space on the filesystem (default: 60000, to disable use: 0). diff --git a/js/apps/system/_admin/aardvark/APP/api-docs.json b/js/apps/system/_admin/aardvark/APP/api-docs.json index 25f0b2bad0..2dfc15e2fb 100644 --- a/js/apps/system/_admin/aardvark/APP/api-docs.json +++ b/js/apps/system/_admin/aardvark/APP/api-docs.json @@ -1,6 +1,31 @@ { "basePath": "/", "definitions": { + "ARANGO_ERROR": { + "description": "An ArangoDB Error code", + "type": "integer" + }, + "ArangoError": { + "description": "the arangodb error type", + "properties": { + "code": { + "description": "the HTTP Status code", + "type": "integer" + }, + "error": { + "description": "boolean flag to indicate whether an error occurred (*true* in this case)", + "type": "boolean" + }, + "errorMessage": { + "description": "a descriptive error message describing what happened, may contain additional information", + "type": "string" + }, + "errorNum": { + "description": "the ARANGO_ERROR code", + "type": "integer" + } + } + }, "HTTP_API_TRAVERSAL": { "properties": { "direction": { @@ -623,7 +648,7 @@ "x-filename": "/arangodb/Documentation/DocuBlocks/Rest/Collections/get_api_collection_figures.md" }, "collection_figures_indexes": { - "description": "", + "description": "\n", "properties": { "count": { "description": "The total number of indexes defined for the collection, including the pre-defined\nindexes (e.g. primary index).\n\n", @@ -726,6 +751,11 @@ "keyOptions": { "$ref": "#/definitions/key_generator_type" }, + "minReplicationFactor": { + "description": "contains how many minimal copies of each shard need to be in sync on different DBServers.\nThe shards will refuse to write, if we have less then these many copies in sync. *Cluster specific attribute.*\n\n", + "format": "", + "type": "integer" + }, "name": { "description": "literal name of this collection\n\n", "type": "string" @@ -781,7 +811,7 @@ "x-filename": "/arangodb/Documentation/DocuBlocks/Rest/Collections/get_api_collection_properties.md" }, "compactionStatus_attributes": { - "description": "", + "description": "\n", "properties": { "message": { "description": "The action that was performed when the compaction was last run for the collection. \nThis information can be used for debugging compaction issues.\n\n", @@ -3925,6 +3955,11 @@ "description": "Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n\n", "type": "boolean" }, + "minReplicationFactor": { + "description": "The minimal replication factor used for every new collection in the graph.\nIf one shard has less than minReplicationFactor copies, we cannot write\nto this shard, but to all others.\n\n", + "format": "", + "type": "integer" + }, "name": { "description": "The name of the graph.\n\n", "type": "string" @@ -4638,6 +4673,11 @@ "post_api_gharial_create_opts": { "description": "a JSON object to define options for creating collections within this graph.\nIt can contain the following attributes:\n\n", "properties": { + "minReplicationFactor": { + "description": "The minimal replication factor used for every new collection in the graph.\nIf one shard has less than minReplicationFactor copies, we cannot write\nto this shard, but to all others.\n\n", + "format": "", + "type": "integer" + }, "numberOfShards": { "description": "The number of shards that is used for every collection within this graph.\nCannot be modified later.\n\n", "format": "", @@ -5085,17 +5125,17 @@ "properties": { "cleanupIntervalStep": { "description": "Wait at least this many commits between removing unused files in the\nArangoSearch data directory (default: 10, to disable use: 0).\nFor the case where the consolidation policies merge segments often (i.e. a lot\nof commit+consolidate), a lower value will cause a lot of disk space to be\nwasted.\nFor the case where the consolidation policies rarely merge segments (i.e. few\ninserts/deletes), a higher value will impact performance without any added\nbenefits.
\n_Background:_\n With every \"commit\" or \"consolidate\" operation a new state of the view\n internal data-structures is created on disk.\n Old states/snapshots are released once there are no longer any users\n remaining.\n However, the files for the released states/snapshots are left on disk, and\n only removed by \"cleanup\" operation.\n\n", - "format": "uint64", + "format": "int64", "type": "integer" }, "commitIntervalMsec": { "description": "Wait at least this many milliseconds between committing view data store\nchanges and making documents visible to queries (default: 1000, to disable\nuse: 0).\nFor the case where there are a lot of inserts/updates, a lower value, until\ncommit, will cause the index not to account for them and memory usage would\ncontinue to grow.\nFor the case where there are a few inserts/updates, a higher value will impact\nperformance and waste disk space for each commit call without any added\nbenefits.
\n_Background:_\n For data retrieval ArangoSearch views follow the concept of\n \"eventually-consistent\", i.e. eventually all the data in ArangoDB will be\n matched by corresponding query expressions.\n The concept of ArangoSearch view \"commit\" operation is introduced to\n control the upper-bound on the time until document addition/removals are\n actually reflected by corresponding query expressions.\n Once a \"commit\" operation is complete all documents added/removed prior to\n the start of the \"commit\" operation will be reflected by queries invoked in\n subsequent ArangoDB transactions, in-progress ArangoDB transactions will\n still continue to return a repeatable-read state.\n\n\n", - "format": "uint64", + "format": "int64", "type": "integer" }, "consolidationIntervalMsec": { "description": "Wait at least this many milliseconds between applying 'consolidationPolicy' to\nconsolidate view data store and possibly release space on the filesystem\n(default: 60000, to disable use: 0).\nFor the case where there are a lot of data modification operations, a higher\nvalue could potentially have the data store consume more space and file handles.\nFor the case where there are a few data modification operations, a lower value\nwill impact performance due to no segment candidates available for\nconsolidation.
\n_Background:_\n For data modification ArangoSearch views follow the concept of a\n \"versioned data store\". Thus old versions of data may be removed once there\n are no longer any users of the old data. The frequency of the cleanup and\n compaction operations are governed by 'consolidationIntervalMsec' and the\n candidates for compaction are selected via 'consolidationPolicy'.\n\n\n", - "format": "uint64", + "format": "int64", "type": "integer" }, "consolidationPolicy": { @@ -6048,7 +6088,7 @@ "description": "statistics of the server\n\n", "properties": { "physicalMemory": { - "description": "available physical memory on the server\n\n\n", + "description": "available physical memory on the server\n\n\n\n", "format": "", "type": "integer" }, @@ -6194,6 +6234,46 @@ "description": "the total number of V8 contexts we may spawn as configured by --javascript.v8-contexts\n\n\n", "format": "", "type": "integer" + }, + "memory": { + "description": "a list of V8 memory / garbage collection watermarks; Refreshed on every garbage collection run;\nPreserves min/max memory used at that time for 10 seconds\n\n", + "format": "v8_isolate_memory", + "items": { + "$ref": "#/definitions/v8_isolate_memory" + }, + "type": "array" + } + }, + "type": "object", + "x-filename": "/arangodb/Documentation/DocuBlocks/Rest/Administration/get_admin_statistics.md" + }, + "v8_isolate_memory": { + "description": "", + "properties": { + "contextId": { + "description": "ID of the context this set of memory statistics is from\n\n", + "format": "", + "type": "integer" + }, + "countOfTimes": { + "description": "how many times was the garbage collection run in these 10 seconds\n\n", + "format": "", + "type": "integer" + }, + "heapMax": { + "description": "High watermark of all garbage collection runs in 10 seconds\n\n", + "format": "", + "type": "integer" + }, + "heapMin": { + "description": "Low watermark of all garbage collection runs in these 10 seconds\n\n\n", + "format": "", + "type": "integer" + }, + "tMax": { + "description": "the timestamp where the 10 seconds interval started\n\n", + "format": "", + "type": "number" } }, "type": "object", @@ -6843,7 +6923,7 @@ }, "/_admin/statistics": { "get": { - "description": "\n\nReturns the statistics information. The returned object contains the\nstatistics figures grouped together according to the description returned by\n*_admin/statistics-description*. For instance, to access a figure *userTime*\nfrom the group *system*, you first select the sub-object describing the\ngroup stored in *system* and in that sub-object the value for *userTime* is\nstored in the attribute of the same name.\n\nIn case of a distribution, the returned object contains the total count in\n*count* and the distribution list in *counts*. The sum (or total) of the\nindividual values is returned in *sum*.\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nStatistics were returned successfully.\n\n- **code**: the HTTP status code - 200 in this case\n- **http**:\n - **requestsTotal**: total number of http requests\n - **requestsPatch**: No of requests using the PATCH-verb\n - **requestsPut**: No of requests using the PUT-verb\n - **requestsOther**: No of requests using the none of the above identified verbs\n - **requestsAsync**: total number of asynchronous http requests\n - **requestsPost**: No of requests using the POST-verb\n - **requestsOptions**: No of requests using the OPTIONS-verb\n - **requestsHead**: No of requests using the HEAD-verb\n - **requestsGet**: No of requests using the GET-verb\n - **requestsDelete**: No of requests using the DELETE-verb\n- **errorMessage**: a descriptive error message\n- **enabled**: *true* if the server has the statistics module enabled. If not, don't expect any values.\n- **system**:\n - **minorPageFaults**: pagefaults\n - **majorPageFaults**: pagefaults\n - **userTime**: the user CPU time used by the server process\n - **systemTime**: the system CPU time used by the server process\n - **numberOfThreads**: the number of threads in the server\n - **virtualSize**: VSS of the process\n - **residentSize**: RSS of process\n - **residentSizePercent**: RSS of process in %\n- **server**:\n - **threads**:\n - **in-progress**: The number of currently busy worker threads\n - **scheduler-threads**: The number of spawned worker threads\n - **queued**: The number of jobs queued up waiting for worker threads becomming available\n - **uptime**: time the server is up and running\n - **physicalMemory**: available physical memory on the server\n - **v8Context**:\n - **available**: the number of currently spawnen V8 contexts\n - **max**: the total number of V8 contexts we may spawn as configured by --javascript.v8-contexts\n - **busy**: the number of currently active V8 contexts\n - **dirty**: the number of contexts that were previously used, and should now be garbage collected before being re-used\n - **free**: the number of V8 contexts that are free to use\n- **client**:\n - **totalTime**:\n - **count**: number of values summarized\n - **sum**: summarized value of all counts\n - **counts** (integer): array containing the values\n - **bytesReceived**:\n - **count**: number of values summarized\n - **sum**: summarized value of all counts\n - **counts** (integer): array containing the values\n - **requestTime**:\n - **count**: number of values summarized\n - **sum**: summarized value of all counts\n - **counts** (integer): array containing the values\n - **connectionTime**:\n - **count**: number of values summarized\n - **sum**: summarized value of all counts\n - **counts** (integer): array containing the values\n - **queueTime**:\n - **count**: number of values summarized\n - **sum**: summarized value of all counts\n - **counts** (integer): array containing the values\n - **httpConnections**: the number of open http connections\n - **bytesSent**:\n - **count**: number of values summarized\n - **sum**: summarized value of all counts\n - **counts** (integer): array containing the values\n - **ioTime**:\n - **count**: number of values summarized\n - **sum**: summarized value of all counts\n - **counts** (integer): array containing the values\n- **error**: boolean flag to indicate whether an error occurred (*false* in this case)\n- **time**: the current server timestamp\n\n\n\n\n**Example:**\n \n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_admin/statistics\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"time\" : 1560455697.7813356, \n  \"enabled\" : true, \n  \"system\" : { \n    \"minorPageFaults\" : 86867, \n    \"majorPageFaults\" : 3, \n    \"userTime\" : 4.29, \n    \"systemTime\" : 1.67, \n    \"numberOfThreads\" : 60, \n    \"residentSize\" : 356364288, \n    \"residentSizePercent\" : 0.005278393821944075, \n    \"virtualSize\" : 1355091968 \n  }, \n  \"client\" : { \n    \"httpConnections\" : 1, \n    \"connectionTime\" : { \n      \"sum\" : 0, \n      \"count\" : 0, \n      \"counts\" : [ \n        0, \n        0, \n        0, \n        0 \n      ] \n    }, \n    \"totalTime\" : { \n      \"sum\" : 7.595198154449463, \n      \"count\" : 34418, \n      \"counts\" : [ \n        34285, \n        132, \n        0, \n        0, \n        0, \n        1, \n        0 \n      ] \n    }, \n    \"requestTime\" : { \n      \"sum\" : 5.770771503448486, \n      \"count\" : 34418, \n      \"counts\" : [ \n        34285, \n        132, \n        0, \n        0, \n        0, \n        1, \n        0 \n      ] \n    }, \n    \"queueTime\" : { \n      \"sum\" : 0, \n      \"count\" : 0, \n      \"counts\" : [ \n        0, \n        0, \n        0, \n        0, \n        0, \n        0, \n        0 \n      ] \n    }, \n    \"ioTime\" : { \n      \"sum\" : 1.8244266510009766, \n      \"count\" : 34418, \n      \"counts\" : [ \n        34418, \n        0, \n        0, \n        0, \n        0, \n        0, \n        0 \n      ] \n    }, \n    \"bytesSent\" : { \n      \"sum\" : 10161476, \n      \"count\" : 34418, \n      \"counts\" : [ \n        247, \n        33787, \n        352, \n        30, \n        2, \n        0 \n      ] \n    }, \n    \"bytesReceived\" : { \n      \"sum\" : 8086858, \n      \"count\" : 34418, \n      \"counts\" : [ \n        33649, \n        769, \n        0, \n        0, \n        0, \n        0 \n      ] \n    } \n  }, \n  \"http\" : { \n    \"requestsTotal\" : 34418, \n    \"requestsAsync\" : 0, \n    \"requestsGet\" : 831, \n    \"requestsHead\" : 0, \n    \"requestsPost\" : 33452, \n    \"requestsPut\" : 33, \n    \"requestsPatch\" : 2, \n    \"requestsDelete\" : 100, \n    \"requestsOptions\" : 0, \n    \"requestsOther\" : 0 \n  }, \n  \"server\" : { \n    \"uptime\" : 17.20784878730774, \n    \"physicalMemory\" : 67513774080, \n    \"v8Context\" : { \n      \"available\" : 2, \n      \"busy\" : 1, \n      \"dirty\" : 0, \n      \"free\" : 1, \n      \"max\" : 16 \n    }, \n    \"threads\" : { \n      \"scheduler-threads\" : 2, \n      \"queued\" : 2, \n      \"directExec\" : 34348 \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n", + "description": "\n\nReturns the statistics information. The returned object contains the\nstatistics figures grouped together according to the description returned by\n*_admin/statistics-description*. For instance, to access a figure *userTime*\nfrom the group *system*, you first select the sub-object describing the\ngroup stored in *system* and in that sub-object the value for *userTime* is\nstored in the attribute of the same name.\n\nIn case of a distribution, the returned object contains the total count in\n*count* and the distribution list in *counts*. The sum (or total) of the\nindividual values is returned in *sum*.\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nStatistics were returned successfully.\n\n- **code**: the HTTP status code - 200 in this case\n- **http**:\n - **requestsTotal**: total number of http requests\n - **requestsPatch**: No of requests using the PATCH-verb\n - **requestsPut**: No of requests using the PUT-verb\n - **requestsOther**: No of requests using the none of the above identified verbs\n - **requestsAsync**: total number of asynchronous http requests\n - **requestsPost**: No of requests using the POST-verb\n - **requestsOptions**: No of requests using the OPTIONS-verb\n - **requestsHead**: No of requests using the HEAD-verb\n - **requestsGet**: No of requests using the GET-verb\n - **requestsDelete**: No of requests using the DELETE-verb\n- **errorMessage**: a descriptive error message\n- **enabled**: *true* if the server has the statistics module enabled. If not, don't expect any values.\n- **system**:\n - **minorPageFaults**: pagefaults\n - **majorPageFaults**: pagefaults\n - **userTime**: the user CPU time used by the server process\n - **systemTime**: the system CPU time used by the server process\n - **numberOfThreads**: the number of threads in the server\n - **virtualSize**: VSS of the process\n - **residentSize**: RSS of process\n - **residentSizePercent**: RSS of process in %\n- **server**:\n - **threads**:\n - **in-progress**: The number of currently busy worker threads\n - **scheduler-threads**: The number of spawned worker threads\n - **queued**: The number of jobs queued up waiting for worker threads becomming available\n - **uptime**: time the server is up and running\n - **physicalMemory**: available physical memory on the server\n - **v8Context**:\n - **available**: the number of currently spawnen V8 contexts\n - **busy**: the number of currently active V8 contexts\n - **max**: the total number of V8 contexts we may spawn as configured by --javascript.v8-contexts\n - **free**: the number of V8 contexts that are free to use\n - **dirty**: the number of contexts that were previously used, and should now be garbage collected before being re-used\n - **memory**: a list of V8 memory / garbage collection watermarks; Refreshed on every garbage collection run;\n Preserves min/max memory used at that time for 10 seconds\n - **heapMin**: Low watermark of all garbage collection runs in these 10 seconds\n - **tMax**: the timestamp where the 10 seconds interval started\n - **contextId**: ID of the context this set of memory statistics is from\n - **countOfTimes**: how many times was the garbage collection run in these 10 seconds\n - **heapMax**: High watermark of all garbage collection runs in 10 seconds\n- **client**:\n - **totalTime**:\n - **count**: number of values summarized\n - **sum**: summarized value of all counts\n - **counts** (integer): array containing the values\n - **bytesReceived**:\n - **count**: number of values summarized\n - **sum**: summarized value of all counts\n - **counts** (integer): array containing the values\n - **requestTime**:\n - **count**: number of values summarized\n - **sum**: summarized value of all counts\n - **counts** (integer): array containing the values\n - **connectionTime**:\n - **count**: number of values summarized\n - **sum**: summarized value of all counts\n - **counts** (integer): array containing the values\n - **queueTime**:\n - **count**: number of values summarized\n - **sum**: summarized value of all counts\n - **counts** (integer): array containing the values\n - **httpConnections**: the number of open http connections\n - **bytesSent**:\n - **count**: number of values summarized\n - **sum**: summarized value of all counts\n - **counts** (integer): array containing the values\n - **ioTime**:\n - **count**: number of values summarized\n - **sum**: summarized value of all counts\n - **counts** (integer): array containing the values\n- **error**: boolean flag to indicate whether an error occurred (*false* in this case)\n- **time**: the current server timestamp\n\n\n\n\n**Example:**\n \n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_admin/statistics\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"time\" : 1564484131.684694, \n  \"enabled\" : true, \n  \"system\" : { \n    \"minorPageFaults\" : 93568, \n    \"majorPageFaults\" : 0, \n    \"userTime\" : 4.82, \n    \"systemTime\" : 1.64, \n    \"numberOfThreads\" : 57, \n    \"residentSize\" : 295755776, \n    \"residentSizePercent\" : 0.004380672863974544, \n    \"virtualSize\" : 1376043008 \n  }, \n  \"client\" : { \n    \"httpConnections\" : 1, \n    \"connectionTime\" : { \n      \"sum\" : 0, \n      \"count\" : 0, \n      \"counts\" : [ \n        0, \n        0, \n        0, \n        0 \n      ] \n    }, \n    \"totalTime\" : { \n      \"sum\" : 5.083767652511597, \n      \"count\" : 34418, \n      \"counts\" : [ \n        34412, \n        2, \n        3, \n        0, \n        0, \n        1, \n        0 \n      ] \n    }, \n    \"requestTime\" : { \n      \"sum\" : 3.5935349464416504, \n      \"count\" : 34418, \n      \"counts\" : [ \n        34412, \n        2, \n        3, \n        0, \n        0, \n        1, \n        0 \n      ] \n    }, \n    \"queueTime\" : { \n      \"sum\" : 0.03979301452636719, \n      \"count\" : 34418, \n      \"counts\" : [ \n        34418, \n        0, \n        0, \n        0, \n        0, \n        0, \n        0 \n      ] \n    }, \n    \"ioTime\" : { \n      \"sum\" : 1.450439691543579, \n      \"count\" : 34418, \n      \"counts\" : [ \n        34418, \n        0, \n        0, \n        0, \n        0, \n        0, \n        0 \n      ] \n    }, \n    \"bytesSent\" : { \n      \"sum\" : 10150966, \n      \"count\" : 34418, \n      \"counts\" : [ \n        247, \n        33788, \n        351, \n        30, \n        2, \n        0 \n      ] \n    }, \n    \"bytesReceived\" : { \n      \"sum\" : 8086852, \n      \"count\" : 34418, \n      \"counts\" : [ \n        33651, \n        767, \n        0, \n        0, \n        0, \n        0 \n      ] \n    } \n  }, \n  \"http\" : { \n    \"requestsTotal\" : 34418, \n    \"requestsAsync\" : 0, \n    \"requestsGet\" : 831, \n    \"requestsHead\" : 0, \n    \"requestsPost\" : 33452, \n    \"requestsPut\" : 33, \n    \"requestsPatch\" : 2, \n    \"requestsDelete\" : 100, \n    \"requestsOptions\" : 0, \n    \"requestsOther\" : 0 \n  }, \n  \"server\" : { \n    \"uptime\" : 13.431735277175903, \n    \"physicalMemory\" : 67513778176, \n    \"v8Context\" : { \n      \"available\" : 1, \n      \"busy\" : 1, \n      \"dirty\" : 0, \n      \"free\" : 0, \n      \"max\" : 16, \n      \"memory\" : [ \n        { \n          \"contextId\" : 0, \n          \"tMax\" : 1564484119.0071423, \n          \"countOfTimes\" : 8, \n          \"heapMax\" : 14658320, \n          \"heapMin\" : 0 \n        } \n      ] \n    }, \n    \"threads\" : { \n      \"scheduler-threads\" : 3, \n      \"blocked\" : 0, \n      \"queued\" : 3, \n      \"in-progress\" : 3, \n      \"direct-exec\" : 34332 \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n", "operationId": "getStatistics", "parameters": [], "produces": [ @@ -7019,7 +7099,7 @@ }, "/_admin/wal/transactions": { "get": { - "description": "\n\nReturns information about the currently running transactions. The result\nis a JSON object with the following attributes:\n- *runningTransactions*: number of currently running transactions\n- *minLastCollected*: minimum id of the last collected logfile (at the\n start of each running transaction). This is *null* if no transaction is\n running.\n- *minLastSealed*: minimum id of the last sealed logfile (at the\n start of each running transaction). This is *null* if no transaction is\n running.\n\n\n\n\n**Example:**\n \n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_admin/wal/transactions\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"runningTransactions\" : 3, \n  \"minLastCollected\" : 50, \n  \"minLastSealed\" : null \n}\n
\n\n\n\n\n", + "description": "\n\nReturns information about the currently running transactions. The result\nis a JSON object with the following attributes:\n- *runningTransactions*: number of currently running transactions\n- *minLastCollected*: minimum id of the last collected logfile (at the\n start of each running transaction). This is *null* if no transaction is\n running.\n- *minLastSealed*: minimum id of the last sealed logfile (at the\n start of each running transaction). This is *null* if no transaction is\n running.\n\n\n\n\n**Example:**\n \n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_admin/wal/transactions\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"runningTransactions\" : 0, \n  \"minLastCollected\" : null, \n  \"minLastSealed\" : null \n}\n
\n\n\n\n\n", "operationId": "RestWalHandler:transactions", "parameters": [], "responses": { @@ -7041,7 +7121,7 @@ }, "/_api/analyzer": { "get": { - "description": "\n\nRetrieves a an array of all analyzer definitions.\nThe resulting array contains objects with the following attributes:\n- *name*: the analyzer name\n- *type*: the analyzer type\n- *properties*: the properties used to configure the specified type\n- *features*: the set of features to set on the analyzer generated fields\n\n\n\n\n**Example:**\n Retrieve all analyzer definitions:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/analyzer\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"result\" : [ \n    { \n      \"name\" : \"text_zh\", \n      \"type\" : \"text\", \n      \"properties\" : { \n        \"locale\" : \"zh.UTF-8\", \n        \"stopwords\" : [ ] \n      }, \n      \"features\" : [ \n        \"position\", \n        \"norm\", \n        \"frequency\" \n      ] \n    }, \n    { \n      \"name\" : \"text_sv\", \n      \"type\" : \"text\", \n      \"properties\" : { \n        \"locale\" : \"sv.UTF-8\", \n        \"stopwords\" : [ ] \n      }, \n      \"features\" : [ \n        \"position\", \n        \"norm\", \n        \"frequency\" \n      ] \n    }, \n    { \n      \"name\" : \"text_pt\", \n      \"type\" : \"text\", \n      \"properties\" : { \n        \"locale\" : \"pt.UTF-8\", \n        \"stopwords\" : [ ] \n      }, \n      \"features\" : [ \n        \"position\", \n        \"norm\", \n        \"frequency\" \n      ] \n    }, \n    { \n      \"name\" : \"text_no\", \n      \"type\" : \"text\", \n      \"properties\" : { \n        \"locale\" : \"no.UTF-8\", \n        \"stopwords\" : [ ] \n      }, \n      \"features\" : [ \n        \"position\", \n        \"norm\", \n        \"frequency\" \n      ] \n    }, \n    { \n      \"name\" : \"text_ru\", \n      \"type\" : \"text\", \n      \"properties\" : { \n        \"locale\" : \"ru.UTF-8\", \n        \"stopwords\" : [ ] \n      }, \n      \"features\" : [ \n        \"position\", \n        \"norm\", \n        \"frequency\" \n      ] \n    }, \n    { \n      \"name\" : \"identity\", \n      \"type\" : \"identity\", \n      \"properties\" : null, \n      \"features\" : [ \n        \"norm\", \n        \"frequency\" \n      ] \n    }, \n    { \n      \"name\" : \"text_fi\", \n      \"type\" : \"text\", \n      \"properties\" : { \n        \"locale\" : \"fi.UTF-8\", \n        \"stopwords\" : [ ] \n      }, \n      \"features\" : [ \n        \"position\", \n        \"norm\", \n        \"frequency\" \n      ] \n    }, \n    { \n      \"name\" : \"text_en\", \n      \"type\" : \"text\", \n      \"properties\" : { \n        \"locale\" : \"en.UTF-8\", \n        \"stopwords\" : [ ] \n      }, \n      \"features\" : [ \n        \"position\", \n        \"norm\", \n        \"frequency\" \n      ] \n    }, \n    { \n      \"name\" : \"text_nl\", \n      \"type\" : \"text\", \n      \"properties\" : { \n        \"locale\" : \"nl.UTF-8\", \n        \"stopwords\" : [ ] \n      }, \n      \"features\" : [ \n        \"position\", \n        \"norm\", \n        \"frequency\" \n      ] \n    }, \n    { \n      \"name\" : \"text_it\", \n      \"type\" : \"text\", \n      \"properties\" : { \n        \"locale\" : \"it.UTF-8\", \n        \"stopwords\" : [ ] \n      }, \n      \"features\" : [ \n        \"position\", \n        \"norm\", \n        \"frequency\" \n      ] \n    }, \n    { \n      \"name\" : \"text_fr\", \n      \"type\" : \"text\", \n      \"properties\" : { \n        \"locale\" : \"fr.UTF-8\", \n        \"stopwords\" : [ ] \n      }, \n      \"features\" : [ \n        \"position\", \n        \"norm\", \n        \"frequency\" \n      ] \n    }, \n    { \n      \"name\" : \"text_de\", \n      \"type\" : \"text\", \n      \"properties\" : { \n        \"locale\" : \"de.UTF-8\", \n        \"stopwords\" : [ ] \n      }, \n      \"features\" : [ \n        \"position\", \n        \"norm\", \n        \"frequency\" \n      ] \n    }, \n    { \n      \"name\" : \"text_es\", \n      \"type\" : \"text\", \n      \"properties\" : { \n        \"locale\" : \"es.UTF-8\", \n        \"stopwords\" : [ ] \n      }, \n      \"features\" : [ \n        \"position\", \n        \"norm\", \n        \"frequency\" \n      ] \n    } \n  ] \n}\n
\n\n\n\n\n", + "description": "\n\nRetrieves a an array of all analyzer definitions.\nThe resulting array contains objects with the following attributes:\n- *name*: the analyzer name\n- *type*: the analyzer type\n- *properties*: the properties used to configure the specified type\n- *features*: the set of features to set on the analyzer generated fields\n\n\n\n\n**Example:**\n Retrieve all analyzer definitions:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/analyzer\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"result\" : [ \n    { \n      \"name\" : \"text_ru\", \n      \"type\" : \"text\", \n      \"properties\" : { \n        \"locale\" : \"ru.utf-8\", \n        \"case\" : \"lower\", \n        \"stopwords\" : [ ], \n        \"accent\" : false, \n        \"stemming\" : true \n      }, \n      \"features\" : [ \n        \"position\", \n        \"norm\", \n        \"frequency\" \n      ] \n    }, \n    { \n      \"name\" : \"text_no\", \n      \"type\" : \"text\", \n      \"properties\" : { \n        \"locale\" : \"no.utf-8\", \n        \"case\" : \"lower\", \n        \"stopwords\" : [ ], \n        \"accent\" : false, \n        \"stemming\" : true \n      }, \n      \"features\" : [ \n        \"position\", \n        \"norm\", \n        \"frequency\" \n      ] \n    }, \n    { \n      \"name\" : \"text_nl\", \n      \"type\" : \"text\", \n      \"properties\" : { \n        \"locale\" : \"nl.utf-8\", \n        \"case\" : \"lower\", \n        \"stopwords\" : [ ], \n        \"accent\" : false, \n        \"stemming\" : true \n      }, \n      \"features\" : [ \n        \"position\", \n        \"norm\", \n        \"frequency\" \n      ] \n    }, \n    { \n      \"name\" : \"text_zh\", \n      \"type\" : \"text\", \n      \"properties\" : { \n        \"locale\" : \"zh.utf-8\", \n        \"case\" : \"lower\", \n        \"stopwords\" : [ ], \n        \"accent\" : false, \n        \"stemming\" : true \n      }, \n      \"features\" : [ \n        \"position\", \n        \"norm\", \n        \"frequency\" \n      ] \n    }, \n    { \n      \"name\" : \"text_sv\", \n      \"type\" : \"text\", \n      \"properties\" : { \n        \"locale\" : \"sv.utf-8\", \n        \"case\" : \"lower\", \n        \"stopwords\" : [ ], \n        \"accent\" : false, \n        \"stemming\" : true \n      }, \n      \"features\" : [ \n        \"position\", \n        \"norm\", \n        \"frequency\" \n      ] \n    }, \n    { \n      \"name\" : \"text_it\", \n      \"type\" : \"text\", \n      \"properties\" : { \n        \"locale\" : \"it.utf-8\", \n        \"case\" : \"lower\", \n        \"stopwords\" : [ ], \n        \"accent\" : false, \n        \"stemming\" : true \n      }, \n      \"features\" : [ \n        \"position\", \n        \"norm\", \n        \"frequency\" \n      ] \n    }, \n    { \n      \"name\" : \"text_de\", \n      \"type\" : \"text\", \n      \"properties\" : { \n        \"locale\" : \"de.utf-8\", \n        \"case\" : \"lower\", \n        \"stopwords\" : [ ], \n        \"accent\" : false, \n        \"stemming\" : true \n      }, \n      \"features\" : [ \n        \"position\", \n        \"norm\", \n        \"frequency\" \n      ] \n    }, \n    { \n      \"name\" : \"text_en\", \n      \"type\" : \"text\", \n      \"properties\" : { \n        \"locale\" : \"en.utf-8\", \n        \"case\" : \"lower\", \n        \"stopwords\" : [ ], \n        \"accent\" : false, \n        \"stemming\" : true \n      }, \n      \"features\" : [ \n        \"position\", \n        \"norm\", \n        \"frequency\" \n      ] \n    }, \n    { \n      \"name\" : \"text_pt\", \n      \"type\" : \"text\", \n      \"properties\" : { \n        \"locale\" : \"pt.utf-8\", \n        \"case\" : \"lower\", \n        \"stopwords\" : [ ], \n        \"accent\" : false, \n        \"stemming\" : true \n      }, \n      \"features\" : [ \n        \"position\", \n        \"norm\", \n        \"frequency\" \n      ] \n    }, \n    { \n      \"name\" : \"identity\", \n      \"type\" : \"identity\", \n      \"properties\" : { \n      }, \n      \"features\" : [ \n        \"norm\", \n        \"frequency\" \n      ] \n    }, \n    { \n      \"name\" : \"text_fr\", \n      \"type\" : \"text\", \n      \"properties\" : { \n        \"locale\" : \"fr.utf-8\", \n        \"case\" : \"lower\", \n        \"stopwords\" : [ ], \n        \"accent\" : false, \n        \"stemming\" : true \n      }, \n      \"features\" : [ \n        \"position\", \n        \"norm\", \n        \"frequency\" \n      ] \n    }, \n    { \n      \"name\" : \"text_es\", \n      \"type\" : \"text\", \n      \"properties\" : { \n        \"locale\" : \"es.utf-8\", \n        \"case\" : \"lower\", \n        \"stopwords\" : [ ], \n        \"accent\" : false, \n        \"stemming\" : true \n      }, \n      \"features\" : [ \n        \"position\", \n        \"norm\", \n        \"frequency\" \n      ] \n    }, \n    { \n      \"name\" : \"text_fi\", \n      \"type\" : \"text\", \n      \"properties\" : { \n        \"locale\" : \"fi.utf-8\", \n        \"case\" : \"lower\", \n        \"stopwords\" : [ ], \n        \"accent\" : false, \n        \"stemming\" : true \n      }, \n      \"features\" : [ \n        \"position\", \n        \"norm\", \n        \"frequency\" \n      ] \n    } \n  ] \n}\n
\n\n\n\n\n", "operationId": "RestAnalyzerHandler:List", "parameters": [], "responses": { @@ -7058,7 +7138,7 @@ "x-hints": "" }, "post": { - "description": "\n**A JSON object with these properties is required:**\n\n - **features** (string): The set of features to set on the analyzer generated fields.\n The default value is an empty array.\n - **type**: The analyzer type.\n - **name**: The analyzer name.\n - **properties**: The properties used to configure the specified type.\n Value may be a string, an object or null.\n The default value is *null*.\n\n\n\n\nCreates a new analyzer based on the provided configuration.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/analyzer <<EOF\n{ \n  \"name\" : \"testAnalyzer\", \n  \"type\" : \"identity\" \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"name\" : \"_system::testAnalyzer\", \n  \"type\" : \"identity\", \n  \"properties\" : null, \n  \"features\" : [ ] \n}\n
\n\n\n\n\n", + "description": "\n**A JSON object with these properties is required:**\n\n - **features** (string): The set of features to set on the analyzer generated fields.\n The default value is an empty array.\n - **type**: The analyzer type.\n - **name**: The analyzer name.\n - **properties**: The properties used to configure the specified type.\n Value may be a string, an object or null.\n The default value is *null*.\n\n\n\n\nCreates a new analyzer based on the provided configuration.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/analyzer <<EOF\n{ \n  \"name\" : \"testAnalyzer\", \n  \"type\" : \"identity\" \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"name\" : \"_system::testAnalyzer\", \n  \"type\" : \"identity\", \n  \"properties\" : { \n  }, \n  \"features\" : [ ] \n}\n
\n\n\n\n\n", "operationId": "RestAnalyzerHandler:Create", "parameters": [ { @@ -7141,7 +7221,7 @@ "x-hints": "" }, "get": { - "description": "\n\nRetrieves the full definition for the specified analyzer name.\nThe resulting object contains the following attributes:\n- *name*: the analyzer name\n- *type*: the analyzer type\n- *properties*: the properties used to configure the specified type\n- *features*: the set of features to set on the analyzer generated fields\n\n\n\n\n**Example:**\n Retrieve an analyzer definition:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/analyzer/testAnalyzer\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"type\" : \"identity\", \n  \"properties\" : \"test properties\", \n  \"features\" : [ ], \n  \"name\" : \"_system::testAnalyzer\" \n}\n
\n\n\n\n\n\n", + "description": "\n\nRetrieves the full definition for the specified analyzer name.\nThe resulting object contains the following attributes:\n- *name*: the analyzer name\n- *type*: the analyzer type\n- *properties*: the properties used to configure the specified type\n- *features*: the set of features to set on the analyzer generated fields\n\n\n\n\n**Example:**\n Retrieve an analyzer definition:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/analyzer/testAnalyzer\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"type\" : \"identity\", \n  \"properties\" : { \n  }, \n  \"features\" : [ ], \n  \"name\" : \"_system::testAnalyzer\" \n}\n
\n\n\n\n\n\n", "operationId": "RestAnalyzerHandler:GetDefinition", "parameters": [ { @@ -7317,7 +7397,7 @@ }, "/_api/batch": { "post": { - "description": "\n\nExecutes a batch request. A batch request can contain any number of\nother requests that can be sent to ArangoDB in isolation. The benefit of\nusing batch requests is that batching requests requires less client/server\nroundtrips than when sending isolated requests.\n\nAll parts of a batch request are executed serially on the server. The\nserver will return the results of all parts in a single response when all\nparts are finished.\n\nTechnically, a batch request is a multipart HTTP request, with\ncontent-type `multipart/form-data`. A batch request consists of an\nenvelope and the individual batch part actions. Batch part actions\nare \"regular\" HTTP requests, including full header and an optional body.\nMultiple batch parts are separated by a boundary identifier. The\nboundary identifier is declared in the batch envelope. The MIME content-type\nfor each individual batch part must be `application/x-arango-batchpart`.\n\nPlease note that when constructing the individual batch parts, you must\nuse CRLF (`\\\\\\r\\\\\\n`) as the line terminator as in regular HTTP messages.\n\nThe response sent by the server will be an `HTTP 200` response, with an\noptional error summary header `x-arango-errors`. This header contains the\nnumber of batch part operations that failed with an HTTP error code of at\nleast 400. This header is only present in the response if the number of\nerrors is greater than zero.\n\nThe response sent by the server is a multipart response, too. It contains\nthe individual HTTP responses for all batch parts, including the full HTTP\nresult header (with status code and other potential headers) and an\noptional result body. The individual batch parts in the result are\nseperated using the same boundary value as specified in the request.\n\nThe order of batch parts in the response will be the same as in the\noriginal client request. Client can additionally use the `Content-Id`\nMIME header in a batch part to define an individual id for each batch part.\nThe server will return this id is the batch part responses, too.\n\n\n\n\n**Example:**\n Sending a batch request with five batch parts:\n\n- GET /_api/version\n\n- DELETE /_api/collection/products\n\n- POST /_api/collection/products\n\n- GET /_api/collection/products/figures\n\n- DELETE /_api/collection/products\n\nThe boundary (`SomeBoundaryValue`) is passed to the server in the HTTP\n`Content-Type` HTTP header.\n*Please note the reply is not displayed all accurate.*\n\n
shell> curl -X POST --header 'Content-Type: multipart/form-data; boundary=SomeBoundaryValue' --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/batch <<EOF\n--SomeBoundaryValue\r\nContent-Type: application/x-arango-batchpart\r\nContent-Id: myId1\r\n\r\nGET /_api/version HTTP/1.1\r\n\r\n--SomeBoundaryValue\r\nContent-Type: application/x-arango-batchpart\r\nContent-Id: myId2\r\n\r\nDELETE /_api/collection/products HTTP/1.1\r\n\r\n--SomeBoundaryValue\r\nContent-Type: application/x-arango-batchpart\r\nContent-Id: someId\r\n\r\nPOST /_api/collection/products HTTP/1.1\r\n\r\n{\"name\": \"products\" }\r\n\r\n--SomeBoundaryValue\r\nContent-Type: application/x-arango-batchpart\r\nContent-Id: nextId\r\n\r\nGET /_api/collection/products/figures HTTP/1.1\r\n\r\n--SomeBoundaryValue\r\nContent-Type: application/x-arango-batchpart\r\nContent-Id: otherId\r\n\r\nDELETE /_api/collection/products HTTP/1.1\r\n--SomeBoundaryValue--\r\n\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json\nx-arango-errors: 1\nx-content-type-options: nosniff\n\n\"--SomeBoundaryValue\\r\\nContent-Type: application/x-arango-batchpart\\r\\nContent-Id: myId1\\r\\n\\r\\nHTTP/1.1 200 OK\\r\\nServer: \\r\\nConnection: \\r\\nContent-Type: application/json; charset=utf-8\\r\\nContent-Length: 64\\r\\n\\r\\n{\\\"server\\\":\\\"arango\\\",\\\"license\\\":\\\"community\\\",\\\"version\\\":\\\"3.5.0-rc.4\\\"}\\r\\n--SomeBoundaryValue\\r\\nContent-Type: application/x-arango-batchpart\\r\\nContent-Id: myId2\\r\\n\\r\\nHTTP/1.1 404 Not Found\\r\\nServer: \\r\\nConnection: \\r\\nContent-Type: application/json; charset=utf-8\\r\\nContent-Length: 87\\r\\n\\r\\n{\\\"code\\\":404,\\\"error\\\":true,\\\"errorMessage\\\":\\\"collection or view not found\\\",\\\"errorNum\\\":1203}\\r\\n--SomeBoundaryValue\\r\\nContent-Type: application/x-arango-batchpart\\r\\nContent-Id: someId\\r\\n\\r\\nHTTP/1.1 200 OK\\r\\nServer: \\r\\nConnection: \\r\\nContent-Type: application/json; charset=utf-8\\r\\nContent-Length: 328\\r\\n\\r\\n{\\\"error\\\":false,\\\"code\\\":200,\\\"waitForSync\\\":false,\\\"type\\\":2,\\\"status\\\":3,\\\"journalSize\\\":33554432,\\\"keyOptions\\\":{\\\"allowUserKeys\\\":true,\\\"type\\\":\\\"traditional\\\",\\\"lastValue\\\":0},\\\"globallyUniqueId\\\":\\\"h82E80CF18F1A/103173\\\",\\\"statusString\\\":\\\"loaded\\\",\\\"id\\\":\\\"103173\\\",\\\"name\\\":\\\"products\\\",\\\"doCompact\\\":true,\\\"isSystem\\\":false,\\\"indexBuckets\\\":8,\\\"isVolatile\\\":false}\\r\\n--SomeBoundaryValue\\r\\nContent-Type: application/x-arango-batchpart\\r\\nContent-Id: nextId\\r\\n\\r\\nHTTP/1.1 200 OK\\r\\nServer: \\r\\nLocation: /_api/collection/products/figures\\r\\nConnection: \\r\\nContent-Type: application/json; charset=utf-8\\r\\nContent-Length: 835\\r\\n\\r\\n{\\\"error\\\":false,\\\"code\\\":200,\\\"type\\\":2,\\\"status\\\":3,\\\"journalSize\\\":33554432,\\\"isVolatile\\\":false,\\\"name\\\":\\\"products\\\",\\\"doCompact\\\":true,\\\"isSystem\\\":false,\\\"count\\\":0,\\\"waitForSync\\\":false,\\\"figures\\\":{\\\"indexes\\\":{\\\"count\\\":1,\\\"size\\\":32128},\\\"documentReferences\\\":0,\\\"waitingFor\\\":\\\"-\\\",\\\"alive\\\":{\\\"count\\\":0,\\\"size\\\":0},\\\"dead\\\":{\\\"count\\\":0,\\\"size\\\":0,\\\"deletion\\\":0},\\\"compactionStatus\\\":{\\\"message\\\":\\\"compaction not yet started\\\",\\\"time\\\":\\\"2019-06-13T19:54:57Z\\\",\\\"count\\\":0,\\\"filesCombined\\\":0,\\\"bytesRead\\\":0,\\\"bytesWritten\\\":0},\\\"datafiles\\\":{\\\"count\\\":0,\\\"fileSize\\\":0},\\\"journals\\\":{\\\"count\\\":0,\\\"fileSize\\\":0},\\\"compactors\\\":{\\\"count\\\":0,\\\"fileSize\\\":0},\\\"revisions\\\":{\\\"count\\\":0,\\\"size\\\":48192},\\\"lastTick\\\":0,\\\"uncollectedLogfileEntries\\\":0},\\\"keyOptions\\\":{\\\"allowUserKeys\\\":true,\\\"type\\\":\\\"traditional\\\",\\\"lastValue\\\":0},\\\"globallyUniqueId\\\":\\\"h82E80CF18F1A/103173\\\",\\\"statusString\\\":\\\"loaded\\\",\\\"id\\\":\\\"103173\\\",\\\"indexBuckets\\\":8}\\r\\n--SomeBoundaryValue\\r\\nContent-Type: application/x-arango-batchpart\\r\\nContent-Id: otherId\\r\\n\\r\\nHTTP/1.1 200 OK\\r\\nServer: \\r\\nConnection: \\r\\nContent-Type: application/json; charset=utf-8\\r\\nContent-Length: 40\\r\\n\\r\\n{\\\"error\\\":false,\\\"code\\\":200,\\\"id\\\":\\\"103173\\\"}\\r\\n--SomeBoundaryValue--\"\n
\n\n\n\n\n**Example:**\n Sending a batch request, setting the boundary implicitly (the server will\nin this case try to find the boundary at the beginning of the request body).\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/batch <<EOF\n--SomeBoundaryValue\r\nContent-Type: application/x-arango-batchpart\r\n\r\nDELETE /_api/collection/notexisting1 HTTP/1.1\r\n\r\n--SomeBoundaryValue\r\nContent-Type: application/x-arango-batchpart\r\n\r\nDELETE _api/collection/notexisting2 HTTP/1.1\r\n--SomeBoundaryValue--\r\n\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json\nx-arango-errors: 2\nx-content-type-options: nosniff\n\n\"--SomeBoundaryValue\\r\\nContent-Type: application/x-arango-batchpart\\r\\n\\r\\nHTTP/1.1 404 Not Found\\r\\nServer: \\r\\nConnection: \\r\\nContent-Type: application/json; charset=utf-8\\r\\nContent-Length: 87\\r\\n\\r\\n{\\\"code\\\":404,\\\"error\\\":true,\\\"errorMessage\\\":\\\"collection or view not found\\\",\\\"errorNum\\\":1203}\\r\\n--SomeBoundaryValue\\r\\nContent-Type: application/x-arango-batchpart\\r\\n\\r\\nHTTP/1.1 404 Not Found\\r\\nServer: \\r\\nConnection: \\r\\nContent-Type: application/json; charset=utf-8\\r\\nContent-Length: 101\\r\\n\\r\\n{\\\"error\\\":true,\\\"code\\\":404,\\\"errorNum\\\":404,\\\"errorMessage\\\":\\\"unknown path '_api/collection/notexisting2'\\\"}\\r\\n--SomeBoundaryValue--\"\n
\n\n\n\n\n", + "description": "\n\nExecutes a batch request. A batch request can contain any number of\nother requests that can be sent to ArangoDB in isolation. The benefit of\nusing batch requests is that batching requests requires less client/server\nroundtrips than when sending isolated requests.\n\nAll parts of a batch request are executed serially on the server. The\nserver will return the results of all parts in a single response when all\nparts are finished.\n\nTechnically, a batch request is a multipart HTTP request, with\ncontent-type `multipart/form-data`. A batch request consists of an\nenvelope and the individual batch part actions. Batch part actions\nare \"regular\" HTTP requests, including full header and an optional body.\nMultiple batch parts are separated by a boundary identifier. The\nboundary identifier is declared in the batch envelope. The MIME content-type\nfor each individual batch part must be `application/x-arango-batchpart`.\n\nPlease note that when constructing the individual batch parts, you must\nuse CRLF (`\\\\\\r\\\\\\n`) as the line terminator as in regular HTTP messages.\n\nThe response sent by the server will be an `HTTP 200` response, with an\noptional error summary header `x-arango-errors`. This header contains the\nnumber of batch part operations that failed with an HTTP error code of at\nleast 400. This header is only present in the response if the number of\nerrors is greater than zero.\n\nThe response sent by the server is a multipart response, too. It contains\nthe individual HTTP responses for all batch parts, including the full HTTP\nresult header (with status code and other potential headers) and an\noptional result body. The individual batch parts in the result are\nseperated using the same boundary value as specified in the request.\n\nThe order of batch parts in the response will be the same as in the\noriginal client request. Client can additionally use the `Content-Id`\nMIME header in a batch part to define an individual id for each batch part.\nThe server will return this id is the batch part responses, too.\n\n\n\n\n**Example:**\n Sending a batch request with five batch parts:\n\n- GET /_api/version\n\n- DELETE /_api/collection/products\n\n- POST /_api/collection/products\n\n- GET /_api/collection/products/figures\n\n- DELETE /_api/collection/products\n\nThe boundary (`SomeBoundaryValue`) is passed to the server in the HTTP\n`Content-Type` HTTP header.\n*Please note the reply is not displayed all accurate.*\n\n
shell> curl -X POST --header 'Content-Type: multipart/form-data; boundary=SomeBoundaryValue' --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/batch <<EOF\n--SomeBoundaryValue\r\nContent-Type: application/x-arango-batchpart\r\nContent-Id: myId1\r\n\r\nGET /_api/version HTTP/1.1\r\n\r\n--SomeBoundaryValue\r\nContent-Type: application/x-arango-batchpart\r\nContent-Id: myId2\r\n\r\nDELETE /_api/collection/products HTTP/1.1\r\n\r\n--SomeBoundaryValue\r\nContent-Type: application/x-arango-batchpart\r\nContent-Id: someId\r\n\r\nPOST /_api/collection/products HTTP/1.1\r\n\r\n{\"name\": \"products\" }\r\n\r\n--SomeBoundaryValue\r\nContent-Type: application/x-arango-batchpart\r\nContent-Id: nextId\r\n\r\nGET /_api/collection/products/figures HTTP/1.1\r\n\r\n--SomeBoundaryValue\r\nContent-Type: application/x-arango-batchpart\r\nContent-Id: otherId\r\n\r\nDELETE /_api/collection/products HTTP/1.1\r\n--SomeBoundaryValue--\r\n\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json\nx-arango-errors: 1\nx-content-type-options: nosniff\n\n--SomeBoundaryValue\nContent-Type: application/x-arango-batchpart\nContent-Id: myId1\n\nHTTP/1.1 200 OK\nServer: \nConnection: \nContent-Type: application/json; charset=utf-8\nContent-Length: 65\n\n{ \n  \"server\" : \"arango\", \n  \"license\" : \"enterprise\", \n  \"version\" : \"3.5.0-rc.6\" \n}↩\n\n--SomeBoundaryValue\nContent-Type: application/x-arango-batchpart\nContent-Id: myId2\n\nHTTP/1.1 404 Not Found\nServer: \nConnection: \nContent-Type: application/json; charset=utf-8\nContent-Length: 87\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"collection or view not found\", \n  \"errorNum\" : 1203 \n}↩\n\n--SomeBoundaryValue\nContent-Type: application/x-arango-batchpart\nContent-Id: someId\n\nHTTP/1.1 200 OK\nServer: \nConnection: \nContent-Type: application/json; charset=utf-8\nContent-Length: 290\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"type\" : 2, \n  \"status\" : 3, \n  \"statusString\" : \"loaded\", \n  \"id\" : \"68453\", \n  \"waitForSync\" : false, \n  \"objectId\" : \"68452\", \n  \"cacheEnabled\" : false, \n  \"isSystem\" : false, \n  \"globallyUniqueId\" : \"h224C52C430E1/68453\", \n  \"keyOptions\" : { \n    \"allowUserKeys\" : true, \n    \"type\" : \"traditional\", \n    \"lastValue\" : 0 \n  }, \n  \"name\" : \"products\" \n}↩\n\n--SomeBoundaryValue\nContent-Type: application/x-arango-batchpart\nContent-Id: nextId\n\nHTTP/1.1 200 OK\nServer: \nLocation: /_api/collection/products/figures\nConnection: \nContent-Type: application/json; charset=utf-8\nContent-Length: 409\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"type\" : 2, \n  \"status\" : 3, \n  \"name\" : \"products\", \n  \"waitForSync\" : false, \n  \"objectId\" : \"68452\", \n  \"cacheEnabled\" : false, \n  \"figures\" : { \n    \"indexes\" : { \n      \"count\" : 1, \n      \"size\" : 0 \n    }, \n    \"documentsSize\" : 0, \n    \"cacheInUse\" : false, \n    \"cacheSize\" : 0, \n    \"cacheUsage\" : 0 \n  }, \n  \"keyOptions\" : { \n    \"allowUserKeys\" : true, \n    \"type\" : \"traditional\", \n    \"lastValue\" : 0 \n  }, \n  \"globallyUniqueId\" : \"h224C52C430E1/68453\", \n  \"statusString\" : \"loaded\", \n  \"id\" : \"68453\", \n  \"count\" : 0, \n  \"isSystem\" : false \n}↩\n\n--SomeBoundaryValue\nContent-Type: application/x-arango-batchpart\nContent-Id: otherId\n\nHTTP/1.1 200 OK\nServer: \nConnection: \nContent-Type: application/json; charset=utf-8\nContent-Length: 39\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"id\" : \"68453\" \n}↩\n\n--SomeBoundaryValue--\n
\n\n\n\n\n**Example:**\n Sending a batch request, setting the boundary implicitly (the server will\nin this case try to find the boundary at the beginning of the request body).\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/batch <<EOF\n--SomeBoundaryValue\r\nContent-Type: application/x-arango-batchpart\r\n\r\nDELETE /_api/collection/notexisting1 HTTP/1.1\r\n\r\n--SomeBoundaryValue\r\nContent-Type: application/x-arango-batchpart\r\n\r\nDELETE _api/collection/notexisting2 HTTP/1.1\r\n--SomeBoundaryValue--\r\n\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json\nx-arango-errors: 2\nx-content-type-options: nosniff\n\n--SomeBoundaryValue\nContent-Type: application/x-arango-batchpart\n\nHTTP/1.1 404 Not Found\nServer: \nConnection: \nContent-Type: application/json; charset=utf-8\nContent-Length: 87\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"collection or view not found\", \n  \"errorNum\" : 1203 \n}↩\n\n--SomeBoundaryValue\nContent-Type: application/x-arango-batchpart\n\nHTTP/1.1 404 Not Found\nServer: \nConnection: \nContent-Type: application/json; charset=utf-8\nContent-Length: 101\n\n{ \n  \"error\" : true, \n  \"code\" : 404, \n  \"errorNum\" : 404, \n  \"errorMessage\" : \"unknown path '_api/collection/notexisting2'\" \n}↩\n\n--SomeBoundaryValue--\n
\n\n\n\n\n", "operationId": "RestBatchHandler", "parameters": [ { @@ -7383,7 +7463,7 @@ }, "/_api/collection": { "get": { - "description": "\n\nReturns an object with an attribute *collections* containing an\narray of all collection descriptions. The same information is also\navailable in the *names* as an object with the collection names\nas keys.\n\nBy providing the optional query parameter *excludeSystem* with a value of\n*true*, all system collections will be excluded from the response.\n\n\n\n\n**Warning:** \nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n\n\n\n\n\n\n**Example:**\n Return information about all collections:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/collection\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"result\" : [ \n    { \n      \"id\" : \"16\", \n      \"name\" : \"_jobs\", \n      \"status\" : 3, \n      \"type\" : 2, \n      \"isSystem\" : true, \n      \"globallyUniqueId\" : \"_jobs\" \n    }, \n    { \n      \"id\" : \"14\", \n      \"name\" : \"_queues\", \n      \"status\" : 3, \n      \"type\" : 2, \n      \"isSystem\" : true, \n      \"globallyUniqueId\" : \"_queues\" \n    }, \n    { \n      \"id\" : \"26\", \n      \"name\" : \"_apps\", \n      \"status\" : 3, \n      \"type\" : 2, \n      \"isSystem\" : true, \n      \"globallyUniqueId\" : \"_apps\" \n    }, \n    { \n      \"id\" : \"12\", \n      \"name\" : \"_aqlfunctions\", \n      \"status\" : 3, \n      \"type\" : 2, \n      \"isSystem\" : true, \n      \"globallyUniqueId\" : \"_aqlfunctions\" \n    }, \n    { \n      \"id\" : \"3\", \n      \"name\" : \"_graphs\", \n      \"status\" : 3, \n      \"type\" : 2, \n      \"isSystem\" : true, \n      \"globallyUniqueId\" : \"_graphs\" \n    }, \n    { \n      \"id\" : \"6\", \n      \"name\" : \"_users\", \n      \"status\" : 3, \n      \"type\" : 2, \n      \"isSystem\" : true, \n      \"globallyUniqueId\" : \"_users\" \n    }, \n    { \n      \"id\" : \"32\", \n      \"name\" : \"_appbundles\", \n      \"status\" : 3, \n      \"type\" : 2, \n      \"isSystem\" : true, \n      \"globallyUniqueId\" : \"_appbundles\" \n    }, \n    { \n      \"id\" : \"34\", \n      \"name\" : \"_analyzers\", \n      \"status\" : 3, \n      \"type\" : 2, \n      \"isSystem\" : true, \n      \"globallyUniqueId\" : \"_analyzers\" \n    }, \n    { \n      \"id\" : \"102\", \n      \"name\" : \"animals\", \n      \"status\" : 3, \n      \"type\" : 2, \n      \"isSystem\" : false, \n      \"globallyUniqueId\" : \"h82E80CF18F1A/102\" \n    }, \n    { \n      \"id\" : \"64\", \n      \"name\" : \"_statisticsRaw\", \n      \"status\" : 3, \n      \"type\" : 2, \n      \"isSystem\" : true, \n      \"globallyUniqueId\" : \"_statisticsRaw\" \n    }, \n    { \n      \"id\" : \"70\", \n      \"name\" : \"_statistics\", \n      \"status\" : 3, \n      \"type\" : 2, \n      \"isSystem\" : true, \n      \"globallyUniqueId\" : \"_statistics\" \n    }, \n    { \n      \"id\" : \"76\", \n      \"name\" : \"_statistics15\", \n      \"status\" : 3, \n      \"type\" : 2, \n      \"isSystem\" : true, \n      \"globallyUniqueId\" : \"_statistics15\" \n    }, \n    { \n      \"id\" : \"93\", \n      \"name\" : \"demo\", \n      \"status\" : 3, \n      \"type\" : 2, \n      \"isSystem\" : false, \n      \"globallyUniqueId\" : \"h82E80CF18F1A/93\" \n    } \n  ] \n}\n
\n\n\n\n\n", + "description": "\n\nReturns an object with an attribute *collections* containing an\narray of all collection descriptions. The same information is also\navailable in the *names* as an object with the collection names\nas keys.\n\nBy providing the optional query parameter *excludeSystem* with a value of\n*true*, all system collections will be excluded from the response.\n\n\n\n\n**Warning:** \nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n\n\n\n\n\n\n**Example:**\n Return information about all collections:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/collection\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"result\" : [ \n    { \n      \"id\" : \"20\", \n      \"name\" : \"_jobs\", \n      \"status\" : 3, \n      \"type\" : 2, \n      \"isSystem\" : true, \n      \"globallyUniqueId\" : \"_jobs\" \n    }, \n    { \n      \"id\" : \"31\", \n      \"name\" : \"_apps\", \n      \"status\" : 3, \n      \"type\" : 2, \n      \"isSystem\" : true, \n      \"globallyUniqueId\" : \"_apps\" \n    }, \n    { \n      \"id\" : \"14\", \n      \"name\" : \"_aqlfunctions\", \n      \"status\" : 3, \n      \"type\" : 2, \n      \"isSystem\" : true, \n      \"globallyUniqueId\" : \"_aqlfunctions\" \n    }, \n    { \n      \"id\" : \"17\", \n      \"name\" : \"_queues\", \n      \"status\" : 3, \n      \"type\" : 2, \n      \"isSystem\" : true, \n      \"globallyUniqueId\" : \"_queues\" \n    }, \n    { \n      \"id\" : \"38\", \n      \"name\" : \"_appbundles\", \n      \"status\" : 3, \n      \"type\" : 2, \n      \"isSystem\" : true, \n      \"globallyUniqueId\" : \"_appbundles\" \n    }, \n    { \n      \"id\" : \"89\", \n      \"name\" : \"demo\", \n      \"status\" : 3, \n      \"type\" : 2, \n      \"isSystem\" : false, \n      \"globallyUniqueId\" : \"h224C52C430E1/89\" \n    }, \n    { \n      \"id\" : \"7\", \n      \"name\" : \"_users\", \n      \"status\" : 3, \n      \"type\" : 2, \n      \"isSystem\" : true, \n      \"globallyUniqueId\" : \"_users\" \n    }, \n    { \n      \"id\" : \"4\", \n      \"name\" : \"_graphs\", \n      \"status\" : 3, \n      \"type\" : 2, \n      \"isSystem\" : true, \n      \"globallyUniqueId\" : \"_graphs\" \n    }, \n    { \n      \"id\" : \"41\", \n      \"name\" : \"_analyzers\", \n      \"status\" : 3, \n      \"type\" : 2, \n      \"isSystem\" : true, \n      \"globallyUniqueId\" : \"_analyzers\" \n    }, \n    { \n      \"id\" : \"60\", \n      \"name\" : \"_statisticsRaw\", \n      \"status\" : 3, \n      \"type\" : 2, \n      \"isSystem\" : true, \n      \"globallyUniqueId\" : \"_statisticsRaw\" \n    }, \n    { \n      \"id\" : \"67\", \n      \"name\" : \"_statistics\", \n      \"status\" : 3, \n      \"type\" : 2, \n      \"isSystem\" : true, \n      \"globallyUniqueId\" : \"_statistics\" \n    }, \n    { \n      \"id\" : \"74\", \n      \"name\" : \"_statistics15\", \n      \"status\" : 3, \n      \"type\" : 2, \n      \"isSystem\" : true, \n      \"globallyUniqueId\" : \"_statistics15\" \n    }, \n    { \n      \"id\" : \"95\", \n      \"name\" : \"animals\", \n      \"status\" : 3, \n      \"type\" : 2, \n      \"isSystem\" : false, \n      \"globallyUniqueId\" : \"h224C52C430E1/95\" \n    } \n  ] \n}\n
\n\n\n\n\n", "operationId": "handleCommandGet", "parameters": [ { @@ -7408,7 +7488,7 @@ "x-hints": "{% hint 'warning' %}\nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n{% endhint %}\n\n" }, "post": { - "description": "\n\nCreates a new collection with a given name. The request must contain an\nobject with the following attributes.\n\n\n**A JSON object with these properties is required:**\n\n - **journalSize**: The maximal size of a journal or datafile in bytes. The value\n must be at least `1048576` (1 MiB). (The default is a configuration parameter)\n This option is meaningful for the MMFiles storage engine only.\n - **replicationFactor**: (The default is *1*): in a cluster, this attribute determines how many copies\n of each shard are kept on different DBServers. The value 1 means that only one\n copy (no synchronous replication) is kept. A value of k means that k-1 replicas\n are kept. Any two copies reside on different DBServers. Replication between them is \n synchronous, that is, every write operation to the \"leader\" copy will be replicated \n to all \"follower\" replicas, before the write operation is reported successful.\n If a server fails, this is detected automatically and one of the servers holding \n copies take over, usually without an error being reported.\n - **keyOptions**:\n - **allowUserKeys**: if set to *true*, then it is allowed to supply own key values in the\n *_key* attribute of a document. If set to *false*, then the key generator\n will solely be responsible for generating keys and supplying own key values\n in the *_key* attribute of documents is considered an error.\n - **type**: specifies the type of the key generator. The currently available generators are\n *traditional*, *autoincrement*, *uuid* and *padded*.\n The *traditional* key generator generates numerical keys in ascending order.\n The *autoincrement* key generator generates numerical keys in ascending order, \n the inital offset and the spacing can be configured\n The *padded* key generator generates keys of a fixed length (16 bytes) in\n ascending lexicographical sort order. This is ideal for usage with the _RocksDB_\n engine, which will slightly benefit keys that are inserted in lexicographically\n ascending order. The key generator can be used in a single-server or cluster.\n The *uuid* key generator generates universally unique 128 bit keys, which \n are stored in hexadecimal human-readable format. This key generator can be used\n in a single-server or cluster to generate \"seemingly random\" keys. The keys \n produced by this key generator are not lexicographically sorted.\n - **increment**: increment value for *autoincrement* key generator. Not used for other key\n generator types.\n - **offset**: Initial offset value for *autoincrement* key generator.\n Not used for other key generator types.\n - **name**: The name of the collection.\n - **waitForSync**: If *true* then the data is synchronized to disk before returning from a\n document create, update, replace or removal operation. (default: false)\n - **doCompact**: whether or not the collection will be compacted (default is *true*)\n This option is meaningful for the MMFiles storage engine only.\n - **shardingStrategy**: This attribute specifies the name of the sharding strategy to use for \n the collection. Since ArangoDB 3.4 there are different sharding strategies \n to select from when creating a new collection. The selected *shardingStrategy* \n value will remain fixed for the collection and cannot be changed afterwards. \n This is important to make the collection keep its sharding settings and\n always find documents already distributed to shards using the same\n initial sharding algorithm.\n The available sharding strategies are:\n - `community-compat`: default sharding used by ArangoDB\n Community Edition before version 3.4\n - `enterprise-compat`: default sharding used by ArangoDB\n Enterprise Edition before version 3.4\n - `enterprise-smart-edge-compat`: default sharding used by smart edge\n collections in ArangoDB Enterprise Edition before version 3.4\n - `hash`: default sharding used for new collections starting from version 3.4\n (excluding smart edge collections)\n - `enterprise-hash-smart-edge`: default sharding used for new\n smart edge collections starting from version 3.4\n If no sharding strategy is specified, the default will be *hash* for\n all collections, and *enterprise-hash-smart-edge* for all smart edge\n collections (requires the *Enterprise Edition* of ArangoDB). \n Manually overriding the sharding strategy does not yet provide a \n benefit, but it may later in case other sharding strategies are added.\n - **isVolatile**: If *true* then the collection data is kept in-memory only and not made persistent.\n Unloading the collection will cause the collection data to be discarded. Stopping\n or re-starting the server will also cause full loss of data in the\n collection. Setting this option will make the resulting collection be\n slightly faster than regular collections because ArangoDB does not\n enforce any synchronization to disk and does not calculate any CRC\n checksums for datafiles (as there are no datafiles). This option\n should therefore be used for cache-type collections only, and not\n for data that cannot be re-created otherwise.\n (The default is *false*)\n This option is meaningful for the MMFiles storage engine only.\n - **shardKeys**: (The default is *[ \"_key\" ]*): in a cluster, this attribute determines\n which document attributes are used to determine the target shard for documents.\n Documents are sent to shards based on the values of their shard key attributes.\n The values of all shard key attributes in a document are hashed,\n and the hash value is used to determine the target shard.\n **Note**: Values of shard key attributes cannot be changed once set.\n This option is meaningless in a single server setup.\n - **smartJoinAttribute**: In an *Enterprise Edition* cluster, this attribute determines an attribute\n of the collection that must contain the shard key value of the referred-to \n smart join collection. Additionally, the shard key for a document in this \n collection must contain the value of this attribute, followed by a colon, \n followed by the actual primary key of the document.\n This feature can only be used in the *Enterprise Edition* and requires the\n *distributeShardsLike* attribute of the collection to be set to the name\n of another collection. It also requires the *shardKeys* attribute of the\n collection to be set to a single shard key attribute, with an additional ':'\n at the end.\n A further restriction is that whenever documents are stored or updated in the \n collection, the value stored in the *smartJoinAttribute* must be a string.\n - **numberOfShards**: (The default is *1*): in a cluster, this value determines the\n number of shards to create for the collection. In a single\n server setup, this option is meaningless.\n - **isSystem**: If *true*, create a system collection. In this case *collection-name*\n should start with an underscore. End users should normally create non-system\n collections only. API implementors may be required to create system\n collections in very special occasions, but normally a regular collection will do.\n (The default is *false*)\n - **type**: (The default is *2*): the type of the collection to create.\n The following values for *type* are valid:\n - *2*: document collection\n - *3*: edge collection\n - **indexBuckets**: The number of buckets into which indexes using a hash\n table are split. The default is 16 and this number has to be a\n power of 2 and less than or equal to 1024.\n For very large collections one should increase this to avoid long pauses\n when the hash table has to be initially built or resized, since buckets\n are resized individually and can be initially built in parallel. For\n example, 64 might be a sensible value for a collection with 100\n 000 000 documents. Currently, only the edge index respects this\n value, but other index types might follow in future ArangoDB versions.\n Changes (see below) are applied when the collection is loaded the next\n time.\n This option is meaningful for the MMFiles storage engine only.\n - **distributeShardsLike**: (The default is *\"\"*): in an Enterprise Edition cluster, this attribute binds\n the specifics of sharding for the newly created collection to follow that of a\n specified existing collection.\n **Note**: Using this parameter has consequences for the prototype\n collection. It can no longer be dropped, before the sharding-imitating\n collections are dropped. Equally, backups and restores of imitating\n collections alone will generate warnings (which can be overridden)\n about missing sharding prototype.\n\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\n- **smartGraphAttribute**: Attribute that is used in smart graphs, *Cluster specific attribute.*\n- **journalSize**: The maximal size setting for journals / datafiles\nin bytes. This option is only present for the MMFiles storage engine.\n- **replicationFactor**: contains how many copies of each shard are kept on different DBServers.; *Cluster specific attribute.*\n- **keyOptions**:\n - **lastValue**: \n - **allowUserKeys**: if set to *true*, then it is allowed to supply\n own key values in the *_key* attribute of a document. If set to\n *false*, then the key generator is solely responsible for\n generating keys and supplying own key values in the *_key* attribute\n of documents is considered an error.\n - **type**: specifies the type of the key generator. The currently\n available generators are *traditional*, *autoincrement*, *uuid*\n and *padded*.\n- **name**: literal name of this collection\n- **waitForSync**: If *true* then creating, changing or removing\ndocuments will wait until the data has been synchronized to disk.\n- **doCompact**: Whether or not the collection will be compacted.\nThis option is only present for the MMFiles storage engine.\n- **shardingStrategy**: the sharding strategy selected for the collection; *Cluster specific attribute.*\nOne of 'hash' or 'enterprise-hash-smart-edge'\n- **isVolatile**: If *true* then the collection data will be\nkept in memory only and ArangoDB will not write or sync the data\nto disk. This option is only present for the MMFiles storage engine.\n- **indexBuckets**: the number of index buckets\n*Only relevant for the MMFiles storage engine*\n- **numberOfShards**: The number of shards of the collection; *Cluster specific attribute.*\n- **status**: corrosponds to **statusString**; *Only relevant for the MMFiles storage engine*\n - 0: \"unknown\" - may be corrupted\n - 1: (deprecated, maps to \"unknown\")\n - 2: \"unloaded\"\n - 3: \"loaded\"\n - 4: \"unloading\"\n - 5: \"deleted\"\n - 6: \"loading\"\n- **statusString**: any of: [\"unloaded\", \"loading\", \"loaded\", \"unloading\", \"deleted\", \"unknown\"] *Only relevant for the MMFiles storage engine*\n- **globallyUniqueId**: Unique identifier of the collection\n- **id**: unique identifier of the collection; *deprecated*\n- **isSystem**: true if this is a system collection; usually *name* will start with an underscore.\n- **type**: The type of the collection:\n - 0: \"unknown\"\n - 2: regular document collection\n - 3: edge collection\n- **shardKeys** (string): contains the names of document attributes that are used to\ndetermine the target shard for documents; *Cluster specific attribute.*\n\n\n\n\n**Warning:** \nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n\n\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/collection <<EOF\n{ \n  \"name\" : \"testCollectionBasics\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"waitForSync\" : false, \n  \"type\" : 2, \n  \"status\" : 3, \n  \"journalSize\" : 33554432, \n  \"keyOptions\" : { \n    \"allowUserKeys\" : true, \n    \"type\" : \"traditional\", \n    \"lastValue\" : 0 \n  }, \n  \"globallyUniqueId\" : \"h82E80CF18F1A/103185\", \n  \"statusString\" : \"loaded\", \n  \"id\" : \"103185\", \n  \"name\" : \"testCollectionBasics\", \n  \"doCompact\" : true, \n  \"isSystem\" : false, \n  \"indexBuckets\" : 8, \n  \"isVolatile\" : false \n}\nshell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/collection <<EOF\n{ \n  \"name\" : \"testCollectionEdges\", \n  \"type\" : 3 \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"waitForSync\" : false, \n  \"type\" : 3, \n  \"status\" : 3, \n  \"journalSize\" : 33554432, \n  \"keyOptions\" : { \n    \"allowUserKeys\" : true, \n    \"type\" : \"traditional\", \n    \"lastValue\" : 0 \n  }, \n  \"globallyUniqueId\" : \"h82E80CF18F1A/103191\", \n  \"statusString\" : \"loaded\", \n  \"id\" : \"103191\", \n  \"name\" : \"testCollectionEdges\", \n  \"doCompact\" : true, \n  \"isSystem\" : false, \n  \"indexBuckets\" : 8, \n  \"isVolatile\" : false \n}\n
\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/collection <<EOF\n{ \n  \"name\" : \"testCollectionUsers\", \n  \"keyOptions\" : { \n    \"type\" : \"autoincrement\", \n    \"increment\" : 5, \n    \"allowUserKeys\" : true \n  } \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"waitForSync\" : false, \n  \"type\" : 2, \n  \"status\" : 3, \n  \"journalSize\" : 33554432, \n  \"keyOptions\" : { \n    \"allowUserKeys\" : true, \n    \"type\" : \"autoincrement\", \n    \"offset\" : 0, \n    \"increment\" : 5, \n    \"lastValue\" : 0 \n  }, \n  \"globallyUniqueId\" : \"h82E80CF18F1A/103206\", \n  \"statusString\" : \"loaded\", \n  \"id\" : \"103206\", \n  \"name\" : \"testCollectionUsers\", \n  \"doCompact\" : true, \n  \"isSystem\" : false, \n  \"indexBuckets\" : 8, \n  \"isVolatile\" : false \n}\n
\n\n\n\n\n", + "description": "\n\nCreates a new collection with a given name. The request must contain an\nobject with the following attributes.\n\n\n**A JSON object with these properties is required:**\n\n - **journalSize**: The maximal size of a journal or datafile in bytes. The value\n must be at least `1048576` (1 MiB). (The default is a configuration parameter)\n This option is meaningful for the MMFiles storage engine only.\n - **replicationFactor**: (The default is *1*): in a cluster, this attribute determines how many copies\n of each shard are kept on different DBServers. The value 1 means that only one\n copy (no synchronous replication) is kept. A value of k means that k-1 replicas\n are kept. Any two copies reside on different DBServers. Replication between them is \n synchronous, that is, every write operation to the \"leader\" copy will be replicated \n to all \"follower\" replicas, before the write operation is reported successful.\n If a server fails, this is detected automatically and one of the servers holding \n copies take over, usually without an error being reported.\n - **keyOptions**:\n - **allowUserKeys**: if set to *true*, then it is allowed to supply own key values in the\n *_key* attribute of a document. If set to *false*, then the key generator\n will solely be responsible for generating keys and supplying own key values\n in the *_key* attribute of documents is considered an error.\n - **type**: specifies the type of the key generator. The currently available generators are\n *traditional*, *autoincrement*, *uuid* and *padded*.\n The *traditional* key generator generates numerical keys in ascending order.\n The *autoincrement* key generator generates numerical keys in ascending order, \n the inital offset and the spacing can be configured\n The *padded* key generator generates keys of a fixed length (16 bytes) in\n ascending lexicographical sort order. This is ideal for usage with the _RocksDB_\n engine, which will slightly benefit keys that are inserted in lexicographically\n ascending order. The key generator can be used in a single-server or cluster.\n The *uuid* key generator generates universally unique 128 bit keys, which \n are stored in hexadecimal human-readable format. This key generator can be used\n in a single-server or cluster to generate \"seemingly random\" keys. The keys \n produced by this key generator are not lexicographically sorted.\n - **increment**: increment value for *autoincrement* key generator. Not used for other key\n generator types.\n - **offset**: Initial offset value for *autoincrement* key generator.\n Not used for other key generator types.\n - **name**: The name of the collection.\n - **waitForSync**: If *true* then the data is synchronized to disk before returning from a\n document create, update, replace or removal operation. (default: false)\n - **doCompact**: whether or not the collection will be compacted (default is *true*)\n This option is meaningful for the MMFiles storage engine only.\n - **shardingStrategy**: This attribute specifies the name of the sharding strategy to use for \n the collection. Since ArangoDB 3.4 there are different sharding strategies \n to select from when creating a new collection. The selected *shardingStrategy* \n value will remain fixed for the collection and cannot be changed afterwards. \n This is important to make the collection keep its sharding settings and\n always find documents already distributed to shards using the same\n initial sharding algorithm.\n The available sharding strategies are:\n - `community-compat`: default sharding used by ArangoDB\n Community Edition before version 3.4\n - `enterprise-compat`: default sharding used by ArangoDB\n Enterprise Edition before version 3.4\n - `enterprise-smart-edge-compat`: default sharding used by smart edge\n collections in ArangoDB Enterprise Edition before version 3.4\n - `hash`: default sharding used for new collections starting from version 3.4\n (excluding smart edge collections)\n - `enterprise-hash-smart-edge`: default sharding used for new\n smart edge collections starting from version 3.4\n If no sharding strategy is specified, the default will be *hash* for\n all collections, and *enterprise-hash-smart-edge* for all smart edge\n collections (requires the *Enterprise Edition* of ArangoDB). \n Manually overriding the sharding strategy does not yet provide a \n benefit, but it may later in case other sharding strategies are added.\n - **isVolatile**: If *true* then the collection data is kept in-memory only and not made persistent.\n Unloading the collection will cause the collection data to be discarded. Stopping\n or re-starting the server will also cause full loss of data in the\n collection. Setting this option will make the resulting collection be\n slightly faster than regular collections because ArangoDB does not\n enforce any synchronization to disk and does not calculate any CRC\n checksums for datafiles (as there are no datafiles). This option\n should therefore be used for cache-type collections only, and not\n for data that cannot be re-created otherwise.\n (The default is *false*)\n This option is meaningful for the MMFiles storage engine only.\n - **shardKeys**: (The default is *[ \"_key\" ]*): in a cluster, this attribute determines\n which document attributes are used to determine the target shard for documents.\n Documents are sent to shards based on the values of their shard key attributes.\n The values of all shard key attributes in a document are hashed,\n and the hash value is used to determine the target shard.\n **Note**: Values of shard key attributes cannot be changed once set.\n This option is meaningless in a single server setup.\n - **smartJoinAttribute**: In an *Enterprise Edition* cluster, this attribute determines an attribute\n of the collection that must contain the shard key value of the referred-to \n smart join collection. Additionally, the shard key for a document in this \n collection must contain the value of this attribute, followed by a colon, \n followed by the actual primary key of the document.\n This feature can only be used in the *Enterprise Edition* and requires the\n *distributeShardsLike* attribute of the collection to be set to the name\n of another collection. It also requires the *shardKeys* attribute of the\n collection to be set to a single shard key attribute, with an additional ':'\n at the end.\n A further restriction is that whenever documents are stored or updated in the \n collection, the value stored in the *smartJoinAttribute* must be a string.\n - **numberOfShards**: (The default is *1*): in a cluster, this value determines the\n number of shards to create for the collection. In a single\n server setup, this option is meaningless.\n - **isSystem**: If *true*, create a system collection. In this case *collection-name*\n should start with an underscore. End users should normally create non-system\n collections only. API implementors may be required to create system\n collections in very special occasions, but normally a regular collection will do.\n (The default is *false*)\n - **type**: (The default is *2*): the type of the collection to create.\n The following values for *type* are valid:\n - *2*: document collection\n - *3*: edge collection\n - **indexBuckets**: The number of buckets into which indexes using a hash\n table are split. The default is 16 and this number has to be a\n power of 2 and less than or equal to 1024.\n For very large collections one should increase this to avoid long pauses\n when the hash table has to be initially built or resized, since buckets\n are resized individually and can be initially built in parallel. For\n example, 64 might be a sensible value for a collection with 100\n 000 000 documents. Currently, only the edge index respects this\n value, but other index types might follow in future ArangoDB versions.\n Changes (see below) are applied when the collection is loaded the next\n time.\n This option is meaningful for the MMFiles storage engine only.\n - **distributeShardsLike**: (The default is *\"\"*): in an Enterprise Edition cluster, this attribute binds\n the specifics of sharding for the newly created collection to follow that of a\n specified existing collection.\n **Note**: Using this parameter has consequences for the prototype\n collection. It can no longer be dropped, before the sharding-imitating\n collections are dropped. Equally, backups and restores of imitating\n collections alone will generate warnings (which can be overridden)\n about missing sharding prototype.\n\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\n- **smartGraphAttribute**: Attribute that is used in smart graphs, *Cluster specific attribute.*\n- **journalSize**: The maximal size setting for journals / datafiles\nin bytes. This option is only present for the MMFiles storage engine.\n- **replicationFactor**: contains how many copies of each shard are kept on different DBServers.; *Cluster specific attribute.*\n- **keyOptions**:\n - **lastValue**: \n - **allowUserKeys**: if set to *true*, then it is allowed to supply\n own key values in the *_key* attribute of a document. If set to\n *false*, then the key generator is solely responsible for\n generating keys and supplying own key values in the *_key* attribute\n of documents is considered an error.\n - **type**: specifies the type of the key generator. The currently\n available generators are *traditional*, *autoincrement*, *uuid*\n and *padded*.\n- **name**: literal name of this collection\n- **waitForSync**: If *true* then creating, changing or removing\ndocuments will wait until the data has been synchronized to disk.\n- **doCompact**: Whether or not the collection will be compacted.\nThis option is only present for the MMFiles storage engine.\n- **shardingStrategy**: the sharding strategy selected for the collection; *Cluster specific attribute.*\nOne of 'hash' or 'enterprise-hash-smart-edge'\n- **isVolatile**: If *true* then the collection data will be\nkept in memory only and ArangoDB will not write or sync the data\nto disk. This option is only present for the MMFiles storage engine.\n- **indexBuckets**: the number of index buckets\n*Only relevant for the MMFiles storage engine*\n- **numberOfShards**: The number of shards of the collection; *Cluster specific attribute.*\n- **status**: corrosponds to **statusString**; *Only relevant for the MMFiles storage engine*\n - 0: \"unknown\" - may be corrupted\n - 1: (deprecated, maps to \"unknown\")\n - 2: \"unloaded\"\n - 3: \"loaded\"\n - 4: \"unloading\"\n - 5: \"deleted\"\n - 6: \"loading\"\n- **statusString**: any of: [\"unloaded\", \"loading\", \"loaded\", \"unloading\", \"deleted\", \"unknown\"] *Only relevant for the MMFiles storage engine*\n- **globallyUniqueId**: Unique identifier of the collection\n- **id**: unique identifier of the collection; *deprecated*\n- **isSystem**: true if this is a system collection; usually *name* will start with an underscore.\n- **minReplicationFactor**: contains how many minimal copies of each shard need to be in sync on different DBServers.\nThe shards will refuse to write, if we have less then these many copies in sync. *Cluster specific attribute.*\n- **type**: The type of the collection:\n - 0: \"unknown\"\n - 2: regular document collection\n - 3: edge collection\n- **shardKeys** (string): contains the names of document attributes that are used to\ndetermine the target shard for documents; *Cluster specific attribute.*\n\n\n\n\n**Warning:** \nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n\n\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/collection <<EOF\n{ \n  \"name\" : \"testCollectionBasics\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"type\" : 2, \n  \"status\" : 3, \n  \"statusString\" : \"loaded\", \n  \"id\" : \"68461\", \n  \"waitForSync\" : false, \n  \"objectId\" : \"68460\", \n  \"cacheEnabled\" : false, \n  \"isSystem\" : false, \n  \"globallyUniqueId\" : \"h224C52C430E1/68461\", \n  \"keyOptions\" : { \n    \"allowUserKeys\" : true, \n    \"type\" : \"traditional\", \n    \"lastValue\" : 0 \n  }, \n  \"name\" : \"testCollectionBasics\" \n}\nshell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/collection <<EOF\n{ \n  \"name\" : \"testCollectionEdges\", \n  \"type\" : 3 \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"type\" : 3, \n  \"status\" : 3, \n  \"statusString\" : \"loaded\", \n  \"id\" : \"68466\", \n  \"waitForSync\" : false, \n  \"objectId\" : \"68465\", \n  \"cacheEnabled\" : false, \n  \"isSystem\" : false, \n  \"globallyUniqueId\" : \"h224C52C430E1/68466\", \n  \"keyOptions\" : { \n    \"allowUserKeys\" : true, \n    \"type\" : \"traditional\", \n    \"lastValue\" : 0 \n  }, \n  \"name\" : \"testCollectionEdges\" \n}\n
\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/collection <<EOF\n{ \n  \"name\" : \"testCollectionUsers\", \n  \"keyOptions\" : { \n    \"type\" : \"autoincrement\", \n    \"increment\" : 5, \n    \"allowUserKeys\" : true \n  } \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"type\" : 2, \n  \"status\" : 3, \n  \"statusString\" : \"loaded\", \n  \"id\" : \"68476\", \n  \"waitForSync\" : false, \n  \"objectId\" : \"68475\", \n  \"cacheEnabled\" : false, \n  \"isSystem\" : false, \n  \"globallyUniqueId\" : \"h224C52C430E1/68476\", \n  \"keyOptions\" : { \n    \"allowUserKeys\" : true, \n    \"type\" : \"autoincrement\", \n    \"offset\" : 0, \n    \"increment\" : 5, \n    \"lastValue\" : 0 \n  }, \n  \"name\" : \"testCollectionUsers\" \n}\n
\n\n\n\n\n", "operationId": "handleCommandPost:CreateCollection", "parameters": [ { @@ -7464,7 +7544,7 @@ }, "/_api/collection/{collection-name}": { "delete": { - "description": "\n\nDrops the collection identified by *collection-name*.\n\nIf the collection was successfully dropped, an object is returned with\nthe following attributes:\n\n- *error*: *false*\n\n- *id*: The identifier of the dropped collection.\n\n\n\n\n**Warning:** \nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n\n\n\n\n\n\n**Example:**\n Using an identifier:\n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/collection/103217\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"id\" : \"103217\" \n}\n
\n\n\n\n\n**Example:**\n Using a name:\n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/collection/products1\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"id\" : \"103228\" \n}\n
\n\n\n\n\n**Example:**\n Dropping a system collection\n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/collection/_example?isSystem=true\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"id\" : \"103239\" \n}\n
\n\n\n\n\n\n", + "description": "\n\nDrops the collection identified by *collection-name*.\n\nIf the collection was successfully dropped, an object is returned with\nthe following attributes:\n\n- *error*: *false*\n\n- *id*: The identifier of the dropped collection.\n\n\n\n\n**Warning:** \nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n\n\n\n\n\n\n**Example:**\n Using an identifier:\n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/collection/68483\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"id\" : \"68483\" \n}\n
\n\n\n\n\n**Example:**\n Using a name:\n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/collection/products1\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"id\" : \"68490\" \n}\n
\n\n\n\n\n**Example:**\n Dropping a system collection\n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/collection/_example?isSystem=true\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"id\" : \"68497\" \n}\n
\n\n\n\n\n\n", "operationId": "handleCommandDelete:collection", "parameters": [ { @@ -7528,7 +7608,7 @@ }, "/_api/collection/{collection-name}/checksum": { "get": { - "description": "\n\nWill calculate a checksum of the meta-data (keys and optionally revision ids) and\noptionally the document data in the collection.\n\nThe checksum can be used to compare if two collections on different ArangoDB\ninstances contain the same contents. The current revision of the collection is\nreturned too so one can make sure the checksums are calculated for the same\nstate of data.\n\nBy default, the checksum will only be calculated on the *_key* system attribute\nof the documents contained in the collection. For edge collections, the system\nattributes *_from* and *_to* will also be included in the calculation.\n\nBy setting the optional query parameter *withRevisions* to *true*, then revision\nids (*_rev* system attributes) are included in the checksumming.\n\nBy providing the optional query parameter *withData* with a value of *true*,\nthe user-defined document attributes will be included in the calculation too.\n**Note**: Including user-defined attributes will make the checksumming slower.\n\nThe response is a JSON object with the following attributes:\n\n- *checksum*: The calculated checksum as a number.\n\n- *revision*: The collection revision id as a string.\n\n**Note**: this method is not available in a cluster.\n\n\n\n\n**Warning:** \nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n\n\n\n\n\n\n**Example:**\n Retrieving the checksum of a collection:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/collection/products/checksum\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nlocation: /_api/collection/products/checksum\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"globallyUniqueId\" : \"h82E80CF18F1A/103248\", \n  \"isSystem\" : false, \n  \"id\" : \"103248\", \n  \"name\" : \"products\", \n  \"revision\" : \"_YzHmTou--B\", \n  \"checksum\" : \"1624896960783937834\", \n  \"status\" : 3, \n  \"type\" : 2 \n}\n
\n\n\n\n\n**Example:**\n Retrieving the checksum of a collection including the collection data,\nbut not the revisions:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/collection/products/checksum?withRevisions=false&withData=true\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nlocation: /_api/collection/products/checksum\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"globallyUniqueId\" : \"h82E80CF18F1A/103264\", \n  \"isSystem\" : false, \n  \"id\" : \"103264\", \n  \"name\" : \"products\", \n  \"revision\" : \"_YzHmTqC--_\", \n  \"checksum\" : \"7684896346013041496\", \n  \"status\" : 3, \n  \"type\" : 2 \n}\n
\n\n\n\n\n", + "description": "\n\nWill calculate a checksum of the meta-data (keys and optionally revision ids) and\noptionally the document data in the collection.\n\nThe checksum can be used to compare if two collections on different ArangoDB\ninstances contain the same contents. The current revision of the collection is\nreturned too so one can make sure the checksums are calculated for the same\nstate of data.\n\nBy default, the checksum will only be calculated on the *_key* system attribute\nof the documents contained in the collection. For edge collections, the system\nattributes *_from* and *_to* will also be included in the calculation.\n\nBy setting the optional query parameter *withRevisions* to *true*, then revision\nids (*_rev* system attributes) are included in the checksumming.\n\nBy providing the optional query parameter *withData* with a value of *true*,\nthe user-defined document attributes will be included in the calculation too.\n**Note**: Including user-defined attributes will make the checksumming slower.\n\nThe response is a JSON object with the following attributes:\n\n- *checksum*: The calculated checksum as a number.\n\n- *revision*: The collection revision id as a string.\n\n**Note**: this method is not available in a cluster.\n\n\n\n\n**Warning:** \nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n\n\n\n\n\n\n**Example:**\n Retrieving the checksum of a collection:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/collection/products/checksum\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nlocation: /_api/collection/products/checksum\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"globallyUniqueId\" : \"h224C52C430E1/68504\", \n  \"isSystem\" : false, \n  \"id\" : \"68504\", \n  \"name\" : \"products\", \n  \"revision\" : \"_ZCIDU7m---\", \n  \"checksum\" : \"5790415694042608346\", \n  \"status\" : 3, \n  \"type\" : 2 \n}\n
\n\n\n\n\n**Example:**\n Retrieving the checksum of a collection including the collection data,\nbut not the revisions:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/collection/products/checksum?withRevisions=false&withData=true\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nlocation: /_api/collection/products/checksum\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"globallyUniqueId\" : \"h224C52C430E1/68514\", \n  \"isSystem\" : false, \n  \"id\" : \"68514\", \n  \"name\" : \"products\", \n  \"revision\" : \"_ZCIDU7y--A\", \n  \"checksum\" : \"13627984391451257305\", \n  \"status\" : 3, \n  \"type\" : 2 \n}\n
\n\n\n\n\n", "operationId": "handleCommandGet:collectionChecksum", "parameters": [ { @@ -7573,7 +7653,7 @@ }, "/_api/collection/{collection-name}/count": { "get": { - "description": "\n\nIn addition to the above, the result also contains the number of documents.\n**Note** that this will always load the collection into memory.\n\n- *count*: The number of documents inside the collection.\n\n\n\n\n**Warning:** \nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n\n\n\n\n\n\n**Example:**\n Requesting the number of documents:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/collection/products/count\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nlocation: /_api/collection/products/count\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"waitForSync\" : true, \n  \"type\" : 2, \n  \"status\" : 3, \n  \"journalSize\" : 33554432, \n  \"isVolatile\" : false, \n  \"name\" : \"products\", \n  \"doCompact\" : true, \n  \"isSystem\" : false, \n  \"count\" : 100, \n  \"keyOptions\" : { \n    \"allowUserKeys\" : true, \n    \"type\" : \"traditional\", \n    \"lastValue\" : 103585 \n  }, \n  \"globallyUniqueId\" : \"h82E80CF18F1A/103280\", \n  \"statusString\" : \"loaded\", \n  \"id\" : \"103280\", \n  \"indexBuckets\" : 8 \n}\n
\n\n\n\n\n", + "description": "\n\nIn addition to the above, the result also contains the number of documents.\n**Note** that this will always load the collection into memory.\n\n- *count*: The number of documents inside the collection.\n\n\n\n\n**Warning:** \nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n\n\n\n\n\n\n**Example:**\n Requesting the number of documents:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/collection/products/count\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nlocation: /_api/collection/products/count\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"type\" : 2, \n  \"status\" : 3, \n  \"name\" : \"products\", \n  \"waitForSync\" : true, \n  \"objectId\" : \"68523\", \n  \"cacheEnabled\" : false, \n  \"statusString\" : \"loaded\", \n  \"id\" : \"68524\", \n  \"count\" : 100, \n  \"isSystem\" : false, \n  \"globallyUniqueId\" : \"h224C52C430E1/68524\", \n  \"keyOptions\" : { \n    \"allowUserKeys\" : true, \n    \"type\" : \"traditional\", \n    \"lastValue\" : 68727 \n  } \n}\n
\n\n\n\n\n", "operationId": "handleCommandGet:getCollectionCount", "parameters": [ { @@ -7604,7 +7684,7 @@ }, "/_api/collection/{collection-name}/figures": { "get": { - "description": "\n\nIn addition to the above, the result also contains the number of documents\nand additional statistical information about the collection.\n**Note** : This will always load the collection into memory.\n\n**Note**: collection data that are stored in the write-ahead log only are\nnot reported in the results. When the write-ahead log is collected, documents\nmight be added to journals and datafiles of the collection, which may modify\nthe figures of the collection.\n\nAdditionally, the filesizes of collection and index parameter JSON files are\nnot reported. These files should normally have a size of a few bytes\neach. Please also note that the *fileSize* values are reported in bytes\nand reflect the logical file sizes. Some filesystems may use optimizations\n(e.g. sparse files) so that the actual physical file size is somewhat\ndifferent. Directories and sub-directories may also require space in the\nfile system, but this space is not reported in the *fileSize* results.\n\nThat means that the figures reported do not reflect the actual disk\nusage of the collection with 100% accuracy. The actual disk usage of\na collection is normally slightly higher than the sum of the reported\n*fileSize* values. Still the sum of the *fileSize* values can still be\nused as a lower bound approximation of the disk usage.\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nReturns information about the collection:\n\n- **count**: The number of documents currently present in the collection.\n- **journalSize**: The maximal size of a journal or datafile in bytes.\n- **figures**:\n - **datafiles**:\n - **count**: The number of datafiles.\n - **fileSize**: The total filesize of datafiles (in bytes).\n - **uncollectedLogfileEntries**: The number of markers in the write-ahead\n log for this collection that have not been transferred to journals or datafiles.\n - **documentReferences**: The number of references to documents in datafiles that JavaScript code \n currently holds. This information can be used for debugging compaction and \n unload issues.\n - **compactionStatus**:\n - **message**: The action that was performed when the compaction was last run for the collection. \n This information can be used for debugging compaction issues.\n - **time**: The point in time the compaction for the collection was last executed. \n This information can be used for debugging compaction issues.\n - **compactors**:\n - **count**: The number of compactor files.\n - **fileSize**: The total filesize of all compactor files (in bytes).\n - **dead**:\n - **count**: The number of dead documents. This includes document\n versions that have been deleted or replaced by a newer version. Documents\n deleted or replaced that are contained the write-ahead log only are not reported\n in this figure.\n - **deletion**: The total number of deletion markers. Deletion markers\n only contained in the write-ahead log are not reporting in this figure.\n - **size**: The total size in bytes used by all dead documents.\n - **indexes**:\n - **count**: The total number of indexes defined for the collection, including the pre-defined\n indexes (e.g. primary index).\n - **size**: The total memory allocated for indexes in bytes.\n - **readcache**:\n - **count**: The number of revisions of this collection stored in the document revisions cache.\n - **size**: The memory used for storing the revisions of this collection in the document \n revisions cache (in bytes). This figure does not include the document data but \n only mappings from document revision ids to cache entry locations.\n - **waitingFor**: An optional string value that contains information about which object type is at the \n head of the collection's cleanup queue. This information can be used for debugging \n compaction and unload issues.\n - **alive**:\n - **count**: The number of currently active documents in all datafiles\n and journals of the collection. Documents that are contained in the\n write-ahead log only are not reported in this figure.\n - **size**: The total size in bytes used by all active documents of\n the collection. Documents that are contained in the write-ahead log only are\n not reported in this figure.\n - **lastTick**: The tick of the last marker that was stored in a journal\n of the collection. This might be 0 if the collection does not yet have\n a journal.\n - **journals**:\n - **count**: The number of journal files.\n - **fileSize**: The total filesize of all journal files (in bytes).\n - **revisions**:\n - **count**: The number of revisions of this collection managed by the storage engine.\n - **size**: The memory used for storing the revisions of this collection in the storage \n engine (in bytes). This figure does not include the document data but only mappings \n from document revision ids to storage engine datafile positions.\n\n\n\n\n**Warning:** \nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n\n\n\n\n\n\n**Example:**\n Using an identifier and requesting the figures of the collection:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/collection/products/figures\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nlocation: /_api/collection/products/figures\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"type\" : 2, \n  \"status\" : 3, \n  \"journalSize\" : 33554432, \n  \"isVolatile\" : false, \n  \"name\" : \"products\", \n  \"doCompact\" : true, \n  \"isSystem\" : false, \n  \"count\" : 1, \n  \"waitForSync\" : false, \n  \"figures\" : { \n    \"indexes\" : { \n      \"count\" : 1, \n      \"size\" : 32128 \n    }, \n    \"documentReferences\" : 0, \n    \"waitingFor\" : \"-\", \n    \"alive\" : { \n      \"count\" : 1, \n      \"size\" : 88 \n    }, \n    \"dead\" : { \n      \"count\" : 0, \n      \"size\" : 0, \n      \"deletion\" : 0 \n    }, \n    \"compactionStatus\" : { \n      \"message\" : \"skipped compaction because collection has no datafiles\", \n      \"time\" : \"2019-06-13T19:54:58Z\", \n      \"count\" : 0, \n      \"filesCombined\" : 0, \n      \"bytesRead\" : 0, \n      \"bytesWritten\" : 0 \n    }, \n    \"datafiles\" : { \n      \"count\" : 0, \n      \"fileSize\" : 0 \n    }, \n    \"journals\" : { \n      \"count\" : 1, \n      \"fileSize\" : 33554432 \n    }, \n    \"compactors\" : { \n      \"count\" : 0, \n      \"fileSize\" : 0 \n    }, \n    \"revisions\" : { \n      \"count\" : 1, \n      \"size\" : 48192 \n    }, \n    \"lastTick\" : 103602, \n    \"uncollectedLogfileEntries\" : 0 \n  }, \n  \"keyOptions\" : { \n    \"allowUserKeys\" : true, \n    \"type\" : \"traditional\", \n    \"lastValue\" : 103600 \n  }, \n  \"globallyUniqueId\" : \"h82E80CF18F1A/103593\", \n  \"statusString\" : \"loaded\", \n  \"id\" : \"103593\", \n  \"indexBuckets\" : 8 \n}\n
\n\n\n\n\n", + "description": "\n\nIn addition to the above, the result also contains the number of documents\nand additional statistical information about the collection.\n**Note**: This will always load the collection into memory.\n\n**Note**: collection data that is stored in the write-ahead log only is\nnot reported in the results. When the write-ahead log is collected, documents\nmight be added to journals and datafiles of the collection, which may modify\nthe figures of the collection.\n\nAdditionally, the filesizes of collection and index parameter JSON files are\nnot reported. These files should normally have a size of a few bytes\neach. Please also note that the *fileSize* values are reported in bytes\nand reflect the logical file sizes. Some filesystems may use optimizations\n(e.g. sparse files) so that the actual physical file size is somewhat\ndifferent. Directories and sub-directories may also require space in the\nfile system, but this space is not reported in the *fileSize* results.\n\nThat means that the figures reported do not reflect the actual disk\nusage of the collection with 100% accuracy. The actual disk usage of\na collection is normally slightly higher than the sum of the reported\n*fileSize* values. Still the sum of the *fileSize* values can still be\nused as a lower bound approximation of the disk usage.\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nReturns information about the collection:\n\n- **count**: The number of documents currently present in the collection.\n- **journalSize**: The maximal size of a journal or datafile in bytes.\n- **figures**:\n - **datafiles**:\n - **count**: The number of datafiles.\n - **fileSize**: The total filesize of datafiles (in bytes).\n - **uncollectedLogfileEntries**: The number of markers in the write-ahead\n log for this collection that have not been transferred to journals or datafiles.\n - **documentReferences**: The number of references to documents in datafiles that JavaScript code \n currently holds. This information can be used for debugging compaction and \n unload issues.\n - **compactionStatus**:\n - **message**: The action that was performed when the compaction was last run for the collection. \n This information can be used for debugging compaction issues.\n - **time**: The point in time the compaction for the collection was last executed. \n This information can be used for debugging compaction issues.\n - **compactors**:\n - **count**: The number of compactor files.\n - **fileSize**: The total filesize of all compactor files (in bytes).\n - **dead**:\n - **count**: The number of dead documents. This includes document\n versions that have been deleted or replaced by a newer version. Documents\n deleted or replaced that are contained the write-ahead log only are not reported\n in this figure.\n - **deletion**: The total number of deletion markers. Deletion markers\n only contained in the write-ahead log are not reporting in this figure.\n - **size**: The total size in bytes used by all dead documents.\n - **indexes**:\n - **count**: The total number of indexes defined for the collection, including the pre-defined\n indexes (e.g. primary index).\n - **size**: The total memory allocated for indexes in bytes.\n - **readcache**:\n - **count**: The number of revisions of this collection stored in the document revisions cache.\n - **size**: The memory used for storing the revisions of this collection in the document \n revisions cache (in bytes). This figure does not include the document data but \n only mappings from document revision ids to cache entry locations.\n - **waitingFor**: An optional string value that contains information about which object type is at the \n head of the collection's cleanup queue. This information can be used for debugging \n compaction and unload issues.\n - **alive**:\n - **count**: The number of currently active documents in all datafiles\n and journals of the collection. Documents that are contained in the\n write-ahead log only are not reported in this figure.\n - **size**: The total size in bytes used by all active documents of\n the collection. Documents that are contained in the write-ahead log only are\n not reported in this figure.\n - **lastTick**: The tick of the last marker that was stored in a journal\n of the collection. This might be 0 if the collection does not yet have\n a journal.\n - **journals**:\n - **count**: The number of journal files.\n - **fileSize**: The total filesize of all journal files (in bytes).\n - **revisions**:\n - **count**: The number of revisions of this collection managed by the storage engine.\n - **size**: The memory used for storing the revisions of this collection in the storage \n engine (in bytes). This figure does not include the document data but only mappings \n from document revision ids to storage engine datafile positions.\n\n\n\n\n**Warning:** \nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n\n\n\n\n\n\n**Example:**\n Using an identifier and requesting the figures of the collection (MMFiles storage engine):\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/collection/products/figures\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nlocation: /_api/collection/products/figures\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"type\" : 2, \n  \"status\" : 3, \n  \"journalSize\" : 33554432, \n  \"isVolatile\" : false, \n  \"name\" : \"products\", \n  \"doCompact\" : true, \n  \"isSystem\" : false, \n  \"count\" : 1, \n  \"waitForSync\" : false, \n  \"figures\" : { \n    \"indexes\" : { \n      \"count\" : 1, \n      \"size\" : 32128 \n    }, \n    \"documentReferences\" : 0, \n    \"waitingFor\" : \"-\", \n    \"alive\" : { \n      \"count\" : 1, \n      \"size\" : 80 \n    }, \n    \"dead\" : { \n      \"count\" : 0, \n      \"size\" : 0, \n      \"deletion\" : 0 \n    }, \n    \"compactionStatus\" : { \n      \"message\" : \"skipped compaction because collection has no datafiles\", \n      \"time\" : \"2019-07-30T10:55:08Z\", \n      \"count\" : 0, \n      \"filesCombined\" : 0, \n      \"bytesRead\" : 0, \n      \"bytesWritten\" : 0 \n    }, \n    \"datafiles\" : { \n      \"count\" : 0, \n      \"fileSize\" : 0 \n    }, \n    \"journals\" : { \n      \"count\" : 1, \n      \"fileSize\" : 33554432 \n    }, \n    \"compactors\" : { \n      \"count\" : 0, \n      \"fileSize\" : 0 \n    }, \n    \"revisions\" : { \n      \"count\" : 1, \n      \"size\" : 48192 \n    }, \n    \"lastTick\" : 120, \n    \"uncollectedLogfileEntries\" : 0 \n  }, \n  \"keyOptions\" : { \n    \"allowUserKeys\" : true, \n    \"type\" : \"traditional\", \n    \"lastValue\" : 118 \n  }, \n  \"globallyUniqueId\" : \"h7222A8B9724E/111\", \n  \"statusString\" : \"loaded\", \n  \"id\" : \"111\", \n  \"indexBuckets\" : 8 \n}\n
\n\n\n\n\n**Example:**\n Using an identifier and requesting the figures of the collection (RocksDB storage engine):\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/collection/products/figures\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nlocation: /_api/collection/products/figures\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"type\" : 2, \n  \"status\" : 3, \n  \"name\" : \"products\", \n  \"waitForSync\" : false, \n  \"objectId\" : \"68731\", \n  \"cacheEnabled\" : false, \n  \"figures\" : { \n    \"indexes\" : { \n      \"count\" : 1, \n      \"size\" : 30 \n    }, \n    \"documentsSize\" : 52, \n    \"cacheInUse\" : false, \n    \"cacheSize\" : 0, \n    \"cacheUsage\" : 0 \n  }, \n  \"keyOptions\" : { \n    \"allowUserKeys\" : true, \n    \"type\" : \"traditional\", \n    \"lastValue\" : 68737 \n  }, \n  \"globallyUniqueId\" : \"h224C52C430E1/68732\", \n  \"statusString\" : \"loaded\", \n  \"id\" : \"68732\", \n  \"count\" : 1, \n  \"isSystem\" : false \n}\n
\n\n\n\n\n\n", "operationId": "handleCommandGet:collectionFigures", "parameters": [ { @@ -7625,7 +7705,7 @@ "schema": { "$ref": "#/definitions/get_api_collection_figures_rc_200" }, - "x-description-offset": 1370 + "x-description-offset": 1367 }, "400": { "description": "If the *collection-name* is missing, then a *HTTP 400* is\nreturned.\n\n" @@ -7645,7 +7725,7 @@ }, "/_api/collection/{collection-name}/load": { "put": { - "description": "\n\nLoads a collection into memory. Returns the collection on success.\n\nThe request body object might optionally contain the following attribute:\n\n- *count*: If set, this controls whether the return value should include\n the number of documents in the collection. Setting *count* to\n *false* may speed up loading a collection. The default value for\n *count* is *true*.\n\nOn success an object with the following attributes is returned:\n\n- *id*: The identifier of the collection.\n\n- *name*: The name of the collection.\n\n- *count*: The number of documents inside the collection. This is only\n returned if the *count* input parameters is set to *true* or has\n not been specified.\n\n- *status*: The status of the collection as number.\n\n- *type*: The collection type. Valid types are:\n - 2: document collection\n - 3: edges collection\n\n- *isSystem*: If *true* then the collection is a system collection.\n\n\n\n\n**Warning:** \nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n\n\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/collection/products/load\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nlocation: /_api/collection/products/load\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"type\" : 2, \n  \"globallyUniqueId\" : \"h82E80CF18F1A/103658\", \n  \"id\" : \"103658\", \n  \"count\" : 0, \n  \"isSystem\" : false, \n  \"name\" : \"products\", \n  \"status\" : 3 \n}\n
\n\n\n\n\n", + "description": "\n\nLoads a collection into memory. Returns the collection on success.\n\nThe request body object might optionally contain the following attribute:\n\n- *count*: If set, this controls whether the return value should include\n the number of documents in the collection. Setting *count* to\n *false* may speed up loading a collection. The default value for\n *count* is *true*.\n\nOn success an object with the following attributes is returned:\n\n- *id*: The identifier of the collection.\n\n- *name*: The name of the collection.\n\n- *count*: The number of documents inside the collection. This is only\n returned if the *count* input parameters is set to *true* or has\n not been specified.\n\n- *status*: The status of the collection as number.\n\n- *type*: The collection type. Valid types are:\n - 2: document collection\n - 3: edges collection\n\n- *isSystem*: If *true* then the collection is a system collection.\n\n\n\n\n**Warning:** \nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n\n\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/collection/products/load\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nlocation: /_api/collection/products/load\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"type\" : 2, \n  \"globallyUniqueId\" : \"h224C52C430E1/68766\", \n  \"id\" : \"68766\", \n  \"count\" : 0, \n  \"isSystem\" : false, \n  \"name\" : \"products\", \n  \"status\" : 3 \n}\n
\n\n\n\n\n", "operationId": "handleCommandPut:loadCollection", "parameters": [ { @@ -7710,7 +7790,7 @@ }, "/_api/collection/{collection-name}/properties": { "get": { - "description": "\n**HTTP 200**\n*A json document with these Properties is returned:*\n\n- **smartGraphAttribute**: Attribute that is used in smart graphs, *Cluster specific attribute.*\n- **journalSize**: The maximal size setting for journals / datafiles\nin bytes. This option is only present for the MMFiles storage engine.\n- **replicationFactor**: contains how many copies of each shard are kept on different DBServers.; *Cluster specific attribute.*\n- **keyOptions**:\n - **lastValue**: \n - **allowUserKeys**: if set to *true*, then it is allowed to supply\n own key values in the *_key* attribute of a document. If set to\n *false*, then the key generator is solely responsible for\n generating keys and supplying own key values in the *_key* attribute\n of documents is considered an error.\n - **type**: specifies the type of the key generator. The currently\n available generators are *traditional*, *autoincrement*, *uuid*\n and *padded*.\n- **name**: literal name of this collection\n- **waitForSync**: If *true* then creating, changing or removing\ndocuments will wait until the data has been synchronized to disk.\n- **doCompact**: Whether or not the collection will be compacted.\nThis option is only present for the MMFiles storage engine.\n- **shardingStrategy**: the sharding strategy selected for the collection; *Cluster specific attribute.*\nOne of 'hash' or 'enterprise-hash-smart-edge'\n- **isVolatile**: If *true* then the collection data will be\nkept in memory only and ArangoDB will not write or sync the data\nto disk. This option is only present for the MMFiles storage engine.\n- **indexBuckets**: the number of index buckets\n*Only relevant for the MMFiles storage engine*\n- **numberOfShards**: The number of shards of the collection; *Cluster specific attribute.*\n- **status**: corrosponds to **statusString**; *Only relevant for the MMFiles storage engine*\n - 0: \"unknown\" - may be corrupted\n - 1: (deprecated, maps to \"unknown\")\n - 2: \"unloaded\"\n - 3: \"loaded\"\n - 4: \"unloading\"\n - 5: \"deleted\"\n - 6: \"loading\"\n- **statusString**: any of: [\"unloaded\", \"loading\", \"loaded\", \"unloading\", \"deleted\", \"unknown\"] *Only relevant for the MMFiles storage engine*\n- **globallyUniqueId**: Unique identifier of the collection\n- **id**: unique identifier of the collection; *deprecated*\n- **isSystem**: true if this is a system collection; usually *name* will start with an underscore.\n- **type**: The type of the collection:\n - 0: \"unknown\"\n - 2: regular document collection\n - 3: edge collection\n- **shardKeys** (string): contains the names of document attributes that are used to\ndetermine the target shard for documents; *Cluster specific attribute.*\n\n\n\n\n\n\n\n\n**Warning:** \nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n\n\n\n\n\n\n**Example:**\n Using an identifier:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/collection/103622/properties\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nlocation: /_api/collection/103622/properties\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"waitForSync\" : true, \n  \"type\" : 2, \n  \"status\" : 3, \n  \"journalSize\" : 33554432, \n  \"keyOptions\" : { \n    \"allowUserKeys\" : true, \n    \"type\" : \"traditional\", \n    \"lastValue\" : 0 \n  }, \n  \"globallyUniqueId\" : \"h82E80CF18F1A/103622\", \n  \"statusString\" : \"loaded\", \n  \"id\" : \"103622\", \n  \"name\" : \"products\", \n  \"doCompact\" : true, \n  \"isSystem\" : false, \n  \"indexBuckets\" : 8, \n  \"isVolatile\" : false \n}\n
\n\n\n\n\n**Example:**\n Using a name:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/collection/products/properties\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nlocation: /_api/collection/products/properties\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"waitForSync\" : true, \n  \"type\" : 2, \n  \"status\" : 3, \n  \"journalSize\" : 33554432, \n  \"keyOptions\" : { \n    \"allowUserKeys\" : true, \n    \"type\" : \"traditional\", \n    \"lastValue\" : 0 \n  }, \n  \"globallyUniqueId\" : \"h82E80CF18F1A/103634\", \n  \"statusString\" : \"loaded\", \n  \"id\" : \"103634\", \n  \"name\" : \"products\", \n  \"doCompact\" : true, \n  \"isSystem\" : false, \n  \"indexBuckets\" : 8, \n  \"isVolatile\" : false \n}\n
\n\n\n\n\n", + "description": "\n**HTTP 200**\n*A json document with these Properties is returned:*\n\n- **smartGraphAttribute**: Attribute that is used in smart graphs, *Cluster specific attribute.*\n- **journalSize**: The maximal size setting for journals / datafiles\nin bytes. This option is only present for the MMFiles storage engine.\n- **replicationFactor**: contains how many copies of each shard are kept on different DBServers.; *Cluster specific attribute.*\n- **keyOptions**:\n - **lastValue**: \n - **allowUserKeys**: if set to *true*, then it is allowed to supply\n own key values in the *_key* attribute of a document. If set to\n *false*, then the key generator is solely responsible for\n generating keys and supplying own key values in the *_key* attribute\n of documents is considered an error.\n - **type**: specifies the type of the key generator. The currently\n available generators are *traditional*, *autoincrement*, *uuid*\n and *padded*.\n- **name**: literal name of this collection\n- **waitForSync**: If *true* then creating, changing or removing\ndocuments will wait until the data has been synchronized to disk.\n- **doCompact**: Whether or not the collection will be compacted.\nThis option is only present for the MMFiles storage engine.\n- **shardingStrategy**: the sharding strategy selected for the collection; *Cluster specific attribute.*\nOne of 'hash' or 'enterprise-hash-smart-edge'\n- **isVolatile**: If *true* then the collection data will be\nkept in memory only and ArangoDB will not write or sync the data\nto disk. This option is only present for the MMFiles storage engine.\n- **indexBuckets**: the number of index buckets\n*Only relevant for the MMFiles storage engine*\n- **numberOfShards**: The number of shards of the collection; *Cluster specific attribute.*\n- **status**: corrosponds to **statusString**; *Only relevant for the MMFiles storage engine*\n - 0: \"unknown\" - may be corrupted\n - 1: (deprecated, maps to \"unknown\")\n - 2: \"unloaded\"\n - 3: \"loaded\"\n - 4: \"unloading\"\n - 5: \"deleted\"\n - 6: \"loading\"\n- **statusString**: any of: [\"unloaded\", \"loading\", \"loaded\", \"unloading\", \"deleted\", \"unknown\"] *Only relevant for the MMFiles storage engine*\n- **globallyUniqueId**: Unique identifier of the collection\n- **id**: unique identifier of the collection; *deprecated*\n- **isSystem**: true if this is a system collection; usually *name* will start with an underscore.\n- **minReplicationFactor**: contains how many minimal copies of each shard need to be in sync on different DBServers.\nThe shards will refuse to write, if we have less then these many copies in sync. *Cluster specific attribute.*\n- **type**: The type of the collection:\n - 0: \"unknown\"\n - 2: regular document collection\n - 3: edge collection\n- **shardKeys** (string): contains the names of document attributes that are used to\ndetermine the target shard for documents; *Cluster specific attribute.*\n\n\n\n\n\n\n\n\n**Warning:** \nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n\n\n\n\n\n\n**Example:**\n Using an identifier:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/collection/68742/properties\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nlocation: /_api/collection/68742/properties\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"type\" : 2, \n  \"status\" : 3, \n  \"statusString\" : \"loaded\", \n  \"id\" : \"68742\", \n  \"waitForSync\" : true, \n  \"objectId\" : \"68741\", \n  \"cacheEnabled\" : false, \n  \"isSystem\" : false, \n  \"globallyUniqueId\" : \"h224C52C430E1/68742\", \n  \"keyOptions\" : { \n    \"allowUserKeys\" : true, \n    \"type\" : \"traditional\", \n    \"lastValue\" : 0 \n  }, \n  \"name\" : \"products\" \n}\n
\n\n\n\n\n**Example:**\n Using a name:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/collection/products/properties\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nlocation: /_api/collection/products/properties\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"type\" : 2, \n  \"status\" : 3, \n  \"statusString\" : \"loaded\", \n  \"id\" : \"68750\", \n  \"waitForSync\" : true, \n  \"objectId\" : \"68749\", \n  \"cacheEnabled\" : false, \n  \"isSystem\" : false, \n  \"globallyUniqueId\" : \"h224C52C430E1/68750\", \n  \"keyOptions\" : { \n    \"allowUserKeys\" : true, \n    \"type\" : \"traditional\", \n    \"lastValue\" : 0 \n  }, \n  \"name\" : \"products\" \n}\n
\n\n\n\n\n", "operationId": "handleCommandGet:collectionProperties", "parameters": [ { @@ -7749,7 +7829,7 @@ "x-hints": "{% hint 'warning' %}\nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n{% endhint %}\n\n" }, "put": { - "description": "\n\nChanges the properties of a collection. Expects an object with the\nattribute(s)\n\n- *waitForSync*: If *true* then creating or changing a\n document will wait until the data has been synchronized to disk.\n\n- *journalSize*: The maximal size of a journal or datafile in bytes. \n The value must be at least `1048576` (1 MB). Note that when\n changing the journalSize value, it will only have an effect for\n additional journals or datafiles that are created. Already\n existing journals or datafiles will not be affected.\n\nOn success an object with the following attributes is returned:\n\n- *id*: The identifier of the collection.\n\n- *name*: The name of the collection.\n\n- *waitForSync*: The new value.\n\n- *journalSize*: The new value.\n\n- *status*: The status of the collection as number.\n\n- *type*: The collection type. Valid types are:\n - 2: document collection\n - 3: edges collection\n\n- *isSystem*: If *true* then the collection is a system collection.\n\n- *isVolatile*: If *true* then the collection data will be\n kept in memory only and ArangoDB will not write or sync the data\n to disk.\n\n- *doCompact*: Whether or not the collection will be compacted.\n\n- *keyOptions*: JSON object which contains key generation options:\n - *type*: specifies the type of the key generator. The currently\n available generators are *traditional*, *autoincrement*, *uuid*\n and *padded*.\n - *allowUserKeys*: if set to *true*, then it is allowed to supply\n own key values in the *_key* attribute of a document. If set to\n *false*, then the key generator is solely responsible for\n generating keys and supplying own key values in the *_key* attribute\n of documents is considered an error.\n\n**Note**: except for *waitForSync*, *journalSize* and *name*, collection\nproperties **cannot be changed** once a collection is created. To rename\na collection, the rename endpoint must be used.\n\n\n\n\n**Warning:** \nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n\n\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/collection/products/properties <<EOF\n{ \n  \"waitForSync\" : true \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nlocation: /_api/collection/products/properties\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"waitForSync\" : true, \n  \"type\" : 2, \n  \"status\" : 3, \n  \"journalSize\" : 33554432, \n  \"keyOptions\" : { \n    \"allowUserKeys\" : true, \n    \"type\" : \"traditional\", \n    \"lastValue\" : 0 \n  }, \n  \"globallyUniqueId\" : \"h82E80CF18F1A/103683\", \n  \"statusString\" : \"loaded\", \n  \"id\" : \"103683\", \n  \"name\" : \"products\", \n  \"doCompact\" : true, \n  \"isSystem\" : false, \n  \"indexBuckets\" : 8, \n  \"isVolatile\" : false \n}\n
\n\n\n\n\n", + "description": "\n\nChanges the properties of a collection. Expects an object with the\nattribute(s)\n\n- *waitForSync*: If *true* then creating or changing a\n document will wait until the data has been synchronized to disk.\n\n- *journalSize*: The maximal size of a journal or datafile in bytes. \n The value must be at least `1048576` (1 MB). Note that when\n changing the journalSize value, it will only have an effect for\n additional journals or datafiles that are created. Already\n existing journals or datafiles will not be affected.\n\nOn success an object with the following attributes is returned:\n\n- *id*: The identifier of the collection.\n\n- *name*: The name of the collection.\n\n- *waitForSync*: The new value.\n\n- *journalSize*: The new value.\n\n- *status*: The status of the collection as number.\n\n- *type*: The collection type. Valid types are:\n - 2: document collection\n - 3: edges collection\n\n- *isSystem*: If *true* then the collection is a system collection.\n\n- *isVolatile*: If *true* then the collection data will be\n kept in memory only and ArangoDB will not write or sync the data\n to disk.\n\n- *doCompact*: Whether or not the collection will be compacted.\n\n- *keyOptions*: JSON object which contains key generation options:\n - *type*: specifies the type of the key generator. The currently\n available generators are *traditional*, *autoincrement*, *uuid*\n and *padded*.\n - *allowUserKeys*: if set to *true*, then it is allowed to supply\n own key values in the *_key* attribute of a document. If set to\n *false*, then the key generator is solely responsible for\n generating keys and supplying own key values in the *_key* attribute\n of documents is considered an error.\n\n**Note**: except for *waitForSync*, *journalSize* and *name*, collection\nproperties **cannot be changed** once a collection is created. To rename\na collection, the rename endpoint must be used.\n\n\n\n\n**Warning:** \nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n\n\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/collection/products/properties <<EOF\n{ \n  \"waitForSync\" : true \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nlocation: /_api/collection/products/properties\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"type\" : 2, \n  \"status\" : 3, \n  \"statusString\" : \"loaded\", \n  \"id\" : \"68783\", \n  \"waitForSync\" : true, \n  \"objectId\" : \"68782\", \n  \"cacheEnabled\" : false, \n  \"isSystem\" : false, \n  \"globallyUniqueId\" : \"h224C52C430E1/68783\", \n  \"keyOptions\" : { \n    \"allowUserKeys\" : true, \n    \"type\" : \"traditional\", \n    \"lastValue\" : 0 \n  }, \n  \"name\" : \"products\" \n}\n
\n\n\n\n\n", "operationId": "handleCommandPut:modifyProperties", "parameters": [ { @@ -7811,7 +7891,7 @@ }, "/_api/collection/{collection-name}/rename": { "put": { - "description": "\n\nRenames a collection. Expects an object with the attribute(s)\n\n- *name*: The new name.\n\nIt returns an object with the attributes\n\n- *id*: The identifier of the collection.\n\n- *name*: The new name of the collection.\n\n- *status*: The status of the collection as number.\n\n- *type*: The collection type. Valid types are:\n - 2: document collection\n - 3: edges collection\n\n- *isSystem*: If *true* then the collection is a system collection.\n\nIf renaming the collection succeeds, then the collection is also renamed in \nall graph definitions inside the `_graphs` collection in the current database.\n\n**Note**: this method is not available in a cluster.\n\n\n\n\n**Warning:** \nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n\n\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/collection/products1/rename <<EOF\n{ \n  \"name\" : \"newname\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nlocation: /_api/collection/products1/rename\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"status\" : 3, \n  \"name\" : \"newname\", \n  \"type\" : 2, \n  \"isSystem\" : false, \n  \"globallyUniqueId\" : \"h82E80CF18F1A/103697\", \n  \"id\" : \"103697\" \n}\n
\n\n\n\n\n", + "description": "\n\nRenames a collection. Expects an object with the attribute(s)\n\n- *name*: The new name.\n\nIt returns an object with the attributes\n\n- *id*: The identifier of the collection.\n\n- *name*: The new name of the collection.\n\n- *status*: The status of the collection as number.\n\n- *type*: The collection type. Valid types are:\n - 2: document collection\n - 3: edges collection\n\n- *isSystem*: If *true* then the collection is a system collection.\n\nIf renaming the collection succeeds, then the collection is also renamed in \nall graph definitions inside the `_graphs` collection in the current database.\n\n**Note**: this method is not available in a cluster.\n\n\n\n\n**Warning:** \nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n\n\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/collection/products1/rename <<EOF\n{ \n  \"name\" : \"newname\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nlocation: /_api/collection/products1/rename\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"status\" : 3, \n  \"name\" : \"newname\", \n  \"type\" : 2, \n  \"isSystem\" : false, \n  \"globallyUniqueId\" : \"h224C52C430E1/68792\", \n  \"id\" : \"68792\" \n}\n
\n\n\n\n\n", "operationId": "handleCommandPut:renameCollection", "parameters": [ { @@ -7876,7 +7956,7 @@ }, "/_api/collection/{collection-name}/revision": { "get": { - "description": "\n\nIn addition to the above, the result will also contain the\ncollection's revision id. The revision id is a server-generated\nstring that clients can use to check whether data in a collection\nhas changed since the last revision check.\n\n- *revision*: The collection revision id as a string.\n\n\n\n\n**Warning:** \nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n\n\n\n\n\n\n**Example:**\n Retrieving the revision of a collection\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/collection/products/revision\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nlocation: /_api/collection/products/revision\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"waitForSync\" : false, \n  \"journalSize\" : 33554432, \n  \"isVolatile\" : false, \n  \"isSystem\" : false, \n  \"indexBuckets\" : 8, \n  \"keyOptions\" : { \n    \"allowUserKeys\" : true, \n    \"type\" : \"traditional\", \n    \"lastValue\" : 0 \n  }, \n  \"globallyUniqueId\" : \"h82E80CF18F1A/103646\", \n  \"statusString\" : \"loaded\", \n  \"id\" : \"103646\", \n  \"revision\" : \"0\", \n  \"status\" : 3, \n  \"type\" : 2, \n  \"name\" : \"products\", \n  \"doCompact\" : true \n}\n
\n\n\n\n\n", + "description": "\n\nIn addition to the above, the result will also contain the\ncollection's revision id. The revision id is a server-generated\nstring that clients can use to check whether data in a collection\nhas changed since the last revision check.\n\n- *revision*: The collection revision id as a string.\n\n\n\n\n**Warning:** \nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n\n\n\n\n\n\n**Example:**\n Retrieving the revision of a collection\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/collection/products/revision\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nlocation: /_api/collection/products/revision\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"isSystem\" : false, \n  \"keyOptions\" : { \n    \"allowUserKeys\" : true, \n    \"type\" : \"traditional\", \n    \"lastValue\" : 0 \n  }, \n  \"globallyUniqueId\" : \"h224C52C430E1/68758\", \n  \"statusString\" : \"loaded\", \n  \"id\" : \"68758\", \n  \"name\" : \"products\", \n  \"revision\" : \"0\", \n  \"status\" : 3, \n  \"type\" : 2, \n  \"waitForSync\" : false, \n  \"objectId\" : \"68757\", \n  \"cacheEnabled\" : false \n}\n
\n\n\n\n\n", "operationId": "handleCommandGet:collectionRevision", "parameters": [ { @@ -7938,7 +8018,7 @@ }, "/_api/collection/{collection-name}/truncate": { "put": { - "description": "\n\nRemoves all documents from the collection, but leaves the indexes intact.\n\n\n\n\n**Warning:** \nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n\n\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/collection/products/truncate\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nlocation: /_api/collection/products/truncate\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"status\" : 3, \n  \"name\" : \"products\", \n  \"type\" : 2, \n  \"isSystem\" : false, \n  \"globallyUniqueId\" : \"h82E80CF18F1A/103707\", \n  \"id\" : \"103707\" \n}\n
\n\n\n\n\n", + "description": "\n\nRemoves all documents from the collection, but leaves the indexes intact.\n\n\n\n\n**Warning:** \nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n\n\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/collection/products/truncate\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nlocation: /_api/collection/products/truncate\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"status\" : 3, \n  \"name\" : \"products\", \n  \"type\" : 2, \n  \"isSystem\" : false, \n  \"globallyUniqueId\" : \"h224C52C430E1/68799\", \n  \"id\" : \"68799\" \n}\n
\n\n\n\n\n", "operationId": "handleCommandPut:truncateCollection", "parameters": [ { @@ -7969,7 +8049,7 @@ }, "/_api/collection/{collection-name}/unload": { "put": { - "description": "\n\nRemoves a collection from memory. This call does not delete any documents.\nYou can use the collection afterwards; in which case it will be loaded into\nmemory, again. On success an object with the following attributes is\nreturned:\n\n- *id*: The identifier of the collection.\n\n- *name*: The name of the collection.\n\n- *status*: The status of the collection as number.\n\n- *type*: The collection type. Valid types are:\n - 2: document collection\n - 3: edges collection\n\n- *isSystem*: If *true* then the collection is a system collection.\n\n\n\n\n**Warning:** \nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n\n\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/collection/products/unload\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nlocation: /_api/collection/products/unload\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"status\" : 4, \n  \"name\" : \"products\", \n  \"type\" : 2, \n  \"isSystem\" : false, \n  \"globallyUniqueId\" : \"h82E80CF18F1A/103720\", \n  \"id\" : \"103720\" \n}\n
\n\n\n\n\n", + "description": "\n\nRemoves a collection from memory. This call does not delete any documents.\nYou can use the collection afterwards; in which case it will be loaded into\nmemory, again. On success an object with the following attributes is\nreturned:\n\n- *id*: The identifier of the collection.\n\n- *name*: The name of the collection.\n\n- *status*: The status of the collection as number.\n\n- *type*: The collection type. Valid types are:\n - 2: document collection\n - 3: edges collection\n\n- *isSystem*: If *true* then the collection is a system collection.\n\n\n\n\n**Warning:** \nAccessing collections by their numeric ID is deprecated from version 3.4.0 on.\nYou should reference them via their names instead.\n\n\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/collection/products/unload\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nlocation: /_api/collection/products/unload\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"status\" : 2, \n  \"name\" : \"products\", \n  \"type\" : 2, \n  \"isSystem\" : false, \n  \"globallyUniqueId\" : \"h224C52C430E1/68807\", \n  \"id\" : \"68807\" \n}\n
\n\n\n\n\n", "operationId": "handleCommandPut:collectionUnload", "parameters": [ { @@ -8000,7 +8080,7 @@ }, "/_api/cursor": { "post": { - "description": "\n**A JSON object with these properties is required:**\n\n - **count**: indicates whether the number of documents in the result set should be returned in\n the \"count\" attribute of the result.\n Calculating the \"count\" attribute might have a performance impact for some queries\n in the future so this option is turned off by default, and \"count\"\n is only returned when requested.\n - **batchSize**: maximum number of result documents to be transferred from\n the server to the client in one roundtrip. If this attribute is\n not set, a server-controlled default value will be used. A *batchSize* value of\n *0* is disallowed.\n - **cache**: flag to determine whether the AQL query results cache\n shall be used. If set to *false*, then any query cache lookup will be skipped\n for the query. If set to *true*, it will lead to the query cache being checked\n for the query if the query cache mode is either *on* or *demand*.\n - **memoryLimit**: the maximum number of memory (measured in bytes) that the query is allowed to\n use. If set, then the query will fail with error \"resource limit exceeded\" in\n case it allocates too much memory. A value of *0* indicates that there is no\n memory limit.\n - **ttl**: The time-to-live for the cursor (in seconds). The cursor will be\n removed on the server automatically after the specified amount of time. This\n is useful to ensure garbage collection of cursors that are not fully fetched\n by clients. If not set, a server-defined value will be used (default: 30 seconds).\n - **query**: contains the query string to be executed\n - **bindVars** (object): key/value pairs representing the bind parameters.\n - **options**:\n - **failOnWarning**: When set to *true*, the query will throw an exception and abort instead of producing\n a warning. This option should be used during development to catch potential issues\n early. When the attribute is set to *false*, warnings will not be propagated to\n exceptions and will be returned with the query result.\n There is also a server configuration option `--query.fail-on-warning` for setting the\n default value for *failOnWarning* so it does not need to be set on a per-query level.\n - **profile**: If set to *true* or *1*, then the additional query profiling information will be returned\n in the sub-attribute *profile* of the *extra* return attribute, if the query result\n is not served from the query cache. Set to *2* the query will include execution stats\n per query plan node in sub-attribute *stats.nodes* of the *extra* return attribute.\n Additionally the query plan is returned in the sub-attribute *extra.plan*.\n - **maxTransactionSize**: Transaction size limit in bytes. Honored by the RocksDB storage engine only.\n - **stream**: Specify *true* and the query will be executed in a **streaming** fashion. The query result is\n not stored on the server, but calculated on the fly. *Beware*: long-running queries will\n need to hold the collection locks for as long as the query cursor exists. \n When set to *false* a query will be executed right away in its entirety. \n In that case query results are either returned right away (if the result set is small enough),\n or stored on the arangod instance and accessible via the cursor API (with respect to the `ttl`). \n It is advisable to *only* use this option on short-running queries or without exclusive locks \n (write-locks on MMFiles).\n Please note that the query options `cache`, `count` and `fullCount` will not work on streaming queries.\n Additionally query statistics, warnings and profiling data will only be available after the query is finished.\n The default value is *false*\n - **skipInaccessibleCollections**: AQL queries (especially graph traversals) will treat collection to which a user has no access rights as if these collections were empty. Instead of returning a forbidden access error, your queries will execute normally. This is intended to help with certain use-cases: A graph contains several collections and different users execute AQL queries on that graph. You can now naturally limit the accessible results by changing the access rights of users on collections. This feature is only available in the Enterprise Edition.\n - **maxWarningCount**: Limits the maximum number of warnings a query will return. The number of warnings\n a query will return is limited to 10 by default, but that number can be increased\n or decreased by setting this attribute.\n - **intermediateCommitCount**: Maximum number of operations after which an intermediate commit is performed\n automatically. Honored by the RocksDB storage engine only.\n - **satelliteSyncWait**: This *Enterprise Edition* parameter allows to configure how long a DBServer will have time\n to bring the satellite collections involved in the query into sync.\n The default value is *60.0* (seconds). When the max time has been reached the query\n will be stopped.\n - **fullCount**: if set to *true* and the query contains a *LIMIT* clause, then the\n result will have an *extra* attribute with the sub-attributes *stats*\n and *fullCount*, `{ ... , \"extra\": { \"stats\": { \"fullCount\": 123 } } }`.\n The *fullCount* attribute will contain the number of documents in the result before the\n last top-level LIMIT in the query was applied. It can be used to count the number of \n documents that match certain filter criteria, but only return a subset of them, in one go.\n It is thus similar to MySQL's *SQL_CALC_FOUND_ROWS* hint. Note that setting the option\n will disable a few LIMIT optimizations and may lead to more documents being processed,\n and thus make queries run longer. Note that the *fullCount* attribute may only\n be present in the result if the query has a top-level LIMIT clause and the LIMIT \n clause is actually used in the query.\n - **intermediateCommitSize**: Maximum total size of operations after which an intermediate commit is performed\n automatically. Honored by the RocksDB storage engine only.\n - **optimizer.rules** (string): A list of to-be-included or to-be-excluded optimizer rules\n can be put into this attribute, telling the optimizer to include or exclude\n specific rules. To disable a rule, prefix its name with a `-`, to enable a rule, prefix it\n with a `+`. There is also a pseudo-rule `all`, which will match all optimizer rules.\n - **maxPlans**: Limits the maximum number of plans that are created by the AQL query optimizer.\n\n\n\n\nThe query details include the query string plus optional query options and\nbind parameters. These values need to be passed in a JSON representation in\nthe body of the POST request.\n\n\n**HTTP 201**\n*A json document with these Properties is returned:*\n\nis returned if the result set can be created by the server.\n\n- **count**: the total number of result documents available (only\navailable if the query was executed with the *count* attribute set)\n- **code**: the HTTP status code\n- **extra**: an optional JSON object with extra information about the query result\ncontained in its *stats* sub-attribute. For data-modification queries, the\n*extra.stats* sub-attribute will contain the number of modified documents and\nthe number of documents that could not be modified\ndue to an error (if *ignoreErrors* query option is specified)\n- **cached**: a boolean flag indicating whether the query result was served\nfrom the query cache or not. If the query result is served from the query\ncache, the *extra* return attribute will not contain any *stats* sub-attribute\nand no *profile* sub-attribute.\n- **hasMore**: A boolean indicator whether there are more results\navailable for the cursor on the server\n- **result** (anonymous json object): an array of result documents (might be empty if query has no results)\n- **error**: A flag to indicate that an error occurred (*false* in this case)\n- **id**: id of temporary cursor created on the server (optional, see above)\n\n\n**HTTP 400**\n*A json document with these Properties is returned:*\n\nis returned if the JSON representation is malformed or the query specification is\nmissing from the request.\nIf the JSON representation is malformed or the query specification is\nmissing from the request, the server will respond with *HTTP 400*.\nThe body of the response will contain a JSON object with additional error\ndetails. The object has the following attributes:\n\n- **errorMessage**: a descriptive error message\nIf the query specification is complete, the server will process the query. If an\nerror occurs during query processing, the server will respond with *HTTP 400*.\nAgain, the body of the response will contain details about the error.\nA [list of query errors can be found here](../../Manual/Appendix/ErrorCodes.html).\n- **errorNum**: the server error number\n- **code**: the HTTP status code\n- **error**: boolean flag to indicate that an error occurred (*true* in this case)\n\n\n\n\n**Example:**\n Execute a query and extract the result in a single go\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/cursor <<EOF\n{ \n  \"query\" : \"FOR p IN products LIMIT 2 RETURN p\", \n  \"count\" : true, \n  \"batchSize\" : 2 \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_key\" : \"103806\", \n      \"_id\" : \"products/103806\", \n      \"_rev\" : \"_YzHmVZe--B\", \n      \"hello1\" : \"world1\" \n    }, \n    { \n      \"_key\" : \"103810\", \n      \"_id\" : \"products/103810\", \n      \"_rev\" : \"_YzHmVZe--D\", \n      \"hello2\" : \"world1\" \n    } \n  ], \n  \"hasMore\" : false, \n  \"count\" : 2, \n  \"cached\" : false, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 2, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 0, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.00010466575622558594, \n      \"peakMemoryUsage\" : 2216 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Execute a query and extract a part of the result\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/cursor <<EOF\n{ \n  \"query\" : \"FOR p IN products LIMIT 5 RETURN p\", \n  \"count\" : true, \n  \"batchSize\" : 2 \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_key\" : \"103790\", \n      \"_id\" : \"products/103790\", \n      \"_rev\" : \"_YzHmVYS--H\", \n      \"hello5\" : \"world1\" \n    }, \n    { \n      \"_key\" : \"103784\", \n      \"_id\" : \"products/103784\", \n      \"_rev\" : \"_YzHmVYS--D\", \n      \"hello3\" : \"world1\" \n    } \n  ], \n  \"hasMore\" : true, \n  \"id\" : \"103793\", \n  \"count\" : 5, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 5, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 0, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.00021147727966308594, \n      \"peakMemoryUsage\" : 2312 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"cached\" : false, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Using the query option \"fullCount\"\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/cursor <<EOF\n{ \n  \"query\" : \"FOR i IN 1..1000 FILTER i > 500 LIMIT 10 RETURN i\", \n  \"count\" : true, \n  \"options\" : { \n    \"fullCount\" : true \n  } \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    501, \n    502, \n    503, \n    504, \n    505, \n    506, \n    507, \n    508, \n    509, \n    510 \n  ], \n  \"hasMore\" : false, \n  \"count\" : 10, \n  \"cached\" : false, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 0, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 500, \n      \"httpRequests\" : 0, \n      \"fullCount\" : 500, \n      \"executionTime\" : 0.000545501708984375, \n      \"peakMemoryUsage\" : 75576 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Enabling and disabling optimizer rules\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/cursor <<EOF\n{ \n  \"query\" : \"FOR i IN 1..10 LET a = 1 LET b = 2 FILTER a + b == 3 RETURN i\", \n  \"count\" : true, \n  \"options\" : { \n    \"maxPlans\" : 1, \n    \"optimizer\" : { \n      \"rules\" : [ \n        \"-all\", \n        \"+remove-unnecessary-filters\" \n      ] \n    } \n  } \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    1, \n    2, \n    3, \n    4, \n    5, \n    6, \n    7, \n    8, \n    9, \n    10 \n  ], \n  \"hasMore\" : false, \n  \"count\" : 10, \n  \"cached\" : false, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 0, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 0, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.00016951560974121094, \n      \"peakMemoryUsage\" : 82968 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Execute instrumented query and return result together with\nexecution plan and profiling information\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/cursor <<EOF\n{ \n  \"query\" : \"LET s = SLEEP(0.25) LET t = SLEEP(0.5) RETURN 1\", \n  \"count\" : true, \n  \"options\" : { \n    \"profile\" : 2 \n  } \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    1 \n  ], \n  \"hasMore\" : false, \n  \"count\" : 1, \n  \"cached\" : false, \n  \"extra\" : { \n    \"plan\" : { \n      \"nodes\" : [ \n        { \n          \"type\" : \"SingletonNode\", \n          \"dependencies\" : [ ], \n          \"id\" : 1, \n          \"estimatedCost\" : 1, \n          \"estimatedNrItems\" : 1 \n        }, \n        { \n          \"type\" : \"CalculationNode\", \n          \"dependencies\" : [ \n            1 \n          ], \n          \"id\" : 4, \n          \"estimatedCost\" : 2, \n          \"estimatedNrItems\" : 1, \n          \"expression\" : { \n            \"type\" : \"value\", \n            \"typeID\" : 40, \n            \"value\" : 1, \n            \"vType\" : \"int\", \n            \"vTypeID\" : 2 \n          }, \n          \"outVariable\" : { \n            \"id\" : 3, \n            \"name\" : \"2\" \n          }, \n          \"canThrow\" : false, \n          \"expressionType\" : \"json\" \n        }, \n        { \n          \"type\" : \"CalculationNode\", \n          \"dependencies\" : [ \n            4 \n          ], \n          \"id\" : 2, \n          \"estimatedCost\" : 3, \n          \"estimatedNrItems\" : 1, \n          \"expression\" : { \n            \"type\" : \"function call\", \n            \"typeID\" : 47, \n            \"name\" : \"SLEEP\", \n            \"subNodes\" : [ \n              { \n                \"type\" : \"array\", \n                \"typeID\" : 41, \n                \"subNodes\" : [ \n                  { \n                    \"type\" : \"value\", \n                    \"typeID\" : 40, \n                    \"value\" : 0.25, \n                    \"vType\" : \"double\", \n                    \"vTypeID\" : 3 \n                  } \n                ] \n              } \n            ] \n          }, \n          \"outVariable\" : { \n            \"id\" : 0, \n            \"name\" : \"s\" \n          }, \n          \"canThrow\" : false, \n          \"expressionType\" : \"simple\" \n        }, \n        { \n          \"type\" : \"CalculationNode\", \n          \"dependencies\" : [ \n            2 \n          ], \n          \"id\" : 3, \n          \"estimatedCost\" : 4, \n          \"estimatedNrItems\" : 1, \n          \"expression\" : { \n            \"type\" : \"function call\", \n            \"typeID\" : 47, \n            \"name\" : \"SLEEP\", \n            \"subNodes\" : [ \n              { \n                \"type\" : \"array\", \n                \"typeID\" : 41, \n                \"subNodes\" : [ \n                  { \n                    \"type\" : \"value\", \n                    \"typeID\" : 40, \n                    \"value\" : 0.5, \n                    \"vType\" : \"double\", \n                    \"vTypeID\" : 3 \n                  } \n                ] \n              } \n            ] \n          }, \n          \"outVariable\" : { \n            \"id\" : 1, \n            \"name\" : \"t\" \n          }, \n          \"canThrow\" : false, \n          \"expressionType\" : \"simple\" \n        }, \n        { \n          \"type\" : \"ReturnNode\", \n          \"dependencies\" : [ \n            3 \n          ], \n          \"id\" : 5, \n          \"estimatedCost\" : 5, \n          \"estimatedNrItems\" : 1, \n          \"inVariable\" : { \n            \"id\" : 3, \n            \"name\" : \"2\" \n          }, \n          \"count\" : true \n        } \n      ], \n      \"rules\" : [ \n        \"move-calculations-up\" \n      ], \n      \"collections\" : [ ], \n      \"variables\" : [ \n        { \n          \"id\" : 3, \n          \"name\" : \"2\" \n        }, \n        { \n          \"id\" : 1, \n          \"name\" : \"t\" \n        }, \n        { \n          \"id\" : 0, \n          \"name\" : \"s\" \n        } \n      ], \n      \"estimatedCost\" : 5, \n      \"estimatedNrItems\" : 1, \n      \"initialize\" : true, \n      \"isModificationQuery\" : false \n    }, \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 0, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 0, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.7827141284942627, \n      \"peakMemoryUsage\" : 2312, \n      \"nodes\" : [ \n        { \n          \"id\" : 1, \n          \"calls\" : 1, \n          \"items\" : 1, \n          \"runtime\" : 0.0000016689300537109375 \n        }, \n        { \n          \"id\" : 2, \n          \"calls\" : 1, \n          \"items\" : 1, \n          \"runtime\" : 0.270845890045166 \n        }, \n        { \n          \"id\" : 3, \n          \"calls\" : 1, \n          \"items\" : 1, \n          \"runtime\" : 0.7825634479522705 \n        }, \n        { \n          \"id\" : 4, \n          \"calls\" : 1, \n          \"items\" : 1, \n          \"runtime\" : 0.0000050067901611328125 \n        }, \n        { \n          \"id\" : 5, \n          \"calls\" : 1, \n          \"items\" : 1, \n          \"runtime\" : 0.7825644016265869 \n        } \n      ] \n    }, \n    \"warnings\" : [ ], \n    \"profile\" : { \n      \"initializing\" : 7.152557373046875e-7, \n      \"parsing\" : 0.000021219253540039062, \n      \"optimizing ast\" : 0.00000286102294921875, \n      \"loading collections\" : 0.0000011920928955078125, \n      \"instantiating plan\" : 0.000007867813110351562, \n      \"optimizing plan\" : 0.00004100799560546875, \n      \"executing\" : 0.782573938369751, \n      \"finalizing\" : 0.00005888938903808594 \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Execute a data-modification query and retrieve the number of\nmodified documents\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/cursor <<EOF\n{ \n  \"query\" : \"FOR p IN products REMOVE p IN products\" \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ ], \n  \"hasMore\" : false, \n  \"cached\" : false, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 2, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 2, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 0, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.0001418590545654297, \n      \"peakMemoryUsage\" : 34152 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Execute a data-modification query with option *ignoreErrors*\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/cursor <<EOF\n{ \n  \"query\" : \"REMOVE 'bar' IN products OPTIONS { ignoreErrors: true }\" \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ ], \n  \"hasMore\" : false, \n  \"cached\" : false, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 1, \n      \"scannedFull\" : 0, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 0, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.00014710426330566406, \n      \"peakMemoryUsage\" : 17944 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Bad query - Missing body\n\n
shell> curl -X POST --header 'accept: application/json' --dump - http://localhost:8529/_api/cursor\n\nHTTP/1.1 Bad Request\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 400, \n  \"error\" : true, \n  \"errorMessage\" : \"query is empty\", \n  \"errorNum\" : 1502 \n}\n
\n\n\n\n\n**Example:**\n Bad query - Unknown collection\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/cursor <<EOF\n{ \n  \"query\" : \"FOR u IN unknowncoll LIMIT 2 RETURN u\", \n  \"count\" : true, \n  \"batchSize\" : 2 \n}\nEOF\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"AQL: collection or view not found: unknowncoll (while parsing)\", \n  \"errorNum\" : 1203 \n}\n
\n\n\n\n\n**Example:**\n Bad query - Execute a data-modification query that attempts to remove a non-existing\ndocument\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/cursor <<EOF\n{ \n  \"query\" : \"REMOVE 'foo' IN products\" \n}\nEOF\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"AQL: document not found (while executing)\", \n  \"errorNum\" : 1202 \n}\n
\n\n\n\n\n\n", + "description": "\n**A JSON object with these properties is required:**\n\n - **count**: indicates whether the number of documents in the result set should be returned in\n the \"count\" attribute of the result.\n Calculating the \"count\" attribute might have a performance impact for some queries\n in the future so this option is turned off by default, and \"count\"\n is only returned when requested.\n - **batchSize**: maximum number of result documents to be transferred from\n the server to the client in one roundtrip. If this attribute is\n not set, a server-controlled default value will be used. A *batchSize* value of\n *0* is disallowed.\n - **cache**: flag to determine whether the AQL query results cache\n shall be used. If set to *false*, then any query cache lookup will be skipped\n for the query. If set to *true*, it will lead to the query cache being checked\n for the query if the query cache mode is either *on* or *demand*.\n - **memoryLimit**: the maximum number of memory (measured in bytes) that the query is allowed to\n use. If set, then the query will fail with error \"resource limit exceeded\" in\n case it allocates too much memory. A value of *0* indicates that there is no\n memory limit.\n - **ttl**: The time-to-live for the cursor (in seconds). The cursor will be\n removed on the server automatically after the specified amount of time. This\n is useful to ensure garbage collection of cursors that are not fully fetched\n by clients. If not set, a server-defined value will be used (default: 30 seconds).\n - **query**: contains the query string to be executed\n - **bindVars** (object): key/value pairs representing the bind parameters.\n - **options**:\n - **failOnWarning**: When set to *true*, the query will throw an exception and abort instead of producing\n a warning. This option should be used during development to catch potential issues\n early. When the attribute is set to *false*, warnings will not be propagated to\n exceptions and will be returned with the query result.\n There is also a server configuration option `--query.fail-on-warning` for setting the\n default value for *failOnWarning* so it does not need to be set on a per-query level.\n - **profile**: If set to *true* or *1*, then the additional query profiling information will be returned\n in the sub-attribute *profile* of the *extra* return attribute, if the query result\n is not served from the query cache. Set to *2* the query will include execution stats\n per query plan node in sub-attribute *stats.nodes* of the *extra* return attribute.\n Additionally the query plan is returned in the sub-attribute *extra.plan*.\n - **maxTransactionSize**: Transaction size limit in bytes. Honored by the RocksDB storage engine only.\n - **stream**: Specify *true* and the query will be executed in a **streaming** fashion. The query result is\n not stored on the server, but calculated on the fly. *Beware*: long-running queries will\n need to hold the collection locks for as long as the query cursor exists. \n When set to *false* a query will be executed right away in its entirety. \n In that case query results are either returned right away (if the result set is small enough),\n or stored on the arangod instance and accessible via the cursor API (with respect to the `ttl`). \n It is advisable to *only* use this option on short-running queries or without exclusive locks \n (write-locks on MMFiles).\n Please note that the query options `cache`, `count` and `fullCount` will not work on streaming queries.\n Additionally query statistics, warnings and profiling data will only be available after the query is finished.\n The default value is *false*\n - **skipInaccessibleCollections**: AQL queries (especially graph traversals) will treat collection to which a user has no access rights as if these collections were empty. Instead of returning a forbidden access error, your queries will execute normally. This is intended to help with certain use-cases: A graph contains several collections and different users execute AQL queries on that graph. You can now naturally limit the accessible results by changing the access rights of users on collections. This feature is only available in the Enterprise Edition.\n - **maxWarningCount**: Limits the maximum number of warnings a query will return. The number of warnings\n a query will return is limited to 10 by default, but that number can be increased\n or decreased by setting this attribute.\n - **intermediateCommitCount**: Maximum number of operations after which an intermediate commit is performed\n automatically. Honored by the RocksDB storage engine only.\n - **satelliteSyncWait**: This *Enterprise Edition* parameter allows to configure how long a DBServer will have time\n to bring the satellite collections involved in the query into sync.\n The default value is *60.0* (seconds). When the max time has been reached the query\n will be stopped.\n - **fullCount**: if set to *true* and the query contains a *LIMIT* clause, then the\n result will have an *extra* attribute with the sub-attributes *stats*\n and *fullCount*, `{ ... , \"extra\": { \"stats\": { \"fullCount\": 123 } } }`.\n The *fullCount* attribute will contain the number of documents in the result before the\n last top-level LIMIT in the query was applied. It can be used to count the number of \n documents that match certain filter criteria, but only return a subset of them, in one go.\n It is thus similar to MySQL's *SQL_CALC_FOUND_ROWS* hint. Note that setting the option\n will disable a few LIMIT optimizations and may lead to more documents being processed,\n and thus make queries run longer. Note that the *fullCount* attribute may only\n be present in the result if the query has a top-level LIMIT clause and the LIMIT \n clause is actually used in the query.\n - **intermediateCommitSize**: Maximum total size of operations after which an intermediate commit is performed\n automatically. Honored by the RocksDB storage engine only.\n - **optimizer.rules** (string): A list of to-be-included or to-be-excluded optimizer rules\n can be put into this attribute, telling the optimizer to include or exclude\n specific rules. To disable a rule, prefix its name with a `-`, to enable a rule, prefix it\n with a `+`. There is also a pseudo-rule `all`, which will match all optimizer rules.\n - **maxPlans**: Limits the maximum number of plans that are created by the AQL query optimizer.\n\n\n\n\nThe query details include the query string plus optional query options and\nbind parameters. These values need to be passed in a JSON representation in\nthe body of the POST request.\n\n\n**HTTP 201**\n*A json document with these Properties is returned:*\n\nis returned if the result set can be created by the server.\n\n- **count**: the total number of result documents available (only\navailable if the query was executed with the *count* attribute set)\n- **code**: the HTTP status code\n- **extra**: an optional JSON object with extra information about the query result\ncontained in its *stats* sub-attribute. For data-modification queries, the\n*extra.stats* sub-attribute will contain the number of modified documents and\nthe number of documents that could not be modified\ndue to an error (if *ignoreErrors* query option is specified)\n- **cached**: a boolean flag indicating whether the query result was served\nfrom the query cache or not. If the query result is served from the query\ncache, the *extra* return attribute will not contain any *stats* sub-attribute\nand no *profile* sub-attribute.\n- **hasMore**: A boolean indicator whether there are more results\navailable for the cursor on the server\n- **result** (anonymous json object): an array of result documents (might be empty if query has no results)\n- **error**: A flag to indicate that an error occurred (*false* in this case)\n- **id**: id of temporary cursor created on the server (optional, see above)\n\n\n**HTTP 400**\n*A json document with these Properties is returned:*\n\nis returned if the JSON representation is malformed or the query specification is\nmissing from the request.\nIf the JSON representation is malformed or the query specification is\nmissing from the request, the server will respond with *HTTP 400*.\nThe body of the response will contain a JSON object with additional error\ndetails. The object has the following attributes:\n\n- **errorMessage**: a descriptive error message\nIf the query specification is complete, the server will process the query. If an\nerror occurs during query processing, the server will respond with *HTTP 400*.\nAgain, the body of the response will contain details about the error.\nA [list of query errors can be found here](../../Manual/Appendix/ErrorCodes.html).\n- **errorNum**: the server error number\n- **code**: the HTTP status code\n- **error**: boolean flag to indicate that an error occurred (*true* in this case)\n\n\n\n\n**Example:**\n Execute a query and extract the result in a single go\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/cursor <<EOF\n{ \n  \"query\" : \"FOR p IN products LIMIT 2 RETURN p\", \n  \"count\" : true, \n  \"batchSize\" : 2 \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_key\" : \"68842\", \n      \"_id\" : \"products/68842\", \n      \"_rev\" : \"_ZCIDVz---A\", \n      \"hello1\" : \"world1\" \n    }, \n    { \n      \"_key\" : \"68844\", \n      \"_id\" : \"products/68844\", \n      \"_rev\" : \"_ZCIDVz---C\", \n      \"hello2\" : \"world1\" \n    } \n  ], \n  \"hasMore\" : false, \n  \"count\" : 2, \n  \"cached\" : false, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 2, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 0, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.00033211708068847656, \n      \"peakMemoryUsage\" : 2286 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Execute a query and extract a part of the result\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/cursor <<EOF\n{ \n  \"query\" : \"FOR p IN products LIMIT 5 RETURN p\", \n  \"count\" : true, \n  \"batchSize\" : 2 \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_key\" : \"68823\", \n      \"_id\" : \"products/68823\", \n      \"_rev\" : \"_ZCIDVyi--A\", \n      \"hello1\" : \"world1\" \n    }, \n    { \n      \"_key\" : \"68825\", \n      \"_id\" : \"products/68825\", \n      \"_rev\" : \"_ZCIDVym---\", \n      \"hello2\" : \"world1\" \n    } \n  ], \n  \"hasMore\" : true, \n  \"id\" : \"68833\", \n  \"count\" : 5, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 5, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 0, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.00015783309936523438, \n      \"peakMemoryUsage\" : 2487 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"cached\" : false, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Using the query option \"fullCount\"\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/cursor <<EOF\n{ \n  \"query\" : \"FOR i IN 1..1000 FILTER i > 500 LIMIT 10 RETURN i\", \n  \"count\" : true, \n  \"options\" : { \n    \"fullCount\" : true \n  } \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    501, \n    502, \n    503, \n    504, \n    505, \n    506, \n    507, \n    508, \n    509, \n    510 \n  ], \n  \"hasMore\" : false, \n  \"count\" : 10, \n  \"cached\" : false, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 0, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 500, \n      \"httpRequests\" : 0, \n      \"fullCount\" : 500, \n      \"executionTime\" : 0.0005218982696533203, \n      \"peakMemoryUsage\" : 75048 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Enabling and disabling optimizer rules\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/cursor <<EOF\n{ \n  \"query\" : \"FOR i IN 1..10 LET a = 1 LET b = 2 FILTER a + b == 3 RETURN i\", \n  \"count\" : true, \n  \"options\" : { \n    \"maxPlans\" : 1, \n    \"optimizer\" : { \n      \"rules\" : [ \n        \"-all\", \n        \"+remove-unnecessary-filters\" \n      ] \n    } \n  } \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    1, \n    2, \n    3, \n    4, \n    5, \n    6, \n    7, \n    8, \n    9, \n    10 \n  ], \n  \"hasMore\" : false, \n  \"count\" : 10, \n  \"cached\" : false, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 0, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 0, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.0001964569091796875, \n      \"peakMemoryUsage\" : 82968 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Execute instrumented query and return result together with\nexecution plan and profiling information\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/cursor <<EOF\n{ \n  \"query\" : \"LET s = SLEEP(0.25) LET t = SLEEP(0.5) RETURN 1\", \n  \"count\" : true, \n  \"options\" : { \n    \"profile\" : 2 \n  } \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    1 \n  ], \n  \"hasMore\" : false, \n  \"count\" : 1, \n  \"cached\" : false, \n  \"extra\" : { \n    \"plan\" : { \n      \"nodes\" : [ \n        { \n          \"type\" : \"SingletonNode\", \n          \"dependencies\" : [ ], \n          \"id\" : 1, \n          \"estimatedCost\" : 1, \n          \"estimatedNrItems\" : 1 \n        }, \n        { \n          \"type\" : \"CalculationNode\", \n          \"dependencies\" : [ \n            1 \n          ], \n          \"id\" : 4, \n          \"estimatedCost\" : 2, \n          \"estimatedNrItems\" : 1, \n          \"expression\" : { \n            \"type\" : \"value\", \n            \"typeID\" : 40, \n            \"value\" : 1, \n            \"vType\" : \"int\", \n            \"vTypeID\" : 2 \n          }, \n          \"outVariable\" : { \n            \"id\" : 3, \n            \"name\" : \"2\" \n          }, \n          \"canThrow\" : false, \n          \"expressionType\" : \"json\" \n        }, \n        { \n          \"type\" : \"CalculationNode\", \n          \"dependencies\" : [ \n            4 \n          ], \n          \"id\" : 2, \n          \"estimatedCost\" : 3, \n          \"estimatedNrItems\" : 1, \n          \"expression\" : { \n            \"type\" : \"function call\", \n            \"typeID\" : 47, \n            \"name\" : \"SLEEP\", \n            \"subNodes\" : [ \n              { \n                \"type\" : \"array\", \n                \"typeID\" : 41, \n                \"subNodes\" : [ \n                  { \n                    \"type\" : \"value\", \n                    \"typeID\" : 40, \n                    \"value\" : 0.25, \n                    \"vType\" : \"double\", \n                    \"vTypeID\" : 3 \n                  } \n                ] \n              } \n            ] \n          }, \n          \"outVariable\" : { \n            \"id\" : 0, \n            \"name\" : \"s\" \n          }, \n          \"canThrow\" : false, \n          \"expressionType\" : \"simple\" \n        }, \n        { \n          \"type\" : \"CalculationNode\", \n          \"dependencies\" : [ \n            2 \n          ], \n          \"id\" : 3, \n          \"estimatedCost\" : 4, \n          \"estimatedNrItems\" : 1, \n          \"expression\" : { \n            \"type\" : \"function call\", \n            \"typeID\" : 47, \n            \"name\" : \"SLEEP\", \n            \"subNodes\" : [ \n              { \n                \"type\" : \"array\", \n                \"typeID\" : 41, \n                \"subNodes\" : [ \n                  { \n                    \"type\" : \"value\", \n                    \"typeID\" : 40, \n                    \"value\" : 0.5, \n                    \"vType\" : \"double\", \n                    \"vTypeID\" : 3 \n                  } \n                ] \n              } \n            ] \n          }, \n          \"outVariable\" : { \n            \"id\" : 1, \n            \"name\" : \"t\" \n          }, \n          \"canThrow\" : false, \n          \"expressionType\" : \"simple\" \n        }, \n        { \n          \"type\" : \"ReturnNode\", \n          \"dependencies\" : [ \n            3 \n          ], \n          \"id\" : 5, \n          \"estimatedCost\" : 5, \n          \"estimatedNrItems\" : 1, \n          \"inVariable\" : { \n            \"id\" : 3, \n            \"name\" : \"2\" \n          }, \n          \"count\" : true \n        } \n      ], \n      \"rules\" : [ \n        \"move-calculations-up\" \n      ], \n      \"collections\" : [ ], \n      \"variables\" : [ \n        { \n          \"id\" : 3, \n          \"name\" : \"2\" \n        }, \n        { \n          \"id\" : 1, \n          \"name\" : \"t\" \n        }, \n        { \n          \"id\" : 0, \n          \"name\" : \"s\" \n        } \n      ], \n      \"estimatedCost\" : 5, \n      \"estimatedNrItems\" : 1, \n      \"initialize\" : true, \n      \"isModificationQuery\" : false \n    }, \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 0, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 0, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.7828760147094727, \n      \"peakMemoryUsage\" : 2312, \n      \"nodes\" : [ \n        { \n          \"id\" : 1, \n          \"calls\" : 1, \n          \"items\" : 1, \n          \"runtime\" : 0.0000021457672119140625 \n        }, \n        { \n          \"id\" : 2, \n          \"calls\" : 1, \n          \"items\" : 1, \n          \"runtime\" : 0.27101755142211914 \n        }, \n        { \n          \"id\" : 3, \n          \"calls\" : 1, \n          \"items\" : 1, \n          \"runtime\" : 0.7826919555664062 \n        }, \n        { \n          \"id\" : 4, \n          \"calls\" : 1, \n          \"items\" : 1, \n          \"runtime\" : 0.0000064373016357421875 \n        }, \n        { \n          \"id\" : 5, \n          \"calls\" : 1, \n          \"items\" : 1, \n          \"runtime\" : 0.7826938629150391 \n        } \n      ] \n    }, \n    \"warnings\" : [ ], \n    \"profile\" : { \n      \"initializing\" : 0.000001430511474609375, \n      \"parsing\" : 0.00004100799560546875, \n      \"optimizing ast\" : 0.0000045299530029296875, \n      \"loading collections\" : 0.0000030994415283203125, \n      \"instantiating plan\" : 0.000009298324584960938, \n      \"optimizing plan\" : 0.00004076957702636719, \n      \"executing\" : 0.7827026844024658, \n      \"finalizing\" : 0.00006604194641113281 \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Execute a data-modification query and retrieve the number of\nmodified documents\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/cursor <<EOF\n{ \n  \"query\" : \"FOR p IN products REMOVE p IN products\" \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ ], \n  \"hasMore\" : false, \n  \"cached\" : false, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 2, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 0, \n      \"scannedIndex\" : 2, \n      \"filtered\" : 0, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.0002560615539550781, \n      \"peakMemoryUsage\" : 34152 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Execute a data-modification query with option *ignoreErrors*\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/cursor <<EOF\n{ \n  \"query\" : \"REMOVE 'bar' IN products OPTIONS { ignoreErrors: true }\" \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ ], \n  \"hasMore\" : false, \n  \"cached\" : false, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 1, \n      \"scannedFull\" : 0, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 0, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.00019049644470214844, \n      \"peakMemoryUsage\" : 17944 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Bad query - Missing body\n\n
shell> curl -X POST --header 'accept: application/json' --dump - http://localhost:8529/_api/cursor\n\nHTTP/1.1 Bad Request\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 400, \n  \"error\" : true, \n  \"errorMessage\" : \"query is empty\", \n  \"errorNum\" : 1502 \n}\n
\n\n\n\n\n**Example:**\n Bad query - Unknown collection\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/cursor <<EOF\n{ \n  \"query\" : \"FOR u IN unknowncoll LIMIT 2 RETURN u\", \n  \"count\" : true, \n  \"batchSize\" : 2 \n}\nEOF\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"AQL: collection or view not found: unknowncoll (while parsing)\", \n  \"errorNum\" : 1203 \n}\n
\n\n\n\n\n**Example:**\n Bad query - Execute a data-modification query that attempts to remove a non-existing\ndocument\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/cursor <<EOF\n{ \n  \"query\" : \"REMOVE 'foo' IN products\" \n}\nEOF\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"AQL: document not found (while executing)\", \n  \"errorNum\" : 1202 \n}\n
\n\n\n\n\n\n", "operationId": "createQueryCursor", "parameters": [ { @@ -8049,7 +8129,7 @@ }, "/_api/cursor/{cursor-identifier}": { "delete": { - "description": "\n\nDeletes the cursor and frees the resources associated with it.\n\nThe cursor will automatically be destroyed on the server when the client has\nretrieved all documents from it. The client can also explicitly destroy the\ncursor at any earlier time using an HTTP DELETE request. The cursor id must\nbe included as part of the URL.\n\nNote: the server will also destroy abandoned cursors automatically after a\ncertain server-controlled timeout to avoid resource leakage.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/cursor <<EOF\n{ \n  \"query\" : \"FOR p IN products LIMIT 5 RETURN p\", \n  \"count\" : true, \n  \"batchSize\" : 2 \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_key\" : \"103843\", \n      \"_id\" : \"products/103843\", \n      \"_rev\" : \"_YzHmVa6--_\", \n      \"hello5\" : \"world1\" \n    }, \n    { \n      \"_key\" : \"103840\", \n      \"_id\" : \"products/103840\", \n      \"_rev\" : \"_YzHmVa2--F\", \n      \"hello4\" : \"world1\" \n    } \n  ], \n  \"hasMore\" : true, \n  \"id\" : \"103846\", \n  \"count\" : 5, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 5, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 0, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.00011467933654785156, \n      \"peakMemoryUsage\" : 2312 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"cached\" : false, \n  \"error\" : false, \n  \"code\" : 201 \n}\nshell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/cursor/103846\n\n
\n\n\n\n\n", + "description": "\n\nDeletes the cursor and frees the resources associated with it.\n\nThe cursor will automatically be destroyed on the server when the client has\nretrieved all documents from it. The client can also explicitly destroy the\ncursor at any earlier time using an HTTP DELETE request. The cursor id must\nbe included as part of the URL.\n\nNote: the server will also destroy abandoned cursors automatically after a\ncertain server-controlled timeout to avoid resource leakage.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/cursor <<EOF\n{ \n  \"query\" : \"FOR p IN products LIMIT 5 RETURN p\", \n  \"count\" : true, \n  \"batchSize\" : 2 \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_key\" : \"68859\", \n      \"_id\" : \"products/68859\", \n      \"_rev\" : \"_ZCIDVzu--A\", \n      \"hello1\" : \"world1\" \n    }, \n    { \n      \"_key\" : \"68861\", \n      \"_id\" : \"products/68861\", \n      \"_rev\" : \"_ZCIDVzy---\", \n      \"hello2\" : \"world1\" \n    } \n  ], \n  \"hasMore\" : true, \n  \"id\" : \"68869\", \n  \"count\" : 5, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 5, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 0, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.0001270771026611328, \n      \"peakMemoryUsage\" : 2487 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"cached\" : false, \n  \"error\" : false, \n  \"code\" : 201 \n}\nshell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/cursor/68869\n\n
\n\n\n\n\n", "operationId": "deleteQueryCursor", "parameters": [ { @@ -8078,7 +8158,7 @@ "x-hints": "" }, "put": { - "description": "\n\nIf the cursor is still alive, returns an object with the following\nattributes:\n\n- *id*: the *cursor-identifier*\n- *result*: a list of documents for the current batch\n- *hasMore*: *false* if this was the last batch\n- *count*: if present the total number of elements\n\nNote that even if *hasMore* returns *true*, the next call might\nstill return no documents. If, however, *hasMore* is *false*, then\nthe cursor is exhausted. Once the *hasMore* attribute has a value of\n*false*, the client can stop.\n\n\n\n\n**Example:**\n Valid request for next batch\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/cursor <<EOF\n{ \n  \"query\" : \"FOR p IN products LIMIT 5 RETURN p\", \n  \"count\" : true, \n  \"batchSize\" : 2 \n}\nEOF\n\nshell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/cursor/103929\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_key\" : \"103923\", \n      \"_id\" : \"products/103923\", \n      \"_rev\" : \"_YzHmVfy--F\", \n      \"hello4\" : \"world1\" \n    }, \n    { \n      \"_key\" : \"103926\", \n      \"_id\" : \"products/103926\", \n      \"_rev\" : \"_YzHmVfy--H\", \n      \"hello5\" : \"world1\" \n    } \n  ], \n  \"hasMore\" : true, \n  \"id\" : \"103929\", \n  \"count\" : 5, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 5, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 0, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.00008940696716308594, \n      \"peakMemoryUsage\" : 2312 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"cached\" : false, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Missing identifier\n\n
shell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/cursor\n\nHTTP/1.1 Bad Request\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 400, \n  \"error\" : true, \n  \"errorMessage\" : \"expecting PUT /_api/cursor/<cursor-id>\", \n  \"errorNum\" : 400 \n}\n
\n\n\n\n\n**Example:**\n Unknown identifier\n\n
shell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/cursor/123123\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"cursor not found\", \n  \"errorNum\" : 1600 \n}\n
\n\n\n\n\n", + "description": "\n\nIf the cursor is still alive, returns an object with the following\nattributes:\n\n- *id*: the *cursor-identifier*\n- *result*: a list of documents for the current batch\n- *hasMore*: *false* if this was the last batch\n- *count*: if present the total number of elements\n\nNote that even if *hasMore* returns *true*, the next call might\nstill return no documents. If, however, *hasMore* is *false*, then\nthe cursor is exhausted. Once the *hasMore* attribute has a value of\n*false*, the client can stop.\n\n\n\n\n**Example:**\n Valid request for next batch\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/cursor <<EOF\n{ \n  \"query\" : \"FOR p IN products LIMIT 5 RETURN p\", \n  \"count\" : true, \n  \"batchSize\" : 2 \n}\nEOF\n\nshell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/cursor/68918\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_key\" : \"68912\", \n      \"_id\" : \"products/68912\", \n      \"_rev\" : \"_ZCIDV06--C\", \n      \"hello3\" : \"world1\" \n    }, \n    { \n      \"_key\" : \"68914\", \n      \"_id\" : \"products/68914\", \n      \"_rev\" : \"_ZCIDV06--E\", \n      \"hello4\" : \"world1\" \n    } \n  ], \n  \"hasMore\" : true, \n  \"id\" : \"68918\", \n  \"count\" : 5, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 5, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 0, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.00014472007751464844, \n      \"peakMemoryUsage\" : 2487 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"cached\" : false, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Missing identifier\n\n
shell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/cursor\n\nHTTP/1.1 Bad Request\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 400, \n  \"error\" : true, \n  \"errorMessage\" : \"expecting PUT /_api/cursor/<cursor-id>\", \n  \"errorNum\" : 400 \n}\n
\n\n\n\n\n**Example:**\n Unknown identifier\n\n
shell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/cursor/123123\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"cursor not found\", \n  \"errorNum\" : 1600 \n}\n
\n\n\n\n\n", "operationId": "modifyQueryCursor", "parameters": [ { @@ -8173,7 +8253,7 @@ }, "/_api/database/current": { "get": { - "description": "\n\nRetrieves information about the current database\n\nThe response is a JSON object with the following attributes:\n\n- *name*: the name of the current database\n\n- *id*: the id of the current database\n\n- *path*: the filesystem path of the current database\n\n- *isSystem*: whether or not the current database is the *_system* database\n\n\n\n\n**Example:**\n \n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/database/current\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"result\" : { \n    \"name\" : \"_system\", \n    \"id\" : \"1\", \n    \"path\" : \"/tmp/arangosh_ObPajP/tmp-5140-694367295/data/databases/database-1\", \n    \"isSystem\" : true \n  } \n}\n
\n\n\n\n\n", + "description": "\n\nRetrieves information about the current database\n\nThe response is a JSON object with the following attributes:\n\n- *name*: the name of the current database\n\n- *id*: the id of the current database\n\n- *path*: the filesystem path of the current database\n\n- *isSystem*: whether or not the current database is the *_system* database\n\n\n\n\n**Example:**\n \n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/database/current\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"result\" : { \n    \"name\" : \"_system\", \n    \"id\" : \"1\", \n    \"path\" : \"/tmp/arangosh_JkANhg/tmp-20811-30415556/rocksdb/data\", \n    \"isSystem\" : true \n  } \n}\n
\n\n\n\n\n", "operationId": "getDatabases:current", "parameters": [], "responses": { @@ -8257,7 +8337,7 @@ }, "/_api/document/{collection}": { "delete": { - "description": "\n\nThe body of the request is an array consisting of selectors for\ndocuments. A selector can either be a string with a key or a string\nwith a document handle or an object with a *_key* attribute. This\nAPI call removes all specified documents from *collection*. If the\nselector is an object and has a *_rev* attribute, it is a\nprecondition that the actual revision of the removed document in the\ncollection is the specified one.\n\nThe body of the response is an array of the same length as the input\narray. For each input selector, the output contains a JSON object\nwith the information about the outcome of the operation. If no error\noccurred, an object is built in which the attribute *_id* contains\nthe known *document-handle* of the removed document, *_key* contains\nthe key which uniquely identifies a document in a given collection,\nand the attribute *_rev* contains the document revision. In case of\nan error, an object with the attribute *error* set to *true* and\n*errorCode* set to the error code is built.\n\nIf the *waitForSync* parameter is not specified or set to *false*,\nthen the collection's default *waitForSync* behavior is applied.\nThe *waitForSync* query parameter cannot be used to disable\nsynchronization for collections that have a default *waitForSync*\nvalue of *true*.\n\nIf the query parameter *returnOld* is *true*, then\nthe complete previous revision of the document\nis returned under the *old* attribute in the result.\n\nNote that if any precondition is violated or an error occurred with\nsome of the documents, the return code is still 200 or 202, but\nthe additional HTTP header *X-Arango-Error-Codes* is set, which\ncontains a map of the error codes that occurred together with their\nmultiplicities, as in: *1200:17,1205:10* which means that in 17\ncases the error 1200 \"revision conflict\" and in 10 cases the error\n1205 \"illegal document handle\" has happened.\n\n\n\n\n**Example:**\n Using document handle:\n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/104135\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\netag: \"_YzHmW4---_\"\nlocation: /_db/_system/_api/document/products/104135\nx-content-type-options: nosniff\n\n{ \n  \"_id\" : \"products/104135\", \n  \"_key\" : \"104135\", \n  \"_rev\" : \"_YzHmW4---_\" \n}\n
\n\n\n\n\n**Example:**\n Unknown document handle:\n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/104170\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"document not found\", \n  \"errorNum\" : 1202 \n}\n
\n\n\n\n\n**Example:**\n Revision conflict:\n\n
shell> curl -X DELETE --header 'If-Match: \"_YzHmW2u--B\"' --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/104116\n\nHTTP/1.1 Precondition Failed\ncontent-type: application/json; charset=utf-8\netag: \"_YzHmW2u--_\"\nx-content-type-options: nosniff\n\n{ \n  \"error\" : true, \n  \"code\" : 412, \n  \"errorNum\" : 1200, \n  \"errorMessage\" : \"precondition failed\", \n  \"_id\" : \"products/104116\", \n  \"_key\" : \"104116\", \n  \"_rev\" : \"_YzHmW2u--_\" \n}\n
\n\n\n\n", + "description": "\n\nThe body of the request is an array consisting of selectors for\ndocuments. A selector can either be a string with a key or a string\nwith a document handle or an object with a *_key* attribute. This\nAPI call removes all specified documents from *collection*. If the\nselector is an object and has a *_rev* attribute, it is a\nprecondition that the actual revision of the removed document in the\ncollection is the specified one.\n\nThe body of the response is an array of the same length as the input\narray. For each input selector, the output contains a JSON object\nwith the information about the outcome of the operation. If no error\noccurred, an object is built in which the attribute *_id* contains\nthe known *document-handle* of the removed document, *_key* contains\nthe key which uniquely identifies a document in a given collection,\nand the attribute *_rev* contains the document revision. In case of\nan error, an object with the attribute *error* set to *true* and\n*errorCode* set to the error code is built.\n\nIf the *waitForSync* parameter is not specified or set to *false*,\nthen the collection's default *waitForSync* behavior is applied.\nThe *waitForSync* query parameter cannot be used to disable\nsynchronization for collections that have a default *waitForSync*\nvalue of *true*.\n\nIf the query parameter *returnOld* is *true*, then\nthe complete previous revision of the document\nis returned under the *old* attribute in the result.\n\nNote that if any precondition is violated or an error occurred with\nsome of the documents, the return code is still 200 or 202, but\nthe additional HTTP header *X-Arango-Error-Codes* is set, which\ncontains a map of the error codes that occurred together with their\nmultiplicities, as in: *1200:17,1205:10* which means that in 17\ncases the error 1200 \"revision conflict\" and in 10 cases the error\n1205 \"illegal document handle\" has happened.\n\n\n\n\n**Example:**\n Using document handle:\n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/69093\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\netag: \"_ZCIDWta---\"\nlocation: /_db/_system/_api/document/products/69093\nx-content-type-options: nosniff\n\n{ \n  \"_id\" : \"products/69093\", \n  \"_key\" : \"69093\", \n  \"_rev\" : \"_ZCIDWta---\" \n}\n
\n\n\n\n\n**Example:**\n Unknown document handle:\n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/69114\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"document not found\", \n  \"errorNum\" : 1202 \n}\n
\n\n\n\n\n**Example:**\n Revision conflict:\n\n
shell> curl -X DELETE --header 'If-Match: \"_ZCIDWtK--C\"' --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/69081\n\nHTTP/1.1 Precondition Failed\ncontent-type: application/json; charset=utf-8\netag: \"_ZCIDWtK--A\"\nx-content-type-options: nosniff\n\n{ \n  \"error\" : true, \n  \"code\" : 412, \n  \"errorNum\" : 1200, \n  \"errorMessage\" : \"precondition failed\", \n  \"_id\" : \"products/69081\", \n  \"_key\" : \"69081\", \n  \"_rev\" : \"_ZCIDWtK--A\" \n}\n
\n\n\n\n", "operationId": "removeDocument", "parameters": [ { @@ -8409,7 +8489,7 @@ "x-hints": "" }, "post": { - "description": "\n\nCreates a new document from the document given in the body, unless there\nis already a document with the *_key* given. If no *_key* is given, a new\nunique *_key* is generated automatically.\n\nThe body can be an array of documents, in which case all\ndocuments in the array are inserted with the same semantics as for a\nsingle document. The result body will contain a JSON array of the\nsame length as the input array, and each entry contains the result\nof the operation for the corresponding input. In case of an error\nthe entry is a document with attributes *error* set to *true* and\nerrorCode set to the error code that has happened.\n\nPossibly given *_id* and *_rev* attributes in the body are always ignored,\nthe URL part or the query parameter collection respectively counts.\n\nIf the document was created successfully, then the *Location* header\ncontains the path to the newly created document. The *Etag* header field\ncontains the revision of the document. Both are only set in the single\ndocument case.\n\nIf *silent* is not set to *true*, the body of the response contains a \nJSON object (single document case) with the following attributes:\n\n - *_id* contains the document handle of the newly created document\n - *_key* contains the document key\n - *_rev* contains the document revision\n\nIn the multi case the body is an array of such objects.\n\nIf the collection parameter *waitForSync* is *false*, then the call\nreturns as soon as the document has been accepted. It will not wait\nuntil the documents have been synced to disk.\n\nOptionally, the query parameter *waitForSync* can be used to force\nsynchronization of the document creation operation to disk even in\ncase that the *waitForSync* flag had been disabled for the entire\ncollection. Thus, the *waitForSync* query parameter can be used to\nforce synchronization of just this specific operations. To use this,\nset the *waitForSync* parameter to *true*. If the *waitForSync*\nparameter is not specified or set to *false*, then the collection's\ndefault *waitForSync* behavior is applied. The *waitForSync* query\nparameter cannot be used to disable synchronization for collections\nthat have a default *waitForSync* value of *true*.\n\nIf the query parameter *returnNew* is *true*, then, for each\ngenerated document, the complete new document is returned under\nthe *new* attribute in the result.\n\n\n\n\n**Example:**\n Create a document in a collection named *products*. Note that the\nrevision identifier might or might not by equal to the auto-generated\nkey.\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products <<EOF\n{ \"Hello\": \"World\" }\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\netag: \"_YzHmXCi--B\"\nlocation: /_db/_system/_api/document/products/104259\nx-content-type-options: nosniff\n\n{ \n  \"_id\" : \"products/104259\", \n  \"_key\" : \"104259\", \n  \"_rev\" : \"_YzHmXCi--B\" \n}\n
\n\n\n\n\n**Example:**\n Create a document in a collection named *products* with a collection-level\n*waitForSync* value of *false*.\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products <<EOF\n{ \"Hello\": \"World\" }\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: \"_YzHmXA---B\"\nlocation: /_db/_system/_api/document/products/104233\nx-content-type-options: nosniff\n\n{ \n  \"_id\" : \"products/104233\", \n  \"_key\" : \"104233\", \n  \"_rev\" : \"_YzHmXA---B\" \n}\n
\n\n\n\n\n**Example:**\n Create a document in a collection with a collection-level *waitForSync*\nvalue of *false*, but using the *waitForSync* query parameter.\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products?waitForSync=true <<EOF\n{ \"Hello\": \"World\" }\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\netag: \"_YzHmXIm--B\"\nlocation: /_db/_system/_api/document/products/104331\nx-content-type-options: nosniff\n\n{ \n  \"_id\" : \"products/104331\", \n  \"_key\" : \"104331\", \n  \"_rev\" : \"_YzHmXIm--B\" \n}\n
\n\n\n\n\n**Example:**\n Unknown collection name\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products <<EOF\n{ \"Hello\": \"World\" }\nEOF\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"collection or view not found: products\", \n  \"errorNum\" : 1203 \n}\n
\n\n\n\n\n**Example:**\n Illegal document\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products <<EOF\n{ 1: \"World\" }\nEOF\n\nHTTP/1.1 Bad Request\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 400, \n  \"error\" : true, \n  \"errorMessage\" : \"VPackError error: Expecting '\\\"' or '}'\", \n  \"errorNum\" : 600 \n}\n
\n\n\n\n\n**Example:**\n Insert multiple documents:\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products <<EOF\n[{\"Hello\":\"Earth\"}, {\"Hello\":\"Venus\"}, {\"Hello\":\"Mars\"}]\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n[ \n  { \n    \"_id\" : \"products/104274\", \n    \"_key\" : \"104274\", \n    \"_rev\" : \"_YzHmXES--B\" \n  }, \n  { \n    \"_id\" : \"products/104278\", \n    \"_key\" : \"104278\", \n    \"_rev\" : \"_YzHmXES--D\" \n  }, \n  { \n    \"_id\" : \"products/104280\", \n    \"_key\" : \"104280\", \n    \"_rev\" : \"_YzHmXES--F\" \n  } \n]\n
\n\n\n\n\n**Example:**\n Use of returnNew:\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products?returnNew=true <<EOF\n{\"Hello\":\"World\"}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: \"_YzHmXFi--B\"\nlocation: /_db/_system/_api/document/products/104295\nx-content-type-options: nosniff\n\n{ \n  \"_id\" : \"products/104295\", \n  \"_key\" : \"104295\", \n  \"_rev\" : \"_YzHmXFi--B\", \n  \"new\" : { \n    \"_key\" : \"104295\", \n    \"_id\" : \"products/104295\", \n    \"_rev\" : \"_YzHmXFi--B\", \n    \"Hello\" : \"World\" \n  } \n}\n
\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products <<EOF\n{ \"Hello\": \"World\", \"_key\" : \"lock\" }\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\netag: \"_YzHmXGy--_\"\nlocation: /_db/_system/_api/document/products/lock\nx-content-type-options: nosniff\n\n{ \n  \"_id\" : \"products/lock\", \n  \"_key\" : \"lock\", \n  \"_rev\" : \"_YzHmXGy--_\" \n}\nshell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products?overwrite=true <<EOF\n{ \"Hello\": \"Universe\", \"_key\" : \"lock\" }\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\netag: \"_YzHmXHW--B\"\nlocation: /_db/_system/_api/document/products/lock\nx-content-type-options: nosniff\n\n{ \n  \"_id\" : \"products/lock\", \n  \"_key\" : \"lock\", \n  \"_rev\" : \"_YzHmXHW--B\", \n  \"_oldRev\" : \"_YzHmXGy--_\" \n}\n
\n\n\n\n\n\n", + "description": "\n\nCreates a new document from the document given in the body, unless there\nis already a document with the *_key* given. If no *_key* is given, a new\nunique *_key* is generated automatically.\n\nThe body can be an array of documents, in which case all\ndocuments in the array are inserted with the same semantics as for a\nsingle document. The result body will contain a JSON array of the\nsame length as the input array, and each entry contains the result\nof the operation for the corresponding input. In case of an error\nthe entry is a document with attributes *error* set to *true* and\nerrorCode set to the error code that has happened.\n\nPossibly given *_id* and *_rev* attributes in the body are always ignored,\nthe URL part or the query parameter collection respectively counts.\n\nIf the document was created successfully, then the *Location* header\ncontains the path to the newly created document. The *Etag* header field\ncontains the revision of the document. Both are only set in the single\ndocument case.\n\nIf *silent* is not set to *true*, the body of the response contains a \nJSON object (single document case) with the following attributes:\n\n - *_id* contains the document handle of the newly created document\n - *_key* contains the document key\n - *_rev* contains the document revision\n\nIn the multi case the body is an array of such objects.\n\nIf the collection parameter *waitForSync* is *false*, then the call\nreturns as soon as the document has been accepted. It will not wait\nuntil the documents have been synced to disk.\n\nOptionally, the query parameter *waitForSync* can be used to force\nsynchronization of the document creation operation to disk even in\ncase that the *waitForSync* flag had been disabled for the entire\ncollection. Thus, the *waitForSync* query parameter can be used to\nforce synchronization of just this specific operations. To use this,\nset the *waitForSync* parameter to *true*. If the *waitForSync*\nparameter is not specified or set to *false*, then the collection's\ndefault *waitForSync* behavior is applied. The *waitForSync* query\nparameter cannot be used to disable synchronization for collections\nthat have a default *waitForSync* value of *true*.\n\nIf the query parameter *returnNew* is *true*, then, for each\ngenerated document, the complete new document is returned under\nthe *new* attribute in the result.\n\n\n\n\n**Example:**\n Create a document in a collection named *products*. Note that the\nrevision identifier might or might not by equal to the auto-generated\nkey.\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products <<EOF\n{ \"Hello\": \"World\" }\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\netag: \"_ZCIDWy----\"\nlocation: /_db/_system/_api/document/products/69169\nx-content-type-options: nosniff\n\n{ \n  \"_id\" : \"products/69169\", \n  \"_key\" : \"69169\", \n  \"_rev\" : \"_ZCIDWy----\" \n}\n
\n\n\n\n\n**Example:**\n Create a document in a collection named *products* with a collection-level\n*waitForSync* value of *false*.\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products <<EOF\n{ \"Hello\": \"World\" }\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: \"_ZCIDWxi--A\"\nlocation: /_db/_system/_api/document/products/69153\nx-content-type-options: nosniff\n\n{ \n  \"_id\" : \"products/69153\", \n  \"_key\" : \"69153\", \n  \"_rev\" : \"_ZCIDWxi--A\" \n}\n
\n\n\n\n\n**Example:**\n Create a document in a collection with a collection-level *waitForSync*\nvalue of *false*, but using the *waitForSync* query parameter.\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products?waitForSync=true <<EOF\n{ \"Hello\": \"World\" }\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\netag: \"_ZCIDWzq--A\"\nlocation: /_db/_system/_api/document/products/69209\nx-content-type-options: nosniff\n\n{ \n  \"_id\" : \"products/69209\", \n  \"_key\" : \"69209\", \n  \"_rev\" : \"_ZCIDWzq--A\" \n}\n
\n\n\n\n\n**Example:**\n Unknown collection name\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products <<EOF\n{ \"Hello\": \"World\" }\nEOF\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"collection or view not found: products\", \n  \"errorNum\" : 1203 \n}\n
\n\n\n\n\n**Example:**\n Illegal document\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products <<EOF\n{ 1: \"World\" }\nEOF\n\nHTTP/1.1 Bad Request\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 400, \n  \"error\" : true, \n  \"errorMessage\" : \"VPackError error: Expecting '\\\"' or '}'\", \n  \"errorNum\" : 600 \n}\n
\n\n\n\n\n**Example:**\n Insert multiple documents:\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products <<EOF\n[{\"Hello\":\"Earth\"}, {\"Hello\":\"Venus\"}, {\"Hello\":\"Mars\"}]\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n[ \n  { \n    \"_id\" : \"products/69178\", \n    \"_key\" : \"69178\", \n    \"_rev\" : \"_ZCIDWyS---\" \n  }, \n  { \n    \"_id\" : \"products/69179\", \n    \"_key\" : \"69179\", \n    \"_rev\" : \"_ZCIDWyS--A\" \n  }, \n  { \n    \"_id\" : \"products/69180\", \n    \"_key\" : \"69180\", \n    \"_rev\" : \"_ZCIDWyS--C\" \n  } \n]\n
\n\n\n\n\n**Example:**\n Use of returnNew:\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products?returnNew=true <<EOF\n{\"Hello\":\"World\"}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: \"_ZCIDWye--A\"\nlocation: /_db/_system/_api/document/products/69189\nx-content-type-options: nosniff\n\n{ \n  \"_id\" : \"products/69189\", \n  \"_key\" : \"69189\", \n  \"_rev\" : \"_ZCIDWye--A\", \n  \"new\" : { \n    \"_key\" : \"69189\", \n    \"_id\" : \"products/69189\", \n    \"_rev\" : \"_ZCIDWye--A\", \n    \"Hello\" : \"World\" \n  } \n}\n
\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products <<EOF\n{ \"Hello\": \"World\", \"_key\" : \"lock\" }\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\netag: \"_ZCIDWyu---\"\nlocation: /_db/_system/_api/document/products/lock\nx-content-type-options: nosniff\n\n{ \n  \"_id\" : \"products/lock\", \n  \"_key\" : \"lock\", \n  \"_rev\" : \"_ZCIDWyu---\" \n}\nshell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products?overwrite=true <<EOF\n{ \"Hello\": \"Universe\", \"_key\" : \"lock\" }\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\netag: \"_ZCIDWy6--A\"\nlocation: /_db/_system/_api/document/products/lock\nx-content-type-options: nosniff\n\n{ \n  \"_id\" : \"products/lock\", \n  \"_key\" : \"lock\", \n  \"_rev\" : \"_ZCIDWy6--A\", \n  \"_oldRev\" : \"_ZCIDWyu---\" \n}\n
\n\n\n\n\n\n", "operationId": "insertDocument", "parameters": [ { @@ -8576,7 +8656,7 @@ }, "/_api/document/{document-handle}": { "delete": { - "description": "\n\nIf *silent* is not set to *true*, the body of the response contains a JSON \nobject with the information about the handle and the revision. The attribute \n*_id* contains the known *document-handle* of the removed document, *_key* \ncontains the key which uniquely identifies a document in a given collection, \nand the attribute *_rev* contains the document revision.\n\nIf the *waitForSync* parameter is not specified or set to *false*,\nthen the collection's default *waitForSync* behavior is applied.\nThe *waitForSync* query parameter cannot be used to disable\nsynchronization for collections that have a default *waitForSync*\nvalue of *true*.\n\nIf the query parameter *returnOld* is *true*, then\nthe complete previous revision of the document\nis returned under the *old* attribute in the result.\n\n\n\n\n**Example:**\n Using document handle:\n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/104080\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\netag: \"_YzHmWza--B\"\nlocation: /_db/_system/_api/document/products/104080\nx-content-type-options: nosniff\n\n{ \n  \"_id\" : \"products/104080\", \n  \"_key\" : \"104080\", \n  \"_rev\" : \"_YzHmWza--B\" \n}\n
\n\n\n\n\n**Example:**\n Unknown document handle:\n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/104152\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"document not found\", \n  \"errorNum\" : 1202 \n}\n
\n\n\n\n\n**Example:**\n Revision conflict:\n\n
shell> curl -X DELETE --header 'If-Match: \"_YzHmW1i--_\"' --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/104097\n\nHTTP/1.1 Precondition Failed\ncontent-type: application/json; charset=utf-8\netag: \"_YzHmW1e--_\"\nx-content-type-options: nosniff\n\n{ \n  \"error\" : true, \n  \"code\" : 412, \n  \"errorNum\" : 1200, \n  \"errorMessage\" : \"precondition failed\", \n  \"_id\" : \"products/104097\", \n  \"_key\" : \"104097\", \n  \"_rev\" : \"_YzHmW1e--_\" \n}\n
\n\n\n\n", + "description": "\n\nIf *silent* is not set to *true*, the body of the response contains a JSON \nobject with the information about the handle and the revision. The attribute \n*_id* contains the known *document-handle* of the removed document, *_key* \ncontains the key which uniquely identifies a document in a given collection, \nand the attribute *_rev* contains the document revision.\n\nIf the *waitForSync* parameter is not specified or set to *false*,\nthen the collection's default *waitForSync* behavior is applied.\nThe *waitForSync* query parameter cannot be used to disable\nsynchronization for collections that have a default *waitForSync*\nvalue of *true*.\n\nIf the query parameter *returnOld* is *true*, then\nthe complete previous revision of the document\nis returned under the *old* attribute in the result.\n\n\n\n\n**Example:**\n Using document handle:\n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/69059\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\netag: \"_ZCIDWr6--A\"\nlocation: /_db/_system/_api/document/products/69059\nx-content-type-options: nosniff\n\n{ \n  \"_id\" : \"products/69059\", \n  \"_key\" : \"69059\", \n  \"_rev\" : \"_ZCIDWr6--A\" \n}\n
\n\n\n\n\n**Example:**\n Unknown document handle:\n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/69103\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"document not found\", \n  \"errorNum\" : 1202 \n}\n
\n\n\n\n\n**Example:**\n Revision conflict:\n\n
shell> curl -X DELETE --header 'If-Match: \"_ZCIDWs2--A\"' --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/69069\n\nHTTP/1.1 Precondition Failed\ncontent-type: application/json; charset=utf-8\netag: \"_ZCIDWs2---\"\nx-content-type-options: nosniff\n\n{ \n  \"error\" : true, \n  \"code\" : 412, \n  \"errorNum\" : 1200, \n  \"errorMessage\" : \"precondition failed\", \n  \"_id\" : \"products/69069\", \n  \"_key\" : \"69069\", \n  \"_rev\" : \"_ZCIDWs2---\" \n}\n
\n\n\n\n", "operationId": "removeDocument", "parameters": [ { @@ -8638,7 +8718,7 @@ "x-hints": "" }, "get": { - "description": "\n\nReturns the document identified by *document-handle*. The returned\ndocument contains three special attributes: *_id* containing the document\nhandle, *_key* containing key which uniquely identifies a document\nin a given collection and *_rev* containing the revision.\n\n\n\n\n**Example:**\n Use a document handle:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/104346\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\netag: \"_YzHmXK---B\"\nx-content-type-options: nosniff\n\n{ \n  \"_key\" : \"104346\", \n  \"_id\" : \"products/104346\", \n  \"_rev\" : \"_YzHmXK---B\", \n  \"hello\" : \"world\" \n}\n
\n\n\n\n\n**Example:**\n Use a document handle and an Etag:\n\n
shell> curl --header 'If-None-Match: \"_YzHmXO2--B\"' --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/104423\n\n
\n\n\n\n\n**Example:**\n Unknown document handle:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/unknownhandle\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"collection or view not found: products\", \n  \"errorNum\" : 1203 \n}\n
\n\n\n\n\n", + "description": "\n\nReturns the document identified by *document-handle*. The returned\ndocument contains three special attributes: *_id* containing the document\nhandle, *_key* containing key which uniquely identifies a document\nin a given collection and *_rev* containing the revision.\n\n\n\n\n**Example:**\n Use a document handle:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/69218\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\netag: \"_ZCIDW0C--A\"\nx-content-type-options: nosniff\n\n{ \n  \"_key\" : \"69218\", \n  \"_id\" : \"products/69218\", \n  \"_rev\" : \"_ZCIDW0C--A\", \n  \"hello\" : \"world\" \n}\n
\n\n\n\n\n**Example:**\n Use a document handle and an Etag:\n\n
shell> curl --header 'If-None-Match: \"_ZCIDW1K--A\"' --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/69267\n\n
\n\n\n\n\n**Example:**\n Unknown document handle:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/unknownhandle\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"collection or view not found: products\", \n  \"errorNum\" : 1203 \n}\n
\n\n\n\n\n", "operationId": "readDocument", "parameters": [ { @@ -8685,7 +8765,7 @@ "x-hints": "" }, "head": { - "description": "\n\nLike *GET*, but only returns the header fields and not the body. You\ncan use this call to get the current revision of a document or check if\nthe document was deleted.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X HEAD --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/104407\n\n
\n\n\n\n\n\n", + "description": "\n\nLike *GET*, but only returns the header fields and not the body. You\ncan use this call to get the current revision of a document or check if\nthe document was deleted.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X HEAD --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/69257\n\n
\n\n\n\n\n\n", "operationId": "checkDocument", "parameters": [ { @@ -8732,7 +8812,7 @@ "x-hints": "" }, "patch": { - "description": "\n\nPartially updates the document identified by *document-handle*.\nThe body of the request must contain a JSON document with the\nattributes to patch (the patch document). All attributes from the\npatch document will be added to the existing document if they do not\nyet exist, and overwritten in the existing document if they do exist\nthere.\n\nSetting an attribute value to *null* in the patch document will cause a\nvalue of *null* to be saved for the attribute by default.\n\nIf the *If-Match* header is specified and the revision of the\ndocument in the database is unequal to the given revision, the\nprecondition is violated.\n\nIf *If-Match* is not given and *ignoreRevs* is *false* and there\nis a *_rev* attribute in the body and its value does not match\nthe revision of the document in the database, the precondition is\nviolated.\n\nIf a precondition is violated, an *HTTP 412* is returned.\n\nIf the document exists and can be updated, then an *HTTP 201* or\nan *HTTP 202* is returned (depending on *waitForSync*, see below),\nthe *Etag* header field contains the new revision of the document\n(in double quotes) and the *Location* header contains a complete URL\nunder which the document can be queried.\n\nOptionally, the query parameter *waitForSync* can be used to force\nsynchronization of the updated document operation to disk even in case\nthat the *waitForSync* flag had been disabled for the entire collection.\nThus, the *waitForSync* query parameter can be used to force synchronization\nof just specific operations. To use this, set the *waitForSync* parameter\nto *true*. If the *waitForSync* parameter is not specified or set to\n*false*, then the collection's default *waitForSync* behavior is\napplied. The *waitForSync* query parameter cannot be used to disable\nsynchronization for collections that have a default *waitForSync* value\nof *true*.\n\nIf *silent* is not set to *true*, the body of the response contains a JSON \nobject with the information about the handle and the revision. The attribute \n*_id* contains the known *document-handle* of the updated document, *_key* \ncontains the key which uniquely identifies a document in a given collection, \nand the attribute *_rev* contains the new document revision.\n\nIf the query parameter *returnOld* is *true*, then\nthe complete previous revision of the document\nis returned under the *old* attribute in the result.\n\nIf the query parameter *returnNew* is *true*, then\nthe complete new document is returned under\nthe *new* attribute in the result.\n\nIf the document does not exist, then a *HTTP 404* is returned and the\nbody of the response contains an error document.\n\n\n\n\n**Example:**\n Patches an existing document with new content.\n\n
shell> curl -X PATCH --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products/104188 <<EOF\n{ \n  \"hello\" : \"world\" \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: \"_YzHmW9W--D\"\nlocation: /_db/_system/_api/document/products/104188\nx-content-type-options: nosniff\n\n{ \n  \"_id\" : \"products/104188\", \n  \"_key\" : \"104188\", \n  \"_rev\" : \"_YzHmW9W--D\", \n  \"_oldRev\" : \"_YzHmW9W--B\" \n}\nshell> curl -X PATCH --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products/104188 <<EOF\n{ \n  \"numbers\" : { \n    \"one\" : 1, \n    \"two\" : 2, \n    \"three\" : 3, \n    \"empty\" : null \n  } \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: \"_YzHmW9e--_\"\nlocation: /_db/_system/_api/document/products/104188\nx-content-type-options: nosniff\n\n{ \n  \"_id\" : \"products/104188\", \n  \"_key\" : \"104188\", \n  \"_rev\" : \"_YzHmW9e--_\", \n  \"_oldRev\" : \"_YzHmW9W--D\" \n}\nshell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/104188\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\netag: \"_YzHmW9e--_\"\nx-content-type-options: nosniff\n\n{ \n  \"_key\" : \"104188\", \n  \"_id\" : \"products/104188\", \n  \"_rev\" : \"_YzHmW9e--_\", \n  \"one\" : \"world\", \n  \"hello\" : \"world\", \n  \"numbers\" : { \n    \"one\" : 1, \n    \"two\" : 2, \n    \"three\" : 3, \n    \"empty\" : null \n  } \n}\nshell> curl -X PATCH --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products/104188?keepNull=false <<EOF\n{ \n  \"hello\" : null, \n  \"numbers\" : { \n    \"four\" : 4 \n  } \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: \"_YzHmW9q--_\"\nlocation: /_db/_system/_api/document/products/104188\nx-content-type-options: nosniff\n\n{ \n  \"_id\" : \"products/104188\", \n  \"_key\" : \"104188\", \n  \"_rev\" : \"_YzHmW9q--_\", \n  \"_oldRev\" : \"_YzHmW9e--_\" \n}\nshell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/104188\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\netag: \"_YzHmW9q--_\"\nx-content-type-options: nosniff\n\n{ \n  \"_key\" : \"104188\", \n  \"_id\" : \"products/104188\", \n  \"_rev\" : \"_YzHmW9q--_\", \n  \"one\" : \"world\", \n  \"numbers\" : { \n    \"empty\" : null, \n    \"one\" : 1, \n    \"three\" : 3, \n    \"two\" : 2, \n    \"four\" : 4 \n  } \n}\n
\n\n\n\n\n**Example:**\n Merging attributes of an object using `mergeObjects`:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/104211\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\netag: \"_YzHmX-q--B\"\nx-content-type-options: nosniff\n\n{ \n  \"_key\" : \"104211\", \n  \"_id\" : \"products/104211\", \n  \"_rev\" : \"_YzHmX-q--B\", \n  \"inhabitants\" : { \n    \"china\" : 1366980000, \n    \"india\" : 1263590000, \n    \"usa\" : 319220000 \n  } \n}\nshell> curl -X PATCH --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products/104211?mergeObjects=true <<EOF\n{ \n  \"inhabitants\" : { \n    \"indonesia\" : 252164800, \n    \"brazil\" : 203553000 \n  } \n}\nEOF\n\nshell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/104211\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\netag: \"_YzHmX-y--_\"\nx-content-type-options: nosniff\n\n{ \n  \"_key\" : \"104211\", \n  \"_id\" : \"products/104211\", \n  \"_rev\" : \"_YzHmX-y--_\", \n  \"inhabitants\" : { \n    \"china\" : 1366980000, \n    \"india\" : 1263590000, \n    \"usa\" : 319220000, \n    \"indonesia\" : 252164800, \n    \"brazil\" : 203553000 \n  } \n}\nshell> curl -X PATCH --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products/104211?mergeObjects=false <<EOF\n{ \n  \"inhabitants\" : { \n    \"pakistan\" : 188346000 \n  } \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: \"_YzHmX_---_\"\nlocation: /_db/_system/_api/document/products/104211\nx-content-type-options: nosniff\n\n{ \n  \"_id\" : \"products/104211\", \n  \"_key\" : \"104211\", \n  \"_rev\" : \"_YzHmX_---_\", \n  \"_oldRev\" : \"_YzHmX-y--_\" \n}\nshell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/104211\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\netag: \"_YzHmX_---_\"\nx-content-type-options: nosniff\n\n{ \n  \"_key\" : \"104211\", \n  \"_id\" : \"products/104211\", \n  \"_rev\" : \"_YzHmX_---_\", \n  \"inhabitants\" : { \n    \"pakistan\" : 188346000 \n  } \n}\n
\n\n\n\n\n", + "description": "\n\nPartially updates the document identified by *document-handle*.\nThe body of the request must contain a JSON document with the\nattributes to patch (the patch document). All attributes from the\npatch document will be added to the existing document if they do not\nyet exist, and overwritten in the existing document if they do exist\nthere.\n\nSetting an attribute value to *null* in the patch document will cause a\nvalue of *null* to be saved for the attribute by default.\n\nIf the *If-Match* header is specified and the revision of the\ndocument in the database is unequal to the given revision, the\nprecondition is violated.\n\nIf *If-Match* is not given and *ignoreRevs* is *false* and there\nis a *_rev* attribute in the body and its value does not match\nthe revision of the document in the database, the precondition is\nviolated.\n\nIf a precondition is violated, an *HTTP 412* is returned.\n\nIf the document exists and can be updated, then an *HTTP 201* or\nan *HTTP 202* is returned (depending on *waitForSync*, see below),\nthe *Etag* header field contains the new revision of the document\n(in double quotes) and the *Location* header contains a complete URL\nunder which the document can be queried.\n\nOptionally, the query parameter *waitForSync* can be used to force\nsynchronization of the updated document operation to disk even in case\nthat the *waitForSync* flag had been disabled for the entire collection.\nThus, the *waitForSync* query parameter can be used to force synchronization\nof just specific operations. To use this, set the *waitForSync* parameter\nto *true*. If the *waitForSync* parameter is not specified or set to\n*false*, then the collection's default *waitForSync* behavior is\napplied. The *waitForSync* query parameter cannot be used to disable\nsynchronization for collections that have a default *waitForSync* value\nof *true*.\n\nIf *silent* is not set to *true*, the body of the response contains a JSON \nobject with the information about the handle and the revision. The attribute \n*_id* contains the known *document-handle* of the updated document, *_key* \ncontains the key which uniquely identifies a document in a given collection, \nand the attribute *_rev* contains the new document revision.\n\nIf the query parameter *returnOld* is *true*, then\nthe complete previous revision of the document\nis returned under the *old* attribute in the result.\n\nIf the query parameter *returnNew* is *true*, then\nthe complete new document is returned under\nthe *new* attribute in the result.\n\nIf the document does not exist, then a *HTTP 404* is returned and the\nbody of the response contains an error document.\n\n\n\n\n**Example:**\n Patches an existing document with new content.\n\n
shell> curl -X PATCH --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products/69125 <<EOF\n{ \n  \"hello\" : \"world\" \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: \"_ZCIDWwa--_\"\nlocation: /_db/_system/_api/document/products/69125\nx-content-type-options: nosniff\n\n{ \n  \"_id\" : \"products/69125\", \n  \"_key\" : \"69125\", \n  \"_rev\" : \"_ZCIDWwa--_\", \n  \"_oldRev\" : \"_ZCIDWwW--A\" \n}\nshell> curl -X PATCH --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products/69125 <<EOF\n{ \n  \"numbers\" : { \n    \"one\" : 1, \n    \"two\" : 2, \n    \"three\" : 3, \n    \"empty\" : null \n  } \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: \"_ZCIDWwe--_\"\nlocation: /_db/_system/_api/document/products/69125\nx-content-type-options: nosniff\n\n{ \n  \"_id\" : \"products/69125\", \n  \"_key\" : \"69125\", \n  \"_rev\" : \"_ZCIDWwe--_\", \n  \"_oldRev\" : \"_ZCIDWwa--_\" \n}\nshell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/69125\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\netag: \"_ZCIDWwe--_\"\nx-content-type-options: nosniff\n\n{ \n  \"_key\" : \"69125\", \n  \"_id\" : \"products/69125\", \n  \"_rev\" : \"_ZCIDWwe--_\", \n  \"one\" : \"world\", \n  \"hello\" : \"world\", \n  \"numbers\" : { \n    \"one\" : 1, \n    \"two\" : 2, \n    \"three\" : 3, \n    \"empty\" : null \n  } \n}\nshell> curl -X PATCH --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products/69125?keepNull=false <<EOF\n{ \n  \"hello\" : null, \n  \"numbers\" : { \n    \"four\" : 4 \n  } \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: \"_ZCIDWwq--_\"\nlocation: /_db/_system/_api/document/products/69125\nx-content-type-options: nosniff\n\n{ \n  \"_id\" : \"products/69125\", \n  \"_key\" : \"69125\", \n  \"_rev\" : \"_ZCIDWwq--_\", \n  \"_oldRev\" : \"_ZCIDWwe--_\" \n}\nshell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/69125\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\netag: \"_ZCIDWwq--_\"\nx-content-type-options: nosniff\n\n{ \n  \"_key\" : \"69125\", \n  \"_id\" : \"products/69125\", \n  \"_rev\" : \"_ZCIDWwq--_\", \n  \"one\" : \"world\", \n  \"numbers\" : { \n    \"empty\" : null, \n    \"one\" : 1, \n    \"three\" : 3, \n    \"two\" : 2, \n    \"four\" : 4 \n  } \n}\n
\n\n\n\n\n**Example:**\n Merging attributes of an object using `mergeObjects`:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/69139\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\netag: \"_ZCIDWxC--A\"\nx-content-type-options: nosniff\n\n{ \n  \"_key\" : \"69139\", \n  \"_id\" : \"products/69139\", \n  \"_rev\" : \"_ZCIDWxC--A\", \n  \"inhabitants\" : { \n    \"china\" : 1366980000, \n    \"india\" : 1263590000, \n    \"usa\" : 319220000 \n  } \n}\nshell> curl -X PATCH --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products/69139?mergeObjects=true <<EOF\n{ \n  \"inhabitants\" : { \n    \"indonesia\" : 252164800, \n    \"brazil\" : 203553000 \n  } \n}\nEOF\n\nshell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/69139\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\netag: \"_ZCIDWxK--_\"\nx-content-type-options: nosniff\n\n{ \n  \"_key\" : \"69139\", \n  \"_id\" : \"products/69139\", \n  \"_rev\" : \"_ZCIDWxK--_\", \n  \"inhabitants\" : { \n    \"china\" : 1366980000, \n    \"india\" : 1263590000, \n    \"usa\" : 319220000, \n    \"indonesia\" : 252164800, \n    \"brazil\" : 203553000 \n  } \n}\nshell> curl -X PATCH --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products/69139?mergeObjects=false <<EOF\n{ \n  \"inhabitants\" : { \n    \"pakistan\" : 188346000 \n  } \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: \"_ZCIDWxS--_\"\nlocation: /_db/_system/_api/document/products/69139\nx-content-type-options: nosniff\n\n{ \n  \"_id\" : \"products/69139\", \n  \"_key\" : \"69139\", \n  \"_rev\" : \"_ZCIDWxS--_\", \n  \"_oldRev\" : \"_ZCIDWxK--_\" \n}\nshell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/document/products/69139\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\netag: \"_ZCIDWxS--_\"\nx-content-type-options: nosniff\n\n{ \n  \"_key\" : \"69139\", \n  \"_id\" : \"products/69139\", \n  \"_rev\" : \"_ZCIDWxS--_\", \n  \"inhabitants\" : { \n    \"pakistan\" : 188346000 \n  } \n}\n
\n\n\n\n\n", "operationId": "updateDocument", "parameters": [ { @@ -8836,7 +8916,7 @@ "x-hints": "" }, "put": { - "description": "\n\nReplaces the document with handle with the one in\nthe body, provided there is such a document and no precondition is\nviolated.\n\nIf the *If-Match* header is specified and the revision of the\ndocument in the database is unequal to the given revision, the\nprecondition is violated.\n\nIf *If-Match* is not given and *ignoreRevs* is *false* and there\nis a *_rev* attribute in the body and its value does not match\nthe revision of the document in the database, the precondition is\nviolated.\n\nIf a precondition is violated, an *HTTP 412* is returned.\n\nIf the document exists and can be updated, then an *HTTP 201* or\nan *HTTP 202* is returned (depending on *waitForSync*, see below),\nthe *Etag* header field contains the new revision of the document\nand the *Location* header contains a complete URL under which the\ndocument can be queried.\n\nOptionally, the query parameter *waitForSync* can be used to force\nsynchronization of the document replacement operation to disk even in case\nthat the *waitForSync* flag had been disabled for the entire collection.\nThus, the *waitForSync* query parameter can be used to force synchronization\nof just specific operations. To use this, set the *waitForSync* parameter\nto *true*. If the *waitForSync* parameter is not specified or set to\n*false*, then the collection's default *waitForSync* behavior is\napplied. The *waitForSync* query parameter cannot be used to disable\nsynchronization for collections that have a default *waitForSync* value\nof *true*.\n\nIf *silent* is not set to *true*, the body of the response contains a JSON \nobject with the information about the handle and the revision. The attribute \n*_id* contains the known *document-handle* of the updated document, *_key* \ncontains the key which uniquely identifies a document in a given collection, \nand the attribute *_rev* contains the new document revision.\n\nIf the query parameter *returnOld* is *true*, then\nthe complete previous revision of the document\nis returned under the *old* attribute in the result.\n\nIf the query parameter *returnNew* is *true*, then\nthe complete new document is returned under\nthe *new* attribute in the result.\n\nIf the document does not exist, then a *HTTP 404* is returned and the\nbody of the response contains an error document.\n\n\n\n\n**Example:**\n Using a document handle\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products/104441 <<EOF\n{\"Hello\": \"you\"}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: \"_YzHmXQG--B\"\nlocation: /_db/_system/_api/document/products/104441\nx-content-type-options: nosniff\n\n{ \n  \"_id\" : \"products/104441\", \n  \"_key\" : \"104441\", \n  \"_rev\" : \"_YzHmXQG--B\", \n  \"_oldRev\" : \"_YzHmXQG--_\" \n}\n
\n\n\n\n\n**Example:**\n Unknown document handle\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products/104477 <<EOF\n{}\nEOF\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"document not found\", \n  \"errorNum\" : 1202 \n}\n
\n\n\n\n\n**Example:**\n Produce a revision conflict\n\n
shell> curl -X PUT --header 'If-Match: \"_YzHmXRW--_\"' --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products/104458 <<EOF\n{\"other\":\"content\"}\nEOF\n\nHTTP/1.1 Precondition Failed\ncontent-type: application/json; charset=utf-8\netag: \"_YzHmXRS--B\"\nx-content-type-options: nosniff\n\n{ \n  \"error\" : true, \n  \"code\" : 412, \n  \"errorNum\" : 1200, \n  \"errorMessage\" : \"precondition failed\", \n  \"_id\" : \"products/104458\", \n  \"_key\" : \"104458\", \n  \"_rev\" : \"_YzHmXRS--B\" \n}\n
\n\n\n\n\n", + "description": "\n\nReplaces the document with handle with the one in\nthe body, provided there is such a document and no precondition is\nviolated.\n\nIf the *If-Match* header is specified and the revision of the\ndocument in the database is unequal to the given revision, the\nprecondition is violated.\n\nIf *If-Match* is not given and *ignoreRevs* is *false* and there\nis a *_rev* attribute in the body and its value does not match\nthe revision of the document in the database, the precondition is\nviolated.\n\nIf a precondition is violated, an *HTTP 412* is returned.\n\nIf the document exists and can be updated, then an *HTTP 201* or\nan *HTTP 202* is returned (depending on *waitForSync*, see below),\nthe *Etag* header field contains the new revision of the document\nand the *Location* header contains a complete URL under which the\ndocument can be queried.\n\nOptionally, the query parameter *waitForSync* can be used to force\nsynchronization of the document replacement operation to disk even in case\nthat the *waitForSync* flag had been disabled for the entire collection.\nThus, the *waitForSync* query parameter can be used to force synchronization\nof just specific operations. To use this, set the *waitForSync* parameter\nto *true*. If the *waitForSync* parameter is not specified or set to\n*false*, then the collection's default *waitForSync* behavior is\napplied. The *waitForSync* query parameter cannot be used to disable\nsynchronization for collections that have a default *waitForSync* value\nof *true*.\n\nIf *silent* is not set to *true*, the body of the response contains a JSON \nobject with the information about the handle and the revision. The attribute \n*_id* contains the known *document-handle* of the updated document, *_key* \ncontains the key which uniquely identifies a document in a given collection, \nand the attribute *_rev* contains the new document revision.\n\nIf the query parameter *returnOld* is *true*, then\nthe complete previous revision of the document\nis returned under the *old* attribute in the result.\n\nIf the query parameter *returnNew* is *true*, then\nthe complete new document is returned under\nthe *new* attribute in the result.\n\nIf the document does not exist, then a *HTTP 404* is returned and the\nbody of the response contains an error document.\n\n\n\n\n**Example:**\n Using a document handle\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products/69279 <<EOF\n{\"Hello\": \"you\"}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: \"_ZCIDW1e--B\"\nlocation: /_db/_system/_api/document/products/69279\nx-content-type-options: nosniff\n\n{ \n  \"_id\" : \"products/69279\", \n  \"_key\" : \"69279\", \n  \"_rev\" : \"_ZCIDW1e--B\", \n  \"_oldRev\" : \"_ZCIDW1e---\" \n}\n
\n\n\n\n\n**Example:**\n Unknown document handle\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products/69301 <<EOF\n{}\nEOF\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"document not found\", \n  \"errorNum\" : 1202 \n}\n
\n\n\n\n\n**Example:**\n Produce a revision conflict\n\n
shell> curl -X PUT --header 'If-Match: \"_ZCIDW1q--C\"' --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/document/products/69289 <<EOF\n{\"other\":\"content\"}\nEOF\n\nHTTP/1.1 Precondition Failed\ncontent-type: application/json; charset=utf-8\netag: \"_ZCIDW1q--A\"\nx-content-type-options: nosniff\n\n{ \n  \"error\" : true, \n  \"code\" : 412, \n  \"errorNum\" : 1200, \n  \"errorMessage\" : \"precondition failed\", \n  \"_id\" : \"products/69289\", \n  \"_key\" : \"69289\", \n  \"_rev\" : \"_ZCIDW1q--A\" \n}\n
\n\n\n\n\n", "operationId": "replaceDocument", "parameters": [ { @@ -8928,7 +9008,7 @@ }, "/_api/edges/{collection-id}": { "get": { - "description": "\n\nReturns an array of edges starting or ending in the vertex identified by\n*vertex-handle*.\n\n\n\n\n**Example:**\n Any direction\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/edges/edges?vertex=vertices/1\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"edges\" : [ \n    { \n      \"_key\" : \"6\", \n      \"_id\" : \"edges/6\", \n      \"_from\" : \"vertices/2\", \n      \"_to\" : \"vertices/1\", \n      \"_rev\" : \"_YzHmXUe--_\", \n      \"$label\" : \"v2 -> v1\" \n    }, \n    { \n      \"_key\" : \"7\", \n      \"_id\" : \"edges/7\", \n      \"_from\" : \"vertices/4\", \n      \"_to\" : \"vertices/1\", \n      \"_rev\" : \"_YzHmXUe--B\", \n      \"$label\" : \"v4 -> v1\" \n    }, \n    { \n      \"_key\" : \"5\", \n      \"_id\" : \"edges/5\", \n      \"_from\" : \"vertices/1\", \n      \"_to\" : \"vertices/3\", \n      \"_rev\" : \"_YzHmXUa--D\", \n      \"$label\" : \"v1 -> v3\" \n    } \n  ], \n  \"error\" : false, \n  \"code\" : 200, \n  \"stats\" : { \n    \"scannedIndex\" : 3, \n    \"filtered\" : 0 \n  } \n}\n
\n\n\n\n\n**Example:**\n In edges\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/edges/edges?vertex=vertices/1&direction=in\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"edges\" : [ \n    { \n      \"_key\" : \"6\", \n      \"_id\" : \"edges/6\", \n      \"_from\" : \"vertices/2\", \n      \"_to\" : \"vertices/1\", \n      \"_rev\" : \"_YzHmXX---_\", \n      \"$label\" : \"v2 -> v1\" \n    }, \n    { \n      \"_key\" : \"7\", \n      \"_id\" : \"edges/7\", \n      \"_from\" : \"vertices/4\", \n      \"_to\" : \"vertices/1\", \n      \"_rev\" : \"_YzHmXX---B\", \n      \"$label\" : \"v4 -> v1\" \n    } \n  ], \n  \"error\" : false, \n  \"code\" : 200, \n  \"stats\" : { \n    \"scannedIndex\" : 2, \n    \"filtered\" : 0 \n  } \n}\n
\n\n\n\n\n**Example:**\n Out edges\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/edges/edges?vertex=vertices/1&direction=out\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"edges\" : [ \n    { \n      \"_key\" : \"5\", \n      \"_id\" : \"edges/5\", \n      \"_from\" : \"vertices/1\", \n      \"_to\" : \"vertices/3\", \n      \"_rev\" : \"_YzHmXZW--B\", \n      \"$label\" : \"v1 -> v3\" \n    } \n  ], \n  \"error\" : false, \n  \"code\" : 200, \n  \"stats\" : { \n    \"scannedIndex\" : 1, \n    \"filtered\" : 0 \n  } \n}\n
\n\n\n\n\n", + "description": "\n\nReturns an array of edges starting or ending in the vertex identified by\n*vertex-handle*.\n\n\n\n\n**Example:**\n Any direction\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/edges/edges?vertex=vertices/1\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"edges\" : [ \n    { \n      \"_key\" : \"6\", \n      \"_id\" : \"edges/6\", \n      \"_from\" : \"vertices/2\", \n      \"_to\" : \"vertices/1\", \n      \"_rev\" : \"_ZCIDW2O--C\", \n      \"$label\" : \"v2 -> v1\" \n    }, \n    { \n      \"_key\" : \"7\", \n      \"_id\" : \"edges/7\", \n      \"_from\" : \"vertices/4\", \n      \"_to\" : \"vertices/1\", \n      \"_rev\" : \"_ZCIDW2O--E\", \n      \"$label\" : \"v4 -> v1\" \n    }, \n    { \n      \"_key\" : \"5\", \n      \"_id\" : \"edges/5\", \n      \"_from\" : \"vertices/1\", \n      \"_to\" : \"vertices/3\", \n      \"_rev\" : \"_ZCIDW2O--A\", \n      \"$label\" : \"v1 -> v3\" \n    } \n  ], \n  \"error\" : false, \n  \"code\" : 200, \n  \"stats\" : { \n    \"scannedIndex\" : 3, \n    \"filtered\" : 0 \n  } \n}\n
\n\n\n\n\n**Example:**\n In edges\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/edges/edges?vertex=vertices/1&direction=in\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"edges\" : [ \n    { \n      \"_key\" : \"6\", \n      \"_id\" : \"edges/6\", \n      \"_from\" : \"vertices/2\", \n      \"_to\" : \"vertices/1\", \n      \"_rev\" : \"_ZCIDW2q--C\", \n      \"$label\" : \"v2 -> v1\" \n    }, \n    { \n      \"_key\" : \"7\", \n      \"_id\" : \"edges/7\", \n      \"_from\" : \"vertices/4\", \n      \"_to\" : \"vertices/1\", \n      \"_rev\" : \"_ZCIDW2q--E\", \n      \"$label\" : \"v4 -> v1\" \n    } \n  ], \n  \"error\" : false, \n  \"code\" : 200, \n  \"stats\" : { \n    \"scannedIndex\" : 2, \n    \"filtered\" : 0 \n  } \n}\n
\n\n\n\n\n**Example:**\n Out edges\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/edges/edges?vertex=vertices/1&direction=out\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"edges\" : [ \n    { \n      \"_key\" : \"5\", \n      \"_id\" : \"edges/5\", \n      \"_from\" : \"vertices/1\", \n      \"_to\" : \"vertices/3\", \n      \"_rev\" : \"_ZCIDW3G---\", \n      \"$label\" : \"v1 -> v3\" \n    } \n  ], \n  \"error\" : false, \n  \"code\" : 200, \n  \"stats\" : { \n    \"scannedIndex\" : 1, \n    \"filtered\" : 0 \n  } \n}\n
\n\n\n\n\n", "operationId": "ReadIn-OrOutboundEdges", "parameters": [ { @@ -8976,7 +9056,7 @@ }, "/_api/endpoint": { "get": { - "description": "\n\nReturns an array of all configured endpoints the server is listening on.\n\nThe result is a JSON array of JSON objects, each with `\"entrypoint\"' as\nthe only attribute, and with the value being a string describing the\nendpoint.\n\n**Note**: retrieving the array of all endpoints is allowed in the system database\nonly. Calling this action in any other database will make the server return\nan error.\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nIt is considered as deprecated from version 3.4.0 on.\n\n\n\n\n\n\n**Example:**\n \n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/endpoint\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n[ \n  { \n    \"endpoint\" : \"http://127.0.0.1:54850\" \n  } \n]\n
\n\n\n\n\n", + "description": "\n\nReturns an array of all configured endpoints the server is listening on.\n\nThe result is a JSON array of JSON objects, each with `\"entrypoint\"' as\nthe only attribute, and with the value being a string describing the\nendpoint.\n\n**Note**: retrieving the array of all endpoints is allowed in the system database\nonly. Calling this action in any other database will make the server return\nan error.\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nIt is considered as deprecated from version 3.4.0 on.\n\n\n\n\n\n\n**Example:**\n \n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/endpoint\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n[ \n  { \n    \"endpoint\" : \"http://127.0.0.1:18120\" \n  } \n]\n
\n\n\n\n\n", "operationId": "retrieveEndpoints", "parameters": [], "responses": { @@ -9001,7 +9081,7 @@ }, "/_api/engine": { "get": { - "description": "\n\nReturns the storage engine the server is configured to use.\nThe response is a JSON object with the following attributes:\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nis returned in all cases.\n\n- **name**: will be *mmfiles* or *rocksdb*\n\n\n\n\n**Example:**\n Return the active storage engine\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/engine\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"name\" : \"mmfiles\", \n  \"supports\" : { \n    \"dfdb\" : true, \n    \"indexes\" : [ \n      \"primary\", \n      \"edge\", \n      \"hash\", \n      \"skiplist\", \n      \"ttl\", \n      \"persistent\", \n      \"geo\", \n      \"fulltext\" \n    ], \n    \"aliases\" : { \n      \"indexes\" : { \n      } \n    } \n  } \n}\n
\n\n\n\n\n", + "description": "\n\nReturns the storage engine the server is configured to use.\nThe response is a JSON object with the following attributes:\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nis returned in all cases.\n\n- **name**: will be *mmfiles* or *rocksdb*\n\n\n\n\n**Example:**\n Return the active storage engine with the MMFiles storage engine in use:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/engine\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"name\" : \"mmfiles\", \n  \"supports\" : { \n    \"dfdb\" : true, \n    \"indexes\" : [ \n      \"primary\", \n      \"edge\", \n      \"hash\", \n      \"skiplist\", \n      \"ttl\", \n      \"persistent\", \n      \"geo\", \n      \"fulltext\" \n    ], \n    \"aliases\" : { \n      \"indexes\" : { \n      } \n    } \n  } \n}\n
\n\n\n\n\n**Example:**\n Return the active storage engine with the RocksDB storage engine in use:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/engine\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"name\" : \"rocksdb\", \n  \"supports\" : { \n    \"dfdb\" : false, \n    \"indexes\" : [ \n      \"primary\", \n      \"edge\", \n      \"hash\", \n      \"skiplist\", \n      \"ttl\", \n      \"persistent\", \n      \"geo\", \n      \"fulltext\" \n    ], \n    \"aliases\" : { \n      \"indexes\" : { \n        \"skiplist\" : \"persistent\", \n        \"hash\" : \"persistent\" \n      } \n    } \n  } \n}\n
\n\n\n\n\n\n", "operationId": "RestEngineHandler", "parameters": [], "produces": [ @@ -9027,7 +9107,7 @@ }, "/_api/explain": { "post": { - "description": "\n**A JSON object with these properties is required:**\n\n - **query**: the query which you want explained; If the query references any bind variables,\n these must also be passed in the attribute *bindVars*. Additional\n options for the query can be passed in the *options* attribute.\n - **options**:\n - **optimizer.rules** (string): an array of to-be-included or to-be-excluded optimizer rules\n can be put into this attribute, telling the optimizer to include or exclude\n specific rules. To disable a rule, prefix its name with a `-`, to enable a rule, prefix it\n with a `+`. There is also a pseudo-rule `all`, which will match all optimizer rules.\n - **maxNumberOfPlans**: an optional maximum number of plans that the optimizer is \n allowed to generate. Setting this attribute to a low value allows to put a\n cap on the amount of work the optimizer does.\n - **allPlans**: if set to *true*, all possible execution plans will be returned.\n The default is *false*, meaning only the optimal plan will be returned.\n - **bindVars** (object): key/value pairs representing the bind parameters.\n\n\n\n\n\nTo explain how an AQL query would be executed on the server, the query string\ncan be sent to the server via an HTTP POST request. The server will then validate\nthe query and create an execution plan for it. The execution plan will be\nreturned, but the query will not be executed.\n\nThe execution plan that is returned by the server can be used to estimate the\nprobable performance of the query. Though the actual performance will depend\non many different factors, the execution plan normally can provide some rough\nestimates on the amount of work the server needs to do in order to actually run \nthe query.\n\nBy default, the explain operation will return the optimal plan as chosen by\nthe query optimizer The optimal plan is the plan with the lowest total estimated\ncost. The plan will be returned in the attribute *plan* of the response object.\nIf the option *allPlans* is specified in the request, the result will contain \nall plans created by the optimizer. The plans will then be returned in the \nattribute *plans*.\n\nThe result will also contain an attribute *warnings*, which is an array of \nwarnings that occurred during optimization or execution plan creation. Additionally,\na *stats* attribute is contained in the result with some optimizer statistics.\nIf *allPlans* is set to *false*, the result will contain an attribute *cacheable* \nthat states whether the query results can be cached on the server if the query\nresult cache were used. The *cacheable* attribute is not present when *allPlans*\nis set to *true*.\n\nEach plan in the result is a JSON object with the following attributes:\n- *nodes*: the array of execution nodes of the plan. The array of available node types\n can be found [here](../../AQL/ExecutionAndPerformance/Optimizer.html)\n\n- *estimatedCost*: the total estimated cost for the plan. If there are multiple\n plans, the optimizer will choose the plan with the lowest total cost.\n\n- *collections*: an array of collections used in the query\n\n- *rules*: an array of rules the optimizer applied. An overview of the\n available rules can be found [here](../../AQL/ExecutionAndPerformance/Optimizer.html)\n\n- *variables*: array of variables used in the query (note: this may contain\n internal variables created by the optimizer)\n\n\n\n\n**Example:**\n Valid query\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/explain <<EOF\n{ \n  \"query\" : \"FOR p IN products RETURN p\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"plan\" : { \n    \"nodes\" : [ \n      { \n        \"type\" : \"SingletonNode\", \n        \"dependencies\" : [ ], \n        \"id\" : 1, \n        \"estimatedCost\" : 1, \n        \"estimatedNrItems\" : 1 \n      }, \n      { \n        \"type\" : \"EnumerateCollectionNode\", \n        \"dependencies\" : [ \n          1 \n        ], \n        \"id\" : 2, \n        \"estimatedCost\" : 12, \n        \"estimatedNrItems\" : 10, \n        \"random\" : false, \n        \"indexHint\" : { \n          \"forced\" : false, \n          \"type\" : \"none\" \n        }, \n        \"outVariable\" : { \n          \"id\" : 0, \n          \"name\" : \"p\" \n        }, \n        \"projections\" : [ ], \n        \"producesResult\" : true, \n        \"database\" : \"_system\", \n        \"collection\" : \"products\", \n        \"satellite\" : false \n      }, \n      { \n        \"type\" : \"ReturnNode\", \n        \"dependencies\" : [ \n          2 \n        ], \n        \"id\" : 3, \n        \"estimatedCost\" : 22, \n        \"estimatedNrItems\" : 10, \n        \"inVariable\" : { \n          \"id\" : 0, \n          \"name\" : \"p\" \n        }, \n        \"count\" : true \n      } \n    ], \n    \"rules\" : [ ], \n    \"collections\" : [ \n      { \n        \"name\" : \"products\", \n        \"type\" : \"read\" \n      } \n    ], \n    \"variables\" : [ \n      { \n        \"id\" : 0, \n        \"name\" : \"p\" \n      } \n    ], \n    \"estimatedCost\" : 22, \n    \"estimatedNrItems\" : 10, \n    \"initialize\" : true, \n    \"isModificationQuery\" : false \n  }, \n  \"cacheable\" : true, \n  \"warnings\" : [ ], \n  \"stats\" : { \n    \"rulesExecuted\" : 35, \n    \"rulesSkipped\" : 0, \n    \"plansCreated\" : 1 \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n A plan with some optimizer rules applied\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/explain <<EOF\n{ \n  \"query\" : \"FOR p IN products LET a = p.id FILTER a == 4 LET name = p.name SORT p.id LIMIT 1 RETURN name\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"plan\" : { \n    \"nodes\" : [ \n      { \n        \"type\" : \"SingletonNode\", \n        \"dependencies\" : [ ], \n        \"id\" : 1, \n        \"estimatedCost\" : 1, \n        \"estimatedNrItems\" : 1 \n      }, \n      { \n        \"type\" : \"IndexNode\", \n        \"dependencies\" : [ \n          1 \n        ], \n        \"id\" : 11, \n        \"estimatedCost\" : 4.321928094887362, \n        \"estimatedNrItems\" : 1, \n        \"outVariable\" : { \n          \"id\" : 0, \n          \"name\" : \"p\" \n        }, \n        \"projections\" : [ ], \n        \"producesResult\" : true, \n        \"database\" : \"_system\", \n        \"collection\" : \"products\", \n        \"satellite\" : false, \n        \"needsGatherNodeSort\" : true, \n        \"indexCoversProjections\" : false, \n        \"indexes\" : [ \n          { \n            \"id\" : \"104659\", \n            \"type\" : \"skiplist\", \n            \"name\" : \"idx_1636256398236975106\", \n            \"fields\" : [ \n              \"id\" \n            ], \n            \"unique\" : false, \n            \"sparse\" : false, \n            \"deduplicate\" : true \n          } \n        ], \n        \"condition\" : { \n          \"type\" : \"n-ary or\", \n          \"typeID\" : 63, \n          \"subNodes\" : [ \n            { \n              \"type\" : \"n-ary and\", \n              \"typeID\" : 62, \n              \"subNodes\" : [ \n                { \n                  \"type\" : \"compare ==\", \n                  \"typeID\" : 25, \n                  \"excludesNull\" : false, \n                  \"subNodes\" : [ \n                    { \n                      \"type\" : \"attribute access\", \n                      \"typeID\" : 35, \n                      \"name\" : \"id\", \n                      \"subNodes\" : [ \n                        { \n                          \"type\" : \"reference\", \n                          \"typeID\" : 45, \n                          \"name\" : \"p\", \n                          \"id\" : 0 \n                        } \n                      ] \n                    }, \n                    { \n                      \"type\" : \"value\", \n                      \"typeID\" : 40, \n                      \"value\" : 4, \n                      \"vType\" : \"int\", \n                      \"vTypeID\" : 2 \n                    } \n                  ] \n                } \n              ] \n            } \n          ] \n        }, \n        \"sorted\" : true, \n        \"ascending\" : true, \n        \"reverse\" : false, \n        \"evalFCalls\" : true, \n        \"limit\" : 0 \n      }, \n      { \n        \"type\" : \"CalculationNode\", \n        \"dependencies\" : [ \n          11 \n        ], \n        \"id\" : 4, \n        \"estimatedCost\" : 5.321928094887362, \n        \"estimatedNrItems\" : 1, \n        \"expression\" : { \n          \"type\" : \"compare ==\", \n          \"typeID\" : 25, \n          \"excludesNull\" : false, \n          \"subNodes\" : [ \n            { \n              \"type\" : \"attribute access\", \n              \"typeID\" : 35, \n              \"name\" : \"id\", \n              \"subNodes\" : [ \n                { \n                  \"type\" : \"reference\", \n                  \"typeID\" : 45, \n                  \"name\" : \"p\", \n                  \"id\" : 0 \n                } \n              ] \n            }, \n            { \n              \"type\" : \"value\", \n              \"typeID\" : 40, \n              \"value\" : 4, \n              \"vType\" : \"int\", \n              \"vTypeID\" : 2 \n            } \n          ] \n        }, \n        \"outVariable\" : { \n          \"id\" : 4, \n          \"name\" : \"3\" \n        }, \n        \"canThrow\" : false, \n        \"expressionType\" : \"simple\" \n      }, \n      { \n        \"type\" : \"FilterNode\", \n        \"dependencies\" : [ \n          4 \n        ], \n        \"id\" : 5, \n        \"estimatedCost\" : 6.321928094887362, \n        \"estimatedNrItems\" : 1, \n        \"inVariable\" : { \n          \"id\" : 4, \n          \"name\" : \"3\" \n        } \n      }, \n      { \n        \"type\" : \"LimitNode\", \n        \"dependencies\" : [ \n          5 \n        ], \n        \"id\" : 9, \n        \"estimatedCost\" : 7.321928094887362, \n        \"estimatedNrItems\" : 1, \n        \"offset\" : 0, \n        \"limit\" : 1, \n        \"fullCount\" : false \n      }, \n      { \n        \"type\" : \"CalculationNode\", \n        \"dependencies\" : [ \n          9 \n        ], \n        \"id\" : 6, \n        \"estimatedCost\" : 8.321928094887362, \n        \"estimatedNrItems\" : 1, \n        \"expression\" : { \n          \"type\" : \"attribute access\", \n          \"typeID\" : 35, \n          \"name\" : \"name\", \n          \"subNodes\" : [ \n            { \n              \"type\" : \"reference\", \n              \"typeID\" : 45, \n              \"name\" : \"p\", \n              \"id\" : 0 \n            } \n          ] \n        }, \n        \"outVariable\" : { \n          \"id\" : 2, \n          \"name\" : \"name\" \n        }, \n        \"canThrow\" : false, \n        \"expressionType\" : \"attribute\" \n      }, \n      { \n        \"type\" : \"ReturnNode\", \n        \"dependencies\" : [ \n          6 \n        ], \n        \"id\" : 10, \n        \"estimatedCost\" : 9.321928094887362, \n        \"estimatedNrItems\" : 1, \n        \"inVariable\" : { \n          \"id\" : 2, \n          \"name\" : \"name\" \n        }, \n        \"count\" : true \n      } \n    ], \n    \"rules\" : [ \n      \"move-calculations-up\", \n      \"remove-redundant-calculations\", \n      \"remove-unnecessary-calculations\", \n      \"move-calculations-up-2\", \n      \"use-indexes\", \n      \"use-index-for-sort\", \n      \"remove-unnecessary-calculations-2\", \n      \"move-calculations-down\" \n    ], \n    \"collections\" : [ \n      { \n        \"name\" : \"products\", \n        \"type\" : \"read\" \n      } \n    ], \n    \"variables\" : [ \n      { \n        \"id\" : 6, \n        \"name\" : \"5\" \n      }, \n      { \n        \"id\" : 4, \n        \"name\" : \"3\" \n      }, \n      { \n        \"id\" : 2, \n        \"name\" : \"name\" \n      }, \n      { \n        \"id\" : 1, \n        \"name\" : \"a\" \n      }, \n      { \n        \"id\" : 0, \n        \"name\" : \"p\" \n      } \n    ], \n    \"estimatedCost\" : 9.321928094887362, \n    \"estimatedNrItems\" : 1, \n    \"initialize\" : true, \n    \"isModificationQuery\" : false \n  }, \n  \"cacheable\" : true, \n  \"warnings\" : [ ], \n  \"stats\" : { \n    \"rulesExecuted\" : 35, \n    \"rulesSkipped\" : 0, \n    \"plansCreated\" : 1 \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Using some options\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/explain <<EOF\n{ \n  \"query\" : \"FOR p IN products LET a = p.id FILTER a == 4 LET name = p.name SORT p.id LIMIT 1 RETURN name\", \n  \"options\" : { \n    \"maxNumberOfPlans\" : 2, \n    \"allPlans\" : true, \n    \"optimizer\" : { \n      \"rules\" : [ \n        \"-all\", \n        \"+use-index-for-sort\", \n        \"+use-index-range\" \n      ] \n    } \n  } \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"plans\" : [ \n    { \n      \"nodes\" : [ \n        { \n          \"type\" : \"SingletonNode\", \n          \"dependencies\" : [ ], \n          \"id\" : 1, \n          \"estimatedCost\" : 1, \n          \"estimatedNrItems\" : 1 \n        }, \n        { \n          \"type\" : \"IndexNode\", \n          \"dependencies\" : [ \n            1 \n          ], \n          \"id\" : 11, \n          \"estimatedCost\" : 11, \n          \"estimatedNrItems\" : 10, \n          \"outVariable\" : { \n            \"id\" : 0, \n            \"name\" : \"p\" \n          }, \n          \"projections\" : [ ], \n          \"producesResult\" : true, \n          \"database\" : \"_system\", \n          \"collection\" : \"products\", \n          \"satellite\" : false, \n          \"needsGatherNodeSort\" : true, \n          \"indexCoversProjections\" : false, \n          \"indexes\" : [ \n            { \n              \"id\" : \"104706\", \n              \"type\" : \"skiplist\", \n              \"name\" : \"idx_1636256398284161026\", \n              \"fields\" : [ \n                \"id\" \n              ], \n              \"unique\" : false, \n              \"sparse\" : false, \n              \"deduplicate\" : true \n            } \n          ], \n          \"condition\" : { \n          }, \n          \"sorted\" : true, \n          \"ascending\" : true, \n          \"reverse\" : false, \n          \"evalFCalls\" : true, \n          \"limit\" : 0 \n        }, \n        { \n          \"type\" : \"CalculationNode\", \n          \"dependencies\" : [ \n            11 \n          ], \n          \"id\" : 3, \n          \"estimatedCost\" : 21, \n          \"estimatedNrItems\" : 10, \n          \"expression\" : { \n            \"type\" : \"attribute access\", \n            \"typeID\" : 35, \n            \"name\" : \"id\", \n            \"subNodes\" : [ \n              { \n                \"type\" : \"reference\", \n                \"typeID\" : 45, \n                \"name\" : \"p\", \n                \"id\" : 0 \n              } \n            ] \n          }, \n          \"outVariable\" : { \n            \"id\" : 1, \n            \"name\" : \"a\" \n          }, \n          \"canThrow\" : false, \n          \"expressionType\" : \"attribute\" \n        }, \n        { \n          \"type\" : \"CalculationNode\", \n          \"dependencies\" : [ \n            3 \n          ], \n          \"id\" : 4, \n          \"estimatedCost\" : 31, \n          \"estimatedNrItems\" : 10, \n          \"expression\" : { \n            \"type\" : \"compare ==\", \n            \"typeID\" : 25, \n            \"excludesNull\" : false, \n            \"subNodes\" : [ \n              { \n                \"type\" : \"reference\", \n                \"typeID\" : 45, \n                \"name\" : \"a\", \n                \"id\" : 1 \n              }, \n              { \n                \"type\" : \"value\", \n                \"typeID\" : 40, \n                \"value\" : 4, \n                \"vType\" : \"int\", \n                \"vTypeID\" : 2 \n              } \n            ] \n          }, \n          \"outVariable\" : { \n            \"id\" : 4, \n            \"name\" : \"3\" \n          }, \n          \"canThrow\" : false, \n          \"expressionType\" : \"simple\" \n        }, \n        { \n          \"type\" : \"FilterNode\", \n          \"dependencies\" : [ \n            4 \n          ], \n          \"id\" : 5, \n          \"estimatedCost\" : 41, \n          \"estimatedNrItems\" : 10, \n          \"inVariable\" : { \n            \"id\" : 4, \n            \"name\" : \"3\" \n          } \n        }, \n        { \n          \"type\" : \"CalculationNode\", \n          \"dependencies\" : [ \n            5 \n          ], \n          \"id\" : 6, \n          \"estimatedCost\" : 51, \n          \"estimatedNrItems\" : 10, \n          \"expression\" : { \n            \"type\" : \"attribute access\", \n            \"typeID\" : 35, \n            \"name\" : \"name\", \n            \"subNodes\" : [ \n              { \n                \"type\" : \"reference\", \n                \"typeID\" : 45, \n                \"name\" : \"p\", \n                \"id\" : 0 \n              } \n            ] \n          }, \n          \"outVariable\" : { \n            \"id\" : 2, \n            \"name\" : \"name\" \n          }, \n          \"canThrow\" : false, \n          \"expressionType\" : \"attribute\" \n        }, \n        { \n          \"type\" : \"CalculationNode\", \n          \"dependencies\" : [ \n            6 \n          ], \n          \"id\" : 7, \n          \"estimatedCost\" : 61, \n          \"estimatedNrItems\" : 10, \n          \"expression\" : { \n            \"type\" : \"attribute access\", \n            \"typeID\" : 35, \n            \"name\" : \"id\", \n            \"subNodes\" : [ \n              { \n                \"type\" : \"reference\", \n                \"typeID\" : 45, \n                \"name\" : \"p\", \n                \"id\" : 0 \n              } \n            ] \n          }, \n          \"outVariable\" : { \n            \"id\" : 6, \n            \"name\" : \"5\" \n          }, \n          \"canThrow\" : false, \n          \"expressionType\" : \"attribute\" \n        }, \n        { \n          \"type\" : \"LimitNode\", \n          \"dependencies\" : [ \n            7 \n          ], \n          \"id\" : 9, \n          \"estimatedCost\" : 62, \n          \"estimatedNrItems\" : 1, \n          \"offset\" : 0, \n          \"limit\" : 1, \n          \"fullCount\" : false \n        }, \n        { \n          \"type\" : \"ReturnNode\", \n          \"dependencies\" : [ \n            9 \n          ], \n          \"id\" : 10, \n          \"estimatedCost\" : 63, \n          \"estimatedNrItems\" : 1, \n          \"inVariable\" : { \n            \"id\" : 2, \n            \"name\" : \"name\" \n          }, \n          \"count\" : true \n        } \n      ], \n      \"rules\" : [ \n        \"use-index-for-sort\" \n      ], \n      \"collections\" : [ \n        { \n          \"name\" : \"products\", \n          \"type\" : \"read\" \n        } \n      ], \n      \"variables\" : [ \n        { \n          \"id\" : 6, \n          \"name\" : \"5\" \n        }, \n        { \n          \"id\" : 4, \n          \"name\" : \"3\" \n        }, \n        { \n          \"id\" : 2, \n          \"name\" : \"name\" \n        }, \n        { \n          \"id\" : 1, \n          \"name\" : \"a\" \n        }, \n        { \n          \"id\" : 0, \n          \"name\" : \"p\" \n        } \n      ], \n      \"estimatedCost\" : 63, \n      \"estimatedNrItems\" : 1, \n      \"initialize\" : true, \n      \"isModificationQuery\" : false \n    } \n  ], \n  \"warnings\" : [ ], \n  \"stats\" : { \n    \"rulesExecuted\" : 3, \n    \"rulesSkipped\" : 32, \n    \"plansCreated\" : 1 \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Returning all plans\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/explain <<EOF\n{ \n  \"query\" : \"FOR p IN products FILTER p.id == 25 RETURN p\", \n  \"options\" : { \n    \"allPlans\" : true \n  } \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"plans\" : [ \n    { \n      \"nodes\" : [ \n        { \n          \"type\" : \"SingletonNode\", \n          \"dependencies\" : [ ], \n          \"id\" : 1, \n          \"estimatedCost\" : 1, \n          \"estimatedNrItems\" : 1 \n        }, \n        { \n          \"type\" : \"IndexNode\", \n          \"dependencies\" : [ \n            1 \n          ], \n          \"id\" : 6, \n          \"estimatedCost\" : 1.99, \n          \"estimatedNrItems\" : 1, \n          \"outVariable\" : { \n            \"id\" : 0, \n            \"name\" : \"p\" \n          }, \n          \"projections\" : [ ], \n          \"producesResult\" : true, \n          \"database\" : \"_system\", \n          \"collection\" : \"products\", \n          \"satellite\" : false, \n          \"needsGatherNodeSort\" : false, \n          \"indexCoversProjections\" : false, \n          \"indexes\" : [ \n            { \n              \"id\" : \"104620\", \n              \"type\" : \"hash\", \n              \"name\" : \"idx_1636256398153089026\", \n              \"fields\" : [ \n                \"id\" \n              ], \n              \"selectivityEstimate\" : 1, \n              \"unique\" : false, \n              \"sparse\" : false, \n              \"deduplicate\" : true \n            } \n          ], \n          \"condition\" : { \n            \"type\" : \"n-ary or\", \n            \"typeID\" : 63, \n            \"subNodes\" : [ \n              { \n                \"type\" : \"n-ary and\", \n                \"typeID\" : 62, \n                \"subNodes\" : [ \n                  { \n                    \"type\" : \"compare ==\", \n                    \"typeID\" : 25, \n                    \"excludesNull\" : false, \n                    \"subNodes\" : [ \n                      { \n                        \"type\" : \"attribute access\", \n                        \"typeID\" : 35, \n                        \"name\" : \"id\", \n                        \"subNodes\" : [ \n                          { \n                            \"type\" : \"reference\", \n                            \"typeID\" : 45, \n                            \"name\" : \"p\", \n                            \"id\" : 0 \n                          } \n                        ] \n                      }, \n                      { \n                        \"type\" : \"value\", \n                        \"typeID\" : 40, \n                        \"value\" : 25, \n                        \"vType\" : \"int\", \n                        \"vTypeID\" : 2 \n                      } \n                    ] \n                  } \n                ] \n              } \n            ] \n          }, \n          \"sorted\" : true, \n          \"ascending\" : true, \n          \"reverse\" : false, \n          \"evalFCalls\" : true, \n          \"limit\" : 0 \n        }, \n        { \n          \"type\" : \"ReturnNode\", \n          \"dependencies\" : [ \n            6 \n          ], \n          \"id\" : 5, \n          \"estimatedCost\" : 2.99, \n          \"estimatedNrItems\" : 1, \n          \"inVariable\" : { \n            \"id\" : 0, \n            \"name\" : \"p\" \n          }, \n          \"count\" : true \n        } \n      ], \n      \"rules\" : [ \n        \"use-indexes\", \n        \"remove-filter-covered-by-index\", \n        \"remove-unnecessary-calculations-2\" \n      ], \n      \"collections\" : [ \n        { \n          \"name\" : \"products\", \n          \"type\" : \"read\" \n        } \n      ], \n      \"variables\" : [ \n        { \n          \"id\" : 2, \n          \"name\" : \"1\" \n        }, \n        { \n          \"id\" : 0, \n          \"name\" : \"p\" \n        } \n      ], \n      \"estimatedCost\" : 2.99, \n      \"estimatedNrItems\" : 1, \n      \"initialize\" : true, \n      \"isModificationQuery\" : false \n    } \n  ], \n  \"warnings\" : [ ], \n  \"stats\" : { \n    \"rulesExecuted\" : 35, \n    \"rulesSkipped\" : 0, \n    \"plansCreated\" : 1 \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n A query that produces a warning\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/explain <<EOF\n{ \n  \"query\" : \"FOR i IN 1..10 RETURN 1 / 0\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"plan\" : { \n    \"nodes\" : [ \n      { \n        \"type\" : \"SingletonNode\", \n        \"dependencies\" : [ ], \n        \"id\" : 1, \n        \"estimatedCost\" : 1, \n        \"estimatedNrItems\" : 1 \n      }, \n      { \n        \"type\" : \"CalculationNode\", \n        \"dependencies\" : [ \n          1 \n        ], \n        \"id\" : 2, \n        \"estimatedCost\" : 2, \n        \"estimatedNrItems\" : 1, \n        \"expression\" : { \n          \"type\" : \"range\", \n          \"typeID\" : 49, \n          \"subNodes\" : [ \n            { \n              \"type\" : \"value\", \n              \"typeID\" : 40, \n              \"value\" : 1, \n              \"vType\" : \"int\", \n              \"vTypeID\" : 2 \n            }, \n            { \n              \"type\" : \"value\", \n              \"typeID\" : 40, \n              \"value\" : 10, \n              \"vType\" : \"int\", \n              \"vTypeID\" : 2 \n            } \n          ] \n        }, \n        \"outVariable\" : { \n          \"id\" : 2, \n          \"name\" : \"1\" \n        }, \n        \"canThrow\" : false, \n        \"expressionType\" : \"simple\" \n      }, \n      { \n        \"type\" : \"CalculationNode\", \n        \"dependencies\" : [ \n          2 \n        ], \n        \"id\" : 4, \n        \"estimatedCost\" : 3, \n        \"estimatedNrItems\" : 1, \n        \"expression\" : { \n          \"type\" : \"value\", \n          \"typeID\" : 40, \n          \"value\" : null, \n          \"vType\" : \"null\", \n          \"vTypeID\" : 0 \n        }, \n        \"outVariable\" : { \n          \"id\" : 4, \n          \"name\" : \"3\" \n        }, \n        \"canThrow\" : false, \n        \"expressionType\" : \"json\" \n      }, \n      { \n        \"type\" : \"EnumerateListNode\", \n        \"dependencies\" : [ \n          4 \n        ], \n        \"id\" : 3, \n        \"estimatedCost\" : 13, \n        \"estimatedNrItems\" : 10, \n        \"inVariable\" : { \n          \"id\" : 2, \n          \"name\" : \"1\" \n        }, \n        \"outVariable\" : { \n          \"id\" : 0, \n          \"name\" : \"i\" \n        } \n      }, \n      { \n        \"type\" : \"ReturnNode\", \n        \"dependencies\" : [ \n          3 \n        ], \n        \"id\" : 5, \n        \"estimatedCost\" : 23, \n        \"estimatedNrItems\" : 10, \n        \"inVariable\" : { \n          \"id\" : 4, \n          \"name\" : \"3\" \n        }, \n        \"count\" : true \n      } \n    ], \n    \"rules\" : [ \n      \"move-calculations-up\", \n      \"move-calculations-up-2\" \n    ], \n    \"collections\" : [ ], \n    \"variables\" : [ \n      { \n        \"id\" : 4, \n        \"name\" : \"3\" \n      }, \n      { \n        \"id\" : 2, \n        \"name\" : \"1\" \n      }, \n      { \n        \"id\" : 0, \n        \"name\" : \"i\" \n      } \n    ], \n    \"estimatedCost\" : 23, \n    \"estimatedNrItems\" : 10, \n    \"initialize\" : true, \n    \"isModificationQuery\" : false \n  }, \n  \"cacheable\" : false, \n  \"warnings\" : [ \n    { \n      \"code\" : 1562, \n      \"message\" : \"division by zero\" \n    } \n  ], \n  \"stats\" : { \n    \"rulesExecuted\" : 35, \n    \"rulesSkipped\" : 0, \n    \"plansCreated\" : 1 \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Invalid query (missing bind parameter)\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/explain <<EOF\n{ \n  \"query\" : \"FOR p IN products FILTER p.id == @id LIMIT 2 RETURN p.n\" \n}\nEOF\n\nHTTP/1.1 Bad Request\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 400, \n  \"error\" : true, \n  \"errorMessage\" : \"no value specified for declared bind parameter 'id' (while parsing)\", \n  \"errorNum\" : 1551 \n}\n
\n\n\n\n\n**Example:**\n The data returned in the **plan** attribute of the result contains one element per AQL top-level statement\n(i.e. `FOR`, `RETURN`, `FILTER` etc.). If the query optimizer removed some unnecessary statements,\nthe result might also contain less elements than there were top-level statements in the AQL query.\n\nThe following example shows a query with a non-sensible filter condition that\nthe optimizer has removed so that there are less top-level statements.\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/explain <<EOF\n{ \"query\" : \"FOR i IN [ 1, 2, 3 ] FILTER 1 == 2 RETURN i\" }\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"plan\" : { \n    \"nodes\" : [ \n      { \n        \"type\" : \"SingletonNode\", \n        \"dependencies\" : [ ], \n        \"id\" : 1, \n        \"estimatedCost\" : 1, \n        \"estimatedNrItems\" : 1 \n      }, \n      { \n        \"type\" : \"CalculationNode\", \n        \"dependencies\" : [ \n          1 \n        ], \n        \"id\" : 2, \n        \"estimatedCost\" : 2, \n        \"estimatedNrItems\" : 1, \n        \"expression\" : { \n          \"type\" : \"array\", \n          \"typeID\" : 41, \n          \"subNodes\" : [ \n            { \n              \"type\" : \"value\", \n              \"typeID\" : 40, \n              \"value\" : 1, \n              \"vType\" : \"int\", \n              \"vTypeID\" : 2 \n            }, \n            { \n              \"type\" : \"value\", \n              \"typeID\" : 40, \n              \"value\" : 2, \n              \"vType\" : \"int\", \n              \"vTypeID\" : 2 \n            }, \n            { \n              \"type\" : \"value\", \n              \"typeID\" : 40, \n              \"value\" : 3, \n              \"vType\" : \"int\", \n              \"vTypeID\" : 2 \n            } \n          ] \n        }, \n        \"outVariable\" : { \n          \"id\" : 2, \n          \"name\" : \"1\" \n        }, \n        \"canThrow\" : false, \n        \"expressionType\" : \"json\" \n      }, \n      { \n        \"type\" : \"NoResultsNode\", \n        \"dependencies\" : [ \n          2 \n        ], \n        \"id\" : 7, \n        \"estimatedCost\" : 0.5, \n        \"estimatedNrItems\" : 0 \n      }, \n      { \n        \"type\" : \"EnumerateListNode\", \n        \"dependencies\" : [ \n          7 \n        ], \n        \"id\" : 3, \n        \"estimatedCost\" : 0.5, \n        \"estimatedNrItems\" : 0, \n        \"inVariable\" : { \n          \"id\" : 2, \n          \"name\" : \"1\" \n        }, \n        \"outVariable\" : { \n          \"id\" : 0, \n          \"name\" : \"i\" \n        } \n      }, \n      { \n        \"type\" : \"ReturnNode\", \n        \"dependencies\" : [ \n          3 \n        ], \n        \"id\" : 6, \n        \"estimatedCost\" : 0.5, \n        \"estimatedNrItems\" : 0, \n        \"inVariable\" : { \n          \"id\" : 0, \n          \"name\" : \"i\" \n        }, \n        \"count\" : true \n      } \n    ], \n    \"rules\" : [ \n      \"move-calculations-up\", \n      \"move-filters-up\", \n      \"remove-unnecessary-filters\", \n      \"remove-unnecessary-calculations\" \n    ], \n    \"collections\" : [ ], \n    \"variables\" : [ \n      { \n        \"id\" : 4, \n        \"name\" : \"3\" \n      }, \n      { \n        \"id\" : 2, \n        \"name\" : \"1\" \n      }, \n      { \n        \"id\" : 0, \n        \"name\" : \"i\" \n      } \n    ], \n    \"estimatedCost\" : 0.5, \n    \"estimatedNrItems\" : 0, \n    \"initialize\" : true, \n    \"isModificationQuery\" : false \n  }, \n  \"cacheable\" : true, \n  \"warnings\" : [ ], \n  \"stats\" : { \n    \"rulesExecuted\" : 35, \n    \"rulesSkipped\" : 0, \n    \"plansCreated\" : 1 \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n", + "description": "\n**A JSON object with these properties is required:**\n\n - **query**: the query which you want explained; If the query references any bind variables,\n these must also be passed in the attribute *bindVars*. Additional\n options for the query can be passed in the *options* attribute.\n - **options**:\n - **optimizer.rules** (string): an array of to-be-included or to-be-excluded optimizer rules\n can be put into this attribute, telling the optimizer to include or exclude\n specific rules. To disable a rule, prefix its name with a `-`, to enable a rule, prefix it\n with a `+`. There is also a pseudo-rule `all`, which will match all optimizer rules.\n - **maxNumberOfPlans**: an optional maximum number of plans that the optimizer is \n allowed to generate. Setting this attribute to a low value allows to put a\n cap on the amount of work the optimizer does.\n - **allPlans**: if set to *true*, all possible execution plans will be returned.\n The default is *false*, meaning only the optimal plan will be returned.\n - **bindVars** (object): key/value pairs representing the bind parameters.\n\n\n\n\n\nTo explain how an AQL query would be executed on the server, the query string\ncan be sent to the server via an HTTP POST request. The server will then validate\nthe query and create an execution plan for it. The execution plan will be\nreturned, but the query will not be executed.\n\nThe execution plan that is returned by the server can be used to estimate the\nprobable performance of the query. Though the actual performance will depend\non many different factors, the execution plan normally can provide some rough\nestimates on the amount of work the server needs to do in order to actually run \nthe query.\n\nBy default, the explain operation will return the optimal plan as chosen by\nthe query optimizer The optimal plan is the plan with the lowest total estimated\ncost. The plan will be returned in the attribute *plan* of the response object.\nIf the option *allPlans* is specified in the request, the result will contain \nall plans created by the optimizer. The plans will then be returned in the \nattribute *plans*.\n\nThe result will also contain an attribute *warnings*, which is an array of \nwarnings that occurred during optimization or execution plan creation. Additionally,\na *stats* attribute is contained in the result with some optimizer statistics.\nIf *allPlans* is set to *false*, the result will contain an attribute *cacheable* \nthat states whether the query results can be cached on the server if the query\nresult cache were used. The *cacheable* attribute is not present when *allPlans*\nis set to *true*.\n\nEach plan in the result is a JSON object with the following attributes:\n- *nodes*: the array of execution nodes of the plan. The array of available node types\n can be found [here](../../AQL/ExecutionAndPerformance/Optimizer.html)\n\n- *estimatedCost*: the total estimated cost for the plan. If there are multiple\n plans, the optimizer will choose the plan with the lowest total cost.\n\n- *collections*: an array of collections used in the query\n\n- *rules*: an array of rules the optimizer applied. An overview of the\n available rules can be found [here](../../AQL/ExecutionAndPerformance/Optimizer.html)\n\n- *variables*: array of variables used in the query (note: this may contain\n internal variables created by the optimizer)\n\n\n\n\n**Example:**\n Valid query\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/explain <<EOF\n{ \n  \"query\" : \"FOR p IN products RETURN p\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"plan\" : { \n    \"nodes\" : [ \n      { \n        \"type\" : \"SingletonNode\", \n        \"dependencies\" : [ ], \n        \"id\" : 1, \n        \"estimatedCost\" : 1, \n        \"estimatedNrItems\" : 1 \n      }, \n      { \n        \"type\" : \"EnumerateCollectionNode\", \n        \"dependencies\" : [ \n          1 \n        ], \n        \"id\" : 2, \n        \"estimatedCost\" : 12, \n        \"estimatedNrItems\" : 10, \n        \"random\" : false, \n        \"indexHint\" : { \n          \"forced\" : false, \n          \"type\" : \"none\" \n        }, \n        \"outVariable\" : { \n          \"id\" : 0, \n          \"name\" : \"p\" \n        }, \n        \"projections\" : [ ], \n        \"producesResult\" : true, \n        \"database\" : \"_system\", \n        \"collection\" : \"products\", \n        \"satellite\" : false \n      }, \n      { \n        \"type\" : \"ReturnNode\", \n        \"dependencies\" : [ \n          2 \n        ], \n        \"id\" : 3, \n        \"estimatedCost\" : 22, \n        \"estimatedNrItems\" : 10, \n        \"inVariable\" : { \n          \"id\" : 0, \n          \"name\" : \"p\" \n        }, \n        \"count\" : true \n      } \n    ], \n    \"rules\" : [ ], \n    \"collections\" : [ \n      { \n        \"name\" : \"products\", \n        \"type\" : \"read\" \n      } \n    ], \n    \"variables\" : [ \n      { \n        \"id\" : 0, \n        \"name\" : \"p\" \n      } \n    ], \n    \"estimatedCost\" : 22, \n    \"estimatedNrItems\" : 10, \n    \"initialize\" : true, \n    \"isModificationQuery\" : false \n  }, \n  \"cacheable\" : true, \n  \"warnings\" : [ ], \n  \"stats\" : { \n    \"rulesExecuted\" : 36, \n    \"rulesSkipped\" : 0, \n    \"plansCreated\" : 1 \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n A plan with some optimizer rules applied\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/explain <<EOF\n{ \n  \"query\" : \"FOR p IN products LET a = p.id FILTER a == 4 LET name = p.name SORT p.id LIMIT 1 RETURN name\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"plan\" : { \n    \"nodes\" : [ \n      { \n        \"type\" : \"SingletonNode\", \n        \"dependencies\" : [ ], \n        \"id\" : 1, \n        \"estimatedCost\" : 1, \n        \"estimatedNrItems\" : 1 \n      }, \n      { \n        \"type\" : \"IndexNode\", \n        \"dependencies\" : [ \n          1 \n        ], \n        \"id\" : 11, \n        \"estimatedCost\" : 4.321928094887362, \n        \"estimatedNrItems\" : 1, \n        \"outVariable\" : { \n          \"id\" : 0, \n          \"name\" : \"p\" \n        }, \n        \"projections\" : [ \n          \"name\", \n          \"id\" \n        ], \n        \"producesResult\" : true, \n        \"database\" : \"_system\", \n        \"collection\" : \"products\", \n        \"satellite\" : false, \n        \"needsGatherNodeSort\" : true, \n        \"indexCoversProjections\" : false, \n        \"indexes\" : [ \n          { \n            \"id\" : \"69410\", \n            \"type\" : \"skiplist\", \n            \"name\" : \"idx_1640480515086614528\", \n            \"fields\" : [ \n              \"id\" \n            ], \n            \"selectivityEstimate\" : 1, \n            \"unique\" : false, \n            \"sparse\" : false, \n            \"deduplicate\" : true \n          } \n        ], \n        \"condition\" : { \n          \"type\" : \"n-ary or\", \n          \"typeID\" : 63, \n          \"subNodes\" : [ \n            { \n              \"type\" : \"n-ary and\", \n              \"typeID\" : 62, \n              \"subNodes\" : [ \n                { \n                  \"type\" : \"compare ==\", \n                  \"typeID\" : 25, \n                  \"excludesNull\" : false, \n                  \"subNodes\" : [ \n                    { \n                      \"type\" : \"attribute access\", \n                      \"typeID\" : 35, \n                      \"name\" : \"id\", \n                      \"subNodes\" : [ \n                        { \n                          \"type\" : \"reference\", \n                          \"typeID\" : 45, \n                          \"name\" : \"p\", \n                          \"id\" : 0 \n                        } \n                      ] \n                    }, \n                    { \n                      \"type\" : \"value\", \n                      \"typeID\" : 40, \n                      \"value\" : 4, \n                      \"vType\" : \"int\", \n                      \"vTypeID\" : 2 \n                    } \n                  ] \n                } \n              ] \n            } \n          ] \n        }, \n        \"sorted\" : true, \n        \"ascending\" : true, \n        \"reverse\" : false, \n        \"evalFCalls\" : true, \n        \"limit\" : 0 \n      }, \n      { \n        \"type\" : \"CalculationNode\", \n        \"dependencies\" : [ \n          11 \n        ], \n        \"id\" : 4, \n        \"estimatedCost\" : 5.321928094887362, \n        \"estimatedNrItems\" : 1, \n        \"expression\" : { \n          \"type\" : \"compare ==\", \n          \"typeID\" : 25, \n          \"excludesNull\" : false, \n          \"subNodes\" : [ \n            { \n              \"type\" : \"attribute access\", \n              \"typeID\" : 35, \n              \"name\" : \"id\", \n              \"subNodes\" : [ \n                { \n                  \"type\" : \"reference\", \n                  \"typeID\" : 45, \n                  \"name\" : \"p\", \n                  \"id\" : 0 \n                } \n              ] \n            }, \n            { \n              \"type\" : \"value\", \n              \"typeID\" : 40, \n              \"value\" : 4, \n              \"vType\" : \"int\", \n              \"vTypeID\" : 2 \n            } \n          ] \n        }, \n        \"outVariable\" : { \n          \"id\" : 4, \n          \"name\" : \"3\" \n        }, \n        \"canThrow\" : false, \n        \"expressionType\" : \"simple\" \n      }, \n      { \n        \"type\" : \"FilterNode\", \n        \"dependencies\" : [ \n          4 \n        ], \n        \"id\" : 5, \n        \"estimatedCost\" : 6.321928094887362, \n        \"estimatedNrItems\" : 1, \n        \"inVariable\" : { \n          \"id\" : 4, \n          \"name\" : \"3\" \n        } \n      }, \n      { \n        \"type\" : \"LimitNode\", \n        \"dependencies\" : [ \n          5 \n        ], \n        \"id\" : 9, \n        \"estimatedCost\" : 7.321928094887362, \n        \"estimatedNrItems\" : 1, \n        \"offset\" : 0, \n        \"limit\" : 1, \n        \"fullCount\" : false \n      }, \n      { \n        \"type\" : \"CalculationNode\", \n        \"dependencies\" : [ \n          9 \n        ], \n        \"id\" : 6, \n        \"estimatedCost\" : 8.321928094887362, \n        \"estimatedNrItems\" : 1, \n        \"expression\" : { \n          \"type\" : \"attribute access\", \n          \"typeID\" : 35, \n          \"name\" : \"name\", \n          \"subNodes\" : [ \n            { \n              \"type\" : \"reference\", \n              \"typeID\" : 45, \n              \"name\" : \"p\", \n              \"id\" : 0 \n            } \n          ] \n        }, \n        \"outVariable\" : { \n          \"id\" : 2, \n          \"name\" : \"name\" \n        }, \n        \"canThrow\" : false, \n        \"expressionType\" : \"attribute\" \n      }, \n      { \n        \"type\" : \"ReturnNode\", \n        \"dependencies\" : [ \n          6 \n        ], \n        \"id\" : 10, \n        \"estimatedCost\" : 9.321928094887362, \n        \"estimatedNrItems\" : 1, \n        \"inVariable\" : { \n          \"id\" : 2, \n          \"name\" : \"name\" \n        }, \n        \"count\" : true \n      } \n    ], \n    \"rules\" : [ \n      \"move-calculations-up\", \n      \"remove-redundant-calculations\", \n      \"remove-unnecessary-calculations\", \n      \"move-calculations-up-2\", \n      \"use-indexes\", \n      \"use-index-for-sort\", \n      \"remove-unnecessary-calculations-2\", \n      \"move-calculations-down\", \n      \"reduce-extraction-to-projection\" \n    ], \n    \"collections\" : [ \n      { \n        \"name\" : \"products\", \n        \"type\" : \"read\" \n      } \n    ], \n    \"variables\" : [ \n      { \n        \"id\" : 6, \n        \"name\" : \"5\" \n      }, \n      { \n        \"id\" : 4, \n        \"name\" : \"3\" \n      }, \n      { \n        \"id\" : 2, \n        \"name\" : \"name\" \n      }, \n      { \n        \"id\" : 1, \n        \"name\" : \"a\" \n      }, \n      { \n        \"id\" : 0, \n        \"name\" : \"p\" \n      } \n    ], \n    \"estimatedCost\" : 9.321928094887362, \n    \"estimatedNrItems\" : 1, \n    \"initialize\" : true, \n    \"isModificationQuery\" : false \n  }, \n  \"cacheable\" : true, \n  \"warnings\" : [ ], \n  \"stats\" : { \n    \"rulesExecuted\" : 36, \n    \"rulesSkipped\" : 0, \n    \"plansCreated\" : 1 \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Using some options\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/explain <<EOF\n{ \n  \"query\" : \"FOR p IN products LET a = p.id FILTER a == 4 LET name = p.name SORT p.id LIMIT 1 RETURN name\", \n  \"options\" : { \n    \"maxNumberOfPlans\" : 2, \n    \"allPlans\" : true, \n    \"optimizer\" : { \n      \"rules\" : [ \n        \"-all\", \n        \"+use-index-for-sort\", \n        \"+use-index-range\" \n      ] \n    } \n  } \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"plans\" : [ \n    { \n      \"nodes\" : [ \n        { \n          \"type\" : \"SingletonNode\", \n          \"dependencies\" : [ ], \n          \"id\" : 1, \n          \"estimatedCost\" : 1, \n          \"estimatedNrItems\" : 1 \n        }, \n        { \n          \"type\" : \"IndexNode\", \n          \"dependencies\" : [ \n            1 \n          ], \n          \"id\" : 11, \n          \"estimatedCost\" : 11, \n          \"estimatedNrItems\" : 10, \n          \"outVariable\" : { \n            \"id\" : 0, \n            \"name\" : \"p\" \n          }, \n          \"projections\" : [ ], \n          \"producesResult\" : true, \n          \"database\" : \"_system\", \n          \"collection\" : \"products\", \n          \"satellite\" : false, \n          \"needsGatherNodeSort\" : true, \n          \"indexCoversProjections\" : false, \n          \"indexes\" : [ \n            { \n              \"id\" : \"69442\", \n              \"type\" : \"skiplist\", \n              \"name\" : \"idx_1640480515098148864\", \n              \"fields\" : [ \n                \"id\" \n              ], \n              \"selectivityEstimate\" : 1, \n              \"unique\" : false, \n              \"sparse\" : false, \n              \"deduplicate\" : true \n            } \n          ], \n          \"condition\" : { \n          }, \n          \"sorted\" : true, \n          \"ascending\" : true, \n          \"reverse\" : false, \n          \"evalFCalls\" : true, \n          \"limit\" : 0 \n        }, \n        { \n          \"type\" : \"CalculationNode\", \n          \"dependencies\" : [ \n            11 \n          ], \n          \"id\" : 3, \n          \"estimatedCost\" : 21, \n          \"estimatedNrItems\" : 10, \n          \"expression\" : { \n            \"type\" : \"attribute access\", \n            \"typeID\" : 35, \n            \"name\" : \"id\", \n            \"subNodes\" : [ \n              { \n                \"type\" : \"reference\", \n                \"typeID\" : 45, \n                \"name\" : \"p\", \n                \"id\" : 0 \n              } \n            ] \n          }, \n          \"outVariable\" : { \n            \"id\" : 1, \n            \"name\" : \"a\" \n          }, \n          \"canThrow\" : false, \n          \"expressionType\" : \"attribute\" \n        }, \n        { \n          \"type\" : \"CalculationNode\", \n          \"dependencies\" : [ \n            3 \n          ], \n          \"id\" : 4, \n          \"estimatedCost\" : 31, \n          \"estimatedNrItems\" : 10, \n          \"expression\" : { \n            \"type\" : \"compare ==\", \n            \"typeID\" : 25, \n            \"excludesNull\" : false, \n            \"subNodes\" : [ \n              { \n                \"type\" : \"reference\", \n                \"typeID\" : 45, \n                \"name\" : \"a\", \n                \"id\" : 1 \n              }, \n              { \n                \"type\" : \"value\", \n                \"typeID\" : 40, \n                \"value\" : 4, \n                \"vType\" : \"int\", \n                \"vTypeID\" : 2 \n              } \n            ] \n          }, \n          \"outVariable\" : { \n            \"id\" : 4, \n            \"name\" : \"3\" \n          }, \n          \"canThrow\" : false, \n          \"expressionType\" : \"simple\" \n        }, \n        { \n          \"type\" : \"FilterNode\", \n          \"dependencies\" : [ \n            4 \n          ], \n          \"id\" : 5, \n          \"estimatedCost\" : 41, \n          \"estimatedNrItems\" : 10, \n          \"inVariable\" : { \n            \"id\" : 4, \n            \"name\" : \"3\" \n          } \n        }, \n        { \n          \"type\" : \"CalculationNode\", \n          \"dependencies\" : [ \n            5 \n          ], \n          \"id\" : 6, \n          \"estimatedCost\" : 51, \n          \"estimatedNrItems\" : 10, \n          \"expression\" : { \n            \"type\" : \"attribute access\", \n            \"typeID\" : 35, \n            \"name\" : \"name\", \n            \"subNodes\" : [ \n              { \n                \"type\" : \"reference\", \n                \"typeID\" : 45, \n                \"name\" : \"p\", \n                \"id\" : 0 \n              } \n            ] \n          }, \n          \"outVariable\" : { \n            \"id\" : 2, \n            \"name\" : \"name\" \n          }, \n          \"canThrow\" : false, \n          \"expressionType\" : \"attribute\" \n        }, \n        { \n          \"type\" : \"CalculationNode\", \n          \"dependencies\" : [ \n            6 \n          ], \n          \"id\" : 7, \n          \"estimatedCost\" : 61, \n          \"estimatedNrItems\" : 10, \n          \"expression\" : { \n            \"type\" : \"attribute access\", \n            \"typeID\" : 35, \n            \"name\" : \"id\", \n            \"subNodes\" : [ \n              { \n                \"type\" : \"reference\", \n                \"typeID\" : 45, \n                \"name\" : \"p\", \n                \"id\" : 0 \n              } \n            ] \n          }, \n          \"outVariable\" : { \n            \"id\" : 6, \n            \"name\" : \"5\" \n          }, \n          \"canThrow\" : false, \n          \"expressionType\" : \"attribute\" \n        }, \n        { \n          \"type\" : \"LimitNode\", \n          \"dependencies\" : [ \n            7 \n          ], \n          \"id\" : 9, \n          \"estimatedCost\" : 62, \n          \"estimatedNrItems\" : 1, \n          \"offset\" : 0, \n          \"limit\" : 1, \n          \"fullCount\" : false \n        }, \n        { \n          \"type\" : \"ReturnNode\", \n          \"dependencies\" : [ \n            9 \n          ], \n          \"id\" : 10, \n          \"estimatedCost\" : 63, \n          \"estimatedNrItems\" : 1, \n          \"inVariable\" : { \n            \"id\" : 2, \n            \"name\" : \"name\" \n          }, \n          \"count\" : true \n        } \n      ], \n      \"rules\" : [ \n        \"use-index-for-sort\" \n      ], \n      \"collections\" : [ \n        { \n          \"name\" : \"products\", \n          \"type\" : \"read\" \n        } \n      ], \n      \"variables\" : [ \n        { \n          \"id\" : 6, \n          \"name\" : \"5\" \n        }, \n        { \n          \"id\" : 4, \n          \"name\" : \"3\" \n        }, \n        { \n          \"id\" : 2, \n          \"name\" : \"name\" \n        }, \n        { \n          \"id\" : 1, \n          \"name\" : \"a\" \n        }, \n        { \n          \"id\" : 0, \n          \"name\" : \"p\" \n        } \n      ], \n      \"estimatedCost\" : 63, \n      \"estimatedNrItems\" : 1, \n      \"initialize\" : true, \n      \"isModificationQuery\" : false \n    } \n  ], \n  \"warnings\" : [ ], \n  \"stats\" : { \n    \"rulesExecuted\" : 3, \n    \"rulesSkipped\" : 33, \n    \"plansCreated\" : 1 \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Returning all plans\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/explain <<EOF\n{ \n  \"query\" : \"FOR p IN products FILTER p.id == 25 RETURN p\", \n  \"options\" : { \n    \"allPlans\" : true \n  } \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"plans\" : [ \n    { \n      \"nodes\" : [ \n        { \n          \"type\" : \"SingletonNode\", \n          \"dependencies\" : [ ], \n          \"id\" : 1, \n          \"estimatedCost\" : 1, \n          \"estimatedNrItems\" : 1 \n        }, \n        { \n          \"type\" : \"IndexNode\", \n          \"dependencies\" : [ \n            1 \n          ], \n          \"id\" : 6, \n          \"estimatedCost\" : 1, \n          \"estimatedNrItems\" : 1, \n          \"outVariable\" : { \n            \"id\" : 0, \n            \"name\" : \"p\" \n          }, \n          \"projections\" : [ ], \n          \"producesResult\" : true, \n          \"database\" : \"_system\", \n          \"collection\" : \"products\", \n          \"satellite\" : false, \n          \"needsGatherNodeSort\" : false, \n          \"indexCoversProjections\" : false, \n          \"indexes\" : [ \n            { \n              \"id\" : \"69383\", \n              \"type\" : \"hash\", \n              \"name\" : \"idx_1640480515068788738\", \n              \"fields\" : [ \n                \"id\" \n              ], \n              \"selectivityEstimate\" : 1, \n              \"unique\" : false, \n              \"sparse\" : false, \n              \"deduplicate\" : true \n            } \n          ], \n          \"condition\" : { \n            \"type\" : \"n-ary or\", \n            \"typeID\" : 63, \n            \"subNodes\" : [ \n              { \n                \"type\" : \"n-ary and\", \n                \"typeID\" : 62, \n                \"subNodes\" : [ \n                  { \n                    \"type\" : \"compare ==\", \n                    \"typeID\" : 25, \n                    \"excludesNull\" : false, \n                    \"subNodes\" : [ \n                      { \n                        \"type\" : \"attribute access\", \n                        \"typeID\" : 35, \n                        \"name\" : \"id\", \n                        \"subNodes\" : [ \n                          { \n                            \"type\" : \"reference\", \n                            \"typeID\" : 45, \n                            \"name\" : \"p\", \n                            \"id\" : 0 \n                          } \n                        ] \n                      }, \n                      { \n                        \"type\" : \"value\", \n                        \"typeID\" : 40, \n                        \"value\" : 25, \n                        \"vType\" : \"int\", \n                        \"vTypeID\" : 2 \n                      } \n                    ] \n                  } \n                ] \n              } \n            ] \n          }, \n          \"sorted\" : true, \n          \"ascending\" : true, \n          \"reverse\" : false, \n          \"evalFCalls\" : true, \n          \"limit\" : 0 \n        }, \n        { \n          \"type\" : \"ReturnNode\", \n          \"dependencies\" : [ \n            6 \n          ], \n          \"id\" : 5, \n          \"estimatedCost\" : 2, \n          \"estimatedNrItems\" : 1, \n          \"inVariable\" : { \n            \"id\" : 0, \n            \"name\" : \"p\" \n          }, \n          \"count\" : true \n        } \n      ], \n      \"rules\" : [ \n        \"use-indexes\", \n        \"remove-filter-covered-by-index\", \n        \"remove-unnecessary-calculations-2\" \n      ], \n      \"collections\" : [ \n        { \n          \"name\" : \"products\", \n          \"type\" : \"read\" \n        } \n      ], \n      \"variables\" : [ \n        { \n          \"id\" : 2, \n          \"name\" : \"1\" \n        }, \n        { \n          \"id\" : 0, \n          \"name\" : \"p\" \n        } \n      ], \n      \"estimatedCost\" : 2, \n      \"estimatedNrItems\" : 1, \n      \"initialize\" : true, \n      \"isModificationQuery\" : false \n    } \n  ], \n  \"warnings\" : [ ], \n  \"stats\" : { \n    \"rulesExecuted\" : 36, \n    \"rulesSkipped\" : 0, \n    \"plansCreated\" : 1 \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n A query that produces a warning\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/explain <<EOF\n{ \n  \"query\" : \"FOR i IN 1..10 RETURN 1 / 0\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"plan\" : { \n    \"nodes\" : [ \n      { \n        \"type\" : \"SingletonNode\", \n        \"dependencies\" : [ ], \n        \"id\" : 1, \n        \"estimatedCost\" : 1, \n        \"estimatedNrItems\" : 1 \n      }, \n      { \n        \"type\" : \"CalculationNode\", \n        \"dependencies\" : [ \n          1 \n        ], \n        \"id\" : 2, \n        \"estimatedCost\" : 2, \n        \"estimatedNrItems\" : 1, \n        \"expression\" : { \n          \"type\" : \"range\", \n          \"typeID\" : 49, \n          \"subNodes\" : [ \n            { \n              \"type\" : \"value\", \n              \"typeID\" : 40, \n              \"value\" : 1, \n              \"vType\" : \"int\", \n              \"vTypeID\" : 2 \n            }, \n            { \n              \"type\" : \"value\", \n              \"typeID\" : 40, \n              \"value\" : 10, \n              \"vType\" : \"int\", \n              \"vTypeID\" : 2 \n            } \n          ] \n        }, \n        \"outVariable\" : { \n          \"id\" : 2, \n          \"name\" : \"1\" \n        }, \n        \"canThrow\" : false, \n        \"expressionType\" : \"simple\" \n      }, \n      { \n        \"type\" : \"CalculationNode\", \n        \"dependencies\" : [ \n          2 \n        ], \n        \"id\" : 4, \n        \"estimatedCost\" : 3, \n        \"estimatedNrItems\" : 1, \n        \"expression\" : { \n          \"type\" : \"value\", \n          \"typeID\" : 40, \n          \"value\" : null, \n          \"vType\" : \"null\", \n          \"vTypeID\" : 0 \n        }, \n        \"outVariable\" : { \n          \"id\" : 4, \n          \"name\" : \"3\" \n        }, \n        \"canThrow\" : false, \n        \"expressionType\" : \"json\" \n      }, \n      { \n        \"type\" : \"EnumerateListNode\", \n        \"dependencies\" : [ \n          4 \n        ], \n        \"id\" : 3, \n        \"estimatedCost\" : 13, \n        \"estimatedNrItems\" : 10, \n        \"inVariable\" : { \n          \"id\" : 2, \n          \"name\" : \"1\" \n        }, \n        \"outVariable\" : { \n          \"id\" : 0, \n          \"name\" : \"i\" \n        } \n      }, \n      { \n        \"type\" : \"ReturnNode\", \n        \"dependencies\" : [ \n          3 \n        ], \n        \"id\" : 5, \n        \"estimatedCost\" : 23, \n        \"estimatedNrItems\" : 10, \n        \"inVariable\" : { \n          \"id\" : 4, \n          \"name\" : \"3\" \n        }, \n        \"count\" : true \n      } \n    ], \n    \"rules\" : [ \n      \"move-calculations-up\", \n      \"move-calculations-up-2\" \n    ], \n    \"collections\" : [ ], \n    \"variables\" : [ \n      { \n        \"id\" : 4, \n        \"name\" : \"3\" \n      }, \n      { \n        \"id\" : 2, \n        \"name\" : \"1\" \n      }, \n      { \n        \"id\" : 0, \n        \"name\" : \"i\" \n      } \n    ], \n    \"estimatedCost\" : 23, \n    \"estimatedNrItems\" : 10, \n    \"initialize\" : true, \n    \"isModificationQuery\" : false \n  }, \n  \"cacheable\" : false, \n  \"warnings\" : [ \n    { \n      \"code\" : 1562, \n      \"message\" : \"division by zero\" \n    } \n  ], \n  \"stats\" : { \n    \"rulesExecuted\" : 36, \n    \"rulesSkipped\" : 0, \n    \"plansCreated\" : 1 \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Invalid query (missing bind parameter)\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/explain <<EOF\n{ \n  \"query\" : \"FOR p IN products FILTER p.id == @id LIMIT 2 RETURN p.n\" \n}\nEOF\n\nHTTP/1.1 Bad Request\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 400, \n  \"error\" : true, \n  \"errorMessage\" : \"no value specified for declared bind parameter 'id' (while parsing)\", \n  \"errorNum\" : 1551 \n}\n
\n\n\n\n\n**Example:**\n The data returned in the **plan** attribute of the result contains one element per AQL top-level statement\n(i.e. `FOR`, `RETURN`, `FILTER` etc.). If the query optimizer removed some unnecessary statements,\nthe result might also contain less elements than there were top-level statements in the AQL query.\n\nThe following example shows a query with a non-sensible filter condition that\nthe optimizer has removed so that there are less top-level statements.\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/explain <<EOF\n{ \"query\" : \"FOR i IN [ 1, 2, 3 ] FILTER 1 == 2 RETURN i\" }\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"plan\" : { \n    \"nodes\" : [ \n      { \n        \"type\" : \"SingletonNode\", \n        \"dependencies\" : [ ], \n        \"id\" : 1, \n        \"estimatedCost\" : 1, \n        \"estimatedNrItems\" : 1 \n      }, \n      { \n        \"type\" : \"CalculationNode\", \n        \"dependencies\" : [ \n          1 \n        ], \n        \"id\" : 2, \n        \"estimatedCost\" : 2, \n        \"estimatedNrItems\" : 1, \n        \"expression\" : { \n          \"type\" : \"array\", \n          \"typeID\" : 41, \n          \"subNodes\" : [ \n            { \n              \"type\" : \"value\", \n              \"typeID\" : 40, \n              \"value\" : 1, \n              \"vType\" : \"int\", \n              \"vTypeID\" : 2 \n            }, \n            { \n              \"type\" : \"value\", \n              \"typeID\" : 40, \n              \"value\" : 2, \n              \"vType\" : \"int\", \n              \"vTypeID\" : 2 \n            }, \n            { \n              \"type\" : \"value\", \n              \"typeID\" : 40, \n              \"value\" : 3, \n              \"vType\" : \"int\", \n              \"vTypeID\" : 2 \n            } \n          ] \n        }, \n        \"outVariable\" : { \n          \"id\" : 2, \n          \"name\" : \"1\" \n        }, \n        \"canThrow\" : false, \n        \"expressionType\" : \"json\" \n      }, \n      { \n        \"type\" : \"NoResultsNode\", \n        \"dependencies\" : [ \n          2 \n        ], \n        \"id\" : 7, \n        \"estimatedCost\" : 0.5, \n        \"estimatedNrItems\" : 0 \n      }, \n      { \n        \"type\" : \"EnumerateListNode\", \n        \"dependencies\" : [ \n          7 \n        ], \n        \"id\" : 3, \n        \"estimatedCost\" : 0.5, \n        \"estimatedNrItems\" : 0, \n        \"inVariable\" : { \n          \"id\" : 2, \n          \"name\" : \"1\" \n        }, \n        \"outVariable\" : { \n          \"id\" : 0, \n          \"name\" : \"i\" \n        } \n      }, \n      { \n        \"type\" : \"ReturnNode\", \n        \"dependencies\" : [ \n          3 \n        ], \n        \"id\" : 6, \n        \"estimatedCost\" : 0.5, \n        \"estimatedNrItems\" : 0, \n        \"inVariable\" : { \n          \"id\" : 0, \n          \"name\" : \"i\" \n        }, \n        \"count\" : true \n      } \n    ], \n    \"rules\" : [ \n      \"move-calculations-up\", \n      \"move-filters-up\", \n      \"remove-unnecessary-filters\", \n      \"remove-unnecessary-calculations\" \n    ], \n    \"collections\" : [ ], \n    \"variables\" : [ \n      { \n        \"id\" : 4, \n        \"name\" : \"3\" \n      }, \n      { \n        \"id\" : 2, \n        \"name\" : \"1\" \n      }, \n      { \n        \"id\" : 0, \n        \"name\" : \"i\" \n      } \n    ], \n    \"estimatedCost\" : 0.5, \n    \"estimatedNrItems\" : 0, \n    \"initialize\" : true, \n    \"isModificationQuery\" : false \n  }, \n  \"cacheable\" : true, \n  \"warnings\" : [ ], \n  \"stats\" : { \n    \"rulesExecuted\" : 36, \n    \"rulesSkipped\" : 0, \n    \"plansCreated\" : 1 \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n", "operationId": "explainQuery", "parameters": [ { @@ -9836,7 +9916,7 @@ }, "/_api/gharial": { "get": { - "description": "\n\nLists all graphs stored in this database.\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nIs returned if the module is available and the graphs could be listed.\n\n- **graphs**: \n - **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/gharial\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"graphs\" : [ \n    { \n      \"_key\" : \"routeplanner\", \n      \"_id\" : \"_graphs/routeplanner\", \n      \"_rev\" : \"_YzHmRhq--B\", \n      \"numberOfShards\" : 1, \n      \"replicationFactor\" : 1, \n      \"isSmart\" : false, \n      \"edgeDefinitions\" : [ \n        { \n          \"collection\" : \"frenchHighway\", \n          \"from\" : [ \n            \"frenchCity\" \n          ], \n          \"to\" : [ \n            \"frenchCity\" \n          ] \n        }, \n        { \n          \"collection\" : \"germanHighway\", \n          \"from\" : [ \n            \"germanCity\" \n          ], \n          \"to\" : [ \n            \"germanCity\" \n          ] \n        }, \n        { \n          \"collection\" : \"internationalHighway\", \n          \"from\" : [ \n            \"frenchCity\", \n            \"germanCity\" \n          ], \n          \"to\" : [ \n            \"frenchCity\", \n            \"germanCity\" \n          ] \n        } \n      ], \n      \"orphanCollections\" : [ ] \n    }, \n    { \n      \"_key\" : \"social\", \n      \"_id\" : \"_graphs/social\", \n      \"_rev\" : \"_YzHmReq--_\", \n      \"numberOfShards\" : 1, \n      \"replicationFactor\" : 1, \n      \"isSmart\" : false, \n      \"edgeDefinitions\" : [ \n        { \n          \"collection\" : \"relation\", \n          \"from\" : [ \n            \"female\", \n            \"male\" \n          ], \n          \"to\" : [ \n            \"female\", \n            \"male\" \n          ] \n        } \n      ], \n      \"orphanCollections\" : [ ] \n    } \n  ] \n}\n
\n\n\n\n\n", + "description": "\n\nLists all graphs stored in this database.\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nIs returned if the module is available and the graphs could be listed.\n\n- **graphs**: \n - **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **minReplicationFactor**: The minimal replication factor used for every new collection in the graph.\n If one shard has less than minReplicationFactor copies, we cannot write\n to this shard, but to all others.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/gharial\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"graphs\" : [ \n    { \n      \"_key\" : \"social\", \n      \"_id\" : \"_graphs/social\", \n      \"_rev\" : \"_ZCIDTpS--A\", \n      \"numberOfShards\" : 1, \n      \"replicationFactor\" : 1, \n      \"minReplicationFactor\" : 1, \n      \"isSmart\" : false, \n      \"edgeDefinitions\" : [ \n        { \n          \"collection\" : \"relation\", \n          \"from\" : [ \n            \"female\", \n            \"male\" \n          ], \n          \"to\" : [ \n            \"female\", \n            \"male\" \n          ] \n        } \n      ], \n      \"orphanCollections\" : [ ] \n    }, \n    { \n      \"_key\" : \"routeplanner\", \n      \"_id\" : \"_graphs/routeplanner\", \n      \"_rev\" : \"_ZCIDTpm--A\", \n      \"numberOfShards\" : 1, \n      \"replicationFactor\" : 1, \n      \"minReplicationFactor\" : 1, \n      \"isSmart\" : false, \n      \"edgeDefinitions\" : [ \n        { \n          \"collection\" : \"frenchHighway\", \n          \"from\" : [ \n            \"frenchCity\" \n          ], \n          \"to\" : [ \n            \"frenchCity\" \n          ] \n        }, \n        { \n          \"collection\" : \"germanHighway\", \n          \"from\" : [ \n            \"germanCity\" \n          ], \n          \"to\" : [ \n            \"germanCity\" \n          ] \n        }, \n        { \n          \"collection\" : \"internationalHighway\", \n          \"from\" : [ \n            \"frenchCity\", \n            \"germanCity\" \n          ], \n          \"to\" : [ \n            \"frenchCity\", \n            \"germanCity\" \n          ] \n        } \n      ], \n      \"orphanCollections\" : [ ] \n    } \n  ] \n}\n
\n\n\n\n\n", "operationId": "ListAllGraphs", "parameters": [], "produces": [ @@ -9860,7 +9940,7 @@ "x-hints": "" }, "post": { - "description": "\n\nThe creation of a graph requires the name of the graph and a\ndefinition of its edges.\n[See also edge definitions](../../Manual/Graphs/GeneralGraphs/Management.html#edge-definitions).\n\n\n**A JSON object with these properties is required:**\n\n - **isSmart**: Define if the created graph should be smart.\n This only has effect in Enterprise Edition.\n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n - **name**: Name of the graph.\n - **options**:\n - **smartGraphAttribute**: Only has effect in Enterprise Edition and it is required if isSmart is true.\n The attribute name that is used to smartly shard the vertices of a graph.\n Every vertex in this SmartGraph has to have this attribute.\n Cannot be modified later.\n - **numberOfShards**: The number of shards that is used for every collection within this graph.\n Cannot be modified later.\n - **replicationFactor**: The replication factor used when initially creating collections for this graph.\n\n\n\n**HTTP 201**\n*A json document with these Properties is returned:*\n\nIs returned if the graph could be created and waitForSync is enabled\nfor the `_graphs` collection, or given in the request.\nThe response body contains the graph configuration that has been stored.\n\n- **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 202**\n*A json document with these Properties is returned:*\n\nIs returned if the graph could be created and waitForSync is disabled\nfor the `_graphs` collection and not given in the request.\nThe response body contains the graph configuration that has been stored.\n\n- **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 400**\n*A json document with these Properties is returned:*\n\nReturned if the request is in a wrong format.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to create a graph you at least need to have the following privileges:\n 1. `Administrate` access on the Database.\n 2. `Read Only` access on every collection used within this graph.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 409**\n*A json document with these Properties is returned:*\n\nReturned if there is a conflict storing the graph. This can occur\neither if a graph with this name is already stored, or if there is one\nedge definition with a the same\n[edge collection](../../Manual/Appendix/Glossary.html#edge-collection) but a\ndifferent signature used in any other graph.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/gharial <<EOF\n{ \n  \"name\" : \"myGraph\", \n  \"edgeDefinitions\" : [ \n    { \n      \"collection\" : \"edges\", \n      \"from\" : [ \n        \"startVertices\" \n      ], \n      \"to\" : [ \n        \"endVertices\" \n      ] \n    } \n  ] \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: _YzHmQ8---_\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"graph\" : { \n    \"_key\" : \"myGraph\", \n    \"numberOfShards\" : 1, \n    \"replicationFactor\" : 1, \n    \"isSmart\" : false, \n    \"edgeDefinitions\" : [ \n      { \n        \"collection\" : \"edges\", \n        \"from\" : [ \n          \"startVertices\" \n        ], \n        \"to\" : [ \n          \"endVertices\" \n        ] \n      } \n    ], \n    \"orphanCollections\" : [ ], \n    \"_rev\" : \"_YzHmQ8---_\", \n    \"_id\" : \"_graphs/myGraph\", \n    \"name\" : \"myGraph\" \n  } \n}\n
\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/gharial <<EOF\n{ \n  \"name\" : \"myGraph\", \n  \"edgeDefinitions\" : [ \n    { \n      \"collection\" : \"edges\", \n      \"from\" : [ \n        \"startVertices\" \n      ], \n      \"to\" : [ \n        \"endVertices\" \n      ] \n    } \n  ], \n  \"isSmart\" : true, \n  \"options\" : { \n    \"replicationFactor\" : 2, \n    \"numberOfShards\" : 9, \n    \"smartGraphAttribute\" : \"region\" \n  } \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: _YzHmR_u--B\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"graph\" : { \n    \"_key\" : \"myGraph\", \n    \"numberOfShards\" : 9, \n    \"replicationFactor\" : 2, \n    \"isSmart\" : false, \n    \"edgeDefinitions\" : [ \n      { \n        \"collection\" : \"edges\", \n        \"from\" : [ \n          \"startVertices\" \n        ], \n        \"to\" : [ \n          \"endVertices\" \n        ] \n      } \n    ], \n    \"orphanCollections\" : [ ], \n    \"_rev\" : \"_YzHmR_u--B\", \n    \"_id\" : \"_graphs/myGraph\", \n    \"name\" : \"myGraph\" \n  } \n}\n
\n\n\n\n\n", + "description": "\n\nThe creation of a graph requires the name of the graph and a\ndefinition of its edges.\n[See also edge definitions](../../Manual/Graphs/GeneralGraphs/Management.html#edge-definitions).\n\n\n**A JSON object with these properties is required:**\n\n - **isSmart**: Define if the created graph should be smart.\n This only has effect in Enterprise Edition.\n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n - **name**: Name of the graph.\n - **options**:\n - **smartGraphAttribute**: Only has effect in Enterprise Edition and it is required if isSmart is true.\n The attribute name that is used to smartly shard the vertices of a graph.\n Every vertex in this SmartGraph has to have this attribute.\n Cannot be modified later.\n - **numberOfShards**: The number of shards that is used for every collection within this graph.\n Cannot be modified later.\n - **replicationFactor**: The replication factor used when initially creating collections for this graph.\n - **minReplicationFactor**: The minimal replication factor used for every new collection in the graph.\n If one shard has less than minReplicationFactor copies, we cannot write\n to this shard, but to all others.\n\n\n\n**HTTP 201**\n*A json document with these Properties is returned:*\n\nIs returned if the graph could be created and waitForSync is enabled\nfor the `_graphs` collection, or given in the request.\nThe response body contains the graph configuration that has been stored.\n\n- **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **minReplicationFactor**: The minimal replication factor used for every new collection in the graph.\n If one shard has less than minReplicationFactor copies, we cannot write\n to this shard, but to all others.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 202**\n*A json document with these Properties is returned:*\n\nIs returned if the graph could be created and waitForSync is disabled\nfor the `_graphs` collection and not given in the request.\nThe response body contains the graph configuration that has been stored.\n\n- **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **minReplicationFactor**: The minimal replication factor used for every new collection in the graph.\n If one shard has less than minReplicationFactor copies, we cannot write\n to this shard, but to all others.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 400**\n*A json document with these Properties is returned:*\n\nReturned if the request is in a wrong format.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to create a graph you at least need to have the following privileges:\n 1. `Administrate` access on the Database.\n 2. `Read Only` access on every collection used within this graph.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 409**\n*A json document with these Properties is returned:*\n\nReturned if there is a conflict storing the graph. This can occur\neither if a graph with this name is already stored, or if there is one\nedge definition with a the same\n[edge collection](../../Manual/Appendix/Glossary.html#edge-collection) but a\ndifferent signature used in any other graph.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/gharial <<EOF\n{ \n  \"name\" : \"myGraph\", \n  \"edgeDefinitions\" : [ \n    { \n      \"collection\" : \"edges\", \n      \"from\" : [ \n        \"startVertices\" \n      ], \n      \"to\" : [ \n        \"endVertices\" \n      ] \n    } \n  ] \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: _ZCIDTjW--A\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"graph\" : { \n    \"_key\" : \"myGraph\", \n    \"numberOfShards\" : 1, \n    \"replicationFactor\" : 1, \n    \"minReplicationFactor\" : 1, \n    \"isSmart\" : false, \n    \"edgeDefinitions\" : [ \n      { \n        \"collection\" : \"edges\", \n        \"from\" : [ \n          \"startVertices\" \n        ], \n        \"to\" : [ \n          \"endVertices\" \n        ] \n      } \n    ], \n    \"orphanCollections\" : [ ], \n    \"_rev\" : \"_ZCIDTjW--A\", \n    \"_id\" : \"_graphs/myGraph\", \n    \"name\" : \"myGraph\" \n  } \n}\n
\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/gharial <<EOF\n{ \n  \"name\" : \"myGraph\", \n  \"edgeDefinitions\" : [ \n    { \n      \"collection\" : \"edges\", \n      \"from\" : [ \n        \"startVertices\" \n      ], \n      \"to\" : [ \n        \"endVertices\" \n      ] \n    } \n  ], \n  \"isSmart\" : true, \n  \"options\" : { \n    \"replicationFactor\" : 2, \n    \"numberOfShards\" : 9, \n    \"smartGraphAttribute\" : \"region\" \n  } \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: _ZCIDTju--A\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"graph\" : { \n    \"_key\" : \"myGraph\", \n    \"numberOfShards\" : 9, \n    \"replicationFactor\" : 2, \n    \"minReplicationFactor\" : 1, \n    \"isSmart\" : true, \n    \"edgeDefinitions\" : [ \n      { \n        \"collection\" : \"edges\", \n        \"from\" : [ \n          \"startVertices\" \n        ], \n        \"to\" : [ \n          \"endVertices\" \n        ] \n      } \n    ], \n    \"orphanCollections\" : [ ], \n    \"initial\" : \"startVertices\", \n    \"initialCid\" : 67484, \n    \"smartGraphAttribute\" : \"region\", \n    \"_rev\" : \"_ZCIDTju--A\", \n    \"_id\" : \"_graphs/myGraph\", \n    \"name\" : \"myGraph\" \n  } \n}\n
\n\n\n\n\n", "operationId": "CreateAGraph", "parameters": [ { @@ -9984,7 +10064,7 @@ "x-hints": "" }, "get": { - "description": "\n\nSelects information for a given graph.\nWill return the edge definitions as well as the orphan collections.\nOr returns a 404 if the graph does not exist.\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nReturns the graph if it could be found.\nThe result will have the following format:\n\n- **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned if no graph with this name could be found.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/gharial/myGraph\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"graph\" : { \n    \"_key\" : \"myGraph\", \n    \"numberOfShards\" : 1, \n    \"replicationFactor\" : 1, \n    \"isSmart\" : false, \n    \"edgeDefinitions\" : [ \n      { \n        \"collection\" : \"edges\", \n        \"from\" : [ \n          \"startVertices\" \n        ], \n        \"to\" : [ \n          \"endVertices\" \n        ] \n      } \n    ], \n    \"orphanCollections\" : [ ], \n    \"_rev\" : \"_YzHmRXO--B\", \n    \"_id\" : \"_graphs/myGraph\", \n    \"name\" : \"myGraph\" \n  } \n}\n
\n\n\n\n\n", + "description": "\n\nSelects information for a given graph.\nWill return the edge definitions as well as the orphan collections.\nOr returns a 404 if the graph does not exist.\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nReturns the graph if it could be found.\nThe result will have the following format:\n\n- **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **minReplicationFactor**: The minimal replication factor used for every new collection in the graph.\n If one shard has less than minReplicationFactor copies, we cannot write\n to this shard, but to all others.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned if no graph with this name could be found.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/gharial/myGraph\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"graph\" : { \n    \"_key\" : \"myGraph\", \n    \"numberOfShards\" : 1, \n    \"replicationFactor\" : 1, \n    \"minReplicationFactor\" : 1, \n    \"isSmart\" : false, \n    \"edgeDefinitions\" : [ \n      { \n        \"collection\" : \"edges\", \n        \"from\" : [ \n          \"startVertices\" \n        ], \n        \"to\" : [ \n          \"endVertices\" \n        ] \n      } \n    ], \n    \"orphanCollections\" : [ ], \n    \"_rev\" : \"_ZCIDToG--A\", \n    \"_id\" : \"_graphs/myGraph\", \n    \"name\" : \"myGraph\" \n  } \n}\n
\n\n\n\n\n", "operationId": "GetAGraph", "parameters": [ { @@ -10066,7 +10146,7 @@ "x-hints": "" }, "post": { - "description": "\n\nAdds an additional edge definition to the graph.\n\nThis edge definition has to contain a *collection* and an array of\neach *from* and *to* vertex collections. An edge definition can only\nbe added if this definition is either not used in any other graph, or\nit is used with exactly the same definition. It is not possible to\nstore a definition \"e\" from \"v1\" to \"v2\" in the one graph, and \"e\"\nfrom \"v2\" to \"v1\" in the other graph.\n\n\n**A JSON object with these properties is required:**\n\n - **to** (string): One or many vertex collections that can contain target vertices.\n - **from** (string): One or many vertex collections that can contain source vertices.\n - **collection**: The name of the edge collection to be used.\n\n\n\n**HTTP 201**\n*A json document with these Properties is returned:*\n\nReturned if the definition could be added successfully and\nwaitForSync is enabled for the `_graphs` collection.\nThe response body contains the graph configuration that has been stored.\n\n- **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 202**\n*A json document with these Properties is returned:*\n\nReturned if the definition could be added successfully and\nwaitForSync is disabled for the `_graphs` collection.\nThe response body contains the graph configuration that has been stored.\n\n- **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 400**\n*A json document with these Properties is returned:*\n\nReturned if the definition could not be added.\nThis could be because it is ill-formed, or\nif the definition is used in an other graph with a different signature.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to modify a graph you at least need to have the following privileges:\n 1. `Administrate` access on the Database.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned if no graph with this name could be found.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/gharial/social/edge <<EOF\n{ \n  \"collection\" : \"works_in\", \n  \"from\" : [ \n    \"female\", \n    \"male\" \n  ], \n  \"to\" : [ \n    \"city\" \n  ] \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: _YzHmQuG--_\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"graph\" : { \n    \"_key\" : \"social\", \n    \"numberOfShards\" : 1, \n    \"replicationFactor\" : 1, \n    \"isSmart\" : false, \n    \"edgeDefinitions\" : [ \n      { \n        \"collection\" : \"relation\", \n        \"from\" : [ \n          \"female\", \n          \"male\" \n        ], \n        \"to\" : [ \n          \"female\", \n          \"male\" \n        ] \n      }, \n      { \n        \"collection\" : \"works_in\", \n        \"from\" : [ \n          \"female\", \n          \"male\" \n        ], \n        \"to\" : [ \n          \"city\" \n        ] \n      } \n    ], \n    \"orphanCollections\" : [ ], \n    \"_rev\" : \"_YzHmQuG--_\", \n    \"_id\" : \"_graphs/social\", \n    \"name\" : \"social\" \n  } \n}\n
\n\n\n\n", + "description": "\n\nAdds an additional edge definition to the graph.\n\nThis edge definition has to contain a *collection* and an array of\neach *from* and *to* vertex collections. An edge definition can only\nbe added if this definition is either not used in any other graph, or\nit is used with exactly the same definition. It is not possible to\nstore a definition \"e\" from \"v1\" to \"v2\" in the one graph, and \"e\"\nfrom \"v2\" to \"v1\" in the other graph.\n\n\n**A JSON object with these properties is required:**\n\n - **to** (string): One or many vertex collections that can contain target vertices.\n - **from** (string): One or many vertex collections that can contain source vertices.\n - **collection**: The name of the edge collection to be used.\n\n\n\n**HTTP 201**\n*A json document with these Properties is returned:*\n\nReturned if the definition could be added successfully and\nwaitForSync is enabled for the `_graphs` collection.\nThe response body contains the graph configuration that has been stored.\n\n- **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **minReplicationFactor**: The minimal replication factor used for every new collection in the graph.\n If one shard has less than minReplicationFactor copies, we cannot write\n to this shard, but to all others.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 202**\n*A json document with these Properties is returned:*\n\nReturned if the definition could be added successfully and\nwaitForSync is disabled for the `_graphs` collection.\nThe response body contains the graph configuration that has been stored.\n\n- **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **minReplicationFactor**: The minimal replication factor used for every new collection in the graph.\n If one shard has less than minReplicationFactor copies, we cannot write\n to this shard, but to all others.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 400**\n*A json document with these Properties is returned:*\n\nReturned if the definition could not be added.\nThis could be because it is ill-formed, or\nif the definition is used in an other graph with a different signature.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to modify a graph you at least need to have the following privileges:\n 1. `Administrate` access on the Database.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned if no graph with this name could be found.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/gharial/social/edge <<EOF\n{ \n  \"collection\" : \"works_in\", \n  \"from\" : [ \n    \"female\", \n    \"male\" \n  ], \n  \"to\" : [ \n    \"city\" \n  ] \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: _ZCIDTha--B\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"graph\" : { \n    \"_key\" : \"social\", \n    \"numberOfShards\" : 1, \n    \"replicationFactor\" : 1, \n    \"minReplicationFactor\" : 1, \n    \"isSmart\" : false, \n    \"edgeDefinitions\" : [ \n      { \n        \"collection\" : \"relation\", \n        \"from\" : [ \n          \"female\", \n          \"male\" \n        ], \n        \"to\" : [ \n          \"female\", \n          \"male\" \n        ] \n      }, \n      { \n        \"collection\" : \"works_in\", \n        \"from\" : [ \n          \"female\", \n          \"male\" \n        ], \n        \"to\" : [ \n          \"city\" \n        ] \n      } \n    ], \n    \"orphanCollections\" : [ ], \n    \"_rev\" : \"_ZCIDTha--B\", \n    \"_id\" : \"_graphs/social\", \n    \"name\" : \"social\" \n  } \n}\n
\n\n\n\n", "operationId": "AddEdgeDefinition", "parameters": [ { @@ -10138,7 +10218,7 @@ }, "/_api/gharial/{graph}/edge/{collection}": { "post": { - "description": "\n\nCreates a new edge in the collection.\nWithin the body the edge has to contain a *_from* and *_to* value referencing to valid vertices in the graph.\nFurthermore the edge has to be valid in the definition of the used \n[edge collection](../../Manual/Appendix/Glossary.html#edge-collection).\n\n\n**A JSON object with these properties is required:**\n\n - **_from**: The source vertex of this edge. Has to be valid within\n the used edge definition.\n - **_to**: The target vertex of this edge. Has to be valid within\n the used edge definition.\n\n\n\n**HTTP 201**\n*A json document with these Properties is returned:*\n\nReturned if the edge could be created and waitForSync is true.\n\n- **edge**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **code**: The response code.\n- **new**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 202**\n*A json document with these Properties is returned:*\n\nReturned if the request was successful but waitForSync is false.\n\n- **edge**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **code**: The response code.\n- **new**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 400**\n*A json document with these Properties is returned:*\n\nReturned if the input document is invalid.\nThis can for instance be the case if `_from` or `_to` is mising.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to insert edges into the graph you at least need to have the following privileges:\n 1. `Read Only` access on the Database.\n 2. `Write` access on the given collection.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned in any of the following cases:\n* no graph with this name could be found.\n* this edge collection is not part of the graph.\n* either `_from` or `_to` vertex does not exist.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/gharial/social/edge/relation <<EOF\n{ \n  \"type\" : \"friend\", \n  \"_from\" : \"female/alice\", \n  \"_to\" : \"female/diana\" \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: _YzHmQpS--_\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"edge\" : { \n    \"_id\" : \"relation/101256\", \n    \"_key\" : \"101256\", \n    \"_rev\" : \"_YzHmQpS--_\" \n  } \n}\n
\n\n\n\n", + "description": "\n\nCreates a new edge in the collection.\nWithin the body the edge has to contain a *_from* and *_to* value referencing to valid vertices in the graph.\nFurthermore the edge has to be valid in the definition of the used \n[edge collection](../../Manual/Appendix/Glossary.html#edge-collection).\n\n\n**A JSON object with these properties is required:**\n\n - **_from**: The source vertex of this edge. Has to be valid within\n the used edge definition.\n - **_to**: The target vertex of this edge. Has to be valid within\n the used edge definition.\n\n\n\n**HTTP 201**\n*A json document with these Properties is returned:*\n\nReturned if the edge could be created and waitForSync is true.\n\n- **edge**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **code**: The response code.\n- **new**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 202**\n*A json document with these Properties is returned:*\n\nReturned if the request was successful but waitForSync is false.\n\n- **edge**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **code**: The response code.\n- **new**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 400**\n*A json document with these Properties is returned:*\n\nReturned if the input document is invalid.\nThis can for instance be the case if `_from` or `_to` is mising.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to insert edges into the graph you at least need to have the following privileges:\n 1. `Read Only` access on the Database.\n 2. `Write` access on the given collection.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned in any of the following cases:\n* no graph with this name could be found.\n* this edge collection is not part of the graph.\n* either `_from` or `_to` vertex does not exist.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/gharial/social/edge/relation <<EOF\n{ \n  \"type\" : \"friend\", \n  \"_from\" : \"female/alice\", \n  \"_to\" : \"female/diana\" \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: _ZCIDTgm---\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"edge\" : { \n    \"_id\" : \"relation/67278\", \n    \"_key\" : \"67278\", \n    \"_rev\" : \"_ZCIDTgm---\" \n  } \n}\n
\n\n\n\n", "operationId": "CreateAnEdge", "parameters": [ { @@ -10232,7 +10312,7 @@ }, "/_api/gharial/{graph}/edge/{collection}/{edge}": { "delete": { - "description": "\n\nRemoves an edge from the collection.\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nReturned if the edge could be removed.\n\n- **removed**: Is set to true if the remove was successful.\n- **code**: The response code.\n- **old**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 202**\n*A json document with these Properties is returned:*\n\nReturned if the request was successful but waitForSync is false.\n\n- **removed**: Is set to true if the remove was successful.\n- **code**: The response code.\n- **old**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to delete vertices in the graph you at least need to have the following privileges:\n 1. `Read Only` access on the Database.\n 2. `Write` access on the given collection.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned in the following cases:\n* No graph with this name could be found.\n* This collection is not part of the graph.\n* The edge to remove does not exist.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 412**\n*A json document with these Properties is returned:*\n\nReturned if if-match header is given, but the stored documents revision is different.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/gharial/social/edge/relation/101669\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"removed\" : true \n}\n
\n\n\n\n", + "description": "\n\nRemoves an edge from the collection.\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nReturned if the edge could be removed.\n\n- **removed**: Is set to true if the remove was successful.\n- **code**: The response code.\n- **old**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 202**\n*A json document with these Properties is returned:*\n\nReturned if the request was successful but waitForSync is false.\n\n- **removed**: Is set to true if the remove was successful.\n- **code**: The response code.\n- **old**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to delete vertices in the graph you at least need to have the following privileges:\n 1. `Read Only` access on the Database.\n 2. `Write` access on the given collection.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned in the following cases:\n* No graph with this name could be found.\n* This collection is not part of the graph.\n* The edge to remove does not exist.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 412**\n*A json document with these Properties is returned:*\n\nReturned if if-match header is given, but the stored documents revision is different.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/gharial/social/edge/relation/67541\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"removed\" : true \n}\n
\n\n\n\n", "operationId": "RemoveAnEdge", "parameters": [ { @@ -10329,7 +10409,7 @@ "x-hints": "" }, "get": { - "description": "\n\nGets an edge from the given collection.\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nReturned if the edge could be found.\n\n- **edge**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 304**\n*A json document with these Properties is returned:*\n\nReturned if the if-none-match header is given and the\ncurrently stored edge still has this revision value.\nSo there was no update between the last time the edge\nwas fetched by the caller.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to update vertices in the graph you at least need to have the following privileges:\n 1. `Read Only` access on the Database.\n 2. `Read Only` access on the given collection.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned in the following cases:\n* No graph with this name could be found.\n* This collection is not part of the graph.\n* The edge does not exist.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 412**\n*A json document with these Properties is returned:*\n\nReturned if if-match header is given, but the stored documents revision is different.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/gharial/social/edge/relation/101988\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\netag: _YzHmRTK--B\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"edge\" : { \n    \"_key\" : \"101988\", \n    \"_id\" : \"relation/101988\", \n    \"_from\" : \"male/charly\", \n    \"_to\" : \"female/diana\", \n    \"_rev\" : \"_YzHmRTK--B\", \n    \"type\" : \"married\", \n    \"vertex\" : \"charly\" \n  } \n}\n
\n\n\n\n\n", + "description": "\n\nGets an edge from the given collection.\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nReturned if the edge could be found.\n\n- **edge**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 304**\n*A json document with these Properties is returned:*\n\nReturned if the if-none-match header is given and the\ncurrently stored edge still has this revision value.\nSo there was no update between the last time the edge\nwas fetched by the caller.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to update vertices in the graph you at least need to have the following privileges:\n 1. `Read Only` access on the Database.\n 2. `Read Only` access on the given collection.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned in the following cases:\n* No graph with this name could be found.\n* This collection is not part of the graph.\n* The edge does not exist.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 412**\n*A json document with these Properties is returned:*\n\nReturned if if-match header is given, but the stored documents revision is different.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/gharial/social/edge/relation/67728\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\netag: _ZCIDTne--A\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"edge\" : { \n    \"_key\" : \"67728\", \n    \"_id\" : \"relation/67728\", \n    \"_from\" : \"female/alice\", \n    \"_to\" : \"male/charly\", \n    \"_rev\" : \"_ZCIDTne--A\", \n    \"type\" : \"friend\", \n    \"vertex\" : \"alice\" \n  } \n}\n
\n\n\n\n\n", "operationId": "GetAnEdge", "parameters": [ { @@ -10425,7 +10505,7 @@ "x-hints": "" }, "patch": { - "description": "\n\nUpdates the data of the specific edge in the collection.\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nReturned if the edge could be updated, and waitForSync is false.\n\n- **edge**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **code**: The response code.\n- **old**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **new**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 202**\n*A json document with these Properties is returned:*\n\nReturned if the request was successful but waitForSync is false.\n\n- **edge**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **code**: The response code.\n- **old**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **new**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to update edges in the graph you at least need to have the following privileges:\n 1. `Read Only` access on the Database.\n 2. `Write` access on the given collection.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned in the following cases:\n* No graph with this name could be found.\n* This collection is not part of the graph.\n* The edge to update does not exist.\n* either `_from` or `_to` vertex does not exist (if updated).\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 412**\n*A json document with these Properties is returned:*\n\nReturned if if-match header is given, but the stored documents revision is different.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PATCH --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/gharial/social/edge/relation/102584 <<EOF\n{ \n  \"since\" : \"01.01.2001\" \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: _YzHmR3O--_\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"edge\" : { \n    \"_id\" : \"relation/102584\", \n    \"_key\" : \"102584\", \n    \"_oldRev\" : \"_YzHmR3K--_\", \n    \"_rev\" : \"_YzHmR3O--_\" \n  } \n}\n
\n\n\n\n", + "description": "\n\nUpdates the data of the specific edge in the collection.\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nReturned if the edge could be updated, and waitForSync is false.\n\n- **edge**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **code**: The response code.\n- **old**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **new**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 202**\n*A json document with these Properties is returned:*\n\nReturned if the request was successful but waitForSync is false.\n\n- **edge**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **code**: The response code.\n- **old**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **new**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to update edges in the graph you at least need to have the following privileges:\n 1. `Read Only` access on the Database.\n 2. `Write` access on the given collection.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned in the following cases:\n* No graph with this name could be found.\n* This collection is not part of the graph.\n* The edge to update does not exist.\n* either `_from` or `_to` vertex does not exist (if updated).\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 412**\n*A json document with these Properties is returned:*\n\nReturned if if-match header is given, but the stored documents revision is different.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PATCH --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/gharial/social/edge/relation/68110 <<EOF\n{ \n  \"since\" : \"01.01.2001\" \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: _ZCIDTtC--_\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"edge\" : { \n    \"_id\" : \"relation/68110\", \n    \"_key\" : \"68110\", \n    \"_oldRev\" : \"_ZCIDTt---A\", \n    \"_rev\" : \"_ZCIDTtC--_\" \n  } \n}\n
\n\n\n\n", "operationId": "ModifyAnEdge", "parameters": [ { @@ -10547,7 +10627,7 @@ "x-hints": "" }, "put": { - "description": "\n\nReplaces the data of an edge in the collection.\n\n\n**A JSON object with these properties is required:**\n\n - **_from**: The source vertex of this edge. Has to be valid within\n the used edge definition.\n - **_to**: The target vertex of this edge. Has to be valid within\n the used edge definition.\n\n\n\n**HTTP 201**\n*A json document with these Properties is returned:*\n\nReturned if the request was successful but waitForSync is true.\n\n- **edge**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **code**: The response code.\n- **old**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **new**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 202**\n*A json document with these Properties is returned:*\n\nReturned if the request was successful but waitForSync is false.\n\n- **edge**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **code**: The response code.\n- **old**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **new**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to replace edges in the graph you at least need to have the following privileges:\n 1. `Read Only` access on the Database.\n 2. `Write` access on the given collection.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned in the following cases:\n* No graph with this name could be found.\n* This collection is not part of the graph.\n* The edge to replace does not exist.\n* either `_from` or `_to` vertex does not exist.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 412**\n*A json document with these Properties is returned:*\n\nReturned if if-match header is given, but the stored documents revision is different.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/gharial/social/edge/relation/102667 <<EOF\n{ \n  \"type\" : \"divorced\", \n  \"_from\" : \"female/alice\", \n  \"_to\" : \"male/bob\" \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: _YzHmR7G--_\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"edge\" : { \n    \"_id\" : \"relation/102667\", \n    \"_key\" : \"102667\", \n    \"_oldRev\" : \"_YzHmR7C--_\", \n    \"_rev\" : \"_YzHmR7G--_\" \n  } \n}\n
\n\n\n\n", + "description": "\n\nReplaces the data of an edge in the collection.\n\n\n**A JSON object with these properties is required:**\n\n - **_from**: The source vertex of this edge. Has to be valid within\n the used edge definition.\n - **_to**: The target vertex of this edge. Has to be valid within\n the used edge definition.\n\n\n\n**HTTP 201**\n*A json document with these Properties is returned:*\n\nReturned if the request was successful but waitForSync is true.\n\n- **edge**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **code**: The response code.\n- **old**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **new**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 202**\n*A json document with these Properties is returned:*\n\nReturned if the request was successful but waitForSync is false.\n\n- **edge**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **code**: The response code.\n- **old**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **new**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n - **_from**: The _from value of the stored data.\n - **_to**: The _to value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to replace edges in the graph you at least need to have the following privileges:\n 1. `Read Only` access on the Database.\n 2. `Write` access on the given collection.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned in the following cases:\n* No graph with this name could be found.\n* This collection is not part of the graph.\n* The edge to replace does not exist.\n* either `_from` or `_to` vertex does not exist.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 412**\n*A json document with these Properties is returned:*\n\nReturned if if-match header is given, but the stored documents revision is different.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/gharial/social/edge/relation/68158 <<EOF\n{ \n  \"type\" : \"divorced\", \n  \"_from\" : \"female/alice\", \n  \"_to\" : \"male/bob\" \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: _ZCIDTty--_\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"edge\" : { \n    \"_id\" : \"relation/68158\", \n    \"_key\" : \"68158\", \n    \"_oldRev\" : \"_ZCIDTtq--E\", \n    \"_rev\" : \"_ZCIDTty--_\" \n  } \n}\n
\n\n\n\n", "operationId": "ReplaceAnEdge", "parameters": [ { @@ -10669,7 +10749,7 @@ }, "/_api/gharial/{graph}/edge/{definition}": { "delete": { - "description": "\n\nRemove one edge definition from the graph. This will only remove the\nedge collection, the vertex collections remain untouched and can still\nbe used in your queries.\n\n\n**HTTP 201**\n*A json document with these Properties is returned:*\n\nReturned if the edge definition could be removed from the graph \nand waitForSync is true.\n\n- **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 202**\n*A json document with these Properties is returned:*\n\nReturned if the edge definition could be removed from the graph and\nwaitForSync is false.\n\n- **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to drop a vertex you at least need to have the following privileges:\n 1. `Administrate` access on the Database.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned if no graph with this name could be found,\nor if no edge definition with this name is found in the graph.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/gharial/social/edge/relation\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: _YzHmRPi--_\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"graph\" : { \n    \"_key\" : \"social\", \n    \"numberOfShards\" : 1, \n    \"replicationFactor\" : 1, \n    \"isSmart\" : false, \n    \"edgeDefinitions\" : [ ], \n    \"orphanCollections\" : [ \n      \"female\", \n      \"male\" \n    ], \n    \"_rev\" : \"_YzHmRPi--_\", \n    \"_id\" : \"_graphs/social\", \n    \"name\" : \"social\" \n  } \n}\n
\n\n\n\n", + "description": "\n\nRemove one edge definition from the graph. This will only remove the\nedge collection, the vertex collections remain untouched and can still\nbe used in your queries.\n\n\n**HTTP 201**\n*A json document with these Properties is returned:*\n\nReturned if the edge definition could be removed from the graph \nand waitForSync is true.\n\n- **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **minReplicationFactor**: The minimal replication factor used for every new collection in the graph.\n If one shard has less than minReplicationFactor copies, we cannot write\n to this shard, but to all others.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 202**\n*A json document with these Properties is returned:*\n\nReturned if the edge definition could be removed from the graph and\nwaitForSync is false.\n\n- **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **minReplicationFactor**: The minimal replication factor used for every new collection in the graph.\n If one shard has less than minReplicationFactor copies, we cannot write\n to this shard, but to all others.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to drop a vertex you at least need to have the following privileges:\n 1. `Administrate` access on the Database.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned if no graph with this name could be found,\nor if no edge definition with this name is found in the graph.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/gharial/social/edge/relation\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: _ZCIDTmy--F\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"graph\" : { \n    \"_key\" : \"social\", \n    \"numberOfShards\" : 1, \n    \"replicationFactor\" : 1, \n    \"minReplicationFactor\" : 1, \n    \"isSmart\" : false, \n    \"edgeDefinitions\" : [ ], \n    \"orphanCollections\" : [ \n      \"female\", \n      \"male\" \n    ], \n    \"_rev\" : \"_ZCIDTmy--F\", \n    \"_id\" : \"_graphs/social\", \n    \"name\" : \"social\" \n  } \n}\n
\n\n\n\n", "operationId": "RemoveAnEdgeDefinitionFromTheGraph", "parameters": [ { @@ -10745,7 +10825,7 @@ "x-hints": "" }, "put": { - "description": "\n\nChange one specific edge definition.\nThis will modify all occurrences of this definition in all graphs known to your database.\n\n\n**A JSON object with these properties is required:**\n\n - **to** (string): One or many vertex collections that can contain target vertices.\n - **from** (string): One or many vertex collections that can contain source vertices.\n - **collection**: The name of the edge collection to be used.\n\n\n\n**HTTP 201**\n*A json document with these Properties is returned:*\n\nReturned if the request was successful and waitForSync is true.\n\n- **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 202**\n*A json document with these Properties is returned:*\n\nReturned if the request was successful but waitForSync is false.\n\n- **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 400**\n*A json document with these Properties is returned:*\n\nReturned if no edge definition with this name is found in the graph,\nor of the new definition is ill-formed and cannot be used.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to drop a vertex you at least need to have the following privileges:\n 1. `Administrate` access on the Database.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned if no graph with this name could be found.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/gharial/social/edge/relation <<EOF\n{ \n  \"collection\" : \"relation\", \n  \"from\" : [ \n    \"female\", \n    \"male\", \n    \"animal\" \n  ], \n  \"to\" : [ \n    \"female\", \n    \"male\", \n    \"animal\" \n  ] \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: _YzHmSI6--B\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"graph\" : { \n    \"_key\" : \"social\", \n    \"numberOfShards\" : 1, \n    \"replicationFactor\" : 1, \n    \"isSmart\" : false, \n    \"edgeDefinitions\" : [ \n      { \n        \"collection\" : \"relation\", \n        \"from\" : [ \n          \"animal\", \n          \"female\", \n          \"male\" \n        ], \n        \"to\" : [ \n          \"animal\", \n          \"female\", \n          \"male\" \n        ] \n      } \n    ], \n    \"orphanCollections\" : [ ], \n    \"_rev\" : \"_YzHmSI6--B\", \n    \"_id\" : \"_graphs/social\", \n    \"name\" : \"social\" \n  } \n}\n
\n\n\n\n", + "description": "\n\nChange one specific edge definition.\nThis will modify all occurrences of this definition in all graphs known to your database.\n\n\n**A JSON object with these properties is required:**\n\n - **to** (string): One or many vertex collections that can contain target vertices.\n - **from** (string): One or many vertex collections that can contain source vertices.\n - **collection**: The name of the edge collection to be used.\n\n\n\n**HTTP 201**\n*A json document with these Properties is returned:*\n\nReturned if the request was successful and waitForSync is true.\n\n- **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **minReplicationFactor**: The minimal replication factor used for every new collection in the graph.\n If one shard has less than minReplicationFactor copies, we cannot write\n to this shard, but to all others.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 202**\n*A json document with these Properties is returned:*\n\nReturned if the request was successful but waitForSync is false.\n\n- **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **minReplicationFactor**: The minimal replication factor used for every new collection in the graph.\n If one shard has less than minReplicationFactor copies, we cannot write\n to this shard, but to all others.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 400**\n*A json document with these Properties is returned:*\n\nReturned if no edge definition with this name is found in the graph,\nor of the new definition is ill-formed and cannot be used.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to drop a vertex you at least need to have the following privileges:\n 1. `Administrate` access on the Database.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned if no graph with this name could be found.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/gharial/social/edge/relation <<EOF\n{ \n  \"collection\" : \"relation\", \n  \"from\" : [ \n    \"female\", \n    \"male\", \n    \"animal\" \n  ], \n  \"to\" : [ \n    \"female\", \n    \"male\", \n    \"animal\" \n  ] \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: _ZCIDTwC--_\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"graph\" : { \n    \"_key\" : \"social\", \n    \"numberOfShards\" : 1, \n    \"replicationFactor\" : 1, \n    \"minReplicationFactor\" : 1, \n    \"isSmart\" : false, \n    \"edgeDefinitions\" : [ \n      { \n        \"collection\" : \"relation\", \n        \"from\" : [ \n          \"animal\", \n          \"female\", \n          \"male\" \n        ], \n        \"to\" : [ \n          \"animal\", \n          \"female\", \n          \"male\" \n        ] \n      } \n    ], \n    \"orphanCollections\" : [ ], \n    \"_rev\" : \"_ZCIDTwC--_\", \n    \"_id\" : \"_graphs/social\", \n    \"name\" : \"social\" \n  } \n}\n
\n\n\n\n", "operationId": "ReplaceAnEdgeDefinition", "parameters": [ { @@ -10879,7 +10959,7 @@ "x-hints": "" }, "post": { - "description": "\n\nAdds a vertex collection to the set of orphan collections of the graph.\nIf the collection does not exist, it will be created.\n\n\n**HTTP 201**\n*A json document with these Properties is returned:*\n\nIs returned if the collection could be created and waitForSync is enabled\nfor the `_graphs` collection, or given in the request.\nThe response body contains the graph configuration that has been stored.\n\n- **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 202**\n*A json document with these Properties is returned:*\n\nIs returned if the collection could be created and waitForSync is disabled\nfor the `_graphs` collection, or given in the request.\nThe response body contains the graph configuration that has been stored.\n\n- **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 400**\n*A json document with these Properties is returned:*\n\nReturned if the request is in an invalid format.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to modify a graph you at least need to have the following privileges:\n 1. `Administrate` access on the Database.\n 2. `Read Only` access on every collection used within this graph.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned if no graph with this name could be found.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/gharial/social/vertex <<EOF\n{ \n  \"collection\" : \"otherVertices\" \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: _YzHmQ3e--B\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"graph\" : { \n    \"_key\" : \"social\", \n    \"numberOfShards\" : 1, \n    \"replicationFactor\" : 1, \n    \"isSmart\" : false, \n    \"edgeDefinitions\" : [ \n      { \n        \"collection\" : \"relation\", \n        \"from\" : [ \n          \"female\", \n          \"male\" \n        ], \n        \"to\" : [ \n          \"female\", \n          \"male\" \n        ] \n      } \n    ], \n    \"orphanCollections\" : [ \n      \"otherVertices\" \n    ], \n    \"_rev\" : \"_YzHmQ3e--B\", \n    \"_id\" : \"_graphs/social\", \n    \"name\" : \"social\" \n  } \n}\n
\n\n\n\n", + "description": "\n\nAdds a vertex collection to the set of orphan collections of the graph.\nIf the collection does not exist, it will be created.\n\n\n**HTTP 201**\n*A json document with these Properties is returned:*\n\nIs returned if the collection could be created and waitForSync is enabled\nfor the `_graphs` collection, or given in the request.\nThe response body contains the graph configuration that has been stored.\n\n- **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **minReplicationFactor**: The minimal replication factor used for every new collection in the graph.\n If one shard has less than minReplicationFactor copies, we cannot write\n to this shard, but to all others.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 202**\n*A json document with these Properties is returned:*\n\nIs returned if the collection could be created and waitForSync is disabled\nfor the `_graphs` collection, or given in the request.\nThe response body contains the graph configuration that has been stored.\n\n- **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **minReplicationFactor**: The minimal replication factor used for every new collection in the graph.\n If one shard has less than minReplicationFactor copies, we cannot write\n to this shard, but to all others.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 400**\n*A json document with these Properties is returned:*\n\nReturned if the request is in an invalid format.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to modify a graph you at least need to have the following privileges:\n 1. `Administrate` access on the Database.\n 2. `Read Only` access on every collection used within this graph.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned if no graph with this name could be found.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/gharial/social/vertex <<EOF\n{ \n  \"collection\" : \"otherVertices\" \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: _ZCIDTi6--B\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"graph\" : { \n    \"_key\" : \"social\", \n    \"numberOfShards\" : 1, \n    \"replicationFactor\" : 1, \n    \"minReplicationFactor\" : 1, \n    \"isSmart\" : false, \n    \"edgeDefinitions\" : [ \n      { \n        \"collection\" : \"relation\", \n        \"from\" : [ \n          \"female\", \n          \"male\" \n        ], \n        \"to\" : [ \n          \"female\", \n          \"male\" \n        ] \n      } \n    ], \n    \"orphanCollections\" : [ \n      \"otherVertices\" \n    ], \n    \"_rev\" : \"_ZCIDTi6--B\", \n    \"_id\" : \"_graphs/social\", \n    \"name\" : \"social\" \n  } \n}\n
\n\n\n\n", "operationId": "AddVertexCollection", "parameters": [ { @@ -10942,7 +11022,7 @@ }, "/_api/gharial/{graph}/vertex/{collection}": { "delete": { - "description": "\n\nRemoves a vertex collection from the graph and optionally deletes the collection,\nif it is not used in any other graph.\nIt can only remove vertex collections that are no longer part of edge definitions,\nif they are used in edge definitions you are required to modify those first.\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nReturned if the vertex collection was removed from the graph successfully\nand waitForSync is true.\n\n- **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 202**\n*A json document with these Properties is returned:*\n\nReturned if the request was successful but waitForSync is false.\n\n- **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 400**\n*A json document with these Properties is returned:*\n\nReturned if the vertex collection is still used in an edge definition.\nIn this case it cannot be removed from the graph yet, it has to be\nremoved from the edge definition first.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to drop a vertex you at least need to have the following privileges:\n 1. `Administrate` access on the Database.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned if no graph with this name could be found.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n You can remove vertex collections that are not used in any edge collection:\n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/gharial/social/vertex/otherVertices\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: _YzHmS_u--_\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"graph\" : { \n    \"_key\" : \"social\", \n    \"numberOfShards\" : 1, \n    \"replicationFactor\" : 1, \n    \"isSmart\" : false, \n    \"edgeDefinitions\" : [ \n      { \n        \"collection\" : \"relation\", \n        \"from\" : [ \n          \"female\", \n          \"male\" \n        ], \n        \"to\" : [ \n          \"female\", \n          \"male\" \n        ] \n      } \n    ], \n    \"orphanCollections\" : [ ], \n    \"_rev\" : \"_YzHmS_u--_\", \n    \"_id\" : \"_graphs/social\", \n    \"name\" : \"social\" \n  } \n}\n
\n\n\n\n\n**Example:**\n You cannot remove vertex collections that are used in edge collections:\n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/gharial/social/vertex/male\n\nHTTP/1.1 Bad Request\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 400, \n  \"error\" : true, \n  \"errorMessage\" : \"not in orphan collection\", \n  \"errorNum\" : 1928 \n}\n
\n\n\n\n\n", + "description": "\n\nRemoves a vertex collection from the graph and optionally deletes the collection,\nif it is not used in any other graph.\nIt can only remove vertex collections that are no longer part of edge definitions,\nif they are used in edge definitions you are required to modify those first.\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nReturned if the vertex collection was removed from the graph successfully\nand waitForSync is true.\n\n- **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **minReplicationFactor**: The minimal replication factor used for every new collection in the graph.\n If one shard has less than minReplicationFactor copies, we cannot write\n to this shard, but to all others.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 202**\n*A json document with these Properties is returned:*\n\nReturned if the request was successful but waitForSync is false.\n\n- **graph**:\n - **smartGraphAttribute**: The name of the sharding attribute in smart graph case (Enterprise Edition only)\n - **replicationFactor**: The replication factor used for every new collection in the graph.\n - **minReplicationFactor**: The minimal replication factor used for every new collection in the graph.\n If one shard has less than minReplicationFactor copies, we cannot write\n to this shard, but to all others.\n - **orphanCollections** (string): An array of additional vertex collections.\n Documents within these collections do not have edges within this graph.\n - **name**: The name of the graph.\n - **_rev**: The revision of this graph. Can be used to make sure to not override\n concurrent modifications to this graph.\n - **numberOfShards**: Number of shards created for every new collection in the graph.\n - **isSmart**: Flag if the graph is a SmartGraph (Enterprise Edition only) or not.\n - **_id**: The internal id value of this graph. \n - **edgeDefinitions**: An array of definitions for the relations of the graph.\n Each has the following type:\n - **to** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _to is in any of the collections here.\n - **from** (string): List of vertex collection names.\n Edges in collection can only be inserted if their _from is in any of the collections here.\n - **collection**: Name of the edge collection, where the edge are stored in.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 400**\n*A json document with these Properties is returned:*\n\nReturned if the vertex collection is still used in an edge definition.\nIn this case it cannot be removed from the graph yet, it has to be\nremoved from the edge definition first.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to drop a vertex you at least need to have the following privileges:\n 1. `Administrate` access on the Database.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned if no graph with this name could be found.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n You can remove vertex collections that are not used in any edge collection:\n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/gharial/social/vertex/otherVertices\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: _ZCIDTui--_\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"graph\" : { \n    \"_key\" : \"social\", \n    \"numberOfShards\" : 1, \n    \"replicationFactor\" : 1, \n    \"minReplicationFactor\" : 1, \n    \"isSmart\" : false, \n    \"edgeDefinitions\" : [ \n      { \n        \"collection\" : \"relation\", \n        \"from\" : [ \n          \"female\", \n          \"male\" \n        ], \n        \"to\" : [ \n          \"female\", \n          \"male\" \n        ] \n      } \n    ], \n    \"orphanCollections\" : [ ], \n    \"_rev\" : \"_ZCIDTui--_\", \n    \"_id\" : \"_graphs/social\", \n    \"name\" : \"social\" \n  } \n}\n
\n\n\n\n\n**Example:**\n You cannot remove vertex collections that are used in edge collections:\n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/gharial/social/vertex/male\n\nHTTP/1.1 Bad Request\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 400, \n  \"error\" : true, \n  \"errorMessage\" : \"not in orphan collection\", \n  \"errorNum\" : 1928 \n}\n
\n\n\n\n\n", "operationId": "RemoveVertexCollection", "parameters": [ { @@ -11018,7 +11098,7 @@ "x-hints": "" }, "post": { - "description": "\n\nAdds a vertex to the given collection.\n\n\n**HTTP 201**\n*A json document with these Properties is returned:*\n\nReturned if the vertex could be added and waitForSync is true.\n\n- **new**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **code**: The response code.\n- **vertex**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 202**\n*A json document with these Properties is returned:*\n\nReturned if the request was successful but waitForSync is false.\n\n- **new**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **code**: The response code.\n- **vertex**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to insert vertices into the graph you at least need to have the following privileges:\n 1. `Read Only` access on the Database.\n 2. `Write` access on the given collection.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned if no graph with this name could be found.\nOr if a graph is found but this collection is not part of the graph.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/gharial/social/vertex/male <<EOF\n{ \n  \"name\" : \"Francis\" \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: _YzHmQzW--D\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"vertex\" : { \n    \"_id\" : \"male/101432\", \n    \"_key\" : \"101432\", \n    \"_rev\" : \"_YzHmQzW--D\" \n  } \n}\n
\n\n\n\n\n", + "description": "\n\nAdds a vertex to the given collection.\n\n\n**HTTP 201**\n*A json document with these Properties is returned:*\n\nReturned if the vertex could be added and waitForSync is true.\n\n- **new**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **code**: The response code.\n- **vertex**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 202**\n*A json document with these Properties is returned:*\n\nReturned if the request was successful but waitForSync is false.\n\n- **new**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **code**: The response code.\n- **vertex**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to insert vertices into the graph you at least need to have the following privileges:\n 1. `Read Only` access on the Database.\n 2. `Write` access on the given collection.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned if no graph with this name could be found.\nOr if a graph is found but this collection is not part of the graph.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/gharial/social/vertex/male <<EOF\n{ \n  \"name\" : \"Francis\" \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: _ZCIDTiO--A\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"vertex\" : { \n    \"_id\" : \"male/67388\", \n    \"_key\" : \"67388\", \n    \"_rev\" : \"_ZCIDTiO--A\" \n  } \n}\n
\n\n\n\n\n", "operationId": "CreateAVertex", "parameters": [ { @@ -11204,7 +11284,7 @@ "x-hints": "" }, "get": { - "description": "\n\nGets a vertex from the given collection.\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nReturned if the vertex could be found.\n\n- **code**: The response code.\n- **vertex**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 304**\n*A json document with these Properties is returned:*\n\nReturned if the if-none-match header is given and the\ncurrently stored vertex still has this revision value.\nSo there was no update between the last time the vertex\nwas fetched by the caller.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to update vertices in the graph you at least need to have the following privileges:\n 1. `Read Only` access on the Database.\n 2. `Read Only` access on the given collection.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned in the following cases:\n* No graph with this name could be found.\n* This collection is not part of the graph.\n* The vertex does not exist.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 412**\n*A json document with these Properties is returned:*\n\nReturned if if-match header is given, but the stored documents revision is different.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/gharial/social/vertex/female/alice\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\netag: _YzHmRbG--_\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"vertex\" : { \n    \"_key\" : \"alice\", \n    \"_id\" : \"female/alice\", \n    \"_rev\" : \"_YzHmRbG--_\", \n    \"name\" : \"Alice\" \n  } \n}\n
\n\n\n\n", + "description": "\n\nGets a vertex from the given collection.\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nReturned if the vertex could be found.\n\n- **code**: The response code.\n- **vertex**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 304**\n*A json document with these Properties is returned:*\n\nReturned if the if-none-match header is given and the\ncurrently stored vertex still has this revision value.\nSo there was no update between the last time the vertex\nwas fetched by the caller.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to update vertices in the graph you at least need to have the following privileges:\n 1. `Read Only` access on the Database.\n 2. `Read Only` access on the given collection.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned in the following cases:\n* No graph with this name could be found.\n* This collection is not part of the graph.\n* The vertex does not exist.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 412**\n*A json document with these Properties is returned:*\n\nReturned if if-match header is given, but the stored documents revision is different.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/gharial/social/vertex/female/alice\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\netag: _ZCIDTou---\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"vertex\" : { \n    \"_key\" : \"alice\", \n    \"_id\" : \"female/alice\", \n    \"_rev\" : \"_ZCIDTou---\", \n    \"name\" : \"Alice\" \n  } \n}\n
\n\n\n\n", "operationId": "GetAVertex", "parameters": [ { @@ -11300,7 +11380,7 @@ "x-hints": "" }, "patch": { - "description": "\n\nUpdates the data of the specific vertex in the collection.\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nReturned if the vertex could be updated, and waitForSync is true.\n\n- **new**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **old**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **code**: The response code.\n- **vertex**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 202**\n*A json document with these Properties is returned:*\n\nReturned if the request was successful, and waitForSync is false.\n\n- **new**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **old**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **code**: The response code.\n- **vertex**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to update vertices in the graph you at least need to have the following privileges:\n 1. `Read Only` access on the Database.\n 2. `Write` access on the given collection.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned in the following cases:\n* No graph with this name could be found.\n* This collection is not part of the graph.\n* The vertex to update does not exist.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 412**\n*A json document with these Properties is returned:*\n\nReturned if if-match header is given, but the stored documents revision is different.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PATCH --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/gharial/social/vertex/female/alice <<EOF\n{ \n  \"age\" : 26 \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: _YzHmRza--_\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"vertex\" : { \n    \"_id\" : \"female/alice\", \n    \"_key\" : \"alice\", \n    \"_oldRev\" : \"_YzHmRzK--_\", \n    \"_rev\" : \"_YzHmRza--_\" \n  } \n}\n
\n\n\n\n", + "description": "\n\nUpdates the data of the specific vertex in the collection.\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nReturned if the vertex could be updated, and waitForSync is true.\n\n- **new**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **old**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **code**: The response code.\n- **vertex**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 202**\n*A json document with these Properties is returned:*\n\nReturned if the request was successful, and waitForSync is false.\n\n- **new**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **old**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **code**: The response code.\n- **vertex**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to update vertices in the graph you at least need to have the following privileges:\n 1. `Read Only` access on the Database.\n 2. `Write` access on the given collection.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned in the following cases:\n* No graph with this name could be found.\n* This collection is not part of the graph.\n* The vertex to update does not exist.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 412**\n*A json document with these Properties is returned:*\n\nReturned if if-match header is given, but the stored documents revision is different.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PATCH --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/gharial/social/vertex/female/alice <<EOF\n{ \n  \"age\" : 26 \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: _ZCIDTsW--_\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"vertex\" : { \n    \"_id\" : \"female/alice\", \n    \"_key\" : \"alice\", \n    \"_oldRev\" : \"_ZCIDTsK---\", \n    \"_rev\" : \"_ZCIDTsW--_\" \n  } \n}\n
\n\n\n\n", "operationId": "UpdateAVertex", "parameters": [ { @@ -11422,7 +11502,7 @@ "x-hints": "" }, "put": { - "description": "\n\nReplaces the data of a vertex in the collection.\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nReturned if the vertex could be replaced, and waitForSync is true.\n\n- **new**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **old**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **code**: The response code.\n- **vertex**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 202**\n*A json document with these Properties is returned:*\n\nReturned if the vertex could be replaced, and waitForSync is false.\n\n- **new**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **old**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **code**: The response code.\n- **vertex**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to replace vertices in the graph you at least need to have the following privileges:\n 1. `Read Only` access on the Database.\n 2. `Write` access on the given collection.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned in the following cases:\n* No graph with this name could be found.\n* This collection is not part of the graph.\n* The vertex to replace does not exist.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 412**\n*A json document with these Properties is returned:*\n\nReturned if if-match header is given, but the stored documents revision is different.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/gharial/social/vertex/female/alice <<EOF\n{ \n  \"name\" : \"Alice Cooper\", \n  \"age\" : 26 \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: _YzHmSNe--_\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"vertex\" : { \n    \"_id\" : \"female/alice\", \n    \"_key\" : \"alice\", \n    \"_oldRev\" : \"_YzHmSNO--_\", \n    \"_rev\" : \"_YzHmSNe--_\" \n  } \n}\n
\n\n\n\n", + "description": "\n\nReplaces the data of a vertex in the collection.\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nReturned if the vertex could be replaced, and waitForSync is true.\n\n- **new**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **old**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **code**: The response code.\n- **vertex**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 202**\n*A json document with these Properties is returned:*\n\nReturned if the vertex could be replaced, and waitForSync is false.\n\n- **new**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **old**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **code**: The response code.\n- **vertex**:\n - **_key**: The _key value of the stored data.\n - **_rev**: The _rev value of the stored data.\n - **_id**: The _id value of the stored data.\n- **error**: Flag if there was an error (true) or not (false).\nIt is false in this response.\n\n\n**HTTP 403**\n*A json document with these Properties is returned:*\n\nReturned if your user has insufficient rights.\nIn order to replace vertices in the graph you at least need to have the following privileges:\n 1. `Read Only` access on the Database.\n 2. `Write` access on the given collection.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 404**\n*A json document with these Properties is returned:*\n\nReturned in the following cases:\n* No graph with this name could be found.\n* This collection is not part of the graph.\n* The vertex to replace does not exist.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n**HTTP 412**\n*A json document with these Properties is returned:*\n\nReturned if if-match header is given, but the stored documents revision is different.\n\n- **errorMessage**: A message created for this error.\n- **errorNum**: ArangoDB error number for the error that occured.\n- **code**: The response code.\n- **error**: Flag if there was an error (true) or not (false).\nIt is true in this response.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/gharial/social/vertex/female/alice <<EOF\n{ \n  \"name\" : \"Alice Cooper\", \n  \"age\" : 26 \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: application/json; charset=utf-8\netag: _ZCIDTwu--D\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 202, \n  \"vertex\" : { \n    \"_id\" : \"female/alice\", \n    \"_key\" : \"alice\", \n    \"_oldRev\" : \"_ZCIDTwm---\", \n    \"_rev\" : \"_ZCIDTwu--D\" \n  } \n}\n
\n\n\n\n", "operationId": "ReplaceAVertex", "parameters": [ { @@ -11751,7 +11831,7 @@ }, "/_api/index": { "get": { - "description": "\n\nReturns an object with an attribute *indexes* containing an array of all\nindex descriptions for the given collection. The same information is also\navailable in the *identifiers* as an object with the index handles as\nkeys.\n\n\n\n\n**Example:**\n Return information about all indexes\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/index?collection=products\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"indexes\" : [ \n    { \n      \"fields\" : [ \n        \"_key\" \n      ], \n      \"id\" : \"products/0\", \n      \"name\" : \"primary\", \n      \"selectivityEstimate\" : 1, \n      \"sparse\" : false, \n      \"type\" : \"primary\", \n      \"unique\" : true \n    }, \n    { \n      \"deduplicate\" : true, \n      \"fields\" : [ \n        \"name\" \n      ], \n      \"id\" : \"products/105135\", \n      \"name\" : \"idx_1636256398800060418\", \n      \"selectivityEstimate\" : 1, \n      \"sparse\" : false, \n      \"type\" : \"hash\", \n      \"unique\" : false \n    }, \n    { \n      \"deduplicate\" : true, \n      \"fields\" : [ \n        \"price\" \n      ], \n      \"id\" : \"products/105139\", \n      \"name\" : \"idx_1636256398821031936\", \n      \"sparse\" : true, \n      \"type\" : \"skiplist\", \n      \"unique\" : false \n    } \n  ], \n  \"identifiers\" : { \n    \"products/0\" : { \n      \"fields\" : [ \n        \"_key\" \n      ], \n      \"id\" : \"products/0\", \n      \"name\" : \"primary\", \n      \"selectivityEstimate\" : 1, \n      \"sparse\" : false, \n      \"type\" : \"primary\", \n      \"unique\" : true \n    }, \n    \"products/105135\" : { \n      \"deduplicate\" : true, \n      \"fields\" : [ \n        \"name\" \n      ], \n      \"id\" : \"products/105135\", \n      \"name\" : \"idx_1636256398800060418\", \n      \"selectivityEstimate\" : 1, \n      \"sparse\" : false, \n      \"type\" : \"hash\", \n      \"unique\" : false \n    }, \n    \"products/105139\" : { \n      \"deduplicate\" : true, \n      \"fields\" : [ \n        \"price\" \n      ], \n      \"id\" : \"products/105139\", \n      \"name\" : \"idx_1636256398821031936\", \n      \"sparse\" : true, \n      \"type\" : \"skiplist\", \n      \"unique\" : false \n    } \n  } \n}\n
\n\n\n\n\n", + "description": "\n\nReturns an object with an attribute *indexes* containing an array of all\nindex descriptions for the given collection. The same information is also\navailable in the *identifiers* as an object with the index handles as\nkeys.\n\n\n\n\n**Example:**\n Return information about all indexes\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/index?collection=products\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"indexes\" : [ \n    { \n      \"fields\" : [ \n        \"_key\" \n      ], \n      \"id\" : \"products/0\", \n      \"name\" : \"primary\", \n      \"selectivityEstimate\" : 1, \n      \"sparse\" : false, \n      \"type\" : \"primary\", \n      \"unique\" : true \n    }, \n    { \n      \"deduplicate\" : true, \n      \"fields\" : [ \n        \"name\" \n      ], \n      \"id\" : \"products/69703\", \n      \"name\" : \"idx_1640480515215589376\", \n      \"selectivityEstimate\" : 1, \n      \"sparse\" : false, \n      \"type\" : \"hash\", \n      \"unique\" : false \n    }, \n    { \n      \"deduplicate\" : true, \n      \"fields\" : [ \n        \"price\" \n      ], \n      \"id\" : \"products/69707\", \n      \"name\" : \"idx_1640480515215589377\", \n      \"selectivityEstimate\" : 1, \n      \"sparse\" : true, \n      \"type\" : \"skiplist\", \n      \"unique\" : false \n    } \n  ], \n  \"identifiers\" : { \n    \"products/0\" : { \n      \"fields\" : [ \n        \"_key\" \n      ], \n      \"id\" : \"products/0\", \n      \"name\" : \"primary\", \n      \"selectivityEstimate\" : 1, \n      \"sparse\" : false, \n      \"type\" : \"primary\", \n      \"unique\" : true \n    }, \n    \"products/69703\" : { \n      \"deduplicate\" : true, \n      \"fields\" : [ \n        \"name\" \n      ], \n      \"id\" : \"products/69703\", \n      \"name\" : \"idx_1640480515215589376\", \n      \"selectivityEstimate\" : 1, \n      \"sparse\" : false, \n      \"type\" : \"hash\", \n      \"unique\" : false \n    }, \n    \"products/69707\" : { \n      \"deduplicate\" : true, \n      \"fields\" : [ \n        \"price\" \n      ], \n      \"id\" : \"products/69707\", \n      \"name\" : \"idx_1640480515215589377\", \n      \"selectivityEstimate\" : 1, \n      \"sparse\" : true, \n      \"type\" : \"skiplist\", \n      \"unique\" : false \n    } \n  } \n}\n
\n\n\n\n\n", "operationId": "getIndexes", "parameters": [ { @@ -11778,7 +11858,7 @@ }, "/_api/index#fulltext": { "post": { - "description": "\n**A JSON object with these properties is required:**\n\n - **fields** (string): an array of attribute names. Currently, the array is limited\n to exactly one attribute.\n - **type**: must be equal to *\"fulltext\"*.\n - **minLength**: Minimum character length of words to index. Will default\n to a server-defined value if unspecified. It is thus recommended to set\n this value explicitly when creating the index.\n\n\n\n\n**NOTE** Swagger examples won't work due to the anchor.\n\n\nCreates a fulltext index for the collection *collection-name*, if\nit does not already exist. The call expects an object containing the index\ndetails.\n\n\n\n\n**Example:**\n Creating a fulltext index\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/index?collection=products <<EOF\n{ \n  \"type\" : \"fulltext\", \n  \"fields\" : [ \n    \"text\" \n  ] \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"fields\" : [ \n    \"text\" \n  ], \n  \"id\" : \"products/105185\", \n  \"isNewlyCreated\" : true, \n  \"minLength\" : 2, \n  \"name\" : \"idx_1636256398942666754\", \n  \"sparse\" : true, \n  \"type\" : \"fulltext\", \n  \"unique\" : false, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n", + "description": "\n**A JSON object with these properties is required:**\n\n - **fields** (string): an array of attribute names. Currently, the array is limited\n to exactly one attribute.\n - **type**: must be equal to *\"fulltext\"*.\n - **minLength**: Minimum character length of words to index. Will default\n to a server-defined value if unspecified. It is thus recommended to set\n this value explicitly when creating the index.\n\n\n\n\n**NOTE** Swagger examples won't work due to the anchor.\n\n\nCreates a fulltext index for the collection *collection-name*, if\nit does not already exist. The call expects an object containing the index\ndetails.\n\n\n\n\n**Example:**\n Creating a fulltext index\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/index?collection=products <<EOF\n{ \n  \"type\" : \"fulltext\", \n  \"fields\" : [ \n    \"text\" \n  ] \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"fields\" : [ \n    \"text\" \n  ], \n  \"id\" : \"products/69741\", \n  \"isNewlyCreated\" : true, \n  \"minLength\" : 2, \n  \"name\" : \"idx_1640480515230269440\", \n  \"sparse\" : true, \n  \"type\" : \"fulltext\", \n  \"unique\" : false, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n", "operationId": "createIndex#fulltext", "parameters": [ { @@ -11867,7 +11947,7 @@ }, "/_api/index#geo": { "post": { - "description": "\n**A JSON object with these properties is required:**\n\n - **fields** (string): An array with one or two attribute paths.\n If it is an array with one attribute path *location*, then a geo-spatial\n index on all documents is created using *location* as path to the\n coordinates. The value of the attribute must be an array with at least two\n double values. The array must contain the latitude (first value) and the\n longitude (second value). All documents, which do not have the attribute\n path or with value that are not suitable, are ignored.\n If it is an array with two attribute paths *latitude* and *longitude*,\n then a geo-spatial index on all documents is created using *latitude*\n and *longitude* as paths the latitude and the longitude. The value of\n the attribute *latitude* and of the attribute *longitude* must a\n double. All documents, which do not have the attribute paths or which\n values are not suitable, are ignored.\n - **type**: must be equal to *\"geo\"*.\n - **geoJson**: If a geo-spatial index on a *location* is constructed\n and *geoJson* is *true*, then the order within the array is longitude\n followed by latitude. This corresponds to the format described in\n http://geojson.org/geojson-spec.html#positions\n\n\n\n\n**NOTE** Swagger examples won't work due to the anchor.\n\n\nCreates a geo-spatial index in the collection *collection-name*, if\nit does not already exist. Expects an object containing the index details.\n\nGeo indexes are always sparse, meaning that documents that do not contain\nthe index attributes or have non-numeric values in the index attributes\nwill not be indexed.\n\n\n\n\n**Example:**\n Creating a geo index with a location attribute\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/index?collection=products <<EOF\n{ \n  \"type\" : \"geo\", \n  \"fields\" : [ \n    \"b\" \n  ] \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"bestIndexedLevel\" : 17, \n  \"fields\" : [ \n    \"b\" \n  ], \n  \"geoJson\" : false, \n  \"id\" : \"products/105170\", \n  \"isNewlyCreated\" : true, \n  \"maxNumCoverCells\" : 8, \n  \"name\" : \"idx_1636256398902820864\", \n  \"sparse\" : true, \n  \"type\" : \"geo\", \n  \"unique\" : false, \n  \"worstIndexedLevel\" : 4, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Creating a geo index with latitude and longitude attributes\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/index?collection=products <<EOF\n{ \n  \"type\" : \"geo\", \n  \"fields\" : [ \n    \"e\", \n    \"f\" \n  ] \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"bestIndexedLevel\" : 17, \n  \"fields\" : [ \n    \"e\", \n    \"f\" \n  ], \n  \"geoJson\" : false, \n  \"id\" : \"products/105155\", \n  \"isNewlyCreated\" : true, \n  \"maxNumCoverCells\" : 8, \n  \"name\" : \"idx_1636256398861926400\", \n  \"sparse\" : true, \n  \"type\" : \"geo\", \n  \"unique\" : false, \n  \"worstIndexedLevel\" : 4, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n", + "description": "\n**A JSON object with these properties is required:**\n\n - **fields** (string): An array with one or two attribute paths.\n If it is an array with one attribute path *location*, then a geo-spatial\n index on all documents is created using *location* as path to the\n coordinates. The value of the attribute must be an array with at least two\n double values. The array must contain the latitude (first value) and the\n longitude (second value). All documents, which do not have the attribute\n path or with value that are not suitable, are ignored.\n If it is an array with two attribute paths *latitude* and *longitude*,\n then a geo-spatial index on all documents is created using *latitude*\n and *longitude* as paths the latitude and the longitude. The value of\n the attribute *latitude* and of the attribute *longitude* must a\n double. All documents, which do not have the attribute paths or which\n values are not suitable, are ignored.\n - **type**: must be equal to *\"geo\"*.\n - **geoJson**: If a geo-spatial index on a *location* is constructed\n and *geoJson* is *true*, then the order within the array is longitude\n followed by latitude. This corresponds to the format described in\n http://geojson.org/geojson-spec.html#positions\n\n\n\n\n**NOTE** Swagger examples won't work due to the anchor.\n\n\nCreates a geo-spatial index in the collection *collection-name*, if\nit does not already exist. Expects an object containing the index details.\n\nGeo indexes are always sparse, meaning that documents that do not contain\nthe index attributes or have non-numeric values in the index attributes\nwill not be indexed.\n\n\n\n\n**Example:**\n Creating a geo index with a location attribute\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/index?collection=products <<EOF\n{ \n  \"type\" : \"geo\", \n  \"fields\" : [ \n    \"b\" \n  ] \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"bestIndexedLevel\" : 17, \n  \"fields\" : [ \n    \"b\" \n  ], \n  \"geoJson\" : false, \n  \"id\" : \"products/69730\", \n  \"isNewlyCreated\" : true, \n  \"maxNumCoverCells\" : 8, \n  \"name\" : \"idx_1640480515226075138\", \n  \"sparse\" : true, \n  \"type\" : \"geo\", \n  \"unique\" : false, \n  \"worstIndexedLevel\" : 4, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Creating a geo index with latitude and longitude attributes\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/index?collection=products <<EOF\n{ \n  \"type\" : \"geo\", \n  \"fields\" : [ \n    \"e\", \n    \"f\" \n  ] \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"bestIndexedLevel\" : 17, \n  \"fields\" : [ \n    \"e\", \n    \"f\" \n  ], \n  \"geoJson\" : false, \n  \"id\" : \"products/69719\", \n  \"isNewlyCreated\" : true, \n  \"maxNumCoverCells\" : 8, \n  \"name\" : \"idx_1640480515221880834\", \n  \"sparse\" : true, \n  \"type\" : \"geo\", \n  \"unique\" : false, \n  \"worstIndexedLevel\" : 4, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n", "operationId": "createIndex#geo", "parameters": [ { @@ -11909,7 +11989,7 @@ }, "/_api/index#hash": { "post": { - "description": "\n**A JSON object with these properties is required:**\n\n - **fields** (string): an array of attribute paths.\n - **unique**: if *true*, then create a unique index.\n - **type**: must be equal to *\"hash\"*.\n - **sparse**: if *true*, then create a sparse index.\n - **deduplicate**: if *false*, the deduplication of array values is turned off.\n\n\n\n\n**NOTE** Swagger examples won't work due to the anchor.\n\n\nCreates a hash index for the collection *collection-name* if it\ndoes not already exist. The call expects an object containing the index\ndetails.\n\nIn a sparse index all documents will be excluded from the index that do not \ncontain at least one of the specified index attributes (i.e. *fields*) or that \nhave a value of *null* in any of the specified index attributes. Such documents \nwill not be indexed, and not be taken into account for uniqueness checks if\nthe *unique* flag is set.\n\nIn a non-sparse index, these documents will be indexed (for non-present\nindexed attributes, a value of *null* will be used) and will be taken into\naccount for uniqueness checks if the *unique* flag is set.\n\n**Note**: unique indexes on non-shard keys are not supported in a cluster.\n\n\n\n\n**Example:**\n Creating an unique constraint\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/index?collection=products <<EOF\n{ \n  \"type\" : \"hash\", \n  \"unique\" : true, \n  \"fields\" : [ \n    \"a\", \n    \"b\" \n  ] \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"deduplicate\" : true, \n  \"fields\" : [ \n    \"a\", \n    \"b\" \n  ], \n  \"id\" : \"products/105260\", \n  \"isNewlyCreated\" : true, \n  \"name\" : \"idx_1636256399147139074\", \n  \"selectivityEstimate\" : 1, \n  \"sparse\" : false, \n  \"type\" : \"hash\", \n  \"unique\" : true, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Creating a non-unique hash index\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/index?collection=products <<EOF\n{ \n  \"type\" : \"hash\", \n  \"unique\" : false, \n  \"fields\" : [ \n    \"a\", \n    \"b\" \n  ] \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"deduplicate\" : true, \n  \"fields\" : [ \n    \"a\", \n    \"b\" \n  ], \n  \"id\" : \"products/105200\", \n  \"isNewlyCreated\" : true, \n  \"name\" : \"idx_1636256398983561218\", \n  \"selectivityEstimate\" : 1, \n  \"sparse\" : false, \n  \"type\" : \"hash\", \n  \"unique\" : false, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Creating a sparse index\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/index?collection=products <<EOF\n{ \n  \"type\" : \"hash\", \n  \"unique\" : false, \n  \"sparse\" : true, \n  \"fields\" : [ \n    \"a\" \n  ] \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"deduplicate\" : true, \n  \"fields\" : [ \n    \"a\" \n  ], \n  \"id\" : \"products/105275\", \n  \"isNewlyCreated\" : true, \n  \"name\" : \"idx_1636256399188033536\", \n  \"selectivityEstimate\" : 1, \n  \"sparse\" : true, \n  \"type\" : \"hash\", \n  \"unique\" : false, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n", + "description": "\n**A JSON object with these properties is required:**\n\n - **fields** (string): an array of attribute paths.\n - **unique**: if *true*, then create a unique index.\n - **type**: must be equal to *\"hash\"*.\n - **sparse**: if *true*, then create a sparse index.\n - **deduplicate**: if *false*, the deduplication of array values is turned off.\n\n\n\n\n**NOTE** Swagger examples won't work due to the anchor.\n\n\nCreates a hash index for the collection *collection-name* if it\ndoes not already exist. The call expects an object containing the index\ndetails.\n\nIn a sparse index all documents will be excluded from the index that do not \ncontain at least one of the specified index attributes (i.e. *fields*) or that \nhave a value of *null* in any of the specified index attributes. Such documents \nwill not be indexed, and not be taken into account for uniqueness checks if\nthe *unique* flag is set.\n\nIn a non-sparse index, these documents will be indexed (for non-present\nindexed attributes, a value of *null* will be used) and will be taken into\naccount for uniqueness checks if the *unique* flag is set.\n\n**Note**: unique indexes on non-shard keys are not supported in a cluster.\n\n\n\n\n**Example:**\n Creating an unique constraint\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/index?collection=products <<EOF\n{ \n  \"type\" : \"hash\", \n  \"unique\" : true, \n  \"fields\" : [ \n    \"a\", \n    \"b\" \n  ] \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"deduplicate\" : true, \n  \"fields\" : [ \n    \"a\", \n    \"b\" \n  ], \n  \"id\" : \"products/69796\", \n  \"isNewlyCreated\" : true, \n  \"name\" : \"idx_1640480515248095234\", \n  \"selectivityEstimate\" : 1, \n  \"sparse\" : false, \n  \"type\" : \"hash\", \n  \"unique\" : true, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Creating a non-unique hash index\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/index?collection=products <<EOF\n{ \n  \"type\" : \"hash\", \n  \"unique\" : false, \n  \"fields\" : [ \n    \"a\", \n    \"b\" \n  ] \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"deduplicate\" : true, \n  \"fields\" : [ \n    \"a\", \n    \"b\" \n  ], \n  \"id\" : \"products/69752\", \n  \"isNewlyCreated\" : true, \n  \"name\" : \"idx_1640480515233415170\", \n  \"selectivityEstimate\" : 1, \n  \"sparse\" : false, \n  \"type\" : \"hash\", \n  \"unique\" : false, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Creating a sparse index\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/index?collection=products <<EOF\n{ \n  \"type\" : \"hash\", \n  \"unique\" : false, \n  \"sparse\" : true, \n  \"fields\" : [ \n    \"a\" \n  ] \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"deduplicate\" : true, \n  \"fields\" : [ \n    \"a\" \n  ], \n  \"id\" : \"products/69807\", \n  \"isNewlyCreated\" : true, \n  \"name\" : \"idx_1640480515252289538\", \n  \"selectivityEstimate\" : 1, \n  \"sparse\" : true, \n  \"type\" : \"hash\", \n  \"unique\" : false, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n", "operationId": "createIndex:hash", "parameters": [ { @@ -11954,7 +12034,7 @@ }, "/_api/index#persistent": { "post": { - "description": "\n**A JSON object with these properties is required:**\n\n - **fields** (string): an array of attribute paths.\n - **unique**: if *true*, then create a unique index.\n - **type**: must be equal to *\"persistent\"*.\n - **sparse**: if *true*, then create a sparse index.\n\n\n\n\n\nCreates a persistent index for the collection *collection-name*, if\nit does not already exist. The call expects an object containing the index\ndetails.\n\nIn a sparse index all documents will be excluded from the index that do not \ncontain at least one of the specified index attributes (i.e. *fields*) or that \nhave a value of *null* in any of the specified index attributes. Such documents \nwill not be indexed, and not be taken into account for uniqueness checks if\nthe *unique* flag is set.\n\nIn a non-sparse index, these documents will be indexed (for non-present\nindexed attributes, a value of *null* will be used) and will be taken into\naccount for uniqueness checks if the *unique* flag is set.\n\n**Note**: unique indexes on non-shard keys are not supported in a cluster.\n\n\n\n\n**Example:**\n Creating a persistent index\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/index?collection=products <<EOF\n{ \n  \"type\" : \"persistent\", \n  \"unique\" : false, \n  \"fields\" : [ \n    \"a\", \n    \"b\" \n  ] \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"deduplicate\" : true, \n  \"fields\" : [ \n    \"a\", \n    \"b\" \n  ], \n  \"id\" : \"products/105215\", \n  \"isNewlyCreated\" : true, \n  \"name\" : \"idx_1636256399025504256\", \n  \"sparse\" : false, \n  \"type\" : \"persistent\", \n  \"unique\" : false, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Creating a sparse persistent index\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/index?collection=products <<EOF\n{ \n  \"type\" : \"persistent\", \n  \"unique\" : false, \n  \"sparse\" : true, \n  \"fields\" : [ \n    \"a\" \n  ] \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"deduplicate\" : true, \n  \"fields\" : [ \n    \"a\" \n  ], \n  \"id\" : \"products/105290\", \n  \"isNewlyCreated\" : true, \n  \"name\" : \"idx_1636256399229976578\", \n  \"sparse\" : true, \n  \"type\" : \"persistent\", \n  \"unique\" : false, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n", + "description": "\n**A JSON object with these properties is required:**\n\n - **fields** (string): an array of attribute paths.\n - **unique**: if *true*, then create a unique index.\n - **type**: must be equal to *\"persistent\"*.\n - **sparse**: if *true*, then create a sparse index.\n\n\n\n\n\nCreates a persistent index for the collection *collection-name*, if\nit does not already exist. The call expects an object containing the index\ndetails.\n\nIn a sparse index all documents will be excluded from the index that do not \ncontain at least one of the specified index attributes (i.e. *fields*) or that \nhave a value of *null* in any of the specified index attributes. Such documents \nwill not be indexed, and not be taken into account for uniqueness checks if\nthe *unique* flag is set.\n\nIn a non-sparse index, these documents will be indexed (for non-present\nindexed attributes, a value of *null* will be used) and will be taken into\naccount for uniqueness checks if the *unique* flag is set.\n\n**Note**: unique indexes on non-shard keys are not supported in a cluster.\n\n\n\n\n**Example:**\n Creating a persistent index\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/index?collection=products <<EOF\n{ \n  \"type\" : \"persistent\", \n  \"unique\" : false, \n  \"fields\" : [ \n    \"a\", \n    \"b\" \n  ] \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"deduplicate\" : true, \n  \"fields\" : [ \n    \"a\", \n    \"b\" \n  ], \n  \"id\" : \"products/69763\", \n  \"isNewlyCreated\" : true, \n  \"name\" : \"idx_1640480515237609472\", \n  \"selectivityEstimate\" : 1, \n  \"sparse\" : false, \n  \"type\" : \"persistent\", \n  \"unique\" : false, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Creating a sparse persistent index\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/index?collection=products <<EOF\n{ \n  \"type\" : \"persistent\", \n  \"unique\" : false, \n  \"sparse\" : true, \n  \"fields\" : [ \n    \"a\" \n  ] \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"deduplicate\" : true, \n  \"fields\" : [ \n    \"a\" \n  ], \n  \"id\" : \"products/69818\", \n  \"isNewlyCreated\" : true, \n  \"name\" : \"idx_1640480515256483840\", \n  \"selectivityEstimate\" : 1, \n  \"sparse\" : true, \n  \"type\" : \"persistent\", \n  \"unique\" : false, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n", "operationId": "createIndex:persistent", "parameters": [ { @@ -11999,7 +12079,7 @@ }, "/_api/index#skiplist": { "post": { - "description": "\n**A JSON object with these properties is required:**\n\n - **fields** (string): an array of attribute paths.\n - **unique**: if *true*, then create a unique index.\n - **type**: must be equal to *\"skiplist\"*.\n - **sparse**: if *true*, then create a sparse index.\n - **deduplicate**: if *false*, the deduplication of array values is turned off.\n\n\n\n\n\nCreates a skip-list index for the collection *collection-name*, if\nit does not already exist. The call expects an object containing the index\ndetails.\n\nIn a sparse index all documents will be excluded from the index that do not \ncontain at least one of the specified index attributes (i.e. *fields*) or that \nhave a value of *null* in any of the specified index attributes. Such documents \nwill not be indexed, and not be taken into account for uniqueness checks if\nthe *unique* flag is set.\n\nIn a non-sparse index, these documents will be indexed (for non-present\nindexed attributes, a value of *null* will be used) and will be taken into\naccount for uniqueness checks if the *unique* flag is set.\n\n**Note**: unique indexes on non-shard keys are not supported in a cluster.\n\n\n\n\n**Example:**\n Creating a skiplist index\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/index?collection=products <<EOF\n{ \n  \"type\" : \"skiplist\", \n  \"unique\" : false, \n  \"fields\" : [ \n    \"a\", \n    \"b\" \n  ] \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"deduplicate\" : true, \n  \"fields\" : [ \n    \"a\", \n    \"b\" \n  ], \n  \"id\" : \"products/105230\", \n  \"isNewlyCreated\" : true, \n  \"name\" : \"idx_1636256399065350146\", \n  \"sparse\" : false, \n  \"type\" : \"skiplist\", \n  \"unique\" : false, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Creating a sparse skiplist index\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/index?collection=products <<EOF\n{ \n  \"type\" : \"skiplist\", \n  \"unique\" : false, \n  \"sparse\" : true, \n  \"fields\" : [ \n    \"a\" \n  ] \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"deduplicate\" : true, \n  \"fields\" : [ \n    \"a\" \n  ], \n  \"id\" : \"products/105305\", \n  \"isNewlyCreated\" : true, \n  \"name\" : \"idx_1636256399270871042\", \n  \"sparse\" : true, \n  \"type\" : \"skiplist\", \n  \"unique\" : false, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n", + "description": "\n**A JSON object with these properties is required:**\n\n - **fields** (string): an array of attribute paths.\n - **unique**: if *true*, then create a unique index.\n - **type**: must be equal to *\"skiplist\"*.\n - **sparse**: if *true*, then create a sparse index.\n - **deduplicate**: if *false*, the deduplication of array values is turned off.\n\n\n\n\n\nCreates a skip-list index for the collection *collection-name*, if\nit does not already exist. The call expects an object containing the index\ndetails.\n\nIn a sparse index all documents will be excluded from the index that do not \ncontain at least one of the specified index attributes (i.e. *fields*) or that \nhave a value of *null* in any of the specified index attributes. Such documents \nwill not be indexed, and not be taken into account for uniqueness checks if\nthe *unique* flag is set.\n\nIn a non-sparse index, these documents will be indexed (for non-present\nindexed attributes, a value of *null* will be used) and will be taken into\naccount for uniqueness checks if the *unique* flag is set.\n\n**Note**: unique indexes on non-shard keys are not supported in a cluster.\n\n\n\n\n**Example:**\n Creating a skiplist index\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/index?collection=products <<EOF\n{ \n  \"type\" : \"skiplist\", \n  \"unique\" : false, \n  \"fields\" : [ \n    \"a\", \n    \"b\" \n  ] \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"deduplicate\" : true, \n  \"fields\" : [ \n    \"a\", \n    \"b\" \n  ], \n  \"id\" : \"products/69774\", \n  \"isNewlyCreated\" : true, \n  \"name\" : \"idx_1640480515240755202\", \n  \"selectivityEstimate\" : 1, \n  \"sparse\" : false, \n  \"type\" : \"skiplist\", \n  \"unique\" : false, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Creating a sparse skiplist index\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/index?collection=products <<EOF\n{ \n  \"type\" : \"skiplist\", \n  \"unique\" : false, \n  \"sparse\" : true, \n  \"fields\" : [ \n    \"a\" \n  ] \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"deduplicate\" : true, \n  \"fields\" : [ \n    \"a\" \n  ], \n  \"id\" : \"products/69829\", \n  \"isNewlyCreated\" : true, \n  \"name\" : \"idx_1640480515259629570\", \n  \"selectivityEstimate\" : 1, \n  \"sparse\" : true, \n  \"type\" : \"skiplist\", \n  \"unique\" : false, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n", "operationId": "createIndex:skiplist", "parameters": [ { @@ -12044,7 +12124,7 @@ }, "/_api/index#ttl": { "post": { - "description": "\n**A JSON object with these properties is required:**\n\n - **fields** (string): an array with exactly one attribute path.\n - **type**: must be equal to *\"ttl\"*.\n - **expireAfter**: The time (in seconds) after a document's creation after which the\n documents count as \"expired\".\n\n\n\n\n**NOTE** Swagger examples won't work due to the anchor.\n\nCreates a TTL index for the collection *collection-name* if it\ndoes not already exist. The call expects an object containing the index\ndetails.\n\n\n\n\n**Example:**\n Creating a TTL index\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/index?collection=sessions <<EOF\n{ \n  \"type\" : \"ttl\", \n  \"expireAfter\" : 3600, \n  \"fields\" : [ \n    \"createdAt\" \n  ] \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"expireAfter\" : 3600, \n  \"fields\" : [ \n    \"createdAt\" \n  ], \n  \"id\" : \"sessions/105245\", \n  \"isNewlyCreated\" : true, \n  \"name\" : \"idx_1636256399106244610\", \n  \"sparse\" : true, \n  \"type\" : \"ttl\", \n  \"unique\" : false, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n\n", + "description": "\n**A JSON object with these properties is required:**\n\n - **fields** (string): an array with exactly one attribute path.\n - **type**: must be equal to *\"ttl\"*.\n - **expireAfter**: The time (in seconds) after a document's creation after which the\n documents count as \"expired\".\n\n\n\n\n**NOTE** Swagger examples won't work due to the anchor.\n\nCreates a TTL index for the collection *collection-name* if it\ndoes not already exist. The call expects an object containing the index\ndetails.\n\n\n\n\n**Example:**\n Creating a TTL index\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/index?collection=sessions <<EOF\n{ \n  \"type\" : \"ttl\", \n  \"expireAfter\" : 3600, \n  \"fields\" : [ \n    \"createdAt\" \n  ] \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"expireAfter\" : 3600, \n  \"fields\" : [ \n    \"createdAt\" \n  ], \n  \"id\" : \"sessions/69785\", \n  \"isNewlyCreated\" : true, \n  \"name\" : \"idx_1640480515244949504\", \n  \"selectivityEstimate\" : 1, \n  \"sparse\" : true, \n  \"type\" : \"ttl\", \n  \"unique\" : false, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n\n", "operationId": "createIndex:ttl", "parameters": [ { @@ -12089,7 +12169,7 @@ }, "/_api/index/{index-handle}": { "delete": { - "description": "\n\nDeletes an index with *index-handle*.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/index/products/105320\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"id\" : \"products/105320\", \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n", + "description": "\n\nDeletes an index with *index-handle*.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/index/products/69840\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"id\" : \"products/69840\", \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n", "operationId": "dropIndex", "parameters": [ { @@ -12149,7 +12229,7 @@ }, "/_api/job/{job-id}": { "get": { - "description": "\n\nReturns the processing status of the specified job. The processing status\ncan be\ndetermined by peeking into the HTTP response code of the response.\n\n\n\n\n**Example:**\n Querying the status of a done job:\n\n
shell> curl -X PUT --header 'x-arango-async: store' --header 'accept: application/json' --dump - http://localhost:8529/_api/version\n\nHTTP/1.1 Accepted\ncontent-type: text/plain; charset=utf-8\nx-arango-async-id: 132260\nx-content-type-options: nosniff\n\nshell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/job/132260\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-arango-async-id: 132260\nx-content-type-options: nosniff\n\n{ \n  \"server\" : \"arango\", \n  \"license\" : \"community\", \n  \"version\" : \"3.5.0-rc.4\" \n}\n
\n\n\n\n\n**Example:**\n Querying the status of a pending job:\n(therefore we create a long runnging job...)\n\n
shell> curl -X POST --header 'x-arango-async: store' --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/transaction <<EOF\n{ \n  \"collections\" : { \n    \"read\" : [ \n      \"_aqlfunctions\" \n    ] \n  }, \n  \"action\" : \"function () {require('internal').sleep(15.0);}\" \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: text/plain; charset=utf-8\nx-arango-async-id: 132262\nx-content-type-options: nosniff\n\nshell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/job/132262\n\nHTTP/1.1 No Content\ncontent-type: text/plain; charset=utf-8\nx-content-type-options: nosniff\n\n
\n\n\n\n\n", + "description": "\n\nReturns the processing status of the specified job. The processing status\ncan be\ndetermined by peeking into the HTTP response code of the response.\n\n\n\n\n**Example:**\n Querying the status of a done job:\n\n
shell> curl -X PUT --header 'x-arango-async: store' --header 'accept: application/json' --dump - http://localhost:8529/_api/version\n\nHTTP/1.1 Accepted\ncontent-type: text/plain; charset=utf-8\nx-arango-async-id: 87751\nx-content-type-options: nosniff\n\nshell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/job/87751\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-arango-async-id: 87751\nx-content-type-options: nosniff\n\n{ \n  \"server\" : \"arango\", \n  \"license\" : \"enterprise\", \n  \"version\" : \"3.5.0-rc.6\" \n}\n
\n\n\n\n\n**Example:**\n Querying the status of a pending job:\n(therefore we create a long runnging job...)\n\n
shell> curl -X POST --header 'x-arango-async: store' --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/transaction <<EOF\n{ \n  \"collections\" : { \n    \"read\" : [ \n      \"_aqlfunctions\" \n    ] \n  }, \n  \"action\" : \"function () {require('internal').sleep(15.0);}\" \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: text/plain; charset=utf-8\nx-arango-async-id: 87753\nx-content-type-options: nosniff\n\nshell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/job/87753\n\nHTTP/1.1 No Content\ncontent-type: text/plain; charset=utf-8\nx-content-type-options: nosniff\n\n
\n\n\n\n\n", "operationId": "getJobById", "parameters": [ { @@ -12181,7 +12261,7 @@ "x-hints": "" }, "put": { - "description": "\n\nReturns the result of an async job identified by job-id. If the async job\nresult is present on the server, the result will be removed from the list of\nresult. That means this method can be called for each job-id once.\nThe method will return the original job result's headers and body, plus the\nadditional HTTP header x-arango-async-job-id. If this header is present,\nthen\nthe job was found and the response contains the original job's result. If\nthe header is not present, the job was not found and the response contains\nstatus information from the job manager.\n\n\n\n\n**Example:**\n Not providing a job-id:\n\n
shell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/job\n\nHTTP/1.1 Bad Request\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 400, \n  \"error\" : true, \n  \"errorMessage\" : \"bad parameter\", \n  \"errorNum\" : 400 \n}\n
\n\n\n\n\n**Example:**\n Providing a job-id for a non-existing job:\n\n
shell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/job/notthere\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"not found\", \n  \"errorNum\" : 404 \n}\n
\n\n\n\n\n**Example:**\n Fetching the result of an HTTP GET job:\n\n
shell> curl -X PUT --header 'x-arango-async: store' --header 'accept: application/json' --dump - http://localhost:8529/_api/version\n\nHTTP/1.1 Accepted\ncontent-type: text/plain; charset=utf-8\nx-arango-async-id: 132249\nx-content-type-options: nosniff\n\nshell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/job/132249\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-arango-async-id: 132249\nx-content-type-options: nosniff\n\n{ \n  \"server\" : \"arango\", \n  \"license\" : \"community\", \n  \"version\" : \"3.5.0-rc.4\" \n}\n
\n\n\n\n\n**Example:**\n Fetching the result of an HTTP POST job that failed:\n\n
shell> curl -X PUT --header 'x-arango-async: store' --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/collection <<EOF\n{ \n  \"name\" : \" this name is invalid \" \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: text/plain; charset=utf-8\nx-arango-async-id: 132251\nx-content-type-options: nosniff\n\nshell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/job/132251\n\nHTTP/1.1 Bad Request\ncontent-type: application/json; charset=utf-8\nx-arango-async-id: 132251\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 400, \n  \"error\" : true, \n  \"errorMessage\" : \"expected PUT /_api/collection/<collection-name>/<action>\", \n  \"errorNum\" : 400 \n}\n
\n\n\n\n\n", + "description": "\n\nReturns the result of an async job identified by job-id. If the async job\nresult is present on the server, the result will be removed from the list of\nresult. That means this method can be called for each job-id once.\nThe method will return the original job result's headers and body, plus the\nadditional HTTP header x-arango-async-job-id. If this header is present,\nthen\nthe job was found and the response contains the original job's result. If\nthe header is not present, the job was not found and the response contains\nstatus information from the job manager.\n\n\n\n\n**Example:**\n Not providing a job-id:\n\n
shell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/job\n\nHTTP/1.1 Bad Request\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 400, \n  \"error\" : true, \n  \"errorMessage\" : \"bad parameter\", \n  \"errorNum\" : 400 \n}\n
\n\n\n\n\n**Example:**\n Providing a job-id for a non-existing job:\n\n
shell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/job/notthere\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"not found\", \n  \"errorNum\" : 404 \n}\n
\n\n\n\n\n**Example:**\n Fetching the result of an HTTP GET job:\n\n
shell> curl -X PUT --header 'x-arango-async: store' --header 'accept: application/json' --dump - http://localhost:8529/_api/version\n\nHTTP/1.1 Accepted\ncontent-type: text/plain; charset=utf-8\nx-arango-async-id: 87740\nx-content-type-options: nosniff\n\nshell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/job/87740\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-arango-async-id: 87740\nx-content-type-options: nosniff\n\n{ \n  \"server\" : \"arango\", \n  \"license\" : \"enterprise\", \n  \"version\" : \"3.5.0-rc.6\" \n}\n
\n\n\n\n\n**Example:**\n Fetching the result of an HTTP POST job that failed:\n\n
shell> curl -X PUT --header 'x-arango-async: store' --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/collection <<EOF\n{ \n  \"name\" : \" this name is invalid \" \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: text/plain; charset=utf-8\nx-arango-async-id: 87742\nx-content-type-options: nosniff\n\nshell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/job/87742\n\nHTTP/1.1 Bad Request\ncontent-type: application/json; charset=utf-8\nx-arango-async-id: 87742\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 400, \n  \"error\" : true, \n  \"errorMessage\" : \"expected PUT /_api/collection/<collection-name>/<action>\", \n  \"errorNum\" : 400 \n}\n
\n\n\n\n\n", "operationId": "getJobResult", "parameters": [ { @@ -12215,7 +12295,7 @@ }, "/_api/job/{job-id}/cancel": { "put": { - "description": "\n\nCancels the currently running job identified by job-id. Note that it still\nmight take some time to actually cancel the running async job.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'x-arango-async: store' --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/cursor <<EOF\n{ \n  \"query\" : \"FOR i IN 1..10 FOR j IN 1..10 LET x = sleep(1.0) FILTER i == 5 && j == 5 RETURN 42\" \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: text/plain; charset=utf-8\nx-arango-async-id: 132237\nx-content-type-options: nosniff\n\nshell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/job/pending\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n[ \n  \"132237\" \n]\nshell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/job/132237/cancel\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : true \n}\nshell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/job/pending\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n[ \n  \"132237\" \n]\n
\n\n\n\n\n", + "description": "\n\nCancels the currently running job identified by job-id. Note that it still\nmight take some time to actually cancel the running async job.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'x-arango-async: store' --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/cursor <<EOF\n{ \n  \"query\" : \"FOR i IN 1..10 FOR j IN 1..10 LET x = sleep(1.0) FILTER i == 5 && j == 5 RETURN 42\" \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: text/plain; charset=utf-8\nx-arango-async-id: 87728\nx-content-type-options: nosniff\n\nshell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/job/pending\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n[ \n  \"87728\" \n]\nshell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/job/87728/cancel\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : true \n}\nshell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/job/pending\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n[ \n  \"87728\" \n]\n
\n\n\n\n\n", "operationId": "putJobMethod:cancel", "parameters": [ { @@ -12249,7 +12329,7 @@ }, "/_api/job/{type}": { "delete": { - "description": "\n\nDeletes either all job results, expired job results, or the result of a\nspecific job.\nClients can use this method to perform an eventual garbage collection of job\nresults.\n\n\n\n\n**Example:**\n Deleting all jobs:\n\n
shell> curl -X PUT --header 'x-arango-async: store' --header 'accept: application/json' --dump - http://localhost:8529/_api/version\n\nHTTP/1.1 Accepted\ncontent-type: text/plain; charset=utf-8\nx-arango-async-id: 132240\nx-content-type-options: nosniff\n\nshell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/job/all\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : true \n}\n
\n\n\n\n\n**Example:**\n Deleting expired jobs:\n\n
shell> curl -X PUT --header 'x-arango-async: store' --header 'accept: application/json' --dump - http://localhost:8529/_api/version\n\nHTTP/1.1 Accepted\ncontent-type: text/plain; charset=utf-8\nx-arango-async-id: 132242\nx-content-type-options: nosniff\n\nshell> curl --header 'accept: application/json' --dump - http://localhost:8529/_admin/time\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"time\" : 1560455726.4712806 \n}\nshell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/job/expired?stamp=1560455726.4712806\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : true \n}\nshell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/job/pending\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n[ ]\n
\n\n\n\n\n**Example:**\n Deleting the result of a specific job:\n\n
shell> curl -X PUT --header 'x-arango-async: store' --header 'accept: application/json' --dump - http://localhost:8529/_api/version\n\nHTTP/1.1 Accepted\ncontent-type: text/plain; charset=utf-8\nx-arango-async-id: 132244\nx-content-type-options: nosniff\n\nshell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/job/132244\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : true \n}\n
\n\n\n\n\n**Example:**\n Deleting the result of a non-existing job:\n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/job/AreYouThere\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"not found\", \n  \"errorNum\" : 404 \n}\n
\n\n\n\n\n", + "description": "\n\nDeletes either all job results, expired job results, or the result of a\nspecific job.\nClients can use this method to perform an eventual garbage collection of job\nresults.\n\n\n\n\n**Example:**\n Deleting all jobs:\n\n
shell> curl -X PUT --header 'x-arango-async: store' --header 'accept: application/json' --dump - http://localhost:8529/_api/version\n\nHTTP/1.1 Accepted\ncontent-type: text/plain; charset=utf-8\nx-arango-async-id: 87731\nx-content-type-options: nosniff\n\nshell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/job/all\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : true \n}\n
\n\n\n\n\n**Example:**\n Deleting expired jobs:\n\n
shell> curl -X PUT --header 'x-arango-async: store' --header 'accept: application/json' --dump - http://localhost:8529/_api/version\n\nHTTP/1.1 Accepted\ncontent-type: text/plain; charset=utf-8\nx-arango-async-id: 87733\nx-content-type-options: nosniff\n\nshell> curl --header 'accept: application/json' --dump - http://localhost:8529/_admin/time\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"time\" : 1564484142.2643178 \n}\nshell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/job/expired?stamp=1564484142.2643178\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : true \n}\nshell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/job/pending\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n[ ]\n
\n\n\n\n\n**Example:**\n Deleting the result of a specific job:\n\n
shell> curl -X PUT --header 'x-arango-async: store' --header 'accept: application/json' --dump - http://localhost:8529/_api/version\n\nHTTP/1.1 Accepted\ncontent-type: text/plain; charset=utf-8\nx-arango-async-id: 87735\nx-content-type-options: nosniff\n\nshell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/job/87735\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : true \n}\n
\n\n\n\n\n**Example:**\n Deleting the result of a non-existing job:\n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/job/AreYouThere\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"not found\", \n  \"errorNum\" : 404 \n}\n
\n\n\n\n\n", "operationId": "deleteJob:byType", "parameters": [ { @@ -12288,7 +12368,7 @@ "x-hints": "" }, "get": { - "description": "\n\nReturns the list of ids of async jobs with a specific status (either done or\npending).\nThe list can be used by the client to get an overview of the job system\nstatus and\nto retrieve completed job results later.\n\n\n\n\n**Example:**\n Fetching the list of done jobs:\n\n
shell> curl -X PUT --header 'x-arango-async: store' --header 'accept: application/json' --dump - http://localhost:8529/_api/version\n\nHTTP/1.1 Accepted\ncontent-type: text/plain; charset=utf-8\nx-arango-async-id: 132253\nx-content-type-options: nosniff\n\nshell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/job/done\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n[ \n  \"132253\" \n]\n
\n\n\n\n\n**Example:**\n Fetching the list of pending jobs:\n\n
shell> curl -X PUT --header 'x-arango-async: store' --header 'accept: application/json' --dump - http://localhost:8529/_api/version\n\nHTTP/1.1 Accepted\ncontent-type: text/plain; charset=utf-8\nx-arango-async-id: 132255\nx-content-type-options: nosniff\n\nshell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/job/pending\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n[ ]\n
\n\n\n\n\n**Example:**\n Querying the status of a pending job:\n(we create a sleep job therefore...)\n\n
shell> curl -X POST --header 'x-arango-async: store' --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/transaction <<EOF\n{ \n  \"collections\" : { \n    \"read\" : [ \n      \"_frontend\" \n    ] \n  }, \n  \"action\" : \"function () {require('internal').sleep(15.0);}\" \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: text/plain; charset=utf-8\nx-arango-async-id: 132257\nx-content-type-options: nosniff\n\nshell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/job/pending\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n[ ]\nshell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/job/132257\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : true \n}\n
\n\n\n\n\n", + "description": "\n\nReturns the list of ids of async jobs with a specific status (either done or\npending).\nThe list can be used by the client to get an overview of the job system\nstatus and\nto retrieve completed job results later.\n\n\n\n\n**Example:**\n Fetching the list of done jobs:\n\n
shell> curl -X PUT --header 'x-arango-async: store' --header 'accept: application/json' --dump - http://localhost:8529/_api/version\n\nHTTP/1.1 Accepted\ncontent-type: text/plain; charset=utf-8\nx-arango-async-id: 87744\nx-content-type-options: nosniff\n\nshell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/job/done\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n[ \n  \"87744\" \n]\n
\n\n\n\n\n**Example:**\n Fetching the list of pending jobs:\n\n
shell> curl -X PUT --header 'x-arango-async: store' --header 'accept: application/json' --dump - http://localhost:8529/_api/version\n\nHTTP/1.1 Accepted\ncontent-type: text/plain; charset=utf-8\nx-arango-async-id: 87746\nx-content-type-options: nosniff\n\nshell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/job/pending\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n[ ]\n
\n\n\n\n\n**Example:**\n Querying the status of a pending job:\n(we create a sleep job therefore...)\n\n
shell> curl -X POST --header 'x-arango-async: store' --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/transaction <<EOF\n{ \n  \"collections\" : { \n    \"read\" : [ \n      \"_frontend\" \n    ] \n  }, \n  \"action\" : \"function () {require('internal').sleep(15.0);}\" \n}\nEOF\n\nHTTP/1.1 Accepted\ncontent-type: text/plain; charset=utf-8\nx-arango-async-id: 87748\nx-content-type-options: nosniff\n\nshell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/job/pending\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n[ ]\nshell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/job/87748\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : true \n}\n
\n\n\n\n\n", "operationId": "getJob", "parameters": [ { @@ -12665,7 +12745,7 @@ }, "/_api/replication/applier-start": { "put": { - "description": "\n\nStarts the replication applier. This will return immediately if the\nreplication applier is already running.\n\nIf the replication applier is not already running, the applier configuration\nwill be checked, and if it is complete, the applier will be started in a\nbackground thread. This means that even if the applier will encounter any\nerrors while running, they will not be reported in the response to this\nmethod.\n\nTo detect replication applier errors after the applier was started, use the\n*/_api/replication/applier-state* API instead.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/applier-start\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"state\" : { \n    \"started\" : \"2019-06-13T19:55:03Z\", \n    \"running\" : true, \n    \"phase\" : \"running\", \n    \"lastAppliedContinuousTick\" : null, \n    \"lastProcessedContinuousTick\" : null, \n    \"lastAvailableContinuousTick\" : null, \n    \"safeResumeTick\" : null, \n    \"ticksBehind\" : 0, \n    \"progress\" : { \n      \"time\" : \"2019-06-13T19:54:40Z\", \n      \"message\" : \"applier initially created for database '_system'\", \n      \"failedConnects\" : 0 \n    }, \n    \"totalRequests\" : 0, \n    \"totalFailedConnects\" : 0, \n    \"totalEvents\" : 0, \n    \"totalDocuments\" : 0, \n    \"totalRemovals\" : 0, \n    \"totalResyncs\" : 0, \n    \"totalOperationsExcluded\" : 0, \n    \"totalApplyTime\" : 0, \n    \"averageApplyTime\" : 0, \n    \"totalFetchTime\" : 0, \n    \"averageFetchTime\" : 0, \n    \"lastError\" : { \n      \"errorNum\" : 0 \n    }, \n    \"time\" : \"2019-06-13T19:55:03Z\" \n  }, \n  \"server\" : { \n    \"version\" : \"3.5.0-rc.4\", \n    \"serverId\" : \"143933161180954\" \n  }, \n  \"endpoint\" : \"tcp://127.0.0.1:8529\", \n  \"database\" : \"_system\" \n}\n
\n\n\n\n\n", + "description": "\n\nStarts the replication applier. This will return immediately if the\nreplication applier is already running.\n\nIf the replication applier is not already running, the applier configuration\nwill be checked, and if it is complete, the applier will be started in a\nbackground thread. This means that even if the applier will encounter any\nerrors while running, they will not be reported in the response to this\nmethod.\n\nTo detect replication applier errors after the applier was started, use the\n*/_api/replication/applier-state* API instead.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/applier-start\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"state\" : { \n    \"started\" : \"\", \n    \"running\" : true, \n    \"phase\" : \"running\", \n    \"lastAppliedContinuousTick\" : null, \n    \"lastProcessedContinuousTick\" : null, \n    \"lastAvailableContinuousTick\" : null, \n    \"safeResumeTick\" : null, \n    \"ticksBehind\" : 0, \n    \"progress\" : { \n      \"time\" : \"2019-07-30T10:55:18Z\", \n      \"message\" : \"applier initially created for database '_system'\", \n      \"failedConnects\" : 0 \n    }, \n    \"totalRequests\" : 0, \n    \"totalFailedConnects\" : 0, \n    \"totalEvents\" : 0, \n    \"totalDocuments\" : 0, \n    \"totalRemovals\" : 0, \n    \"totalResyncs\" : 0, \n    \"totalOperationsExcluded\" : 0, \n    \"totalApplyTime\" : 0, \n    \"averageApplyTime\" : 0, \n    \"totalFetchTime\" : 0, \n    \"averageFetchTime\" : 0, \n    \"lastError\" : { \n      \"errorNum\" : 0 \n    }, \n    \"time\" : \"2019-07-30T10:55:33Z\" \n  }, \n  \"server\" : { \n    \"version\" : \"3.5.0-rc.6\", \n    \"serverId\" : \"37711201448161\" \n  }, \n  \"endpoint\" : \"tcp://127.0.0.1:8529\", \n  \"database\" : \"_system\" \n}\n
\n\n\n\n\n", "operationId": "handleCommandApplierStart", "parameters": [ { @@ -12701,7 +12781,7 @@ }, "/_api/replication/applier-state": { "get": { - "description": "\n\nReturns the state of the replication applier, regardless of whether the\napplier is currently running or not.\n\nThe response is a JSON object with the following attributes:\n\n- *state*: a JSON object with the following sub-attributes:\n\n - *running*: whether or not the applier is active and running\n\n - *lastAppliedContinuousTick*: the last tick value from the continuous\n replication log the applier has applied.\n\n - *lastProcessedContinuousTick*: the last tick value from the continuous\n replication log the applier has processed.\n\n Regularly, the last applied and last processed tick values should be\n identical. For transactional operations, the replication applier will first\n process incoming log events before applying them, so the processed tick\n value might be higher than the applied tick value. This will be the case\n until the applier encounters the *transaction commit* log event for the\n transaction.\n\n - *lastAvailableContinuousTick*: the last tick value the remote server can\n provide, for all databases.\n\n - *ticksBehind*: this attribute will be present only if the applier is currently\n running. It will provide the number of log ticks between what the applier\n has applied/seen and the last log tick value provided by the remote server.\n If this value is zero, then both servers are in sync. If this is non-zero,\n then the remote server has additional data that the applier has not yet\n fetched and processed, or the remote server may have more data that is not\n applicable to the applier.\n\n Client applications can use it to determine approximately how far the applier\n is behind the remote server, and can periodically check if the value is \n increasing (applier is falling behind) or decreasing (applier is catching up).\n \n Please note that as the remote server will only keep one last log tick value \n for all of its databases, but replication may be restricted to just certain \n databases on the applier, this value is more meaningful when the global applier \n is used.\n Additionally, the last log tick provided by the remote server may increase\n due to writes into system collections that are not replicated due to replication\n configuration. So the reported value may exaggerate the reality a bit for\n some scenarios. \n\n - *time*: the time on the applier server.\n\n - *totalRequests*: the total number of requests the applier has made to the\n endpoint.\n\n - *totalFailedConnects*: the total number of failed connection attempts the\n applier has made.\n\n - *totalEvents*: the total number of log events the applier has processed.\n\n - *totalOperationsExcluded*: the total number of log events excluded because\n of *restrictCollections*.\n\n - *progress*: a JSON object with details about the replication applier progress.\n It contains the following sub-attributes if there is progress to report:\n\n - *message*: a textual description of the progress\n\n - *time*: the date and time the progress was logged\n\n - *failedConnects*: the current number of failed connection attempts\n\n - *lastError*: a JSON object with details about the last error that happened on\n the applier. It contains the following sub-attributes if there was an error:\n\n - *errorNum*: a numerical error code\n\n - *errorMessage*: a textual error description\n\n - *time*: the date and time the error occurred\n\n In case no error has occurred, *lastError* will be empty.\n\n- *server*: a JSON object with the following sub-attributes:\n\n - *version*: the applier server's version\n\n - *serverId*: the applier server's id\n\n- *endpoint*: the endpoint the applier is connected to (if applier is\n active) or will connect to (if applier is currently inactive)\n\n- *database*: the name of the database the applier is connected to (if applier is\n active) or will connect to (if applier is currently inactive)\n\nPlease note that all \"tick\" values returned do not have a specific unit. Tick\nvalues are only meaningful when compared to each other. Higher tick values mean\n\"later in time\" than lower tick values.\n\n\n\n**Example:**\n Fetching the state of an inactive applier:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/applier-state\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"state\" : { \n    \"started\" : \"2019-06-13T19:55:03Z\", \n    \"running\" : false, \n    \"phase\" : \"inactive\", \n    \"lastAppliedContinuousTick\" : null, \n    \"lastProcessedContinuousTick\" : null, \n    \"lastAvailableContinuousTick\" : null, \n    \"safeResumeTick\" : null, \n    \"progress\" : { \n      \"time\" : \"2019-06-13T19:55:03Z\", \n      \"message\" : \"applier shut down\", \n      \"failedConnects\" : 1 \n    }, \n    \"totalRequests\" : 2, \n    \"totalFailedConnects\" : 1, \n    \"totalEvents\" : 0, \n    \"totalDocuments\" : 0, \n    \"totalRemovals\" : 0, \n    \"totalResyncs\" : 0, \n    \"totalOperationsExcluded\" : 0, \n    \"totalApplyTime\" : 0, \n    \"averageApplyTime\" : 0, \n    \"totalFetchTime\" : 0, \n    \"averageFetchTime\" : 0, \n    \"lastError\" : { \n      \"errorNum\" : 0 \n    }, \n    \"time\" : \"2019-06-13T19:55:03Z\" \n  }, \n  \"server\" : { \n    \"version\" : \"3.5.0-rc.4\", \n    \"serverId\" : \"143933161180954\" \n  }, \n  \"endpoint\" : \"tcp://127.0.0.1:8529\", \n  \"database\" : \"_system\" \n}\n
\n\n\n\n\n**Example:**\n Fetching the state of an active applier:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/applier-state\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"state\" : { \n    \"started\" : \"2019-06-13T19:55:03Z\", \n    \"running\" : true, \n    \"phase\" : \"running\", \n    \"lastAppliedContinuousTick\" : null, \n    \"lastProcessedContinuousTick\" : null, \n    \"lastAvailableContinuousTick\" : null, \n    \"safeResumeTick\" : null, \n    \"ticksBehind\" : 0, \n    \"progress\" : { \n      \"time\" : \"2019-06-13T19:55:03Z\", \n      \"message\" : \"fetching master state information\", \n      \"failedConnects\" : 0 \n    }, \n    \"totalRequests\" : 2, \n    \"totalFailedConnects\" : 1, \n    \"totalEvents\" : 0, \n    \"totalDocuments\" : 0, \n    \"totalRemovals\" : 0, \n    \"totalResyncs\" : 0, \n    \"totalOperationsExcluded\" : 0, \n    \"totalApplyTime\" : 0, \n    \"averageApplyTime\" : 0, \n    \"totalFetchTime\" : 0, \n    \"averageFetchTime\" : 0, \n    \"lastError\" : { \n      \"errorNum\" : 0 \n    }, \n    \"time\" : \"2019-06-13T19:55:03Z\" \n  }, \n  \"server\" : { \n    \"version\" : \"3.5.0-rc.4\", \n    \"serverId\" : \"143933161180954\" \n  }, \n  \"endpoint\" : \"tcp://127.0.0.1:8529\", \n  \"database\" : \"_system\" \n}\n
\n\n\n\n\n", + "description": "\n\nReturns the state of the replication applier, regardless of whether the\napplier is currently running or not.\n\nThe response is a JSON object with the following attributes:\n\n- *state*: a JSON object with the following sub-attributes:\n\n - *running*: whether or not the applier is active and running\n\n - *lastAppliedContinuousTick*: the last tick value from the continuous\n replication log the applier has applied.\n\n - *lastProcessedContinuousTick*: the last tick value from the continuous\n replication log the applier has processed.\n\n Regularly, the last applied and last processed tick values should be\n identical. For transactional operations, the replication applier will first\n process incoming log events before applying them, so the processed tick\n value might be higher than the applied tick value. This will be the case\n until the applier encounters the *transaction commit* log event for the\n transaction.\n\n - *lastAvailableContinuousTick*: the last tick value the remote server can\n provide, for all databases.\n\n - *ticksBehind*: this attribute will be present only if the applier is currently\n running. It will provide the number of log ticks between what the applier\n has applied/seen and the last log tick value provided by the remote server.\n If this value is zero, then both servers are in sync. If this is non-zero,\n then the remote server has additional data that the applier has not yet\n fetched and processed, or the remote server may have more data that is not\n applicable to the applier.\n\n Client applications can use it to determine approximately how far the applier\n is behind the remote server, and can periodically check if the value is \n increasing (applier is falling behind) or decreasing (applier is catching up).\n \n Please note that as the remote server will only keep one last log tick value \n for all of its databases, but replication may be restricted to just certain \n databases on the applier, this value is more meaningful when the global applier \n is used.\n Additionally, the last log tick provided by the remote server may increase\n due to writes into system collections that are not replicated due to replication\n configuration. So the reported value may exaggerate the reality a bit for\n some scenarios. \n\n - *time*: the time on the applier server.\n\n - *totalRequests*: the total number of requests the applier has made to the\n endpoint.\n\n - *totalFailedConnects*: the total number of failed connection attempts the\n applier has made.\n\n - *totalEvents*: the total number of log events the applier has processed.\n\n - *totalOperationsExcluded*: the total number of log events excluded because\n of *restrictCollections*.\n\n - *progress*: a JSON object with details about the replication applier progress.\n It contains the following sub-attributes if there is progress to report:\n\n - *message*: a textual description of the progress\n\n - *time*: the date and time the progress was logged\n\n - *failedConnects*: the current number of failed connection attempts\n\n - *lastError*: a JSON object with details about the last error that happened on\n the applier. It contains the following sub-attributes if there was an error:\n\n - *errorNum*: a numerical error code\n\n - *errorMessage*: a textual error description\n\n - *time*: the date and time the error occurred\n\n In case no error has occurred, *lastError* will be empty.\n\n- *server*: a JSON object with the following sub-attributes:\n\n - *version*: the applier server's version\n\n - *serverId*: the applier server's id\n\n- *endpoint*: the endpoint the applier is connected to (if applier is\n active) or will connect to (if applier is currently inactive)\n\n- *database*: the name of the database the applier is connected to (if applier is\n active) or will connect to (if applier is currently inactive)\n\nPlease note that all \"tick\" values returned do not have a specific unit. Tick\nvalues are only meaningful when compared to each other. Higher tick values mean\n\"later in time\" than lower tick values.\n\n\n\n**Example:**\n Fetching the state of an inactive applier:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/applier-state\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"state\" : { \n    \"started\" : \"2019-07-30T10:55:33Z\", \n    \"running\" : false, \n    \"phase\" : \"inactive\", \n    \"lastAppliedContinuousTick\" : null, \n    \"lastProcessedContinuousTick\" : null, \n    \"lastAvailableContinuousTick\" : null, \n    \"safeResumeTick\" : null, \n    \"progress\" : { \n      \"time\" : \"2019-07-30T10:55:33Z\", \n      \"message\" : \"applier shut down\", \n      \"failedConnects\" : 0 \n    }, \n    \"totalRequests\" : 1, \n    \"totalFailedConnects\" : 0, \n    \"totalEvents\" : 0, \n    \"totalDocuments\" : 0, \n    \"totalRemovals\" : 0, \n    \"totalResyncs\" : 0, \n    \"totalOperationsExcluded\" : 0, \n    \"totalApplyTime\" : 0, \n    \"averageApplyTime\" : 0, \n    \"totalFetchTime\" : 0, \n    \"averageFetchTime\" : 0, \n    \"lastError\" : { \n      \"errorNum\" : 0 \n    }, \n    \"time\" : \"2019-07-30T10:55:34Z\" \n  }, \n  \"server\" : { \n    \"version\" : \"3.5.0-rc.6\", \n    \"serverId\" : \"37711201448161\" \n  }, \n  \"endpoint\" : \"tcp://127.0.0.1:8529\", \n  \"database\" : \"_system\" \n}\n
\n\n\n\n\n**Example:**\n Fetching the state of an active applier:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/applier-state\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"state\" : { \n    \"started\" : \"2019-07-30T10:55:33Z\", \n    \"running\" : true, \n    \"phase\" : \"running\", \n    \"lastAppliedContinuousTick\" : null, \n    \"lastProcessedContinuousTick\" : null, \n    \"lastAvailableContinuousTick\" : null, \n    \"safeResumeTick\" : null, \n    \"ticksBehind\" : 0, \n    \"progress\" : { \n      \"time\" : \"2019-07-30T10:55:34Z\", \n      \"message\" : \"fetching master state information\", \n      \"failedConnects\" : 0 \n    }, \n    \"totalRequests\" : 1, \n    \"totalFailedConnects\" : 0, \n    \"totalEvents\" : 0, \n    \"totalDocuments\" : 0, \n    \"totalRemovals\" : 0, \n    \"totalResyncs\" : 0, \n    \"totalOperationsExcluded\" : 0, \n    \"totalApplyTime\" : 0, \n    \"averageApplyTime\" : 0, \n    \"totalFetchTime\" : 0, \n    \"averageFetchTime\" : 0, \n    \"lastError\" : { \n      \"errorNum\" : 0 \n    }, \n    \"time\" : \"2019-07-30T10:55:34Z\" \n  }, \n  \"server\" : { \n    \"version\" : \"3.5.0-rc.6\", \n    \"serverId\" : \"37711201448161\" \n  }, \n  \"endpoint\" : \"tcp://127.0.0.1:8529\", \n  \"database\" : \"_system\" \n}\n
\n\n\n\n\n", "operationId": "handleCommandApplierGetState", "parameters": [], "responses": { @@ -12726,7 +12806,7 @@ }, "/_api/replication/applier-stop": { "put": { - "description": "\n\nStops the replication applier. This will return immediately if the\nreplication applier is not running.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/applier-stop\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"state\" : { \n    \"started\" : \"2019-06-13T19:55:03Z\", \n    \"running\" : false, \n    \"phase\" : \"inactive\", \n    \"lastAppliedContinuousTick\" : null, \n    \"lastProcessedContinuousTick\" : null, \n    \"lastAvailableContinuousTick\" : null, \n    \"safeResumeTick\" : null, \n    \"progress\" : { \n      \"time\" : \"2019-06-13T19:55:04Z\", \n      \"message\" : \"applier shut down\", \n      \"failedConnects\" : 0 \n    }, \n    \"totalRequests\" : 6, \n    \"totalFailedConnects\" : 3, \n    \"totalEvents\" : 0, \n    \"totalDocuments\" : 0, \n    \"totalRemovals\" : 0, \n    \"totalResyncs\" : 0, \n    \"totalOperationsExcluded\" : 0, \n    \"totalApplyTime\" : 0, \n    \"averageApplyTime\" : 0, \n    \"totalFetchTime\" : 0, \n    \"averageFetchTime\" : 0, \n    \"lastError\" : { \n      \"errorNum\" : 0 \n    }, \n    \"time\" : \"2019-06-13T19:55:04Z\" \n  }, \n  \"server\" : { \n    \"version\" : \"3.5.0-rc.4\", \n    \"serverId\" : \"143933161180954\" \n  }, \n  \"endpoint\" : \"tcp://127.0.0.1:8529\", \n  \"database\" : \"_system\" \n}\n
\n\n\n\n\n", + "description": "\n\nStops the replication applier. This will return immediately if the\nreplication applier is not running.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/applier-stop\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"state\" : { \n    \"started\" : \"2019-07-30T10:55:33Z\", \n    \"running\" : false, \n    \"phase\" : \"inactive\", \n    \"lastAppliedContinuousTick\" : null, \n    \"lastProcessedContinuousTick\" : null, \n    \"lastAvailableContinuousTick\" : null, \n    \"safeResumeTick\" : null, \n    \"progress\" : { \n      \"time\" : \"2019-07-30T10:55:34Z\", \n      \"message\" : \"applier shut down\", \n      \"failedConnects\" : 0 \n    }, \n    \"totalRequests\" : 4, \n    \"totalFailedConnects\" : 1, \n    \"totalEvents\" : 0, \n    \"totalDocuments\" : 0, \n    \"totalRemovals\" : 0, \n    \"totalResyncs\" : 0, \n    \"totalOperationsExcluded\" : 0, \n    \"totalApplyTime\" : 0, \n    \"averageApplyTime\" : 0, \n    \"totalFetchTime\" : 0, \n    \"averageFetchTime\" : 0, \n    \"lastError\" : { \n      \"errorNum\" : 0 \n    }, \n    \"time\" : \"2019-07-30T10:55:34Z\" \n  }, \n  \"server\" : { \n    \"version\" : \"3.5.0-rc.6\", \n    \"serverId\" : \"37711201448161\" \n  }, \n  \"endpoint\" : \"tcp://127.0.0.1:8529\", \n  \"database\" : \"_system\" \n}\n
\n\n\n\n\n", "operationId": "handleCommandApplierStop", "parameters": [], "responses": { @@ -12894,7 +12974,7 @@ }, "/_api/replication/dump": { "get": { - "description": "\n\nReturns the data from the collection for the requested range.\n\nWhen the *from* query parameter is not used, collection events are returned from\nthe beginning. When the *from* parameter is used, the result will only contain\ncollection entries which have higher tick values than the specified *from* value\n(note: the log entry with a tick value equal to *from* will be excluded).\n\nThe *to* query parameter can be used to optionally restrict the upper bound of\nthe result to a certain tick value. If used, the result will only contain\ncollection entries with tick values up to (including) *to*.\n\nThe *chunkSize* query parameter can be used to control the size of the result.\nIt must be specified in bytes. The *chunkSize* value will only be honored\napproximately. Otherwise a too low *chunkSize* value could cause the server\nto not be able to put just one entry into the result and return it.\nTherefore, the *chunkSize* value will only be consulted after an entry has\nbeen written into the result. If the result size is then bigger than\n*chunkSize*, the server will respond with as many entries as there are\nin the response already. If the result size is still smaller than *chunkSize*,\nthe server will try to return more data if there's more data left to return.\n\nIf *chunkSize* is not specified, some server-side default value will be used.\n\nThe *Content-Type* of the result is *application/x-arango-dump*. This is an\neasy-to-process format, with all entries going onto separate lines in the\nresponse body.\n\nEach line itself is a JSON object, with at least the following attributes:\n\n- *tick*: the operation's tick attribute\n\n- *key*: the key of the document/edge or the key used in the deletion operation\n\n- *rev*: the revision id of the document/edge or the deletion operation\n\n- *data*: the actual document/edge data for types 2300 and 2301. The full\n document/edge data will be returned even for updates.\n\n- *type*: the type of entry. Possible values for *type* are:\n\n - 2300: document insertion/update\n\n - 2301: edge insertion/update\n\n - 2302: document/edge deletion\n\n**Note**: there will be no distinction between inserts and updates when calling this method.\n\n\n\n\n**Example:**\n Empty collection:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/dump?collection=testCollection\n\nHTTP/1.1 No Content\ncontent-type: application/x-arango-dump; charset=utf-8\nx-arango-replication-checkmore: false\nx-arango-replication-lastincluded: 0\nx-content-type-options: nosniff\n\n
\n\n\n\n\n**Example:**\n Non-empty collection *(One JSON document per line)*:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/dump?collection=testCollection\n\nHTTP/1.1 OK\ncontent-type: application/x-arango-dump; charset=utf-8\nx-arango-replication-checkmore: false\nx-arango-replication-lastincluded: 105376\nx-content-type-options: nosniff\n\n{ \n  \"tick\" : \"105370\", \n  \"type\" : 2300, \n  \"data\" : { \n    \"_key\" : \"123456\", \n    \"_id\" : \"testCollection/123456\", \n    \"_rev\" : \"_YzHmaF6--_\", \n    \"b\" : 1, \n    \"c\" : false, \n    \"d\" : \"additional value\" \n  } \n}↩\n{ \n  \"tick\" : \"105374\", \n  \"type\" : 2302, \n  \"data\" : { \n    \"_key\" : \"foobar\", \n    \"_rev\" : \"_YzHmaG---_\" \n  } \n}↩\n{ \n  \"tick\" : \"105376\", \n  \"type\" : 2302, \n  \"data\" : { \n    \"_key\" : \"abcdef\", \n    \"_rev\" : \"_YzHmaG---B\" \n  } \n}↩\n
\n\n\n\n\n", + "description": "\n\nReturns the data from the collection for the requested range.\n\nWhen the *from* query parameter is not used, collection events are returned from\nthe beginning. When the *from* parameter is used, the result will only contain\ncollection entries which have higher tick values than the specified *from* value\n(note: the log entry with a tick value equal to *from* will be excluded).\n\nThe *to* query parameter can be used to optionally restrict the upper bound of\nthe result to a certain tick value. If used, the result will only contain\ncollection entries with tick values up to (including) *to*.\n\nThe *chunkSize* query parameter can be used to control the size of the result.\nIt must be specified in bytes. The *chunkSize* value will only be honored\napproximately. Otherwise a too low *chunkSize* value could cause the server\nto not be able to put just one entry into the result and return it.\nTherefore, the *chunkSize* value will only be consulted after an entry has\nbeen written into the result. If the result size is then bigger than\n*chunkSize*, the server will respond with as many entries as there are\nin the response already. If the result size is still smaller than *chunkSize*,\nthe server will try to return more data if there's more data left to return.\n\nIf *chunkSize* is not specified, some server-side default value will be used.\n\nThe *Content-Type* of the result is *application/x-arango-dump*. This is an\neasy-to-process format, with all entries going onto separate lines in the\nresponse body.\n\nEach line itself is a JSON object, with at least the following attributes:\n\n- *tick*: the operation's tick attribute\n\n- *key*: the key of the document/edge or the key used in the deletion operation\n\n- *rev*: the revision id of the document/edge or the deletion operation\n\n- *data*: the actual document/edge data for types 2300 and 2301. The full\n document/edge data will be returned even for updates.\n\n- *type*: the type of entry. Possible values for *type* are:\n\n - 2300: document insertion/update\n\n - 2301: edge insertion/update\n\n - 2302: document/edge deletion\n\n**Note**: there will be no distinction between inserts and updates when calling this method.\n\n\n\n\n**Example:**\n Empty collection:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/dump?collection=testCollection\n\nHTTP/1.1 No Content\ncontent-type: application/x-arango-dump; charset=utf-8\nx-arango-replication-checkmore: false\nx-arango-replication-lastincluded: 0\nx-content-type-options: nosniff\n\n
\n\n\n\n\n**Example:**\n Non-empty collection *(One JSON document per line)*:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/dump?collection=testCollection\n\nHTTP/1.1 OK\ncontent-type: application/x-arango-dump; charset=utf-8\nx-arango-replication-checkmore: false\nx-arango-replication-lastincluded: 203\nx-content-type-options: nosniff\n\n{ \n  \"tick\" : \"197\", \n  \"type\" : 2300, \n  \"data\" : { \n    \"_key\" : \"123456\", \n    \"_id\" : \"testCollection/123456\", \n    \"_rev\" : \"_ZCIDBTi--_\", \n    \"b\" : 1, \n    \"c\" : false, \n    \"d\" : \"additional value\" \n  } \n}↩\n{ \n  \"tick\" : \"201\", \n  \"type\" : 2302, \n  \"data\" : { \n    \"_key\" : \"foobar\", \n    \"_rev\" : \"_ZCIDBTm--_\" \n  } \n}↩\n{ \n  \"tick\" : \"203\", \n  \"type\" : 2302, \n  \"data\" : { \n    \"_key\" : \"abcdef\", \n    \"_rev\" : \"_ZCIDBTm--B\" \n  } \n}↩\n
\n\n\n\n\n", "operationId": "handleCommandDump", "parameters": [ { @@ -12985,7 +13065,7 @@ }, "/_api/replication/inventory": { "get": { - "description": "\n\nReturns the array of collections and indexes available on the server. This\narray can be used by replication clients to initiate an initial sync with the\nserver.\n\nThe response will contain a JSON object with the *collection* and *state* and\n*tick* attributes.\n\n*collections* is an array of collections with the following sub-attributes:\n\n- *parameters*: the collection properties\n\n- *indexes*: an array of the indexes of a the collection. Primary indexes and edge indexes\n are not included in this array.\n\nThe *state* attribute contains the current state of the replication logger. It\ncontains the following sub-attributes:\n\n- *running*: whether or not the replication logger is currently active. Note:\n since ArangoDB 2.2, the value will always be *true*\n\n- *lastLogTick*: the value of the last tick the replication logger has written\n\n- *time*: the current time on the server\n\nReplication clients should note the *lastLogTick* value returned. They can then\nfetch collections' data using the dump method up to the value of lastLogTick, and\nquery the continuous replication log for log events after this tick value.\n\nTo create a full copy of the collections on the server, a replication client\ncan execute these steps:\n\n- call the */inventory* API method. This returns the *lastLogTick* value and the\n array of collections and indexes from the server.\n\n- for each collection returned by */inventory*, create the collection locally and\n call */dump* to stream the collection data to the client, up to the value of\n *lastLogTick*.\n After that, the client can create the indexes on the collections as they were\n reported by */inventory*.\n\nIf the clients wants to continuously stream replication log events from the logger\nserver, the following additional steps need to be carried out:\n\n- the client should call */logger-follow* initially to fetch the first batch of\n replication events that were logged after the client's call to */inventory*.\n\n The call to */logger-follow* should use a *from* parameter with the value of the\n *lastLogTick* as reported by */inventory*. The call to */logger-follow* will return the\n *x-arango-replication-lastincluded* which will contain the last tick value included\n in the response.\n\n- the client can then continuously call */logger-follow* to incrementally fetch new\n replication events that occurred after the last transfer.\n\n Calls should use a *from* parameter with the value of the *x-arango-replication-lastincluded*\n header of the previous response. If there are no more replication events, the\n response will be empty and clients can go to sleep for a while and try again\n later.\n\n**Note**: on a coordinator, this request must have the query parameter\n*DBserver* which must be an ID of a DBserver.\nThe very same request is forwarded synchronously to that DBserver.\nIt is an error if this attribute is not bound in the coordinator case.\n\n**Note:**: Using the `global` parameter the top-level object contains a key `databases`\nunder which each key represents a datbase name, and the value conforms to the above describtion.\n\n\n\n\n**Example:**\n \n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/inventory\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"collections\" : [ \n    { \n      \"indexes\" : [ ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"34\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"_analyzers\", \n        \"id\" : \"34\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : true, \n        \"isVolatile\" : false, \n        \"journalSize\" : 1048576, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 103137 \n        }, \n        \"name\" : \"_analyzers\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"34\", \n        \"replicationFactor\" : 2, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"32\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"_appbundles\", \n        \"id\" : \"32\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : true, \n        \"isVolatile\" : false, \n        \"journalSize\" : 1048576, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 0 \n        }, \n        \"name\" : \"_appbundles\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"32\", \n        \"replicationFactor\" : 2, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ \n        { \n          \"id\" : \"29\", \n          \"type\" : \"hash\", \n          \"name\" : \"idx_1636256376798838784\", \n          \"fields\" : [ \n            \"mount\" \n          ], \n          \"unique\" : true, \n          \"sparse\" : true, \n          \"deduplicate\" : true \n        } \n      ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"26\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"_apps\", \n        \"id\" : \"26\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : true, \n        \"isVolatile\" : false, \n        \"journalSize\" : 1048576, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 43 \n        }, \n        \"name\" : \"_apps\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"26\", \n        \"replicationFactor\" : 2, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"12\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"_aqlfunctions\", \n        \"id\" : \"12\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : true, \n        \"isVolatile\" : false, \n        \"journalSize\" : 1048576, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 0 \n        }, \n        \"name\" : \"_aqlfunctions\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"12\", \n        \"replicationFactor\" : 2, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"3\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"_graphs\", \n        \"id\" : \"3\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : true, \n        \"isVolatile\" : false, \n        \"journalSize\" : 1048576, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 0 \n        }, \n        \"name\" : \"_graphs\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"3\", \n        \"replicationFactor\" : 2, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ \n        { \n          \"id\" : \"9\", \n          \"type\" : \"hash\", \n          \"name\" : \"idx_1636256376692932608\", \n          \"fields\" : [ \n            \"user\" \n          ], \n          \"unique\" : true, \n          \"sparse\" : true, \n          \"deduplicate\" : true \n        } \n      ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"6\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"_users\", \n        \"id\" : \"6\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : true, \n        \"isVolatile\" : false, \n        \"journalSize\" : 1048576, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 105345 \n        }, \n        \"name\" : \"_users\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"6\", \n        \"replicationFactor\" : 2, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"102\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"h82E80CF18F1A/102\", \n        \"id\" : \"102\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : false, \n        \"isVolatile\" : false, \n        \"journalSize\" : 33554432, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 0 \n        }, \n        \"name\" : \"animals\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"102\", \n        \"replicationFactor\" : 1, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"93\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"h82E80CF18F1A/93\", \n        \"id\" : \"93\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : false, \n        \"isVolatile\" : false, \n        \"journalSize\" : 33554432, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 0 \n        }, \n        \"name\" : \"demo\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"93\", \n        \"replicationFactor\" : 1, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    } \n  ], \n  \"views\" : [ \n    { \n      \"globallyUniqueId\" : \"h82E80CF18F1A/108\", \n      \"id\" : \"108\", \n      \"name\" : \"demoView\", \n      \"type\" : \"arangosearch\", \n      \"cleanupIntervalStep\" : 10, \n      \"commitIntervalMsec\" : 1000, \n      \"consolidationIntervalMsec\" : 60000, \n      \"consolidationPolicy\" : { \n        \"type\" : \"tier\", \n        \"segmentsBytesFloor\" : 2097152, \n        \"segmentsBytesMax\" : 5368709120, \n        \"segmentsMax\" : 10, \n        \"segmentsMin\" : 1, \n        \"minScore\" : 0 \n      }, \n      \"primarySort\" : [ ], \n      \"writebufferActive\" : 0, \n      \"writebufferIdle\" : 64, \n      \"writebufferSizeMax\" : 33554432, \n      \"links\" : { \n      } \n    } \n  ], \n  \"state\" : { \n    \"running\" : true, \n    \"lastLogTick\" : \"105396\", \n    \"lastUncommittedLogTick\" : \"105402\", \n    \"totalEvents\" : 35398, \n    \"time\" : \"2019-06-13T19:55:07Z\" \n  }, \n  \"tick\" : \"105403\" \n}\n
\n\n\n\n\n**Example:**\n With some additional indexes:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/inventory\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"collections\" : [ \n    { \n      \"indexes\" : [ \n        { \n          \"id\" : \"105413\", \n          \"type\" : \"hash\", \n          \"name\" : \"idx_1636256403689570304\", \n          \"fields\" : [ \n            \"name\" \n          ], \n          \"unique\" : false, \n          \"sparse\" : false, \n          \"deduplicate\" : true \n        }, \n        { \n          \"id\" : \"105417\", \n          \"type\" : \"skiplist\", \n          \"name\" : \"idx_1636256403710541824\", \n          \"fields\" : [ \n            \"a\", \n            \"b\" \n          ], \n          \"unique\" : true, \n          \"sparse\" : false, \n          \"deduplicate\" : true \n        } \n      ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"105406\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"h82E80CF18F1A/105406\", \n        \"id\" : \"105406\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : false, \n        \"isVolatile\" : false, \n        \"journalSize\" : 33554432, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 0 \n        }, \n        \"name\" : \"IndexedCollection1\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"105406\", \n        \"replicationFactor\" : 1, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ \n        { \n          \"id\" : \"105427\", \n          \"type\" : \"fulltext\", \n          \"name\" : \"idx_1636256403743047680\", \n          \"fields\" : [ \n            \"text\" \n          ], \n          \"unique\" : false, \n          \"sparse\" : true, \n          \"minLength\" : 10 \n        }, \n        { \n          \"id\" : \"105431\", \n          \"type\" : \"skiplist\", \n          \"name\" : \"idx_1636256403764019200\", \n          \"fields\" : [ \n            \"a\" \n          ], \n          \"unique\" : false, \n          \"sparse\" : false, \n          \"deduplicate\" : true \n        } \n      ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"105420\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"h82E80CF18F1A/105420\", \n        \"id\" : \"105420\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : false, \n        \"isVolatile\" : false, \n        \"journalSize\" : 33554432, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 0 \n        }, \n        \"name\" : \"IndexedCollection2\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"105420\", \n        \"replicationFactor\" : 1, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"34\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"_analyzers\", \n        \"id\" : \"34\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : true, \n        \"isVolatile\" : false, \n        \"journalSize\" : 1048576, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 103137 \n        }, \n        \"name\" : \"_analyzers\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"34\", \n        \"replicationFactor\" : 2, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"32\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"_appbundles\", \n        \"id\" : \"32\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : true, \n        \"isVolatile\" : false, \n        \"journalSize\" : 1048576, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 0 \n        }, \n        \"name\" : \"_appbundles\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"32\", \n        \"replicationFactor\" : 2, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ \n        { \n          \"id\" : \"29\", \n          \"type\" : \"hash\", \n          \"name\" : \"idx_1636256376798838784\", \n          \"fields\" : [ \n            \"mount\" \n          ], \n          \"unique\" : true, \n          \"sparse\" : true, \n          \"deduplicate\" : true \n        } \n      ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"26\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"_apps\", \n        \"id\" : \"26\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : true, \n        \"isVolatile\" : false, \n        \"journalSize\" : 1048576, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 43 \n        }, \n        \"name\" : \"_apps\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"26\", \n        \"replicationFactor\" : 2, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"12\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"_aqlfunctions\", \n        \"id\" : \"12\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : true, \n        \"isVolatile\" : false, \n        \"journalSize\" : 1048576, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 0 \n        }, \n        \"name\" : \"_aqlfunctions\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"12\", \n        \"replicationFactor\" : 2, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"3\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"_graphs\", \n        \"id\" : \"3\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : true, \n        \"isVolatile\" : false, \n        \"journalSize\" : 1048576, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 0 \n        }, \n        \"name\" : \"_graphs\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"3\", \n        \"replicationFactor\" : 2, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ \n        { \n          \"id\" : \"9\", \n          \"type\" : \"hash\", \n          \"name\" : \"idx_1636256376692932608\", \n          \"fields\" : [ \n            \"user\" \n          ], \n          \"unique\" : true, \n          \"sparse\" : true, \n          \"deduplicate\" : true \n        } \n      ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"6\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"_users\", \n        \"id\" : \"6\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : true, \n        \"isVolatile\" : false, \n        \"journalSize\" : 1048576, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 105345 \n        }, \n        \"name\" : \"_users\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"6\", \n        \"replicationFactor\" : 2, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"102\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"h82E80CF18F1A/102\", \n        \"id\" : \"102\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : false, \n        \"isVolatile\" : false, \n        \"journalSize\" : 33554432, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 0 \n        }, \n        \"name\" : \"animals\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"102\", \n        \"replicationFactor\" : 1, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"93\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"h82E80CF18F1A/93\", \n        \"id\" : \"93\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : false, \n        \"isVolatile\" : false, \n        \"journalSize\" : 33554432, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 0 \n        }, \n        \"name\" : \"demo\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"93\", \n        \"replicationFactor\" : 1, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    } \n  ], \n  \"views\" : [ \n    { \n      \"globallyUniqueId\" : \"h82E80CF18F1A/108\", \n      \"id\" : \"108\", \n      \"name\" : \"demoView\", \n      \"type\" : \"arangosearch\", \n      \"cleanupIntervalStep\" : 10, \n      \"commitIntervalMsec\" : 1000, \n      \"consolidationIntervalMsec\" : 60000, \n      \"consolidationPolicy\" : { \n        \"type\" : \"tier\", \n        \"segmentsBytesFloor\" : 2097152, \n        \"segmentsBytesMax\" : 5368709120, \n        \"segmentsMax\" : 10, \n        \"segmentsMin\" : 1, \n        \"minScore\" : 0 \n      }, \n      \"primarySort\" : [ ], \n      \"writebufferActive\" : 0, \n      \"writebufferIdle\" : 64, \n      \"writebufferSizeMax\" : 33554432, \n      \"links\" : { \n      } \n    } \n  ], \n  \"state\" : { \n    \"running\" : true, \n    \"lastLogTick\" : \"105410\", \n    \"lastUncommittedLogTick\" : \"105433\", \n    \"totalEvents\" : 35406, \n    \"time\" : \"2019-06-13T19:55:07Z\" \n  }, \n  \"tick\" : \"105433\" \n}\n
\n\n\n\n\n", + "description": "\n\nReturns the array of collections and indexes available on the server. This\narray can be used by replication clients to initiate an initial sync with the\nserver.\n\nThe response will contain a JSON object with the *collection* and *state* and\n*tick* attributes.\n\n*collections* is an array of collections with the following sub-attributes:\n\n- *parameters*: the collection properties\n\n- *indexes*: an array of the indexes of a the collection. Primary indexes and edge indexes\n are not included in this array.\n\nThe *state* attribute contains the current state of the replication logger. It\ncontains the following sub-attributes:\n\n- *running*: whether or not the replication logger is currently active. Note:\n since ArangoDB 2.2, the value will always be *true*\n\n- *lastLogTick*: the value of the last tick the replication logger has written\n\n- *time*: the current time on the server\n\nReplication clients should note the *lastLogTick* value returned. They can then\nfetch collections' data using the dump method up to the value of lastLogTick, and\nquery the continuous replication log for log events after this tick value.\n\nTo create a full copy of the collections on the server, a replication client\ncan execute these steps:\n\n- call the */inventory* API method. This returns the *lastLogTick* value and the\n array of collections and indexes from the server.\n\n- for each collection returned by */inventory*, create the collection locally and\n call */dump* to stream the collection data to the client, up to the value of\n *lastLogTick*.\n After that, the client can create the indexes on the collections as they were\n reported by */inventory*.\n\nIf the clients wants to continuously stream replication log events from the logger\nserver, the following additional steps need to be carried out:\n\n- the client should call */logger-follow* initially to fetch the first batch of\n replication events that were logged after the client's call to */inventory*.\n\n The call to */logger-follow* should use a *from* parameter with the value of the\n *lastLogTick* as reported by */inventory*. The call to */logger-follow* will return the\n *x-arango-replication-lastincluded* which will contain the last tick value included\n in the response.\n\n- the client can then continuously call */logger-follow* to incrementally fetch new\n replication events that occurred after the last transfer.\n\n Calls should use a *from* parameter with the value of the *x-arango-replication-lastincluded*\n header of the previous response. If there are no more replication events, the\n response will be empty and clients can go to sleep for a while and try again\n later.\n\n**Note**: on a coordinator, this request must have the query parameter\n*DBserver* which must be an ID of a DBserver.\nThe very same request is forwarded synchronously to that DBserver.\nIt is an error if this attribute is not bound in the coordinator case.\n\n**Note:**: Using the `global` parameter the top-level object contains a key `databases`\nunder which each key represents a datbase name, and the value conforms to the above describtion.\n\n\n\n\n**Example:**\n \n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/inventory\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"collections\" : [ \n    { \n      \"indexes\" : [ ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"34\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"_analyzers\", \n        \"id\" : \"34\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : true, \n        \"isVolatile\" : false, \n        \"journalSize\" : 1048576, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 0 \n        }, \n        \"minReplicationFactor\" : 1, \n        \"name\" : \"_analyzers\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"34\", \n        \"replicationFactor\" : 2, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"32\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"_appbundles\", \n        \"id\" : \"32\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : true, \n        \"isVolatile\" : false, \n        \"journalSize\" : 1048576, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 0 \n        }, \n        \"minReplicationFactor\" : 1, \n        \"name\" : \"_appbundles\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"32\", \n        \"replicationFactor\" : 2, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ \n        { \n          \"id\" : \"29\", \n          \"type\" : \"hash\", \n          \"name\" : \"idx_1640480486207782912\", \n          \"fields\" : [ \n            \"mount\" \n          ], \n          \"unique\" : true, \n          \"sparse\" : true, \n          \"deduplicate\" : true \n        } \n      ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"26\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"_apps\", \n        \"id\" : \"26\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : true, \n        \"isVolatile\" : false, \n        \"journalSize\" : 1048576, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 43 \n        }, \n        \"minReplicationFactor\" : 1, \n        \"name\" : \"_apps\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"26\", \n        \"replicationFactor\" : 2, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"12\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"_aqlfunctions\", \n        \"id\" : \"12\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : true, \n        \"isVolatile\" : false, \n        \"journalSize\" : 1048576, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 0 \n        }, \n        \"minReplicationFactor\" : 1, \n        \"name\" : \"_aqlfunctions\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"12\", \n        \"replicationFactor\" : 2, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"3\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"_graphs\", \n        \"id\" : \"3\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : true, \n        \"isVolatile\" : false, \n        \"journalSize\" : 1048576, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 0 \n        }, \n        \"minReplicationFactor\" : 1, \n        \"name\" : \"_graphs\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"3\", \n        \"replicationFactor\" : 2, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ \n        { \n          \"id\" : \"9\", \n          \"type\" : \"hash\", \n          \"name\" : \"idx_1640480486101876736\", \n          \"fields\" : [ \n            \"user\" \n          ], \n          \"unique\" : true, \n          \"sparse\" : true, \n          \"deduplicate\" : true \n        } \n      ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"6\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"_users\", \n        \"id\" : \"6\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : true, \n        \"isVolatile\" : false, \n        \"journalSize\" : 1048576, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 60 \n        }, \n        \"minReplicationFactor\" : 1, \n        \"name\" : \"_users\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"6\", \n        \"replicationFactor\" : 2, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"102\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"h7222A8B9724E/102\", \n        \"id\" : \"102\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : false, \n        \"isVolatile\" : false, \n        \"journalSize\" : 33554432, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 0 \n        }, \n        \"minReplicationFactor\" : 1, \n        \"name\" : \"animals\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"102\", \n        \"replicationFactor\" : 1, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"93\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"h7222A8B9724E/93\", \n        \"id\" : \"93\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : false, \n        \"isVolatile\" : false, \n        \"journalSize\" : 33554432, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 0 \n        }, \n        \"minReplicationFactor\" : 1, \n        \"name\" : \"demo\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"93\", \n        \"replicationFactor\" : 1, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    } \n  ], \n  \"views\" : [ \n    { \n      \"globallyUniqueId\" : \"h7222A8B9724E/108\", \n      \"id\" : \"108\", \n      \"name\" : \"demoView\", \n      \"type\" : \"arangosearch\", \n      \"cleanupIntervalStep\" : 2, \n      \"commitIntervalMsec\" : 1000, \n      \"consolidationIntervalMsec\" : 10000, \n      \"consolidationPolicy\" : { \n        \"type\" : \"tier\", \n        \"segmentsBytesFloor\" : 2097152, \n        \"segmentsBytesMax\" : 5368709120, \n        \"segmentsMax\" : 10, \n        \"segmentsMin\" : 1, \n        \"minScore\" : 0 \n      }, \n      \"primarySort\" : [ ], \n      \"writebufferActive\" : 0, \n      \"writebufferIdle\" : 64, \n      \"writebufferSizeMax\" : 33554432, \n      \"links\" : { \n      } \n    } \n  ], \n  \"state\" : { \n    \"running\" : true, \n    \"lastLogTick\" : \"205\", \n    \"lastUncommittedLogTick\" : \"250\", \n    \"totalEvents\" : 73, \n    \"time\" : \"2019-07-30T10:55:12Z\" \n  }, \n  \"tick\" : \"251\" \n}\n
\n\n\n\n\n**Example:**\n With some additional indexes:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/inventory\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"collections\" : [ \n    { \n      \"indexes\" : [ \n        { \n          \"id\" : \"221\", \n          \"type\" : \"hash\", \n          \"name\" : \"idx_1640480493008846848\", \n          \"fields\" : [ \n            \"name\" \n          ], \n          \"unique\" : false, \n          \"sparse\" : false, \n          \"deduplicate\" : true \n        }, \n        { \n          \"id\" : \"225\", \n          \"type\" : \"skiplist\", \n          \"name\" : \"idx_1640480493029818368\", \n          \"fields\" : [ \n            \"a\", \n            \"b\" \n          ], \n          \"unique\" : true, \n          \"sparse\" : false, \n          \"deduplicate\" : true \n        } \n      ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"214\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"h7222A8B9724E/214\", \n        \"id\" : \"214\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : false, \n        \"isVolatile\" : false, \n        \"journalSize\" : 33554432, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 0 \n        }, \n        \"minReplicationFactor\" : 1, \n        \"name\" : \"IndexedCollection1\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"214\", \n        \"replicationFactor\" : 1, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ \n        { \n          \"id\" : \"235\", \n          \"type\" : \"fulltext\", \n          \"name\" : \"idx_1640480493062324224\", \n          \"fields\" : [ \n            \"text\" \n          ], \n          \"unique\" : false, \n          \"sparse\" : true, \n          \"minLength\" : 10 \n        }, \n        { \n          \"id\" : \"239\", \n          \"type\" : \"skiplist\", \n          \"name\" : \"idx_1640480493082247168\", \n          \"fields\" : [ \n            \"a\" \n          ], \n          \"unique\" : false, \n          \"sparse\" : false, \n          \"deduplicate\" : true \n        } \n      ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"228\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"h7222A8B9724E/228\", \n        \"id\" : \"228\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : false, \n        \"isVolatile\" : false, \n        \"journalSize\" : 33554432, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 0 \n        }, \n        \"minReplicationFactor\" : 1, \n        \"name\" : \"IndexedCollection2\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"228\", \n        \"replicationFactor\" : 1, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"34\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"_analyzers\", \n        \"id\" : \"34\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : true, \n        \"isVolatile\" : false, \n        \"journalSize\" : 1048576, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 0 \n        }, \n        \"minReplicationFactor\" : 1, \n        \"name\" : \"_analyzers\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"34\", \n        \"replicationFactor\" : 2, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"32\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"_appbundles\", \n        \"id\" : \"32\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : true, \n        \"isVolatile\" : false, \n        \"journalSize\" : 1048576, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 0 \n        }, \n        \"minReplicationFactor\" : 1, \n        \"name\" : \"_appbundles\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"32\", \n        \"replicationFactor\" : 2, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ \n        { \n          \"id\" : \"29\", \n          \"type\" : \"hash\", \n          \"name\" : \"idx_1640480486207782912\", \n          \"fields\" : [ \n            \"mount\" \n          ], \n          \"unique\" : true, \n          \"sparse\" : true, \n          \"deduplicate\" : true \n        } \n      ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"26\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"_apps\", \n        \"id\" : \"26\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : true, \n        \"isVolatile\" : false, \n        \"journalSize\" : 1048576, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 43 \n        }, \n        \"minReplicationFactor\" : 1, \n        \"name\" : \"_apps\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"26\", \n        \"replicationFactor\" : 2, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"12\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"_aqlfunctions\", \n        \"id\" : \"12\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : true, \n        \"isVolatile\" : false, \n        \"journalSize\" : 1048576, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 0 \n        }, \n        \"minReplicationFactor\" : 1, \n        \"name\" : \"_aqlfunctions\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"12\", \n        \"replicationFactor\" : 2, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"3\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"_graphs\", \n        \"id\" : \"3\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : true, \n        \"isVolatile\" : false, \n        \"journalSize\" : 1048576, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 0 \n        }, \n        \"minReplicationFactor\" : 1, \n        \"name\" : \"_graphs\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"3\", \n        \"replicationFactor\" : 2, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ \n        { \n          \"id\" : \"9\", \n          \"type\" : \"hash\", \n          \"name\" : \"idx_1640480486101876736\", \n          \"fields\" : [ \n            \"user\" \n          ], \n          \"unique\" : true, \n          \"sparse\" : true, \n          \"deduplicate\" : true \n        } \n      ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"6\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"_users\", \n        \"id\" : \"6\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : true, \n        \"isVolatile\" : false, \n        \"journalSize\" : 1048576, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 60 \n        }, \n        \"minReplicationFactor\" : 1, \n        \"name\" : \"_users\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"6\", \n        \"replicationFactor\" : 2, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"102\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"h7222A8B9724E/102\", \n        \"id\" : \"102\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : false, \n        \"isVolatile\" : false, \n        \"journalSize\" : 33554432, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 0 \n        }, \n        \"minReplicationFactor\" : 1, \n        \"name\" : \"animals\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"102\", \n        \"replicationFactor\" : 1, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    }, \n    { \n      \"indexes\" : [ ], \n      \"parameters\" : { \n        \"allowUserKeys\" : true, \n        \"cid\" : \"93\", \n        \"count\" : 0, \n        \"deleted\" : false, \n        \"doCompact\" : true, \n        \"globallyUniqueId\" : \"h7222A8B9724E/93\", \n        \"id\" : \"93\", \n        \"indexBuckets\" : 8, \n        \"isSmart\" : false, \n        \"isSystem\" : false, \n        \"isVolatile\" : false, \n        \"journalSize\" : 33554432, \n        \"keyOptions\" : { \n          \"allowUserKeys\" : true, \n          \"type\" : \"traditional\", \n          \"lastValue\" : 0 \n        }, \n        \"minReplicationFactor\" : 1, \n        \"name\" : \"demo\", \n        \"numberOfShards\" : 1, \n        \"planId\" : \"93\", \n        \"replicationFactor\" : 1, \n        \"shardKeys\" : [ \n          \"_key\" \n        ], \n        \"shards\" : { \n        }, \n        \"status\" : 3, \n        \"type\" : 2, \n        \"version\" : 7, \n        \"waitForSync\" : false \n      } \n    } \n  ], \n  \"views\" : [ \n    { \n      \"globallyUniqueId\" : \"h7222A8B9724E/108\", \n      \"id\" : \"108\", \n      \"name\" : \"demoView\", \n      \"type\" : \"arangosearch\", \n      \"cleanupIntervalStep\" : 2, \n      \"commitIntervalMsec\" : 1000, \n      \"consolidationIntervalMsec\" : 10000, \n      \"consolidationPolicy\" : { \n        \"type\" : \"tier\", \n        \"segmentsBytesFloor\" : 2097152, \n        \"segmentsBytesMax\" : 5368709120, \n        \"segmentsMax\" : 10, \n        \"segmentsMin\" : 1, \n        \"minScore\" : 0 \n      }, \n      \"primarySort\" : [ ], \n      \"writebufferActive\" : 0, \n      \"writebufferIdle\" : 64, \n      \"writebufferSizeMax\" : 33554432, \n      \"links\" : { \n      } \n    } \n  ], \n  \"state\" : { \n    \"running\" : true, \n    \"lastLogTick\" : \"205\", \n    \"lastUncommittedLogTick\" : \"241\", \n    \"totalEvents\" : 69, \n    \"time\" : \"2019-07-30T10:55:12Z\" \n  }, \n  \"tick\" : \"241\" \n}\n
\n\n\n\n\n", "operationId": "handleCommandInventory", "parameters": [ { @@ -13032,7 +13112,7 @@ }, "/_api/replication/logger-first-tick": { "get": { - "description": "\n\nReturns the first available tick value that can be served from the server's\nreplication log. This method can be called by replication clients after to\ndetermine if certain data (identified by a tick value) is still available\nfor replication.\n\nThe result is a JSON object containing the attribute *firstTick*. This\nattribute contains the minimum tick value available in the server's\nreplication\nlog.\n\n**Note**: this method is not supported on a coordinator in a cluster.\n\n\n\n\n**Example:**\n Returning the first available tick\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/logger-first-tick\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"firstTick\" : \"5\" \n}\n
\n\n\n\n\n", + "description": "\n\nReturns the first available tick value that can be served from the server's\nreplication log. This method can be called by replication clients after to\ndetermine if certain data (identified by a tick value) is still available\nfor replication.\n\nThe result is a JSON object containing the attribute *firstTick*. This\nattribute contains the minimum tick value available in the server's\nreplication\nlog.\n\n**Note**: this method is not supported on a coordinator in a cluster.\n\n\n\n\n**Example:**\n Returning the first available tick\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/logger-first-tick\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"firstTick\" : \"1\" \n}\n
\n\n\n\n\n", "operationId": "handleCommandLoggerFirstTick", "parameters": [], "responses": { @@ -13060,7 +13140,7 @@ }, "/_api/replication/logger-follow": { "get": { - "description": "\n\nReturns data from the server's replication log. This method can be called\nby replication clients after an initial synchronization of data. The method\nwill return all \"recent\" log entries from the logger server, and the clients\ncan replay and apply these entries locally so they get to the same data\nstate as the logger server.\n\nClients can call this method repeatedly to incrementally fetch all changes\nfrom the logger server. In this case, they should provide the *from* value so\nthey will only get returned the log events since their last fetch.\n\nWhen the *from* query parameter is not used, the logger server will return log\nentries starting at the beginning of its replication log. When the *from*\nparameter is used, the logger server will only return log entries which have\nhigher tick values than the specified *from* value (note: the log entry with a\ntick value equal to *from* will be excluded). Use the *from* value when\nincrementally fetching log data.\n\nThe *to* query parameter can be used to optionally restrict the upper bound of\nthe result to a certain tick value. If used, the result will contain only log events\nwith tick values up to (including) *to*. In incremental fetching, there is no\nneed to use the *to* parameter. It only makes sense in special situations,\nwhen only parts of the change log are required.\n\nThe *chunkSize* query parameter can be used to control the size of the result.\nIt must be specified in bytes. The *chunkSize* value will only be honored\napproximately. Otherwise a too low *chunkSize* value could cause the server\nto not be able to put just one log entry into the result and return it.\nTherefore, the *chunkSize* value will only be consulted after a log entry has\nbeen written into the result. If the result size is then bigger than\n*chunkSize*, the server will respond with as many log entries as there are\nin the response already. If the result size is still smaller than *chunkSize*,\nthe server will try to return more data if there's more data left to return.\n\nIf *chunkSize* is not specified, some server-side default value will be used.\n\nThe *Content-Type* of the result is *application/x-arango-dump*. This is an\neasy-to-process format, with all log events going onto separate lines in the\nresponse body. Each log event itself is a JSON object, with at least the\nfollowing attributes:\n\n- *tick*: the log event tick value\n\n- *type*: the log event type\n\nIndividual log events will also have additional attributes, depending on the\nevent type. A few common attributes which are used for multiple events types\nare:\n\n- *cid*: id of the collection the event was for\n\n- *tid*: id of the transaction the event was contained in\n\n- *key*: document key\n\n- *rev*: document revision id\n\n- *data*: the original document data\n\nA more detailed description of the individual replication event types and their\ndata structures can be found in [Operation Types](../Replications/WALAccess.html#operation-types).\n\nThe response will also contain the following HTTP headers:\n\n- *x-arango-replication-active*: whether or not the logger is active. Clients\n can use this flag as an indication for their polling frequency. If the\n logger is not active and there are no more replication events available, it\n might be sensible for a client to abort, or to go to sleep for a long time\n and try again later to check whether the logger has been activated.\n\n- *x-arango-replication-lastincluded*: the tick value of the last included\n value in the result. In incremental log fetching, this value can be used\n as the *from* value for the following request. **Note** that if the result is\n empty, the value will be *0*. This value should not be used as *from* value\n by clients in the next request (otherwise the server would return the log\n events from the start of the log again).\n\n- *x-arango-replication-lasttick*: the last tick value the logger server has\n logged (not necessarily included in the result). By comparing the the last\n tick and last included tick values, clients have an approximate indication of\n how many events there are still left to fetch.\n\n- *x-arango-replication-checkmore*: whether or not there already exists more\n log data which the client could fetch immediately. If there is more log data\n available, the client could call *logger-follow* again with an adjusted *from*\n value to fetch remaining log entries until there are no more.\n\n If there isn't any more log data to fetch, the client might decide to go\n to sleep for a while before calling the logger again.\n\n**Note**: this method is not supported on a coordinator in a cluster.\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nIt is considered as deprecated from version 3.4.0 on.\n\n\n\n\n\n\n**Example:**\n No log events available\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/logger-follow?from=105463\n\nHTTP/1.1 No Content\ncontent-type: application/x-arango-dump; charset=utf-8\nx-arango-replication-active: true\nx-arango-replication-checkmore: false\nx-arango-replication-frompresent: true\nx-arango-replication-lastincluded: 0\nx-arango-replication-lastscanned: 105463\nx-arango-replication-lasttick: 105463\nx-content-type-options: nosniff\n\n
\n\n\n\n\n**Example:**\n A few log events *(One JSON document per line)*\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/logger-follow?from=105463\n\nHTTP/1.1 OK\ncontent-type: application/x-arango-dump; charset=utf-8\nx-arango-replication-active: true\nx-arango-replication-checkmore: false\nx-arango-replication-frompresent: true\nx-arango-replication-lastincluded: 105484\nx-arango-replication-lastscanned: 105484\nx-arango-replication-lasttick: 105484\nx-content-type-options: nosniff\n\n{ \n  \"tick\" : \"105467\", \n  \"type\" : 2000, \n  \"database\" : \"1\", \n  \"cid\" : \"105466\", \n  \"cname\" : \"products\", \n  \"data\" : { \n    \"allowUserKeys\" : true, \n    \"cid\" : \"105466\", \n    \"count\" : 0, \n    \"deleted\" : false, \n    \"doCompact\" : true, \n    \"globallyUniqueId\" : \"h82E80CF18F1A/105466\", \n    \"id\" : \"105466\", \n    \"indexBuckets\" : 8, \n    \"indexes\" : [ \n      { \n        \"id\" : \"0\", \n        \"type\" : \"primary\", \n        \"name\" : \"primary\", \n        \"fields\" : [ \n          \"_key\" \n        ], \n        \"unique\" : true, \n        \"sparse\" : false \n      } \n    ], \n    \"isSmart\" : false, \n    \"isSystem\" : false, \n    \"isVolatile\" : false, \n    \"journalSize\" : 33554432, \n    \"keyOptions\" : { \n      \"allowUserKeys\" : true, \n      \"type\" : \"traditional\", \n      \"lastValue\" : 0 \n    }, \n    \"name\" : \"products\", \n    \"numberOfShards\" : 1, \n    \"planId\" : \"105466\", \n    \"replicationFactor\" : 1, \n    \"shardKeys\" : [ \n      \"_key\" \n    ], \n    \"shards\" : { \n    }, \n    \"status\" : 3, \n    \"type\" : 2, \n    \"version\" : 7, \n    \"waitForSync\" : false \n  } \n}↩\n{ \n  \"tick\" : \"105470\", \n  \"type\" : 2300, \n  \"tid\" : \"0\", \n  \"database\" : \"1\", \n  \"cid\" : \"6\", \n  \"cname\" : \"_users\", \n  \"data\" : { \n    \"_key\" : \"61\", \n    \"_id\" : \"_users/61\", \n    \"_rev\" : \"_YzHmd06--_\", \n    \"user\" : \"root\", \n    \"source\" : \"LOCAL\", \n    \"authData\" : { \n      \"active\" : true, \n      \"simple\" : { \n        \"hash\" : \"d3658adde5cb0888490a947dd32e147467fb20fa6a8048707320c103e684ab28\", \n        \"salt\" : \"3d2611f3\", \n        \"method\" : \"sha256\" \n      } \n    }, \n    \"databases\" : { \n      \"_system\" : { \n        \"permissions\" : { \n          \"read\" : true, \n          \"write\" : true \n        }, \n        \"collections\" : { \n          \"demo\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          }, \n          \"animals\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          }, \n          \"products\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          }, \n          \"*\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          }, \n          \"products1\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          } \n        } \n      }, \n      \"*\" : { \n        \"permissions\" : { \n          \"read\" : true, \n          \"write\" : true \n        }, \n        \"collections\" : { \n          \"*\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          } \n        } \n      } \n    } \n  } \n}↩\n{ \n  \"tick\" : \"105474\", \n  \"type\" : 2300, \n  \"tid\" : \"0\", \n  \"database\" : \"1\", \n  \"cid\" : \"105466\", \n  \"cname\" : \"products\", \n  \"data\" : { \n    \"_key\" : \"p1\", \n    \"_id\" : \"_unknown/p1\", \n    \"_rev\" : \"_YzHmd06--B\", \n    \"name\" : \"flux compensator\" \n  } \n}↩\n{ \n  \"tick\" : \"105476\", \n  \"type\" : 2300, \n  \"tid\" : \"0\", \n  \"database\" : \"1\", \n  \"cid\" : \"105466\", \n  \"cname\" : \"products\", \n  \"data\" : { \n    \"_key\" : \"p2\", \n    \"_id\" : \"_unknown/p2\", \n    \"_rev\" : \"_YzHmd06--D\", \n    \"name\" : \"hybrid hovercraft\", \n    \"hp\" : 5100 \n  } \n}↩\n{ \n  \"tick\" : \"105478\", \n  \"type\" : 2302, \n  \"tid\" : \"0\", \n  \"database\" : \"1\", \n  \"cid\" : \"105466\", \n  \"cname\" : \"products\", \n  \"data\" : { \n    \"_key\" : \"p1\", \n    \"_rev\" : \"_YzHmd1---_\" \n  } \n}↩\n{ \n  \"tick\" : \"105480\", \n  \"type\" : 2300, \n  \"tid\" : \"0\", \n  \"database\" : \"1\", \n  \"cid\" : \"105466\", \n  \"cname\" : \"products\", \n  \"data\" : { \n    \"_key\" : \"p2\", \n    \"_id\" : \"_unknown/p2\", \n    \"_rev\" : \"_YzHmd1---B\", \n    \"name\" : \"broken hovercraft\", \n    \"hp\" : 5100 \n  } \n}↩\n{ \n  \"tick\" : \"105481\", \n  \"type\" : 2001, \n  \"database\" : \"1\", \n  \"cid\" : \"105466\", \n  \"cname\" : \"products\", \n  \"data\" : { \n    \"id\" : \"105466\", \n    \"name\" : \"products\", \n    \"cuid\" : \"h82E80CF18F1A/105466\" \n  } \n}↩\n{ \n  \"tick\" : \"105484\", \n  \"type\" : 2300, \n  \"tid\" : \"0\", \n  \"database\" : \"1\", \n  \"cid\" : \"6\", \n  \"cname\" : \"_users\", \n  \"data\" : { \n    \"_key\" : \"61\", \n    \"_id\" : \"_users/61\", \n    \"_rev\" : \"_YzHmd1i--_\", \n    \"user\" : \"root\", \n    \"source\" : \"LOCAL\", \n    \"authData\" : { \n      \"active\" : true, \n      \"simple\" : { \n        \"hash\" : \"d3658adde5cb0888490a947dd32e147467fb20fa6a8048707320c103e684ab28\", \n        \"salt\" : \"3d2611f3\", \n        \"method\" : \"sha256\" \n      } \n    }, \n    \"databases\" : { \n      \"*\" : { \n        \"permissions\" : { \n          \"read\" : true, \n          \"write\" : true \n        }, \n        \"collections\" : { \n          \"*\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          } \n        } \n      }, \n      \"_system\" : { \n        \"permissions\" : { \n          \"read\" : true, \n          \"write\" : true \n        }, \n        \"collections\" : { \n          \"products1\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          }, \n          \"*\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          }, \n          \"demo\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          }, \n          \"animals\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          } \n        } \n      } \n    } \n  } \n}↩\n
\n\n\n\n\n**Example:**\n More events than would fit into the response\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/logger-follow?from=105442&chunkSize=400\n\nHTTP/1.1 OK\ncontent-type: application/x-arango-dump; charset=utf-8\nx-arango-replication-active: true\nx-arango-replication-checkmore: true\nx-arango-replication-frompresent: true\nx-arango-replication-lastincluded: 105446\nx-arango-replication-lastscanned: 105446\nx-arango-replication-lasttick: 105463\nx-content-type-options: nosniff\n\n{ \n  \"tick\" : \"105446\", \n  \"type\" : 2000, \n  \"database\" : \"1\", \n  \"cid\" : \"105445\", \n  \"cname\" : \"products\", \n  \"data\" : { \n    \"allowUserKeys\" : true, \n    \"cid\" : \"105445\", \n    \"count\" : 0, \n    \"deleted\" : false, \n    \"doCompact\" : true, \n    \"globallyUniqueId\" : \"h82E80CF18F1A/105445\", \n    \"id\" : \"105445\", \n    \"indexBuckets\" : 8, \n    \"indexes\" : [ \n      { \n        \"id\" : \"0\", \n        \"type\" : \"primary\", \n        \"name\" : \"primary\", \n        \"fields\" : [ \n          \"_key\" \n        ], \n        \"unique\" : true, \n        \"sparse\" : false \n      } \n    ], \n    \"isSmart\" : false, \n    \"isSystem\" : false, \n    \"isVolatile\" : false, \n    \"journalSize\" : 33554432, \n    \"keyOptions\" : { \n      \"allowUserKeys\" : true, \n      \"type\" : \"traditional\", \n      \"lastValue\" : 0 \n    }, \n    \"name\" : \"products\", \n    \"numberOfShards\" : 1, \n    \"planId\" : \"105445\", \n    \"replicationFactor\" : 1, \n    \"shardKeys\" : [ \n      \"_key\" \n    ], \n    \"shards\" : { \n    }, \n    \"status\" : 3, \n    \"type\" : 2, \n    \"version\" : 7, \n    \"waitForSync\" : false \n  } \n}\n
\n\n\n\n\n", + "description": "\n\nReturns data from the server's replication log. This method can be called\nby replication clients after an initial synchronization of data. The method\nwill return all \"recent\" log entries from the logger server, and the clients\ncan replay and apply these entries locally so they get to the same data\nstate as the logger server.\n\nClients can call this method repeatedly to incrementally fetch all changes\nfrom the logger server. In this case, they should provide the *from* value so\nthey will only get returned the log events since their last fetch.\n\nWhen the *from* query parameter is not used, the logger server will return log\nentries starting at the beginning of its replication log. When the *from*\nparameter is used, the logger server will only return log entries which have\nhigher tick values than the specified *from* value (note: the log entry with a\ntick value equal to *from* will be excluded). Use the *from* value when\nincrementally fetching log data.\n\nThe *to* query parameter can be used to optionally restrict the upper bound of\nthe result to a certain tick value. If used, the result will contain only log events\nwith tick values up to (including) *to*. In incremental fetching, there is no\nneed to use the *to* parameter. It only makes sense in special situations,\nwhen only parts of the change log are required.\n\nThe *chunkSize* query parameter can be used to control the size of the result.\nIt must be specified in bytes. The *chunkSize* value will only be honored\napproximately. Otherwise a too low *chunkSize* value could cause the server\nto not be able to put just one log entry into the result and return it.\nTherefore, the *chunkSize* value will only be consulted after a log entry has\nbeen written into the result. If the result size is then bigger than\n*chunkSize*, the server will respond with as many log entries as there are\nin the response already. If the result size is still smaller than *chunkSize*,\nthe server will try to return more data if there's more data left to return.\n\nIf *chunkSize* is not specified, some server-side default value will be used.\n\nThe *Content-Type* of the result is *application/x-arango-dump*. This is an\neasy-to-process format, with all log events going onto separate lines in the\nresponse body. Each log event itself is a JSON object, with at least the\nfollowing attributes:\n\n- *tick*: the log event tick value\n\n- *type*: the log event type\n\nIndividual log events will also have additional attributes, depending on the\nevent type. A few common attributes which are used for multiple events types\nare:\n\n- *cid*: id of the collection the event was for\n\n- *tid*: id of the transaction the event was contained in\n\n- *key*: document key\n\n- *rev*: document revision id\n\n- *data*: the original document data\n\nA more detailed description of the individual replication event types and their\ndata structures can be found in [Operation Types](../Replications/WALAccess.html#operation-types).\n\nThe response will also contain the following HTTP headers:\n\n- *x-arango-replication-active*: whether or not the logger is active. Clients\n can use this flag as an indication for their polling frequency. If the\n logger is not active and there are no more replication events available, it\n might be sensible for a client to abort, or to go to sleep for a long time\n and try again later to check whether the logger has been activated.\n\n- *x-arango-replication-lastincluded*: the tick value of the last included\n value in the result. In incremental log fetching, this value can be used\n as the *from* value for the following request. **Note** that if the result is\n empty, the value will be *0*. This value should not be used as *from* value\n by clients in the next request (otherwise the server would return the log\n events from the start of the log again).\n\n- *x-arango-replication-lasttick*: the last tick value the logger server has\n logged (not necessarily included in the result). By comparing the the last\n tick and last included tick values, clients have an approximate indication of\n how many events there are still left to fetch.\n\n- *x-arango-replication-checkmore*: whether or not there already exists more\n log data which the client could fetch immediately. If there is more log data\n available, the client could call *logger-follow* again with an adjusted *from*\n value to fetch remaining log entries until there are no more.\n\n If there isn't any more log data to fetch, the client might decide to go\n to sleep for a while before calling the logger again.\n\n**Note**: this method is not supported on a coordinator in a cluster.\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nIt is considered as deprecated from version 3.4.0 on.\n\n\n\n\n\n\n**Example:**\n No log events available\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/logger-follow?from=186253\n\nHTTP/1.1 No Content\ncontent-type: application/x-arango-dump; charset=utf-8\nx-arango-replication-active: true\nx-arango-replication-checkmore: false\nx-arango-replication-frompresent: true\nx-arango-replication-lastincluded: 0\nx-arango-replication-lastscanned: 186250\nx-arango-replication-lasttick: 186253\nx-content-type-options: nosniff\n\n
\n\n\n\n\n**Example:**\n A few log events *(One JSON document per line)*\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/logger-follow?from=186253\n\nHTTP/1.1 OK\ncontent-type: application/x-arango-dump; charset=utf-8\nx-arango-replication-active: true\nx-arango-replication-checkmore: false\nx-arango-replication-frompresent: true\nx-arango-replication-lastincluded: 186281\nx-arango-replication-lastscanned: 186281\nx-arango-replication-lasttick: 186281\nx-content-type-options: nosniff\n\n{ \n  \"tick\" : \"186256\", \n  \"type\" : 2300, \n  \"database\" : \"1\", \n  \"tid\" : \"0\", \n  \"cid\" : \"7\", \n  \"cname\" : \"_users\", \n  \"data\" : { \n    \"_key\" : \"58\", \n    \"_id\" : \"_users/58\", \n    \"_rev\" : \"_ZCIDYN2--_\", \n    \"user\" : \"root\", \n    \"source\" : \"LOCAL\", \n    \"authData\" : { \n      \"active\" : true, \n      \"simple\" : { \n        \"hash\" : \"bfaa969f197683aa17ae7106987e18db2fed28651a0b9899687b638c604f1a1d\", \n        \"salt\" : \"b50214ec\", \n        \"method\" : \"sha256\" \n      } \n    }, \n    \"databases\" : { \n      \"*\" : { \n        \"permissions\" : { \n          \"read\" : true, \n          \"write\" : true \n        }, \n        \"collections\" : { \n          \"*\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          } \n        } \n      }, \n      \"_system\" : { \n        \"permissions\" : { \n          \"read\" : true, \n          \"write\" : true \n        }, \n        \"collections\" : { \n          \"demo\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          }, \n          \"animals\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          }, \n          \"products\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          }, \n          \"*\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          }, \n          \"products1\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          } \n        } \n      } \n    } \n  } \n}↩\n{ \n  \"tick\" : \"186269\", \n  \"type\" : 2001, \n  \"database\" : \"1\", \n  \"cuid\" : \"h224C52C430E1/69881\", \n  \"cid\" : \"69881\", \n  \"data\" : { \n    \"id\" : \"69881\", \n    \"name\" : \"\" \n  } \n}↩\n{ \n  \"tick\" : \"186276\", \n  \"type\" : 2300, \n  \"database\" : \"1\", \n  \"tid\" : \"0\", \n  \"cid\" : \"7\", \n  \"cname\" : \"_users\", \n  \"data\" : { \n    \"_key\" : \"58\", \n    \"_id\" : \"_users/58\", \n    \"_rev\" : \"_ZCIDYO---B\", \n    \"user\" : \"root\", \n    \"source\" : \"LOCAL\", \n    \"authData\" : { \n      \"active\" : true, \n      \"simple\" : { \n        \"hash\" : \"bfaa969f197683aa17ae7106987e18db2fed28651a0b9899687b638c604f1a1d\", \n        \"salt\" : \"b50214ec\", \n        \"method\" : \"sha256\" \n      } \n    }, \n    \"databases\" : { \n      \"_system\" : { \n        \"permissions\" : { \n          \"read\" : true, \n          \"write\" : true \n        }, \n        \"collections\" : { \n          \"products1\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          }, \n          \"*\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          }, \n          \"demo\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          }, \n          \"animals\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          } \n        } \n      }, \n      \"*\" : { \n        \"permissions\" : { \n          \"read\" : true, \n          \"write\" : true \n        }, \n        \"collections\" : { \n          \"*\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          } \n        } \n      } \n    } \n  } \n}↩\n
\n\n\n\n\n**Example:**\n More events than would fit into the response\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/logger-follow?from=186228&chunkSize=400\n\nHTTP/1.1 OK\ncontent-type: application/x-arango-dump; charset=utf-8\nx-arango-replication-active: true\nx-arango-replication-checkmore: true\nx-arango-replication-frompresent: true\nx-arango-replication-lastincluded: 186233\nx-arango-replication-lastscanned: 186230\nx-arango-replication-lasttick: 186253\nx-content-type-options: nosniff\n\n{ \n  \"tick\" : \"186231\", \n  \"type\" : 2300, \n  \"database\" : \"1\", \n  \"tid\" : \"0\", \n  \"cid\" : \"7\", \n  \"cname\" : \"_users\", \n  \"data\" : { \n    \"_key\" : \"58\", \n    \"_id\" : \"_users/58\", \n    \"_rev\" : \"_ZCIDXMS--_\", \n    \"user\" : \"root\", \n    \"source\" : \"LOCAL\", \n    \"authData\" : { \n      \"active\" : true, \n      \"simple\" : { \n        \"hash\" : \"bfaa969f197683aa17ae7106987e18db2fed28651a0b9899687b638c604f1a1d\", \n        \"salt\" : \"b50214ec\", \n        \"method\" : \"sha256\" \n      } \n    }, \n    \"databases\" : { \n      \"*\" : { \n        \"permissions\" : { \n          \"read\" : true, \n          \"write\" : true \n        }, \n        \"collections\" : { \n          \"*\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          } \n        } \n      }, \n      \"_system\" : { \n        \"permissions\" : { \n          \"read\" : true, \n          \"write\" : true \n        }, \n        \"collections\" : { \n          \"animals\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          }, \n          \"demo\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          }, \n          \"products\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          }, \n          \"products1\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          }, \n          \"*\" : { \n            \"permissions\" : { \n              \"read\" : true, \n              \"write\" : true \n            } \n          } \n        } \n      } \n    } \n  } \n}\n
\n\n\n\n\n", "operationId": "handleCommandLoggerFollow", "parameters": [ { @@ -13123,7 +13203,7 @@ }, "/_api/replication/logger-state": { "get": { - "description": "\n\nReturns the current state of the server's replication logger. The state will\ninclude information about whether the logger is running and about the last\nlogged tick value. This tick value is important for incremental fetching of\ndata.\n\nThe body of the response contains a JSON object with the following\nattributes:\n\n- *state*: the current logger state as a JSON object with the following\n sub-attributes:\n\n - *running*: whether or not the logger is running\n\n - *lastLogTick*: the tick value of the latest tick the logger has logged.\n This value can be used for incremental fetching of log data.\n\n - *totalEvents*: total number of events logged since the server was started.\n The value is not reset between multiple stops and re-starts of the logger.\n\n - *time*: the current date and time on the logger server\n\n- *server*: a JSON object with the following sub-attributes:\n\n - *version*: the logger server's version\n\n - *serverId*: the logger server's id\n\n- *clients*: returns the last fetch status by replication clients connected to\n the logger. Each client is returned as a JSON object with the following attributes:\n\n - *serverId*: server id of client\n\n - *lastServedTick*: last tick value served to this client via the *logger-follow* API\n\n - *time*: date and time when this client last called the *logger-follow* API\n\n\n\n\n**Example:**\n Returns the state of the replication logger.\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/logger-state\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"state\" : { \n    \"running\" : true, \n    \"lastLogTick\" : \"105484\", \n    \"lastUncommittedLogTick\" : \"105484\", \n    \"totalEvents\" : 35426, \n    \"time\" : \"2019-06-13T19:55:09Z\" \n  }, \n  \"server\" : { \n    \"version\" : \"3.5.0-rc.4\", \n    \"serverId\" : \"143933161180954\", \n    \"engine\" : \"mmfiles\" \n  }, \n  \"clients\" : [ ] \n}\n
\n\n\n\n\n", + "description": "\n\nReturns the current state of the server's replication logger. The state will\ninclude information about whether the logger is running and about the last\nlogged tick value. This tick value is important for incremental fetching of\ndata.\n\nThe body of the response contains a JSON object with the following\nattributes:\n\n- *state*: the current logger state as a JSON object with the following\n sub-attributes:\n\n - *running*: whether or not the logger is running\n\n - *lastLogTick*: the tick value of the latest tick the logger has logged.\n This value can be used for incremental fetching of log data.\n\n - *totalEvents*: total number of events logged since the server was started.\n The value is not reset between multiple stops and re-starts of the logger.\n\n - *time*: the current date and time on the logger server\n\n- *server*: a JSON object with the following sub-attributes:\n\n - *version*: the logger server's version\n\n - *serverId*: the logger server's id\n\n- *clients*: returns the last fetch status by replication clients connected to\n the logger. Each client is returned as a JSON object with the following attributes:\n\n - *syncerId*: id of the client syncer\n\n - *serverId*: server id of client\n\n - *lastServedTick*: last tick value served to this client via the *logger-follow* API\n\n - *time*: date and time when this client last called the *logger-follow* API\n\n\n\n\n**Example:**\n Returns the state of the replication logger.\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/logger-state\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"state\" : { \n    \"running\" : true, \n    \"lastLogTick\" : \"186281\", \n    \"lastUncommittedLogTick\" : \"186281\", \n    \"totalEvents\" : 186281, \n    \"time\" : \"2019-07-30T10:55:36Z\" \n  }, \n  \"server\" : { \n    \"version\" : \"3.5.0-rc.6\", \n    \"serverId\" : \"37711201448161\", \n    \"engine\" : \"rocksdb\" \n  }, \n  \"clients\" : [ ] \n}\n
\n\n\n\n\n", "operationId": "handleCommandLoggerState", "parameters": [], "responses": { @@ -13148,7 +13228,7 @@ }, "/_api/replication/logger-tick-ranges": { "get": { - "description": "\n\nReturns the currently available ranges of tick values for all currently\navailable WAL logfiles. The tick values can be used to determine if certain\ndata (identified by tick value) are still available for replication.\n\nThe body of the response contains a JSON array. Each array member is an\nobject\nthat describes a single logfile. Each object has the following attributes:\n\n* *datafile*: name of the logfile\n\n* *status*: status of the datafile, in textual form (e.g. \"sealed\", \"open\")\n\n* *tickMin*: minimum tick value contained in logfile\n\n* *tickMax*: maximum tick value contained in logfile\n\n\n\n\n**Example:**\n Returns the available tick ranges.\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/logger-tick-ranges\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n[ \n  { \n    \"datafile\" : \"/tmp/arangosh_ObPajP/tmp-5140-694367295/data/journals/logfile-2.db\", \n    \"status\" : \"collected\", \n    \"tickMin\" : \"5\", \n    \"tickMax\" : \"103602\" \n  }, \n  { \n    \"datafile\" : \"/tmp/arangosh_ObPajP/tmp-5140-694367295/data/journals/logfile-50.db\", \n    \"status\" : \"collected\", \n    \"tickMin\" : \"103617\", \n    \"tickMax\" : \"103740\" \n  }, \n  { \n    \"datafile\" : \"/tmp/arangosh_ObPajP/tmp-5140-694367295/data/journals/logfile-91.db\", \n    \"status\" : \"collected\", \n    \"tickMin\" : \"103747\", \n    \"tickMax\" : \"105376\" \n  }, \n  { \n    \"datafile\" : \"/tmp/arangosh_ObPajP/tmp-5140-694367295/data/journals/logfile-103605.db\", \n    \"status\" : \"collected\", \n    \"tickMin\" : \"105384\", \n    \"tickMax\" : \"105393\" \n  }, \n  { \n    \"datafile\" : \"/tmp/arangosh_ObPajP/tmp-5140-694367295/data/journals/logfile-103743.db\", \n    \"status\" : \"open\", \n    \"tickMin\" : \"105399\", \n    \"tickMax\" : \"105484\" \n  } \n]\n
\n\n\n\n\n", + "description": "\n\nReturns the currently available ranges of tick values for all currently\navailable WAL logfiles. The tick values can be used to determine if certain\ndata (identified by tick value) are still available for replication.\n\nThe body of the response contains a JSON array. Each array member is an\nobject\nthat describes a single logfile. Each object has the following attributes:\n\n* *datafile*: name of the logfile\n\n* *status*: status of the datafile, in textual form (e.g. \"sealed\", \"open\")\n\n* *tickMin*: minimum tick value contained in logfile\n\n* *tickMax*: maximum tick value contained in logfile\n\n\n\n\n**Example:**\n Returns the available tick ranges.\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/logger-tick-ranges\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n[ \n  { \n    \"datafile\" : \"/000003.log\", \n    \"status\" : \"open\", \n    \"tickMin\" : \"1\", \n    \"tickMax\" : \"186281\" \n  } \n]\n
\n\n\n\n\n", "operationId": "handleCommandLoggerTickRanges", "parameters": [], "responses": { @@ -13217,7 +13297,7 @@ }, "/_api/replication/server-id": { "get": { - "description": "\n\nReturns the servers id. The id is also returned by other replication API\nmethods, and this method is an easy means of determining a server's id.\n\nThe body of the response is a JSON object with the attribute *serverId*. The\nserver id is returned as a string.\n\n\n\n\n**Example:**\n \n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/server-id\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"serverId\" : \"143933161180954\" \n}\n
\n\n\n\n\n", + "description": "\n\nReturns the servers id. The id is also returned by other replication API\nmethods, and this method is an easy means of determining a server's id.\n\nThe body of the response is a JSON object with the attribute *serverId*. The\nserver id is returned as a string.\n\n\n\n\n**Example:**\n \n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/replication/server-id\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"serverId\" : \"37711201448161\" \n}\n
\n\n\n\n\n", "operationId": "handleCommandServerId", "parameters": [], "responses": { @@ -13283,7 +13363,7 @@ }, "/_api/simple/all": { "put": { - "description": "\n\nReturns all documents of a collections. Equivalent to the AQL query\n`FOR doc IN collection RETURN doc`. The call expects a JSON object\nas body with the following attributes:\n\n- *collection*: The name of the collection to query.\n\n- *skip*: The number of documents to skip in the query (optional).\n\n- *limit*: The maximal amount of documents to return. The *skip*\n is applied before the *limit* restriction (optional).\n\n- *batchSize*: The number of documents to return in one go. (optional)\n\n- *ttl*: The time-to-live for the cursor (in seconds, optional). \n\n- *stream*: Create this cursor as a stream query (optional). \n\n\nReturns a cursor containing the result, see [HTTP Cursor](../AqlQueryCursor/README.md) for details.\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nAll endpoints for Simple Queries are deprecated from version 3.4.0 on.\nThey are superseded by AQL queries.\n\n\n\n\n\n\n**Example:**\n Limit the amount of documents using *limit*\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/all <<EOF\n{ \"collection\": \"products\", \"skip\": 2, \"limit\" : 2 }\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_key\" : \"105566\", \n      \"_id\" : \"products/105566\", \n      \"_rev\" : \"_YzHme5S--_\", \n      \"Hello5\" : \"World5\" \n    }, \n    { \n      \"_key\" : \"105560\", \n      \"_id\" : \"products/105560\", \n      \"_rev\" : \"_YzHme5O--A\", \n      \"Hello3\" : \"World3\" \n    } \n  ], \n  \"hasMore\" : false, \n  \"count\" : 2, \n  \"cached\" : false, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 4, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 0, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.000118255615234375, \n      \"peakMemoryUsage\" : 2440 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Using a *batchSize* value\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/all <<EOF\n{ \"collection\": \"products\", \"batchSize\" : 3 }\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_key\" : \"105531\", \n      \"_id\" : \"products/105531\", \n      \"_rev\" : \"_YzHme4C--_\", \n      \"Hello3\" : \"World3\" \n    }, \n    { \n      \"_key\" : \"105534\", \n      \"_id\" : \"products/105534\", \n      \"_rev\" : \"_YzHme4C--B\", \n      \"Hello4\" : \"World4\" \n    }, \n    { \n      \"_key\" : \"105537\", \n      \"_id\" : \"products/105537\", \n      \"_rev\" : \"_YzHme4C--D\", \n      \"Hello5\" : \"World5\" \n    } \n  ], \n  \"hasMore\" : true, \n  \"id\" : \"105540\", \n  \"count\" : 5, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 5, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 0, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.000213623046875, \n      \"peakMemoryUsage\" : 18096 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"cached\" : false, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n", + "description": "\n\nReturns all documents of a collections. Equivalent to the AQL query\n`FOR doc IN collection RETURN doc`. The call expects a JSON object\nas body with the following attributes:\n\n- *collection*: The name of the collection to query.\n\n- *skip*: The number of documents to skip in the query (optional).\n\n- *limit*: The maximal amount of documents to return. The *skip*\n is applied before the *limit* restriction (optional).\n\n- *batchSize*: The number of documents to return in one go. (optional)\n\n- *ttl*: The time-to-live for the cursor (in seconds, optional). \n\n- *stream*: Create this cursor as a stream query (optional). \n\n\nReturns a cursor containing the result, see [HTTP Cursor](../AqlQueryCursor/README.md) for details.\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nAll endpoints for Simple Queries are deprecated from version 3.4.0 on.\nThey are superseded by AQL queries.\n\n\n\n\n\n\n**Example:**\n Limit the amount of documents using *limit*\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/all <<EOF\n{ \"collection\": \"products\", \"skip\": 2, \"limit\" : 2 }\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_key\" : \"69940\", \n      \"_id\" : \"products/69940\", \n      \"_rev\" : \"_ZCIDZQC--C\", \n      \"Hello3\" : \"World3\" \n    }, \n    { \n      \"_key\" : \"69942\", \n      \"_id\" : \"products/69942\", \n      \"_rev\" : \"_ZCIDZQG---\", \n      \"Hello4\" : \"World4\" \n    } \n  ], \n  \"hasMore\" : false, \n  \"count\" : 2, \n  \"cached\" : false, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 4, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 0, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.0003154277801513672, \n      \"peakMemoryUsage\" : 2510 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Using a *batchSize* value\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/all <<EOF\n{ \"collection\": \"products\", \"batchSize\" : 3 }\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_key\" : \"69917\", \n      \"_id\" : \"products/69917\", \n      \"_rev\" : \"_ZCIDZPq---\", \n      \"Hello1\" : \"World1\" \n    }, \n    { \n      \"_key\" : \"69919\", \n      \"_id\" : \"products/69919\", \n      \"_rev\" : \"_ZCIDZPq--A\", \n      \"Hello2\" : \"World2\" \n    }, \n    { \n      \"_key\" : \"69921\", \n      \"_id\" : \"products/69921\", \n      \"_rev\" : \"_ZCIDZPq--C\", \n      \"Hello3\" : \"World3\" \n    } \n  ], \n  \"hasMore\" : true, \n  \"id\" : \"69927\", \n  \"count\" : 5, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 5, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 0, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.00023412704467773438, \n      \"peakMemoryUsage\" : 18351 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"cached\" : false, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n", "operationId": "ReturnAllDocuments", "parameters": [ { @@ -13320,7 +13400,7 @@ }, "/_api/simple/all-keys": { "put": { - "description": "\n**A JSON object with these properties is required:**\n\n - **type**: The type of the result. The following values are allowed:\n - *id*: returns an array of document ids (*_id* attributes)\n - *key*: returns an array of document keys (*_key* attributes)\n - *path*: returns an array of document URI paths. This is the default.\n - **collection**: The collection that should be queried\n\n\n\n\nReturns an array of all keys, ids, or URI paths for all documents in the\ncollection identified by *collection*. The type of the result array is\ndetermined by the *type* attribute.\n\nNote that the results have no defined order and thus the order should\nnot be relied on.\n\nNote: the *all-keys* simple query is **deprecated** as of ArangoDB 3.4.0.\nThis API may get removed in future versions of ArangoDB. You can use the\n`/_api/cursor` endpoint instead with one of the below AQL queries depending\non the desired result:\n\n- `FOR doc IN @@collection RETURN doc._id` to mimic *type: id*\n- `FOR doc IN @@collection RETURN doc._key` to mimic *type: key*\n- `FOR doc IN @@collection RETURN CONCAT(\"/_db/\", CURRENT_DATABASE(), \"/_api/document/\", doc._id)`\n to mimic *type: path*\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nAll endpoints for Simple Queries are deprecated from version 3.4.0 on.\nThey are superseded by AQL queries.\n\n\n\n\n\n\n**Example:**\n Return all document paths\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/all-keys <<EOF\n{ \n  \"collection\" : \"products\" \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    \"/_db/_system/_api/document/products/104385\", \n    \"/_db/_system/_api/document/products/104392\", \n    \"/_db/_system/_api/document/products/104389\" \n  ], \n  \"hasMore\" : false, \n  \"cached\" : false, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 3, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 0, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.00015854835510253906, \n      \"peakMemoryUsage\" : 34320 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Return all document keys\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/all-keys <<EOF\n{ \n  \"collection\" : \"products\", \n  \"type\" : \"id\" \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    \"products/104363\", \n    \"products/104367\", \n    \"products/104370\" \n  ], \n  \"hasMore\" : false, \n  \"cached\" : false, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 3, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 0, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.00023746490478515625, \n      \"peakMemoryUsage\" : 34152 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Collection does not exist\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/document/doesnotexist\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"expecting GET /_api/document/<document-handle>\", \n  \"errorNum\" : 1203 \n}\n
\n\n\n\n\n", + "description": "\n**A JSON object with these properties is required:**\n\n - **type**: The type of the result. The following values are allowed:\n - *id*: returns an array of document ids (*_id* attributes)\n - *key*: returns an array of document keys (*_key* attributes)\n - *path*: returns an array of document URI paths. This is the default.\n - **collection**: The collection that should be queried\n\n\n\n\nReturns an array of all keys, ids, or URI paths for all documents in the\ncollection identified by *collection*. The type of the result array is\ndetermined by the *type* attribute.\n\nNote that the results have no defined order and thus the order should\nnot be relied on.\n\nNote: the *all-keys* simple query is **deprecated** as of ArangoDB 3.4.0.\nThis API may get removed in future versions of ArangoDB. You can use the\n`/_api/cursor` endpoint instead with one of the below AQL queries depending\non the desired result:\n\n- `FOR doc IN @@collection RETURN doc._id` to mimic *type: id*\n- `FOR doc IN @@collection RETURN doc._key` to mimic *type: key*\n- `FOR doc IN @@collection RETURN CONCAT(\"/_db/\", CURRENT_DATABASE(), \"/_api/document/\", doc._id)`\n to mimic *type: path*\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nAll endpoints for Simple Queries are deprecated from version 3.4.0 on.\nThey are superseded by AQL queries.\n\n\n\n\n\n\n**Example:**\n Return all document paths\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/all-keys <<EOF\n{ \n  \"collection\" : \"products\" \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    \"/_db/_system/_api/document/products/69243\", \n    \"/_db/_system/_api/document/products/69245\", \n    \"/_db/_system/_api/document/products/69247\" \n  ], \n  \"hasMore\" : false, \n  \"cached\" : false, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 3, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 0, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.0002548694610595703, \n      \"peakMemoryUsage\" : 34377 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Return all document keys\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/all-keys <<EOF\n{ \n  \"collection\" : \"products\", \n  \"type\" : \"id\" \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    \"products/69229\", \n    \"products/69231\", \n    \"products/69233\" \n  ], \n  \"hasMore\" : false, \n  \"cached\" : false, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 3, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 0, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.0003409385681152344, \n      \"peakMemoryUsage\" : 34209 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Collection does not exist\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/document/doesnotexist\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"expecting GET /_api/document/<document-handle>\", \n  \"errorNum\" : 1203 \n}\n
\n\n\n\n\n", "operationId": "allDocumentKeys", "parameters": [ { @@ -13359,7 +13439,7 @@ }, "/_api/simple/any": { "put": { - "description": "\n\nReturns a random document from a collection. The call expects a JSON object\nas body with the following attributes:\n\n\n**A JSON object with these properties is required:**\n\n - **collection**: The identifier or name of the collection to query.\n Returns a JSON object with the document stored in the attribute\n *document* if the collection contains at least one document. If\n the collection is empty, the *document* attribute contains null.\n\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nAll endpoints for Simple Queries are deprecated from version 3.4.0 on.\nThey are superseded by AQL queries.\n\n\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/any <<EOF\n{ \n  \"collection\" : \"products\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"document\" : { \n    \"_key\" : \"105594\", \n    \"_id\" : \"products/105594\", \n    \"_rev\" : \"_YzHme6e--D\", \n    \"Hello5\" : \"World5\" \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n", + "description": "\n\nReturns a random document from a collection. The call expects a JSON object\nas body with the following attributes:\n\n\n**A JSON object with these properties is required:**\n\n - **collection**: The identifier or name of the collection to query.\n Returns a JSON object with the document stored in the attribute\n *document* if the collection contains at least one document. If\n the collection is empty, the *document* attribute contains null.\n\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nAll endpoints for Simple Queries are deprecated from version 3.4.0 on.\nThey are superseded by AQL queries.\n\n\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/any <<EOF\n{ \n  \"collection\" : \"products\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"document\" : { \n    \"_key\" : \"69958\", \n    \"_id\" : \"products/69958\", \n    \"_rev\" : \"_ZCIDZQa--E\", \n    \"Hello3\" : \"World3\" \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n", "operationId": "ReturnARandomDocument", "parameters": [ { @@ -13394,7 +13474,7 @@ }, "/_api/simple/by-example": { "put": { - "description": "\n**A JSON object with these properties is required:**\n\n - **skip**: The number of documents to skip in the query (optional).\n - **batchSize**: maximum number of result documents to be transferred from\n the server to the client in one roundtrip. If this attribute is\n not set, a server-controlled default value will be used. A *batchSize* value of\n *0* is disallowed.\n - **limit**: The maximal amount of documents to return. The *skip*\n is applied before the *limit* restriction. (optional)\n - **example**: The example document.\n - **collection**: The name of the collection to query.\n\n\n\n\n\nThis will find all documents matching a given example.\n\nReturns a cursor containing the result, see [HTTP Cursor](../AqlQueryCursor/README.md) for details.\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nAll endpoints for Simple Queries are deprecated from version 3.4.0 on.\nThey are superseded by AQL queries.\n\n\n\n\n**Warning:** \nTill ArangoDB versions 3.2.13 and 3.3.7 this API is quite expensive.\nA more lightweight alternative is to use the [HTTP Cursor API](../AqlQueryCursor/README.md).\nStarting from versions 3.2.14 and 3.3.8 this performance impact is not\nan issue anymore, as the internal implementation of the API has changed.\n\n\n\n\n\n\n**Example:**\n Matching an attribute\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/by-example <<EOF\n{ \n  \"collection\" : \"products\", \n  \"example\" : { \n    \"i\" : 1 \n  } \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_key\" : \"105609\", \n      \"_id\" : \"products/105609\", \n      \"_rev\" : \"_YzHme7q--_\", \n      \"a\" : { \n        \"k\" : 1, \n        \"j\" : 1 \n      }, \n      \"i\" : 1 \n    }, \n    { \n      \"_key\" : \"105616\", \n      \"_id\" : \"products/105616\", \n      \"_rev\" : \"_YzHme7u--_\", \n      \"i\" : 1 \n    }, \n    { \n      \"_key\" : \"105619\", \n      \"_id\" : \"products/105619\", \n      \"_rev\" : \"_YzHme7u--B\", \n      \"a\" : { \n        \"k\" : 2, \n        \"j\" : 2 \n      }, \n      \"i\" : 1 \n    }, \n    { \n      \"_key\" : \"105613\", \n      \"_id\" : \"products/105613\", \n      \"_rev\" : \"_YzHme7q--B\", \n      \"a\" : { \n        \"j\" : 1 \n      }, \n      \"i\" : 1 \n    } \n  ], \n  \"hasMore\" : false, \n  \"count\" : 4, \n  \"cached\" : false, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 4, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 0, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.00020003318786621094, \n      \"peakMemoryUsage\" : 36448 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Matching an attribute which is a sub-document\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/by-example <<EOF\n{ \n  \"collection\" : \"products\", \n  \"example\" : { \n    \"a.j\" : 1 \n  } \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_key\" : \"105634\", \n      \"_id\" : \"products/105634\", \n      \"_rev\" : \"_YzHme9a--B\", \n      \"a\" : { \n        \"k\" : 1, \n        \"j\" : 1 \n      }, \n      \"i\" : 1 \n    }, \n    { \n      \"_key\" : \"105638\", \n      \"_id\" : \"products/105638\", \n      \"_rev\" : \"_YzHme9e--_\", \n      \"a\" : { \n        \"j\" : 1 \n      }, \n      \"i\" : 1 \n    } \n  ], \n  \"hasMore\" : false, \n  \"count\" : 2, \n  \"cached\" : false, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 4, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 2, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.00016045570373535156, \n      \"peakMemoryUsage\" : 36728 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Matching an attribute within a sub-document\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/by-example <<EOF\n{ \n  \"collection\" : \"products\", \n  \"example\" : { \n    \"a\" : { \n      \"j\" : 1 \n    } \n  } \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_key\" : \"105663\", \n      \"_id\" : \"products/105663\", \n      \"_rev\" : \"_YzHmf-m--_\", \n      \"a\" : { \n        \"j\" : 1 \n      }, \n      \"i\" : 1 \n    } \n  ], \n  \"hasMore\" : false, \n  \"count\" : 1, \n  \"cached\" : false, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 4, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 3, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.00016427040100097656, \n      \"peakMemoryUsage\" : 37008 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n", + "description": "\n**A JSON object with these properties is required:**\n\n - **skip**: The number of documents to skip in the query (optional).\n - **batchSize**: maximum number of result documents to be transferred from\n the server to the client in one roundtrip. If this attribute is\n not set, a server-controlled default value will be used. A *batchSize* value of\n *0* is disallowed.\n - **limit**: The maximal amount of documents to return. The *skip*\n is applied before the *limit* restriction. (optional)\n - **example**: The example document.\n - **collection**: The name of the collection to query.\n\n\n\n\n\nThis will find all documents matching a given example.\n\nReturns a cursor containing the result, see [HTTP Cursor](../AqlQueryCursor/README.md) for details.\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nAll endpoints for Simple Queries are deprecated from version 3.4.0 on.\nThey are superseded by AQL queries.\n\n\n\n\n**Warning:** \nTill ArangoDB versions 3.2.13 and 3.3.7 this API is quite expensive.\nA more lightweight alternative is to use the [HTTP Cursor API](../AqlQueryCursor/README.md).\nStarting from versions 3.2.14 and 3.3.8 this performance impact is not\nan issue anymore, as the internal implementation of the API has changed.\n\n\n\n\n\n\n**Example:**\n Matching an attribute\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/by-example <<EOF\n{ \n  \"collection\" : \"products\", \n  \"example\" : { \n    \"i\" : 1 \n  } \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_key\" : \"69972\", \n      \"_id\" : \"products/69972\", \n      \"_rev\" : \"_ZCIDZQy---\", \n      \"a\" : { \n        \"k\" : 1, \n        \"j\" : 1 \n      }, \n      \"i\" : 1 \n    }, \n    { \n      \"_key\" : \"69974\", \n      \"_id\" : \"products/69974\", \n      \"_rev\" : \"_ZCIDZQy--A\", \n      \"a\" : { \n        \"j\" : 1 \n      }, \n      \"i\" : 1 \n    }, \n    { \n      \"_key\" : \"69976\", \n      \"_id\" : \"products/69976\", \n      \"_rev\" : \"_ZCIDZQy--C\", \n      \"i\" : 1 \n    }, \n    { \n      \"_key\" : \"69978\", \n      \"_id\" : \"products/69978\", \n      \"_rev\" : \"_ZCIDZQ2---\", \n      \"a\" : { \n        \"k\" : 2, \n        \"j\" : 2 \n      }, \n      \"i\" : 1 \n    } \n  ], \n  \"hasMore\" : false, \n  \"count\" : 4, \n  \"cached\" : false, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 4, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 0, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.0002300739288330078, \n      \"peakMemoryUsage\" : 36641 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Matching an attribute which is a sub-document\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/by-example <<EOF\n{ \n  \"collection\" : \"products\", \n  \"example\" : { \n    \"a.j\" : 1 \n  } \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_key\" : \"69988\", \n      \"_id\" : \"products/69988\", \n      \"_rev\" : \"_ZCIDZRK--A\", \n      \"a\" : { \n        \"k\" : 1, \n        \"j\" : 1 \n      }, \n      \"i\" : 1 \n    }, \n    { \n      \"_key\" : \"69990\", \n      \"_id\" : \"products/69990\", \n      \"_rev\" : \"_ZCIDZRO---\", \n      \"a\" : { \n        \"j\" : 1 \n      }, \n      \"i\" : 1 \n    } \n  ], \n  \"hasMore\" : false, \n  \"count\" : 2, \n  \"cached\" : false, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 4, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 2, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.00022363662719726562, \n      \"peakMemoryUsage\" : 36921 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n Matching an attribute within a sub-document\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/by-example <<EOF\n{ \n  \"collection\" : \"products\", \n  \"example\" : { \n    \"a\" : { \n      \"j\" : 1 \n    } \n  } \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_key\" : \"70006\", \n      \"_id\" : \"products/70006\", \n      \"_rev\" : \"_ZCIDZRi--C\", \n      \"a\" : { \n        \"j\" : 1 \n      }, \n      \"i\" : 1 \n    } \n  ], \n  \"hasMore\" : false, \n  \"count\" : 1, \n  \"cached\" : false, \n  \"extra\" : { \n    \"stats\" : { \n      \"writesExecuted\" : 0, \n      \"writesIgnored\" : 0, \n      \"scannedFull\" : 4, \n      \"scannedIndex\" : 0, \n      \"filtered\" : 3, \n      \"httpRequests\" : 0, \n      \"executionTime\" : 0.00018739700317382812, \n      \"peakMemoryUsage\" : 37201 \n    }, \n    \"warnings\" : [ ] \n  }, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n", "operationId": "SimpleQueryBy-example", "parameters": [ { @@ -13429,7 +13509,7 @@ }, "/_api/simple/first-example": { "put": { - "description": "\n**A JSON object with these properties is required:**\n\n - **example**: The example document.\n - **collection**: The name of the collection to query.\n\n\n\n\n\nThis will return the first document matching a given example.\n\nReturns a result containing the document or *HTTP 404* if no\ndocument matched the example.\n\nIf more than one document in the collection matches the specified example, only\none of these documents will be returned, and it is undefined which of the matching\ndocuments is returned.\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nAll endpoints for Simple Queries are deprecated from version 3.4.0 on.\nThey are superseded by AQL queries.\n\n\n\n\n**Warning:** \nTill ArangoDB versions 3.2.13 and 3.3.7 this API is quite expensive.\nA more lightweight alternative is to use the [HTTP Cursor API](../AqlQueryCursor/README.md).\nStarting from versions 3.2.14 and 3.3.8 this performance impact is not\nan issue anymore, as the internal implementation of the API has changed.\n\n\n\n\n\n\n**Example:**\n If a matching document was found\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/first-example <<EOF\n{ \n  \"collection\" : \"products\", \n  \"example\" : { \n    \"i\" : 1 \n  } \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"document\" : { \n    \"_key\" : \"105694\", \n    \"_id\" : \"products/105694\", \n    \"_rev\" : \"_YzHmf_2--B\", \n    \"a\" : { \n      \"k\" : 2, \n      \"j\" : 2 \n    }, \n    \"i\" : 1 \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n If no document was found\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/first-example <<EOF\n{ \n  \"collection\" : \"products\", \n  \"example\" : { \n    \"l\" : 1 \n  } \n}\nEOF\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : true, \n  \"code\" : 404, \n  \"errorNum\" : 404, \n  \"errorMessage\" : \"no match\" \n}\n
\n\n\n\n\n", + "description": "\n**A JSON object with these properties is required:**\n\n - **example**: The example document.\n - **collection**: The name of the collection to query.\n\n\n\n\n\nThis will return the first document matching a given example.\n\nReturns a result containing the document or *HTTP 404* if no\ndocument matched the example.\n\nIf more than one document in the collection matches the specified example, only\none of these documents will be returned, and it is undefined which of the matching\ndocuments is returned.\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nAll endpoints for Simple Queries are deprecated from version 3.4.0 on.\nThey are superseded by AQL queries.\n\n\n\n\n**Warning:** \nTill ArangoDB versions 3.2.13 and 3.3.7 this API is quite expensive.\nA more lightweight alternative is to use the [HTTP Cursor API](../AqlQueryCursor/README.md).\nStarting from versions 3.2.14 and 3.3.8 this performance impact is not\nan issue anymore, as the internal implementation of the API has changed.\n\n\n\n\n\n\n**Example:**\n If a matching document was found\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/first-example <<EOF\n{ \n  \"collection\" : \"products\", \n  \"example\" : { \n    \"i\" : 1 \n  } \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"document\" : { \n    \"_key\" : \"70020\", \n    \"_id\" : \"products/70020\", \n    \"_rev\" : \"_ZCIDZR6---\", \n    \"a\" : { \n      \"k\" : 1, \n      \"j\" : 1 \n    }, \n    \"i\" : 1 \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n If no document was found\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/first-example <<EOF\n{ \n  \"collection\" : \"products\", \n  \"example\" : { \n    \"l\" : 1 \n  } \n}\nEOF\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : true, \n  \"code\" : 404, \n  \"errorNum\" : 404, \n  \"errorMessage\" : \"no match\" \n}\n
\n\n\n\n\n", "operationId": "FindDocumentsMatchingAnExample", "parameters": [ { @@ -13464,7 +13544,7 @@ }, "/_api/simple/fulltext": { "put": { - "description": "\n**A JSON object with these properties is required:**\n\n - **index**: The identifier of the fulltext-index to use.\n - **attribute**: The attribute that contains the texts.\n - **collection**: The name of the collection to query.\n - **limit**: The maximal amount of documents to return. The *skip*\n is applied before the *limit* restriction. (optional)\n - **skip**: The number of documents to skip in the query (optional).\n - **query**: The fulltext query. Please refer to [Fulltext queries](../../Manual/Appendix/Deprecated/SimpleQueries/FulltextQueries.html)\n for details.\n\n\n\n\n\nThis will find all documents from the collection that match the fulltext\nquery specified in *query*.\n\nIn order to use the *fulltext* operator, a fulltext index must be defined\nfor the collection and the specified attribute.\n\nReturns a cursor containing the result, see [HTTP Cursor](../AqlQueryCursor/README.md) for details.\n\nNote: the *fulltext* simple query is **deprecated** as of ArangoDB 2.6. \nThis API may be removed in future versions of ArangoDB. The preferred\nway for retrieving documents from a collection using the near operator is\nto issue an AQL query using the *FULLTEXT* [AQL function](../../AQL/Functions/Fulltext.html) \nas follows:\n\n FOR doc IN FULLTEXT(@@collection, @attributeName, @queryString, @limit) \n RETURN doc\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nAll endpoints for Simple Queries are deprecated from version 3.4.0 on.\nThey are superseded by AQL queries.\n\n\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/fulltext <<EOF\n{ \n  \"collection\" : \"products\", \n  \"attribute\" : \"text\", \n  \"query\" : \"word\" \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_key\" : \"105734\", \n      \"_id\" : \"products/105734\", \n      \"_rev\" : \"_YzHmfCO--B\", \n      \"text\" : \"this text contains word\" \n    }, \n    { \n      \"_key\" : \"105738\", \n      \"_id\" : \"products/105738\", \n      \"_rev\" : \"_YzHmfCS--_\", \n      \"text\" : \"this text also has a word\" \n    } \n  ], \n  \"hasMore\" : false, \n  \"count\" : 2, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n", + "description": "\n**A JSON object with these properties is required:**\n\n - **index**: The identifier of the fulltext-index to use.\n - **attribute**: The attribute that contains the texts.\n - **collection**: The name of the collection to query.\n - **limit**: The maximal amount of documents to return. The *skip*\n is applied before the *limit* restriction. (optional)\n - **skip**: The number of documents to skip in the query (optional).\n - **query**: The fulltext query. Please refer to [Fulltext queries](../../Manual/Appendix/Deprecated/SimpleQueries/FulltextQueries.html)\n for details.\n\n\n\n\n\nThis will find all documents from the collection that match the fulltext\nquery specified in *query*.\n\nIn order to use the *fulltext* operator, a fulltext index must be defined\nfor the collection and the specified attribute.\n\nReturns a cursor containing the result, see [HTTP Cursor](../AqlQueryCursor/README.md) for details.\n\nNote: the *fulltext* simple query is **deprecated** as of ArangoDB 2.6. \nThis API may be removed in future versions of ArangoDB. The preferred\nway for retrieving documents from a collection using the near operator is\nto issue an AQL query using the *FULLTEXT* [AQL function](../../AQL/Functions/Fulltext.html) \nas follows:\n\n FOR doc IN FULLTEXT(@@collection, @attributeName, @queryString, @limit) \n RETURN doc\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nAll endpoints for Simple Queries are deprecated from version 3.4.0 on.\nThey are superseded by AQL queries.\n\n\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/fulltext <<EOF\n{ \n  \"collection\" : \"products\", \n  \"attribute\" : \"text\", \n  \"query\" : \"word\" \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_key\" : \"70052\", \n      \"_id\" : \"products/70052\", \n      \"_rev\" : \"_ZCIDZSq---\", \n      \"text\" : \"this text contains word\" \n    }, \n    { \n      \"_key\" : \"70054\", \n      \"_id\" : \"products/70054\", \n      \"_rev\" : \"_ZCIDZSq--A\", \n      \"text\" : \"this text also has a word\" \n    } \n  ], \n  \"hasMore\" : false, \n  \"count\" : 2, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n", "operationId": "FulltextIndexQuery", "parameters": [ { @@ -13499,7 +13579,7 @@ }, "/_api/simple/lookup-by-keys": { "put": { - "description": "\n**A JSON object with these properties is required:**\n\n - **keys** (string): array with the _keys of documents to remove.\n - **collection**: The name of the collection to look in for the documents\n\n\n\n\nLooks up the documents in the specified collection\nusing the array of keys provided. All documents for which a matching\nkey was specified in the *keys* array and that exist in the collection\nwill be returned. Keys for which no document can be found in the\nunderlying collection are ignored, and no exception will be thrown for\nthem.\n\nEquivalent AQL query:\n\n FOR doc IN @@collection FILTER doc._key IN @keys RETURN doc\n\nThe body of the response contains a JSON object with a *documents*\nattribute. The *documents* attribute is an array containing the\nmatching documents. The order in which matching documents are present\nin the result array is unspecified.\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nAll endpoints for Simple Queries are deprecated from version 3.4.0 on.\nThey are superseded by AQL queries.\n\n\n\n\n\n\n**Example:**\n Looking up existing documents\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/lookup-by-keys <<EOF\n{ \n  \"keys\" : [ \n    \"test0\", \n    \"test1\", \n    \"test2\", \n    \"test3\", \n    \"test4\", \n    \"test5\", \n    \"test6\", \n    \"test7\", \n    \"test8\", \n    \"test9\" \n  ], \n  \"collection\" : \"test\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"documents\" : [ \n    { \n      \"_key\" : \"test0\", \n      \"_id\" : \"test/test0\", \n      \"_rev\" : \"_YzHmfEu--B\", \n      \"value\" : 0 \n    }, \n    { \n      \"_key\" : \"test1\", \n      \"_id\" : \"test/test1\", \n      \"_rev\" : \"_YzHmfEy--_\", \n      \"value\" : 1 \n    }, \n    { \n      \"_key\" : \"test2\", \n      \"_id\" : \"test/test2\", \n      \"_rev\" : \"_YzHmfEy--B\", \n      \"value\" : 2 \n    }, \n    { \n      \"_key\" : \"test3\", \n      \"_id\" : \"test/test3\", \n      \"_rev\" : \"_YzHmfE2--_\", \n      \"value\" : 3 \n    }, \n    { \n      \"_key\" : \"test4\", \n      \"_id\" : \"test/test4\", \n      \"_rev\" : \"_YzHmfE2--B\", \n      \"value\" : 4 \n    }, \n    { \n      \"_key\" : \"test5\", \n      \"_id\" : \"test/test5\", \n      \"_rev\" : \"_YzHmfE2--D\", \n      \"value\" : 5 \n    }, \n    { \n      \"_key\" : \"test6\", \n      \"_id\" : \"test/test6\", \n      \"_rev\" : \"_YzHmfE6--_\", \n      \"value\" : 6 \n    }, \n    { \n      \"_key\" : \"test7\", \n      \"_id\" : \"test/test7\", \n      \"_rev\" : \"_YzHmfE6--B\", \n      \"value\" : 7 \n    }, \n    { \n      \"_key\" : \"test8\", \n      \"_id\" : \"test/test8\", \n      \"_rev\" : \"_YzHmfE6--D\", \n      \"value\" : 8 \n    }, \n    { \n      \"_key\" : \"test9\", \n      \"_id\" : \"test/test9\", \n      \"_rev\" : \"_YzHmfE6--F\", \n      \"value\" : 9 \n    } \n  ], \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Looking up non-existing documents\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/lookup-by-keys <<EOF\n{ \n  \"keys\" : [ \n    \"foo\", \n    \"bar\", \n    \"baz\" \n  ], \n  \"collection\" : \"test\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"documents\" : [ ], \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n\n", + "description": "\n**A JSON object with these properties is required:**\n\n - **keys** (string): array with the _keys of documents to remove.\n - **collection**: The name of the collection to look in for the documents\n\n\n\n\nLooks up the documents in the specified collection\nusing the array of keys provided. All documents for which a matching\nkey was specified in the *keys* array and that exist in the collection\nwill be returned. Keys for which no document can be found in the\nunderlying collection are ignored, and no exception will be thrown for\nthem.\n\nEquivalent AQL query:\n\n FOR doc IN @@collection FILTER doc._key IN @keys RETURN doc\n\nThe body of the response contains a JSON object with a *documents*\nattribute. The *documents* attribute is an array containing the\nmatching documents. The order in which matching documents are present\nin the result array is unspecified.\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nAll endpoints for Simple Queries are deprecated from version 3.4.0 on.\nThey are superseded by AQL queries.\n\n\n\n\n\n\n**Example:**\n Looking up existing documents\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/lookup-by-keys <<EOF\n{ \n  \"keys\" : [ \n    \"test0\", \n    \"test1\", \n    \"test2\", \n    \"test3\", \n    \"test4\", \n    \"test5\", \n    \"test6\", \n    \"test7\", \n    \"test8\", \n    \"test9\" \n  ], \n  \"collection\" : \"test\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"documents\" : [ \n    { \n      \"_key\" : \"test0\", \n      \"_id\" : \"test/test0\", \n      \"_rev\" : \"_ZCIDZTG--A\", \n      \"value\" : 0 \n    }, \n    { \n      \"_key\" : \"test1\", \n      \"_id\" : \"test/test1\", \n      \"_rev\" : \"_ZCIDZTG--C\", \n      \"value\" : 1 \n    }, \n    { \n      \"_key\" : \"test2\", \n      \"_id\" : \"test/test2\", \n      \"_rev\" : \"_ZCIDZTK---\", \n      \"value\" : 2 \n    }, \n    { \n      \"_key\" : \"test3\", \n      \"_id\" : \"test/test3\", \n      \"_rev\" : \"_ZCIDZTK--A\", \n      \"value\" : 3 \n    }, \n    { \n      \"_key\" : \"test4\", \n      \"_id\" : \"test/test4\", \n      \"_rev\" : \"_ZCIDZTK--C\", \n      \"value\" : 4 \n    }, \n    { \n      \"_key\" : \"test5\", \n      \"_id\" : \"test/test5\", \n      \"_rev\" : \"_ZCIDZTK--E\", \n      \"value\" : 5 \n    }, \n    { \n      \"_key\" : \"test6\", \n      \"_id\" : \"test/test6\", \n      \"_rev\" : \"_ZCIDZTK--G\", \n      \"value\" : 6 \n    }, \n    { \n      \"_key\" : \"test7\", \n      \"_id\" : \"test/test7\", \n      \"_rev\" : \"_ZCIDZTO---\", \n      \"value\" : 7 \n    }, \n    { \n      \"_key\" : \"test8\", \n      \"_id\" : \"test/test8\", \n      \"_rev\" : \"_ZCIDZTO--A\", \n      \"value\" : 8 \n    }, \n    { \n      \"_key\" : \"test9\", \n      \"_id\" : \"test/test9\", \n      \"_rev\" : \"_ZCIDZTO--C\", \n      \"value\" : 9 \n    } \n  ], \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Looking up non-existing documents\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/lookup-by-keys <<EOF\n{ \n  \"keys\" : [ \n    \"foo\", \n    \"bar\", \n    \"baz\" \n  ], \n  \"collection\" : \"test\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"documents\" : [ ], \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n\n", "operationId": "FindDocumentsByTheirKeys", "parameters": [ { @@ -13534,7 +13614,7 @@ }, "/_api/simple/near": { "put": { - "description": "\n**A JSON object with these properties is required:**\n\n - **distance**: If given, the attribute key used to return the distance to\n the given coordinate. (optional). If specified, distances are returned in meters.\n - **skip**: The number of documents to skip in the query. (optional)\n - **longitude**: The longitude of the coordinate.\n - **limit**: The maximal amount of documents to return. The *skip* is\n applied before the *limit* restriction. The default is 100. (optional)\n - **collection**: The name of the collection to query.\n - **latitude**: The latitude of the coordinate.\n - **geo**: If given, the identifier of the geo-index to use. (optional)\n\n\n\n\n\nThe default will find at most 100 documents near the given coordinate. The\nreturned array is sorted according to the distance, with the nearest document\nbeing first in the return array. If there are near documents of equal distance, documents\nare chosen randomly from this set until the limit is reached.\n\nIn order to use the *near* operator, a geo index must be defined for the\ncollection. This index also defines which attribute holds the coordinates\nfor the document. If you have more than one geo-spatial index, you can use\nthe *geo* field to select a particular index.\n\n\nReturns a cursor containing the result, see [HTTP Cursor](../AqlQueryCursor/README.md) for details.\n\nNote: the *near* simple query is **deprecated** as of ArangoDB 2.6. \nThis API may be removed in future versions of ArangoDB. The preferred\nway for retrieving documents from a collection using the near operator is\nto issue an [AQL query](../../AQL/Functions/Geo.html) using the *NEAR* function as follows: \n\n FOR doc IN NEAR(@@collection, @latitude, @longitude, @limit)\n RETURN doc`\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nAll endpoints for Simple Queries are deprecated from version 3.4.0 on.\nThey are superseded by AQL queries.\n\n\n\n\n\n\n**Example:**\n Without distance\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/near <<EOF\n{ \n  \"collection\" : \"products\", \n  \"latitude\" : 0, \n  \"longitude\" : 0, \n  \"skip\" : 1, \n  \"limit\" : 2 \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_key\" : \"105845\", \n      \"_id\" : \"products/105845\", \n      \"_rev\" : \"_YzHmfIm--_\", \n      \"name\" : \"Name/-0.002/\", \n      \"loc\" : [ \n        -0.002, \n        0 \n      ] \n    }, \n    { \n      \"_key\" : \"105851\", \n      \"_id\" : \"products/105851\", \n      \"_rev\" : \"_YzHmfIq--_\", \n      \"name\" : \"Name/0.002/\", \n      \"loc\" : [ \n        0.002, \n        0 \n      ] \n    } \n  ], \n  \"hasMore\" : false, \n  \"count\" : 2, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n With distance\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/near <<EOF\n{ \n  \"collection\" : \"products\", \n  \"latitude\" : 0, \n  \"longitude\" : 0, \n  \"skip\" : 1, \n  \"limit\" : 3, \n  \"distance\" : \"distance\" \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_id\" : \"products/105897\", \n      \"_key\" : \"105897\", \n      \"_rev\" : \"_YzHmfLO--D\", \n      \"loc\" : [ \n        -0.002, \n        0 \n      ], \n      \"name\" : \"Name/-0.002/\", \n      \"distance\" : 222.3898532891175 \n    }, \n    { \n      \"_id\" : \"products/105903\", \n      \"_key\" : \"105903\", \n      \"_rev\" : \"_YzHmfLS--B\", \n      \"loc\" : [ \n        0.002, \n        0 \n      ], \n      \"name\" : \"Name/0.002/\", \n      \"distance\" : 222.3898532891175 \n    }, \n    { \n      \"_id\" : \"products/105906\", \n      \"_key\" : \"105906\", \n      \"_rev\" : \"_YzHmfLS--D\", \n      \"loc\" : [ \n        0.004, \n        0 \n      ], \n      \"name\" : \"Name/0.004/\", \n      \"distance\" : 444.779706578235 \n    } \n  ], \n  \"hasMore\" : false, \n  \"count\" : 3, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n", + "description": "\n**A JSON object with these properties is required:**\n\n - **distance**: If given, the attribute key used to return the distance to\n the given coordinate. (optional). If specified, distances are returned in meters.\n - **skip**: The number of documents to skip in the query. (optional)\n - **longitude**: The longitude of the coordinate.\n - **limit**: The maximal amount of documents to return. The *skip* is\n applied before the *limit* restriction. The default is 100. (optional)\n - **collection**: The name of the collection to query.\n - **latitude**: The latitude of the coordinate.\n - **geo**: If given, the identifier of the geo-index to use. (optional)\n\n\n\n\n\nThe default will find at most 100 documents near the given coordinate. The\nreturned array is sorted according to the distance, with the nearest document\nbeing first in the return array. If there are near documents of equal distance, documents\nare chosen randomly from this set until the limit is reached.\n\nIn order to use the *near* operator, a geo index must be defined for the\ncollection. This index also defines which attribute holds the coordinates\nfor the document. If you have more than one geo-spatial index, you can use\nthe *geo* field to select a particular index.\n\n\nReturns a cursor containing the result, see [HTTP Cursor](../AqlQueryCursor/README.md) for details.\n\nNote: the *near* simple query is **deprecated** as of ArangoDB 2.6. \nThis API may be removed in future versions of ArangoDB. The preferred\nway for retrieving documents from a collection using the near operator is\nto issue an [AQL query](../../AQL/Functions/Geo.html) using the *NEAR* function as follows: \n\n FOR doc IN NEAR(@@collection, @latitude, @longitude, @limit)\n RETURN doc`\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nAll endpoints for Simple Queries are deprecated from version 3.4.0 on.\nThey are superseded by AQL queries.\n\n\n\n\n\n\n**Example:**\n Without distance\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/near <<EOF\n{ \n  \"collection\" : \"products\", \n  \"latitude\" : 0, \n  \"longitude\" : 0, \n  \"skip\" : 1, \n  \"limit\" : 2 \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_key\" : \"70120\", \n      \"_id\" : \"products/70120\", \n      \"_rev\" : \"_ZCIDZUK---\", \n      \"name\" : \"Name/-0.002/\", \n      \"loc\" : [ \n        -0.002, \n        0 \n      ] \n    }, \n    { \n      \"_key\" : \"70124\", \n      \"_id\" : \"products/70124\", \n      \"_rev\" : \"_ZCIDZUK--C\", \n      \"name\" : \"Name/0.002/\", \n      \"loc\" : [ \n        0.002, \n        0 \n      ] \n    } \n  ], \n  \"hasMore\" : false, \n  \"count\" : 2, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n With distance\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/near <<EOF\n{ \n  \"collection\" : \"products\", \n  \"latitude\" : 0, \n  \"longitude\" : 0, \n  \"skip\" : 1, \n  \"limit\" : 3, \n  \"distance\" : \"distance\" \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_id\" : \"products/70156\", \n      \"_key\" : \"70156\", \n      \"_rev\" : \"_ZCIDZUq--C\", \n      \"loc\" : [ \n        -0.002, \n        0 \n      ], \n      \"name\" : \"Name/-0.002/\", \n      \"distance\" : 222.3898532891175 \n    }, \n    { \n      \"_id\" : \"products/70160\", \n      \"_key\" : \"70160\", \n      \"_rev\" : \"_ZCIDZUu---\", \n      \"loc\" : [ \n        0.002, \n        0 \n      ], \n      \"name\" : \"Name/0.002/\", \n      \"distance\" : 222.3898532891175 \n    }, \n    { \n      \"_id\" : \"products/70162\", \n      \"_key\" : \"70162\", \n      \"_rev\" : \"_ZCIDZUu--A\", \n      \"loc\" : [ \n        0.004, \n        0 \n      ], \n      \"name\" : \"Name/0.004/\", \n      \"distance\" : 444.779706578235 \n    } \n  ], \n  \"hasMore\" : false, \n  \"count\" : 3, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n", "operationId": "ReturnsDocumentsNearACoordinate", "parameters": [ { @@ -13569,7 +13649,7 @@ }, "/_api/simple/range": { "put": { - "description": "\n**A JSON object with these properties is required:**\n\n - **right**: The upper bound.\n - **attribute**: The attribute path to check.\n - **collection**: The name of the collection to query.\n - **limit**: The maximal amount of documents to return. The *skip*\n is applied before the *limit* restriction. (optional)\n - **closed**: If *true*, use interval including *left* and *right*,\n otherwise exclude *right*, but include *left*.\n - **skip**: The number of documents to skip in the query (optional).\n - **left**: The lower bound.\n\n\n\n\n\nThis will find all documents within a given range. In order to execute a\nrange query, a skip-list index on the queried attribute must be present.\n\nReturns a cursor containing the result, see [HTTP Cursor](../AqlQueryCursor/README.md) for details.\n\nNote: the *range* simple query is **deprecated** as of ArangoDB 2.6. \nThe function may be removed in future versions of ArangoDB. The preferred\nway for retrieving documents from a collection within a specific range\nis to use an AQL query as follows: \n\n FOR doc IN @@collection \n FILTER doc.value >= @left && doc.value < @right \n LIMIT @skip, @limit \n RETURN doc`\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nAll endpoints for Simple Queries are deprecated from version 3.4.0 on.\nThey are superseded by AQL queries.\n\n\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/range <<EOF\n{ \n  \"collection\" : \"products\", \n  \"attribute\" : \"i\", \n  \"left\" : 2, \n  \"right\" : 4 \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_key\" : \"105940\", \n      \"_id\" : \"products/105940\", \n      \"_rev\" : \"_YzHmfNq--B\", \n      \"i\" : 2 \n    }, \n    { \n      \"_key\" : \"105943\", \n      \"_id\" : \"products/105943\", \n      \"_rev\" : \"_YzHmfNq--D\", \n      \"i\" : 3 \n    } \n  ], \n  \"hasMore\" : false, \n  \"count\" : 2, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n", + "description": "\n**A JSON object with these properties is required:**\n\n - **right**: The upper bound.\n - **attribute**: The attribute path to check.\n - **collection**: The name of the collection to query.\n - **limit**: The maximal amount of documents to return. The *skip*\n is applied before the *limit* restriction. (optional)\n - **closed**: If *true*, use interval including *left* and *right*,\n otherwise exclude *right*, but include *left*.\n - **skip**: The number of documents to skip in the query (optional).\n - **left**: The lower bound.\n\n\n\n\n\nThis will find all documents within a given range. In order to execute a\nrange query, a skip-list index on the queried attribute must be present.\n\nReturns a cursor containing the result, see [HTTP Cursor](../AqlQueryCursor/README.md) for details.\n\nNote: the *range* simple query is **deprecated** as of ArangoDB 2.6. \nThe function may be removed in future versions of ArangoDB. The preferred\nway for retrieving documents from a collection within a specific range\nis to use an AQL query as follows: \n\n FOR doc IN @@collection \n FILTER doc.value >= @left && doc.value < @right \n LIMIT @skip, @limit \n RETURN doc`\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nAll endpoints for Simple Queries are deprecated from version 3.4.0 on.\nThey are superseded by AQL queries.\n\n\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/range <<EOF\n{ \n  \"collection\" : \"products\", \n  \"attribute\" : \"i\", \n  \"left\" : 2, \n  \"right\" : 4 \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_key\" : \"70186\", \n      \"_id\" : \"products/70186\", \n      \"_rev\" : \"_ZCIDZVK--A\", \n      \"i\" : 2 \n    }, \n    { \n      \"_key\" : \"70188\", \n      \"_id\" : \"products/70188\", \n      \"_rev\" : \"_ZCIDZVK--C\", \n      \"i\" : 3 \n    } \n  ], \n  \"hasMore\" : false, \n  \"count\" : 2, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n", "operationId": "SimpleRangeQuery", "parameters": [ { @@ -13744,7 +13824,7 @@ }, "/_api/simple/within": { "put": { - "description": "\n**A JSON object with these properties is required:**\n\n - **distance**: If given, the attribute key used to return the distance to\n the given coordinate. (optional). If specified, distances are returned in meters.\n - **skip**: The number of documents to skip in the query. (optional)\n - **longitude**: The longitude of the coordinate.\n - **radius**: The maximal radius (in meters).\n - **collection**: The name of the collection to query.\n - **latitude**: The latitude of the coordinate.\n - **limit**: The maximal amount of documents to return. The *skip* is\n applied before the *limit* restriction. The default is 100. (optional)\n - **geo**: If given, the identifier of the geo-index to use. (optional)\n\n\n\n\n\nThis will find all documents within a given radius around the coordinate\n(*latitude*, *longitude*). The returned list is sorted by distance.\n\nIn order to use the *within* operator, a geo index must be defined for\nthe collection. This index also defines which attribute holds the\ncoordinates for the document. If you have more than one geo-spatial index,\nyou can use the *geo* field to select a particular index.\n\n\nReturns a cursor containing the result, see [HTTP Cursor](../AqlQueryCursor/README.md) for details.\n\nNote: the *within* simple query is **deprecated** as of ArangoDB 2.6. \nThis API may be removed in future versions of ArangoDB. The preferred\nway for retrieving documents from a collection using the near operator is\nto issue an [AQL query](../../AQL/Functions/Geo.html) using the *WITHIN* function as follows: \n\n FOR doc IN WITHIN(@@collection, @latitude, @longitude, @radius, @distanceAttributeName)\n RETURN doc\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nAll endpoints for Simple Queries are deprecated from version 3.4.0 on.\nThey are superseded by AQL queries.\n\n\n\n\n\n\n**Example:**\n Without distance\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/near <<EOF\n{ \n  \"collection\" : \"products\", \n  \"latitude\" : 0, \n  \"longitude\" : 0, \n  \"skip\" : 1, \n  \"limit\" : 2, \n  \"radius\" : 500 \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_key\" : \"106261\", \n      \"_id\" : \"products/106261\", \n      \"_rev\" : \"_YzHmfd---B\", \n      \"name\" : \"Name/-0.002/\", \n      \"loc\" : [ \n        -0.002, \n        0 \n      ] \n    }, \n    { \n      \"_key\" : \"106267\", \n      \"_id\" : \"products/106267\", \n      \"_rev\" : \"_YzHmfd---F\", \n      \"name\" : \"Name/0.002/\", \n      \"loc\" : [ \n        0.002, \n        0 \n      ] \n    } \n  ], \n  \"hasMore\" : false, \n  \"count\" : 2, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n With distance\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/near <<EOF\n{ \n  \"collection\" : \"products\", \n  \"latitude\" : 0, \n  \"longitude\" : 0, \n  \"skip\" : 1, \n  \"limit\" : 3, \n  \"distance\" : \"distance\", \n  \"radius\" : 300 \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_id\" : \"products/106313\", \n      \"_key\" : \"106313\", \n      \"_rev\" : \"_YzHmffW--B\", \n      \"loc\" : [ \n        -0.002, \n        0 \n      ], \n      \"name\" : \"Name/-0.002/\", \n      \"distance\" : 222.3898532891175 \n    }, \n    { \n      \"_id\" : \"products/106319\", \n      \"_key\" : \"106319\", \n      \"_rev\" : \"_YzHmffW--F\", \n      \"loc\" : [ \n        0.002, \n        0 \n      ], \n      \"name\" : \"Name/0.002/\", \n      \"distance\" : 222.3898532891175 \n    }, \n    { \n      \"_id\" : \"products/106322\", \n      \"_key\" : \"106322\", \n      \"_rev\" : \"_YzHmffW--H\", \n      \"loc\" : [ \n        0.004, \n        0 \n      ], \n      \"name\" : \"Name/0.004/\", \n      \"distance\" : 444.779706578235 \n    } \n  ], \n  \"hasMore\" : false, \n  \"count\" : 3, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n", + "description": "\n**A JSON object with these properties is required:**\n\n - **distance**: If given, the attribute key used to return the distance to\n the given coordinate. (optional). If specified, distances are returned in meters.\n - **skip**: The number of documents to skip in the query. (optional)\n - **longitude**: The longitude of the coordinate.\n - **radius**: The maximal radius (in meters).\n - **collection**: The name of the collection to query.\n - **latitude**: The latitude of the coordinate.\n - **limit**: The maximal amount of documents to return. The *skip* is\n applied before the *limit* restriction. The default is 100. (optional)\n - **geo**: If given, the identifier of the geo-index to use. (optional)\n\n\n\n\n\nThis will find all documents within a given radius around the coordinate\n(*latitude*, *longitude*). The returned list is sorted by distance.\n\nIn order to use the *within* operator, a geo index must be defined for\nthe collection. This index also defines which attribute holds the\ncoordinates for the document. If you have more than one geo-spatial index,\nyou can use the *geo* field to select a particular index.\n\n\nReturns a cursor containing the result, see [HTTP Cursor](../AqlQueryCursor/README.md) for details.\n\nNote: the *within* simple query is **deprecated** as of ArangoDB 2.6. \nThis API may be removed in future versions of ArangoDB. The preferred\nway for retrieving documents from a collection using the near operator is\nto issue an [AQL query](../../AQL/Functions/Geo.html) using the *WITHIN* function as follows: \n\n FOR doc IN WITHIN(@@collection, @latitude, @longitude, @radius, @distanceAttributeName)\n RETURN doc\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nAll endpoints for Simple Queries are deprecated from version 3.4.0 on.\nThey are superseded by AQL queries.\n\n\n\n\n\n\n**Example:**\n Without distance\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/near <<EOF\n{ \n  \"collection\" : \"products\", \n  \"latitude\" : 0, \n  \"longitude\" : 0, \n  \"skip\" : 1, \n  \"limit\" : 2, \n  \"radius\" : 500 \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_key\" : \"70361\", \n      \"_id\" : \"products/70361\", \n      \"_rev\" : \"_ZCIDZZ2--A\", \n      \"name\" : \"Name/-0.002/\", \n      \"loc\" : [ \n        -0.002, \n        0 \n      ] \n    }, \n    { \n      \"_key\" : \"70365\", \n      \"_id\" : \"products/70365\", \n      \"_rev\" : \"_ZCIDZZ2--E\", \n      \"name\" : \"Name/0.002/\", \n      \"loc\" : [ \n        0.002, \n        0 \n      ] \n    } \n  ], \n  \"hasMore\" : false, \n  \"count\" : 2, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n**Example:**\n With distance\n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/near <<EOF\n{ \n  \"collection\" : \"products\", \n  \"latitude\" : 0, \n  \"longitude\" : 0, \n  \"skip\" : 1, \n  \"limit\" : 3, \n  \"distance\" : \"distance\", \n  \"radius\" : 300 \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_id\" : \"products/70397\", \n      \"_key\" : \"70397\", \n      \"_rev\" : \"_ZCIDZaW--A\", \n      \"loc\" : [ \n        -0.002, \n        0 \n      ], \n      \"name\" : \"Name/-0.002/\", \n      \"distance\" : 222.3898532891175 \n    }, \n    { \n      \"_id\" : \"products/70401\", \n      \"_key\" : \"70401\", \n      \"_rev\" : \"_ZCIDZaW--E\", \n      \"loc\" : [ \n        0.002, \n        0 \n      ], \n      \"name\" : \"Name/0.002/\", \n      \"distance\" : 222.3898532891175 \n    }, \n    { \n      \"_id\" : \"products/70403\", \n      \"_key\" : \"70403\", \n      \"_rev\" : \"_ZCIDZaa---\", \n      \"loc\" : [ \n        0.004, \n        0 \n      ], \n      \"name\" : \"Name/0.004/\", \n      \"distance\" : 444.779706578235 \n    } \n  ], \n  \"hasMore\" : false, \n  \"count\" : 3, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n", "operationId": "FindDocumentsWithinARadiusAroundACoordinate", "parameters": [ { @@ -13779,7 +13859,7 @@ }, "/_api/simple/within-rectangle": { "put": { - "description": "\n**A JSON object with these properties is required:**\n\n - **latitude1**: The latitude of the first rectangle coordinate.\n - **skip**: The number of documents to skip in the query. (optional)\n - **latitude2**: The latitude of the second rectangle coordinate.\n - **longitude2**: The longitude of the second rectangle coordinate.\n - **longitude1**: The longitude of the first rectangle coordinate.\n - **limit**: The maximal amount of documents to return. The *skip* is\n applied before the *limit* restriction. The default is 100. (optional)\n - **collection**: The name of the collection to query.\n - **geo**: If given, the identifier of the geo-index to use. (optional)\n\n\n\n\n\nThis will find all documents within the specified rectangle (determined by\nthe given coordinates (*latitude1*, *longitude1*, *latitude2*, *longitude2*). \n\nIn order to use the *within-rectangle* query, a geo index must be defined for\nthe collection. This index also defines which attribute holds the\ncoordinates for the document. If you have more than one geo-spatial index,\nyou can use the *geo* field to select a particular index.\n\nReturns a cursor containing the result, see [HTTP Cursor](../AqlQueryCursor/README.md) for details.\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nAll endpoints for Simple Queries are deprecated from version 3.4.0 on.\nThey are superseded by AQL queries.\n\n\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/within-rectangle <<EOF\n{ \n  \"collection\" : \"products\", \n  \"latitude1\" : 0, \n  \"longitude1\" : 0, \n  \"latitude2\" : 0.2, \n  \"longitude2\" : 0.2, \n  \"skip\" : 1, \n  \"limit\" : 2 \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ ], \n  \"hasMore\" : false, \n  \"count\" : 0, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n", + "description": "\n**A JSON object with these properties is required:**\n\n - **latitude1**: The latitude of the first rectangle coordinate.\n - **skip**: The number of documents to skip in the query. (optional)\n - **latitude2**: The latitude of the second rectangle coordinate.\n - **longitude2**: The longitude of the second rectangle coordinate.\n - **longitude1**: The longitude of the first rectangle coordinate.\n - **limit**: The maximal amount of documents to return. The *skip* is\n applied before the *limit* restriction. The default is 100. (optional)\n - **collection**: The name of the collection to query.\n - **geo**: If given, the identifier of the geo-index to use. (optional)\n\n\n\n\n\nThis will find all documents within the specified rectangle (determined by\nthe given coordinates (*latitude1*, *longitude1*, *latitude2*, *longitude2*). \n\nIn order to use the *within-rectangle* query, a geo index must be defined for\nthe collection. This index also defines which attribute holds the\ncoordinates for the document. If you have more than one geo-spatial index,\nyou can use the *geo* field to select a particular index.\n\nReturns a cursor containing the result, see [HTTP Cursor](../AqlQueryCursor/README.md) for details.\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nAll endpoints for Simple Queries are deprecated from version 3.4.0 on.\nThey are superseded by AQL queries.\n\n\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/simple/within-rectangle <<EOF\n{ \n  \"collection\" : \"products\", \n  \"latitude1\" : 0, \n  \"longitude1\" : 0, \n  \"latitude2\" : 0.2, \n  \"longitude2\" : 0.2, \n  \"skip\" : 1, \n  \"limit\" : 2 \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : [ \n    { \n      \"_key\" : \"70443\", \n      \"_id\" : \"products/70443\", \n      \"_rev\" : \"_ZCIDZbC--E\", \n      \"name\" : \"Name/0.008/\", \n      \"loc\" : [ \n        0.008, \n        0 \n      ] \n    }, \n    { \n      \"_key\" : \"70441\", \n      \"_id\" : \"products/70441\", \n      \"_rev\" : \"_ZCIDZbC--C\", \n      \"name\" : \"Name/0.006/\", \n      \"loc\" : [ \n        0.006, \n        0 \n      ] \n    } \n  ], \n  \"hasMore\" : false, \n  \"count\" : 2, \n  \"error\" : false, \n  \"code\" : 201 \n}\n
\n\n\n\n\n", "operationId": "WithinRectangleQuery", "parameters": [ { @@ -13814,7 +13894,7 @@ }, "/_api/tasks": { "post": { - "description": "\n**A JSON object with these properties is required:**\n\n - **params**: The parameters to be passed into command\n - **offset**: Number of seconds initial delay \n - **command**: The JavaScript code to be executed\n - **name**: The name of the task\n - **period**: number of seconds between the executions\n\n\n\n\ncreates a new task with a generated id\n\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nThe task was registered\n\n- **code**: The status code, 200 in this case.\n- **created**: The timestamp when this task was created\n- **database**: the database this task belongs to\n- **period**: this task should run each `period` seconds\n- **command**: the javascript function for this task\n- **error**: *false* in this case\n- **offset**: time offset in seconds from the created timestamp\n- **type**: What type of task is this [ `periodic`, `timed`]\n - periodic are tasks that repeat periodically\n - timed are tasks that execute once at a specific time\n- **id**: A string identifying the task\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/tasks/ <<EOF\n{ \n  \"name\" : \"SampleTask\", \n  \"command\" : \"(function(params) { require('@arangodb').print(params); })(params)\", \n  \"params\" : { \n    \"foo\" : \"bar\", \n    \"bar\" : \"foo\" \n  }, \n  \"period\" : 2 \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"id\" : \"106393\", \n  \"name\" : \"SampleTask\", \n  \"created\" : 1560455710.2784474, \n  \"type\" : \"periodic\", \n  \"period\" : 2, \n  \"offset\" : 0, \n  \"command\" : \"(function (params) { (function(params) { require('@arangodb').print(params); })(params) } )(params);\", \n  \"database\" : \"_system\" \n}\nshell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/tasks/106393\n\n
\n\n\n\n\n", + "description": "\n**A JSON object with these properties is required:**\n\n - **params**: The parameters to be passed into command\n - **offset**: Number of seconds initial delay \n - **command**: The JavaScript code to be executed\n - **name**: The name of the task\n - **period**: number of seconds between the executions\n\n\n\n\ncreates a new task with a generated id\n\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nThe task was registered\n\n- **code**: The status code, 200 in this case.\n- **created**: The timestamp when this task was created\n- **database**: the database this task belongs to\n- **period**: this task should run each `period` seconds\n- **command**: the javascript function for this task\n- **error**: *false* in this case\n- **offset**: time offset in seconds from the created timestamp\n- **type**: What type of task is this [ `periodic`, `timed`]\n - periodic are tasks that repeat periodically\n - timed are tasks that execute once at a specific time\n- **id**: A string identifying the task\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/tasks/ <<EOF\n{ \n  \"name\" : \"SampleTask\", \n  \"command\" : \"(function(params) { require('@arangodb').print(params); })(params)\", \n  \"params\" : { \n    \"foo\" : \"bar\", \n    \"bar\" : \"foo\" \n  }, \n  \"period\" : 2 \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"id\" : \"70451\", \n  \"name\" : \"SampleTask\", \n  \"created\" : 1564484136.4080143, \n  \"type\" : \"periodic\", \n  \"period\" : 2, \n  \"offset\" : 0, \n  \"command\" : \"(function (params) { (function(params) { require('@arangodb').print(params); })(params) } )(params);\", \n  \"database\" : \"_system\" \n}\nshell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/tasks/70451\n\n
\n\n\n\n\n", "operationId": "registerTask", "parameters": [ { @@ -13853,7 +13933,7 @@ }, "/_api/tasks/": { "get": { - "description": "\n\nfetches all existing tasks on the server\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nThe list of tasks\n\n[\n - **name**: The fully qualified name of the user function\n - **created**: The timestamp when this task was created\n - **database**: the database this task belongs to\n - **period**: this task should run each `period` seconds\n - **command**: the javascript function for this task\n - **offset**: time offset in seconds from the created timestamp\n - **type**: What type of task is this [ `periodic`, `timed`]\n - periodic are tasks that repeat periodically\n - timed are tasks that execute once at a specific time\n - **id**: A string identifying the task\n]\n\n\n\n\n**Example:**\n Fetching all tasks\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/tasks\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n[ \n  { \n    \"id\" : \"58\", \n    \"name\" : \"user-defined task\", \n    \"created\" : 1560455681.7080393, \n    \"type\" : \"periodic\", \n    \"period\" : 1, \n    \"offset\" : 0.000001, \n    \"command\" : \"(function (params) { (function () {\\n        require('@arangodb/foxx/queues/manager').manage();\\n      })(params) } )(params);\", \n    \"database\" : \"_system\" \n  } \n]\n
\n\n\n\n\n", + "description": "\n\nfetches all existing tasks on the server\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nThe list of tasks\n\n[\n - **name**: The fully qualified name of the user function\n - **created**: The timestamp when this task was created\n - **database**: the database this task belongs to\n - **period**: this task should run each `period` seconds\n - **command**: the javascript function for this task\n - **offset**: time offset in seconds from the created timestamp\n - **type**: What type of task is this [ `periodic`, `timed`]\n - periodic are tasks that repeat periodically\n - timed are tasks that execute once at a specific time\n - **id**: A string identifying the task\n]\n\n\n\n\n**Example:**\n Fetching all tasks\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/tasks\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n[ \n  { \n    \"id\" : \"55\", \n    \"name\" : \"user-defined task\", \n    \"created\" : 1564484119.2611961, \n    \"type\" : \"periodic\", \n    \"period\" : 1, \n    \"offset\" : 0.000001, \n    \"command\" : \"(function (params) { (function () {\\n        require('@arangodb/foxx/queues/manager').manage();\\n      })(params) } )(params);\", \n    \"database\" : \"_system\" \n  } \n]\n
\n\n\n\n\n", "operationId": "getTasks", "parameters": [], "produces": [ @@ -13919,7 +13999,7 @@ "x-hints": "" }, "get": { - "description": "\n\nfetches one existing task on the server specified by *id*\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nThe requested task\n\n- **name**: The fully qualified name of the user function\n- **created**: The timestamp when this task was created\n- **database**: the database this task belongs to\n- **period**: this task should run each `period` seconds\n- **command**: the javascript function for this task\n- **offset**: time offset in seconds from the created timestamp\n- **type**: What type of task is this [ `periodic`, `timed`]\n - periodic are tasks that repeat periodically\n - timed are tasks that execute once at a specific time\n- **id**: A string identifying the task\n\n\n\n\n**Example:**\n Fetching a single task by its id\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/tasks <<EOF\n{\"id\":\"testTask\",\"command\":\"console.log('Hello from task!');\",\"offset\":10000}\nEOF\n\nshell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/tasks/testTask\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"id\" : \"testTask\", \n  \"name\" : \"user-defined task\", \n  \"created\" : 1560455710.289837, \n  \"type\" : \"timed\", \n  \"offset\" : 10000, \n  \"command\" : \"(function (params) { console.log('Hello from task!'); } )(params);\", \n  \"database\" : \"_system\" \n}\n
\n\n\n\n\n**Example:**\n Trying to fetch a non-existing task\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/tasks/non-existing-task\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"task not found\", \n  \"errorNum\" : 1852 \n}\n
\n\n\n\n\n", + "description": "\n\nfetches one existing task on the server specified by *id*\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nThe requested task\n\n- **name**: The fully qualified name of the user function\n- **created**: The timestamp when this task was created\n- **database**: the database this task belongs to\n- **period**: this task should run each `period` seconds\n- **command**: the javascript function for this task\n- **offset**: time offset in seconds from the created timestamp\n- **type**: What type of task is this [ `periodic`, `timed`]\n - periodic are tasks that repeat periodically\n - timed are tasks that execute once at a specific time\n- **id**: A string identifying the task\n\n\n\n\n**Example:**\n Fetching a single task by its id\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/tasks <<EOF\n{\"id\":\"testTask\",\"command\":\"console.log('Hello from task!');\",\"offset\":10000}\nEOF\n\nshell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/tasks/testTask\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"id\" : \"testTask\", \n  \"name\" : \"user-defined task\", \n  \"created\" : 1564484136.418932, \n  \"type\" : \"timed\", \n  \"offset\" : 10000, \n  \"command\" : \"(function (params) { console.log('Hello from task!'); } )(params);\", \n  \"database\" : \"_system\" \n}\n
\n\n\n\n\n**Example:**\n Trying to fetch a non-existing task\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/tasks/non-existing-task\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"task not found\", \n  \"errorNum\" : 1852 \n}\n
\n\n\n\n\n", "operationId": "getTasks", "parameters": [ { @@ -13952,7 +14032,7 @@ "x-hints": "" }, "put": { - "description": "\n**A JSON object with these properties is required:**\n\n - **params**: The parameters to be passed into command\n - **offset**: Number of seconds initial delay\n - **command**: The JavaScript code to be executed\n - **name**: The name of the task\n - **period**: number of seconds between the executions\n\n\n\n\nregisters a new task with the specified id\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/tasks/sampleTask <<EOF\n{ \n  \"id\" : \"SampleTask\", \n  \"name\" : \"SampleTask\", \n  \"command\" : \"(function(params) { require('@arangodb').print(params); })(params)\", \n  \"params\" : { \n    \"foo\" : \"bar\", \n    \"bar\" : \"foo\" \n  }, \n  \"period\" : 2 \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"id\" : \"sampleTask\", \n  \"name\" : \"SampleTask\", \n  \"created\" : 1560455710.292423, \n  \"type\" : \"periodic\", \n  \"period\" : 2, \n  \"offset\" : 0, \n  \"command\" : \"(function (params) { (function(params) { require('@arangodb').print(params); })(params) } )(params);\", \n  \"database\" : \"_system\" \n}\n
\n\n\n\n", + "description": "\n**A JSON object with these properties is required:**\n\n - **params**: The parameters to be passed into command\n - **offset**: Number of seconds initial delay\n - **command**: The JavaScript code to be executed\n - **name**: The name of the task\n - **period**: number of seconds between the executions\n\n\n\n\nregisters a new task with the specified id\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/tasks/sampleTask <<EOF\n{ \n  \"id\" : \"SampleTask\", \n  \"name\" : \"SampleTask\", \n  \"command\" : \"(function(params) { require('@arangodb').print(params); })(params)\", \n  \"params\" : { \n    \"foo\" : \"bar\", \n    \"bar\" : \"foo\" \n  }, \n  \"period\" : 2 \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"id\" : \"sampleTask\", \n  \"name\" : \"SampleTask\", \n  \"created\" : 1564484136.4216077, \n  \"type\" : \"periodic\", \n  \"period\" : 2, \n  \"offset\" : 0, \n  \"command\" : \"(function (params) { (function(params) { require('@arangodb').print(params); })(params) } )(params);\", \n  \"database\" : \"_system\" \n}\n
\n\n\n\n", "operationId": "registerTask:byId", "parameters": [ { @@ -13988,6 +14068,23 @@ } }, "/_api/transaction": { + "get": { + "description": "\n\nThe result is an object describing with the attribute *transactions*, which contains\nan array of transactions.\nIn a cluster the array will contain the transactions from all coordinators.\n\nEach array entry contains an object with the following attributes:\n\n- *id*: the transaction's id\n- *status*: the transaction's status\n\n\n\n\n**Example:**\n Get currently running transactions\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/transaction\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"transactions\" : [ \n    { \n      \"id\" : \"70548\", \n      \"state\" : \"running\" \n    } \n  ] \n}\n
\n\n\n\n\n\n", + "operationId": "executeGetState:transactions", + "parameters": [], + "responses": { + "200": { + "description": "If the list of transactions can be retrieved successfully, *HTTP 200* will be returned.\n\n" + } + }, + "summary": "Get currently running transactions", + "tags": [ + "Transactions" + ], + "x-examples": [], + "x-filename": "/arangodb/Documentation/DocuBlocks/Rest/Transactions/get_api_transactions.md", + "x-hints": "" + }, "post": { "description": "\n**A JSON object with these properties is required:**\n\n - **maxTransactionSize**: Transaction size limit in bytes. Honored by the RocksDB storage engine only.\n - **lockTimeout**: an optional numeric value that can be used to set a\n timeout for waiting on collection locks. If not specified, a default\n value will be used. Setting *lockTimeout* to *0* will make ArangoDB\n not time out waiting for a lock.\n - **waitForSync**: an optional boolean flag that, if set, will force the\n transaction to write all data to disk before returning.\n - **allowImplicit**: Allow reading from undeclared collections.\n - **params**: optional arguments passed to *action*.\n - **action**: the actual transaction operations to be executed, in the\n form of stringified JavaScript code. The code will be executed on server\n side, with late binding. It is thus critical that the code specified in\n *action* properly sets up all the variables it needs.\n If the code specified in *action* ends with a return statement, the\n value returned will also be returned by the REST API in the *result*\n attribute if the transaction committed successfully.\n - **collections**: *collections* must be a JSON object that can have one or all sub-attributes\n *read*, *write* or *exclusive*, each being an array of collection names or a\n single collection name as string. Collections that will be written to in the\n transaction must be declared with the *write* or *exclusive* attribute or it\n will fail, whereas non-declared collections from which is solely read will be\n added lazily. The optional sub-attribute *allowImplicit* can be set to *false*\n to let transactions fail in case of undeclared collections for reading.\n Collections for reading should be fully declared if possible, to avoid\n deadlocks.\n See [locking and isolation](../../Manual/Transactions/LockingAndIsolation.html)\n for more information.\n\n\n\n\nThe transaction description must be passed in the body of the POST request.\n\nIf the transaction is fully executed and committed on the server,\n*HTTP 200* will be returned. Additionally, the return value of the\ncode defined in *action* will be returned in the *result* attribute.\n\nFor successfully committed transactions, the returned JSON object has the\nfollowing properties:\n\n- *error*: boolean flag to indicate if an error occurred (*false*\n in this case)\n\n- *code*: the HTTP status code\n\n- *result*: the return value of the transaction\n\nIf the transaction specification is either missing or malformed, the server\nwill respond with *HTTP 400*.\n\nThe body of the response will then contain a JSON object with additional error\ndetails. The object has the following attributes:\n\n- *error*: boolean flag to indicate that an error occurred (*true* in this case)\n\n- *code*: the HTTP status code\n\n- *errorNum*: the server error number\n\n- *errorMessage*: a descriptive error message\n\nIf a transaction fails to commit, either by an exception thrown in the\n*action* code, or by an internal error, the server will respond with\nan error.\nAny other errors will be returned with any of the return codes\n*HTTP 400*, *HTTP 409*, or *HTTP 500*.\n\n\n\n\n**Example:**\n Executing a transaction on a single collection\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/transaction <<EOF\n{ \n  \"collections\" : { \n    \"write\" : \"products\" \n  }, \n  \"action\" : \"function () { var db = require('@arangodb').db; db.products.save({});  return db.products.count(); }\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"result\" : 1 \n}\n
\n\n\n\n\n**Example:**\n Executing a transaction using multiple collections\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/transaction <<EOF\n{ \n  \"collections\" : { \n    \"write\" : [ \n      \"products\", \n      \"materials\" \n    ] \n  }, \n  \"action\" : \"function () {var db = require('@arangodb').db;db.products.save({});db.materials.save({});return 'worked!';}\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"result\" : \"worked!\" \n}\n
\n\n\n\n\n**Example:**\n Aborting a transaction due to an internal error\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/transaction <<EOF\n{ \n  \"collections\" : { \n    \"write\" : \"products\" \n  }, \n  \"action\" : \"function () {var db = require('@arangodb').db;db.products.save({ _key: 'abc'});db.products.save({ _key: 'abc'});}\" \n}\nEOF\n\nHTTP/1.1 Conflict\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 409, \n  \"error\" : true, \n  \"errorMessage\" : \"unique constraint violated - in index primary of type primary over '_key'; conflicting key: abc\", \n  \"errorNum\" : 1210 \n}\n
\n\n\n\n\n**Example:**\n Aborting a transaction by explicitly throwing an exception\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/transaction <<EOF\n{ \n  \"collections\" : { \n    \"read\" : \"products\" \n  }, \n  \"action\" : \"function () { throw 'doh!'; }\" \n}\nEOF\n\nHTTP/1.1 Internal Server Error\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 500, \n  \"error\" : true, \n  \"errorMessage\" : \"doh!\", \n  \"errorNum\" : 1650 \n}\n
\n\n\n\n\n**Example:**\n Referring to a non-existing collection\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/transaction <<EOF\n{ \n  \"collections\" : { \n    \"read\" : \"products\" \n  }, \n  \"action\" : \"function () { return true; }\" \n}\nEOF\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"collection or view not found: products\", \n  \"errorNum\" : 1203 \n}\n
\n\n\n\n\n", "operationId": "executeCommit", @@ -14027,7 +14124,7 @@ }, "/_api/transaction/begin": { "post": { - "description": "\n**A JSON object with these properties is required:**\n\n - **maxTransactionSize**: Transaction size limit in bytes. Honored by the RocksDB storage engine only.\n - **allowImplicit**: Allow reading from undeclared collections.\n - **collections**: *collections* must be a JSON object that can have one or all sub-attributes\n *read*, *write* or *exclusive*, each being an array of collection names or a\n single collection name as string. Collections that will be written to in the\n transaction must be declared with the *write* or *exclusive* attribute or it\n will fail, whereas non-declared collections from which is solely read will be\n added lazily. The optional sub-attribute *allowImplicit* can be set to *false*\n to let transactions fail in case of undeclared collections for reading.\n Collections for reading should be fully declared if possible, to avoid\n deadlocks.\n See [locking and isolation](../../Manual/Transactions/LockingAndIsolation.html)\n for more information.\n - **lockTimeout**: an optional numeric value that can be used to set a\n timeout for waiting on collection locks. If not specified, a default\n value will be used. Setting *lockTimeout* to *0* will make ArangoDB\n not time out waiting for a lock.\n - **waitForSync**: an optional boolean flag that, if set, will force the\n transaction to write all data to disk before returning.\n\n\n\n\nThe transaction description must be passed in the body of the POST request.\nIf the transaction can be started on the server, *HTTP 201* will be returned. \n\nFor successfully started transactions, the returned JSON object has the\nfollowing properties:\n\n- *error*: boolean flag to indicate if an error occurred (*false*\n in this case)\n\n- *code*: the HTTP status code\n\n- *result*: result containing\n - *id*: the identifier of the transaction\n - *status*: containing the string 'running'\n\nIf the transaction specification is either missing or malformed, the server\nwill respond with *HTTP 400* or *HTTP 404*.\n\nThe body of the response will then contain a JSON object with additional error\ndetails. The object has the following attributes:\n\n- *error*: boolean flag to indicate that an error occurred (*true* in this case)\n\n- *code*: the HTTP status code\n\n- *errorNum*: the server error number\n\n- *errorMessage*: a descriptive error message\n\n\n\n\n\n**Example:**\n Executing a transaction on a single collection\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/transaction/begin <<EOF\n{ \n  \"collections\" : { \n    \"write\" : \"products\" \n  } \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 201, \n  \"error\" : false, \n  \"result\" : { \n    \"id\" : \"106466\", \n    \"status\" : \"running\" \n  } \n}\n
\n\n\n\n\n**Example:**\n Referring to a non-existing collection\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/transaction/begin <<EOF\n{ \n  \"collections\" : { \n    \"read\" : \"products\" \n  } \n}\nEOF\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"collection or view not found:products\", \n  \"errorNum\" : 1203 \n}\n
\n\n\n\n\n", + "description": "\n**A JSON object with these properties is required:**\n\n - **maxTransactionSize**: Transaction size limit in bytes. Honored by the RocksDB storage engine only.\n - **allowImplicit**: Allow reading from undeclared collections.\n - **collections**: *collections* must be a JSON object that can have one or all sub-attributes\n *read*, *write* or *exclusive*, each being an array of collection names or a\n single collection name as string. Collections that will be written to in the\n transaction must be declared with the *write* or *exclusive* attribute or it\n will fail, whereas non-declared collections from which is solely read will be\n added lazily. The optional sub-attribute *allowImplicit* can be set to *false*\n to let transactions fail in case of undeclared collections for reading.\n Collections for reading should be fully declared if possible, to avoid\n deadlocks.\n See [locking and isolation](../../Manual/Transactions/LockingAndIsolation.html)\n for more information.\n - **lockTimeout**: an optional numeric value that can be used to set a\n timeout for waiting on collection locks. If not specified, a default\n value will be used. Setting *lockTimeout* to *0* will make ArangoDB\n not time out waiting for a lock.\n - **waitForSync**: an optional boolean flag that, if set, will force the\n transaction to write all data to disk before returning.\n\n\n\n\nThe transaction description must be passed in the body of the POST request.\nIf the transaction can be started on the server, *HTTP 201* will be returned. \n\nFor successfully started transactions, the returned JSON object has the\nfollowing properties:\n\n- *error*: boolean flag to indicate if an error occurred (*false*\n in this case)\n\n- *code*: the HTTP status code\n\n- *result*: result containing\n - *id*: the identifier of the transaction\n - *status*: containing the string 'running'\n\nIf the transaction specification is either missing or malformed, the server\nwill respond with *HTTP 400* or *HTTP 404*.\n\nThe body of the response will then contain a JSON object with additional error\ndetails. The object has the following attributes:\n\n- *error*: boolean flag to indicate that an error occurred (*true* in this case)\n\n- *code*: the HTTP status code\n\n- *errorNum*: the server error number\n\n- *errorMessage*: a descriptive error message\n\n\n\n\n\n**Example:**\n Executing a transaction on a single collection\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/transaction/begin <<EOF\n{ \n  \"collections\" : { \n    \"write\" : \"products\" \n  } \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 201, \n  \"error\" : false, \n  \"result\" : { \n    \"id\" : \"70501\", \n    \"status\" : \"running\" \n  } \n}\n
\n\n\n\n\n**Example:**\n Referring to a non-existing collection\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/transaction/begin <<EOF\n{ \n  \"collections\" : { \n    \"read\" : \"products\" \n  } \n}\nEOF\n\nHTTP/1.1 Not Found\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 404, \n  \"error\" : true, \n  \"errorMessage\" : \"collection or view not found:products\", \n  \"errorNum\" : 1203 \n}\n
\n\n\n\n\n", "operationId": "executeBegin", "parameters": [ { @@ -14062,7 +14159,7 @@ }, "/_api/transaction/{transaction-id}": { "delete": { - "description": "\n\nAbort a running server-side transaction. Aborting is an idempotent operation. \nIt is not an error to abort a transaction more than once.\n\nIf the transaction can be aborted, *HTTP 200* will be returned. \nThe returned JSON object has the following properties:\n\n- *error*: boolean flag to indicate if an error occurred (*false*\n in this case)\n\n- *code*: the HTTP status code\n\n- *result*: result containing\n - *id*: the identifier of the transaction\n - *status*: containing the string 'aborted'\n\nIf the transaction cannot be found, aborting is not allowed or the \ntransaction was already committed, the server\nwill respond with *HTTP 400*, *HTTP 404* or *HTTP 409*.\n\nThe body of the response will then contain a JSON object with additional error\ndetails. The object has the following attributes:\n\n- *error*: boolean flag to indicate that an error occurred (*true* in this case)\n\n- *code*: the HTTP status code\n\n- *errorNum*: the server error number\n\n- *errorMessage*: a descriptive error message\n\n\n\n\n\n**Example:**\n Aborting a transaction:\n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/transaction/106452\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 200, \n  \"error\" : false, \n  \"result\" : { \n    \"id\" : \"106452\", \n    \"status\" : \"aborted\" \n  } \n}\n
\n\n\n\n\n\n", + "description": "\n\nAbort a running server-side transaction. Aborting is an idempotent operation. \nIt is not an error to abort a transaction more than once.\n\nIf the transaction can be aborted, *HTTP 200* will be returned. \nThe returned JSON object has the following properties:\n\n- *error*: boolean flag to indicate if an error occurred (*false*\n in this case)\n\n- *code*: the HTTP status code\n\n- *result*: result containing\n - *id*: the identifier of the transaction\n - *status*: containing the string 'aborted'\n\nIf the transaction cannot be found, aborting is not allowed or the \ntransaction was already committed, the server\nwill respond with *HTTP 400*, *HTTP 404* or *HTTP 409*.\n\nThe body of the response will then contain a JSON object with additional error\ndetails. The object has the following attributes:\n\n- *error*: boolean flag to indicate that an error occurred (*true* in this case)\n\n- *code*: the HTTP status code\n\n- *errorNum*: the server error number\n\n- *errorMessage*: a descriptive error message\n\n\n\n\n\n**Example:**\n Aborting a transaction:\n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/transaction/70491\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 200, \n  \"error\" : false, \n  \"result\" : { \n    \"id\" : \"70491\", \n    \"status\" : \"aborted\" \n  } \n}\n
\n\n\n\n\n\n", "operationId": "executeAbort:transaction", "parameters": [ { @@ -14097,7 +14194,7 @@ "x-hints": "" }, "get": { - "description": "\n\nThe result is an object describing the status of the transaction. \nIt has at least the following attributes:\n\n- *id*: the identifier of the transaction\n\n- *status*: the status of the transaction. One of \"running\", \"committed\" or \"aborted\".\n\n\n\n\n**Example:**\n Get transaction status\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/transaction/106478\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 200, \n  \"error\" : false, \n  \"result\" : { \n    \"id\" : \"106478\", \n    \"status\" : \"running\" \n  } \n}\n
\n\n\n\n\n\n", + "description": "\n\nThe result is an object describing the status of the transaction. \nIt has at least the following attributes:\n\n- *id*: the identifier of the transaction\n\n- *status*: the status of the transaction. One of \"running\", \"committed\" or \"aborted\".\n\n\n\n\n**Example:**\n Get transaction status\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/transaction/70509\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 200, \n  \"error\" : false, \n  \"result\" : { \n    \"id\" : \"70509\", \n    \"status\" : \"running\" \n  } \n}\n
\n\n\n\n\n\n", "operationId": "executeGetState:transaction", "parameters": [ { @@ -14129,7 +14226,7 @@ "x-hints": "" }, "put": { - "description": "\n\nCommit a running server-side transaction. Committing is an idempotent operation. \nIt is not an error to commit a transaction more than once.\n\nIf the transaction can be committed, *HTTP 200* will be returned. \nThe returned JSON object has the following properties:\n\n- *error*: boolean flag to indicate if an error occurred (*false*\n in this case)\n\n- *code*: the HTTP status code\n\n- *result*: result containing\n - *id*: the identifier of the transaction\n - *status*: containing the string 'committed'\n\nIf the transaction cannot be found, committing is not allowed or the \ntransaction was aborted, the server\nwill respond with *HTTP 400*, *HTTP 404* or *HTTP 409*.\n\nThe body of the response will then contain a JSON object with additional error\ndetails. The object has the following attributes:\n\n- *error*: boolean flag to indicate that an error occurred (*true* in this case)\n\n- *code*: the HTTP status code\n\n- *errorNum*: the server error number\n\n- *errorMessage*: a descriptive error message\n\n\n\n\n\n**Example:**\n Committing a transaction:\n\n
shell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/transaction/106440\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 200, \n  \"error\" : false, \n  \"result\" : { \n    \"id\" : \"106440\", \n    \"status\" : \"committed\" \n  } \n}\n
\n\n\n\n\n\n", + "description": "\n\nCommit a running server-side transaction. Committing is an idempotent operation. \nIt is not an error to commit a transaction more than once.\n\nIf the transaction can be committed, *HTTP 200* will be returned. \nThe returned JSON object has the following properties:\n\n- *error*: boolean flag to indicate if an error occurred (*false*\n in this case)\n\n- *code*: the HTTP status code\n\n- *result*: result containing\n - *id*: the identifier of the transaction\n - *status*: containing the string 'committed'\n\nIf the transaction cannot be found, committing is not allowed or the \ntransaction was aborted, the server\nwill respond with *HTTP 400*, *HTTP 404* or *HTTP 409*.\n\nThe body of the response will then contain a JSON object with additional error\ndetails. The object has the following attributes:\n\n- *error*: boolean flag to indicate that an error occurred (*true* in this case)\n\n- *code*: the HTTP status code\n\n- *errorNum*: the server error number\n\n- *errorMessage*: a descriptive error message\n\n\n\n\n\n**Example:**\n Committing a transaction:\n\n
shell> curl -X PUT --header 'accept: application/json' --dump - http://localhost:8529/_api/transaction/70483\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"code\" : 200, \n  \"error\" : false, \n  \"result\" : { \n    \"id\" : \"70483\", \n    \"status\" : \"committed\" \n  } \n}\n
\n\n\n\n\n\n", "operationId": "executeCommit:Transaction", "parameters": [ { @@ -14166,7 +14263,7 @@ }, "/_api/traversal": { "post": { - "description": "\n\nStarts a traversal starting from a given vertex and following.\nedges contained in a given edgeCollection. The request must\ncontain the following attributes.\n\n\n**A JSON object with these properties is required:**\n\n - **sort**: body (JavaScript) code of a custom comparison function\n for the edges. The signature of this function is\n *(l, r) -> integer* (where l and r are edges) and must\n return -1 if l is smaller than, +1 if l is greater than,\n and 0 if l and r are equal. The reason for this is the\n following: The order of edges returned for a certain\n vertex is undefined. This is because there is no natural\n order of edges for a vertex with multiple connected edges.\n To explicitly define the order in which edges on the\n vertex are followed, you can specify an edge comparator\n function with this attribute. Note that the value here has\n to be a string to conform to the JSON standard, which in\n turn is parsed as function body on the server side. Furthermore\n note that this attribute is only used for the standard\n expanders. If you use your custom expander you have to\n do the sorting yourself within the expander code.\n - **direction**: direction for traversal\n - *if set*, must be either *\"outbound\"*, *\"inbound\"*, or *\"any\"*\n - *if not set*, the *expander* attribute must be specified\n - **minDepth**: ANDed with any existing filters):\n visits only nodes in at least the given depth\n - **startVertex**: id of the startVertex, e.g. *\"users/foo\"*.\n - **visitor**: body (JavaScript) code of custom visitor function\n function signature: *(config, result, vertex, path, connected) -> void*\n The visitor function can do anything, but its return value is ignored. To\n populate a result, use the *result* variable by reference. Note that the\n *connected* argument is only populated when the *order* attribute is set\n to *\"preorder-expander\"*.\n - **itemOrder**: item iteration order can be *\"forward\"* or *\"backward\"*\n - **strategy**: traversal strategy can be *\"depthfirst\"* or *\"breadthfirst\"*\n - **filter**: default is to include all nodes:\n body (JavaScript code) of custom filter function\n function signature: *(config, vertex, path) -> mixed*\n can return four different string values:\n - *\"exclude\"* -> this vertex will not be visited.\n - *\"prune\"* -> the edges of this vertex will not be followed.\n - *\"\"* or *undefined* -> visit the vertex and follow its edges.\n - *Array* -> containing any combination of the above.\n If there is at least one *\"exclude\"* or *\"prune\"* respectively\n is contained, it's effect will occur.\n - **init**: body (JavaScript) code of custom result initialization function\n function signature: *(config, result) -> void*\n initialize any values in result with what is required\n - **maxIterations**: Maximum number of iterations in each traversal. This number can be\n set to prevent endless loops in traversal of cyclic graphs. When a traversal performs\n as many iterations as the *maxIterations* value, the traversal will abort with an\n error. If *maxIterations* is not set, a server-defined value may be used.\n - **maxDepth**: ANDed with any existing filters visits only nodes in at most the given depth\n - **uniqueness**: specifies uniqueness for vertices and edges visited.\n If set, must be an object like this:\n `\"uniqueness\": {\"vertices\": \"none\"|\"global\"|\"path\", \"edges\": \"none\"|\"global\"|\"path\"}`\n - **order**: traversal order can be *\"preorder\"*, *\"postorder\"* or *\"preorder-expander\"*\n - **graphName**: name of the graph that contains the edges.\n Either *edgeCollection* or *graphName* has to be given.\n In case both values are set the *graphName* is preferred.\n - **expander**: body (JavaScript) code of custom expander function\n *must* be set if *direction* attribute is **not** set\n function signature: *(config, vertex, path) -> array*\n expander must return an array of the connections for *vertex*\n each connection is an object with the attributes *edge* and *vertex*\n - **edgeCollection**: name of the collection that contains the edges.\n\n\n\n\n\nIf the Traversal is successfully executed *HTTP 200* will be returned.\nAdditionally the *result* object will be returned by the traversal.\n\nFor successful traversals, the returned JSON object has the\nfollowing properties:\n\n- *error*: boolean flag to indicate if an error occurred (*false*\n in this case)\n\n- *code*: the HTTP status code\n\n- *result*: the return value of the traversal\n\nIf the traversal specification is either missing or malformed, the server\nwill respond with *HTTP 400*.\n\nThe body of the response will then contain a JSON object with additional error\ndetails. The object has the following attributes:\n\n- *error*: boolean flag to indicate that an error occurred (*true* in this case)\n\n- *code*: the HTTP status code\n\n- *errorNum*: the server error number\n\n- *errorMessage*: a descriptive error message\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nIt is considered as deprecated from version 3.4.0 on.\nIt is superseded by AQL graph traversal.\n\n\n\n\n\n\n**Example:**\n In the following examples the underlying graph will contain five persons\n*Alice*, *Bob*, *Charlie*, *Dave* and *Eve*.\nWe will have the following directed relations:\n\n- *Alice* knows *Bob*\n- *Bob* knows *Charlie*\n- *Bob* knows *Dave*\n- *Eve* knows *Alice*\n- *Eve* knows *Bob*\n\nThe starting vertex will always be Alice.\n\nFollow only outbound edges\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"outbound\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : { \n      \"vertices\" : [ \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_YzHmgNa--_\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"bob\", \n          \"_id\" : \"persons/bob\", \n          \"_rev\" : \"_YzHmgNa--B\", \n          \"name\" : \"Bob\" \n        }, \n        { \n          \"_key\" : \"charlie\", \n          \"_id\" : \"persons/charlie\", \n          \"_rev\" : \"_YzHmgNa--D\", \n          \"name\" : \"Charlie\" \n        }, \n        { \n          \"_key\" : \"dave\", \n          \"_id\" : \"persons/dave\", \n          \"_rev\" : \"_YzHmgNe--_\", \n          \"name\" : \"Dave\" \n        } \n      ], \n      \"paths\" : [ \n        { \n          \"edges\" : [ ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgNa--_\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"107356\", \n              \"_id\" : \"knows/107356\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgNe--D\", \n              \"vertex\" : \"alice\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgNa--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgNa--B\", \n              \"name\" : \"Bob\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"107356\", \n              \"_id\" : \"knows/107356\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgNe--D\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"107360\", \n              \"_id\" : \"knows/107360\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/charlie\", \n              \"_rev\" : \"_YzHmgNi--_\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgNa--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgNa--B\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"charlie\", \n              \"_id\" : \"persons/charlie\", \n              \"_rev\" : \"_YzHmgNa--D\", \n              \"name\" : \"Charlie\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"107356\", \n              \"_id\" : \"knows/107356\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgNe--D\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"107363\", \n              \"_id\" : \"knows/107363\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/dave\", \n              \"_rev\" : \"_YzHmgNi--B\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgNa--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgNa--B\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"dave\", \n              \"_id\" : \"persons/dave\", \n              \"_rev\" : \"_YzHmgNe--_\", \n              \"name\" : \"Dave\" \n            } \n          ] \n        } \n      ] \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Follow only inbound edges\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"inbound\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : { \n      \"vertices\" : [ \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_YzHmgCy--_\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"eve\", \n          \"_id\" : \"persons/eve\", \n          \"_rev\" : \"_YzHmgC6--_\", \n          \"name\" : \"Eve\" \n        } \n      ], \n      \"paths\" : [ \n        { \n          \"edges\" : [ ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgCy--_\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"107066\", \n              \"_id\" : \"knows/107066\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgD---B\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgCy--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmgC6--_\", \n              \"name\" : \"Eve\" \n            } \n          ] \n        } \n      ] \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Follow any direction of edges\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"any\", \n  \"uniqueness\" : { \n    \"vertices\" : \"none\", \n    \"edges\" : \"global\" \n  } \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : { \n      \"vertices\" : [ \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_YzHmfve--_\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"bob\", \n          \"_id\" : \"persons/bob\", \n          \"_rev\" : \"_YzHmfve--B\", \n          \"name\" : \"Bob\" \n        }, \n        { \n          \"_key\" : \"charlie\", \n          \"_id\" : \"persons/charlie\", \n          \"_rev\" : \"_YzHmfve--D\", \n          \"name\" : \"Charlie\" \n        }, \n        { \n          \"_key\" : \"dave\", \n          \"_id\" : \"persons/dave\", \n          \"_rev\" : \"_YzHmfvi--_\", \n          \"name\" : \"Dave\" \n        }, \n        { \n          \"_key\" : \"eve\", \n          \"_id\" : \"persons/eve\", \n          \"_rev\" : \"_YzHmfvi--B\", \n          \"name\" : \"Eve\" \n        }, \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_YzHmfve--_\", \n          \"name\" : \"Alice\" \n        } \n      ], \n      \"paths\" : [ \n        { \n          \"edges\" : [ ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmfve--_\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106567\", \n              \"_id\" : \"knows/106567\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfvi--D\", \n              \"vertex\" : \"alice\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmfve--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfve--B\", \n              \"name\" : \"Bob\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106567\", \n              \"_id\" : \"knows/106567\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfvi--D\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"106571\", \n              \"_id\" : \"knows/106571\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/charlie\", \n              \"_rev\" : \"_YzHmfvi--F\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmfve--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfve--B\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"charlie\", \n              \"_id\" : \"persons/charlie\", \n              \"_rev\" : \"_YzHmfve--D\", \n              \"name\" : \"Charlie\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106567\", \n              \"_id\" : \"knows/106567\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfvi--D\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"106574\", \n              \"_id\" : \"knows/106574\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/dave\", \n              \"_rev\" : \"_YzHmfvm--_\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmfve--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfve--B\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"dave\", \n              \"_id\" : \"persons/dave\", \n              \"_rev\" : \"_YzHmfvi--_\", \n              \"name\" : \"Dave\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106567\", \n              \"_id\" : \"knows/106567\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfvi--D\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"106580\", \n              \"_id\" : \"knows/106580\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfvm--D\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmfve--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfve--B\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmfvi--B\", \n              \"name\" : \"Eve\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106567\", \n              \"_id\" : \"knows/106567\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfvi--D\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"106580\", \n              \"_id\" : \"knows/106580\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfvm--D\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"106577\", \n              \"_id\" : \"knows/106577\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmfvm--B\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmfve--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfve--B\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmfvi--B\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmfve--_\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        } \n      ] \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Excluding *Charlie* and *Bob*\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"outbound\", \n  \"filter\" : \"if (vertex.name === \\\"Bob\\\" ||     vertex.name === \\\"Charlie\\\") {  return \\\"exclude\\\";}return;\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : { \n      \"vertices\" : [ \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_YzHmf9G--_\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"dave\", \n          \"_id\" : \"persons/dave\", \n          \"_rev\" : \"_YzHmf9K--D\", \n          \"name\" : \"Dave\" \n        } \n      ], \n      \"paths\" : [ \n        { \n          \"edges\" : [ ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf9G--_\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106921\", \n              \"_id\" : \"knows/106921\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf9O--B\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"106928\", \n              \"_id\" : \"knows/106928\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/dave\", \n              \"_rev\" : \"_YzHmf9S--_\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf9G--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf9K--_\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"dave\", \n              \"_id\" : \"persons/dave\", \n              \"_rev\" : \"_YzHmf9K--D\", \n              \"name\" : \"Dave\" \n            } \n          ] \n        } \n      ] \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Do not follow edges from *Bob*\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"outbound\", \n  \"filter\" : \"if (vertex.name === \\\"Bob\\\") {return \\\"prune\\\";}return;\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : { \n      \"vertices\" : [ \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_YzHmgAG--_\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"bob\", \n          \"_id\" : \"persons/bob\", \n          \"_rev\" : \"_YzHmgAG--B\", \n          \"name\" : \"Bob\" \n        } \n      ], \n      \"paths\" : [ \n        { \n          \"edges\" : [ ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgAG--_\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106991\", \n              \"_id\" : \"knows/106991\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgAO--_\", \n              \"vertex\" : \"alice\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgAG--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgAG--B\", \n              \"name\" : \"Bob\" \n            } \n          ] \n        } \n      ] \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Visit only nodes in a depth of at least 2\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"outbound\", \n  \"minDepth\" : 2 \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : { \n      \"vertices\" : [ \n        { \n          \"_key\" : \"charlie\", \n          \"_id\" : \"persons/charlie\", \n          \"_rev\" : \"_YzHmgKy--B\", \n          \"name\" : \"Charlie\" \n        }, \n        { \n          \"_key\" : \"dave\", \n          \"_id\" : \"persons/dave\", \n          \"_rev\" : \"_YzHmgKy--D\", \n          \"name\" : \"Dave\" \n        } \n      ], \n      \"paths\" : [ \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"107286\", \n              \"_id\" : \"knows/107286\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgK2--B\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"107290\", \n              \"_id\" : \"knows/107290\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/charlie\", \n              \"_rev\" : \"_YzHmgK2--D\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgKu--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgKy--_\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"charlie\", \n              \"_id\" : \"persons/charlie\", \n              \"_rev\" : \"_YzHmgKy--B\", \n              \"name\" : \"Charlie\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"107286\", \n              \"_id\" : \"knows/107286\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgK2--B\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"107293\", \n              \"_id\" : \"knows/107293\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/dave\", \n              \"_rev\" : \"_YzHmgK6--_\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgKu--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgKy--_\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"dave\", \n              \"_id\" : \"persons/dave\", \n              \"_rev\" : \"_YzHmgKy--D\", \n              \"name\" : \"Dave\" \n            } \n          ] \n        } \n      ] \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Visit only nodes in a depth of at most 1\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"outbound\", \n  \"maxDepth\" : 1 \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : { \n      \"vertices\" : [ \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_YzHmgFe--_\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"bob\", \n          \"_id\" : \"persons/bob\", \n          \"_rev\" : \"_YzHmgFe--B\", \n          \"name\" : \"Bob\" \n        } \n      ], \n      \"paths\" : [ \n        { \n          \"edges\" : [ ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgFe--_\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"107122\", \n              \"_id\" : \"knows/107122\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgFi--D\", \n              \"vertex\" : \"alice\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgFe--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgFe--B\", \n              \"name\" : \"Bob\" \n            } \n          ] \n        } \n      ] \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Using a visitor function to return vertex ids only\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"outbound\", \n  \"visitor\" : \"result.visited.vertices.push(vertex._id);\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : { \n      \"vertices\" : [ \n        \"persons/alice\", \n        \"persons/bob\", \n        \"persons/charlie\", \n        \"persons/dave\" \n      ], \n      \"paths\" : [ ] \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Count all visited nodes and return a list of nodes only\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"outbound\", \n  \"init\" : \"result.visited = 0; result.myVertices = [ ];\", \n  \"visitor\" : \"result.visited++; result.myVertices.push(vertex);\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : 4, \n    \"myVertices\" : [ \n      { \n        \"_key\" : \"alice\", \n        \"_id\" : \"persons/alice\", \n        \"_rev\" : \"_YzHmgTi--_\", \n        \"name\" : \"Alice\" \n      }, \n      { \n        \"_key\" : \"bob\", \n        \"_id\" : \"persons/bob\", \n        \"_rev\" : \"_YzHmgTi--B\", \n        \"name\" : \"Bob\" \n      }, \n      { \n        \"_key\" : \"charlie\", \n        \"_id\" : \"persons/charlie\", \n        \"_rev\" : \"_YzHmgTm--_\", \n        \"name\" : \"Charlie\" \n      }, \n      { \n        \"_key\" : \"dave\", \n        \"_id\" : \"persons/dave\", \n        \"_rev\" : \"_YzHmgTm--B\", \n        \"name\" : \"Dave\" \n      } \n    ] \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Expand only inbound edges of *Alice* and outbound edges of *Eve*\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"expander\" : \"var connections = [ ];if (vertex.name === \\\"Alice\\\") {config.datasource.getInEdges(vertex).forEach(function (e) {connections.push({ vertex: require(\\\"internal\\\").db._document(e._from), edge: e});});}if (vertex.name === \\\"Eve\\\") {config.datasource.getOutEdges(vertex).forEach(function (e) {connections.push({vertex: require(\\\"internal\\\").db._document(e._to), edge: e});});}return connections;\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : { \n      \"vertices\" : [ \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_YzHmgWG--_\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"eve\", \n          \"_id\" : \"persons/eve\", \n          \"_rev\" : \"_YzHmgWO--_\", \n          \"name\" : \"Eve\" \n        }, \n        { \n          \"_key\" : \"bob\", \n          \"_id\" : \"persons/bob\", \n          \"_rev\" : \"_YzHmgWK--_\", \n          \"name\" : \"Bob\" \n        } \n      ], \n      \"paths\" : [ \n        { \n          \"edges\" : [ ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgWG--_\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"107602\", \n              \"_id\" : \"knows/107602\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgWS--B\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgWG--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmgWO--_\", \n              \"name\" : \"Eve\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"107602\", \n              \"_id\" : \"knows/107602\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgWS--B\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"107605\", \n              \"_id\" : \"knows/107605\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgWS--D\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgWG--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmgWO--_\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgWK--_\", \n              \"name\" : \"Bob\" \n            } \n          ] \n        } \n      ] \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Follow the *depthfirst* strategy\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"any\", \n  \"strategy\" : \"depthfirst\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : { \n      \"vertices\" : [ \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_YzHmf2u--_\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"bob\", \n          \"_id\" : \"persons/bob\", \n          \"_rev\" : \"_YzHmf2y--_\", \n          \"name\" : \"Bob\" \n        }, \n        { \n          \"_key\" : \"charlie\", \n          \"_id\" : \"persons/charlie\", \n          \"_rev\" : \"_YzHmf2y--B\", \n          \"name\" : \"Charlie\" \n        }, \n        { \n          \"_key\" : \"dave\", \n          \"_id\" : \"persons/dave\", \n          \"_rev\" : \"_YzHmf22--_\", \n          \"name\" : \"Dave\" \n        }, \n        { \n          \"_key\" : \"eve\", \n          \"_id\" : \"persons/eve\", \n          \"_rev\" : \"_YzHmf22--B\", \n          \"name\" : \"Eve\" \n        }, \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_YzHmf2u--_\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"eve\", \n          \"_id\" : \"persons/eve\", \n          \"_rev\" : \"_YzHmf22--B\", \n          \"name\" : \"Eve\" \n        }, \n        { \n          \"_key\" : \"bob\", \n          \"_id\" : \"persons/bob\", \n          \"_rev\" : \"_YzHmf2y--_\", \n          \"name\" : \"Bob\" \n        }, \n        { \n          \"_key\" : \"charlie\", \n          \"_id\" : \"persons/charlie\", \n          \"_rev\" : \"_YzHmf2y--B\", \n          \"name\" : \"Charlie\" \n        }, \n        { \n          \"_key\" : \"dave\", \n          \"_id\" : \"persons/dave\", \n          \"_rev\" : \"_YzHmf22--_\", \n          \"name\" : \"Dave\" \n        }, \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_YzHmf2u--_\", \n          \"name\" : \"Alice\" \n        } \n      ], \n      \"paths\" : [ \n        { \n          \"edges\" : [ ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf2u--_\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106744\", \n              \"_id\" : \"knows/106744\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf22--D\", \n              \"vertex\" : \"alice\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf2u--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf2y--_\", \n              \"name\" : \"Bob\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106744\", \n              \"_id\" : \"knows/106744\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf22--D\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"106748\", \n              \"_id\" : \"knows/106748\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/charlie\", \n              \"_rev\" : \"_YzHmf26---\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf2u--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf2y--_\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"charlie\", \n              \"_id\" : \"persons/charlie\", \n              \"_rev\" : \"_YzHmf2y--B\", \n              \"name\" : \"Charlie\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106744\", \n              \"_id\" : \"knows/106744\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf22--D\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"106751\", \n              \"_id\" : \"knows/106751\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/dave\", \n              \"_rev\" : \"_YzHmf26--A\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf2u--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf2y--_\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"dave\", \n              \"_id\" : \"persons/dave\", \n              \"_rev\" : \"_YzHmf22--_\", \n              \"name\" : \"Dave\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106744\", \n              \"_id\" : \"knows/106744\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf22--D\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"106757\", \n              \"_id\" : \"knows/106757\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf26--E\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf2u--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf2y--_\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmf22--B\", \n              \"name\" : \"Eve\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106744\", \n              \"_id\" : \"knows/106744\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf22--D\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"106757\", \n              \"_id\" : \"knows/106757\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf26--E\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"106754\", \n              \"_id\" : \"knows/106754\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf26--C\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf2u--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf2y--_\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmf22--B\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf2u--_\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106754\", \n              \"_id\" : \"knows/106754\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf26--C\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf2u--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmf22--B\", \n              \"name\" : \"Eve\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106754\", \n              \"_id\" : \"knows/106754\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf26--C\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"106757\", \n              \"_id\" : \"knows/106757\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf26--E\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf2u--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmf22--B\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf2y--_\", \n              \"name\" : \"Bob\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106754\", \n              \"_id\" : \"knows/106754\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf26--C\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"106757\", \n              \"_id\" : \"knows/106757\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf26--E\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"106748\", \n              \"_id\" : \"knows/106748\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/charlie\", \n              \"_rev\" : \"_YzHmf26---\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf2u--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmf22--B\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf2y--_\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"charlie\", \n              \"_id\" : \"persons/charlie\", \n              \"_rev\" : \"_YzHmf2y--B\", \n              \"name\" : \"Charlie\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106754\", \n              \"_id\" : \"knows/106754\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf26--C\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"106757\", \n              \"_id\" : \"knows/106757\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf26--E\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"106751\", \n              \"_id\" : \"knows/106751\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/dave\", \n              \"_rev\" : \"_YzHmf26--A\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf2u--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmf22--B\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf2y--_\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"dave\", \n              \"_id\" : \"persons/dave\", \n              \"_rev\" : \"_YzHmf22--_\", \n              \"name\" : \"Dave\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106754\", \n              \"_id\" : \"knows/106754\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf26--C\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"106757\", \n              \"_id\" : \"knows/106757\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf26--E\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"106744\", \n              \"_id\" : \"knows/106744\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf22--D\", \n              \"vertex\" : \"alice\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf2u--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmf22--B\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf2y--_\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf2u--_\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        } \n      ] \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Using *postorder* ordering\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"any\", \n  \"order\" : \"postorder\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : { \n      \"vertices\" : [ \n        { \n          \"_key\" : \"charlie\", \n          \"_id\" : \"persons/charlie\", \n          \"_rev\" : \"_YzHmgQK--D\", \n          \"name\" : \"Charlie\" \n        }, \n        { \n          \"_key\" : \"dave\", \n          \"_id\" : \"persons/dave\", \n          \"_rev\" : \"_YzHmgQO--_\", \n          \"name\" : \"Dave\" \n        }, \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_YzHmgQK--_\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"eve\", \n          \"_id\" : \"persons/eve\", \n          \"_rev\" : \"_YzHmgQO--B\", \n          \"name\" : \"Eve\" \n        }, \n        { \n          \"_key\" : \"bob\", \n          \"_id\" : \"persons/bob\", \n          \"_rev\" : \"_YzHmgQK--B\", \n          \"name\" : \"Bob\" \n        }, \n        { \n          \"_key\" : \"charlie\", \n          \"_id\" : \"persons/charlie\", \n          \"_rev\" : \"_YzHmgQK--D\", \n          \"name\" : \"Charlie\" \n        }, \n        { \n          \"_key\" : \"dave\", \n          \"_id\" : \"persons/dave\", \n          \"_rev\" : \"_YzHmgQO--_\", \n          \"name\" : \"Dave\" \n        }, \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_YzHmgQK--_\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"bob\", \n          \"_id\" : \"persons/bob\", \n          \"_rev\" : \"_YzHmgQK--B\", \n          \"name\" : \"Bob\" \n        }, \n        { \n          \"_key\" : \"eve\", \n          \"_id\" : \"persons/eve\", \n          \"_rev\" : \"_YzHmgQO--B\", \n          \"name\" : \"Eve\" \n        }, \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_YzHmgQK--_\", \n          \"name\" : \"Alice\" \n        } \n      ], \n      \"paths\" : [ \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"107426\", \n              \"_id\" : \"knows/107426\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgQO--D\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"107430\", \n              \"_id\" : \"knows/107430\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/charlie\", \n              \"_rev\" : \"_YzHmgQS--_\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgQK--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgQK--B\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"charlie\", \n              \"_id\" : \"persons/charlie\", \n              \"_rev\" : \"_YzHmgQK--D\", \n              \"name\" : \"Charlie\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"107426\", \n              \"_id\" : \"knows/107426\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgQO--D\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"107433\", \n              \"_id\" : \"knows/107433\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/dave\", \n              \"_rev\" : \"_YzHmgQS--B\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgQK--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgQK--B\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"dave\", \n              \"_id\" : \"persons/dave\", \n              \"_rev\" : \"_YzHmgQO--_\", \n              \"name\" : \"Dave\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"107426\", \n              \"_id\" : \"knows/107426\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgQO--D\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"107439\", \n              \"_id\" : \"knows/107439\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgQS--F\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"107436\", \n              \"_id\" : \"knows/107436\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgQS--D\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgQK--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgQK--B\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmgQO--B\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgQK--_\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"107426\", \n              \"_id\" : \"knows/107426\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgQO--D\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"107439\", \n              \"_id\" : \"knows/107439\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgQS--F\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgQK--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgQK--B\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmgQO--B\", \n              \"name\" : \"Eve\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"107426\", \n              \"_id\" : \"knows/107426\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgQO--D\", \n              \"vertex\" : \"alice\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgQK--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgQK--B\", \n              \"name\" : \"Bob\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"107436\", \n              \"_id\" : \"knows/107436\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgQS--D\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"107439\", \n              \"_id\" : \"knows/107439\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgQS--F\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"107430\", \n              \"_id\" : \"knows/107430\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/charlie\", \n              \"_rev\" : \"_YzHmgQS--_\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgQK--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmgQO--B\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgQK--B\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"charlie\", \n              \"_id\" : \"persons/charlie\", \n              \"_rev\" : \"_YzHmgQK--D\", \n              \"name\" : \"Charlie\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"107436\", \n              \"_id\" : \"knows/107436\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgQS--D\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"107439\", \n              \"_id\" : \"knows/107439\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgQS--F\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"107433\", \n              \"_id\" : \"knows/107433\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/dave\", \n              \"_rev\" : \"_YzHmgQS--B\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgQK--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmgQO--B\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgQK--B\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"dave\", \n              \"_id\" : \"persons/dave\", \n              \"_rev\" : \"_YzHmgQO--_\", \n              \"name\" : \"Dave\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"107436\", \n              \"_id\" : \"knows/107436\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgQS--D\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"107439\", \n              \"_id\" : \"knows/107439\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgQS--F\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"107426\", \n              \"_id\" : \"knows/107426\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgQO--D\", \n              \"vertex\" : \"alice\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgQK--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmgQO--B\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgQK--B\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgQK--_\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"107436\", \n              \"_id\" : \"knows/107436\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgQS--D\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"107439\", \n              \"_id\" : \"knows/107439\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgQS--F\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgQK--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmgQO--B\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmgQK--B\", \n              \"name\" : \"Bob\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"107436\", \n              \"_id\" : \"knows/107436\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgQS--D\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgQK--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmgQO--B\", \n              \"name\" : \"Eve\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmgQK--_\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        } \n      ] \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Using *backward* item-ordering:\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"any\", \n  \"itemOrder\" : \"backward\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : { \n      \"vertices\" : [ \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_YzHmfzO--_\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"eve\", \n          \"_id\" : \"persons/eve\", \n          \"_rev\" : \"_YzHmfzS--F\", \n          \"name\" : \"Eve\" \n        }, \n        { \n          \"_key\" : \"bob\", \n          \"_id\" : \"persons/bob\", \n          \"_rev\" : \"_YzHmfzS--_\", \n          \"name\" : \"Bob\" \n        }, \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_YzHmfzO--_\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"dave\", \n          \"_id\" : \"persons/dave\", \n          \"_rev\" : \"_YzHmfzS--D\", \n          \"name\" : \"Dave\" \n        }, \n        { \n          \"_key\" : \"charlie\", \n          \"_id\" : \"persons/charlie\", \n          \"_rev\" : \"_YzHmfzS--B\", \n          \"name\" : \"Charlie\" \n        }, \n        { \n          \"_key\" : \"bob\", \n          \"_id\" : \"persons/bob\", \n          \"_rev\" : \"_YzHmfzS--_\", \n          \"name\" : \"Bob\" \n        }, \n        { \n          \"_key\" : \"eve\", \n          \"_id\" : \"persons/eve\", \n          \"_rev\" : \"_YzHmfzS--F\", \n          \"name\" : \"Eve\" \n        }, \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_YzHmfzO--_\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"dave\", \n          \"_id\" : \"persons/dave\", \n          \"_rev\" : \"_YzHmfzS--D\", \n          \"name\" : \"Dave\" \n        }, \n        { \n          \"_key\" : \"charlie\", \n          \"_id\" : \"persons/charlie\", \n          \"_rev\" : \"_YzHmfzS--B\", \n          \"name\" : \"Charlie\" \n        } \n      ], \n      \"paths\" : [ \n        { \n          \"edges\" : [ ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmfzO--_\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106658\", \n              \"_id\" : \"knows/106658\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmfza--_\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmfzO--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmfzS--F\", \n              \"name\" : \"Eve\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106658\", \n              \"_id\" : \"knows/106658\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmfza--_\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"106661\", \n              \"_id\" : \"knows/106661\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfza--B\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmfzO--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmfzS--F\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfzS--_\", \n              \"name\" : \"Bob\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106658\", \n              \"_id\" : \"knows/106658\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmfza--_\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"106661\", \n              \"_id\" : \"knows/106661\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfza--B\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"106648\", \n              \"_id\" : \"knows/106648\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfzW--_\", \n              \"vertex\" : \"alice\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmfzO--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmfzS--F\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfzS--_\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmfzO--_\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106658\", \n              \"_id\" : \"knows/106658\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmfza--_\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"106661\", \n              \"_id\" : \"knows/106661\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfza--B\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"106655\", \n              \"_id\" : \"knows/106655\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/dave\", \n              \"_rev\" : \"_YzHmfzW--D\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmfzO--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmfzS--F\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfzS--_\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"dave\", \n              \"_id\" : \"persons/dave\", \n              \"_rev\" : \"_YzHmfzS--D\", \n              \"name\" : \"Dave\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106658\", \n              \"_id\" : \"knows/106658\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmfza--_\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"106661\", \n              \"_id\" : \"knows/106661\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfza--B\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"106652\", \n              \"_id\" : \"knows/106652\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/charlie\", \n              \"_rev\" : \"_YzHmfzW--B\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmfzO--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmfzS--F\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfzS--_\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"charlie\", \n              \"_id\" : \"persons/charlie\", \n              \"_rev\" : \"_YzHmfzS--B\", \n              \"name\" : \"Charlie\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106648\", \n              \"_id\" : \"knows/106648\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfzW--_\", \n              \"vertex\" : \"alice\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmfzO--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfzS--_\", \n              \"name\" : \"Bob\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106648\", \n              \"_id\" : \"knows/106648\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfzW--_\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"106661\", \n              \"_id\" : \"knows/106661\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfza--B\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmfzO--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfzS--_\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmfzS--F\", \n              \"name\" : \"Eve\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106648\", \n              \"_id\" : \"knows/106648\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfzW--_\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"106661\", \n              \"_id\" : \"knows/106661\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfza--B\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"106658\", \n              \"_id\" : \"knows/106658\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmfza--_\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmfzO--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfzS--_\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmfzS--F\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmfzO--_\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106648\", \n              \"_id\" : \"knows/106648\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfzW--_\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"106655\", \n              \"_id\" : \"knows/106655\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/dave\", \n              \"_rev\" : \"_YzHmfzW--D\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmfzO--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfzS--_\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"dave\", \n              \"_id\" : \"persons/dave\", \n              \"_rev\" : \"_YzHmfzS--D\", \n              \"name\" : \"Dave\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106648\", \n              \"_id\" : \"knows/106648\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfzW--_\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"106652\", \n              \"_id\" : \"knows/106652\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/charlie\", \n              \"_rev\" : \"_YzHmfzW--B\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmfzO--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmfzS--_\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"charlie\", \n              \"_id\" : \"persons/charlie\", \n              \"_rev\" : \"_YzHmfzS--B\", \n              \"name\" : \"Charlie\" \n            } \n          ] \n        } \n      ] \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Edges should only be included once globally,\nbut nodes are included every time they are visited\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"any\", \n  \"uniqueness\" : { \n    \"vertices\" : \"none\", \n    \"edges\" : \"global\" \n  } \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : { \n      \"vertices\" : [ \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_YzHmf6G--_\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"bob\", \n          \"_id\" : \"persons/bob\", \n          \"_rev\" : \"_YzHmf6K--_\", \n          \"name\" : \"Bob\" \n        }, \n        { \n          \"_key\" : \"charlie\", \n          \"_id\" : \"persons/charlie\", \n          \"_rev\" : \"_YzHmf6K--B\", \n          \"name\" : \"Charlie\" \n        }, \n        { \n          \"_key\" : \"dave\", \n          \"_id\" : \"persons/dave\", \n          \"_rev\" : \"_YzHmf6O--_\", \n          \"name\" : \"Dave\" \n        }, \n        { \n          \"_key\" : \"eve\", \n          \"_id\" : \"persons/eve\", \n          \"_rev\" : \"_YzHmf6O--B\", \n          \"name\" : \"Eve\" \n        }, \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_YzHmf6G--_\", \n          \"name\" : \"Alice\" \n        } \n      ], \n      \"paths\" : [ \n        { \n          \"edges\" : [ ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf6G--_\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106840\", \n              \"_id\" : \"knows/106840\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf6O--D\", \n              \"vertex\" : \"alice\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf6G--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf6K--_\", \n              \"name\" : \"Bob\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106840\", \n              \"_id\" : \"knows/106840\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf6O--D\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"106844\", \n              \"_id\" : \"knows/106844\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/charlie\", \n              \"_rev\" : \"_YzHmf6S--_\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf6G--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf6K--_\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"charlie\", \n              \"_id\" : \"persons/charlie\", \n              \"_rev\" : \"_YzHmf6K--B\", \n              \"name\" : \"Charlie\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106840\", \n              \"_id\" : \"knows/106840\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf6O--D\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"106847\", \n              \"_id\" : \"knows/106847\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/dave\", \n              \"_rev\" : \"_YzHmf6S--B\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf6G--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf6K--_\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"dave\", \n              \"_id\" : \"persons/dave\", \n              \"_rev\" : \"_YzHmf6O--_\", \n              \"name\" : \"Dave\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106840\", \n              \"_id\" : \"knows/106840\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf6O--D\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"106853\", \n              \"_id\" : \"knows/106853\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf6W--_\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf6G--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf6K--_\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmf6O--B\", \n              \"name\" : \"Eve\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"106840\", \n              \"_id\" : \"knows/106840\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf6O--D\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"106853\", \n              \"_id\" : \"knows/106853\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf6W--_\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"106850\", \n              \"_id\" : \"knows/106850\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf6S--D\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf6G--_\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_YzHmf6K--_\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_YzHmf6O--B\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_YzHmf6G--_\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        } \n      ] \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n If the underlying graph is cyclic, *maxIterations* should be set\n\nThe underlying graph has two vertices *Alice* and *Bob*.\nWith the directed edges:\n\n- *Alice* knows *Bob*\n- *Bob* knows *Alice*\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"any\", \n  \"uniqueness\" : { \n    \"vertices\" : \"none\", \n    \"edges\" : \"none\" \n  }, \n  \"maxIterations\" : 5 \n}\nEOF\n\nHTTP/1.1 Internal Server Error\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : true, \n  \"code\" : 500, \n  \"errorNum\" : 1909, \n  \"errorMessage\" : \"too many iterations - try increasing the value of 'maxIterations'\" \n}\n
\n\n\n\n\n\n", + "description": "\n\nStarts a traversal starting from a given vertex and following.\nedges contained in a given edgeCollection. The request must\ncontain the following attributes.\n\n\n**A JSON object with these properties is required:**\n\n - **sort**: body (JavaScript) code of a custom comparison function\n for the edges. The signature of this function is\n *(l, r) -> integer* (where l and r are edges) and must\n return -1 if l is smaller than, +1 if l is greater than,\n and 0 if l and r are equal. The reason for this is the\n following: The order of edges returned for a certain\n vertex is undefined. This is because there is no natural\n order of edges for a vertex with multiple connected edges.\n To explicitly define the order in which edges on the\n vertex are followed, you can specify an edge comparator\n function with this attribute. Note that the value here has\n to be a string to conform to the JSON standard, which in\n turn is parsed as function body on the server side. Furthermore\n note that this attribute is only used for the standard\n expanders. If you use your custom expander you have to\n do the sorting yourself within the expander code.\n - **direction**: direction for traversal\n - *if set*, must be either *\"outbound\"*, *\"inbound\"*, or *\"any\"*\n - *if not set*, the *expander* attribute must be specified\n - **minDepth**: ANDed with any existing filters):\n visits only nodes in at least the given depth\n - **startVertex**: id of the startVertex, e.g. *\"users/foo\"*.\n - **visitor**: body (JavaScript) code of custom visitor function\n function signature: *(config, result, vertex, path, connected) -> void*\n The visitor function can do anything, but its return value is ignored. To\n populate a result, use the *result* variable by reference. Note that the\n *connected* argument is only populated when the *order* attribute is set\n to *\"preorder-expander\"*.\n - **itemOrder**: item iteration order can be *\"forward\"* or *\"backward\"*\n - **strategy**: traversal strategy can be *\"depthfirst\"* or *\"breadthfirst\"*\n - **filter**: default is to include all nodes:\n body (JavaScript code) of custom filter function\n function signature: *(config, vertex, path) -> mixed*\n can return four different string values:\n - *\"exclude\"* -> this vertex will not be visited.\n - *\"prune\"* -> the edges of this vertex will not be followed.\n - *\"\"* or *undefined* -> visit the vertex and follow its edges.\n - *Array* -> containing any combination of the above.\n If there is at least one *\"exclude\"* or *\"prune\"* respectively\n is contained, it's effect will occur.\n - **init**: body (JavaScript) code of custom result initialization function\n function signature: *(config, result) -> void*\n initialize any values in result with what is required\n - **maxIterations**: Maximum number of iterations in each traversal. This number can be\n set to prevent endless loops in traversal of cyclic graphs. When a traversal performs\n as many iterations as the *maxIterations* value, the traversal will abort with an\n error. If *maxIterations* is not set, a server-defined value may be used.\n - **maxDepth**: ANDed with any existing filters visits only nodes in at most the given depth\n - **uniqueness**: specifies uniqueness for vertices and edges visited.\n If set, must be an object like this:\n `\"uniqueness\": {\"vertices\": \"none\"|\"global\"|\"path\", \"edges\": \"none\"|\"global\"|\"path\"}`\n - **order**: traversal order can be *\"preorder\"*, *\"postorder\"* or *\"preorder-expander\"*\n - **graphName**: name of the graph that contains the edges.\n Either *edgeCollection* or *graphName* has to be given.\n In case both values are set the *graphName* is preferred.\n - **expander**: body (JavaScript) code of custom expander function\n *must* be set if *direction* attribute is **not** set\n function signature: *(config, vertex, path) -> array*\n expander must return an array of the connections for *vertex*\n each connection is an object with the attributes *edge* and *vertex*\n - **edgeCollection**: name of the collection that contains the edges.\n\n\n\n\n\nIf the Traversal is successfully executed *HTTP 200* will be returned.\nAdditionally the *result* object will be returned by the traversal.\n\nFor successful traversals, the returned JSON object has the\nfollowing properties:\n\n- *error*: boolean flag to indicate if an error occurred (*false*\n in this case)\n\n- *code*: the HTTP status code\n\n- *result*: the return value of the traversal\n\nIf the traversal specification is either missing or malformed, the server\nwill respond with *HTTP 400*.\n\nThe body of the response will then contain a JSON object with additional error\ndetails. The object has the following attributes:\n\n- *error*: boolean flag to indicate that an error occurred (*true* in this case)\n\n- *code*: the HTTP status code\n\n- *errorNum*: the server error number\n\n- *errorMessage*: a descriptive error message\n\n\n\n\n**Warning:** \nThis route should no longer be used.\nIt is considered as deprecated from version 3.4.0 on.\nIt is superseded by AQL graph traversal.\n\n\n\n\n\n\n**Example:**\n In the following examples the underlying graph will contain five persons\n*Alice*, *Bob*, *Charlie*, *Dave* and *Eve*.\nWe will have the following directed relations:\n\n- *Alice* knows *Bob*\n- *Bob* knows *Charlie*\n- *Bob* knows *Dave*\n- *Eve* knows *Alice*\n- *Eve* knows *Bob*\n\nThe starting vertex will always be Alice.\n\nFollow only outbound edges\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"outbound\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : { \n      \"vertices\" : [ \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_ZCIDZyu---\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"bob\", \n          \"_id\" : \"persons/bob\", \n          \"_rev\" : \"_ZCIDZyu--A\", \n          \"name\" : \"Bob\" \n        }, \n        { \n          \"_key\" : \"charlie\", \n          \"_id\" : \"persons/charlie\", \n          \"_rev\" : \"_ZCIDZyu--C\", \n          \"name\" : \"Charlie\" \n        }, \n        { \n          \"_key\" : \"dave\", \n          \"_id\" : \"persons/dave\", \n          \"_rev\" : \"_ZCIDZyu--E\", \n          \"name\" : \"Dave\" \n        } \n      ], \n      \"paths\" : [ \n        { \n          \"edges\" : [ ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZyu---\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"71128\", \n              \"_id\" : \"knows/71128\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZyy--A\", \n              \"vertex\" : \"alice\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZyu---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZyu--A\", \n              \"name\" : \"Bob\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"71128\", \n              \"_id\" : \"knows/71128\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZyy--A\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"71130\", \n              \"_id\" : \"knows/71130\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/charlie\", \n              \"_rev\" : \"_ZCIDZy2---\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZyu---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZyu--A\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"charlie\", \n              \"_id\" : \"persons/charlie\", \n              \"_rev\" : \"_ZCIDZyu--C\", \n              \"name\" : \"Charlie\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"71128\", \n              \"_id\" : \"knows/71128\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZyy--A\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"71132\", \n              \"_id\" : \"knows/71132\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/dave\", \n              \"_rev\" : \"_ZCIDZy2--A\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZyu---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZyu--A\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"dave\", \n              \"_id\" : \"persons/dave\", \n              \"_rev\" : \"_ZCIDZyu--E\", \n              \"name\" : \"Dave\" \n            } \n          ] \n        } \n      ] \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Follow only inbound edges\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"inbound\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : { \n      \"vertices\" : [ \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_ZCIDZnG---\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"eve\", \n          \"_id\" : \"persons/eve\", \n          \"_rev\" : \"_ZCIDZnK--A\", \n          \"name\" : \"Eve\" \n        } \n      ], \n      \"paths\" : [ \n        { \n          \"edges\" : [ ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZnG---\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70934\", \n              \"_id\" : \"knows/70934\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZnO--A\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZnG---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZnK--A\", \n              \"name\" : \"Eve\" \n            } \n          ] \n        } \n      ] \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Follow any direction of edges\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"any\", \n  \"uniqueness\" : { \n    \"vertices\" : \"none\", \n    \"edges\" : \"global\" \n  } \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : { \n      \"vertices\" : [ \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_ZCIDZfW---\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"bob\", \n          \"_id\" : \"persons/bob\", \n          \"_rev\" : \"_ZCIDZfW--A\", \n          \"name\" : \"Bob\" \n        }, \n        { \n          \"_key\" : \"charlie\", \n          \"_id\" : \"persons/charlie\", \n          \"_rev\" : \"_ZCIDZfa---\", \n          \"name\" : \"Charlie\" \n        }, \n        { \n          \"_key\" : \"dave\", \n          \"_id\" : \"persons/dave\", \n          \"_rev\" : \"_ZCIDZfa--A\", \n          \"name\" : \"Dave\" \n        }, \n        { \n          \"_key\" : \"eve\", \n          \"_id\" : \"persons/eve\", \n          \"_rev\" : \"_ZCIDZfa--C\", \n          \"name\" : \"Eve\" \n        }, \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_ZCIDZfW---\", \n          \"name\" : \"Alice\" \n        } \n      ], \n      \"paths\" : [ \n        { \n          \"edges\" : [ ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZfW---\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70571\", \n              \"_id\" : \"knows/70571\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZfa--E\", \n              \"vertex\" : \"alice\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZfW---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZfW--A\", \n              \"name\" : \"Bob\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70571\", \n              \"_id\" : \"knows/70571\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZfa--E\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"70573\", \n              \"_id\" : \"knows/70573\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/charlie\", \n              \"_rev\" : \"_ZCIDZfe---\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZfW---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZfW--A\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"charlie\", \n              \"_id\" : \"persons/charlie\", \n              \"_rev\" : \"_ZCIDZfa---\", \n              \"name\" : \"Charlie\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70571\", \n              \"_id\" : \"knows/70571\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZfa--E\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"70575\", \n              \"_id\" : \"knows/70575\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/dave\", \n              \"_rev\" : \"_ZCIDZfe--A\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZfW---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZfW--A\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"dave\", \n              \"_id\" : \"persons/dave\", \n              \"_rev\" : \"_ZCIDZfa--A\", \n              \"name\" : \"Dave\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70571\", \n              \"_id\" : \"knows/70571\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZfa--E\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"70579\", \n              \"_id\" : \"knows/70579\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZfe--E\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZfW---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZfW--A\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZfa--C\", \n              \"name\" : \"Eve\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70571\", \n              \"_id\" : \"knows/70571\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZfa--E\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"70579\", \n              \"_id\" : \"knows/70579\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZfe--E\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"70577\", \n              \"_id\" : \"knows/70577\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZfe--C\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZfW---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZfW--A\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZfa--C\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZfW---\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        } \n      ] \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Excluding *Charlie* and *Bob*\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"outbound\", \n  \"filter\" : \"if (vertex.name === \\\"Bob\\\" ||     vertex.name === \\\"Charlie\\\") {  return \\\"exclude\\\";}return;\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : { \n      \"vertices\" : [ \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_ZCIDZlS---\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"dave\", \n          \"_id\" : \"persons/dave\", \n          \"_rev\" : \"_ZCIDZlW--C\", \n          \"name\" : \"Dave\" \n        } \n      ], \n      \"paths\" : [ \n        { \n          \"edges\" : [ ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZlS---\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70837\", \n              \"_id\" : \"knows/70837\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZla--A\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"70841\", \n              \"_id\" : \"knows/70841\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/dave\", \n              \"_rev\" : \"_ZCIDZla--E\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZlS---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZlW---\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"dave\", \n              \"_id\" : \"persons/dave\", \n              \"_rev\" : \"_ZCIDZlW--C\", \n              \"name\" : \"Dave\" \n            } \n          ] \n        } \n      ] \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Do not follow edges from *Bob*\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"outbound\", \n  \"filter\" : \"if (vertex.name === \\\"Bob\\\") {return \\\"prune\\\";}return;\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : { \n      \"vertices\" : [ \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_ZCIDZmO---\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"bob\", \n          \"_id\" : \"persons/bob\", \n          \"_rev\" : \"_ZCIDZmO--A\", \n          \"name\" : \"Bob\" \n        } \n      ], \n      \"paths\" : [ \n        { \n          \"edges\" : [ ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZmO---\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70885\", \n              \"_id\" : \"knows/70885\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZmS--E\", \n              \"vertex\" : \"alice\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZmO---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZmO--A\", \n              \"name\" : \"Bob\" \n            } \n          ] \n        } \n      ] \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Visit only nodes in a depth of at least 2\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"outbound\", \n  \"minDepth\" : 2 \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : { \n      \"vertices\" : [ \n        { \n          \"_key\" : \"charlie\", \n          \"_id\" : \"persons/charlie\", \n          \"_rev\" : \"_ZCIDZx2--C\", \n          \"name\" : \"Charlie\" \n        }, \n        { \n          \"_key\" : \"dave\", \n          \"_id\" : \"persons/dave\", \n          \"_rev\" : \"_ZCIDZx2--E\", \n          \"name\" : \"Dave\" \n        } \n      ], \n      \"paths\" : [ \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"71080\", \n              \"_id\" : \"knows/71080\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZx6--A\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"71082\", \n              \"_id\" : \"knows/71082\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/charlie\", \n              \"_rev\" : \"_ZCIDZx6--C\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZx2---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZx2--A\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"charlie\", \n              \"_id\" : \"persons/charlie\", \n              \"_rev\" : \"_ZCIDZx2--C\", \n              \"name\" : \"Charlie\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"71080\", \n              \"_id\" : \"knows/71080\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZx6--A\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"71084\", \n              \"_id\" : \"knows/71084\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/dave\", \n              \"_rev\" : \"_ZCIDZy----\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZx2---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZx2--A\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"dave\", \n              \"_id\" : \"persons/dave\", \n              \"_rev\" : \"_ZCIDZx2--E\", \n              \"name\" : \"Dave\" \n            } \n          ] \n        } \n      ] \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Visit only nodes in a depth of at most 1\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"outbound\", \n  \"maxDepth\" : 1 \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : { \n      \"vertices\" : [ \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_ZCIDZn2---\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"bob\", \n          \"_id\" : \"persons/bob\", \n          \"_rev\" : \"_ZCIDZn2--A\", \n          \"name\" : \"Bob\" \n        } \n      ], \n      \"paths\" : [ \n        { \n          \"edges\" : [ ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZn2---\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70972\", \n              \"_id\" : \"knows/70972\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZn6--E\", \n              \"vertex\" : \"alice\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZn2---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZn2--A\", \n              \"name\" : \"Bob\" \n            } \n          ] \n        } \n      ] \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Using a visitor function to return vertex ids only\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"outbound\", \n  \"visitor\" : \"result.visited.vertices.push(vertex._id);\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : { \n      \"vertices\" : [ \n        \"persons/alice\", \n        \"persons/bob\", \n        \"persons/charlie\", \n        \"persons/dave\" \n      ], \n      \"paths\" : [ ] \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Count all visited nodes and return a list of nodes only\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"outbound\", \n  \"init\" : \"result.visited = 0; result.myVertices = [ ];\", \n  \"visitor\" : \"result.visited++; result.myVertices.push(vertex);\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : 4, \n    \"myVertices\" : [ \n      { \n        \"_key\" : \"alice\", \n        \"_id\" : \"persons/alice\", \n        \"_rev\" : \"_ZCIDZ1O---\", \n        \"name\" : \"Alice\" \n      }, \n      { \n        \"_key\" : \"bob\", \n        \"_id\" : \"persons/bob\", \n        \"_rev\" : \"_ZCIDZ1O--A\", \n        \"name\" : \"Bob\" \n      }, \n      { \n        \"_key\" : \"charlie\", \n        \"_id\" : \"persons/charlie\", \n        \"_rev\" : \"_ZCIDZ1O--C\", \n        \"name\" : \"Charlie\" \n      }, \n      { \n        \"_key\" : \"dave\", \n        \"_id\" : \"persons/dave\", \n        \"_rev\" : \"_ZCIDZ1S---\", \n        \"name\" : \"Dave\" \n      } \n    ] \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Expand only inbound edges of *Alice* and outbound edges of *Eve*\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"expander\" : \"var connections = [ ];if (vertex.name === \\\"Alice\\\") {config.datasource.getInEdges(vertex).forEach(function (e) {connections.push({ vertex: require(\\\"internal\\\").db._document(e._from), edge: e});});}if (vertex.name === \\\"Eve\\\") {config.datasource.getOutEdges(vertex).forEach(function (e) {connections.push({vertex: require(\\\"internal\\\").db._document(e._to), edge: e});});}return connections;\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : { \n      \"vertices\" : [ \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_ZCIDZ2----\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"eve\", \n          \"_id\" : \"persons/eve\", \n          \"_rev\" : \"_ZCIDZ2C--E\", \n          \"name\" : \"Eve\" \n        }, \n        { \n          \"_key\" : \"bob\", \n          \"_id\" : \"persons/bob\", \n          \"_rev\" : \"_ZCIDZ2C---\", \n          \"name\" : \"Bob\" \n        } \n      ], \n      \"paths\" : [ \n        { \n          \"edges\" : [ ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZ2----\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"71304\", \n              \"_id\" : \"knows/71304\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZ2G--E\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZ2----\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZ2C--E\", \n              \"name\" : \"Eve\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"71304\", \n              \"_id\" : \"knows/71304\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZ2G--E\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"71306\", \n              \"_id\" : \"knows/71306\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZ2K---\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZ2----\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZ2C--E\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZ2C---\", \n              \"name\" : \"Bob\" \n            } \n          ] \n        } \n      ] \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Follow the *depthfirst* strategy\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"any\", \n  \"strategy\" : \"depthfirst\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : { \n      \"vertices\" : [ \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_ZCIDZia---\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"bob\", \n          \"_id\" : \"persons/bob\", \n          \"_rev\" : \"_ZCIDZia--A\", \n          \"name\" : \"Bob\" \n        }, \n        { \n          \"_key\" : \"charlie\", \n          \"_id\" : \"persons/charlie\", \n          \"_rev\" : \"_ZCIDZie---\", \n          \"name\" : \"Charlie\" \n        }, \n        { \n          \"_key\" : \"dave\", \n          \"_id\" : \"persons/dave\", \n          \"_rev\" : \"_ZCIDZie--A\", \n          \"name\" : \"Dave\" \n        }, \n        { \n          \"_key\" : \"eve\", \n          \"_id\" : \"persons/eve\", \n          \"_rev\" : \"_ZCIDZie--C\", \n          \"name\" : \"Eve\" \n        }, \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_ZCIDZia---\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"eve\", \n          \"_id\" : \"persons/eve\", \n          \"_rev\" : \"_ZCIDZie--C\", \n          \"name\" : \"Eve\" \n        }, \n        { \n          \"_key\" : \"bob\", \n          \"_id\" : \"persons/bob\", \n          \"_rev\" : \"_ZCIDZia--A\", \n          \"name\" : \"Bob\" \n        }, \n        { \n          \"_key\" : \"charlie\", \n          \"_id\" : \"persons/charlie\", \n          \"_rev\" : \"_ZCIDZie---\", \n          \"name\" : \"Charlie\" \n        }, \n        { \n          \"_key\" : \"dave\", \n          \"_id\" : \"persons/dave\", \n          \"_rev\" : \"_ZCIDZie--A\", \n          \"name\" : \"Dave\" \n        }, \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_ZCIDZia---\", \n          \"name\" : \"Alice\" \n        } \n      ], \n      \"paths\" : [ \n        { \n          \"edges\" : [ ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZia---\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70704\", \n              \"_id\" : \"knows/70704\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZii---\", \n              \"vertex\" : \"alice\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZia---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZia--A\", \n              \"name\" : \"Bob\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70704\", \n              \"_id\" : \"knows/70704\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZii---\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"70706\", \n              \"_id\" : \"knows/70706\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/charlie\", \n              \"_rev\" : \"_ZCIDZii--A\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZia---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZia--A\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"charlie\", \n              \"_id\" : \"persons/charlie\", \n              \"_rev\" : \"_ZCIDZie---\", \n              \"name\" : \"Charlie\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70704\", \n              \"_id\" : \"knows/70704\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZii---\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"70708\", \n              \"_id\" : \"knows/70708\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/dave\", \n              \"_rev\" : \"_ZCIDZii--C\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZia---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZia--A\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"dave\", \n              \"_id\" : \"persons/dave\", \n              \"_rev\" : \"_ZCIDZie--A\", \n              \"name\" : \"Dave\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70704\", \n              \"_id\" : \"knows/70704\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZii---\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"70712\", \n              \"_id\" : \"knows/70712\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZim---\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZia---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZia--A\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZie--C\", \n              \"name\" : \"Eve\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70704\", \n              \"_id\" : \"knows/70704\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZii---\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"70712\", \n              \"_id\" : \"knows/70712\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZim---\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"70710\", \n              \"_id\" : \"knows/70710\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZii--E\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZia---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZia--A\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZie--C\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZia---\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70710\", \n              \"_id\" : \"knows/70710\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZii--E\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZia---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZie--C\", \n              \"name\" : \"Eve\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70710\", \n              \"_id\" : \"knows/70710\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZii--E\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"70712\", \n              \"_id\" : \"knows/70712\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZim---\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZia---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZie--C\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZia--A\", \n              \"name\" : \"Bob\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70710\", \n              \"_id\" : \"knows/70710\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZii--E\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"70712\", \n              \"_id\" : \"knows/70712\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZim---\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"70706\", \n              \"_id\" : \"knows/70706\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/charlie\", \n              \"_rev\" : \"_ZCIDZii--A\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZia---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZie--C\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZia--A\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"charlie\", \n              \"_id\" : \"persons/charlie\", \n              \"_rev\" : \"_ZCIDZie---\", \n              \"name\" : \"Charlie\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70710\", \n              \"_id\" : \"knows/70710\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZii--E\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"70712\", \n              \"_id\" : \"knows/70712\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZim---\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"70708\", \n              \"_id\" : \"knows/70708\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/dave\", \n              \"_rev\" : \"_ZCIDZii--C\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZia---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZie--C\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZia--A\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"dave\", \n              \"_id\" : \"persons/dave\", \n              \"_rev\" : \"_ZCIDZie--A\", \n              \"name\" : \"Dave\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70710\", \n              \"_id\" : \"knows/70710\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZii--E\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"70712\", \n              \"_id\" : \"knows/70712\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZim---\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"70704\", \n              \"_id\" : \"knows/70704\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZii---\", \n              \"vertex\" : \"alice\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZia---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZie--C\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZia--A\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZia---\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        } \n      ] \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Using *postorder* ordering\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"any\", \n  \"order\" : \"postorder\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : { \n      \"vertices\" : [ \n        { \n          \"_key\" : \"charlie\", \n          \"_id\" : \"persons/charlie\", \n          \"_rev\" : \"_ZCIDZzu--A\", \n          \"name\" : \"Charlie\" \n        }, \n        { \n          \"_key\" : \"dave\", \n          \"_id\" : \"persons/dave\", \n          \"_rev\" : \"_ZCIDZzy---\", \n          \"name\" : \"Dave\" \n        }, \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_ZCIDZzq---\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"eve\", \n          \"_id\" : \"persons/eve\", \n          \"_rev\" : \"_ZCIDZzy--A\", \n          \"name\" : \"Eve\" \n        }, \n        { \n          \"_key\" : \"bob\", \n          \"_id\" : \"persons/bob\", \n          \"_rev\" : \"_ZCIDZzu---\", \n          \"name\" : \"Bob\" \n        }, \n        { \n          \"_key\" : \"charlie\", \n          \"_id\" : \"persons/charlie\", \n          \"_rev\" : \"_ZCIDZzu--A\", \n          \"name\" : \"Charlie\" \n        }, \n        { \n          \"_key\" : \"dave\", \n          \"_id\" : \"persons/dave\", \n          \"_rev\" : \"_ZCIDZzy---\", \n          \"name\" : \"Dave\" \n        }, \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_ZCIDZzq---\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"bob\", \n          \"_id\" : \"persons/bob\", \n          \"_rev\" : \"_ZCIDZzu---\", \n          \"name\" : \"Bob\" \n        }, \n        { \n          \"_key\" : \"eve\", \n          \"_id\" : \"persons/eve\", \n          \"_rev\" : \"_ZCIDZzy--A\", \n          \"name\" : \"Eve\" \n        }, \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_ZCIDZzq---\", \n          \"name\" : \"Alice\" \n        } \n      ], \n      \"paths\" : [ \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"71176\", \n              \"_id\" : \"knows/71176\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZzy--C\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"71178\", \n              \"_id\" : \"knows/71178\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/charlie\", \n              \"_rev\" : \"_ZCIDZzy--E\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZzq---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZzu---\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"charlie\", \n              \"_id\" : \"persons/charlie\", \n              \"_rev\" : \"_ZCIDZzu--A\", \n              \"name\" : \"Charlie\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"71176\", \n              \"_id\" : \"knows/71176\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZzy--C\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"71180\", \n              \"_id\" : \"knows/71180\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/dave\", \n              \"_rev\" : \"_ZCIDZz2---\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZzq---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZzu---\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"dave\", \n              \"_id\" : \"persons/dave\", \n              \"_rev\" : \"_ZCIDZzy---\", \n              \"name\" : \"Dave\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"71176\", \n              \"_id\" : \"knows/71176\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZzy--C\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"71184\", \n              \"_id\" : \"knows/71184\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZz2--C\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"71182\", \n              \"_id\" : \"knows/71182\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZz2--A\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZzq---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZzu---\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZzy--A\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZzq---\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"71176\", \n              \"_id\" : \"knows/71176\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZzy--C\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"71184\", \n              \"_id\" : \"knows/71184\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZz2--C\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZzq---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZzu---\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZzy--A\", \n              \"name\" : \"Eve\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"71176\", \n              \"_id\" : \"knows/71176\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZzy--C\", \n              \"vertex\" : \"alice\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZzq---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZzu---\", \n              \"name\" : \"Bob\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"71182\", \n              \"_id\" : \"knows/71182\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZz2--A\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"71184\", \n              \"_id\" : \"knows/71184\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZz2--C\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"71178\", \n              \"_id\" : \"knows/71178\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/charlie\", \n              \"_rev\" : \"_ZCIDZzy--E\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZzq---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZzy--A\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZzu---\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"charlie\", \n              \"_id\" : \"persons/charlie\", \n              \"_rev\" : \"_ZCIDZzu--A\", \n              \"name\" : \"Charlie\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"71182\", \n              \"_id\" : \"knows/71182\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZz2--A\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"71184\", \n              \"_id\" : \"knows/71184\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZz2--C\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"71180\", \n              \"_id\" : \"knows/71180\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/dave\", \n              \"_rev\" : \"_ZCIDZz2---\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZzq---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZzy--A\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZzu---\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"dave\", \n              \"_id\" : \"persons/dave\", \n              \"_rev\" : \"_ZCIDZzy---\", \n              \"name\" : \"Dave\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"71182\", \n              \"_id\" : \"knows/71182\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZz2--A\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"71184\", \n              \"_id\" : \"knows/71184\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZz2--C\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"71176\", \n              \"_id\" : \"knows/71176\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZzy--C\", \n              \"vertex\" : \"alice\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZzq---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZzy--A\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZzu---\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZzq---\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"71182\", \n              \"_id\" : \"knows/71182\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZz2--A\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"71184\", \n              \"_id\" : \"knows/71184\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZz2--C\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZzq---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZzy--A\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZzu---\", \n              \"name\" : \"Bob\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"71182\", \n              \"_id\" : \"knows/71182\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZz2--A\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZzq---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZzy--A\", \n              \"name\" : \"Eve\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZzq---\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        } \n      ] \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Using *backward* item-ordering:\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"any\", \n  \"itemOrder\" : \"backward\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : { \n      \"vertices\" : [ \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_ZCIDZg2---\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"eve\", \n          \"_id\" : \"persons/eve\", \n          \"_rev\" : \"_ZCIDZg6---\", \n          \"name\" : \"Eve\" \n        }, \n        { \n          \"_key\" : \"bob\", \n          \"_id\" : \"persons/bob\", \n          \"_rev\" : \"_ZCIDZg2--A\", \n          \"name\" : \"Bob\" \n        }, \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_ZCIDZg2---\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"dave\", \n          \"_id\" : \"persons/dave\", \n          \"_rev\" : \"_ZCIDZg2--E\", \n          \"name\" : \"Dave\" \n        }, \n        { \n          \"_key\" : \"charlie\", \n          \"_id\" : \"persons/charlie\", \n          \"_rev\" : \"_ZCIDZg2--C\", \n          \"name\" : \"Charlie\" \n        }, \n        { \n          \"_key\" : \"bob\", \n          \"_id\" : \"persons/bob\", \n          \"_rev\" : \"_ZCIDZg2--A\", \n          \"name\" : \"Bob\" \n        }, \n        { \n          \"_key\" : \"eve\", \n          \"_id\" : \"persons/eve\", \n          \"_rev\" : \"_ZCIDZg6---\", \n          \"name\" : \"Eve\" \n        }, \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_ZCIDZg2---\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"dave\", \n          \"_id\" : \"persons/dave\", \n          \"_rev\" : \"_ZCIDZg2--E\", \n          \"name\" : \"Dave\" \n        }, \n        { \n          \"_key\" : \"charlie\", \n          \"_id\" : \"persons/charlie\", \n          \"_rev\" : \"_ZCIDZg2--C\", \n          \"name\" : \"Charlie\" \n        } \n      ], \n      \"paths\" : [ \n        { \n          \"edges\" : [ ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZg2---\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70636\", \n              \"_id\" : \"knows/70636\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZh---A\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZg2---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZg6---\", \n              \"name\" : \"Eve\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70636\", \n              \"_id\" : \"knows/70636\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZh---A\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"70638\", \n              \"_id\" : \"knows/70638\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZh---C\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZg2---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZg6---\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZg2--A\", \n              \"name\" : \"Bob\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70636\", \n              \"_id\" : \"knows/70636\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZh---A\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"70638\", \n              \"_id\" : \"knows/70638\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZh---C\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"70630\", \n              \"_id\" : \"knows/70630\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZg6--A\", \n              \"vertex\" : \"alice\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZg2---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZg6---\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZg2--A\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZg2---\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70636\", \n              \"_id\" : \"knows/70636\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZh---A\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"70638\", \n              \"_id\" : \"knows/70638\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZh---C\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"70634\", \n              \"_id\" : \"knows/70634\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/dave\", \n              \"_rev\" : \"_ZCIDZh----\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZg2---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZg6---\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZg2--A\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"dave\", \n              \"_id\" : \"persons/dave\", \n              \"_rev\" : \"_ZCIDZg2--E\", \n              \"name\" : \"Dave\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70636\", \n              \"_id\" : \"knows/70636\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZh---A\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"70638\", \n              \"_id\" : \"knows/70638\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZh---C\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"70632\", \n              \"_id\" : \"knows/70632\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/charlie\", \n              \"_rev\" : \"_ZCIDZg6--C\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZg2---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZg6---\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZg2--A\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"charlie\", \n              \"_id\" : \"persons/charlie\", \n              \"_rev\" : \"_ZCIDZg2--C\", \n              \"name\" : \"Charlie\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70630\", \n              \"_id\" : \"knows/70630\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZg6--A\", \n              \"vertex\" : \"alice\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZg2---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZg2--A\", \n              \"name\" : \"Bob\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70630\", \n              \"_id\" : \"knows/70630\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZg6--A\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"70638\", \n              \"_id\" : \"knows/70638\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZh---C\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZg2---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZg2--A\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZg6---\", \n              \"name\" : \"Eve\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70630\", \n              \"_id\" : \"knows/70630\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZg6--A\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"70638\", \n              \"_id\" : \"knows/70638\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZh---C\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"70636\", \n              \"_id\" : \"knows/70636\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZh---A\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZg2---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZg2--A\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZg6---\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZg2---\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70630\", \n              \"_id\" : \"knows/70630\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZg6--A\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"70634\", \n              \"_id\" : \"knows/70634\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/dave\", \n              \"_rev\" : \"_ZCIDZh----\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZg2---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZg2--A\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"dave\", \n              \"_id\" : \"persons/dave\", \n              \"_rev\" : \"_ZCIDZg2--E\", \n              \"name\" : \"Dave\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70630\", \n              \"_id\" : \"knows/70630\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZg6--A\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"70632\", \n              \"_id\" : \"knows/70632\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/charlie\", \n              \"_rev\" : \"_ZCIDZg6--C\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZg2---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZg2--A\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"charlie\", \n              \"_id\" : \"persons/charlie\", \n              \"_rev\" : \"_ZCIDZg2--C\", \n              \"name\" : \"Charlie\" \n            } \n          ] \n        } \n      ] \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n Edges should only be included once globally,\nbut nodes are included every time they are visited\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"any\", \n  \"uniqueness\" : { \n    \"vertices\" : \"none\", \n    \"edges\" : \"global\" \n  } \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"result\" : { \n    \"visited\" : { \n      \"vertices\" : [ \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_ZCIDZkG---\", \n          \"name\" : \"Alice\" \n        }, \n        { \n          \"_key\" : \"bob\", \n          \"_id\" : \"persons/bob\", \n          \"_rev\" : \"_ZCIDZkG--A\", \n          \"name\" : \"Bob\" \n        }, \n        { \n          \"_key\" : \"charlie\", \n          \"_id\" : \"persons/charlie\", \n          \"_rev\" : \"_ZCIDZkG--C\", \n          \"name\" : \"Charlie\" \n        }, \n        { \n          \"_key\" : \"dave\", \n          \"_id\" : \"persons/dave\", \n          \"_rev\" : \"_ZCIDZkK---\", \n          \"name\" : \"Dave\" \n        }, \n        { \n          \"_key\" : \"eve\", \n          \"_id\" : \"persons/eve\", \n          \"_rev\" : \"_ZCIDZkK--A\", \n          \"name\" : \"Eve\" \n        }, \n        { \n          \"_key\" : \"alice\", \n          \"_id\" : \"persons/alice\", \n          \"_rev\" : \"_ZCIDZkG---\", \n          \"name\" : \"Alice\" \n        } \n      ], \n      \"paths\" : [ \n        { \n          \"edges\" : [ ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZkG---\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70778\", \n              \"_id\" : \"knows/70778\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZkK--C\", \n              \"vertex\" : \"alice\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZkG---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZkG--A\", \n              \"name\" : \"Bob\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70778\", \n              \"_id\" : \"knows/70778\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZkK--C\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"70780\", \n              \"_id\" : \"knows/70780\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/charlie\", \n              \"_rev\" : \"_ZCIDZkO---\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZkG---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZkG--A\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"charlie\", \n              \"_id\" : \"persons/charlie\", \n              \"_rev\" : \"_ZCIDZkG--C\", \n              \"name\" : \"Charlie\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70778\", \n              \"_id\" : \"knows/70778\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZkK--C\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"70782\", \n              \"_id\" : \"knows/70782\", \n              \"_from\" : \"persons/bob\", \n              \"_to\" : \"persons/dave\", \n              \"_rev\" : \"_ZCIDZkO--A\", \n              \"vertex\" : \"bob\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZkG---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZkG--A\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"dave\", \n              \"_id\" : \"persons/dave\", \n              \"_rev\" : \"_ZCIDZkK---\", \n              \"name\" : \"Dave\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70778\", \n              \"_id\" : \"knows/70778\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZkK--C\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"70786\", \n              \"_id\" : \"knows/70786\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZkO--E\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZkG---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZkG--A\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZkK--A\", \n              \"name\" : \"Eve\" \n            } \n          ] \n        }, \n        { \n          \"edges\" : [ \n            { \n              \"_key\" : \"70778\", \n              \"_id\" : \"knows/70778\", \n              \"_from\" : \"persons/alice\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZkK--C\", \n              \"vertex\" : \"alice\" \n            }, \n            { \n              \"_key\" : \"70786\", \n              \"_id\" : \"knows/70786\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZkO--E\", \n              \"vertex\" : \"eve\" \n            }, \n            { \n              \"_key\" : \"70784\", \n              \"_id\" : \"knows/70784\", \n              \"_from\" : \"persons/eve\", \n              \"_to\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZkO--C\", \n              \"vertex\" : \"eve\" \n            } \n          ], \n          \"vertices\" : [ \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZkG---\", \n              \"name\" : \"Alice\" \n            }, \n            { \n              \"_key\" : \"bob\", \n              \"_id\" : \"persons/bob\", \n              \"_rev\" : \"_ZCIDZkG--A\", \n              \"name\" : \"Bob\" \n            }, \n            { \n              \"_key\" : \"eve\", \n              \"_id\" : \"persons/eve\", \n              \"_rev\" : \"_ZCIDZkK--A\", \n              \"name\" : \"Eve\" \n            }, \n            { \n              \"_key\" : \"alice\", \n              \"_id\" : \"persons/alice\", \n              \"_rev\" : \"_ZCIDZkG---\", \n              \"name\" : \"Alice\" \n            } \n          ] \n        } \n      ] \n    } \n  }, \n  \"error\" : false, \n  \"code\" : 200 \n}\n
\n\n\n\n\n**Example:**\n If the underlying graph is cyclic, *maxIterations* should be set\n\nThe underlying graph has two vertices *Alice* and *Bob*.\nWith the directed edges:\n\n- *Alice* knows *Bob*\n- *Bob* knows *Alice*\n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/traversal <<EOF\n{ \n  \"startVertex\" : \"persons/alice\", \n  \"graphName\" : \"knows_graph\", \n  \"direction\" : \"any\", \n  \"uniqueness\" : { \n    \"vertices\" : \"none\", \n    \"edges\" : \"none\" \n  }, \n  \"maxIterations\" : 5 \n}\nEOF\n\nHTTP/1.1 Internal Server Error\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : true, \n  \"code\" : 500, \n  \"errorNum\" : 1909, \n  \"errorMessage\" : \"too many iterations - try increasing the value of 'maxIterations'\" \n}\n
\n\n\n\n\n\n", "operationId": "executesATraversal", "parameters": [ { @@ -14245,7 +14342,7 @@ }, "/_api/user/": { "get": { - "description": "\n\nFetches data about all users. You need the *Administrate* server access level\nin order to execute this REST call. Otherwise, you will only get information\nabout yourself.\n\nThe call will return a JSON object with at least the following\nattributes on success:\n\n- *user*: The name of the user as a string.\n- *active*: An optional flag that specifies whether the user is active.\n- *extra*: An optional JSON object with arbitrary extra data about the user.\n\n\n\n\n**Example:**\n \n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/user\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"result\" : [ \n    { \n      \"user\" : \"root\", \n      \"active\" : true, \n      \"extra\" : { \n      } \n    }, \n    { \n      \"user\" : \"admin\", \n      \"active\" : true, \n      \"extra\" : { \n      } \n    }, \n    { \n      \"user\" : \"tester\", \n      \"active\" : false, \n      \"extra\" : { \n      } \n    } \n  ] \n}\n
\n\n\n\n\n", + "description": "\n\nFetches data about all users. You need the *Administrate* server access level\nin order to execute this REST call. Otherwise, you will only get information\nabout yourself.\n\nThe call will return a JSON object with at least the following\nattributes on success:\n\n- *user*: The name of the user as a string.\n- *active*: An optional flag that specifies whether the user is active.\n- *extra*: An optional JSON object with arbitrary extra data about the user.\n\n\n\n\n**Example:**\n \n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/user\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"result\" : [ \n    { \n      \"user\" : \"tester\", \n      \"active\" : false, \n      \"extra\" : { \n      } \n    }, \n    { \n      \"user\" : \"admin\", \n      \"active\" : true, \n      \"extra\" : { \n      } \n    }, \n    { \n      \"user\" : \"root\", \n      \"active\" : true, \n      \"extra\" : { \n      } \n    } \n  ] \n}\n
\n\n\n\n\n", "operationId": "ListAvailableUsers", "parameters": [], "responses": { @@ -14436,7 +14533,7 @@ }, "/_api/user/{user}/database/": { "get": { - "description": "\n\nFetch the list of databases available to the specified *user*. You need\n*Administrate* for the server access level in order to execute this REST call.\n\nThe call will return a JSON object with the per-database access\nprivileges for the specified user. The *result* object will contain\nthe databases names as object keys, and the associated privileges\nfor the database as values.\n\nIn case you specified *full*, the result will contain the permissions\nfor the databases as well as the permissions for the collections.\n\n\n\n\n**Example:**\n \n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/user/anotherAdmin@secapp/database/\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"result\" : { \n    \"_system\" : \"rw\" \n  } \n}\n
\n\n\n\n\n**Example:**\n With the full response format:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/user/anotherAdmin@secapp/database?full=true\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"result\" : { \n    \"_system\" : { \n      \"permission\" : \"rw\", \n      \"collections\" : { \n        \"_jobs\" : \"undefined\", \n        \"_queues\" : \"undefined\", \n        \"_apps\" : \"undefined\", \n        \"_aqlfunctions\" : \"undefined\", \n        \"_graphs\" : \"undefined\", \n        \"_users\" : \"undefined\", \n        \"_appbundles\" : \"undefined\", \n        \"_analyzers\" : \"undefined\", \n        \"animals\" : \"undefined\", \n        \"_statisticsRaw\" : \"undefined\", \n        \"_statistics\" : \"undefined\", \n        \"_statistics15\" : \"undefined\", \n        \"demo\" : \"undefined\", \n        \"*\" : \"undefined\" \n      } \n    }, \n    \"*\" : { \n      \"permission\" : \"none\" \n    } \n  } \n}\n
\n\n\n\n\n\n\n\n", + "description": "\n\nFetch the list of databases available to the specified *user*. You need\n*Administrate* for the server access level in order to execute this REST call.\n\nThe call will return a JSON object with the per-database access\nprivileges for the specified user. The *result* object will contain\nthe databases names as object keys, and the associated privileges\nfor the database as values.\n\nIn case you specified *full*, the result will contain the permissions\nfor the databases as well as the permissions for the collections.\n\n\n\n\n**Example:**\n \n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/user/anotherAdmin@secapp/database/\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"result\" : { \n    \"_system\" : \"rw\" \n  } \n}\n
\n\n\n\n\n**Example:**\n With the full response format:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/user/anotherAdmin@secapp/database?full=true\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"result\" : { \n    \"_system\" : { \n      \"permission\" : \"rw\", \n      \"collections\" : { \n        \"_jobs\" : \"undefined\", \n        \"_apps\" : \"undefined\", \n        \"_aqlfunctions\" : \"undefined\", \n        \"_queues\" : \"undefined\", \n        \"_appbundles\" : \"undefined\", \n        \"demo\" : \"undefined\", \n        \"_users\" : \"undefined\", \n        \"_graphs\" : \"undefined\", \n        \"_analyzers\" : \"undefined\", \n        \"_statisticsRaw\" : \"undefined\", \n        \"_statistics\" : \"undefined\", \n        \"_statistics15\" : \"undefined\", \n        \"animals\" : \"undefined\", \n        \"*\" : \"undefined\" \n      } \n    }, \n    \"*\" : { \n      \"permission\" : \"none\" \n    } \n  } \n}\n
\n\n\n\n\n\n\n\n", "operationId": "ListTheAccessibleDatabasesForAUser", "parameters": [ { @@ -14776,7 +14873,7 @@ }, "/_api/version": { "get": { - "description": "\n\nReturns the server name and version number. The response is a JSON object\nwith the following attributes:\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nis returned in all cases.\n\n- **version**: the server version string. The string has the format\n\"*major*.*minor*.*sub*\". *major* and *minor* will be numeric, and *sub*\nmay contain a number or a textual version.\n- **details**:\n - **failure-tests**: *false* for production binaries (the facility to invoke fatal errors is disabled)\n - **boost-version**: which boost version do we bind\n - **zlib-version**: the version of the bundled zlib\n - **sse42**: do we have a SSE 4.2 enabled cpu?\n - **assertions**: do we have assertions compiled in (=> developer version)\n - **jemalloc**: *true* if we use jemalloc\n - **arm**: *false* - this is not running on an ARM cpu\n - **rocksdb-version**: the rocksdb version this release bundles\n - **cplusplus**: C++ standards version\n - **sizeof int**: number of bytes for *integers*\n - **openssl-version**: which openssl version do we link?\n - **platform**: the host os - *linux*, *windows* or *darwin*\n - **endianness**: currently only *little* is supported\n - **vpack-version**: the version of the used velocypack implementation\n - **icu-version**: Which version of ICU do we bundle\n - **mode**: the mode we're runnig as - one of [*server*, *console*, *script*]\n - **unaligned-access**: does this system support unaligned memory access?\n - **build-repository**: reference to the git-ID this was compiled from\n - **asm-crc32**: do we have assembler implemented CRC functions?\n - **host**: the host ID\n - **fd-setsize**: if not *poll* the fd setsize is valid for the maximum number of filedescriptors\n - **maintainer-mode**: *false* if this is a production binary\n - **sizeof void***: number of bytes for *void pointers*\n - **asan**: has this been compiled with the asan address sanitizer turned on? (should be false)\n - **build-date**: the date when this binary was created\n - **compiler**: which compiler did we use\n - **server-version**: the ArangoDB release version\n - **fd-client-event-handler**: which method do we use to handle fd-sets, *poll* should be here on linux.\n - **reactor-type**: *epoll* TODO \n - **architecture**: The CPU architecture, i.e. *64bit*\n - **debug**: *false* for production binaries\n - **full-version-string**: The full version string\n - **v8-version**: the bundled V8 javascript engine version\n- **server**: will always contain *arango*\n\n\n\n\n**Example:**\n Return the version information\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/version\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"server\" : \"arango\", \n  \"license\" : \"community\", \n  \"version\" : \"3.5.0-rc.4\" \n}\n
\n\n\n\n\n**Example:**\n Return the version information with details\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/version?details=true\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"server\" : \"arango\", \n  \"license\" : \"community\", \n  \"version\" : \"3.5.0-rc.4\", \n  \"details\" : { \n    \"architecture\" : \"64bit\", \n    \"arm\" : \"false\", \n    \"asan\" : \"false\", \n    \"asm-crc32\" : \"true\", \n    \"assertions\" : \"true\", \n    \"avx2\" : \"false\", \n    \"boost-version\" : \"1.69.0\", \n    \"build-date\" : \"2019-06-13 20:53:37\", \n    \"build-repository\" : \"heads/3.5-0-gf021ea68f7-dirty\", \n    \"compiler\" : \"gcc [7.4.0]\", \n    \"cplusplus\" : \"201402\", \n    \"curl-version\" : \"libcurl/7.63.0 OpenSSL/1.1.1c\", \n    \"debug\" : \"false\", \n    \"endianness\" : \"little\", \n    \"failure-tests\" : \"false\", \n    \"fd-client-event-handler\" : \"poll\", \n    \"fd-setsize\" : \"1024\", \n    \"full-version-string\" : \"ArangoDB 3.5.0-rc.4 [linux] 64bit maintainer mode, using jemalloc, build heads/3.5-0-gf021ea68f7-dirty, VPack 0.1.33, RocksDB 6.2.0, ICU 58.1, V8 7.1.302.28, OpenSSL 1.1.1c  28 May 2019\", \n    \"icu-version\" : \"58.1\", \n    \"iresearch-version\" : \"1.0.0.0\", \n    \"jemalloc\" : \"true\", \n    \"license\" : \"community\", \n    \"maintainer-mode\" : \"true\", \n    \"ndebug\" : \"true\", \n    \"openssl-version-compile-time\" : \"OpenSSL 1.1.1c  28 May 2019\", \n    \"openssl-version-run-time\" : \"OpenSSL 1.1.1c  28 May 2019\", \n    \"optimization-flags\" : \"-march=sandybridge -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mno-sse4a -mno-fma -mno-bmi2 -mno-avx2 -mno-xop -mno-fma4 -mno-avx512f -mno-avx512vl -mno-avx512pf -mno-avx512er -mno-avx512cd -mno-avx512dq -mno-avx512bw -mno-avx512ifma -mno-avx512vbmi\", \n    \"pic\" : \"2\", \n    \"pie\" : \"2\", \n    \"platform\" : \"linux\", \n    \"reactor-type\" : \"epoll\", \n    \"rocksdb-version\" : \"6.2.0\", \n    \"server-version\" : \"3.5.0-rc.4\", \n    \"sizeof int\" : \"4\", \n    \"sizeof long\" : \"8\", \n    \"sizeof void*\" : \"8\", \n    \"sse42\" : \"true\", \n    \"unaligned-access\" : \"true\", \n    \"v8-version\" : \"7.1.302.28\", \n    \"vpack-version\" : \"0.1.33\", \n    \"zlib-version\" : \"1.2.11\", \n    \"mode\" : \"server\", \n    \"role\" : \"SINGLE\", \n    \"host\" : \"e92663355763428d87d02231cea07c23\" \n  } \n}\n
\n\n\n\n\n", + "description": "\n\nReturns the server name and version number. The response is a JSON object\nwith the following attributes:\n\n\n**HTTP 200**\n*A json document with these Properties is returned:*\n\nis returned in all cases.\n\n- **version**: the server version string. The string has the format\n\"*major*.*minor*.*sub*\". *major* and *minor* will be numeric, and *sub*\nmay contain a number or a textual version.\n- **details**:\n - **failure-tests**: *false* for production binaries (the facility to invoke fatal errors is disabled)\n - **boost-version**: which boost version do we bind\n - **zlib-version**: the version of the bundled zlib\n - **sse42**: do we have a SSE 4.2 enabled cpu?\n - **assertions**: do we have assertions compiled in (=> developer version)\n - **jemalloc**: *true* if we use jemalloc\n - **arm**: *false* - this is not running on an ARM cpu\n - **rocksdb-version**: the rocksdb version this release bundles\n - **cplusplus**: C++ standards version\n - **sizeof int**: number of bytes for *integers*\n - **openssl-version**: which openssl version do we link?\n - **platform**: the host os - *linux*, *windows* or *darwin*\n - **endianness**: currently only *little* is supported\n - **vpack-version**: the version of the used velocypack implementation\n - **icu-version**: Which version of ICU do we bundle\n - **mode**: the mode we're runnig as - one of [*server*, *console*, *script*]\n - **unaligned-access**: does this system support unaligned memory access?\n - **build-repository**: reference to the git-ID this was compiled from\n - **asm-crc32**: do we have assembler implemented CRC functions?\n - **host**: the host ID\n - **fd-setsize**: if not *poll* the fd setsize is valid for the maximum number of filedescriptors\n - **maintainer-mode**: *false* if this is a production binary\n - **sizeof void***: number of bytes for *void pointers*\n - **asan**: has this been compiled with the asan address sanitizer turned on? (should be false)\n - **build-date**: the date when this binary was created\n - **compiler**: which compiler did we use\n - **server-version**: the ArangoDB release version\n - **fd-client-event-handler**: which method do we use to handle fd-sets, *poll* should be here on linux.\n - **reactor-type**: *epoll* TODO \n - **architecture**: The CPU architecture, i.e. *64bit*\n - **debug**: *false* for production binaries\n - **full-version-string**: The full version string\n - **v8-version**: the bundled V8 javascript engine version\n- **server**: will always contain *arango*\n\n\n\n\n**Example:**\n Return the version information\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/version\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"server\" : \"arango\", \n  \"license\" : \"enterprise\", \n  \"version\" : \"3.5.0-rc.6\" \n}\n
\n\n\n\n\n**Example:**\n Return the version information with details\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/version?details=true\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"server\" : \"arango\", \n  \"license\" : \"enterprise\", \n  \"version\" : \"3.5.0-rc.6\", \n  \"details\" : { \n    \"architecture\" : \"64bit\", \n    \"arm\" : \"false\", \n    \"asan\" : \"false\", \n    \"asm-crc32\" : \"true\", \n    \"assertions\" : \"true\", \n    \"avx2\" : \"false\", \n    \"boost-version\" : \"1.69.0\", \n    \"build-date\" : \"2019-07-30 09:41:37\", \n    \"build-repository\" : \"heads/bug-fix-3.5/fix-swagger-datatype-0-g058cc64050\", \n    \"compiler\" : \"gcc [8.3.0]\", \n    \"cplusplus\" : \"201402\", \n    \"curl-version\" : \"libcurl/7.63.0 OpenSSL/1.1.0k\", \n    \"debug\" : \"false\", \n    \"endianness\" : \"little\", \n    \"enterprise-version\" : \"enterprise\", \n    \"failure-tests\" : \"false\", \n    \"fd-client-event-handler\" : \"poll\", \n    \"fd-setsize\" : \"1024\", \n    \"full-version-string\" : \"ArangoDB 3.5.0-rc.6 enterprise [linux] 64bit maintainer mode, using jemalloc, build heads/bug-fix-3.5/fix-swagger-datatype-0-g058cc64050, VPack 0.1.33, RocksDB 6.2.0, ICU 58.1, V8 7.1.302.28, OpenSSL 1.1.0k  28 May 2019\", \n    \"icu-version\" : \"58.1\", \n    \"iresearch-version\" : \"1.0.0.0\", \n    \"jemalloc\" : \"true\", \n    \"license\" : \"enterprise\", \n    \"maintainer-mode\" : \"true\", \n    \"ndebug\" : \"true\", \n    \"openssl-version-compile-time\" : \"OpenSSL 1.1.0k  28 May 2019\", \n    \"openssl-version-run-time\" : \"OpenSSL 1.1.0k  28 May 2019\", \n    \"optimization-flags\" : \"-march=nehalem -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mno-sse4a -mno-avx -mno-fma -mno-bmi2 -mno-avx2 -mno-xop -mno-fma4 -mno-avx512f -mno-avx512vl -mno-avx512pf -mno-avx512er -mno-avx512cd -mno-avx512dq -mno-avx512bw -mno-avx512ifma -mno-avx512vbmi\", \n    \"pic\" : \"2\", \n    \"pie\" : \"2\", \n    \"platform\" : \"linux\", \n    \"reactor-type\" : \"epoll\", \n    \"rocksdb-version\" : \"6.2.0\", \n    \"server-version\" : \"3.5.0-rc.6\", \n    \"sizeof int\" : \"4\", \n    \"sizeof long\" : \"8\", \n    \"sizeof void*\" : \"8\", \n    \"sse42\" : \"true\", \n    \"unaligned-access\" : \"true\", \n    \"v8-version\" : \"7.1.302.28\", \n    \"vpack-version\" : \"0.1.33\", \n    \"zlib-version\" : \"1.2.11\", \n    \"mode\" : \"server\", \n    \"role\" : \"SINGLE\", \n    \"host\" : \"ff834ba6dc804c99b3e15f0765f597f6\" \n  } \n}\n
\n\n\n\n\n", "operationId": "RestVersionHandler", "parameters": [ { @@ -14810,7 +14907,7 @@ }, "/_api/view": { "get": { - "description": "\n\nReturns an object containing an array of all view descriptions.\n\n\n\n\n**Example:**\n Return information about all views:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/view\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"result\" : [ \n    { \n      \"globallyUniqueId\" : \"h82E80CF18F1A/108\", \n      \"id\" : \"108\", \n      \"name\" : \"demoView\", \n      \"type\" : \"arangosearch\" \n    } \n  ] \n}\n
\n\n\n\n", + "description": "\n\nReturns an object containing an array of all view descriptions.\n\n\n\n\n**Example:**\n Return information about all views:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/view\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"result\" : [ \n    { \n      \"globallyUniqueId\" : \"h224C52C430E1/99\", \n      \"id\" : \"99\", \n      \"name\" : \"demoView\", \n      \"type\" : \"arangosearch\" \n    } \n  ] \n}\n
\n\n\n\n", "operationId": "getViews:AllViews", "parameters": [], "responses": { @@ -14829,7 +14926,7 @@ }, "/_api/view#ArangoSearch": { "post": { - "description": "\n**A JSON object with these properties is required:**\n\n - **type**: The type of the view. must be equal to *\"arangosearch\"*\n - **name**: The name of the view.\n - **properties**:\n - **commitIntervalMsec**: Wait at least this many milliseconds between committing view data store\n changes and making documents visible to queries (default: 1000, to disable\n use: 0).\n For the case where there are a lot of inserts/updates, a lower value, until\n commit, will cause the index not to account for them and memory usage would\n continue to grow.\n For the case where there are a few inserts/updates, a higher value will impact\n performance and waste disk space for each commit call without any added\n benefits.
\n _Background:_\n For data retrieval ArangoSearch views follow the concept of\n \"eventually-consistent\", i.e. eventually all the data in ArangoDB will be\n matched by corresponding query expressions.\n The concept of ArangoSearch view \"commit\" operation is introduced to\n control the upper-bound on the time until document addition/removals are\n actually reflected by corresponding query expressions.\n Once a \"commit\" operation is complete all documents added/removed prior to\n the start of the \"commit\" operation will be reflected by queries invoked in\n subsequent ArangoDB transactions, in-progress ArangoDB transactions will\n still continue to return a repeatable-read state.\n - **links**:\n - **[collection-name]**:\n - **analyzers** (string): The list of analyzers to be used for indexing of string values\n (default: [\"identity\"]).\n - **fields**:\n - **field-name** (object): This is a recursive structure for the specific attribute path, potentially\n containing any of the following attributes:\n *analyzers*, *includeAllFields*, *trackListPositions*, *storeValues*\n Any attributes not specified are inherited from the parent.\n - **includeAllFields**: The flag determines whether or not to index all fields on a particular level of\n depth (default: false).\n - **trackListPositions**: The flag determines whether or not values in a lists should be treated separate\n (default: false).\n - **storeValues**: How should the view track the attribute values, this setting allows for\n additional value retrieval optimizations, one of:\n - *none*: Do not store values by the view\n - *id*: Store only information about value presence, to allow use of the EXISTS() function\n (default \"none\").\n - **consolidationIntervalMsec**: Wait at least this many milliseconds between applying 'consolidationPolicy' to\n consolidate view data store and possibly release space on the filesystem\n (default: 60000, to disable use: 0).\n For the case where there are a lot of data modification operations, a higher\n value could potentially have the data store consume more space and file handles.\n For the case where there are a few data modification operations, a lower value\n will impact performance due to no segment candidates available for\n consolidation.
\n _Background:_\n For data modification ArangoSearch views follow the concept of a\n \"versioned data store\". Thus old versions of data may be removed once there\n are no longer any users of the old data. The frequency of the cleanup and\n compaction operations are governed by 'consolidationIntervalMsec' and the\n candidates for compaction are selected via 'consolidationPolicy'.\n - **cleanupIntervalStep**: Wait at least this many commits between removing unused files in the\n ArangoSearch data directory (default: 10, to disable use: 0).\n For the case where the consolidation policies merge segments often (i.e. a lot\n of commit+consolidate), a lower value will cause a lot of disk space to be\n wasted.\n For the case where the consolidation policies rarely merge segments (i.e. few\n inserts/deletes), a higher value will impact performance without any added\n benefits.
\n _Background:_\n With every \"commit\" or \"consolidate\" operation a new state of the view\n internal data-structures is created on disk.\n Old states/snapshots are released once there are no longer any users\n remaining.\n However, the files for the released states/snapshots are left on disk, and\n only removed by \"cleanup\" operation.\n - **consolidationPolicy**:\n - **type**: The segment candidates for the \"consolidation\" operation are selected based\n upon several possible configurable formulas as defined by their types.\n The currently supported types are (default: \"bytes_accum\"):\n - *bytes_accum*: consolidate if and only if (`{threshold}` range `[0.0, 1.0]`):\n `{threshold} > (segment_bytes + sum_of_merge_candidate_segment_bytes) / all_segment_bytes`\n i.e. the sum of all candidate segment byte size is less than the total\n segment byte size multiplied by the `{threshold}`\n - *tier*: consolidate based on segment byte size and live document count\n as dictated by the customization attributes.\n\n\n\n\nCreates a new view with a given name and properties if it does not\nalready exist.\n\n**Note**: view can't be created with the links. Please use PUT/PATCH for links\nmanagement.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/view <<EOF\n{ \n  \"name\" : \"testViewBasics\", \n  \"type\" : \"arangosearch\" \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"globallyUniqueId\" : \"h82E80CF18F1A/107760\", \n  \"id\" : \"107760\", \n  \"name\" : \"testViewBasics\", \n  \"type\" : \"arangosearch\", \n  \"cleanupIntervalStep\" : 10, \n  \"commitIntervalMsec\" : 1000, \n  \"consolidationIntervalMsec\" : 60000, \n  \"consolidationPolicy\" : { \n    \"type\" : \"tier\", \n    \"segmentsBytesFloor\" : 2097152, \n    \"segmentsBytesMax\" : 5368709120, \n    \"segmentsMax\" : 10, \n    \"segmentsMin\" : 1, \n    \"minScore\" : 0 \n  }, \n  \"primarySort\" : [ ], \n  \"writebufferActive\" : 0, \n  \"writebufferIdle\" : 64, \n  \"writebufferSizeMax\" : 33554432, \n  \"links\" : { \n  } \n}\n
\n\n\n\n", + "description": "\n**A JSON object with these properties is required:**\n\n - **type**: The type of the view. must be equal to *\"arangosearch\"*\n - **name**: The name of the view.\n - **properties**:\n - **commitIntervalMsec**: Wait at least this many milliseconds between committing view data store\n changes and making documents visible to queries (default: 1000, to disable\n use: 0).\n For the case where there are a lot of inserts/updates, a lower value, until\n commit, will cause the index not to account for them and memory usage would\n continue to grow.\n For the case where there are a few inserts/updates, a higher value will impact\n performance and waste disk space for each commit call without any added\n benefits.
\n _Background:_\n For data retrieval ArangoSearch views follow the concept of\n \"eventually-consistent\", i.e. eventually all the data in ArangoDB will be\n matched by corresponding query expressions.\n The concept of ArangoSearch view \"commit\" operation is introduced to\n control the upper-bound on the time until document addition/removals are\n actually reflected by corresponding query expressions.\n Once a \"commit\" operation is complete all documents added/removed prior to\n the start of the \"commit\" operation will be reflected by queries invoked in\n subsequent ArangoDB transactions, in-progress ArangoDB transactions will\n still continue to return a repeatable-read state.\n - **links**:\n - **[collection-name]**:\n - **analyzers** (string): The list of analyzers to be used for indexing of string values\n (default: [\"identity\"]).\n - **fields**:\n - **field-name** (object): This is a recursive structure for the specific attribute path, potentially\n containing any of the following attributes:\n *analyzers*, *includeAllFields*, *trackListPositions*, *storeValues*\n Any attributes not specified are inherited from the parent.\n - **includeAllFields**: The flag determines whether or not to index all fields on a particular level of\n depth (default: false).\n - **trackListPositions**: The flag determines whether or not values in a lists should be treated separate\n (default: false).\n - **storeValues**: How should the view track the attribute values, this setting allows for\n additional value retrieval optimizations, one of:\n - *none*: Do not store values by the view\n - *id*: Store only information about value presence, to allow use of the EXISTS() function\n (default \"none\").\n - **consolidationIntervalMsec**: Wait at least this many milliseconds between applying 'consolidationPolicy' to\n consolidate view data store and possibly release space on the filesystem\n (default: 60000, to disable use: 0).\n For the case where there are a lot of data modification operations, a higher\n value could potentially have the data store consume more space and file handles.\n For the case where there are a few data modification operations, a lower value\n will impact performance due to no segment candidates available for\n consolidation.
\n _Background:_\n For data modification ArangoSearch views follow the concept of a\n \"versioned data store\". Thus old versions of data may be removed once there\n are no longer any users of the old data. The frequency of the cleanup and\n compaction operations are governed by 'consolidationIntervalMsec' and the\n candidates for compaction are selected via 'consolidationPolicy'.\n - **cleanupIntervalStep**: Wait at least this many commits between removing unused files in the\n ArangoSearch data directory (default: 10, to disable use: 0).\n For the case where the consolidation policies merge segments often (i.e. a lot\n of commit+consolidate), a lower value will cause a lot of disk space to be\n wasted.\n For the case where the consolidation policies rarely merge segments (i.e. few\n inserts/deletes), a higher value will impact performance without any added\n benefits.
\n _Background:_\n With every \"commit\" or \"consolidate\" operation a new state of the view\n internal data-structures is created on disk.\n Old states/snapshots are released once there are no longer any users\n remaining.\n However, the files for the released states/snapshots are left on disk, and\n only removed by \"cleanup\" operation.\n - **consolidationPolicy**:\n - **type**: The segment candidates for the \"consolidation\" operation are selected based\n upon several possible configurable formulas as defined by their types.\n The currently supported types are (default: \"bytes_accum\"):\n - *bytes_accum*: consolidate if and only if (`{threshold}` range `[0.0, 1.0]`):\n `{threshold} > (segment_bytes + sum_of_merge_candidate_segment_bytes) / all_segment_bytes`\n i.e. the sum of all candidate segment byte size is less than the total\n segment byte size multiplied by the `{threshold}`\n - *tier*: consolidate based on segment byte size and live document count\n as dictated by the customization attributes.\n\n\n\n\nCreates a new view with a given name and properties if it does not\nalready exist.\n\n**Note**: view can't be created with the links. Please use PUT/PATCH for links\nmanagement.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/view <<EOF\n{ \n  \"name\" : \"testViewBasics\", \n  \"type\" : \"arangosearch\" \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"globallyUniqueId\" : \"h224C52C430E1/71410\", \n  \"id\" : \"71410\", \n  \"name\" : \"testViewBasics\", \n  \"type\" : \"arangosearch\", \n  \"cleanupIntervalStep\" : 2, \n  \"commitIntervalMsec\" : 1000, \n  \"consolidationIntervalMsec\" : 10000, \n  \"consolidationPolicy\" : { \n    \"type\" : \"tier\", \n    \"segmentsBytesFloor\" : 2097152, \n    \"segmentsBytesMax\" : 5368709120, \n    \"segmentsMax\" : 10, \n    \"segmentsMin\" : 1, \n    \"minScore\" : 0 \n  }, \n  \"primarySort\" : [ ], \n  \"writebufferActive\" : 0, \n  \"writebufferIdle\" : 64, \n  \"writebufferSizeMax\" : 33554432, \n  \"links\" : { \n  } \n}\n
\n\n\n\n", "operationId": "createView", "parameters": [ { @@ -14861,7 +14958,7 @@ }, "/_api/view#arangosearch": { "post": { - "description": "\n**A JSON object with these properties is required:**\n\n - **type**: The type of the view. must be equal to one of the supported ArangoDB view\n types.\n - **name**: The name of the view.\n - **properties**:\n - **commitIntervalMsec**: Wait at least this many milliseconds between committing view data store\n changes and making documents visible to queries (default: 1000, to disable\n use: 0).\n For the case where there are a lot of inserts/updates, a lower value, until\n commit, will cause the index not to account for them and memory usage would\n continue to grow.\n For the case where there are a few inserts/updates, a higher value will impact\n performance and waste disk space for each commit call without any added\n benefits.
\n _Background:_\n For data retrieval ArangoSearch views follow the concept of\n \"eventually-consistent\", i.e. eventually all the data in ArangoDB will be\n matched by corresponding query expressions.\n The concept of ArangoSearch view \"commit\" operation is introduced to\n control the upper-bound on the time until document addition/removals are\n actually reflected by corresponding query expressions.\n Once a \"commit\" operation is complete all documents added/removed prior to\n the start of the \"commit\" operation will be reflected by queries invoked in\n subsequent ArangoDB transactions, in-progress ArangoDB transactions will\n still continue to return a repeatable-read state.\n - **links**:\n - **[collection-name]**:\n - **analyzers** (string): The list of analyzers to be used for indexing of string values\n (default: [\"identity\"]).\n - **fields**:\n - **field-name** (object): This is a recursive structure for the specific attribute path, potentially\n containing any of the following attributes:\n *analyzers*, *includeAllFields*, *trackListPositions*, *storeValues*\n Any attributes not specified are inherited from the parent.\n - **includeAllFields**: The flag determines whether or not to index all fields on a particular level of\n depth (default: false).\n - **trackListPositions**: The flag determines whether or not values in a lists should be treated separate\n (default: false).\n - **storeValues**: How should the view track the attribute values, this setting allows for\n additional value retrieval optimizations, one of:\n - *none*: Do not store values by the view\n - *id*: Store only information about value presence, to allow use of the EXISTS() function\n (default \"none\").\n - **consolidationIntervalMsec**: Wait at least this many milliseconds between applying 'consolidationPolicy' to\n consolidate view data store and possibly release space on the filesystem\n (default: 60000, to disable use: 0).\n For the case where there are a lot of data modification operations, a higher\n value could potentially have the data store consume more space and file handles.\n For the case where there are a few data modification operations, a lower value\n will impact performance due to no segment candidates available for\n consolidation.
\n _Background:_\n For data modification ArangoSearch views follow the concept of a\n \"versioned data store\". Thus old versions of data may be removed once there\n are no longer any users of the old data. The frequency of the cleanup and\n compaction operations are governed by 'consolidationIntervalMsec' and the\n candidates for compaction are selected via 'consolidationPolicy'.\n - **cleanupIntervalStep**: Wait at least this many commits between removing unused files in the\n ArangoSearch data directory (default: 10, to disable use: 0).\n For the case where the consolidation policies merge segments often (i.e. a lot\n of commit+consolidate), a lower value will cause a lot of disk space to be\n wasted.\n For the case where the consolidation policies rarely merge segments (i.e. few\n inserts/deletes), a higher value will impact performance without any added\n benefits.
\n _Background:_\n With every \"commit\" or \"consolidate\" operation a new state of the view\n internal data-structures is created on disk.\n Old states/snapshots are released once there are no longer any users\n remaining.\n However, the files for the released states/snapshots are left on disk, and\n only removed by \"cleanup\" operation.\n - **consolidationPolicy**:\n - **type**: The segment candidates for the \"consolidation\" operation are selected based\n upon several possible configurable formulas as defined by their types.\n The currently supported types are (default: \"bytes_accum\"):\n - *bytes_accum*: consolidate if and only if (`{threshold}` range `[0.0, 1.0]`):\n `{threshold} > (segment_bytes + sum_of_merge_candidate_segment_bytes) / all_segment_bytes`\n i.e. the sum of all candidate segment byte size is less than the total\n segment byte size multiplied by the `{threshold}`\n - *tier*: consolidate based on segment byte size and live document count\n as dictated by the customization attributes.\n\n\n\n\nCreates a new view with a given name and properties if it does not already\nexist.\n\n**Note**: view can't be created with the links. Please use PUT/PATCH\nfor links management.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/view <<EOF\n{ \n  \"name\" : \"testViewBasics\", \n  \"type\" : \"arangosearch\" \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"globallyUniqueId\" : \"h82E80CF18F1A/104867\", \n  \"id\" : \"104867\", \n  \"name\" : \"testViewBasics\", \n  \"type\" : \"arangosearch\", \n  \"cleanupIntervalStep\" : 10, \n  \"commitIntervalMsec\" : 1000, \n  \"consolidationIntervalMsec\" : 60000, \n  \"consolidationPolicy\" : { \n    \"type\" : \"tier\", \n    \"segmentsBytesFloor\" : 2097152, \n    \"segmentsBytesMax\" : 5368709120, \n    \"segmentsMax\" : 10, \n    \"segmentsMin\" : 1, \n    \"minScore\" : 0 \n  }, \n  \"primarySort\" : [ ], \n  \"writebufferActive\" : 0, \n  \"writebufferIdle\" : 64, \n  \"writebufferSizeMax\" : 33554432, \n  \"links\" : { \n  } \n}\n
\n\n\n\n", + "description": "\n**A JSON object with these properties is required:**\n\n - **type**: The type of the view. must be equal to one of the supported ArangoDB view\n types.\n - **name**: The name of the view.\n - **properties**:\n - **commitIntervalMsec**: Wait at least this many milliseconds between committing view data store\n changes and making documents visible to queries (default: 1000, to disable\n use: 0).\n For the case where there are a lot of inserts/updates, a lower value, until\n commit, will cause the index not to account for them and memory usage would\n continue to grow.\n For the case where there are a few inserts/updates, a higher value will impact\n performance and waste disk space for each commit call without any added\n benefits.
\n _Background:_\n For data retrieval ArangoSearch views follow the concept of\n \"eventually-consistent\", i.e. eventually all the data in ArangoDB will be\n matched by corresponding query expressions.\n The concept of ArangoSearch view \"commit\" operation is introduced to\n control the upper-bound on the time until document addition/removals are\n actually reflected by corresponding query expressions.\n Once a \"commit\" operation is complete all documents added/removed prior to\n the start of the \"commit\" operation will be reflected by queries invoked in\n subsequent ArangoDB transactions, in-progress ArangoDB transactions will\n still continue to return a repeatable-read state.\n - **links**:\n - **[collection-name]**:\n - **analyzers** (string): The list of analyzers to be used for indexing of string values\n (default: [\"identity\"]).\n - **fields**:\n - **field-name** (object): This is a recursive structure for the specific attribute path, potentially\n containing any of the following attributes:\n *analyzers*, *includeAllFields*, *trackListPositions*, *storeValues*\n Any attributes not specified are inherited from the parent.\n - **includeAllFields**: The flag determines whether or not to index all fields on a particular level of\n depth (default: false).\n - **trackListPositions**: The flag determines whether or not values in a lists should be treated separate\n (default: false).\n - **storeValues**: How should the view track the attribute values, this setting allows for\n additional value retrieval optimizations, one of:\n - *none*: Do not store values by the view\n - *id*: Store only information about value presence, to allow use of the EXISTS() function\n (default \"none\").\n - **consolidationIntervalMsec**: Wait at least this many milliseconds between applying 'consolidationPolicy' to\n consolidate view data store and possibly release space on the filesystem\n (default: 60000, to disable use: 0).\n For the case where there are a lot of data modification operations, a higher\n value could potentially have the data store consume more space and file handles.\n For the case where there are a few data modification operations, a lower value\n will impact performance due to no segment candidates available for\n consolidation.
\n _Background:_\n For data modification ArangoSearch views follow the concept of a\n \"versioned data store\". Thus old versions of data may be removed once there\n are no longer any users of the old data. The frequency of the cleanup and\n compaction operations are governed by 'consolidationIntervalMsec' and the\n candidates for compaction are selected via 'consolidationPolicy'.\n - **cleanupIntervalStep**: Wait at least this many commits between removing unused files in the\n ArangoSearch data directory (default: 10, to disable use: 0).\n For the case where the consolidation policies merge segments often (i.e. a lot\n of commit+consolidate), a lower value will cause a lot of disk space to be\n wasted.\n For the case where the consolidation policies rarely merge segments (i.e. few\n inserts/deletes), a higher value will impact performance without any added\n benefits.
\n _Background:_\n With every \"commit\" or \"consolidate\" operation a new state of the view\n internal data-structures is created on disk.\n Old states/snapshots are released once there are no longer any users\n remaining.\n However, the files for the released states/snapshots are left on disk, and\n only removed by \"cleanup\" operation.\n - **consolidationPolicy**:\n - **type**: The segment candidates for the \"consolidation\" operation are selected based\n upon several possible configurable formulas as defined by their types.\n The currently supported types are (default: \"bytes_accum\"):\n - *bytes_accum*: consolidate if and only if (`{threshold}` range `[0.0, 1.0]`):\n `{threshold} > (segment_bytes + sum_of_merge_candidate_segment_bytes) / all_segment_bytes`\n i.e. the sum of all candidate segment byte size is less than the total\n segment byte size multiplied by the `{threshold}`\n - *tier*: consolidate based on segment byte size and live document count\n as dictated by the customization attributes.\n\n\n\n\nCreates a new view with a given name and properties if it does not already\nexist.\n\n**Note**: view can't be created with the links. Please use PUT/PATCH\nfor links management.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/view <<EOF\n{ \n  \"name\" : \"testViewBasics\", \n  \"type\" : \"arangosearch\" \n}\nEOF\n\nHTTP/1.1 Created\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"globallyUniqueId\" : \"h224C52C430E1/69546\", \n  \"id\" : \"69546\", \n  \"name\" : \"testViewBasics\", \n  \"type\" : \"arangosearch\", \n  \"cleanupIntervalStep\" : 2, \n  \"commitIntervalMsec\" : 1000, \n  \"consolidationIntervalMsec\" : 10000, \n  \"consolidationPolicy\" : { \n    \"type\" : \"tier\", \n    \"segmentsBytesFloor\" : 2097152, \n    \"segmentsBytesMax\" : 5368709120, \n    \"segmentsMax\" : 10, \n    \"segmentsMin\" : 1, \n    \"minScore\" : 0 \n  }, \n  \"primarySort\" : [ ], \n  \"writebufferActive\" : 0, \n  \"writebufferIdle\" : 64, \n  \"writebufferSizeMax\" : 33554432, \n  \"links\" : { \n  } \n}\n
\n\n\n\n", "operationId": "createView:Create", "parameters": [ { @@ -14893,7 +14990,7 @@ }, "/_api/view/{view-name}": { "delete": { - "description": "\n\nDrops the view identified by *view-name*.\n\nIf the view was successfully dropped, an object is returned with\nthe following attributes:\n- *error*: *false*\n- *id*: The identifier of the dropped view\n\n\n\n\n**Example:**\n Using an identifier:\n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/view/107714\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"result\" : true \n}\n
\n\n\n\n\n**Example:**\n Using a name:\n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/view/testView\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"result\" : true \n}\n
\n\n\n\n", + "description": "\n\nDrops the view identified by *view-name*.\n\nIf the view was successfully dropped, an object is returned with\nthe following attributes:\n- *error*: *false*\n- *id*: The identifier of the dropped view\n\n\n\n\n**Example:**\n Using an identifier:\n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/view/71379\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"result\" : true \n}\n
\n\n\n\n\n**Example:**\n Using a name:\n\n
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/view/testView\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"result\" : true \n}\n
\n\n\n\n", "operationId": "deleteView", "parameters": [ { @@ -14922,7 +15019,7 @@ "x-hints": "" }, "get": { - "description": "\n\nThe result is an object describing the view with the following attributes:\n- *id*: The identifier of the view\n- *name*: The name of the view\n- *type*: The type of the view as string\n\n\n\n\n**Example:**\n Using an identifier:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/view/107726\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"type\" : \"arangosearch\", \n  \"name\" : \"testView\", \n  \"globallyUniqueId\" : \"h82E80CF18F1A/107726\", \n  \"id\" : \"107726\" \n}\n
\n\n\n\n\n**Example:**\n Using a name:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/view/testView\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"type\" : \"arangosearch\", \n  \"name\" : \"testView\", \n  \"globallyUniqueId\" : \"h82E80CF18F1A/107732\", \n  \"id\" : \"107732\" \n}\n
\n\n\n\n", + "description": "\n\nThe result is an object describing the view with the following attributes:\n- *id*: The identifier of the view\n- *name*: The name of the view\n- *type*: The type of the view as string\n\n\n\n\n**Example:**\n Using an identifier:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/view/71387\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"type\" : \"arangosearch\", \n  \"name\" : \"testView\", \n  \"globallyUniqueId\" : \"h224C52C430E1/71387\", \n  \"id\" : \"71387\" \n}\n
\n\n\n\n\n**Example:**\n Using a name:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/view/testView\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"type\" : \"arangosearch\", \n  \"name\" : \"testView\", \n  \"globallyUniqueId\" : \"h224C52C430E1/71391\", \n  \"id\" : \"71391\" \n}\n
\n\n\n\n", "operationId": "getViews:Properties", "parameters": [ { @@ -14950,7 +15047,7 @@ }, "/_api/view/{view-name}/properties": { "get": { - "description": "\n\nReturns an object containing the definition of the view identified by *view-name*.\n\n\n\nThe result is an object describing the view with the following attributes:\n- *id*: The identifier of the view\n- *name*: The name of the view\n- *type*: The type of the view as string\n- any additional view implementation specific properties\n\n\n\n\n**Example:**\n Using an identifier:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/view/107738/properties\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"writebufferIdle\" : 64, \n  \"writebufferActive\" : 0, \n  \"type\" : \"arangosearch\", \n  \"primarySort\" : [ ], \n  \"writebufferSizeMax\" : 33554432, \n  \"name\" : \"products\", \n  \"commitIntervalMsec\" : 1000, \n  \"consolidationPolicy\" : { \n    \"type\" : \"tier\", \n    \"segmentsBytesFloor\" : 2097152, \n    \"segmentsBytesMax\" : 5368709120, \n    \"segmentsMax\" : 10, \n    \"segmentsMin\" : 1, \n    \"minScore\" : 0 \n  }, \n  \"globallyUniqueId\" : \"h82E80CF18F1A/107738\", \n  \"cleanupIntervalStep\" : 10, \n  \"id\" : \"107738\", \n  \"links\" : { \n  }, \n  \"consolidationIntervalMsec\" : 60000 \n}\n
\n\n\n\n\n**Example:**\n Using a name:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/view/products/properties\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"writebufferIdle\" : 64, \n  \"writebufferActive\" : 0, \n  \"type\" : \"arangosearch\", \n  \"primarySort\" : [ ], \n  \"writebufferSizeMax\" : 33554432, \n  \"name\" : \"products\", \n  \"commitIntervalMsec\" : 1000, \n  \"consolidationPolicy\" : { \n    \"type\" : \"tier\", \n    \"segmentsBytesFloor\" : 2097152, \n    \"segmentsBytesMax\" : 5368709120, \n    \"segmentsMax\" : 10, \n    \"segmentsMin\" : 1, \n    \"minScore\" : 0 \n  }, \n  \"globallyUniqueId\" : \"h82E80CF18F1A/107745\", \n  \"cleanupIntervalStep\" : 10, \n  \"id\" : \"107745\", \n  \"links\" : { \n  }, \n  \"consolidationIntervalMsec\" : 60000 \n}\n
\n\n\n\n", + "description": "\n\nReturns an object containing the definition of the view identified by *view-name*.\n\n\n\nThe result is an object describing the view with the following attributes:\n- *id*: The identifier of the view\n- *name*: The name of the view\n- *type*: The type of the view as string\n- any additional view implementation specific properties\n\n\n\n\n**Example:**\n Using an identifier:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/view/71395/properties\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"writebufferIdle\" : 64, \n  \"writebufferActive\" : 0, \n  \"type\" : \"arangosearch\", \n  \"primarySort\" : [ ], \n  \"writebufferSizeMax\" : 33554432, \n  \"name\" : \"products\", \n  \"commitIntervalMsec\" : 1000, \n  \"consolidationPolicy\" : { \n    \"type\" : \"tier\", \n    \"segmentsBytesFloor\" : 2097152, \n    \"segmentsBytesMax\" : 5368709120, \n    \"segmentsMax\" : 10, \n    \"segmentsMin\" : 1, \n    \"minScore\" : 0 \n  }, \n  \"globallyUniqueId\" : \"h224C52C430E1/71395\", \n  \"cleanupIntervalStep\" : 2, \n  \"id\" : \"71395\", \n  \"links\" : { \n  }, \n  \"consolidationIntervalMsec\" : 10000 \n}\n
\n\n\n\n\n**Example:**\n Using a name:\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/view/products/properties\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"writebufferIdle\" : 64, \n  \"writebufferActive\" : 0, \n  \"type\" : \"arangosearch\", \n  \"primarySort\" : [ ], \n  \"writebufferSizeMax\" : 33554432, \n  \"name\" : \"products\", \n  \"commitIntervalMsec\" : 1000, \n  \"consolidationPolicy\" : { \n    \"type\" : \"tier\", \n    \"segmentsBytesFloor\" : 2097152, \n    \"segmentsBytesMax\" : 5368709120, \n    \"segmentsMax\" : 10, \n    \"segmentsMin\" : 1, \n    \"minScore\" : 0 \n  }, \n  \"globallyUniqueId\" : \"h224C52C430E1/71400\", \n  \"cleanupIntervalStep\" : 2, \n  \"id\" : \"71400\", \n  \"links\" : { \n  }, \n  \"consolidationIntervalMsec\" : 10000 \n}\n
\n\n\n\n", "operationId": "getView", "parameters": [ { @@ -14981,7 +15078,7 @@ }, "/_api/view/{view-name}/properties#ArangoSearch": { "patch": { - "description": "\n**A JSON object with these properties is required:**\n\n - **properties**:\n - **commitIntervalMsec**: Wait at least this many milliseconds between committing view data store\n changes and making documents visible to queries (default: 1000, to disable\n use: 0).\n For the case where there are a lot of inserts/updates, a lower value, until\n commit, will cause the index not to account for them and memory usage would\n continue to grow.\n For the case where there are a few inserts/updates, a higher value will impact\n performance and waste disk space for each commit call without any added\n benefits.
\n _Background:_\n For data retrieval ArangoSearch views follow the concept of\n \"eventually-consistent\", i.e. eventually all the data in ArangoDB will be\n matched by corresponding query expressions.\n The concept of ArangoSearch view \"commit\" operation is introduced to\n control the upper-bound on the time until document addition/removals are\n actually reflected by corresponding query expressions.\n Once a \"commit\" operation is complete all documents added/removed prior to\n the start of the \"commit\" operation will be reflected by queries invoked in\n subsequent ArangoDB transactions, in-progress ArangoDB transactions will\n still continue to return a repeatable-read state.\n - **links**:\n - **[collection-name]**:\n - **analyzers** (string): The list of analyzers to be used for indexing of string values\n (default: [\"identity\"]).\n - **fields**:\n - **field-name** (object): This is a recursive structure for the specific attribute path, potentially\n containing any of the following attributes:\n *analyzers*, *includeAllFields*, *trackListPositions*, *storeValues*\n Any attributes not specified are inherited from the parent.\n - **includeAllFields**: The flag determines whether or not to index all fields on a particular level of\n depth (default: false).\n - **trackListPositions**: The flag determines whether or not values in a lists should be treated separate\n (default: false).\n - **storeValues**: How should the view track the attribute values, this setting allows for\n additional value retrieval optimizations, one of:\n - *none*: Do not store values by the view\n - *id*: Store only information about value presence, to allow use of the EXISTS() function\n (default \"none\").\n - **consolidationIntervalMsec**: Wait at least this many milliseconds between applying 'consolidationPolicy' to\n consolidate view data store and possibly release space on the filesystem\n (default: 60000, to disable use: 0).\n For the case where there are a lot of data modification operations, a higher\n value could potentially have the data store consume more space and file handles.\n For the case where there are a few data modification operations, a lower value\n will impact performance due to no segment candidates available for\n consolidation.
\n _Background:_\n For data modification ArangoSearch views follow the concept of a\n \"versioned data store\". Thus old versions of data may be removed once there\n are no longer any users of the old data. The frequency of the cleanup and\n compaction operations are governed by 'consolidationIntervalMsec' and the\n candidates for compaction are selected via 'consolidationPolicy'.\n - **cleanupIntervalStep**: Wait at least this many commits between removing unused files in the\n ArangoSearch data directory (default: 10, to disable use: 0).\n For the case where the consolidation policies merge segments often (i.e. a lot\n of commit+consolidate), a lower value will cause a lot of disk space to be\n wasted.\n For the case where the consolidation policies rarely merge segments (i.e. few\n inserts/deletes), a higher value will impact performance without any added\n benefits.
\n _Background:_\n With every \"commit\" or \"consolidate\" operation a new state of the view\n internal data-structures is created on disk.\n Old states/snapshots are released once there are no longer any users\n remaining.\n However, the files for the released states/snapshots are left on disk, and\n only removed by \"cleanup\" operation.\n - **consolidationPolicy**:\n - **type**: The segment candidates for the \"consolidation\" operation are selected based\n upon several possible configurable formulas as defined by their types.\n The currently supported types are (default: \"bytes_accum\"):\n - *bytes_accum*: consolidate if and only if (`{threshold}` range `[0.0, 1.0]`):\n `{threshold} > (segment_bytes + sum_of_merge_candidate_segment_bytes) / all_segment_bytes`\n i.e. the sum of all candidate segment byte size is less than the total\n segment byte size multiplied by the `{threshold}`\n - *tier*: consolidate based on segment byte size and live document count\n as dictated by the customization attributes.\n\n\n\n\nChanges the properties of a view.\n\nOn success an object with the following attributes is returned:\n- *id*: The identifier of the view\n- *name*: The name of the view\n- *type*: The view type\n- all additional arangosearch view implementation specific properties\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PATCH --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/view/products/properties <<EOF\n{ \n  \"locale\" : \"en\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"globallyUniqueId\" : \"h82E80CF18F1A/104859\", \n  \"id\" : \"104859\", \n  \"name\" : \"products\", \n  \"type\" : \"arangosearch\", \n  \"cleanupIntervalStep\" : 10, \n  \"commitIntervalMsec\" : 1000, \n  \"consolidationIntervalMsec\" : 60000, \n  \"consolidationPolicy\" : { \n    \"type\" : \"tier\", \n    \"segmentsBytesFloor\" : 2097152, \n    \"segmentsBytesMax\" : 5368709120, \n    \"segmentsMax\" : 10, \n    \"segmentsMin\" : 1, \n    \"minScore\" : 0 \n  }, \n  \"primarySort\" : [ ], \n  \"writebufferActive\" : 0, \n  \"writebufferIdle\" : 64, \n  \"writebufferSizeMax\" : 33554432, \n  \"links\" : { \n  } \n}\n
\n\n\n\n", + "description": "\n**A JSON object with these properties is required:**\n\n - **properties**:\n - **commitIntervalMsec**: Wait at least this many milliseconds between committing view data store\n changes and making documents visible to queries (default: 1000, to disable\n use: 0).\n For the case where there are a lot of inserts/updates, a lower value, until\n commit, will cause the index not to account for them and memory usage would\n continue to grow.\n For the case where there are a few inserts/updates, a higher value will impact\n performance and waste disk space for each commit call without any added\n benefits.
\n _Background:_\n For data retrieval ArangoSearch views follow the concept of\n \"eventually-consistent\", i.e. eventually all the data in ArangoDB will be\n matched by corresponding query expressions.\n The concept of ArangoSearch view \"commit\" operation is introduced to\n control the upper-bound on the time until document addition/removals are\n actually reflected by corresponding query expressions.\n Once a \"commit\" operation is complete all documents added/removed prior to\n the start of the \"commit\" operation will be reflected by queries invoked in\n subsequent ArangoDB transactions, in-progress ArangoDB transactions will\n still continue to return a repeatable-read state.\n - **links**:\n - **[collection-name]**:\n - **analyzers** (string): The list of analyzers to be used for indexing of string values\n (default: [\"identity\"]).\n - **fields**:\n - **field-name** (object): This is a recursive structure for the specific attribute path, potentially\n containing any of the following attributes:\n *analyzers*, *includeAllFields*, *trackListPositions*, *storeValues*\n Any attributes not specified are inherited from the parent.\n - **includeAllFields**: The flag determines whether or not to index all fields on a particular level of\n depth (default: false).\n - **trackListPositions**: The flag determines whether or not values in a lists should be treated separate\n (default: false).\n - **storeValues**: How should the view track the attribute values, this setting allows for\n additional value retrieval optimizations, one of:\n - *none*: Do not store values by the view\n - *id*: Store only information about value presence, to allow use of the EXISTS() function\n (default \"none\").\n - **consolidationIntervalMsec**: Wait at least this many milliseconds between applying 'consolidationPolicy' to\n consolidate view data store and possibly release space on the filesystem\n (default: 60000, to disable use: 0).\n For the case where there are a lot of data modification operations, a higher\n value could potentially have the data store consume more space and file handles.\n For the case where there are a few data modification operations, a lower value\n will impact performance due to no segment candidates available for\n consolidation.
\n _Background:_\n For data modification ArangoSearch views follow the concept of a\n \"versioned data store\". Thus old versions of data may be removed once there\n are no longer any users of the old data. The frequency of the cleanup and\n compaction operations are governed by 'consolidationIntervalMsec' and the\n candidates for compaction are selected via 'consolidationPolicy'.\n - **cleanupIntervalStep**: Wait at least this many commits between removing unused files in the\n ArangoSearch data directory (default: 10, to disable use: 0).\n For the case where the consolidation policies merge segments often (i.e. a lot\n of commit+consolidate), a lower value will cause a lot of disk space to be\n wasted.\n For the case where the consolidation policies rarely merge segments (i.e. few\n inserts/deletes), a higher value will impact performance without any added\n benefits.
\n _Background:_\n With every \"commit\" or \"consolidate\" operation a new state of the view\n internal data-structures is created on disk.\n Old states/snapshots are released once there are no longer any users\n remaining.\n However, the files for the released states/snapshots are left on disk, and\n only removed by \"cleanup\" operation.\n - **consolidationPolicy**:\n - **type**: The segment candidates for the \"consolidation\" operation are selected based\n upon several possible configurable formulas as defined by their types.\n The currently supported types are (default: \"bytes_accum\"):\n - *bytes_accum*: consolidate if and only if (`{threshold}` range `[0.0, 1.0]`):\n `{threshold} > (segment_bytes + sum_of_merge_candidate_segment_bytes) / all_segment_bytes`\n i.e. the sum of all candidate segment byte size is less than the total\n segment byte size multiplied by the `{threshold}`\n - *tier*: consolidate based on segment byte size and live document count\n as dictated by the customization attributes.\n\n\n\n\nChanges the properties of a view.\n\nOn success an object with the following attributes is returned:\n- *id*: The identifier of the view\n- *name*: The name of the view\n- *type*: The view type\n- all additional arangosearch view implementation specific properties\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PATCH --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/view/products/properties <<EOF\n{ \n  \"locale\" : \"en\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"globallyUniqueId\" : \"h224C52C430E1/69541\", \n  \"id\" : \"69541\", \n  \"name\" : \"products\", \n  \"type\" : \"arangosearch\", \n  \"cleanupIntervalStep\" : 2, \n  \"commitIntervalMsec\" : 1000, \n  \"consolidationIntervalMsec\" : 10000, \n  \"consolidationPolicy\" : { \n    \"type\" : \"tier\", \n    \"segmentsBytesFloor\" : 2097152, \n    \"segmentsBytesMax\" : 5368709120, \n    \"segmentsMax\" : 10, \n    \"segmentsMin\" : 1, \n    \"minScore\" : 0 \n  }, \n  \"primarySort\" : [ ], \n  \"writebufferActive\" : 0, \n  \"writebufferIdle\" : 64, \n  \"writebufferSizeMax\" : 33554432, \n  \"links\" : { \n  } \n}\n
\n\n\n\n", "operationId": "modifyView", "parameters": [ { @@ -15019,7 +15116,7 @@ "x-hints": "" }, "put": { - "description": "\n**A JSON object with these properties is required:**\n\n - **properties**:\n - **commitIntervalMsec**: Wait at least this many milliseconds between committing view data store\n changes and making documents visible to queries (default: 1000, to disable\n use: 0).\n For the case where there are a lot of inserts/updates, a lower value, until\n commit, will cause the index not to account for them and memory usage would\n continue to grow.\n For the case where there are a few inserts/updates, a higher value will impact\n performance and waste disk space for each commit call without any added\n benefits.
\n _Background:_\n For data retrieval ArangoSearch views follow the concept of\n \"eventually-consistent\", i.e. eventually all the data in ArangoDB will be\n matched by corresponding query expressions.\n The concept of ArangoSearch view \"commit\" operation is introduced to\n control the upper-bound on the time until document addition/removals are\n actually reflected by corresponding query expressions.\n Once a \"commit\" operation is complete all documents added/removed prior to\n the start of the \"commit\" operation will be reflected by queries invoked in\n subsequent ArangoDB transactions, in-progress ArangoDB transactions will\n still continue to return a repeatable-read state.\n - **links**:\n - **[collection-name]**:\n - **analyzers** (string): The list of analyzers to be used for indexing of string values\n (default: [\"identity\"]).\n - **fields**:\n - **field-name** (object): This is a recursive structure for the specific attribute path, potentially\n containing any of the following attributes:\n *analyzers*, *includeAllFields*, *trackListPositions*, *storeValues*\n Any attributes not specified are inherited from the parent.\n - **includeAllFields**: The flag determines whether or not to index all fields on a particular level of\n depth (default: false).\n - **trackListPositions**: The flag determines whether or not values in a lists should be treated separate\n (default: false).\n - **storeValues**: How should the view track the attribute values, this setting allows for\n additional value retrieval optimizations, one of:\n - *none*: Do not store values by the view\n - *id*: Store only information about value presence, to allow use of the EXISTS() function\n (default \"none\").\n - **consolidationIntervalMsec**: Wait at least this many milliseconds between applying 'consolidationPolicy' to\n consolidate view data store and possibly release space on the filesystem\n (default: 60000, to disable use: 0).\n For the case where there are a lot of data modification operations, a higher\n value could potentially have the data store consume more space and file handles.\n For the case where there are a few data modification operations, a lower value\n will impact performance due to no segment candidates available for\n consolidation.
\n _Background:_\n For data modification ArangoSearch views follow the concept of a\n \"versioned data store\". Thus old versions of data may be removed once there\n are no longer any users of the old data. The frequency of the cleanup and\n compaction operations are governed by 'consolidationIntervalMsec' and the\n candidates for compaction are selected via 'consolidationPolicy'.\n - **cleanupIntervalStep**: Wait at least this many commits between removing unused files in the\n ArangoSearch data directory (default: 10, to disable use: 0).\n For the case where the consolidation policies merge segments often (i.e. a lot\n of commit+consolidate), a lower value will cause a lot of disk space to be\n wasted.\n For the case where the consolidation policies rarely merge segments (i.e. few\n inserts/deletes), a higher value will impact performance without any added\n benefits.
\n _Background:_\n With every \"commit\" or \"consolidate\" operation a new state of the view\n internal data-structures is created on disk.\n Old states/snapshots are released once there are no longer any users\n remaining.\n However, the files for the released states/snapshots are left on disk, and\n only removed by \"cleanup\" operation.\n - **consolidationPolicy**:\n - **type**: The segment candidates for the \"consolidation\" operation are selected based\n upon several possible configurable formulas as defined by their types.\n The currently supported types are (default: \"bytes_accum\"):\n - *bytes_accum*: consolidate if and only if (`{threshold}` range `[0.0, 1.0]`):\n `{threshold} > (segment_bytes + sum_of_merge_candidate_segment_bytes) / all_segment_bytes`\n i.e. the sum of all candidate segment byte size is less than the total\n segment byte size multiplied by the `{threshold}`\n - *tier*: consolidate based on segment byte size and live document count\n as dictated by the customization attributes.\n\n\n\n\nChanges the properties of a view.\n\nOn success an object with the following attributes is returned:\n- *id*: The identifier of the view\n- *name*: The name of the view\n- *type*: The view type\n- all additional arangosearch view implementation specific properties\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/view/products/properties <<EOF\n{ \n  \"locale\" : \"en\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"globallyUniqueId\" : \"h82E80CF18F1A/104873\", \n  \"id\" : \"104873\", \n  \"name\" : \"products\", \n  \"type\" : \"arangosearch\", \n  \"cleanupIntervalStep\" : 10, \n  \"commitIntervalMsec\" : 1000, \n  \"consolidationIntervalMsec\" : 60000, \n  \"consolidationPolicy\" : { \n    \"type\" : \"tier\", \n    \"segmentsBytesFloor\" : 2097152, \n    \"segmentsBytesMax\" : 5368709120, \n    \"segmentsMax\" : 10, \n    \"segmentsMin\" : 1, \n    \"minScore\" : 0 \n  }, \n  \"primarySort\" : [ ], \n  \"writebufferActive\" : 0, \n  \"writebufferIdle\" : 64, \n  \"writebufferSizeMax\" : 33554432, \n  \"links\" : { \n  } \n}\n
\n\n\n\n", + "description": "\n**A JSON object with these properties is required:**\n\n - **properties**:\n - **commitIntervalMsec**: Wait at least this many milliseconds between committing view data store\n changes and making documents visible to queries (default: 1000, to disable\n use: 0).\n For the case where there are a lot of inserts/updates, a lower value, until\n commit, will cause the index not to account for them and memory usage would\n continue to grow.\n For the case where there are a few inserts/updates, a higher value will impact\n performance and waste disk space for each commit call without any added\n benefits.
\n _Background:_\n For data retrieval ArangoSearch views follow the concept of\n \"eventually-consistent\", i.e. eventually all the data in ArangoDB will be\n matched by corresponding query expressions.\n The concept of ArangoSearch view \"commit\" operation is introduced to\n control the upper-bound on the time until document addition/removals are\n actually reflected by corresponding query expressions.\n Once a \"commit\" operation is complete all documents added/removed prior to\n the start of the \"commit\" operation will be reflected by queries invoked in\n subsequent ArangoDB transactions, in-progress ArangoDB transactions will\n still continue to return a repeatable-read state.\n - **links**:\n - **[collection-name]**:\n - **analyzers** (string): The list of analyzers to be used for indexing of string values\n (default: [\"identity\"]).\n - **fields**:\n - **field-name** (object): This is a recursive structure for the specific attribute path, potentially\n containing any of the following attributes:\n *analyzers*, *includeAllFields*, *trackListPositions*, *storeValues*\n Any attributes not specified are inherited from the parent.\n - **includeAllFields**: The flag determines whether or not to index all fields on a particular level of\n depth (default: false).\n - **trackListPositions**: The flag determines whether or not values in a lists should be treated separate\n (default: false).\n - **storeValues**: How should the view track the attribute values, this setting allows for\n additional value retrieval optimizations, one of:\n - *none*: Do not store values by the view\n - *id*: Store only information about value presence, to allow use of the EXISTS() function\n (default \"none\").\n - **consolidationIntervalMsec**: Wait at least this many milliseconds between applying 'consolidationPolicy' to\n consolidate view data store and possibly release space on the filesystem\n (default: 60000, to disable use: 0).\n For the case where there are a lot of data modification operations, a higher\n value could potentially have the data store consume more space and file handles.\n For the case where there are a few data modification operations, a lower value\n will impact performance due to no segment candidates available for\n consolidation.
\n _Background:_\n For data modification ArangoSearch views follow the concept of a\n \"versioned data store\". Thus old versions of data may be removed once there\n are no longer any users of the old data. The frequency of the cleanup and\n compaction operations are governed by 'consolidationIntervalMsec' and the\n candidates for compaction are selected via 'consolidationPolicy'.\n - **cleanupIntervalStep**: Wait at least this many commits between removing unused files in the\n ArangoSearch data directory (default: 10, to disable use: 0).\n For the case where the consolidation policies merge segments often (i.e. a lot\n of commit+consolidate), a lower value will cause a lot of disk space to be\n wasted.\n For the case where the consolidation policies rarely merge segments (i.e. few\n inserts/deletes), a higher value will impact performance without any added\n benefits.
\n _Background:_\n With every \"commit\" or \"consolidate\" operation a new state of the view\n internal data-structures is created on disk.\n Old states/snapshots are released once there are no longer any users\n remaining.\n However, the files for the released states/snapshots are left on disk, and\n only removed by \"cleanup\" operation.\n - **consolidationPolicy**:\n - **type**: The segment candidates for the \"consolidation\" operation are selected based\n upon several possible configurable formulas as defined by their types.\n The currently supported types are (default: \"bytes_accum\"):\n - *bytes_accum*: consolidate if and only if (`{threshold}` range `[0.0, 1.0]`):\n `{threshold} > (segment_bytes + sum_of_merge_candidate_segment_bytes) / all_segment_bytes`\n i.e. the sum of all candidate segment byte size is less than the total\n segment byte size multiplied by the `{threshold}`\n - *tier*: consolidate based on segment byte size and live document count\n as dictated by the customization attributes.\n\n\n\n\nChanges the properties of a view.\n\nOn success an object with the following attributes is returned:\n- *id*: The identifier of the view\n- *name*: The name of the view\n- *type*: The view type\n- all additional arangosearch view implementation specific properties\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/view/products/properties <<EOF\n{ \n  \"locale\" : \"en\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"globallyUniqueId\" : \"h224C52C430E1/69550\", \n  \"id\" : \"69550\", \n  \"name\" : \"products\", \n  \"type\" : \"arangosearch\", \n  \"cleanupIntervalStep\" : 2, \n  \"commitIntervalMsec\" : 1000, \n  \"consolidationIntervalMsec\" : 10000, \n  \"consolidationPolicy\" : { \n    \"type\" : \"tier\", \n    \"segmentsBytesFloor\" : 2097152, \n    \"segmentsBytesMax\" : 5368709120, \n    \"segmentsMax\" : 10, \n    \"segmentsMin\" : 1, \n    \"minScore\" : 0 \n  }, \n  \"primarySort\" : [ ], \n  \"writebufferActive\" : 0, \n  \"writebufferIdle\" : 64, \n  \"writebufferSizeMax\" : 33554432, \n  \"links\" : { \n  } \n}\n
\n\n\n\n", "operationId": "modifyView", "parameters": [ { @@ -15059,7 +15156,7 @@ }, "/_api/view/{view-name}/properties#arangosearch": { "patch": { - "description": "\n\nChanges the properties of a view.\n\nOn success an object with the following attributes is returned:\n- *id*: The identifier of the view\n- *name*: The name of the view\n- *type*: The view type\n- any additional view implementation specific properties\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PATCH --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/view/products/properties <<EOF\n{ \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"globallyUniqueId\" : \"h82E80CF18F1A/107752\", \n  \"id\" : \"107752\", \n  \"name\" : \"products\", \n  \"type\" : \"arangosearch\", \n  \"cleanupIntervalStep\" : 10, \n  \"commitIntervalMsec\" : 1000, \n  \"consolidationIntervalMsec\" : 60000, \n  \"consolidationPolicy\" : { \n    \"type\" : \"tier\", \n    \"segmentsBytesFloor\" : 2097152, \n    \"segmentsBytesMax\" : 5368709120, \n    \"segmentsMax\" : 10, \n    \"segmentsMin\" : 1, \n    \"minScore\" : 0 \n  }, \n  \"primarySort\" : [ ], \n  \"writebufferActive\" : 0, \n  \"writebufferIdle\" : 64, \n  \"writebufferSizeMax\" : 33554432, \n  \"links\" : { \n  } \n}\n
\n\n\n\n\n", + "description": "\n\nChanges the properties of a view.\n\nOn success an object with the following attributes is returned:\n- *id*: The identifier of the view\n- *name*: The name of the view\n- *type*: The view type\n- any additional view implementation specific properties\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PATCH --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/view/products/properties <<EOF\n{ \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"globallyUniqueId\" : \"h224C52C430E1/71405\", \n  \"id\" : \"71405\", \n  \"name\" : \"products\", \n  \"type\" : \"arangosearch\", \n  \"cleanupIntervalStep\" : 2, \n  \"commitIntervalMsec\" : 1000, \n  \"consolidationIntervalMsec\" : 10000, \n  \"consolidationPolicy\" : { \n    \"type\" : \"tier\", \n    \"segmentsBytesFloor\" : 2097152, \n    \"segmentsBytesMax\" : 5368709120, \n    \"segmentsMax\" : 10, \n    \"segmentsMin\" : 1, \n    \"minScore\" : 0 \n  }, \n  \"primarySort\" : [ ], \n  \"writebufferActive\" : 0, \n  \"writebufferIdle\" : 64, \n  \"writebufferSizeMax\" : 33554432, \n  \"links\" : { \n  } \n}\n
\n\n\n\n\n", "operationId": "modifyView:partially", "parameters": [ { @@ -15088,7 +15185,7 @@ "x-hints": "" }, "put": { - "description": "\n\nChanges the properties of a view.\n\nOn success an object with the following attributes is returned:\n- *id*: The identifier of the view\n- *name*: The name of the view\n- *type*: The view type\n- any additional view implementation specific properties\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/view/products/properties <<EOF\n{ \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"globallyUniqueId\" : \"h82E80CF18F1A/107766\", \n  \"id\" : \"107766\", \n  \"name\" : \"products\", \n  \"type\" : \"arangosearch\", \n  \"cleanupIntervalStep\" : 10, \n  \"commitIntervalMsec\" : 1000, \n  \"consolidationIntervalMsec\" : 60000, \n  \"consolidationPolicy\" : { \n    \"type\" : \"tier\", \n    \"segmentsBytesFloor\" : 2097152, \n    \"segmentsBytesMax\" : 5368709120, \n    \"segmentsMax\" : 10, \n    \"segmentsMin\" : 1, \n    \"minScore\" : 0 \n  }, \n  \"primarySort\" : [ ], \n  \"writebufferActive\" : 0, \n  \"writebufferIdle\" : 64, \n  \"writebufferSizeMax\" : 33554432, \n  \"links\" : { \n  } \n}\n
\n\n\n\n", + "description": "\n\nChanges the properties of a view.\n\nOn success an object with the following attributes is returned:\n- *id*: The identifier of the view\n- *name*: The name of the view\n- *type*: The view type\n- any additional view implementation specific properties\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/view/products/properties <<EOF\n{ \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"globallyUniqueId\" : \"h224C52C430E1/71414\", \n  \"id\" : \"71414\", \n  \"name\" : \"products\", \n  \"type\" : \"arangosearch\", \n  \"cleanupIntervalStep\" : 2, \n  \"commitIntervalMsec\" : 1000, \n  \"consolidationIntervalMsec\" : 10000, \n  \"consolidationPolicy\" : { \n    \"type\" : \"tier\", \n    \"segmentsBytesFloor\" : 2097152, \n    \"segmentsBytesMax\" : 5368709120, \n    \"segmentsMax\" : 10, \n    \"segmentsMin\" : 1, \n    \"minScore\" : 0 \n  }, \n  \"primarySort\" : [ ], \n  \"writebufferActive\" : 0, \n  \"writebufferIdle\" : 64, \n  \"writebufferSizeMax\" : 33554432, \n  \"links\" : { \n  } \n}\n
\n\n\n\n", "operationId": "modifyView:One", "parameters": [ { @@ -15119,7 +15216,7 @@ }, "/_api/view/{view-name}/rename": { "put": { - "description": "\n\nRenames a view. Expects an object with the attribute(s)\n- *name*: The new name\n\nIt returns an object with the attributes\n- *id*: The identifier of the view.\n- *name*: The new name of the view.\n- *type*: The view type.\n\n**Note**: this method is not available in a cluster.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/view/products1/rename <<EOF\n{ \n  \"name\" : \"viewNewName\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"type\" : \"arangosearch\", \n  \"name\" : \"viewNewName\", \n  \"globallyUniqueId\" : \"h82E80CF18F1A/107774\", \n  \"id\" : \"107774\" \n}\n
\n\n\n\n", + "description": "\n\nRenames a view. Expects an object with the attribute(s)\n- *name*: The new name\n\nIt returns an object with the attributes\n- *id*: The identifier of the view.\n- *name*: The new name of the view.\n- *type*: The view type.\n\n**Note**: this method is not available in a cluster.\n\n\n\n\n**Example:**\n \n\n
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/view/products1/rename <<EOF\n{ \n  \"name\" : \"viewNewName\" \n}\nEOF\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"error\" : false, \n  \"code\" : 200, \n  \"type\" : \"arangosearch\", \n  \"name\" : \"viewNewName\", \n  \"globallyUniqueId\" : \"h224C52C430E1/71419\", \n  \"id\" : \"71419\" \n}\n
\n\n\n\n", "operationId": "modifyView:rename", "parameters": [ { @@ -15150,7 +15247,7 @@ }, "/_api/wal/lastTick": { "get": { - "description": "\n\nReturns the last available tick value that can be served from the server's\nreplication log. This corresponds to the tick of the latest successfull operation.\n\nThe result is a JSON object containing the attributes *tick*, *time* and *server*. \n* *tick*: contains the last available tick, *time* \n* *time*: the server time as string in format \"YYYY-MM-DDTHH:MM:SSZ\"\n* *server*: An object with fields *version* and *serverId*\n\n**Note**: this method is not supported on a coordinator in a cluster.\n\n\n\n\n**Example:**\n Returning the first available tick\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/wal/lastTick\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"time\" : \"2019-06-13T19:55:11Z\", \n  \"tick\" : \"107781\", \n  \"server\" : { \n    \"version\" : \"3.5.0-rc.4\", \n    \"serverId\" : \"143933161180954\" \n  } \n}\n
\n\n\n\n\n", + "description": "\n\nReturns the last available tick value that can be served from the server's\nreplication log. This corresponds to the tick of the latest successfull operation.\n\nThe result is a JSON object containing the attributes *tick*, *time* and *server*. \n* *tick*: contains the last available tick, *time* \n* *time*: the server time as string in format \"YYYY-MM-DDTHH:MM:SSZ\"\n* *server*: An object with fields *version* and *serverId*\n\n**Note**: this method is not supported on a coordinator in a cluster.\n\n\n\n\n**Example:**\n Returning the first available tick\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/wal/lastTick\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"time\" : \"2019-07-30T10:55:36Z\", \n  \"tick\" : \"189081\", \n  \"server\" : { \n    \"version\" : \"3.5.0-rc.6\", \n    \"serverId\" : \"37711201448161\" \n  } \n}\n
\n\n\n\n\n", "operationId": "handleCommandLastTick", "parameters": [], "responses": { @@ -15178,7 +15275,7 @@ }, "/_api/wal/range": { "get": { - "description": "\n\nReturns the currently available ranges of tick values for all WAL files.\nThe tick values can be used to determine if certain\ndata (identified by tick value) are still available for replication.\n\nThe body of the response contains a JSON object. \n* *tickMin*: minimum tick available\n* *tickMax: maximum tick available\n* *time*: the server time as string in format \"YYYY-MM-DDTHH:MM:SSZ\"\n* *server*: An object with fields *version* and *serverId*\n\n\n\n\n**Example:**\n Returns the available tick ranges.\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/wal/range\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"time\" : \"2019-06-13T19:55:13Z\", \n  \"tickMin\" : \"5\", \n  \"tickMax\" : \"107832\", \n  \"server\" : { \n    \"version\" : \"3.5.0-rc.4\", \n    \"serverId\" : \"143933161180954\" \n  } \n}\n
\n\n\n\n\n", + "description": "\n\nReturns the currently available ranges of tick values for all WAL files.\nThe tick values can be used to determine if certain\ndata (identified by tick value) are still available for replication.\n\nThe body of the response contains a JSON object. \n* *tickMin*: minimum tick available\n* *tickMax*: maximum tick available\n* *time*: the server time as string in format \"YYYY-MM-DDTHH:MM:SSZ\"\n* *server*: An object with fields *version* and *serverId*\n\n\n\n\n**Example:**\n Returns the available tick ranges.\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/wal/range\n\nHTTP/1.1 OK\ncontent-type: application/json; charset=utf-8\nx-content-type-options: nosniff\n\n{ \n  \"time\" : \"2019-07-30T10:55:38Z\", \n  \"tickMin\" : \"1\", \n  \"tickMax\" : \"189136\", \n  \"server\" : { \n    \"version\" : \"3.5.0-rc.6\", \n    \"serverId\" : \"37711201448161\" \n  } \n}\n
\n\n\n\n\n", "operationId": "handleCommandTickRange", "parameters": [], "responses": { @@ -15206,7 +15303,7 @@ }, "/_api/wal/tail": { "get": { - "description": "\n\nReturns data from the server's write-ahead log (also named replication log). This method can be called\nby replication clients after an initial synchronization of data. The method\nwill return all \"recent\" logged operations from the server. Clients\ncan replay and apply these operations locally so they get to the same data\nstate as the server.\n\nClients can call this method repeatedly to incrementally fetch all changes\nfrom the server. In this case, they should provide the *from* value so\nthey will only get returned the log events since their last fetch.\n\nWhen the *from* query parameter is not used, the server will return log\nentries starting at the beginning of its replication log. When the *from*\nparameter is used, the server will only return log entries which have\nhigher tick values than the specified *from* value (note: the log entry with a\ntick value equal to *from* will be excluded). Use the *from* value when\nincrementally fetching log data.\n\nThe *to* query parameter can be used to optionally restrict the upper bound of\nthe result to a certain tick value. If used, the result will contain only log events\nwith tick values up to (including) *to*. In incremental fetching, there is no\nneed to use the *to* parameter. It only makes sense in special situations,\nwhen only parts of the change log are required.\n\nThe *chunkSize* query parameter can be used to control the size of the result.\nIt must be specified in bytes. The *chunkSize* value will only be honored\napproximately. Otherwise a too low *chunkSize* value could cause the server\nto not be able to put just one log entry into the result and return it.\nTherefore, the *chunkSize* value will only be consulted after a log entry has\nbeen written into the result. If the result size is then bigger than\n*chunkSize*, the server will respond with as many log entries as there are\nin the response already. If the result size is still smaller than *chunkSize*,\nthe server will try to return more data if there's more data left to return.\n\nIf *chunkSize* is not specified, some server-side default value will be used.\n\nThe *Content-Type* of the result is *application/x-arango-dump*. This is an\neasy-to-process format, with all log events going onto separate lines in the\nresponse body. Each log event itself is a JSON object, with at least the\nfollowing attributes:\n\n- *tick*: the log event tick value\n\n- *type*: the log event type\n\nIndividual log events will also have additional attributes, depending on the\nevent type. A few common attributes which are used for multiple events types\nare:\n\n- *cuid*: globally unique id of the view or collection the event was for\n\n- *db*: the database name the event was for\n\n- *tid*: id of the transaction the event was contained in\n\n- *data*: the original document data\n\nA more detailed description of the individual replication event types and their\ndata structures can be found in [Operation Types](#operation-types).\n\nThe response will also contain the following HTTP headers:\n\n- *x-arango-replication-active*: whether or not the logger is active. Clients\n can use this flag as an indication for their polling frequency. If the\n logger is not active and there are no more replication events available, it\n might be sensible for a client to abort, or to go to sleep for a long time\n and try again later to check whether the logger has been activated.\n\n- *x-arango-replication-lastincluded*: the tick value of the last included\n value in the result. In incremental log fetching, this value can be used\n as the *from* value for the following request. **Note** that if the result is\n empty, the value will be *0*. This value should not be used as *from* value\n by clients in the next request (otherwise the server would return the log\n events from the start of the log again).\n\n- *x-arango-replication-lastscanned*: the last tick the server scanned while\n computing the operation log. This might include operations the server did not\n returned to you due to various reasons (i.e. the value was filtered or skipped).\n You may use this value in the *lastScanned* header to allow the rocksdb engine\n to break up requests over multiple responses.\n\n- *x-arango-replication-lasttick*: the last tick value the server has\n logged in its write ahead log (not necessarily included in the result). By comparing the the last\n tick and last included tick values, clients have an approximate indication of\n how many events there are still left to fetch.\n\n- *x-arango-replication-frompresent*: is set to _true_ if server returned\n all tick values starting from the specified tick in the _from_ parameter.\n Should this be set to false the server did not have these operations anymore\n and the client might have missed operations.\n\n- *x-arango-replication-checkmore*: whether or not there already exists more\n log data which the client could fetch immediately. If there is more log data\n available, the client could call *logger-follow* again with an adjusted *from*\n value to fetch remaining log entries until there are no more.\n\n If there isn't any more log data to fetch, the client might decide to go\n to sleep for a while before calling the logger again.\n\n**Note**: this method is not supported on a coordinator in a cluster.\n\n\n\n\n**Example:**\n No log events available\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/wal/tail?from=107811\n\nHTTP/1.1 No Content\ncontent-type: application/x-arango-dump; charset=utf-8\nx-arango-replication-checkmore: false\nx-arango-replication-frompresent: true\nx-arango-replication-lastincluded: 0\nx-arango-replication-lastscanned: 107811\nx-arango-replication-lasttick: 107811\nx-content-type-options: nosniff\n\n
\n\n\n\n\n**Example:**\n A few log events *(One JSON document per line)*\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/wal/tail?from=107811\n\nHTTP/1.1 OK\ncontent-type: application/x-arango-dump; charset=utf-8\nx-arango-replication-checkmore: true\nx-arango-replication-frompresent: true\nx-arango-replication-lastincluded: 107829\nx-arango-replication-lastscanned: 107832\nx-arango-replication-lasttick: 107832\nx-content-type-options: nosniff\n\n{ \n  \"tick\" : \"107829\", \n  \"type\" : 2001, \n  \"db\" : \"_system\", \n  \"cuid\" : \"h82E80CF18F1A/107814\" \n}↩\n
\n\n\n\n\n**Example:**\n More events than would fit into the response\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/wal/tail?from=107781&chunkSize=400\n\nHTTP/1.1 OK\ncontent-type: application/x-arango-dump; charset=utf-8\nx-arango-replication-checkmore: true\nx-arango-replication-frompresent: true\nx-arango-replication-lastincluded: 107799\nx-arango-replication-lastscanned: 107811\nx-arango-replication-lasttick: 107811\nx-content-type-options: nosniff\n\n{ \n  \"tick\" : \"107799\", \n  \"type\" : 2001, \n  \"db\" : \"_system\", \n  \"cuid\" : \"h82E80CF18F1A/107784\" \n}\n
\n\n\n\n\n", + "description": "\n\nReturns data from the server's write-ahead log (also named replication log). This method can be called\nby replication clients after an initial synchronization of data. The method\nwill return all \"recent\" logged operations from the server. Clients\ncan replay and apply these operations locally so they get to the same data\nstate as the server.\n\nClients can call this method repeatedly to incrementally fetch all changes\nfrom the server. In this case, they should provide the *from* value so\nthey will only get returned the log events since their last fetch.\n\nWhen the *from* query parameter is not used, the server will return log\nentries starting at the beginning of its replication log. When the *from*\nparameter is used, the server will only return log entries which have\nhigher tick values than the specified *from* value (note: the log entry with a\ntick value equal to *from* will be excluded). Use the *from* value when\nincrementally fetching log data.\n\nThe *to* query parameter can be used to optionally restrict the upper bound of\nthe result to a certain tick value. If used, the result will contain only log events\nwith tick values up to (including) *to*. In incremental fetching, there is no\nneed to use the *to* parameter. It only makes sense in special situations,\nwhen only parts of the change log are required.\n\nThe *chunkSize* query parameter can be used to control the size of the result.\nIt must be specified in bytes. The *chunkSize* value will only be honored\napproximately. Otherwise a too low *chunkSize* value could cause the server\nto not be able to put just one log entry into the result and return it.\nTherefore, the *chunkSize* value will only be consulted after a log entry has\nbeen written into the result. If the result size is then bigger than\n*chunkSize*, the server will respond with as many log entries as there are\nin the response already. If the result size is still smaller than *chunkSize*,\nthe server will try to return more data if there's more data left to return.\n\nIf *chunkSize* is not specified, some server-side default value will be used.\n\nThe *Content-Type* of the result is *application/x-arango-dump*. This is an\neasy-to-process format, with all log events going onto separate lines in the\nresponse body. Each log event itself is a JSON object, with at least the\nfollowing attributes:\n\n- *tick*: the log event tick value\n\n- *type*: the log event type\n\nIndividual log events will also have additional attributes, depending on the\nevent type. A few common attributes which are used for multiple events types\nare:\n\n- *cuid*: globally unique id of the view or collection the event was for\n\n- *db*: the database name the event was for\n\n- *tid*: id of the transaction the event was contained in\n\n- *data*: the original document data\n\nA more detailed description of the individual replication event types and their\ndata structures can be found in [Operation Types](#operation-types).\n\nThe response will also contain the following HTTP headers:\n\n- *x-arango-replication-active*: whether or not the logger is active. Clients\n can use this flag as an indication for their polling frequency. If the\n logger is not active and there are no more replication events available, it\n might be sensible for a client to abort, or to go to sleep for a long time\n and try again later to check whether the logger has been activated.\n\n- *x-arango-replication-lastincluded*: the tick value of the last included\n value in the result. In incremental log fetching, this value can be used\n as the *from* value for the following request. **Note** that if the result is\n empty, the value will be *0*. This value should not be used as *from* value\n by clients in the next request (otherwise the server would return the log\n events from the start of the log again).\n\n- *x-arango-replication-lastscanned*: the last tick the server scanned while\n computing the operation log. This might include operations the server did not\n returned to you due to various reasons (i.e. the value was filtered or skipped).\n You may use this value in the *lastScanned* header to allow the rocksdb engine\n to break up requests over multiple responses.\n\n- *x-arango-replication-lasttick*: the last tick value the server has\n logged in its write ahead log (not necessarily included in the result). By comparing the the last\n tick and last included tick values, clients have an approximate indication of\n how many events there are still left to fetch.\n\n- *x-arango-replication-frompresent*: is set to _true_ if server returned\n all tick values starting from the specified tick in the _from_ parameter.\n Should this be set to false the server did not have these operations anymore\n and the client might have missed operations.\n\n- *x-arango-replication-checkmore*: whether or not there already exists more\n log data which the client could fetch immediately. If there is more log data\n available, the client could call *logger-follow* again with an adjusted *from*\n value to fetch remaining log entries until there are no more.\n\n If there isn't any more log data to fetch, the client might decide to go\n to sleep for a while before calling the logger again.\n\n**Note**: this method is not supported on a coordinator in a cluster.\n\n\n\n\n**Example:**\n No log events available\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/wal/tail?from=189106\n\nHTTP/1.1 No Content\ncontent-type: application/x-arango-dump; charset=utf-8\nx-arango-replication-checkmore: false\nx-arango-replication-frompresent: true\nx-arango-replication-lastincluded: 0\nx-arango-replication-lastscanned: 189103\nx-arango-replication-lasttick: 189106\nx-content-type-options: nosniff\n\n
\n\n\n\n\n**Example:**\n A few log events *(One JSON document per line)*\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/wal/tail?from=189106\n\nHTTP/1.1 OK\ncontent-type: application/x-arango-dump; charset=utf-8\nx-arango-replication-checkmore: true\nx-arango-replication-frompresent: true\nx-arango-replication-lastincluded: 189122\nx-arango-replication-lastscanned: 189136\nx-arango-replication-lasttick: 189136\nx-content-type-options: nosniff\n\n{ \n  \"tick\" : \"189122\", \n  \"type\" : 2001, \n  \"db\" : \"_system\", \n  \"cuid\" : \"h224C52C430E1/71439\" \n}↩\n
\n\n\n\n\n**Example:**\n More events than would fit into the response\n\n
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/wal/tail?from=189081&chunkSize=400\n\nHTTP/1.1 OK\ncontent-type: application/x-arango-dump; charset=utf-8\nx-arango-replication-checkmore: true\nx-arango-replication-frompresent: true\nx-arango-replication-lastincluded: 189097\nx-arango-replication-lastscanned: 189106\nx-arango-replication-lasttick: 189106\nx-content-type-options: nosniff\n\n{ \n  \"tick\" : \"189097\", \n  \"type\" : 2001, \n  \"db\" : \"_system\", \n  \"cuid\" : \"h224C52C430E1/71427\" \n}\n
\n\n\n\n\n", "operationId": "handleCommandTail", "parameters": [ { @@ -15235,7 +15332,7 @@ "in": "query", "name": "global", "required": false, - "type": "bool" + "type": "boolean" }, { "description": "Approximate maximum size of the returned result.\n\n", @@ -15245,12 +15342,26 @@ "type": "number" }, { - "description": "Id of the client used to tail results. The server will use this to \nkeep operations until the client has fetched them. **Note** this is required\nto have a chance at fetching reading all operations with the rocksdb storage engine\n\n", + "description": "Id of the client used to tail results. The server will use this to \nkeep operations until the client has fetched them. Must be a positive integer.\n**Note** this or serverId is required to have a chance at fetching reading all\noperations with the rocksdb storage engine.\n\n", + "in": "query", + "name": "syncerId", + "required": false, + "type": "number" + }, + { + "description": "Id of the client machine. If *syncerId* is unset, the server will use\nthis to keep operations until the client has fetched them. Must be a positive\ninteger.\n**Note** this or syncerId is required to have a chance at fetching reading all\noperations with the rocksdb storage engine.\n\n", "in": "query", "name": "serverId", "required": false, "type": "number" }, + { + "description": "Short description of the client, used for informative purposes only.\n\n", + "in": "query", + "name": "clientInfo", + "required": false, + "type": "string" + }, { "description": "Id of barrier used to keep WAL entries around. **Note** this is only required for the \nMMFiles storage engine\n\n", "in": "query", diff --git a/utils/generateSwagger.py b/utils/generateSwagger.py index 4358ef0461..5a2a805714 100755 --- a/utils/generateSwagger.py +++ b/utils/generateSwagger.py @@ -65,7 +65,34 @@ swagger = { } }, "basePath": "/", - "definitions": {}, + "definitions": { + "ARANGO_ERROR": { + "description": "An ArangoDB Error code", + "type": "integer" + }, + "ArangoError": { + "description": "the arangodb error type", + "properties": { + "code": { + "description": "the HTTP Status code", + "type": "integer" + }, + "error": { + "description": "boolean flag to indicate whether an error occurred (*true* in this case)", + "type": "boolean" + }, + "errorMessage": { + "description": "a descriptive error message describing what happened, may contain additional information", + "type": "string" + }, + "errorNum": { + "description": "the ARANGO_ERROR code", + "type": "integer" + } + } + } + + }, "paths" : {} } @@ -76,6 +103,7 @@ swagger = { swaggerBaseTypes = [ 'object', 'array', + 'number', 'integer', 'long', 'float', @@ -89,6 +117,11 @@ swaggerBaseTypes = [ 'password' ] +swaggerFormats = { + "number": ["", "float", "double"], + "integer": ["", "int32", "int64"] +} + ################################################################################ ### @brief length of the swagger definition namespace ################################################################################ @@ -362,10 +395,10 @@ class StateMachine: raise RuntimeError("Invalid target %s" % newState) else: handler = newState - except: + except Exception as x: print >> sys.stderr, "while parsing '" + self.fn + "'" print >> sys.stderr, "trying to use handler '" + handler.__name__ + "'" - raise + raise x ################################################################################ ### @brief Regexen @@ -506,9 +539,9 @@ def generic_handler_desc(cargo, r, message, op, para, name): if op: try: operation[op].append(para) - except AttributeError: + except AttributeError as x: print >> sys.stderr, "trying to set '%s' on operations - failed. '%s'" % (op, para) - raise + raise x return next, c line = Typography(line) @@ -525,7 +558,7 @@ def start_docublock(cargo, r=Regexen()): currentDocuBlock = last.split(' ')[1].rstrip() except Exception as x: print >> sys.stderr, "failed to fetch docublock in '" + last + "': " + str(x) - raise + raise x return generic_handler(cargo, r, 'start_docublock') @@ -715,7 +748,7 @@ def restbodyparam(cargo, r=Regexen()): except Exception: print >> sys.stderr, "RESTBODYPARAM: 4 arguments required. You gave me: " + parameters(last) print >> sys.stderr, "In this docublock: " + currentDocuBlock - raise + raise Exception("Argument count error") CheckReqOpt(required) if required == 'required': @@ -784,6 +817,9 @@ def restbodyparam(cargo, r=Regexen()): elif ptype == 'object': swagger['definitions'][currentDocuBlock]['properties'][name]['additionalProperties'] = {} elif ptype != 'string': + if ptype in swaggerFormats and ptype2 not in swaggerFormats[ptype]: + print >> sys.stderr, "RESTSTRUCT: ptype2 (format)[" + ptype2 + "] not valid: " + parameters(last) + raise Exception("'%s' is not one of %s!" % (ptype2, str(swaggerFormats))) swagger['definitions'][currentDocuBlock]['properties'][name]['format'] = ptype2 @@ -844,7 +880,7 @@ def reststruct(cargo, r=Regexen()): (name, className, ptype, required, ptype2) = parameters(last).split(',') except Exception: print >> sys.stderr, "RESTSTRUCT: 5 arguments required (name, className, ptype, required, ptype2). You gave me: " + parameters(last) - raise + raise Exception("Argument count error") CheckReqOpt(required) if required == 'required': @@ -894,6 +930,9 @@ def reststruct(cargo, r=Regexen()): 'description') elif ptype != 'string' and ptype != 'boolean': + if ptype in swaggerFormats and ptype2 not in swaggerFormats[ptype]: + print >> sys.stderr, "RESTSTRUCT: ptype2 (format)[" + ptype2 + "] not valid: " + parameters(last) + raise Exception("'%s' is not one of %s!" % (ptype2, str(swaggerFormats))) swagger['definitions'][className]['properties'][name]['format'] = ptype2 return generic_handler_desc(cargo, r, "restbodyparam", None, @@ -905,7 +944,7 @@ def reststruct(cargo, r=Regexen()): ################################################################################ def restqueryparam(cargo, r=Regexen()): - global swagger, operation, httpPath, method + global swagger, operation, httpPath, method, swaggerBaseTypes (dummy, last) = cargo parametersList = parameters(last).split(',') @@ -915,12 +954,17 @@ def restqueryparam(cargo, r=Regexen()): required = True else: required = False + swaggerType = parametersList[1].lower() + + if swaggerType not in swaggerBaseTypes: + print >> sys.stderr, "RESTQUERYPARAM is supposed to be a swagger type." + raise Exception("'%s' is not one of %s!" % (swaggerType, str(swaggerBaseTypes))) para = { 'name': parametersList[0], 'in': 'query', 'description': '', - 'type': parametersList[1].lower(), + 'type': swaggerType, 'required': required } @@ -1152,7 +1196,7 @@ def example_arangosh_run(cargo, r=Regexen()): examplefile = open(fn) except: print >> sys.stderr, "Failed to open example file:\n '%s'" % fn - raise + raise Exception("failed to open example file:" + fn) operation['x-examples'][currentExample] = '\n\n**Example:**\n ' + exampleHeader.strip('\n ') + '\n\n
'
 
     for line in examplefile.readlines():
@@ -1275,7 +1319,7 @@ def getReference(name, source, verb):
     except Exception:
         print >>sys.stderr, "No reference in: "
         print >>sys.stderr, name
-        raise
+        raise Exception("No reference in: " + name)
     if not ref in swagger['definitions']:
         fn = ''
         if verb:
@@ -1419,7 +1463,7 @@ for name, filenames in sorted(files.items(), key=operator.itemgetter(0)):
             getOneApi(infile, name + " - " + ', '.join(filenames), fn)
         except Exception as x:
             print >> sys.stderr, "\nwhile parsing file: '%s' error: %s" % (thisfn, x)
-            raise
+            raise Exception("while parsing file '%s' error: %s" %(thisfn, x))
         infile.close()
         currentDocuBlock = None
         lastDocuBlock = None